有些东西很简单,自己却想不出来。
平时的工作中习惯了把记录排序然后把结果列表排序输出。但是闲的时候我就想,怎么知道某条记录在某种排序方式下面的排位(名次)呢?
在国外一个blog里看到办法的时候,感觉自己真是愚蠢。而在该blogger提出这个问题让大家留言回答的时候,许多人都想的是非常复杂的办法,包括存储过程、临时表。
国内无法正常访问该blog,实际上思想很简单,该条记录的位置就是它前面的记录数加一。其实这不正是名次的定义吗?真是羞愧……这个问题我想了很久,想不到一个合理的办法……
一个多月前的post,今天才发现在draft里,像我这样惜字如金的,自然不能把它扔掉了,拿出来充个数,哈哈
4月27号在Amazon订购的一本书,今天(5月12日)就收到了。因为今天是周一,所以可能周末就已经到了。
当时Amazon.com上track packages显示Delivery estimate: May 31, 2008,实际上一般用不了这么久的。我选择的是Standard International Shipping.
外面的灰色盒子显得很破,上面印着amazon.com的标志,运输过程中也被压得变形扭曲了。不过打开盒子,订购的书和一张硬纸板一起被较厚的塑料塑封起来,保存得很完好。记得有一次在china-pub买书选择了加硬包装,也就是在盒子里塞了些废纸而已。
不到万不得已,还是不要在那里买书,一般的书都比较贵,很多在国外读书的同学都是在国内买了书带过去。另外运费对我们国内消费者来说也很高,即使是最慢的shipping。我要的书在国内完全找不到,才去那里买的。
漫长的等待后,Firefox 3终于来了。虽然发布当天的下载就超过了800万(目前已经超过了一千万),可是感觉这个大版本号的改动并没有带来多少惊喜。内存占用该大还是大,该crash的时候还是crash。
可能地址栏的改进是这个新版本的最大亮点吧,我初次见到的时候就这样想,而且很期待。但是实际开始用的时候,却发现这种与2.0版本的完全不同的体验,很难适应。
一种办法是适应。在地址栏输入后,提示的项目、顺序都和原来不一样了。这相当于原来的单纯的url提示加上历史搜索。而且匹配也是从任意位置开始。
另一种办法是反抗,可惜about:config中似乎没有提供足够灵活的配置将地址栏变成和2.0版本一样的行为方式,不过oldbar这个扩展就是解决这个问题的。
我不太了解Firefox 3到底有哪些实质性的改进,不过总体上感觉Firefox 3和IE 7有点类似。IE 7把本来就已经很难用的IE弄得更难用了。
刚刚电视里又播了这一段,并安排老大爷和这些战士见面。
最近非常忙,Google Reader已经很久没看过了,几千未读。
不过有时候在网上会看到几个非常非常有价值的blog,很想订阅,不过想想Google Reader里现在那一坨垃圾就作罢了。今天抽空把大部分的没什么意义的Feed全部清理了,以后订阅就选那些万里挑一的精华,当然是跟自己的职业紧密相关的。
比如像我的blog这样无聊的,绝对是在退订之列。什么儿女情长,什么生活闲趣,太他妈的无聊了。
那些玩技术的blog,也纯粹是浪费读者时间,做技术和玩技术还是有很大区别的。
世界清净了!
搬家之后才发现有方正宽带这么一个东西,原住户跟我们说只能一台电脑同时上网,我还感觉奇怪。后来发现果然是这样,更可恶的是我们的笔记本都不能上网,提示“IP地址或MAC地址错误”。看来是绑定了MAC地址,到了能上网的地方登陆方正网站,发现里面果然绑定了两个MAC地址。
刚才打电话给方正客服,态度不错,并且轻车熟路地问了我一些信息之后帮我绑定了新的MAC地址,看来这个问题是很普遍的了。
网上也有一些帖子讲怎么破解它的限制,怎么共享上网之类的,但是我不想搞这么麻烦了。中午在旁边的一家网通营业厅咨询了一下,准备马上申请网通ADSL,这样我可以自由自在地用无线路由了。
看到这个对话框,谁都会骂微软的娘,妈的,又来浪费老子时间!不过我们骂也就是出出气而已,大部分人群智商比较低,造成了微软市场运作的成功。
关于这个问题比较合理的解释,这里有一个:
在页面还没有ready的时候就调用了htmlObject的appendChild或者innerHTML操作,这样会在IE上弹出一个对话框:“Internet Explorer无法打开站点,已终止操作”
解决方法有两个:
- 在appendChild或者innerHTML操作处判断document.readyState==”complete”, 若为否,则setTimeout若干秒之后重新作这个操作。
但是,此属性只对ie,opeara有效,ff的document没有readyState属性,永远是undefined.
- 在script中使用defer属性。意在页面加载完毕后再执行脚本,这样可以避免找不到对象的问题。defer不会考虑外部文件是否全部下载完,只会判当前页面是否全部加载完成。并且,有defer标签的代码块里不能写document.write方法
和一般的javascript语法错误不一样,即使启用了脚本调试,IE也不会让你去调试这个错误。所以看到这个对话框,你就应该检查哪些javascript语句在文档还没有load完成时执行了一些dom操作。
除了上文提到的两种办法,当然也可以把这些操作放在页面的onload事件处理中执行。
Google Talk Labs Edition发布已经有一段时间了。我刚刚安装的时候,发现除了把一些网页版的功能加入之外,整体上变得极其难用。
没有了设置选项的地方,聊天记录不能复制,刚打开时输入中文总是乱码,搜索联系人也不好用……
不过几天前某同学发给我她的flickr地址,gtalk马上把这个地址转化成了一个缩略图和两个按钮,一个按钮是打开该链接,另一个按钮点击后,直接在gtalk顶部以幻灯片方式浏览这个相册,太酷了!
我立即联想到了Youtube,于是给对方发送了一个youtube的视频地址,果然不出所料,gtalk用同样的方式处理了这个链接,点击View即可在顶部观看这个视频。这样,在gtalk上分享视频的时候,就可以不中断双方的对话,可以一边观看视频一边继续交谈或者交流观看视频的感受,使得沟通变得更加流畅。
似乎Gtalk的官方博客并没有提到与flickr/youtube的集成,只有一些“小道消息”对此有所提及。
后来与人共享Google Spreadsheet的时候,发现其中的聊天模块也换成了和Google Talk Labs Edition一样的一个Flash——桌面版其实也是个Flash,因为我在一台新机器上试用的时候,它要求我先安装adobe flash player. 在这里,flickr/youtube的链接也被特殊照顾。
不过朋友在Google docs中选择的语言是中文,她那里显示的是和我差不多的聊天窗口,也是flash,不过flickr/youtube的链接没有作处理,不知道是什么原因。
在WordPress里,保存文字时系统都会有一些filter函数对输入的文字进行处理,然后再输入数据库。但是这个过程中英文(半角)单引号的处理有些诡异。
无论是在设置中的blog标题,还是日志,输入的英文单引号都会被转换成”’”这样的表示方法。在HTML页面中输出特殊符号(HTML entities)时转换成这样的表示非常值得推荐,问题是”’”表示的是全角的单引号,即中文的单引号。
我们一般也不会在意,不过昨天,我帮她搬家的国内互联网某知名博客(其blog标题中有个单引号)说很丑。于是我想了想,英文单引号的正确表示是”'”,填入,然后点击Save Changes。嗯,真正的英文单引号显示在了标题栏,世界清净了。
不过此时要注意看,Blog Title输入框里的”'”又变成了英文单引号!如果再次点击Save Changes,那么前功尽弃,单引号又变成了全角。所以每次保存这个表单时,都需要把这个引号用”'”替换,再保存。