程序技巧
« Previous Entries记一次 rename 命令解决方案
星期三, 十一月 16th, 2011rename是Linux下的批量文件名更改工具。怎么好用以前也只不过是听说,今天有机会试用之。 正巧有一批文件,命名方式颇为奇特, 001ac.jpg 002ae.jpg 003.ag.jpg … 012gf.jpg 是这么一个序列,前面是正常的数字序列,加两个冒似无序的字母,其实是也是有序的。要的结果是得到正常的 001.jpg 002.jpg 003.jpg … 012.jpg 一开始想到的可以用bash的tr来做,冒似要写复杂的脚本,用来得到文件名,然后tr掉,然后再改名。 rename的用法是, rename a b * , 意思是把文件名里的a转换成b。 那么取得a到z的循环,执行两次 rename 或许能把字母给过滤掉。于是 #!/bin/sh for i in {a..z} do rename $i ” *.jpg rename $i ” *.jpg done 能成吗?不能。结果是执行到 g 的时候把文件名的全换成 .jp的了,于是第二次rename找不到文件名。 不过rename还有第二个用法,就是改文件名。既然第一次换字母可能把文件名后缀给换掉,其实把文件名后缀先换成非字母就可以了。于是 #!/bin/sh rename .jpg .89 * for i in {a..z} do rename [...]
C++0x FAQ摘抄
星期四, 六月 23rd, 2011在有{間}客栈的博客上看到C++0x的中文FAQ,学习浏览了一下,对于自己需要记住的内容摘抄了一些以备忘。 一些代码段和句子是直接抄录下来的。并且下面列的也不是全的特性,只是列出了我容易理解并想要记住的部分。 1.auto 类型 从初始化中推断数据类型,应用方面来说,定义迭代器的时候可以用。 for(auto p =v.begin(); p!=v.end(); ++p) cout<<*p<<"\n"; 2. 枚举类–具有类域和强类型的枚举 enum class Color {red,blue} 枚举值外部不可见,要加类名Color::red 不会默认转成int 可指定底层数据类型 enum class Color:char; //前向声明 enum class Color:char {red,blue}; //定义 3. constexpr 常量表达式 4.delctype 如果你仅仅是想根据初始化值为一个变量推断合适的数据类型,那么使用auto是一个更加简单的选择。 当你只有需要推断某个表达式的数据类型,例如某个函数调用表达式的计算结果的数据类型, 而不是某个变量的数据类型时,你才真正需要delctype。 5. 控制默认函数 X& operator=(const X&)=delete; //禁用类的赋值操作符 X(const X&)=delete; Y(const Y&)=default; //使用默认的拷贝构造函数 6. [...]
gtalk上推方法
星期三, 十一月 17th, 2010推-特是啥,俺也不介绍了。总之这是了解真实中国的一个途径。但是这个途径经常被伟大的长城所阻挡。不过,没有什么能够阻挡,我们对自由的向往。各种翻墙技巧随之而来。我这里介绍一种间接免翻墙的方法。就是利用xmpp网关,集成到gtalk列表里。 类似于网上介绍的把msn好友导入gtalk里一样。这里用的是xmpp transport的twitter插件功能。 1.首先你得有个xmpp账号(gtalk帐号也一样)。 2. 然后需要用到psi这个软件,请自行安装。 3. 使用psi的Service Discovery功能。 4. 添入服务器 jabber.fsinf.at ,然后按回车。 5. 如图可以见到有推特的transport了。 6. 在这个项点击右键,选中register菜单。跳出的对话框会让你输入你的推特用户名。输入即可。 7. 然后psi会有回复提示你,打开一个 api.xxx 的网址,这里就需要你翻墙一下,到这个网址里允许这个应用。 8. 在那个网址上允许后会返回几个数字码,把这数字码发回给transport的对话窗口即可,如图: 9. 之后聊天列表就会多一个好友,专门负责把推上的消息发回给你。而且你也可能通过这个好友把推发送到外面。 这方法好处是集成性高,不需要别的上推软件了。但发私信可能会麻烦(用这方法我还不知道如何发私信)。而且排版就不太好看。当然也会有风险,如果此transport的服务器墙了,那也是没法的事。
« Previous Entries

