Moving into Tencent Building

2009-09-03
今日第一次准时落班,因为要搬迁到腾讯大厦,哈哈兴奋~~

不过甘早落班,未有班车接送翻屋企,难得有时间,决定行路返去 :D

南山科技路,汇聚左好多IT公司,远处太阳底下突出来既就系腾讯大厦了~~

中兴应该系腾讯大厦建成之前附近最高既建筑,夜景好正~~


腾讯大厦~~传说中顶楼既风景一流,听日入去上班之后要上去睇睇~~

从飞亚达出发大概行左半个钟头先来到腾讯大厦脚下 -____- ||| 

屋企就系新大楼隔离,趁时间尚早,摸索条归家路先~~
深圳既天气除左比较热之外都仲唔错,蓝天白云都仲系偶然有的~~

我住的友邻公寓........隔离既西海明珠:P 同公司另一个同事合租左一个30楼既单位,坐北向南,景观唔错,西面可以远远望到一个码头,码头既对岸就系珠海了 :)

东门“便便”游~~

2009-08-09
今日某兴和小冰导游东门,稳到左传说中的“便所主题餐厅”,哇D雪糕真系同XX一样....好彩味道好正常:P 然后去左万象城睇Ice Age III 3D版,哇门票要120蚊(囧囧),哈哈只可怜既松鼠又为左粒松子四处奔波~~

小冰多有后现代非主流的潜质~~

东门步行街,感觉像回到广州的上下九~~

可怜的小冰,走着走着突然被埋伏在路边的卖花女用死亡缠绕攻击,瞬间被秒杀~~

信春哥者得永生,小冰在便便主体餐厅满状态复生~~(连座位都是马桶 -_-)

菜单都好有特色....

用“马桶”装住的“便便”雪糕....

哈哈,间餐厅入面有好多XX公仔 :P

传说中的大学班长某兴~~

便便是用来舔D orz

厕所入面有好多恶搞画报~~

Missing you ....

2009-08-07

今天收到了公司送的一对QQ公仔,本来是入职的时候送的,不过说当时没存货,就拖到现在才到手~~加上这两只已经拿了5只胖企鹅了....哈哈再接再厉~~

明天又是星期五了,感觉上班的时间过的很快,老婆我好想你!

Inside Fiyta

2009-08-04
上班两周,就得了胃痛 -_- 飞亚达里到处都是QQ公仔:
5楼办公室一进门就一只巨型企鹅,肚腩都已经胖得坠下来了~~
导向牌后面也躲着QQ
旁边的导师的桌脚下也有一只加大的QMM
连厕所门上的都是QQ -____- |||
每晚的免费宵夜:面包+汽水,还有免费自助餐,想不胖都不行....

Moved to my new house ....

2009-07-27
昨天搬到酒店隔离的友邻公寓30楼,哈哈风景不错~~

从露台看出去的夜景~~好多“星星”~~

从露台看出去的晨景....刚落完雨好多云....


室内系甘的:P

Linux文件与目录权限

2009-07-22
我们在linux里输入ls -l或者ll后,会输出一个如下的列表,显示当前目录下的文件和子目录详细信息(XXX表示文件名):
drwxr-xr-x  4 oscartang users 4096 2009-07-22 11:25 xxx
drwxr-xr-x 23 oscartang users 4096 2009-07-22 11:25 xxx
drwxr-xr-x  3 oscartang users 4096 2009-07-22 11:25 xxx
drwxr-xr-x  4 oscartang users 4096 2009-07-22 11:25 xxx
drwxr-xr-x  3 oscartang users 4096 2009-07-22 11:25 xxx
-rwxr-xr-x  1 oscartang users   69 2009-07-22 11:25 xxx
drwxr-xr-x  3 oscartang users 4096 2009-07-22 11:25 xxx

