2008-07
16

下面是《memcached全面剖析》的第三部分。

发表日:2008/7/16
作者:前坂徹(Toru Maesaka)
原文链接:http://gihyo.jp/dev/feature/01/memcached/0003

前几次的文章在这里:

阅读全文 »

2008-07
11

下面是《memcached全面剖析》的第二部分。

发表日:2008/7/9
作者:前坂徹(Toru Maesaka)
原文链接:http://gihyo.jp/dev/feature/01/memcached/0002

阅读全文 »

2008-07
10

翻译一篇技术评论社的文章,是讲memcached的连载。fcicq同学说这个东西很有用,希望大家喜欢。

发表日:2008/7/2
作者:长野雅广(Masahiro Nagano)
原文链接:http://gihyo.jp/dev/feature/01/memcached/0001

我是mixi株式会社开发部系统运营组的长野。 日常负责程序的运营。从今天开始,将分几次针对最近在Web应用的可扩展性领域 的热门话题memcached,与我公司开发部研究开发组的前坂一起, 说明其内部结构和使用。

阅读全文 »

2008-05
30

今天delicious上这个名为 SocialHistory 的脚本十分引人注目。 源代码可以在这里下载。 这段js代码的功能就是判断你的用户有没有访问过某个网站。使用方法很简单,例如:

window.onload = function() {
    var sl = new SocialHistory();
    alert(sl.doesVisit("Del.icio.us"));
}

如果用户曾经使用过del.icio.us,那么该函数就会返回真,否则返回假。

其实原理并不复杂,它利用了链接的 a:visited 伪类的属性。首先在页面上生成一个iframe, 并在这个iframe中设置 a 和 a:visited 为不同的样式。然后将网站的链接插入到 iframe 中。 浏览器就会根据用户的访问历史,为访问过的链接设置 a:visited 的样式。 最后再获得链接的最终样式,如果是 a:visited,就可以认为用户访问过该网站了。 具体的实现方式可以参考源代码。

这个脚本主要用于显示社会性书签的图标,可以恰到好处地显示用户所使用的网站。 但我担心,这样的做法是不是有盗取用户隐私之嫌? 虽然这个方法只能判断用户有无访问特定的网站,并不能无限制地得到所有访问历史。



2008-04
19

fcicq最近在IPA上看到一篇安全相关的文章, 它的最末尾有个checklist,于是催我把它翻译了。前几天比较忙,周末没什么事儿了,就翻译一下吧。

原文的标题是如何让网站更安全。 这里仅翻译文章最后的一个checklist。

2008/4/20更新:fcicq倒是神速啊,马上就把具体的应用策略扔出来了 :D 参考:PHP 实践 Security Checklist

阅读全文 »

2007-08
16

许多网站都使用了下拉菜单效果,但大部分都是用Javascript实现的。 自己写过下拉菜单的人应该知道,处理onmouseover和onmouseout事件极其繁琐。 而实际上,仅使用CSS的:hover伪类就能简洁地实现下拉菜单效果。

不过遗憾的是只有完全支持:hover伪类的浏览器如Firefox才能实现这种效果。 像IE这种仅能部分支持:hover的浏览器就只能老老实实地用Javascript来做了。

请看下面的代码。

<html>
  <head>
    <style>
    </style>
  </head>
  <body>
    <div id="menu">
      <h3>Select from menu</h3>
      <ul>
        <li>menu item 1</li>
        <li>menu item 2</li>
        <li>menu item 3</li>
        <li>menu item 4</li>
        <li>menu item 5</li>
      </ul>
    </div>
</html>

我们尚未定义样式表,这个页面显示结果就是一个简单的列表。

dropdown-menu-orig.png

为了实现下拉菜单,我们先将<ul>元素隐藏起来:

#menu ul { display: none; }

然后应当让菜单在鼠标经过时显示,所以应当为<div>的:hover伪类添加如下定义:

#menu:hover ul { display: block; }
阅读全文 »

2007-08
15

今天来讲一下CSS中的绝对定位和相对定位,即position属性的使用方法。

position属性常见的值有三种:

  • static: 不使用定位(默认值)。
  • absolute: 使用绝对定位。
  • relative: 使用相对定位。

在解释定位方式之前,首先要阐明文档流(document flow)的概念。 浏览器在解释HTML文档时,它会将各个元素按照在HTML文档中出现的次序, 从上到下依次排列。例如下面的代码将产生如下的效果:

document-flow.png
阅读全文 »

2007-08
14

又懒了一下,好几天没更新了。其实上周买的书到了,这几天在忙着看书, 没顾得上研究技术。昨天一口气看完了《CSS禅意花园》, 觉得这本书不愧CSS设计的王者称号,无论从欣赏还是学习的角度,这本书都值得一读。

当然,原书网站CSS Zen Garden也一定要去看看。

今天先来介绍一个从这本书上学到的小技巧:如何用图片替换文字

所谓图片替换文字就是用图片代替HTML中的某个文字元素,如标题。网站设计中很常用, 比如我想用图片而不是文字来显示blog标题,我可以在本应当显示<h1>的地方显示一个<img>, 但这样页面中失去<h1>会影响搜索引擎评分。当然我也可以通过css给<h1>设置一个背景图片, 但<h1>内的文字必须显示,否则也会影响搜索引擎评分。 可以使用下面的方法之一来通过CSS完美解决。

阅读全文 »

2007-08
09

今天说说Apache的优化。为什么要优化?因为服务器资源不够用。 资源有很多方面,但根据木桶理论,只要有一种资源不够用, 整个服务器的性能就会受到影响(所谓瓶颈)。

服务器资源

那么服务器的资源包括哪些?对于网站来说主要是CPUTCP连接数这两者。 CPU表现在任务数上,在Linux下使用平均负载(loadavg)来衡量。 可通过以下命令来查看(参考这篇文章):

cat /proc/loadavg

对于单CPU的服务器,loadavg高于1,表明任务队列出现了等待,CPU忙不过来了。 超过2以上就会明显感到性能降低了。

TCP连接数可通过以下命令查看:

netstat -ant | grep :80 | wc -l 

如果要实时监控服务器资源,可参考OpenNMS项目。

注1:内存不算,低廉的价格使得网站服务器很少有因为内存不够而down掉的。
注2:CPU%是瞬时的CPU使用率,通常无法反映出整体负载。

阅读全文 »

2007-07
28

刚刚为blog加了个面向打印的css,大家可以从浏览器的打印预览中看到效果。 之所以要加这个css,是因为blog显示的内容中有很多是不需要并且不便于打印的, 比如侧边栏、评论输入框等,打印时把这些无用的东西都隐藏掉, 对用户比较友好。

总结一下css的要点。参考的原文在这里

阅读全文 »