Skip to main content

Posts

Showing posts from 2009

64bit Linux 下 Flash Player (nspluginwrapper) 不响应鼠标点击

由于adobe 64bit flash player alpha的一些问题, kongregate的一些功能不支持,我只好换回nspluginwrapper 而后发现鼠标点击经常不被识别,或者说几乎完全不能识别。 根据 https://bugs.launchpad.net/ubuntu/+source/flashplugin-nonfree/+bug/410407 解决方法是 修改/usr/lib/nspluginwrapper/i386/linux/npviewer 在倒数第二行添加 export GDK_NATIVE_WINDOWS=1 其他可能的解法是 禁用 compiz 或者安装64位Flash Player

Game Conqueror v2.0b

Game Conqueror是一个Linux下的游戏修改器。 我想要一个CheatEngine for Linux,找不到,于是自己动手了,有了初代的GameConqueror。 而后发现了scanmem, 看了其功能和代码后果断放弃了自己的代码,而重整旗鼓给scanmem写图形前端 -- 倒不是花哨壳子,有些功能还是有个GUI好使。 -- 于是有了 GameConqueror v2 同时感谢scanmem的作者Tavis,我也可以同时修改scanmem,一方面是为了前端方便,另一方面可以给scanmem加新功能。 另外GameConqueror已经是scanmem的一部分了。 项目主页 http://code.google.com/p/scanmem/ 目前没有发布版,只能svn co最新代码。 欢迎各种反馈。

吐血游戏推荐: Braid 时空幻境

朋友推荐的游戏,解谜加动作类。 动作部分有点像超级马里奥,而解谜部分 -- 难死!后期基本就靠攻略了。游戏中充斥着时光倒流等概念,对逻辑,推理有很大考验。 作为一般玩家,到此可能就结束了,而我在游戏中也没感到什么异样,只是觉得音乐有时有些郁闷。 而在Youtube查攻略时发现了有隐藏的星星可以拿,拿到全部星星还有隐藏结局。 星星的拿法可谓变态中的变态,其中某一颗需要2小时才能拿到!!!另外一颗在过了前几关之后就再也不能拿了,必须重新开始,而我发现这个时候已经通了一次全关了。。。 在这种情况下只好让Trainer出动了,于是会漂浮和穿墙了,顺利的又通了一次关,同时再次感叹星星的变态,不仅仅是难度,我第一次通关时竟然一个星星都没看到过 -- 当然看到我也不知道去吃。。。 最后说说剧情,整个游戏是用很多笔记本叙述剧情的,我自己玩的第一遍,感觉无非是救公主,想超级马里奥那种。 但是最后一关,首先一个人抱着公主出现,公主跳上高台高呼救命,而后主人公开始和公主在两条路上奔跑,调整机关,一周到关底,公主回到卧室睡觉,而主人公爬到卧室旁边。 本来,到此就该结束了的。 但是下面时光开始倒流,公主和主人公开始往回跑,直到最后,公主高呼救命,然后一个人(就是一开始那个人,让人以为是魔王之类)将跳下的公主接住,然后救走。 我还觉得有些奇怪,因为这时主人公还在场景里,只能离开。后来看了网上文章才明白,原来主人公是一直在追逐公主,而公主是想躲避甚至杀死主人公。 不得不惊叹这关设计之巧妙!非言语之所及,非亲身体验不可。 而尾声的笔记本透露了更多的剧情,整个游戏其实是倒叙。最后一关是时间上最早发生的,而第一关是结局。在网上看到这句话时,顿时豁然开朗,整个游戏也就变得非常连贯了。 而实际上,根据网上说法,这个游戏是讲了一个关于核弹的故事,主人公是一个研究核弹的科学家,看似还很有道理。但整个游戏丝毫未提核弹二字,实在高明! 整个游戏,不论关卡难度和设计,时间概念,图像, 音乐,以及故事背景和内涵,都堪称极品。不过说实话手感略差一点,但是不影响游戏。 绝对吐血推荐! 参考资料: http://blog.sina.com.cn/s/blog_565e99380100en6b.html http://www.mtime.com/my/weiwancheng/blog/1932064/ http://past...