最前面有一堆“drwxr-xr-x”样子的东东是什么来的呢?它是文件/子目录的权限设置,第一个字母通常用于区分类型(是文件、目录、还是其他东东),后面9个字母由左至右每三个为一租分别标识所有者、与所有者同组用户、其他用户的权限。具体如下:

d : 表示是一个目录,事实上在ext2fs中,目录是一个特殊的文件;
- : 表示这是一个普通的文件;
l : 表示这是一个符号链接文件,实际上它指向另一个文件;
b、c : 分别表示区块设备和其他的外围设备,是特殊类型的文件;

s、p : 这些文件关系到系统的数据结构和管道,通常很少见到。

r(Read) : 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限;
w(Write) : 对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限;
x(eXecute) : 对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限;
- : 表示不具有该项权限。

下面举例说明:
-rwx------ : 文件所有者对文件具有读取、写入和执行的权限。
-rwxr—r-- : 文件所有者具有读、写与执行的权限,其他用户则具有读取的权限。
-rw-rw-r-x : 文件所有者与同组用户对文件具有读写的权限,而其他用户仅具有读取和执行的权限。
drwx--x--x : 目录所有者具有读写与进入目录的权限,其他用户近能进入该目录,却无法读取任何数据。
drwx------ : 除了目录所有者具有完整的权限之外,其他用户对该目录完全没有任何权限。

Second day at work ....

2009-07-21
同事们工作都好认真,唯独我仍在看文档看代码,努力跟上各位前辈的步伐....上班两日,最有感触的是....饿:P,看来要带点零食来上班才行了~~公司说5点半下班,但接送班车却到7点至11点才有....明显鼓励各位加班....饿晕了,先去吃饭~~
Tomorrow will be a better day :)

5月35日

2009-06-04
今天终于答辩完了~~哇演示的时候紧张得我手震震~~最后程序本身倒没什么问题,反而又是论文格式要改,郁闷,这些填表教授表填多了心理不平衡,也要让学生感受一下~~毕业了,感触良多,如果问我大学里最大的收获是什么,我会说,不是书本上的知识,不是技术上的进步,而是认识到什么叫做冷漠~~渐渐的,我对很多东西失去了信心,对周围的人,对这个社会,对这个国家,都已经不再像从前那样看待,我想这就叫做成长吧。

今天又有更多网站进入“技术维护”状态,想必是企图完全切断国民讨论的渠道,让今天不了了之的过去,我对20年前的今天没有多少了解,我不对一段我不了解的历史做任何评论,只是觉得能够做出这种卑劣的事情,只能证明某些人心里有鬼~~连“分享网络2.0”这样的一个技术型网站都被自觉维护,还要特意强调自己真的是因为技术问题要进行维护,虚伪!我真的觉得很失望,不禁想起《V for Vendetta》里的一句对白:If you're looking for the guilty, you need only look into a mirror.


全国技术维护日

2009-06-03
全国技术维护日


今天国内的饭否和VeryCD两大网站也顶不住河蟹的重量,纷纷俯首称臣,在“敏感时刻”自觉进行“技术维护”整站关闭,还能说什么呢~~我也自觉技术维护一下吧~~

Use Erlang to handle xml stream

写了一个模块,使用xmerl_scan:string函数流式的读取和处理XML流(边读边处理),很适合用于处理XMPP协议的XML流数据,每读取到一个完整的节点(message, presence, iq ....)就会做相应处理~~源码在这里~~

豆瓣网:BLOGSPOT网络遊彳亍小组!小组已被解散

尊敬的用户:

