@shellex说: 还是你說的靠谱~~ RT : 他不是那种淫 RT 男生欺负女生,不要脸>_<

Archive for May, 2008

超NB的民间自制直升机

BTW: 不要老说直升飞机,这个玩意叫直升机。有点常识好不好
这是广东某处某人手制的直升机,绝对震撼

我真的很赞这个家伙

在Linux下模拟键盘按键

在这以前,我一直以为,除非搞X Window级别的开发,否则根本没法在Linux下模拟键盘消息,或者说键盘事件。像QT,GTK这些High Level的GUI library貌似根本没有提供这些功能。这么看起来,想要实现与Windows下SendMessage(hwnd, KEY_PRESS,0 ,128 )这样类似的功能还真不容易。这大概是Linux下接口不统一的弊端吧。不过还好,我们有XTest(the X test extension)这个Xlib的扩展库,用它可以实现我们想要的模拟键盘按键的功能。
比如说…
XTestFakeMotionEvent(…) // 模拟鼠标移动事件
XTestFakeButtonEvent(…) // 模拟鼠标按键事件
XTestFakeKeyEvent(…) // 模拟键盘按键事件
当然别忘了它的头文件“X11/extensions/XTest.h”
这里还有Xtest的详细接口定义: http://docsrv.sco.com:507/en/man/html.Xext/XTEST.Xext.html
用法还是比较简单的,例子我先不给出,因为我发现了更加便捷的方法:那就是python的第三方扩展库virtkey
virtkey(https://launchpad.net/virtkey): python extension for emulating keypresses and getting current keyboard layout
看看,多么完美的解决方案,Ubuntu下有个叫OnBoard的虚拟键盘程序,就是用这个包包实现的。
我发现python-virtkey依赖于libxtst6这个包,那么肯定也是用Xtest实现的咯~一翻源码,果然如此。
(源码:http://bazaar.launchpad.net/~onboard/virtkey/main/files)
使用方法真的很简单哦,主要有两系列接口:
press_keysym/release_keysym

press_unicode/release_unicode
前者接受keysym作为参数,后者接受键位的unicode.
举个例子:

import virtkey
import time
def simulate():
v = virtkey.virtkey()
time.sleep(3)
v.press_unicode(ord(“a”))
v.release_unicode(ord(“a”))
v.press_keysym(65363)
v.release_keysym(65363)

simulate()

使用python运行,不出意外的话,在你的当前光标处会出现一个新字母“a”,而且光标会右移一位。
如果不用virtkey怎么办嗯?好说,请看virtkey的源码。

Google Treasure Hunt 2008开始了

这是一个什么东西呢?总的来说,就是google搞的一个解密游戏,看看你用计算机解决问题的能力有多强。5月份在google澳洲blog(国内用户打不开,请戴套)上发布的。下面是文章全文:
——————————————————————-
Google Treasure Hunt update
5/17/2008 11:50:00 AM
Posted by Phillip Grasso, Manager, Engineering/Operations
Avast, matey! As announced on the Google Australia blog, we’ve launched Treasure Hunt — a puzzle contest designed to test yer problem-solving skills in computer science, networking, and low-level UNIX trivia. You’ll find the first of four brainteasers at http://treasurehunt.appspot.com/. A new puzzle will be [...]

How to: 在Ubuntu Linux下配置C++开发环境

well, 对于大多数在Linux上have fun的同学来说,一个xxx的开发环境完全没有问题。但是考虑到我接触到越来越多的newbie同学,于是我想这还是有需要的。
btw: 本文内容其实在ubuntu 中文论坛上都能找到的。希望大家养成多多接触社区的好习惯。
那么让我们开始吧。首先我们先确认一下目标:一个基础的C++开发环境。就这么简单。我们采用的编译器是Gcc,很好很强大的一个编译器,ubuntu默认就有带,但是由于软件包不够完整,我们需要做一些别的措施。
先确保你的ubuntu能接入网络,选择了合适的软件源。好,先让我们打开”新立得软件包管理器”,在”系统”->”系统管理”菜单下。点击”搜索”按钮,输入”build-essential”
找到build-essential这个软件包,打勾选择安装。如果是绿色就代表已经安装了。
同理,确保你的gcc, g++, libstdc++6-<子版本号>-dev, libc6-dev, make等等这些软件包都安装了,点击”应用”吧。安装完毕后就ok了。
接着随便打开一个文本编辑器试试,比如自带的那个。

#include “iostream”
using namespace std;
int main() {
cout

ImagineCup之旅(3)-完成了

呵呵…在意料之中。中国区第5还是第4名…
在Microsoft用Ubuntu上网,我原以为我已经很猛了,谁知道还有更加猛的人。
来自北京航天航空的剑峰同学,所在团队开发的参赛项目完全抛弃了微软技术。Jsp, MySQL…汗,完了评委提出的的第一个问题就是你能实现C#的…吗…汗
后来知道剑峰同学原来是个Ubuntu fans…
下午放了,解脱了,去哪儿玩嗯?于是我决定去清华找史东同学去.

为震区同胞祈福!(Feedsky话题)

这个时候我们刚刚在今东宾馆落脚不久,不一会儿,微软方面的接待员给我的房间打来了电话,说微软中国那边有震感,叫我们晚上睡觉的时候注意安全,晚上的活动改在宾馆举行。我觉得很不可思议,放下电话后任也觉得很不可思议。谁知道这谈笑间就凭空消失了几千人类生命。
上不了网,所以直到晚上才确认了消息,地震震中在四川,周边省区也由发生破坏性的震动,远至北京,上海等地都有明显震感,看起来晚上10点到12点有余震的消息是谣言无疑了。
其实关于地震的等级大家往往有个误解,比如说7.8级和7级有多大差别。在这里我们可以计算一下地址的等级。比如说7和7.8,  里氏7.8级别的地震大约比7级大6倍,但是释放的能量大约是7级地震的16倍。这次地震和唐山地震震级相同,可以想象灾区是什么样子。
第二天通过短信给灾区捐了款。
移动联通小灵通的捐款号码为都是106 9999 309 或者 106 9999 301
一次性捐1或2元,就发送短信1或者2到上面的号码
每月捐款5元或10元或15元,就发送短信MY{X}到上面的号码,其中{X}代表5或者10或者15。

ImagineCup之旅(2)-等待半决赛结果

在这篇日志我提到我没法再微软中国上网,但是我今天解决了,办法很简单,使用虚拟机桥接就可以了…不过我不知道怎么桥接无线网卡,所以只能使用有线网络咯。
开源社区活动其实可以从ImagineCup借鉴不少东西,如果要推广开源,我想首先要从计算机类学生中着手,这些未来的开发者们。微软当然没打算从学生作品中得到多少价值,比赛的宣传作用显然更加明显。
社区的力量在中国比较是很有限,人家根本不会在乎。比如现在Linux就是这样一个圈子,会玩的不会走,不会玩的连看都不会看。总的来说,缺少宣传,缺少吸引力;而对学生来说,比赛的吸引力很大。所以很希望那些开源世界的上层建筑,那些企业,也能在教育界做类似的比赛。由企业而不是社区做这种活动的好处是,至少在社会认可度上,要高。
 

ImagineCup之旅(1)-中国区半决赛前夜

这是第一天的日志:
====== 2008 05 13 ======
Created 星期二 13 五月 2008
==== Imagine Cup中国区半决赛前夜 ====
现在时间是2008年5月13日 上午4点10分。我们其实从12日晚上一直奋斗到了现在。在我睡觉休息一下之前,我重新打开电脑写下这篇日志。
好不容易才到了这个京东宾馆,这帮出租司机居然不知道这个前军参招待所的位置。看看,挺一般的,3星以下。房价最低200RMB一晚。卡卡,北京就是北京。
奇异得很,当然也很可怕,刚刚在京东宾馆落脚,微软负责接待的实习生就给我们打来电话,说晚上的抽签分组活动改在宾馆进行,原因是北京感到了地震,位于现代汽车大厦18层的微软中国所在地可能不大安全。当然,原定于今晚的A组试机也取消了。
后来知道是四川某处发生了7.8级的地震,在上海,北京,广州,西安,内蒙等地都有明显震感。震波传递全中国,和火炬有一拼。
北京地震局预报说,12日晚上10点到12点可能在北京地区会有2到6级的余震,晕哦晕,看来,住在老宾馆里还是有好处的,因为那时候的豆腐渣工程比较少,再说这里以前是军方的招待所,我还是比较信任解放军工程兵的。于是前面对宾馆的一点不满也就一扫而光了…
吃过M$提供了麦当劳套餐(我对此很不爽),开会,主会者是负责比赛的三位海龟,话语间流露出中英夹杂的怀习惯。后来参赛队报道的时候还念错了任和我的名字,Faint。
参赛队员比想象的多,女孩大约占1/10,可见形势其实还是很严峻的。btw,看起来我比较喜欢的都是那几种类型…其中有一名,来自武汉大学,当时坐在我后面。
完事后就开始折腾我们的东东了,这里省略若干千字,还好,基本完成。好了,现在我要睡觉了。88

这篇日志是我在微软中国比赛时发表的

一个Linuxer, 参加了Microsoft的ImagineCup,还进入半决赛在公司内部上无线网,是不是很有趣?
这就是:Linux is Everywhere~
有关比赛的详细报道我将在几天后给大家陆续带来。别骂我,这也是没办法的时期…
btw: 在微软中国上网的话,使用Linux,BSD,以及其他非Windows系统估计是不会成功的。因为微软使用内部的DNS,貌似不支持非Windows机器。。。所以,我现在用的队友的Vista. 不过我的ubuntu现在就在微软中国的活动室桌面上摆着,也很拉风了,是吧?

阿西莫夫机器人定律与软件设计

下面是在科幻历史上有名的阿西莫夫机器人三定律:
阿西莫夫机器人三大定律 Isaac Asimov’s “Three Laws of Robotics”
第一定律: A robot may not injure a human being or, through inaction, allow a human being to come to harm.
机器人不得伤害人类,或看到人类受到伤害而袖手旁观
第二定律:A robot must obey orders given it by human beings except where such orders would conflict with the First Law.
在不违反第一定律的前提下,机器人必须绝对服从人类给与的任何命令
第三定律:A robot must protect its own existence as long as such [...]

Page 1 of 3123