@ZEAL Blog·厉
WWW Zeal Blog
We stand alone,
TOGETHER.
+ 1 - 0 | §批处理控制VMWare虚拟机
VMWare 确实是好东西,不过安装之后会增加四个自动启动的服务以及两个虚拟的网络连接。我是比较讨厌这种没事就占着系统资源的东西,何况也不是经常要用着 VMWare ,所以写了个批处理脚本来自动启动/关闭 VMWare 虚拟机以及相关的服务和网络连接。  查看全文
+ 1 - 1 | §酣梦斋主-毛笔书法

偶然看到一幅酣梦斋主的毛笔书法练习作。。

想想自己:小学的时候是参加参加书法比赛拿拿奖,中学的时候也还能写写黑板报啥的;自从到了大学开始摸电脑,毛笔就成了家里的摆设、硬笔也是越用越少。工作了以后摸得最多的则是在白板上用的水笔了。

人家是字越写越漂亮,我反有日渐退化的趋势。真该重新开始练练了。。

毛笔书法

标签 ( 懒人散记 ) :
+ 1 - 2 | §Snap的链接预览服务

预览缩略图demo
  Snap Preview AnywhereSnap新近发布的免费服务,可以为网站页面上的 URL 链接生成快速预览( Techcrunch 的相关介绍 / 对应的中文翻译)。只需要从这里获取一段代码放置在页面的 </head> 标签之前,当鼠标移到该页面上任何 URL 链接的时候就会出现该链接所指向页面的缩略图。如果您现在不是用 RSS 阅读器浏览本文的话,应该能够通过鼠标的移动观察到这个效果:)

  缺省情况下这段服务代码会对页面上所有的 URL 超链接进行缩略图的显示处理(但不包括嵌套 frame 和非常规的 href 目标)。如果希望某些特定的链接不触发该效果,只需要为链接增加名为 snap_nopreviewclass 属性;如果希望默认不处理任何 URL,则需要把服务代码的参数 'ap=1' 改为 'ap=0' ,然后为希望触发效果的链接增加名为 snap_previewclass 属性。目前这些个性化的设置并没有傻瓜式的定制界面,只是在 FAQ 中进行了说明,对于没有网页开发基础的朋友来说可能会过于复杂。理论上来说这个服务的接口可以做的更为友好和简洁一些。

大部分都是这样的Capturing

  遗憾的是从实际使用的效果来看,似乎大多数 URL 并不能即时显示出有意义的缩略图。虽然Jason Fields日志中说只要鼠标移到某个超链接上并显示 "Capturing" 信息,就表示该链接的缩略图生成请求已经提交给服务器,再过几分钟之后缩略图应该就能正常显示;但实际上抓取的速度远慢于此。

  看来既有索引量的不足是 Snap 亟需改善的问题。毕竟太多的搜索结果如果都没有对应的图片可以显示的话,其所谓的特色反倒成为缺陷了。不过要想达到 Google 级别的网页索引量,还得是图片形式的, Snap 有没有足够的硬件支撑还是个问题(也许 Google 应该考虑提供类似的服务)。。

标签 ( 网络 ) :
+ 2 - 1 | §在豆瓣认领自己的Blog

一直在找这个认领的入口,终于发现原来在“增改描述或标志图片”旁边有个“这个blog是我的”的链接。总觉得这个入口太不明显了。。

doubanclaim89c5221720d2ff5b

+ 3 - 0 | §火箭的比赛越来越有趣了

  轻松拿下小牛、力克热火、被马刺和活塞最后一节大翻盘,火箭这个赛季的比赛内容跟前几个赛季相比简直是得到了质的提升。即便是对阵尼克斯这样一场以沉闷为主基调的比赛里面,姚明还不忘和内特·罗宾逊联手奉献了个经典镜头作为补偿。

