Monday, October 27, 2008

从Mephisto迁移到wordpress

原先blog用的mephisto,最近出现spam,索性关了comments,决定换回wordpress。今天抽个空闲,终于是转换了过来。

幸好Caleb Jaffa因为有同样的需求写了转换脚本

下载 wordpress 2.5.1,安装,运行,运行转换脚本,更新 wordpress 2.6.1,设定 permalink,原先的 feed archinves url 转换设定,磕磕碰碰遇到点小问题,半个小时之内还是搞定了。

买了 linode 的 VPS,用debian的image,安装mysql编译apache、php,一切顺利,总算可以对备案说 fu**k you了,:-p

Update:

Thursday, September 18, 2008

How to Install Adobe air 1.1 beta on Ubuntu hardy 64bit

adove air logo

Adobe Air 最近放出 1.1 beta for linux, 不过仍没有 64bit 支持。经过一番尝试,成功安装。

下载

cd /tmp
wget http://download.macromedia.com/pub/labs/air/linux/adobeair_linux_b1_091508.bin
chmod +x adobeair_linux_b1_091508.bin

安装

./adobeair_linux_b1_091508.bin
Error loading the runtime (libnss3.so: wrong ELF class: ELFCLASS64)

locate 了一把发现系统存在 libnss3.so,但由于是 64bit 的,adobe air 无法使用。理论上安装 32bit 的 libnss 库应该可以解决这个问题,Ubuntu/Debian 自带的 lib32 库并未包含 libnns,需要手工安装。测试安装过程中发现,还需要 libnspr4 库。

下载依赖 deb 包

wget http://mirrors.cn99.com/ubuntu/pool/main/n/nss/libnss3-1d_3.12.0.3-0ubuntu5_i386.deb
wget http://mirrors.cn99.com/ubuntu/pool/main/n/nspr/libnspr4-0d_4.6.6-3_i386.deb
wget http://mirrors.cn99.com/ubuntu/pool/main/n/nspr/libnspr4-0d_4.7.1+1.9-0ubuntu0.8.04.5_i386.deb

手工解 deb 包

mkdir airlib
dpkg -x libnss3-1d_3.12.0.3-0ubuntu5_i386.deb
dpkg -x libnspr4-0d_4.6.6-3_i386.deb
dpkg -x libnspr4-0d_4.7.1+1.9-0ubuntu0.8.04.5_i386.deb

手工安装 deb 包

