迷途XO's Blog

confused coding

用qjoypad解决玩stepmania时跳舞毯无效的问题

之前买了一张跳舞毯,在windows下用stepmania玩得挺欢。但家里的机器已经被我删除了windows的一切东西装上arch了。

因为stepmania是开源且跨平台的,于是打算在这台机器上玩一下跳舞毯,让机器挂了一天下载了stepmania中2G多的舞曲,无障碍进入stepmania后,它居然不认得跳舞毯的键。于是就想到了x下可以直接设置键位映射,google上找到了一个用xmodmap的方法,折腾了一下发现貌似不支持joypad相关键的设定。

无奈之际,只好用clyde以关键字"joy" 找了一下,居然发现这类的软件还是挺多的,一个一个挨着试了一下,发现qjoypad最为简单方便。运行后在托盘上有一个图标表示在监视在joystick的按键,只需要右键点击并对对应的joypad进行简单的设置就可以了。

之后当然是将跳舞毯的键映射到键盘上对应的位置,终于可以在linux下玩stepmania了。

常用软件(windows)

记录下自己用到的东东,分类比较乱~~

系统,文档

  • total commander,很方便的文件管理器,可惜是收费的,不付费也可以用,不过每次都要做做选择题
  • everything,查找文件最方便的东西,只能在ntfs下用
  • virtuwin,习惯linux多桌面的朋友可以试试,开源,方便,小巧
  • avira,免费的杀毒软件,占用内存很小,很迅速,免费的足矣
  • 7-zip,无须多说
  • InfraRecorder. 刻录光盘用,小巧快速开源
  • ultraISO,又是收费的。。好吧,我看开了
  • winDjView,喜欢看电子书的朋友应该知道这个吧
  • foxit reader,同上,很小巧快速功能又齐全的浏览器,在linux下会怀念它
  • 超星,这个本来不想提,但确实有时要用到,无奈
  • office,工作需要 
  • Uninstall Windows 7 USB DVD Download Tool用来刻录win7光盘到u盘安装

影音图片娱乐

  • gimp,有时需要用用
  • yed,用来画uml之类的图很好,虽然是java swing界面程序但也不算慢
  • imagemagick,有时会批量处理一下图片
  • mangameeya,看漫画用的,不过现在都在网上看了,基本上不用了
  • klite mega解码包,搭配着mpc用,别无它求
  • mplayer,呃。。。有时会用到mplayer
  • google talk
  • qq,呃
  • 旺旺,买东西时用
  •  
  • itunes,ipod touch要用,也使我好好地将相片和音乐分类了一翻。。。
  •  

学习,个人管理

  • life balance,挺好用,和ipod touch同步着,不过现在也很少用了,想自己写个web+移动设备上可以自由同步的
  • personalBrain,记下一下杂思和关系图,没有规律地用下
  • xmind,脑图
  • wordnet,有时看看单词的关系挺好玩的
  • Visual Thesaurus Desktop Edition,又是玩单词的东西。。。
  • supermemo记单词的东西,自己写了个在ipod touch上用着,但觉得还是它好。。。
  • rosetta stone

网络

  • dropbox,没有它很难受~~可恶,放配置文件,笔记,临时的网上U盘。。。
  • 174.36.30.67 dropbox.com
    174.36.30.71 www.dropbox.com
    174.36.30.67 forums.dropbox.com
  • mldonkey,不想用verycd的
  • utorrent,不想用迅雷
  • 迅雷,呃。。。有时得靠它
  • firefox
  • ->adblock plus,你知道的
  • ->autoproxy,你知道的。。。
  • ->firebug,最近想搞web开发
  • ->web developer,最近想搞web开发
  • ->flashgot,下载插件
  • ->quickdrag,最开始用myie时候染上的坏习惯~~
  • ->vimperator,没有它不行了。。。也是我从chrome撤回的原因。
  • ->xmarks,还是这个同步书签最好

编程,开发工具

editor,compiler,ide,第三方库

  • gvim,编辑简单文本时用,没有深入
  • emacs,配置文件放在bitbucket上。。。
  • mingw,msys(gcc,make,automake...etc.),写toy时用用,基本上不更新
  • cygwin,不是常常用,基本上不更新
  •  
  • vs2005 + nunit,工作需要
  • python,用来写自动化脚本,想用来进行web开发学习,结合django
  • ruby,主要是toy
  • java sdk + junit,主要是toy
  • gambit,用来学SICP
  • plt scheme,同上
  • googletest,google-sparsehash,很好用的两个库
  • boost,至少智能指针无敌,shared_ptr可以放到stl容器中很爽
  • sqlite,你知道的
  • winPcap
  • cgal,拓扑几何图形库,基于浮点数的好像是
  • 其它忘记了,待补充
  • hg
  • svn + 乌龟
  • git
  • make,automake,autoconf,后面两个不会。。。
  • scons,好像很好。。。不会,2
  • google app engine,学习中