ubuntu 9.10 禁用 gdm 登录声音

不知道是不是bug,反正一直没找到禁用的选项 -- 越来越依赖图形界面了。。。 然后在 http://ubuntuforums.org/showthread.php?t=1315659 找到解法: sudo -u gdm dbus-launch gconftool-2 --set /desktop/gnome/sound/event_sounds --type bool false 原理是禁用 gdm 用户的声音选项

Firefox 隐藏 Menu Bar

由于我一直用Firefox 3.7 nightly,很多插件都不支持了 另外我的笔记本是宽屏,Menu Bar占一行还是蛮浪费的,于是决定干掉它 多方google后,得到解法 修改userChrome.js或者利用stylish创建脚本 #toolbar-menubar{ margin-top: -25px !important; opacity: 0 !important; } 当然也可以用display:none,但是那样的话菜单是真正消失了,现在的方法按快捷键还是能用的。

[转]ubuntu下设置ADSL共享上网

以前就想试试了,只是没需求,所以没动力。这次有需求了,搞了一搞,还蛮有趣 //原文link: http://www.5dlinux.com/article/1/2007/linux_10682.html Windows 下的共享上网比较简单,选中ADSL连接,右键属性,将共享选上即可。在ubuntu下,也需要设置,但是使用iptables进行IP伪装。或者使用 firestarter之类的图形界面的工具。 ubuntu下用ADSL拨号,需要在终端输入sudo pppoeconf,然后根据提示,自动检测网卡和ADSL拨号modem,如果找到,则提示输入用户名和密码,注意将用户名前面的username几个英文字母去掉。 以后使用 sudo pon dsl-provider 拨号上网,使用sudo poff dsl-provider下线。sudo plog查看拨号日志。 通过 系统->系统管理->网络 来配置网卡IP,或通过命令行方式。 网卡IP和配置放在/etc/network/interfaces ,可以用超级用户进行编辑。 对于无线网卡,配置同上。 下面摘自ubuntu 共享上网的帮助。 IP 伪装的目的是为了允许您网络上那些有着私有的、不可路由的 IP 地址的机器可以通过做伪装的机器访问 Internet。来自您私有网络并要访问 Internet 的传输必须是可以操作的,也就是说回复要可以被路由回来以送到发出请求的机器上。要做到这一点,内核必须修改每个包 源 IP 地址以便回复能被路由回它这里,而不是发出请求的私有 IP 地址,因为它们对于 Internet 来说是不存在的。Linux 使用 Connection Tracking (conntrack) 来保持那个连接是属于哪个机器的,并相应地对每个返回包重新做路由。发自您私有网络的流量就这样被伪装成源于您的网关机器。这一过程在 Microsoft 文档中被称为 Internet 连接共享。 这可以用单条 iptables 规则来完成,也许基于您网络配置来说会有一些小的差异: sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE 上述命令假设您的私有地址空间是 192.168.0.0/16,您与 Inte...

Google Earth 在 Linux 下崩溃

Ubuntu 9.10 64bit 从medibuntu装了googleearth,或者用googleearth-package,都不行,现象是运行后不显示地球,点击右键就崩溃。 一开始以为是64位系统的问题,Google半天无果。 后来下载了官方安装包,安装完就点了运行,然后竟然能用了!原来是因为用了root权限,普通用户还是不行。 于是换回medibuntu的版本,照着这个方向Google,最后在 http://groups.google.com/group/earth-linux/browse_thread/thread/77e66e32dbec433a 处找到原因和解法 即~/.config/Google以及里面的内容owner是root:root,这当然不行了。 把权限改好,Google Earth会说不能访问原来的目录,并把一些目录重置(其实就是原来放在了/root,现在改回到~) 于是可以正常使用了。