sudo cp -a airlib/usr/lib/* /usr/lib32

重新运行 air 安装文件,顺利安装完毕。

测试了 twhirl,顺利安装启动,但无法获取信息,可能和 nss 的库有关。

twhirl screenshot on Ubuntu hardy 64bit linux

Monday, September 08, 2008

Linux下通过wine安装google chrome

Chrome还没有linux下完整可用的版本,如果你有兴趣编译,这里有linux下Chrome的编译指南

目前在linux下跑Chrome,wine成了唯一可能的方式,幸运的是,通过geek们的尝试,Chrome已经可以用wine驱动。

安装 wine

首先需要安装 wine 的最新版本 1.1.3。如果你是 Ubuntu 用户:

wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -

For Ubuntu Hardy (8.04):

sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/hardy.list -O /etc/apt/sources.list.d/winehq.list

For Debian Etch (4.0):

sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/etch.list -O /etc/apt/sources.list.d/winehq.list
sudo apt-get update
sudo aptitude install wine

安装 winetricks

wget http://www.kegel.com/wine/winetricks
sudo cp winetricks /usr/local/bin

安装Chrome的依赖包

winetricks riched20 riched30 flash
winetricks allfonts

安装Chrome

wget http://gpdl.google.com/chrome/install/149.27/chrome_installer.exe
wine chrome_installer.exe

启动Chrome

Chrome安装完成后,无法直接启动,需要一点 hacking,我使用下面的小脚本代替 wine chrome 启动:

$ cat ~/bin/chrome
#!/bin/sh
Exec=env WINEPREFIX="$HOME/.wine" wine "C:\\windows\\profiles\\$LOGNAME\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe" --new-http --in-process-plugins

Note: HTTPS 无法正常工作。

Saturday, August 02, 2008

我看 SNS 和 facebook

缘起在广州豆瓣上和PH囧ENIX讨论

SNS 的根本是人何人之间的关系,剥离这层关系,剩下名字和技术是空洞的。即便没有 "Web 2.0", "AJAX" 这些时髦(看到这个词的时候,镜头要拉到三年前)的词语,也会出现 Axax,真正推动技术的是背后的需求,是互联网发展的趋势。

  

早期的 SNS,是用来维持线下朋友关系的网络,比如出现于 95 年的 classmates.com,sixdegrees.com,国内有 chinaren 是陈一舟当年的模仿作品。

  

当前的 SNS,是用来分享和维护关系网的工具。比如国内的校内,5gsns,真实的线下关系是网站的动力源。

把镜头再拉近聚焦到 facebook,它已经完全超越了 SNS 的概念,成为平台。APP的横空出世大获成功,截至到目前,已经超过 14,000 个 APP 应用,最近 F8 上Connect的推出,已经确立了 facebook 的互联网平台提供商地位,说它是下一个 google,毫不夸张。

Thursday, July 31, 2008

QQ for linux, for the future

QQ for linux logo

QQ for linux 终是放出了。

腾讯多年来一直没有开发基于 linux 版的 QQ,linux 用户以前只能使用 gaim QQ/LumaQQ/eva 等开源 QQ 实现。腾讯做为一家商业公司,从纯粹的短期利益角度出发,这么做无可厚非,也无关道德,不过,只是当年施加压力给分析 QQ 协议的 gaim qq 老爹以及三天两头修改协议未免显得无耻和小气。无论如何,今天 QQ for linux 的推出,还是非常正面的,至少我在给 MM 推荐linux 的时候,可以很放心的说,linux 下也可有 QQ。

用腾讯自己的话说:

Tencent QQ for Linux是腾讯公司把握市场需求,针对日渐增多的Linux用户,推出的基于Linux的即时通讯软件。

可见市场占有率才是硬道理,geek 们即便在这个全球化了的新经济时代也永远只能是小众。很有意思的是,QQ for linux 的 logo 上的宣传口号是 “for linux, for the future!",Ubuntu 老爹毅然决然的杀入 Linux 市场,看中的也就是这个 future, 微软被迫拥抱开源同样如此,没有人能够战胜未来,在趋势面前,你会发现垂死抵抗直如螳臂挡车,最后剩下的只会是历史车轮后躁动的飞灰,而那,是留给历史学家的。

废话不多说,放两张截图

Tuesday, July 15, 2008

Ubuntu hardy 上安装 CouchDB

CouchDB

下载

wget http://www.apache.org/dist/incubator/couchdb/0.8.0-incubating/apache-couchdb-0.8.0-incubating.tar.gz
tar zxvf apache-couchdb-0.8.0-incubating.tar.gz
cd apache-couchdb-0.8.0-incubating.tar.gz
sudo aptitude install automake autoconf libtool build-essential erlang libicu libicu-dev libreadline5-dev checkinstall libmozjs-dev
./configure --sysconfdir=/etc --localstatedir=/var
make && sudo make install 
sudo adduser couchdb --home /var/lib/couchdb/ --disabled-password
sudo chown -R couchdb /var/lib/couchdb
sudo chown -R couchdb /var/log/couchdb
sudo /etc/init.d/couchdb start

浏览器打开 http://localhost:5984/_utils/index.html,访问 CouchDB 自带的管理工具。

开源和商业模式

原文发布于 szlug,是szlug聚会时和 xning 兄讨论后的一些思考。

szlug周末聚会回来后,回来之后一直在想开源软件和商业模式这档子事情。

首先自由不是免费,Richard Stallman 说:

"Free software is a matter of liberty, not price. To understand the
concept, you should think of 'free' as in 'free speech', not as in
'free beer'"。

自由不是免费,理解偏差不代表原意的异化。

自由软件允许任何人在同样自由的条款下使用,学习,修改,拷贝,重发布。开源和商业模式并不冲突,开源从来不排斥商业模式。如何建立开源的商业模式呢,一般都是基于软件附加价值,如支持,培训,定制,集成,认证等。基于软件授权的商业模式和开源是不相容的。基于此比较成功的公司有,MySQL, Zend。国外也有很有小型顾问公司提供开源支持,像 MySQL、rails 特别多。

除去自由软件,我们日常接触最多的是开源软件,自由软件是开源软件的子集。在我看来,自由软件和商业更近,自由软件最主要的特点是开发模式的变化,所谓集市和教堂,围绕软件社区的建立,带来的效用很明显,加速软件开发,节省宣传费用,自由软件背后的公司可以基于开源成果建立商业版本或者是解决方案,成功案例有,XFree86,eclipse, Zope 等。

MichaelBibby 的 iredmail 就属于邮件类别的解决方案,而yahoo 收购 Zimbra(同样也是做邮件整体解决方案的) 可是花了 350M 美刀。

所以,我的关点是,开源从来不排斥商业模式,如果你开源的目的是未来利润(利润从没有贬意),而开源后并未带来预期的成功,那么我想需要考虑的更多的是产品的定位,而不是因此否决开源不适合商业。

另外我同意李的低利润说,对于很多软件来说是如此的,所以 IBM 才会早早转向服务,google 做平台,靠长尾的量赚钱。从 1983 自由软件至今,软件行业已经被改变,门槛也已经拔高,软件生产的趋势一定和传统产业的生产线没有太大区别,单纯靠产品赚钱,需要的恐怕是大智慧。

Monday, July 14, 2008

KVM guest 连接 USB 设备临时解决办法

默认的 kvm guest 启动并未模拟 usb, 模拟 usb,需要启动时加上 -usb 参数,qemu 为 guest模拟一个 8 port 的 Intel SB82371 UHCI USB 控制器。

kvm -hda /path/to/your/kvm/image/hda.qcow2

在使用 USB 之前,需要找出 USB 的设备 ID,如:

$lsusb
Bus 007 Device 002: ID 05ac:8502 Apple Computer, Inc.

输出中的 05ac:8502,分别为 <VendorID>:<ProductID>

启动 guest 系统后, CTRL + ALT + 2 转到 Monitor ,手工加载 usb 设备(用上面的输出替换):

#usb_add host:<VendorID>:<ProductID>
Could not open /proc/bus/usb/devices

回到 host 系统发现 /proc/bus/usb/devices 文件不存在,google 后发现相关的 Ubuntu BUG report。Ubuntu 等发行版早将 /proc/bus/usb/devices deprecated 一年之久,hardy 已经完全转向 /dev/bus/usb/devices,相比较 proc 获得有更灵活的权限控制、安全性更高。Ubuntu bug report 中给出了 workaround。

编辑 '/etc/init.d/mountdevsubfs.sh' 取消 40 行后的相应注视:

 # Magic to make /proc/bus/usb work
  #
  mkdir -p /dev/bus/usb/.usbfs
  domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
  ln -s .usbfs/devices /dev/bus/usb/devices
  mount --rbind /dev/bus/usb /proc/bus/usb

执行这个脚本。

$ sudo /etc/init.d/mountdevsubfs.sh start

用此法成功加在招行 USB key,可以进入专业版,实际实验查帐等操作正常,转帐验证时候失败。