Maemo的开发门槛还是有点高

Maemo 5 的sdk是我目前装过的最费劲的一个手机开发sdk,先不说步骤要分好几步,单是去nokia网站上接受一个什么条款然后装上nokia-binaries这个我就一直到很后来很后来才发现不装跑不了能在Xephyr里显示的运行环境,不过话说虽然我装上了,但我现在还是没跑起来……

不过开始看Qt on maemo后,装了个madde + qt creator 2.0 beta,手机上装个mad-developer,wifi连接,好用多了。但缺点也有啊,就是比如QtMobility,想整到madde里就麻烦了些,我现在的做法是先在scratchbox里装上libqtm-dev,然后把一堆so和include拷到madde里,还没试验是否真的可用。

回过头来再看看android的界面开发,不管是gtk还是qt,不管是maemo还是symbian,不管在界面开发上还是整个程序的开发上都要更费事些,所以这门槛就高了许多,开发成本也就跟着上来了,开发人员们也就懒得为你折腾了。

那么放弃gtk放弃qt放弃html+css来一套全新的就像android那样做?这也不见得是件好事,因为你迫使大量有可能进入这个领域的开发人员放弃自己以前熟悉的来适应你来学习一套全新的开发方式。对于资深一些的开发人员来说,这是一个很不爽的事情。

想做平台,你就得伺候好两类人,一类是用户,他们需要漂亮的界面和好用的程序;一类是开发者,他们要简单和熟悉的开发方式和强大的创造空间。

第一个maemo开发经历

今天给erminig提了个patch 加了个定时同步功能 不得不说 小场景下python很好用 改界面都不用任何多余的操作 改完保存就能测试 也没装sdk 直接在手机上vi python做界面 c做service 似乎也是一种模式

列举网页提速的几个原则和方法

这两天在帮ld的discuz站做优化,不得不说,discuz在这方面还很不够,列一些原则和方法出来,供参考

提速通常从两方面入手

传输提速

  • 下载提速
    • 减少建立链接的次数
      • keep-alive 旨在减少多次握手带来的开销 此外 404这样的错误会打断keep-alive 恐怕没多少人注意过这个问题吧
      • 减少文件数 js,css的合并 多个图片合成一张 旨在减少http header
      • 合理使用expire
    • 减少数据量
      • gzip
      • 混淆精减js 精减css html 要知道 一个两千行的html 光是把换行和每行头的缩进去掉就至少是两三k!
    • 减少服务端处理时间
      • 利用服务端缓存减少服务端io时间 比如squid memcachd
  • 上传提速
    • 把资源类文件放在cookie free的域名上,减少不必要的上行数据

显示提速

  • 减少dom层次
  • 减少页面中间的js

discuz现在最让我头疼的就是资源图片太过零碎和dom嵌套层次太深

理想中的“ipad”

令天仔细看了下ipad的相关文章,发现和我想要的还是有点差距,我想要的是这么一个东西:

  • 便携 这个满足了
  • 待机长 这个也满足了 arm似乎已经成为低功耗的同义词了 而目前用了arm或者待机能和ipad一拼的只有xda了 大屏?平板?似乎都还没出现哦
  • 联网 只满足了wifi和3g 像我这种有线控只要在桌子旁能用有线就坚决不用无线的或许有一天能有合适的外设来满足吧
  • 实体键盘 对于我来说这就是高效工作的代名词 打字要快 大量的一键到位的组合快捷键是提高工作效率的唯一方式 好在这个也满足了
  • emacs 这点最重要 也正是我放弃ipad的原因 至少目前没有任何ipad甚至itouch上能跑emacs的消息 我需要的是一个能让我随时随地工作 工作之余才是娱乐的工具 而不是一个随时随地娱乐 娱乐之余才是工作而且不是高效工作的这么一个玩具

于是,我只能继续等待,嗯,不对,我还有一个选择,就是放下手机,起床,打开我那近3公斤的笔记本:)

以正合,以奇胜

两个产品的交锋比作兵事一点也不过分。蓝海红海长尾,都是得好的诠释。十则围之,五则战之,不若则避之。这些说的是要不要打,在哪和谁打,而怎么打呢?这就是文题所说,以正合,以奇胜。

