ubuntu,firefox,opera,css,javascript,xhtml,ui design,blog,geeks…
23 Oct 2007
此文 Top 7 Ways To Speed Up Your WebSite! 还不错,大致内容如下:
1.图片和文件放在另外的主机上
2.优化css文件,如
margin-top: 20px;margin-right: 10px;margin-bottom: 20px;margin-left: 10px;
可简写为
margin: 20px 10px 20px 10px;
3.优化图片(fireworks 或者 ps 的导出功能)
4.给图片指定高度和宽度(
)
5.少用 javascript
6.优化链接。如
http://blog.guoshuang.com/david
最好写为
http://blog.guoshuang.com/david/
原因可以参看这篇 关于网络地址最后面的 /。那是一个错误的 request,因为不存在一个叫 david 的文件,浏览器收到错误,然后尝试叫 david 的目录,这样就发送了两次 request,并且在服务器端产生了一个错误日志。
7. 减少HTTP Requests请求数量。比如把 css 和 js 绑成一个文件。
23 Oct 2007
font-face 是很老的一个样式表,微软About Font Embedding以前通过一个叫WEFT 的软件来打包字体文件。IE 相应CSS语法为
只是 weft 很难找。不知为何苹果又开始弄这个东东。其实没什么意义,英文字体几百k,尚可理喻,但中文字体动辄几十M,谁会为了一个字体效果而遭用户骂呢?而且用 flash embed 字体,然后 flashvar 进去,也可以输出字体。
不过在 ubuntu 下安装 webkit 倒是件有趣的事情,找到两篇参考
22 Oct 2007
nginx 号称支持高负载的 http 服务器。上次安装 nginx 就是因为 php 老是装不上,来回折腾源、编译等,导致新利得出错。。。这次再次折腾,终于搞定,步骤如下:
安装 php+phpmyadmin
sudo apt-get install php5-cli php5-cgi php5-mysql
sudo apt-get install phpmyadmin
mysql
sudo apt-get install mysql-server
默认无密码,可以这样修改
以下为引用内容:
/etc/init.d/mysql stopThen update the user table
mysqld –skip-grant-tables –skip-networking &
mysql mysql
UPDATE user SET password=PASSWORD(‘yourrootpassword’) WHERE User=”root” AND Host=”localhost”;
quit
/etc/init.d/mysql restart
也可以在 phpmyadmin 中修改。
安装 nginx
wget http://technokracy.net/nginx/nginx_0.5.32~grrr-1_i386.deb
dpkg -i nginx_0.5.32~grrr-1_i386.deb
修改 nginx 配置文件
sudo vim /etc/nginx/sites-available/default
找到 location ~ .php$ {… 部分,修改为
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
让 nginx 侦听 9000 端口,用 spawn-fcgi 方式运行 php。
安装 spawn-fcgi。用 lighttpd 中的 spawn-fcgi。
wget http://www.lighttpd.net/download/lighttpd-1.4.18.tar.bz2
tar -xvjf lighttpd-1.4.18.tar.bz2
cd lighttpd-1.4.18
./configure
make
cp src/spawn-fcgi /usr/bin/spawn-fcgi
注意:并没有安装 lighttpd,只是拿出里面的 spawn-fcgi。(make 而没有 install)
安装 php-fastcgi
touch /usr/bin/php-fastcgi
sudo vim /usr/bin/php-fastcgi
sudo chmod 755 /usr/bin/php-fastcgi
添加如下内容
#!/bin/sh
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -f /usr/bin/php5-cgi
新建 init-fastcgi
touch /etc/init.d/init-fastcgi
sudo vim /etc/init.d/init-fastcgi
内容为
#!/bin/bash
PHP_SCRIPT=/usr/bin/php-fastcgi
RETVAL=0
case “$1″ in
start)
$PHP_SCRIPT
RETVAL=$?
;;
stop)
killall -9 php
RETVAL=$?
;;
restart)
killall -9 php
$PHP_SCRIPT
RETVAL=$?
;;
*)
echo “Usage: php-fastcgi {start|stop|restart}”
exit 1
;;
esac
exit $RETVAL
修改 fcgi 的执行权限
chmod 755 /etc/init.d/init-fastcgi
开机后自动启动
update-rc.d init-fastcgi defaults
写一个 .php文件测试。
phpinfo?() ?>
注意:如果安装过 apache 的话,nginx 会启动在 8000 端口。在 /etc/nginx/sites-available/default 中修改为 80
server {
listen 80;
…
重启nginx
sudo /etc/init.d/nginx restart
BTW:相比之下还是 lighttpd 的文档多一些,效率也不错。nginx 到底如何,用用再说。
21 Oct 2007

opera widgets 其实就是一个 index.html 一个 config.xml,后者设置 widgets 的名称、作者、窗口大小等,前者显示在 opera 画出的窗口中。本来想写自己的最新修改日志 widgets – sitemap-opera-widgets.asp,可是不知道怎么刷新,:(
(temp/widgets/config.xml 可惜现在没办法加 mime 类型为 application/x-opera-widgets,:( 本机测试的时候直接把 config.xml 拖进 opera 窗口即可。)
其实在 http://oxzone.opera.com/widgetize/Feed%20Reader就可以定制某个 feed 的 opera widgets,(似乎atom 不行,至少我的 atom 不行),照说明一步步下去即可。
如果要 opera widgets feed reader auto discovery 的话,在页面中加入 link 即可
widgets 也许可以用在一些bs小应用上,直接用 opera 的窗体而省却自己编写窗口的编码。比如类似这样的小工具8 must have Opera Widgets for bloggers and web designers
20 Oct 2007
真没想到,这种片子还有这么多…
Queer as Folk
Queer as Folk / 同志亦常人
2000 年 / Hal Sparks / Gale Harold / Randy Harrison / Scott Lowell / Peter Paige / Robert Gant / Michelle Clunie / Thea Gill / Sharon Gless / Jack Wetherall / 美国 / Michael DeCarlo / 同志亦常人 / 英语
看过 在看 想看
Queer as folk
Queer as folk / 同志亦常人
Aidan Gillen / Craig Kelly / UK / Sarah Harding/Charles McDougall / 同志亦常人 / English
看过 在看 想看
Will & Grace
Will & Grace / Will and Grace
Eric McCormack / Debra Messing / Megan Mullally / Sean Hayes / USA / James Burrows / 威尔和格蕾丝 / David Kohan / Max Mutchnick / English
情景剧
看过 在看 想看
Queer Eye for the Straight Guy
Queer Eye for the Straight Guy / 粉雄救兵 / 酷男的異想世界
Kyan Douglas / Ted Allen / Jai Rodriguez / USA / 粉雄救兵 / English
真人秀
看过 在看 想看
Boy Meets Boy
Boy Meets Boy / 男孩邂逅
Franklin Ferguson / Clinton Leupp / Dan Wells / USA / Dean Minerd / Douglas Ross / 男孩邂逅 / English
真人秀
看过 想看
Playing It Straight
美国 / 英语
真人秀
看过 想看
Coming Out Party
Coming Out Party / 出柜晚会
Renee Hicks / Bob Smith / See more / 美国 / Rich Tackenberg / 出柜晚会 / 英语
真人秀
看过 想看
天鹅湖
天鹅湖 / Swan Lake
Adam Cooper / Scott Ambler / Fiona Chadwick / UK / UK / Matthew Bourne / English
歌舞剧
看过 想看
The Celluloid Closet
The Celluloid Closet / 电影中的同志
Tom Hanks / Whoopi Goldberg / 美國 / Rob Epstein , Jeffrey Friedman / 电影中的同志 / 英文
记录片
看过 想看
When Boys Fly/男孩在飞翔
When Boys Fly/男孩在飞翔 / 男孩在飞翔
2002年 / Jason Cavallo / Brandon Delcampo / Tone Desario / 美国 / Stewart Halpern,Lenid Rolov / 男孩在飞翔 / 英语
记录片
看过 想看
Paragraph 175
Paragraph 175 / 活着为了证明 / 第175号条款
德国 / 英国 / 美国 / 活着为了证明 / Sharon Wood
记录片
看过 想看
On the Bus
On the Bus / 同志穿行美国记事
2001年 / Dustin Lance Black / Damon Intrabartolo / William Kaufman / 美国 / Dustin Lance Black / 同志穿行美国记事 / 英语
记录片
看过 想看
Tying the Knot
Tying the Knot / 我们努力,我们要同志婚姻
美国 / Jim de Sève / 英语
记录片
看过 想看
Trembling Before G-d 同性恋的战栗
Trembling Before G-d 同性恋的战栗 / Ils tremblent devant Dieu (France) (TV title)
以色列/法国 / 美国 / Sandi Simcha Dubowski / 英语 / 意第绪语/希伯来语
记录片
看过 想看
Dangerous Living: Coming Out in the Developing World
Dangerous Living: Coming Out in the Developing World
Janeane Garofalo / USA / John Scagliotti / English
记录片
看过 想看
Breaking The Surface/破浪而出
Breaking The Surface/破浪而出
1997年 / Mario López / Michael Murphy / Rosemary Dunsmore / 美国 / Steven Hilliard Stern / 英语
传记
看过 想看
Kampvuur
Kampvuur / Campfire / 露营
Joram Schurmans / Koen Van Heule / Circé Lethem / Belgium / Bavo Defurne / 露营 / Dutch
短片
看过 想看
Un chant d’amour
Un chant d’amour / A Song of Love / 情歌恋曲
Java / André Reybaz / France / Jean Genet / 情歌恋曲 / Silent
短片
看过 想看
Juste un Peu de Reconfort
Juste un Peu de Reconfort / 爱之初,欲本善
Arthur Moncla / Remi Bresson / Elodie Bolliee / 法国 / Armand Lameloise / 法语
短片
看过 想看
The Visitor
The Visitor / 访客
Barry Otto / Nick Carpenter / Australia / Dan Castle / 访客 / English
短片
看过 想看
Boys in Love
Boys in Love
美国 / George Camarda / P. David Ebersole / 英语
短片集
看过 想看
Boys to Men
Boys to Men / 同志寓言
2001年06月03日 / Ema Tuennerman / Brett Chukerman / Weston Mueller / 美国 / Phillip J. Bartell / Carl Pfirman / 同志寓言 / 英语
短片集
看过 想看
Boys Briefs 2
Boys Briefs 2
短片集
看过 想看
Boys Life III
Boys Life III / 男孩的生活III
Cléo Delacruz / Aurélien Bianco / Jean-Marc Delacruz / US / Gregory Cooke / David Fourier / English
短片集
看过 想看
Brokeback Mountain
Brokeback Mountain / 断背山 / 斷背山
Jake Gyllenhaal / Heath Ledger / Michelle Williams / Lureen Newsome Twist / 美国 / 李安 (Ang Lee) / 断背山 / Diana Ossana / E. Annie Proulx / 拉里 麦克默特里 (Larry McMurtry) / 英语
20 Oct 2007
此文不错,Ubuntu 下好用的驴子,ubuntu 下 wine+emule,设置firefox 关联
about:config
新建“布尔”
名称为:network.protocol-handler.external.ed2k
值为:true
新建“字符串”
名称为:network.protocol-handler.app.ed2k
值为:/home/youname/.wine/drive_c/Program Files/eMule/emule.exe
(假设 emule 安装在虚拟的 C 盘)
顺便还提到了路由器内 highid 的方法。转发规则 -> 虚拟服务器,6265,6266 转发。
sudo apt-get install amule-utils
解决 amule 异常退出问题。
19 Oct 2007
把 meebo 加到 firefox sidebar,直接在 ff 里面就可以 IM了。问题是这个东西需要插件嘛?直接收藏,选sidebar打开不就行了吗?

19 Oct 2007
直接在第一个关键帧加入下面代码, mc_map 为地图所在的 mc。
showTime 为 dynamic text 的变量名
data.xml 为 xml 文件。拿数据显示或者变化 mc 状态。
//拖拽
mc_map.onMouseDown = function(){
startDrag(mc_map);
}
mc_map.onMouseUp = function(){
stopDrag();
}
//放大缩小
button_b.onRelease = function (){
mc_map._xscale *=1.2;
mc_map._yscale *=1.2;
}
button_s.onRelease = function (){
mc_map._xscale *=0.8;
mc_map._yscale *=0.8;
}
button_o.onRelease = function (){
mc_map._x = 0;
mc_map._y = 50;
mc_map._xscale = 100;
mc_map._yscale = 100;
}
//当前时间
function showTime(){
nowTime = new Date();
oHoures = nowTime.getHours();
oHoures = oHoures>9?oHoures:”0″+oHoures;
oMinutes = nowTime.getMinutes();
oMinutes = oMinutes>9?oMinutes:”0″+oMinutes;
oSeconds = nowTime.getSeconds();
oSeconds = oSeconds>9?oSeconds:”0″+oSeconds;
timeStr = nowTime.getFullYear()+”-”+nowTime.getMonth()+”-”+nowTime.getDate()+” 周”+”一二三四五六日”.charAt(nowTime.getDay()-1)+” “+oHoures+”:”+oMinutes+”:”+oSeconds;
showTime = timeStr;
}
function shitBlue(){
//加载xml
myXML = new XML();
myXML.load(“data.xml”);
myXML.ignoreWhite = true;
myXML.onLoad = function(){
mc_map.g1_01 = myXML.firstChild.firstChild.firstChild.firstChild.nodeValue;
//group1 的子项目
var group1 = myXML.firstChild.firstChild.childNodes;
var i = 0;
var alertcolor = “0xcc0000″;
for(i=0;i //遍历每个元素 开始 //彩色灯控制开始 if( group1[i].attributes.otype == "3"){ co = new Color(mc_map[group1[i].attributes.id+"_mc"].lamp); co.setRGB(group1[i].attributes.color); mc_map[group1[i].attributes.id+"_mc"].tips = group1[i].attributes.value+" - "+group1[i].firstChild.nodeValue; continue; } //彩色灯控制结束 mc_map[group1[i].attributes.id+"_mc"]["ovalue"] = group1[i].attributes.value+" - "+group1[i].firstChild.nodeValue; //带警告的文本框 开始 if(group1[i].attributes.otype == "2"){ if( group1[i].attributes.value*1 > group1[i].attributes.max*1){ mc_map[group1[i].attributes.id+”_mc”].play(); }else{ mc_map[group1[i].attributes.id+”_mc”].stop(); } } //带警告的文本框 结束 } //遍历每个元素 结束 } } shitBlue(); setInterval(shitBlue,otime); setInterval(showTime,1000); shit = otime; data.xml 内容如下: 数据显示 mc 时间,显示文本提示信息。 on (rollOver) { this.createTextField(“my_txt”, 2,this._xmouse-40,this._ymouse-30, 100, 30); my_txt.font = “sans-serif”; my_txt.textColor = 0×000000; my_txt.backgroundColor = 0xffff99; my_txt.autoSize = true; my_txt.border = true; my_txt.background = true; my_txt.selectable = false; my_txt.text = this.ovalue } on (rollOut) { my_txt.removeTextField(); }
19 Oct 2007

因为导演是周杰伦的缘故,一直没兴趣看。但朋友推荐说还不错,所以…
前半部分有点沉闷,我怀疑我的年龄是否还能忍受如此纯情嗲嗲的表演,到了后面才发现周杰伦的确是个不简单的家伙。整个片子稍显稚嫩,很多小漏洞。但无论叙事、表演、节奏、悬念都拿捏的不错,很有想法,的确是不可多得的令人印象深刻的好电影。
老家伙们真的是全线崩溃了(无极、十面埋伏、夜宴、黄金甲、天堂口、太阳照样升起,这些烂片都堪称老将们的滑铁卢…)
19 Oct 2007
老生长谈的话题,小结记录
ff 没有 attachEvent,用 addEventListener
obj.addEventListener(“click”,function(){},false)
obj.addEventListener(“mouseover”,function(){},false)
区别在于去掉 “on”,ie 的 attachEvent 是
obj.attachEvent(“onclick”,function(){},false)
ff 函数中拿不到 event,但可以在参数中传递
如
function test1(){
alert(event);
}
function test2(abc){
alert(abc.target.tagName);
}
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
ff 中不是 event.srcElement 而是 event.target
ff 不支持 innerText(虽然即将支持)
ff 不支持 parentElement,用 parentNode 代替
注意,parentNode 会拿到空格、换行等 textNode。
ff,ie 等浏览器判断直接用 method 或者 object
直接判断要使用的方法、属性等。比如 if(document.body.attachEvent){…} 直接判断是否支持 attachEvent 等,从而区分浏览器。不要用 userAgent,现在浏览器太多了。
obj 或者 document.all.obj 或者 document.getElementById(“obj”) 推荐最后一种
虽然都可用,但仍然推荐最后一种。
鼠标链接指针(手)
ie 6以下是 hand,标准应该是 style=”cursor:pointer”(ie7 支持)
写完后看到这篇 JS的IE和Firefox兼容性汇编 还不错。大家有什么问题和经验,欢迎留言。