Firefox 与 Apparmor

Ubuntu 9.10 前一阵子突然发现firefox-3.5不能下载了,浏览器,downthemall都不行。并且似乎不是下载目录权限问题。 不知google知:https://bugs.launchpad.net/ubuntu/+source/firefox-3.5/+bug/433362/+index#true 原因是firefox-3.5这个包带了一个apparmor的规则,阻止了firefox对一般目录的访问。 临时解决办法是 sudo ln -s /etc/apparmor.d/usr.bin.firefox-3.5 /etc/apparmor.d/disable/usr.bin.firefox-3.5 禁掉这个规则

Python 模拟鼠标动作的函数

最近在写游戏机器人,用 Python 写的,需要模拟鼠标的动作。 Google 了好久,很快发现了模拟键盘的 virtkey,鼠标的很难找,但是最终还是找到了。 相关链接是 http://mail.python.org/pipermail/python-list/2007-December/641865.html http://www.tranzoa.net/tzpython/tz_windows_stuff.py 以及 Xlib 文档 示例代码: import Xlib.display import Xlib.X import Xlib.ext.xtest # 点击 display = Xlib.display.Display() def mouse_click(button): #button= 1 left, 2 middle, 3 right Xlib.ext.xtest.fake_input(display,Xlib.X.ButtonPress, button) display.sync() Xlib.ext.xtest.fake_input(display,Xlib.X.ButtonRelease, button) display.sync() # 移动 ds = display.Display() def goto_xy(x, y) : xtest.fake_input(ds, X.MotionNotify, x = x, y = y) #注意x,y参数的写法 ds.flush()

Windows 键盘问题一例

今天打开电脑,进入Windows,登陆时竟然发现键盘不能用!冷静了一下后用软键盘登了,登陆后发现还是不行! 于是用鼠标和软键盘操作,看Device Manager,键盘设备有个黄叹号,设备状态里显示 Windows cannot start this hardware device because its configuration information (in the registry) is incomplete or damaged (code 19) Google之,在 http://www.edmartechguide.com/2009/02/windows-cannot-start-this-hardware.html 里得到线索 于是进入Regedit,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class项下逐个检查,直到找到{4D36E96B-E325-11CE-BFC1-08002BE10318},发现Class值是Keyboard,那么应该就是这项了 由于权限问题,改名和删除都不行,于是仔细观察各项,发现"UpperFilters"里有个可疑的alidevice,于是删掉,把"kbdclass alidevice"改成"kbdclass" 然后去Device Manager里Uninstall键盘设备,然后刷进,于是可以用了。 这样看来,应该是淘宝的驱动挂了,或者是让我搞挂了。 另外是Device Manager里的PS/2鼠标也不能用,这里是我笔记本上的触摸板。我用的鼠标是USB的,不过注册表里没有发现可疑项,重启以后自然能用了。 另外庆幸我的USB鼠标还能工作,否则输入设备一个都没了。。。好险

gdm 配置文件的一个问题

今天想整一下xdmcp, gdm 配了半天也不出个所以然。 在我机器上 /etc/gdm 目录里 除了 gdm.conf gdm.conf-custom 还有个 gdm-cdd.conf 而且看 gdm 启动的命令行里竟然也是用 gdm-cdd.conf 根据 https://bugs.launchpad.net/ubuntu/+source/ubuntustudio-look/+bug/153837 里面的说法,这个是 ubuntustudio 的一些包搞的鬼。 于是就把 ubuntustudio 相关的所有包(主要是主题)删去, 问题解决。

64位Windows安装gvim