Yao Ming and Nate Robinson

  身高7尺6寸(2米26)的姚明和5尺9寸(1米75)的内特·罗宾逊站在一块(上图左),基本上就是是桌子配凳子;可这个“土豆”型的家伙早在全明星灌篮大赛(上图右)的时候已经让全世界球迷记住了他,这次他虽然没能够在姚明的头上玩灌篮,却实实在在送出记大火锅给姚明(上图中),也算是再次惊世骇俗了一把。YouTube上的这段比赛镜头视频已经被无数人引用评论了(1, 2, 3),甚至有人在4shared上放了更为清晰的asf视频文件提供下载。

  或许姚明开始嘀咕为什么火箭要安排尤因来训练自己了(撇开被乔丹当头怒扣不提,这个倒霉中锋可是被身高1米6的小虫博格斯封盖过的),优良传统要继承当属不易,这种霉运要被传染可是出奇的灵验。不过有道是没踢飞过关键点球的球星不是世界级球星,没被小个盖过帽的中锋职业生涯大概也不能算完整。所以姚明如是说:就连5尺3寸的球员也曾经盖过自己的帽,这算啥(就是不知道他所说的这个5尺3寸的是哪位人物?)。

  如果麦蒂的背和姚明的脚趾不出来捣乱,火箭的替补球员能够有更出色的发挥的话,今年的火箭应该能够带给我们所期待的更多精彩内容,不再是白开水喝到胃涨了。。

标签 ( 体育 ) :
+ 3 - 3 | §恐怖的Dreamhost超额流量费

  花儿开了上周末经历了一场要命的 Dreamhost 超额流量催款事件,相信只要是正在使用 Dreamhost 服务的朋友看了都会觉得后怕。

  虽然最终因为是被恶意连接加上 Dreamhost 的统计相对有问题,这笔四千多美金的流量费被免除,但若是确实产生了这些流量的话又该如何收场?作为服务提供商,就算不愿意主动根据用户购买的服务来对流量进行限制,至少也应该提供用户自己来进行限制的方法吧?

  赶紧到 Dreamhost 的 Control Panel 去查看了一下,原来是有这样一个 Bandwidth Throttling Settings 的功能,可以对帐号下的每个域设定一个带宽使用的上限值的。只不过缺省状态下,所有域对应的 Throttling 都是 disabled 的,你必须自己手工一个个去激活。当激活了这个功能之后, Dreamhost 会根据前一天的流量来估计你第二天的流量是否可能超额,如果是的话自动把你的 web 文件夹重命名到 .throttled 后缀。但因为这个处理过程是以天为单位,像那样几小时之内发生的大流量也只能眼睁睁看着飙上去了。不过只要不是统计数据上的错误,以 Dreamhost 的连接速度,一天之内能飙出来的流量也不至于会超出限额太多。所以对我们这些使用 Dreamhost 服务的用户来说:

  • 一定要设置 Bandwidth Throttling
  • 一定不要在 web 可访问目录下放大文件,即使看上去这些文件并没有对任何人开放
  • 一定要经常检查自己站点的流量情况( Dreamhost 提供的 report 其实还是体现得蛮详细的 )

  这样即便是流量突增,最多也是一天之内的损失,虽然也不是好事,但至少容易接受些了。

标签 ( 网络 ) :
+ 1 - 1 | §Java GPL 进行时

Sun 在固守了多年之后,终于昨天决定让自己的 Java 跨进了 GPLv2 (GNU General Public License version 2) 的大门。虽然目前还只释出了 HotSpot JVM / javac / JavaHelp / feature phone / TCK 等有限的几套源代码,但其他更多代码将在接下来的半年时间中陆续得到公开(包括完整可编译的 JDK)。

Sun 这次的痛下决心或许就跟 MS 迫于 Firefox 的压力而出手 IE7 一样,若不是其他开源脚本语言蓬勃的生机让 Java 感受到了危机的话, Java 之 GPLed 或许不会被 Sun 提到日程表上来。不论原因是什么, Java 的开源会是让大多数人欢欣鼓舞的好事情 -- 虽然必定有撮人会暗暗不爽ing 。