作为一家在中国境内运营的网站,
豆瓣遵守中国的法律法规和相关政策的要求。( 相关法律法规,请参考《互联网信息服务管理办法》http://www.cnnic.net.cn/html/Dir/2000/09/25/0652.htm 第十五条。)

你参与的小组 BLOGSPOT网络遊彳亍小组! 因讨论主题属于社区指导原则不允许、不欢迎的内容,已被解散。

由此给你带来的不便,我们深表歉意,并感谢你的理解和配合。

附 社区指导原则:http://www.douban.com/about?policy=guideline

——豆瓣
 
今日莫名其妙的收到了这样一封邮件,我都不记得了自己参加了这样一个游行小组,貌似只是声讨政府屏蔽BLOGSPOT的做法,近来说临近六四,国内很多动作,百度贴吧里各大学的贴吧都被禁止了评论功能,以图阻止学生们交流,很多网站都加大力度查封所谓敏感内容,事实上这样做实在不智,须知人的好奇心,越是搞的神秘,越是有人要翻墙去看个到底,现在互联网时代,要屏蔽资讯不像once upon a time那么容易~~再说平生不做亏心事,夜半敲门也不惊,如此之举实乃有些人实在心虚害怕~~
 
但是再怎么说,要在这样的社会存活下来,还是有不少网站,尤其是大网站很识时务,主动配合,不顾扭曲自己,不顾用户流失,但求留得青山在,对这样的服务商,我又能说什么呢,想起《斯巴达300勇士》里Leinidas的一句台词十分适合:You there, Ephialtes. May you live forever.

erlang 与 linked-in driver 间的通信

2009-05-31
erlang貌似没有直接向port写入整数的方法,通过port传送的全是binary数据,以下代码在erlang中通过port传送一个整数给cpp读取~~
Erlang :
send_integer(Int) ->
    Size = erlang:system_info(wordsize) * 8,
    Data = <<Int:Size/integer-little>>,
    Port ! {self(), {command, Data}},
    ....

CPP :
static void output(ErlDrvData handle, char* buff, int bufflen){
    int *num = (int *)buff
    ....

Google Docs 写博测试

2009-05-30
Google Docs 写博测试











拜GFW所赐,Blogspot从大陆不能直接访问,虽然用代理能够正常访问正常发文,但上传不了图片,无奈,发现原来Google Docs可以当作编辑器将文章发布到Blogspot,实在十分好!马上测试一下~~

Ubuntu下保存mms类型地址的视频

2009-05-26
在ubuntu下用这个mimms软件可以下载mms类型地址的视频,安装很简单,如下:
sudo apt-get install mimms

装好后输入如下命令即可下载,有进度和剩余时间显示~~
mimms mms://....

Google App Engine on Ubuntu 9.04

2009-05-25
Google App Engine官方所支持的python版本为2.5,BUT Ubuntu 9.04默认使用的是python 2.6.2,这样在本地测试时就会遇到点问题了,比如会出现如下的异常:
Throwing : No module named _multiprocessing

不过幸好,我们只要转回2.5版本就平安大吉了,步骤如下:
  • sudo apt-get install python2.5
  • 修改dev_appserver.py文件,将第一行替换为#!/usr/bin/env python2.5
  • OK~~

Erlang Linked in driver

2009-05-24
Erlang允许其他语言编写的程序以共享库的方式动态连接到Erlang运行时环境里运行,与Erlang Port的方式相似,这种方式称为linked-in driver(内部连接驱动??),是Erlang与其他语言程序交互的最高效的方式,但同时也是最危险的,因为一旦驱动内部出现致命异常,Erlang虚拟机也会崩溃,拖累其他Erlang进程一起挂掉,因此如非必要不推荐使用linked-in driver。

下面是C++编写的driver,具体代码结构解析请参见《Programming Erlang》
#include 
#include "erl_driver.h"
using namespace std;

struct data{
    ErlDrvPort port;
};

//PORT打开时执行
static ErlDrvData start(ErlDrvPort port, char *buff){
    data* d = (data*)driver_alloc(sizeof(data));
    d->port = port;
    return (ErlDrvData)d;
}

//PORT关闭时执行
static void stop(ErlDrvData handle){
    driver_free((char*)handle);
}

//ERLANG发送来信息时执行
static void output(ErlDrvData handle, char *buff, int bufflen){
    cout << buff << endl;
    char rs[] = "ok";
    data* d = (data*)handle;
    driver_output(d->port, rs, 2);
}

ErlDrvEntry driver_entry = {
    NULL,    //F_PTR init N/A
    start,   //L_PTR PORT打开时执行此函数
    stop,    //F_PTR PORT关闭时执行此函数
    output,  //F_PTR ERLANG发来信息时执行
    NULL,    //F_PTR ready_input, called when input descriptor ready to read
    NULL,    //F_PTR ready_output
    "test",  //DRIVER名,OPEN_PORT函数的参数
    NULL,    //F_PTR finish, called when unloaded
    NULL,    //F_PTR control, port_command callback
    NULL,    //F_PTR timeout, reserved
    NULL     //F_PTR outputv, reserved
};

extern "C"{
    DRIVER_INIT(test){
        return &driver_entry;
    }
}
然后用如下命令编译成共享库:
g++ test.cpp -I/usr/local/lib/erlang/usr/include/ -fPIC -shared -o test.so

Erlang里调用这个共享库的代码如下:
-module(test).
-compile(export_all).

start() ->
    ok = erl_ddll:load_driver(".", "test"),
    Port = open_port({spawn, "test"}, [{packet, 2}]),
    Port ! {self(), {command, "woo just a test"}},
    receive
        {Port, {data, Data}} ->
            ok = io:format("[~p/~p] ~p\n", [?MODULE, self(), Data])
    end,
    Port ! {self(), close}.

最近~~

今天更新了Ubuntu 9.04,性能好了不少,启动速度明显加快,开了可视化特效,Firefox页面滚动也不卡了~~我的ONDA主板上的集成显卡也能直接识别出来,再也不是“受限驱动”的,声音也很正常,不用自己去ALSA找驱动手动安装,系统安装完就直接有声音出来~~

一切顺利的话,还有一个月就要去工作了,突然有点不安,不知不觉,原来大学四年时光已经过去了~~ Everything that has a beginning has an end.

Blogspot依然被封,不过当然我也依然有办法翻墙来继续写博客,只是觉得这个国家又多一样不正常的平常事了,渐渐的,我发现我对这个社会的看法改变了,不再那么愤青,不是因为我不再追求,而是愤青只是一种无能的反应,我们有今天,不是社会的错,是每一个人的错。

Tail Recursion & ActionScript 3.0

2009-05-19
貌似AS3.0还未支持尾遞歸,如果執行尾遞歸函數的話,可能會得到如下的堆棧溢出異常:
Error #1023: Stack overflow occurred

包括在使用Alchemy時的C/C++函數裡如果有遞歸的話也可能會出現堆棧溢出,鬱悶~~唯有改改算法或者等AS4.0吧,聽說4.0會支持尾遞歸~~

sztrace not declared ?

今天用Alchemy編譯一個C++文件時,得到如下錯誤:
error: ‘sztrace’ was not declared in this scope

在c裡面sztrace函數都可以直接使用,怎麼到了c++就出錯了呢... 搜索一下在Adobe Forums裡有如下解答:
sztrace is a C, rather than C++, function.  Because your are compiling your code as C++, you must wrap your manual declaration with extern "C" { } so that the function is not given c++ decorations.

OK,在代碼裡加入如下定義,編譯成功~~
extern "C"{
    void sztrace(char*);
}

Blogger is being GFWed

2009-05-17
Blogger也撞牆了....Google的服務一個接一個的被拒之牆外,讓人怎麼活下去....然而對于這樣堂而皇之的侵犯,除了鬱悶和無奈,又能做什麼呢?這樣只會讓民眾更加討厭這個黨這個社會,更加討厭你們這群烏合之眾,遺為後世唾罵~~

我改變不了世界,我改變不了他人,但至少我還能堅持做好自己~~

M-OSCAR | Powered by Blogger | Entries (RSS) | Comments (RSS) | Designed by MB Web Design | XML Coded By Cahayabiru.com