一开始照常下载了32位的安装包,运行没什么问题,就是explorer的右键菜单里不能加入edit with gvim这个选项,重装多次也不行。 后来搜了一下,说是32位的extension dll不能被64位的explorer加载,而再后来在发现vim下载页上有一行小字 Win64 64-bit binaries for MS-Windows can be found at http://code.google.com/p/vim-win3264/. The Win32 binaries should run too, but the "Edit with gvim" context menu entry won't work, since a 32-bit shell extension DLL cannot be loaded into the 64-bit Explorer.exe. 但是前面windows binary的地方似乎并没有提到这一点。。。 于是去给的链接处下了一个64位的,安装运行,一切ok!

创建 svn repository 的命令

弄了好几次,每次都得现查一遍。所以整理一下列于此: 摘自于 http://www.howtoforge.com/debian_subversion_websvn // root # mkdir /var/svn-repos/ # svnadmin create --fs-type fsfs /var/svn-repos/project_name # groupadd subversion # addgroup svnuser subversion # addgroup someuser subversion # chown -R svnuser:subversion /var/svn-repos/* # chmod -R 770 /var/svn-repos/* // normal user (should be in group subversion) $ mkdir ~/.ssh/ $ cd ~/.ssh/ $ ssh-keygen -t dsa $ cat ~/.ssh/id_dsa.pub | ssh you@ "cat - >> ~/.ssh/authorized_keys" $ svn import -m "importing test over ssh+svn" svn+ssh:// /var/svn-repos/project_name/trunk $ svn co svn+ssh:// /var/svn-repos/project_name/trunk

[转]使用Pdftk合并PDF文件

link: http://bbs.haopdf.cn/viewthread.php?tid=441 PDF文件的跨平台特性使其应用广泛,我们在工作学习中经常接触此类文件,但从网上得到的PDF文档,经常是一篇文章中单独页面,怎么把这些单独的页面重新拼合成完整的文档就成了不小的问题。 当然,我们可以借助于Adobe Acrobat中的“Create PDF|From Multiple Files”合并这些单独的页面,但Acrobat是Adobe公司的商业软件,很多朋友由于版权问题并不会安装Acrobat。那么,我们能够使用什么软件来实现同样的功能呢?那就是 Pdftk。 Pdftk是由Sid Steward写的一个PDF增强软件,也就是所谓的PDF Hacks。它可以合并/分割PDF文档、解开必要的输入密码、输出加密、给PDF文档加水印、从PDF文档中解出附件、将PDF文档变成一页等等,能够做到操作PDF文档的所有事情。 其合并文档的具体用法为: 合并多个文档成一个文档: pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf 使用参数: pdftk A=1.pdf B=2.pdf cat A B output 12.pdf 使用通配符: pdftk *.pdf cat output combined.pdf 从几个文档中分割内容合并成一个文档: pdftk A=one.pdf B=two.pdf cat A1-7 B1-5 A8 output combined.pdf

texlive 导致 ubuntu 的一些包卸载错误

卸载(purge, 不知道会不会影响一般卸载和安装)报错install-info: No dir file specified; try --help for more information. 在https://lists.ubuntu.com/archives/universe-bugs/2009-January/039982.html处看到了提示 原因是texlive安装后的其install-info的路径优先级比系统的优先级高,而二者不兼容 解决办法是在卸载包的时候临时将texlive的install-info改名

Vista 系统每次登陆自动创建加载一个临时用户的profile

症状: 每次登陆桌面会自动还原,增加文件后重启,或者重登陆后就消失 (其实这个只是最明显的症状) 分析: 没有发现可疑进程和自启动项 打开cmd发现所在目录是c:\users\temp. c:\users\ 目录还在,内容也还在 于是可以看出是系统创建了一个临时用户。 解决: 根据 http://szmmzs.itpub.net/post/3256/482379 在事件查看器中应当可以看到如下事件 Log Name: Application Source: Microsoft-Windows-User Profiles Service Date: Date Event ID: 1511 Task Category: None Level: Warning Keywords: Classic User: User Computer: Computer Description: Windows cannot find the local profile and is logging you on with a temporary profile. Changes you make to this profile will be lost when you log off. 一般来说产生的原因可能是profile目录内容损坏或者权限问题,但我看了一下,似乎都不是 解法是 1 用有管理员权限的其他用户登陆(实在没有别的用这个登录其实也行) 2 备份c:\users\ ,并改名/删除 3 用管理员打开regedit, 定位于HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList 4 找到一个 .bak, 其中的ProfileImagePath应当为c:\users\ 5 删除 .bak这个项,注销,并用出问题的用户登陆 6 这时c:\users\ 应当被重建 7 恢复备份的内容 8 重登陆 这是应该就没问题 另一说问题是该用户属于guest组,取消即可。 但这次遇到的不是这个情况。