何谓正合,当头炮马来跳,这就是正合。好比大家都来做输入法,你没拼音,没词组,出词慢,词库少,这能行吗?不行。这就是以正合。当然,你若一心一意去做五笔,这是另外一个战场,暂且不提。把核心的东西做好,做好了你能围别人,做不好那就等着被围吧。这就是以正合。说到这,潜台词就出来了,正合完了,就该是奇胜了。

何谓奇胜,火烧连营,暗度陈仓,这些都是奇胜。再拿输入法来说,前有紫光后有微软,左有智能ABC右有拼音加加,搜狗怎么杀出血路的?互联网词库,皮肤,这就是奇胜。你有别人没有的,同时又是用户喜欢的,这就是奇胜。

然而,往往我们只记住了奇胜,却忘了背后的正合。远的不说,为何会有长征,为何会有星火燎原,图的是正合,只打对的不打贵的,打的起贵咱再打贵的。同样咱们做产品也不能一心想着出奇招,一招定天下。不去练内功,不去练基本招,别说定天下,来个人一招你都接不下。做事业也同样是这样,不能只想学别人一夜暴富,忘了学人家那么多年的苦功。

而如果只正合呢?那就是官渡赤壁的翻版,只不过你翻版的是败方。所以我们做产品,正合之余必需奇胜,两手抓两手都要硬才行。

转战移动互联网

随着android平台的成熟,智能手机混战再起。且不论3G的渗透速度,移动互联网的崛起是必然的趋势。趋势就不多废话了,总之,已经投身到手机和互联网应用的战场了,这里只单纯谈谈这段时间对几大移动平台的体会。

  • Symbian,老牌,市场占有率足够高足够傻瓜培养了足够的用户习惯,开发和GUI设计门槛相对而言有点高。
  • IPhone,这个系统没涉足没法评论,只单纯的从其一贯的作风来看,IPhone和Android/WM最终会和MacOS和Linux/Windows的关系靠近。
  • Android,火,真的很火,看各大手机厂商的动作就知道了,平台的理念有很多优秀之处
  • WM? 我宁愿忘记这个系统,UI比起上述几个系统来说要糟糕的多,开发平台多但多的不精,如果某种东西例如silverlight在WM上能够成熟到Dalvik在android上的程度的话。
  • MTK?BB? 等下,我才刚入门呢。

闲话搁下不提,最近在研究Android,写下对它的一些看法。

Android基于linux,这个没有意外,但是Android抛开了xwindow,也没有试图采用某种流行的GUI解决方案,而是把一个叫Dalvik的东西推上了舞台。

Dalvik是个虚拟机?没错,但它不仅仅是个虚拟机,Google在Dalvik里加入了手机需要的API,加入了进程管理,更关键的是,它把GUI彻底的做进了Dalvik。所以,完全可以这样认为,Android就两层:Linux,Dalvik。

那么,想做界面开发?不好意思,你只有JAVA可选。对广大的其他语言开发者来讲,这是个坏消息,但对Android来说,这却是个好消息。开发语言的单纯性会让基础平台的积累迅速且有效,开发将会更简单更快捷,同样,应用的丰富也会更迅速。

唔,如果Dalvik里的GUI接口是能够从C里调用的话,QT/GTK的移植应该并不是难事,届时,广大其他语言开发者就真的开心了。

export org-mode file in command line

see http://thread.gmane.org/gmane.emacs.orgmode/7675 for more informations

以下是我用来export单个文件的命令

生成html

emacs --batch --eval '(progn (setq user-full-name "Your Name")(setq user-mail-address "Your Mail Address")(find-file "/path/to/file.org")(org-export-as-html 3))'

生成txt

emacs --batch --eval '(progn (setq user-full-name "Your Name")(setq user-mail-address "Your Mail Address")(find-file "/path/to/file.org")(org-export-as-ascii 3))'

Linux下通过USB用WM6手机的GPRS上网

From http://wiki.xda-developers.com/index.php?pagename=Hermes_Modem_With_Linux

但并不是一定得用Hermes这个机器,我用的是Dopod D600,所谓的GENE,按照文中所述编译安装了usb-rndis-lite后,在手机上用Internet共享拨号连接后,NetworkManager就找到了一个新的网络设备,这时候就连接成功了

sawfish-mxflat-chrome

a google chrome like color schema for sawfish using mxflat theme

mxflat theme can be found in sawfish-themes package in both ubuntu and debian.

