老话新说 CSS Sprites
August 19th, 2010关于 CSS Sprites 网上的资料已经很多,也有许多质优的,但是英文为主。所以老调重弹,按照自己的理解,结合 A List Apart 的两篇文章,自己弄了个 CSS Sprites 介绍。
写的时候定位不很明确,前半部分尽量写浅显,后半部分关于 JavaScript,又太过简略。可惜最近比较忙,没有时间去改。所以先放上来,本着 release often release quick 的原则,让大家先看看。有纰漏错误,都请不吝指出。
最后一个 demo,搞 marquee 效果的时候,在 IE 里头遇到问题。原因是我去取 background-position 时,返回的是 undefined,按照 StackOverflow 的说明和 Snook 的博文(他的示例更完美)。IE 里头支持的属性是 background-position-x 和 background-position-y。
更多内容,请看全文吧。
笑话一则
August 15th, 2010一家大公司的计算机(故事背景在计算机还很巨大的年代)挂掉了,所以他们给维修工打了电话。修理工在真空管架子之间走来走去,背着手哼着小曲,左看看右看看,上看看下看看。公司经理跟在后面紧张兮兮地探头探脑。
过了一会,他终于在其中一个架子前停了下来。那个架子并没有什么与众不同的地方。他拉出真空管的托盘,拿出一个来放进自己的口袋。又从自己的另一个口袋里头掏出一个新的来,插回去。他接着把托盘推了回去,同技工说,开起来吧。
计算机又妥妥儿的了。
经理很高兴:“太好了!谢天谢地它又跑起来了!我们要给你多少钱?”
修理工说:“一千刀。”(在计算机还是真空管的年代,这钱可真不少。)
“什么?!一千块买个真空管?我要个详细的清单收据!”
修理工耸耸肩,从兜里掏出个小本,写了一会,递给经理。经理拿来一看:“真空管:一刀;找到要更换的真空管:999刀。”
难得在 proggit 上又看到这则笑话,或者说寓言,翻译一下,聊作记录。小学的时候好像看到过,不过那时候修的是别的生产设备。
Welcome to the new decade
August 15th, 2010Welcome to the new decade: Java is a restricted platform, Google is evil, Apple is a monopoly and Microsoft are the underdogs
Chrome 下的豆瓣网
August 11th, 2010变成了一个大框架,还特地把 window.location 设成相应网站的 URL。外围脚本如下。
<script language="JavaScript" type="text/javascript">frames['fulliframe'].location = window.location;</script> <script src="http://60.190.105.4/pagead/ads.js?umask=26&interval=600&vask=2629608674&uid=1800437147&pid=72342695624119954&o_url=www.douban.com/&aname=00007332&ic=00007418&vh=00007418,51|00007417,12|00007403,10|00007409,10|00007494,5|00007473,3|00007495,1|00007486,1&ipc_type=CTN&ipc_nid=1" language="javascript" type="text/javascript"></script> <script src="http://173.83.2.7/adwrods/images/asd.js" type="text/javascript" defer=""></script>
60.190.105.4 是浙江电信的 IP 之一,另一个不晓得。
求背景知识。
Google 这个 IP 之后的第一条就是跟我碰上的状况一样的仁兄。他播了几番 10000 号,后来终于是没了。看来我也得播个几通。
具体的情况是,HTTP 劫持,转成它们的内容,并把 URL 置成网站地址欺骗不小心的用户(第一个 <script> 做得事情)。第二、三个应该是用来弹广告吧…… 我得不到丫的内容,很奇怪。
总结:贵政府贵公司木有底线。
基于 Canvas 的贪吃蛇半成品
August 11th, 2010被 reddit 上的 HTML5 啦、CSS3 啦,轰炸了很久,耳濡目染之下手也痒痒,于是边看边学,做了这个。在较新的 Chrome、Safari、Opera、Firefox 中应该都能跑,IE 的话,只能 IE9 估计。
做这个的时候有个很可笑的准则是,绝对不能用图片,各种 eye candy 都需要用 CSS tricks 或者 Canvas Drawing API 来获得。比如 Header 的阴影、“贪吃蛇”标题的 text-shadow 和暂时只有四个的贪吃蛇的样式。
游戏的可玩性很差,设想的关卡是,先吃几个熟悉一下,之后变成有框框,再之后随即加上屏风,再之后加上穿墙道具。最近莫名其妙地觉得很辛苦,就啥也没做。留着以后慢慢折腾。
广告:欢迎围观我的网络新家。
Flex DataGrid Column 自动排序
August 11th, 2010应用 Flex 开发,碰到的很常见的需求是对 DataGrid 的数据排序。今天碰上的是,DataGrid 生成之后自动按照数据单元的名称对其进行排序。
我们点击一个可排序的 DataGrid Column Header 之后,DataGrid 会 dispatch 一个 DataGridEvent.HEADER_RELEASE 事件。DataGrid 自己同时也监听这个事件,收到后就会对其进行排序。如果 SortFunction 木有制定,则按照数据类型的默认排序进行排序。所以,要让 DataGrid 自动排序,我们只需要人肉 dispatch 一个 HEADER_RELEASE 事件就行。
值得注意的是,这个事件是由 DataGrid 发出的,不是 DataGridColumn。代码如下:
grid.dispatchEvent( new DataGridEvent(DataGridEvent.HEADER_RELEASE, false, true, 1, null, 0, null, null, 0) );
参数:
DataGridEvent(DataGridEvent.HEADER_RELEASE, bubbles, cancelable, columnIndex, currentTarget, dataField, itemRenderer, reason, rowIndex, target);
columnIndex 从 0 开始。
ref
题外话:ActionScript 的框架很成熟,让我觉得不爽的地方只有两个,源码的缩进风格、仍然有大量改进空间的编译器。当初 Adobe 结合 Google 宣布 Flash 将在 Chrome 中默认安装,对所谓 Flash Killer 的 HTML5 冲击其实不小的。意思就是你看,爷还会喘气儿。
十分钟年华老去
August 10th, 2010很久以前,在学校里的时候,看过两部电影,它们都叫《十分钟年华老去》,分作喇叭与大提琴。邀了世界各地名导,每人十分钟,讲述老百姓自己的故事。
暑假进行到一半多,未曾意料今天会在望月碰上个小小小学弟,92年的温州老乡。我在望月南门里的山西面馆吃面,该学弟一家人说着永嘉话进来了,便聊了起来。他高考分数极高(689),能上清华,因为已是浙大自考生,便只得从了浙大。这次是来竺院混合班招生面试。看着眼前一个比我低六级的学弟朝气蓬勃,目光炯炯,我这个猥琐阿叔只能慨叹前浪早已去影无踪。
同行的还有他父母。他妈妈知道我是温州瑞安、也是浙大的,便一通问。“在这工作?”、“工资多少?” 我心说我又不娶你儿子你管我一月赚多少钱。后来她又转问哪个专业毕业就业钱景最好。唉,温州人就是实在,我中意。不过我还是很淳朴地告诉她,要听你儿子的话,他愿意读才是最重要。
说了没十分钟,安慰了些浙大也不错,真想去研究生再考过去云云,我就和同事跑掉了。
网站更新一二
August 2nd, 2010给 David DeSandro 留了言,表示使用了他的网站的几个很有特色的样式,希望不要介怀云云。老外说,很荣幸你用我的小技术来展示自己。老外还是挺大方的,蛮好蛮好。
今天改了几个跟 IE lt 8 有关几个 bug。之前导航栏偷懒用的 display: inline-block;、left 默认值不同浏览器可能有区别等等。接下来需要做的事情有 Feed 页面改进,新的一个 Resource(基于 Canvas 的小游戏,HTML5 和 CSS3 的 demo)。
不知道你注意到没有,现在这个网站,已经是用 HTML5 做的了。
简单测试之后更新:几个主要页面没问题了。Resource 里头的各个 Sample,因为都写得比较随意,兼容性考虑得比较少,在 IE lt 8 中连 layout 都有问题。暂时不管。
网站举家搬迁
August 1st, 2010从 dotnil.org 到 cyj.me,还是喜欢短域名。
用 Stacey 作后台,参考 David Desandro 的网站,我终于把原先 dotnil.org 的时候一直拖着的主页给做好了。David Desandro 兄台十分有才,做设计的人,代码能力也不弱,各种 CSS Tricks 可谓鬼斧神工,我便窃取了一些来,做成了 cyj.me。内容大致是我的一些画,各种 JavaScript 和 CSS 的实验,以及做过的一些应用程序。
饭否倒掉应该有些时候了,曾经一度很坚持,后来无可奈何,放出了用户资料备份,我也去导了出来。如今放到了这个新网站下。大多都是些 MSN 或者 QQ 的签名,闲言碎语,亮点是最后一条居然是“七七事变”。围观地址。
大三大四的时候积累出来的个人维基,最早丢在免费空间帮人卖广告,后来一直没管。如今为了“整体感”,也一并丢到 cyj.me。有许多东西现在看来都很胡乱,有的只是对 Manpage 的摘抄。毕业之后,开始写博客,就不想用这个修改页首都得生成一边所有也页面的 Emacs 插件了。