[转] 22条经典的编程引言

Link: http://cocre.com/?p=808 实在是有意思~ //原文 下面的这些经典的引言来自英文,也许有些我翻译的是不很好,所以,我提供了中英对照,如果有问题,请大家指正。 过早的优化是万恶之源。Premature optimization is the root of all evil! - Donald Knuth 在水里行走和以一个需求规格进行软件开发,有一点是相同的,那就是如果水或需求都被冻住不了,那么行走和软件开发都会变得容易。Walking on water and developing software from a specification are easy if both are frozen - Edward V Berard Hofstadter 定理:“一件事情总是会花费比你预期更多的时间,就算是你已经考虑过本条Hofstadter 定理”。It always takes longer than you expect, even when you take into account Hofstadter’s Law. - Hofstadter’s Law 有些遇到问题的人总是会说“我知道,我会使用正则表达式”,那么,你现在有两个问题了。(意思是:你本想用正则表达式来解决你已有问题,但实际上你又引入了“正则表达式”的一个新问题)Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems - Jamie Zawinski 调试程序的难度是写代码的两倍。因此,只要你的代码写的尽可能的清楚,那么你在调试代码时就不需要那么地有技巧。Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. - Brian Kernighan 用代码行来衡量开发进度,无异于...

cannot open < gtk-doc.make

编译webkit,运行automake时发现了这个工具 gtk-doc-tools也装了 google无果 然后查看gtk-doc-tools里的bin文件,运行了几个,直到运行gtkdocize,没有报错,而且目录下多了一个gtk-doc.make文件,心想有戏 然后make 然后就行了 是我无知还是wekbit bug ...

有关swf加密的一点感想