标签 ( JAVA/C++ ) :
+ 2 - 11 | §GCC warnings about strict-aliasing

warning: dereferencing type-punned pointer will break strict-aliasing rules

  在 gcc 2.x 下编译没有任何 warning 信息的代码换到 gcc 3.x 版本下之后出现了类似的 warning 。原因是 gcc 3 引入了 strict aliasing 架构,当编译时使用了 -fstrict-aliasing 参数(该参数在使用了 -O2 , -O3, -Os 优化参数的情况下默认生效),而源代码中存在一些违反了 strict-aliasing 规则的地方的话,编译器就会对这部分代码提出 warning 。

  gcc 3 manual 对于 -fstrict-aliasing 参数的说明是:Allows the compiler to assume the strictest aliasing rules applicable to the language being compiled.  For C (and C++), this activates optimizations based on the type of expressions.  In particular, an object of one type is assumed never to reside at the same address as an object of a different type, unless the types are almost the same.  For example, an "unsigned int" can alias an "int", but not a "void*" or a "double".  A character type may alias any other type.

  简而言之, 在该参数激活的情况下,编译器希望不同类型的对象不会指向同一个地址。比如像这段代码:

int retLen;
someSetFunc((unsigned long*)&retLen);
printf("ret len = %d\n",retLen);

  由于 someSetFunc 的传入参数类型定义为 unsigned long ,所以需要进行这样的指针类型强制 cast 。但对于 -fstrict-aliasing 优化参数来说,这样的转换是有潜在问题的(但实际上可能并不会造成任何问题)。所以如果现有的源代码存在太多这样的类型强制转换的问题的话,对这些代码进行修改也许会是场噩梦。最简单的方法是使用 -fno-strict-aliasing 参数来关闭 gcc 的优化选项,代价是放弃了 strict-aliasing 编译优化可能带来的可执行代码的性能提升。当然也可以用 -Wno-strict-aliasing 来屏蔽相关的 warning 信息,但无论这些 warning 信息多么的无关紧要,总还是“疑似危险”,所以可能的话最好还是把所有的 warning 都消灭掉。

  消灭的方法也不算复杂,正如 gcc manual 所示的那样,可以是采用 union 的不同成员变量来完成类型的转换。上面那段代码可以改为:

union u_retLen
{
int retLen;
unsigned long ptr;
};
someSetFunc(&u_retLen.ptr);
printf("ret len = %d\n",u_retLen.retLen);

  虽然会使源代码变得丑陋,但对于大部分已有的源代码来说,这可能是改动最小的方案了。而对于新写的代码来说,如何更好的设计函数的入口参数(比如使用 void*)可能才是需要去思考的问题了。

标签 ( JAVA/C++ ) :
+ 2 - 1 | §中国特色的视频网站

calfen 最近做 dusee 似乎做的挺郁闷:对这个“眼睛是梁朝伟的,面庞是苏菲玛索,加上舒琪的嘴唇”的视频网站想法不少,但说到底还是要看决策者们的脑瓜子想怎么去倒腾。

在中国做网站,不少决策者都还没有跳出唯 PV / UV / Alexa 论的怪圈。不是说如何想办法提供给用户最有价值的东西,而是考虑怎么变着法儿骗来更多的流量。

无聊布棉针对各家视频网站的内容所作的分析已经很能说明问题了;然而我们的大人物还是前仆后继地以忽悠大众的精神在拷贝着别人的肉体,灌注着擦边的灵魂,燃烧着VC的钞票,快活着个人的腰包。这需要怎样一种视用户为傻B的气魄和胆识!

+ 1 - 1 | §在MySQL查询结果集中得到记录行号