网络工具

  • windump,Wireshark(好像也有linux版的)
  • Aircrack-ng,试了一下。。。有机会的时候再用下吧
  • Bitvise Tunnelier,自动重连,集成的功能比较多,如果发现什么不爽再回putty吧~~
  • puff,mr.zhang,免费windows下的最好选择~~

 

web app

  • google mail
  • google docs,可以把pdf放上去,然后哪里看都可以了,还有最基本的文档u盘,日志,笔记~~
  • google calander,我有时用来做日记,记下自己做了什么
  • remember the milk,想自己写一下类似的,值得学习下
  • google reader,浪费了很多时间
  • bitbucket.org,爽一个字
  • dropbox,好像上面 写了

 

 

 

 

 

 

 

 

gambit安装

想重新看看sicp,然后考虑要用哪个环境,作了一翻比较后选定了gambit,主要是执行速度够快,而且够轻。

于是在arch上用clyde找了一个,居然找到一个mingw32-gambit-c的包。。。god,只么好官网下载源代码自己编译。

安装步骤倒也很简单:

 

./configure --enable-single-host --enable-multiple-versions --prefix=/usr/lib/gambit  --enable-symlinks --bindir=/usr/bin --libdir=/usr/lib --includedir=/usr/include --infodir=/usr/share/info --docdir=/usr/share/man --enable-cplusplus

make

make check

sudo make install

 

参数的意思INSTALL.txt中有详细的解释。

 

呃,有机会还是学习一下怎样做arch的安装包

开始用zsh(1):globbing

一直不清楚blog的定位是什么,姑且先作为知识的整理和分享好了。

zsh的交互式实在太诱人,反正还没有熟悉bash,还是直接上手zsh好了。切换shell可以直接用chsh -s /bin/zsh

 

globbing

也就是利用*之类的字符生成多个文件名,除了bsah的模式之外还有一个扩充模式。然后python中也有对应的模块,不知道有什么不同的地方。

基本的模式都很熟悉了:

*.c   *.[co]   *.[^ch]   foo[1-9][0-9]??   mysrc.{c,h}
mv {old,new}.c

在默认设置下,zsh可以在在globbing后面加入qualifiers,比如说:

ls -d *(.) 

表示只生成plain文件的文件名,其中最后的()里面的是zsh的qualifiers,如果是(@)的话就表示只生成软链文件。下面列举出一些qualifiers,更具体的qualifiers可以参见"man zshexpn"。

  1. /:目录
  2. @:软链
  3. .:plain文件
  4. %:设备文件,其中%b是指定block设备,%c是char设备
  5. *:可执行文件(对本用户)
  6. 权限(就是mod)的过滤,具体有:sStxwrAIEXWR,f???
  7. ....

如果在qualifiers前面加上^就是相反的意思。

感觉就是,熟悉了qualifiers后find好像可以退休了,不过很多qualifiers都用不着就是了,需要的时候再查查zshexpn的manpage就可以了。

此外zsh还有一个扩展模式,则需要设置EXTENDEDGLOB变量:

setopt extendedglob

下面列出扩展模式的特性:

1. nagative pattern: "^" 和 "~"

在pattern前加上^,就^表示只生成pattern中^后面不符合的文件名。如:

ls -d *.^c

表示只生成后缀不为c的文件名。

在第一个pattern后面加上~和另外一个pattern,表示生成符合第一个pattern不符合第二个pattern的文件名:

ls pattern1~pattern2

2.数字范围

看看example就好:

% ls run<200-300>
run234  run240
% ls run<300-400>
run303
% ls run<-200>
run123  run2
% ls run<300->
run303
% ls run<>
run123  run2    run234  run240  run303

3.分组:

% ls (foo|bar).*
bar.o  foo.c  foo.o
% ls *.(c|o|pro)
bar.o     file.pro  foo.c     foo.o     main.o    q.c

4.递归搜索子文件夹 **/

ls /path/to/somewhere/**/*.h

几个问题:

1. 扩充失败时会见到:

zsh: no match found: pattern

也就是说找不到适合pattern的文件了。

2. 如果要匹配文件名中的特殊字符,记录要quote,一般用双引号包着就可以。