最近想把某flash游戏的1代和2代下载下来玩,但是都有域名验证,于是只好搬出decompiler 1代没有加密,结果是这么判断的 if(_url.indexOf("http://") != -1){ // ok }else{ // error } 当然直接爆破就好了 2代加了密,而且好像是swfencypt的模式,一开始是想放弃了,但是一想其实那个swfencrypt只是插了段恶心的tag,代码其实没有变,所以想碰碰运气 于是接着看1代的raw code,如下 //96 0e 00 08 00 07 01 00 00 00 08 01 07 0f 00 00 00 _push "http://" 1 "" 15 //22 _getProperty //96 02 00 08 02 _push "indexOf" //52 _callMethod //96 05 00 07 ff ff ff ff _push 4294967295 //49 _equals2 //12 _not //4c _dup //12 _not //9d 02 00 23 00 _if true goto #21 原来得到_url是靠压一个0f进栈,然后调22 然后拿ue去2代的swf里搜0f 00 00 00 22,只有一处,我晕,然后往后看,很多都和1代代码相似,只是'indexOf'的位置不一样,所以push的值也有少许区别。 由于判断的是!=,所以一般会有个not,结果不远处果然有个 12 9d, 然后把12改成01。 然后竟然就能玩了。。。 感想是: 1.swfencrypt的加密某种方面来说还是很弱 2.写代码时注意安全才是最重要的 -- 但是给程序员带来了而外的麻烦。。。 3.今天运气不错~~

vista 下 Indeo 5 解码器问题

有个avi是iv5格式的,装了k-lite codec也不能看,光能听声。下了个安装包,安不上。。。 搜了半天,在 http://forum.videohelp.com/topic327077.html 原来vista本来就有对应dll,只是没注册。不知是不是故意的。 解决办法是,用管理员运行regsvr32 ir50_32.dll

一个关于windows下gtk xmlparse.dll的问题

今天运行一个gtk程序时弹出一个对话框"the procedure entry point XML_setDoctypedeclHandler could not be located in the dynamic link library xmlparse.dll" 根据链接 http://www.astahost.com/info.php/Problems-Gimp_t10925.html ,是xmlparse.dll没有安装好的问题。虽然我这里不是gimp的问题,但是看情况应该类似。 解决办法是把gtk的xmlparse.dll拷到c:\WINDOWS\System32 。此外xmltok.dll也有类似问题,用同样方法解决。

[转] 迅雷去广告

From http://bbs.xunlei.com/thread-394812-1-1.html 1:去掉flash广告条和右下角的无聊广告 打开迅雷目录(默认c:\Program Files\Thunder)下的Program文件夹,用记事本打开gui.cfg文件,将里面涉及网址的咚咚一概删掉,保存退出。 2:避免迅雷桌面新闻打扰 这个很简单,在“只需简单两步 避免迅雷桌面新闻打扰”这个帖子里有叙述,只是将迅雷设置一下就ok了啦! 3:去掉迅雷界面右边“热点推荐”的方法 打开其安装文件夹,默认是:C:\Program Files\Thunder Network\Thunder,打开Profiles,再打开UserConfig,把[splitter_1]项下的Pane1_Hide=0改为“=1”,保存退出。 提醒:1和3的修改方法要在迅雷完全退出的情况下进行。 经过以上的修改,迅雷的广告就几乎不见了!如果你嫌麻烦,那也好办,网络上有许多去广告版的下载,但都是迅雷较低的版本,想体验迅雷新版本又不想看到广告的就按上面的操作吧!

Ubuntu 8.10 wacom 绘图板驱动问题

我的绘图板在Linux认成Waltop的板子,一直以来用wacom的驱动跑得好好的。 但是前一阵子更新系统以后就出了问题,现象是移动没问题,但是一点击就没有反应了,得把笔尖离开板子几秒再靠近才行。或者如果一开始迅速把笔尖点在板子上移动也能响应,但是抬起就不行了。 中间折腾了很长时间,一开始以为电池没电了,后来发现Windows下好好的。后来开始到处搜,xorg.conf自然是改了无数次,另外还改了udev, hal。到最后这几个东西弄得差不多都明白了,绘图板还是不干活。 后来,终于在 Ubuntu官方帮助 里看到了如下文字: Users might also be affected by a bug in the 8.1.4 version of the wacom drivers that comes with Ubuntu 8.10, where the input freeze when the pen touches the tablet. If that is the case for you, you can install updated drivers : 于是“一声叹息”。。。 后来想编译份最新的linuxwacom,但是又有别的问题,总报usbParse: Exceeded channel count; ignoring the events.搜了一下,似乎也是很新的问题,开发者还在解决中。 于是下了那个帮助里给的两个deb并安装,似乎第一次没有成功,也可能是没有重启的缘故。但是第二次就好了。 总算是好了。

一个DNS的诡异问题

同学电脑出问题了,windows xp sp3,症状是说除了nslookup外,别的程序都不能解析DNS(比如ping, firefox等等) 我也不知道原因,随便搜了两下,看到了如下两篇文章 http://bbs.mcafeefans.com/viewthread.php?tid=1488943 http://bbs.mcafeefans.com/viewthread.php?tid=1482527 于是叫他禁了DNS Client这个服务看看,结果就正常了! 不过他的情况和帖子里的似乎不大一样,好像不是防火墙的问题。 更为诡异的是,他那里跑虚拟机竟然可以正常使用。 总之详细原因未知,但是可以确定DNS Client比较诡异,可能引起奇怪的问题。