如果需要在查询语句返回的列中包含一列表示该条记录在整个结果集中的行号, ISO SQL:2003 标准提出的方法是提供 ROW_NUMBER() / RANK() 函数。 Oracle 中可以使用标准方法(8i版本以上),也可以使用非标准的 ROWNUM ; MS SQL Server 则在 2005 版本中提供了 ROW_NUMBER() 函数;但在 MySQL 中似乎还没有这样的系统自带功能。虽然 LIMIT 可以很方便的对返回的结果集数量和位置进行过滤,但过滤出来的记录的行号却没办法被 SELECT 到。据说 MySQL 是早就想增加这个功能了,但我是还没找到。

解决方法是通过预定义用户变量来实现:

set @mycnt = 0;
select (@mycnt := @mycnt + 1) as ROWNUM , othercol from tblname order by othercol;

这样查询出来的结果集中 ROWNUM 就保存了行编号信息。这个行编号信息的某种用途在于当你需要根据需要对数据按照某种规则排序并取出排序之后的某一行数据,并且希望知道这行数据在之前排序中的位置时就用得着了。比如:

set @mycnt = 0;
select * from (
    select (@mycnt := @mycnt + 1) as ROWNUM , othercol
     from tblname order by othercol
) as A where othercol=OneKeyID;

当然你也可以通过创建临时表的方法把查询结果写到某个拥有 auto_increment 字段的临时表中再做查询,但考虑到临时表在 MySQL master / slave 模式下可能产生的问题,用这样临时用户定义变量的方式来计算查询结果集每一行对应的行号还是更为简洁 -- 除非你愿意在 PHP 或其他语言脚本中对返回的整个结果集再作处理。

+ 1 - 0 | §夜宴:这顿大餐挺难咽

  最近大脑的中枢神经频繁切换于 C++ / C# / Java / PHP / Javascript 之间,占用率基本上是 100% ,本来懒得再对国产大片这档子鸟事有什么感想;但看到 Calfen 在文绉绉的解读《夜宴》里那首《越人歌》,倒也颇有意思。至少从这点来说,《夜宴》比起之前的《无极》来说总算多了点内涵(比《无极》还要烂的片子不会是《夜宴》,也不会是《黄金甲》,估计近几年内不太可能出现超越《无极》的烂片)。

  然而冯导犯了之前几位导演同样的毛病:对于自己新涉足的领域,而且一下子就是大制作,手中握着太多的资源,脑袋里面有太多的想法,就是不知道如何去取舍,最终只好把所有的东西强捏到一块,终极目标是忽悠个奥斯卡回来。

  现在回想起来还能让我印象深刻的是什么?

  台词风格:横贯中西、古今混搭到了随心所欲的地步,完全不考虑整体性和合理性。几乎让我产生听力障碍。。

  杖毙庭下:这场戏是在太酷了。陈凯歌在他的《无极》里面致力于相对论的研究,冯小刚则似乎对中国的古代酷刑很有兴趣。建议冯导在以后的大片(如果还有的话)中每部介绍一种,把十大酷刑给展现全了,也算是对中国古代文化的另类保护。

  越人舞蹈:越人歌我是没什么感觉,与之相配的越人舞倒是看得我心里直发毛 -- 据说这舞蹈脱型于日本的无机舞,当然也有人认为不尽然 -- 不论如何,《夜宴》的越人舞我是实在欣赏不来。

  高级石椅:无鸾躺了多次的那张石椅一开始我以为只是石椅,想不到还可以顺便洗洗头的,现代化与大自然的有机结合,妙的很。不知道有没有哪家发型屋有兴趣效法一下。

  Over.

标签 ( 数码影像 ) :
+ 1 - 0 | §Links 2006-10-31: Censored Data API
Since 2005.04.27  梦想 就像鸡蛋 要么孵化 要么臭掉RSS Feed (Entries) | About me | Back To Home | @ZEAL | zbird.com | 沪ICP备05024379号