Hackathon!

Long time no see.

周末去参加了雅虎北京研究院举办的hack day,很长见识

最早听说Hackathon应该是在那本<打造Facebook>里,连续coding 24小时,想想就觉得很刺激

雅虎作为一间瘦死的骆驼比马大的国际一流公司,终于把这么好玩的比赛介绍到中国来了

比赛办的非常不差钱,包括给外地童鞋报销餐旅,每人配个额外显示器之类…工作环境超我预期很多

作品嘛,想做一个替代即将关闭的GReader的服务,组队找到了志同道合的@xndcn,一只签了企鹅的前端,前端童鞋又找来一只UI(我还是第一次知道前端和UI不是一个职位- -b)

头天上午几个讲座暖了下场,下午开始拍代码…南极熊童鞋相当靠谱,几分钟搭出数据库和web server…我呢照着书写个简单的推荐算法出来

作为一个中午不睡下午崩溃的人,那段代码写了一下午…还好最后输出结果看起来比较正常

到晚上开始见识前端大神各种神,我们想象到的各种功能和特效基本都实现了

雅虎开放的API很多,但貌似不是很靠谱…那个YQL平均抓5、6次才会有一次正常的返回,搞得很崩溃

早上5点天蒙蒙亮,实在熬不住,睡了一小时…起来之后发现只差最后一个feature了

到10点提交了hack,简单排练了下,开始围观其它队的作品

下午2点开始展示,每队2分钟…第一名名至实归,当时看的时候就觉得碉堡了

其它的奖项各有特色,但是好些我之前看好的hack都没得奖

总结那会儿发了一张调查,意见、建议我没填,因为觉得没想到哪需要改进,总之认识了新朋友,玩得很开心~

共产党不灭亡是没有天理的

起初他们封掉了Facebook,我没有说话,因为我不用Facebook;

接着他们封掉了Twitter,我没有说话,因为我Twitter上好友不多;

后来他们封掉了Youtube,我没有说话,因为我们有优酷土豆;

现在他们封掉了Github,我想说话,我的朋友却劝我删掉

你说前面几个输出价值观封掉也就罢了,一个托管代码的网站也要封,这不是欺负老实人嘛

本来以为你家的墙已经和墙里的人达成了某种默契,现在不知神马原因得寸进尺了

反正我是觉得心里某个叫“底线”的东西被触碰到了,再忍,就等着用局域网吧

来,顺手推一本书…我表示没有看完,完全不晓得这本书在说神马

Open vSwitch, libvirt, kvm

虚拟化网络+虚拟机,说大一点手工搭个openstack出来…

环境

Ubuntu 12.04 server, 64bit, 更新至最新

Open vSwitch

简称ovs, 一个虚拟的,支持openflow协议的交换机. 据说以后会替代掉linux自带的bridge, 但是现在的整合还比较欠缺,比如网络接口用系统命令和ovs的命令看到的状态可能会是不一致的…当然不影响使用

首先去官网下载最新的稳定版.在我写这篇文字的时候是1.7.1

然后安装各种依赖:

apt-get install python-simplejson python-qt4 python-twisted-conch automake autoconf gcc uml-utilities libtool build-essential autoconf automake pkg-config libssl-dev iproute tcpdump module-assistant debhelper python-all

apt-get install linux-headers-`uname -r`

解压缩下载到的.tar.gz包,然后改名这个包为openvswitch_1.7.1.orig.tar.gz(“-”改成下划线,加个”orig”)

这个时候你应该能看见名为openvswitch-1.7.1的文件夹,和名为openvswitch_1.7.1.orig.tar.gz的压缩包

然后进入openvswitch-1.7.1这个文件夹,执行:

dpkg-buildpackage

之后退回到上一级目录,你就会看到各种编译好的deb包

其实ovs对Ubuntu的支持还是多友好的嘛,这时你就可以用dpkg命令安装自己需要的包了…

如果需要安装ovs的内核模块,就需要装openvswitch-datapath-source_1.7.1-1_all.deb这个包,之后执行:

module-assistant auto-install openvswitch-datapath

执行

service openvswitch-switch start

命令来启动ovs.

另外建议开启ovs与linux bridge的兼容模式,方法是修改/etc/default/openvswitch-switch文件,把#BRCOMPAT=no改为BRCOMPAT=yes.改动将会在重启后生效

libvirt 与 kvm

libvirt顾名思义是一个跟虚拟化有关的库(“virtualization library”),kvm全称”kernel-based virtual machine”,跟qemu结合比较紧密,相当于qemu的内核模块

使用这俩东西最简单的方法就是virt-manager这个GUI工具,安装:

apt-get install kvm virt-manager

(libvirt会作为virt-manager的依赖而自动安装)

(另.有些CPU不支持kvm, 首先用kvm-ok工具检查一下= =…)

其实Ubuntu源里的libvirt版本略老,not ovs-aware,建议用新版本覆盖掉

仍然是去官网下载最新版本(本文为1.0),之后解压,安装依赖,configure,make install:

apt-get install gcc  make  pkg-config libxml2-dev  libgnutls-dev  libdevmapper-dev  libcurl4-gnutls-dev python-dev  libyajl-dev libnl-dev pm-utils
./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc
make
make install

(注意configure的时候调整了安装位置以覆盖旧版本)

这时候执行initctl start libvirt-bin启动libvirt,就可以用virt-manager来管理虚拟机了

整合

装上libvirt之后,它会自动添加一个叫做”virbr0″的虚拟交换机,并且使用iptables做路由,使得虚拟机也能连接到外网,如果不折腾的话…其实够用了

如果非要折腾一下,下面是一些提示

1.熟读ovs的FAQ,尤其是”Configuration Problems”部分

2.ovs-vsctl show显示系统内虚拟网络的连接情况,ovs-ofctl show显示某个虚拟交换机的各个端口连接情况

3.最好是能有一个非网络的控制方式,免得一遍遍地跑机房T_T…

4.用ovs-ofctl命令手工折腾流表前,把man page过一遍,确保你明白flow description的”normal form”

 

不跟随

这时候说我在用一部非iOS,非Android,非WP的手机似乎有点不合时宜

…而且,它是诺基亚制造的…而且,已经用了快俩月了

the LOST features

待机屏幕显示时间,多久没见过了?而且充分利用了AMOLED这块翔屏幕唯一的优点:只有发光的像素是耗电的

关机闹钟,多久没见过了?”情景模式”,多久没见过了?

“统一”

统一的拨号器,统一的通讯录,统一的账户管理,统一的网络连接管理

统一账户管理 统一通讯录 统一网络连接管理

一头雾水?我来详细解说一下这意味着什么:

这意味着可以直接从拨号器选择打skype的网络电话,意味着短信飞信GTalk都在同一个app里同一个人名下显示——而不像某世界先进操作系统,来个飞信都要提示好几遍

“滑动”

滑动解锁,滑动切换任务,甚至预装了swype——滑动输入法

解锁

 

把所有事情都做对并不容易,这又让我想起某世界先进操作系统了,居然让我把所有默认程序换了个遍

唯一的缺点?木马Elop认为Meego不堪大用…我只想说”呵呵”

本来有机会三分天下,甚至成为No.2的,结果落得如此下场

Shame on you, NOKIA! 等着被收购吧