I made a google chrome like color schema using this theme with settings below.

This is the sample image, the browser is swiftfox with chromifox theme.
sawfish-mxflat-chrome

Also you can make a shadow~
sawfish-mxflat-chrome-shadow

More >

segment fault when dump-emacs

dump-emacs 是个好东西,不过最近老是dump失败
gdb了一下 发现挂在unexec那
google之至http://bugs.gentoo.org/show_bug.cgi?id=221281#c6

The breakage is caused by the “randomize brk()” patch.
See the LKML, http://lkml.org/lkml/2007/10/23/435:

This is known to break older versions of some emacs variants, whose
dumper code assumed that the last variable declared in the program is
equal to the start of the dynamically allocated memory region.

The corresponding kernel parameter is accessible via
/proc/sys/kernel/randomize_va_space, the breakage occurs if its value is 2.

结论为执行下sysctl -w kernel.randomize_va_space=0再dump即可

shell里这么写

#!/bin/bash
MYEMACS=/home/x/bin/emacs-dump
EMACS=/home/x/bin/emacs
cat > /tmp/dump-emacs.el <<EOF
(load "/home/x/.emacs")
(dump-emacs "$MYEMACS" "$EMACS")
EOF

OLD_VASPACE=`sysctl kernel.randomize_va_space|tr -d " "`
sudo sysctl -w kernel.randomize_va_space=0
$EMACS --batch --load /tmp/dump-emacs.el
sudo sysctl -w "$OLD_VASPACE"

即可

用tcpreplay对网络程序进行压力测试

以前tcpdump用的比较多,主要用在诊断的时候。tcpreplay则是把tcpdump记录下来的包原样发回去

这样tcpreplay就可以用来以极快的速度复现记录下来的数据从而实现压力测试,好处在于数据比较真实
More >

jump-or-exec in emacs

去年的时候发在水木里的

类似sawfish下的jump-or-exec

用于查找名为buffer-name的buffer,如果不存在则调用func,如果存在的话切换到这个buffer,如果这个buffer就是当前的buffer且给出了可选参数onfocused的话就把这个buffer作为参数来调用onfocused

因为不会用正则匹配查找buffer,所以只能全匹配。

代码在 http://www.emacswiki.org/cgi-bin/wiki/jump-or-exec.el

没有sawfish的时候怎么用jump-or-exec来切换窗口

最初是因为compiz不成熟,所以一直在用sawfish,最近切到了compiz后就不能用sawfish了,非常好用的jump-or-exec也没了,本来打算自己搞个的,发现已经有人弄过了。地址在 http://pluskid.lifegoo.com/wiki/JumpOrExec.html

通过一个python脚本和wmctrl来实现的jump-or-exec,配合xbindkeys,基本上不用再担心切换wm的问题了

不过python脚本的启动明显没有shell脚本来的快,改写成shell脚本代码如下
More >

msn-pecan pidgin的msn插件 期待离线消息功能

http://code.google.com/p/msn-pecan/

作者是pidgin的msnp主要开发者,说是pidgin忽视msnp的开发,所以独立出来作为一个插件。
目前已经支持了personal-message 离线消息放在了milestone-0.1.0 目前版本为0.0.12

try it!

从bluehost迁移到了vpsland

vpsland的还是不错的 xl系 据说xen比Virtuozzo要好 我是觉得多个swap可用 呵呵
选的debian-etch 288M内存暂时够用 纯debian连50M内存都没用
apache2+fastcgi+php还真挺麻烦的 弄了两天~~
回头还得配exim

swiftfox, 让你的firefox不再慢如牛

其实牛挺好的 呵呵

昨天和委员交流linux使用心得,一致对linux下firefox那个慢是深恶痛绝,回来以后就开始找找看有没有解决办法,因为我们一致认为,linux最大的好处就是没有解决不了的问题。

于是,就找到了swiftfox

http://getswiftfox.com 是官方站 目前是2.0.0.6和2.0.0.7pre 可以上去下载

debian系的可以这样做 在sources.list里添加一条
deb http://getswiftfox.com/builds/debian unstable non-free
然后根据你的cpu类型安装swiftfox-xxx 比如我是pentium-m我就装swiftfox-pentium-m

唯一遗憾就是没有源码 不知道是怎么样优化的

优化后的最直接的效果就是访问msn space不再是100%cpu卡上数秒了~~