自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (1)
  • 收藏
  • 关注

原创 为 bash 转义文件名

最近遇到的一个问题:在程序中有一个文件名,需要生成并执行一个 shell 命令,比如通过 os.execute 执行。但这个文件名可能包含特殊字符。比如,如果文件名是:这个文件名不能直接在 shell 命令中使用[SumiSora&CASO&HKG][Tears_to_Tiara][02][GB].rmvb那么转义之后就是:\[SumiSora\&CASO\&HKG\]

2012-03-31 12:01:57 1272

转载 最近解决的几个问题

1. linux 列出某个软件包安装的文件pacman -Ql packagenameyum 要先安装 yum-utils ,再用 repoquery -l packagenamehttp://xuepeng.info/archives/2662. mysql C 客户端的编码设置现象:使用 lua 和 tcl 连接 mysql 查询出现 ? 字符,但用 mysql

2012-03-30 14:38:49 714

原创 Opera 折腾之 vim 快捷键绑定

Opera 配置 vim 快捷键:  相较于 Firefox / Chrome 都用类 vim 插件,Opera 却没有。故只能通过自己配置快捷键来部分达到 Vimperator / Vimium 类似的功能。  下面是本来的常用快捷键:Ctrl-W关闭 tabCtrl-T新建 tabCtrl-L / Alt-d选中地址栏Al

2012-03-13 21:23:17 1866

原创 博客再次迁移到 http://blog.henix.info/

由于 Google 已经完全不收录 co.cc 域名了,最近买了个 .info 域名,以后博客迁移到:http://blog.henix.info/

2011-11-23 17:42:58 694

原创 博客迁移到 http://www.henix-blog.co.cc/

  由于 appspot.com 不定时被墙,博客迁移到 http://www.henix-blog.co.cc/ 。经过一番乱七八糟的折腾终于把自定义域名折腾出来了。  由于敏感词等原因,过程就不详述了,低调,低调!Links:http://vifix.cn/blog/nginx-reverse-proxy-to-ghs-google.htmlhttp://littz.com/ghs-littz-com-alternative-ghs-google-com.htmlhttp://www.google.co

2011-02-26 09:28:00 1494 2

原创 新博客准备中,欢迎访问

对 CSDN 博客感到不满意,所以自己写了一个:http://the-distant-town.appspot.com/GAE 本来是用 python 编程,不过据说要用 Google 特定的数据库,不具备通用性,所以我想就算了。我采用的方法是:纯静态博客,手写 html/css/javascript,俺以前可是搞前端的。当然所谓纯静态也不是直接写 html ,至少也要实现自动添加“上一页”、“下一页”,以及标签列表之类的东西吧。所以我是先在我的电脑上用 Lua 生成所有静态页面,再把静态页面上传。那评论怎

2011-01-02 14:18:00 634

原创 CSDN 的评论太搓了

不能匿名评论了先不说,评论内容里面有大于号或者小于号还发不出去。。。搞得我还以为是有敏感词。。。CSDN 的管理员如果看到了,麻烦给做前台的同学说一下,把替换成 HTML 实体,这个都不考虑,自己回去面壁。

2010-12-18 21:27:00 1260 3

原创 Vim 的 tab 设置(2): 使用 autocmd 为不同的文件类型应用不同的 tab 设置

<br />上次谈到了在 Vim 中配置 tab/空格的使用策略。最近写网页写得多,希望在编辑 html 的时候不替换 tab,并且一个 tab 占两个空格;在编辑其他文件时仍然使用 4 个空格。最后找到了这个办法:<br /> <br />在 .vimrc中:<br />autocmd BufNewFile,BufRead *.html,*.htm,*.css,*.js set noexpandtab tabstop=2 shiftwidth=2<br />autocmd 即“自动命令”,在发生某些事件时

2010-12-13 13:54:00 8458 1

原创 逆波兰式与卡塔兰数

  读了我的上篇文章“一个 Lua 的凑24程序”的读者可能会产生这样的疑问:为什么由 4 个数字和 3 个运算符组成的合法的逆波兰式就只有那 5 种?你是怎么穷举的?为什么不写程序自动求出所有的合法逆波兰式,而非要手算?  为了讨论这两个问题,我们先来看下面的问题: 问题1(出栈序列问题):数 1 ~ n 按顺序入栈(栈是后进先出的),任何时刻你可以选择让下一个数入栈,或者让当前栈顶元素出栈(若栈非空)。求所有可能的出栈序列的个数。例:若 n = 2,有两种:进进出出,得到出栈序列:2 1进出进出,得到出

2010-12-02 17:00:00 1838

原创 一个 Lua 的凑24程序

上次看到一个“凑24”的题目但想不出来- -b,所以蛋疼地写了个程序来算。。。现在终于知道答案了。。。这个凑24程序没有用搜索或递归之类,想法就是先用逆波兰式枚举所有可能的表达式的形式(这个直接手算枚举),共 5 种:11+1+1+11+11++111++1+111+1++1111+++上面是由 4 个数字和 3 个运算符组成的所有合法的逆波兰式的模式。“1”表示一个数字,而“+”表示一个运算符。然后枚举每一个数字和运算符。总枚举量为:5 * 4! * 4^3 = 7680,枚举量很小,所以直接穷举即可。代

2010-11-25 10:53:00 2711 6

原创 Vim 的 tab 设置

摘自 Vim 手册:选项:1. tabstop:表示一个 tab 显示出来是多少个空格,默认 82. softtabstop:在编辑的时候一个 tab 是多少个空格3. expandtab/noexpandtab:将 tab 扩展/不扩展成空格4. shiftwidth:每一级缩进是多少个空格5. smarttab:根据文件中其他地方的缩进空格个数来确定一个 tab 是多少个空格命令::[range]retab [new_tabstop]:应用新的 tabstop 值,替换所有的 tab,如果设置了expa

2010-11-24 18:53:00 31781 2

原创 用 Lua 读文件时 seek 不正确及解决

最近写 Lua 代码写的比较多,然后就遇到了一些奇怪的问题。我写了一个简单的程序,需要用 seek 得到当前的偏移量,但最后发现 seek 得到的结果是错的!而且还导致程序无法停止。看看这段代码:local fin = io.open(arg[1])local line = fin:read()local s = 0while line ~= nil do io.write(s, ':', line, '/n') s = fin:seek() line

2010-11-14 16:54:00 2794

原创 Lua 中 table.sort 的比较函数

<br />对 table.sort 的比较函数的理解不到位,结果把我害惨了T T<br /> <br />Lua 5.1 手册里是这么写的:<br /> <br />table.sort (table [, comp])<br /> <br />Sorts table elements in a given order, in-place, from table[1] to table[n], where n is the length of the table. If comp is given, th

2010-11-14 16:30:00 8428

原创 关闭 Visual Studio 的 IntelliSense

最近做项目,不得不用 VS 这种自作聪明的 IDE:每次修改了 include path ,或是切换了 Configuration(比如从 Debug 切成 Release),都要更新 IntelliSense,然后虚拟机就卡得停顿一段时间。办法(对 2005 或 2008 有效):把C:/Program Files/Microsoft Visual Studio 9/VC/vcpackages/feacp.dll重命名

2010-10-28 17:12:00 3474

原创 调整 Linux 笔记本背光灯亮度

<br />echo 12 > /sys/class/backlight/acpi_video0/brightness<br /> <br />或者用老的 proc 文件系统:<br /> <br />echo 50 > /proc/acpi/video/EGFX/LCD/brightness<br /> <br />/sys/class/backlight/acpi_video0 下还有个 maxbrightness,是可以取的最大值。我的最大值是 24,所以 12 是一半亮度。

2010-10-17 12:25:00 1868

原创 用 Win7 引导 grub4dos,以及用 grub 引导 Win7

以前在 Windows XP 中用 grub4dos 引导 linux 很容易,直接改 boot.ini 就行了。先在换了 Win7 ,结果反而更麻烦了。基本步骤是:下载 grub4dos:https://gna.org/projects/grub4dos/把 grldr.mbr 和 grldr 拷到 C:/用 bcdedit 添加一个 bootsector 类型的 BCD 启动项,运行 grldr.mbr启动的时候,grldr.mbr 会在各个分区下搜索 grldr,并装载之详见:http://bbs.z

2010-10-16 22:38:00 28329 10

原创 关于 VHDL 的信号和变量

前几天做课设,要用 VHDL 这种怪异的硬件语言。我的经验是:对于 VHDL 不能按照常规的编程语言的执行方式来理解。这篇日志就算是我对已经会其他编程语言的人写 VHDL 程序的一点经验总结。环境是 IspLevel5 。1. 理解信号(signal):在一个进程(process)中,信号的值只会改变一次(不管被赋了几次值)。所以设计思路应该是这样的:在进程的所有执行分支中,每个信号都应该赋值,不要假定信号可以保存之前的值(尽管手册上是这么写的)。可以这么想象:在一个电路中,输出端口总有电流通过,所以信号总

2010-10-05 14:42:00 2434

原创 字符动画之QQ聊天窗口版

看到最近技术宅是如此的火,比如 Word 版 Only my railgun(http://v.youku.com/v_show/id_XMTM3Mjg5OTcy=.html)、Vim 版 Bad Apple(http://v.youku.com/v_show/id_XMTQ0MjM4Nzg4.html)。我也来玩玩技术宅,装一下逼。。。做出来的效果看这里(请用高清):http://v.youku.com/v_show/id_XMjA2OTgzMjcy.html想到要玩就玩以前的人都没有搞过的,所以我想到了

2010-09-17 08:16:00 2024

原创 Windows 的程序性能测量工具 wtime 0.1 alpha 版发布

wtime 类似 GNU time ,它可以运行另一个程序,然后在那个程序结束时输出程序消耗的时间(内核态 ring0 时间、用户态 ring3 时间、总时间)、占用的内存(工作集/峰值、页面文件/峰值)、IO 数量(IO 读、写、其他)。项目主页:http://sourceforge.net/projects/wintime/wtime 通常用来进行性能测量,因为我上次发现 Windows 上缺少一个像 GNU time 一样的工具,故写了这个小程序。wtime 以 New BSD License(htt

2010-09-06 21:33:00 817

原创 我的 AutoHotKey 脚本

<br />N 早之前的文章(http://blog.csdn.net/shell_picker/archive/2010/02/24/5321551.aspx)大概提到了 AutoHotKey 这款键盘宏工具,实现的功能大概就是把 p 扩展成 <p></p> 之类的。这篇文章就来晒晒我的 AutoHotKey 脚本是怎么写的吧。<br /> <br />现在这个 AutoHotKey 脚本是我开机第一个就启动的程序。我觉得 AutoHotKey 应该是开发者的必备工具,你由此可以了解 AutoHotKey

2010-09-02 23:10:00 2981 1

原创 多重剪贴板工具 CLCL

我们写代码可能会遇到这样的问题:在一个地方复制好几处文本,再粘贴到另一个地方。来来回回地切换程序会浪费很多时间。这个时候 CLCL 就派上用场了:用法是:先用 Ctrl + C 复制多个条目,这些条目都会被 CLCL 保存起来,再到要粘贴的地方,按 Alt + C 弹出 CLCL 的菜单(上图),再按相应的数字键就可以粘贴了,全都用键盘操作。粘贴了之后菜单的顺序会改变。比如你要顺序粘贴 3 个条目,只需先 3 次 Ctrl + C ,再 3 次 Alt + C 3 ,就正好顺序粘贴了这 3 个条目。CLCL

2010-09-02 22:37:00 1690

原创 forward 到 WEB-INF 中的静态 html

<br />Servlet 中 forward 的标准写法是:<br />request.getRequestDispatcher("/WEB-INF/...").forward(request, response);<br />不过如果 forward 到静态 html 的话 tomcat 会报 404,这时把 html 的后缀名改成 jsp 就行了,也可以在 web.xml 中加入这样的一句:<br /> <servlet-mapping> <servlet-name>jsp</servle

2010-09-02 22:05:00 1115

原创 内存盘工具 gavotte's ramdisk 下载

Ramdisk 是一项古老的技术,即把内存中的一块虚拟成硬盘用。其特点是速度奇快,重启之后所有东西都没有了。我用它的主要目的是存放我自己的各种临时文件,比如从网上下载东西,我可能先下到内存盘上,有些东西看一下就扔,没必要写到硬盘里。网友们当然还有各种用法。比如把临时文件夹(%tmp%)设到内存盘,把 IE 缓存设到内存盘……甚至把页面文件设到内存盘。度娘推荐 VSuite Ramdisk(http://baike.baidu.com/view/753453.html),结果我在 Win 7 下装都不能装。于

2010-08-06 21:50:00 1500

原创 在右键菜单中添加“在此处打开命令行”

<br />Folder 即文件夹的右键菜单:<br /> <br />Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT/Folder/shell/cmdhere]@="Open cmd &shell here"[HKEY_CLASSES_ROOT/Folder/shell/cmdhere/command]@="cmd.exe /k cd /D %1"<br /> <br />Directory Background 即在文

2010-08-06 21:02:00 1479

原创 折腾 Win7

最近我这个对新技术不感兴趣的人也开始折腾 win7 了。发篇日志来记录一下各种问题是怎么折腾出来的。1. pppoe 报 651 错误首先是上不了ADSL,一直报 651 。网上的办法:http://dudo.org/2009/12/325/http://www.windowsreference.com/windows-7/error-651-with-pppoe-connections-in-windows-7/按他们说的,又是替换 raspppoe.sys ,又是重置 ADSL Modem 为 Brid

2010-08-06 16:19:00 1059 1

原创 再谈 win32 程序的 UI 测试

接着上一篇的话题,因为要为 win32 程序写 UI 测试,自已也摸索出来一个大致的框架。在这里做一个小结:以下代码都发表在公有领域(http://zh.wikipedia.org/zh-cn/Public_domain),你可以自由地使用它们。1. 首先,你需要创建进程:{ TCHAR cmdLine[1] = _T(""); STARTUPINFO si; ZeroMemory(&si, sizeof(STARTUPINFO)); ZeroMemory(&pi

2010-07-22 14:03:00 753

原创 用 win32 API 模拟按键

<br />最近要对一个 Windows 程序写 UI 测试,才发现写 UI 测试是多么的麻烦。发消息倒可以用 PostMessage ,但模拟按键就另当别论了,用 PostMessage 根本不起作用。<br /> <br />后来找到了这篇文章:You can't simulate keyboard input with PostMessage:http://blogs.msdn.com/b/oldnewthing/archive/2005/05/30/423202.aspx 。得出的结论是使用 Sen

2010-07-21 17:17:00 2893

原创 切换 IP/DNS 脚本

平时奔走于寝室和实验室两地,经常需要切换IP/DNS配置。曾经在网上看了一段用 netsh 的切换脚本,下面这段是我对其的改进版:set OUT=%tmp%/telecom.txtset name="本地连接"echo interface ip set address %name% static 192.168.7.24 255.255.255.0 192.168.7.1 0 > %OUT%echo interface ip set dns %name% static 202.114.0.2

2010-07-21 17:15:00 1039

转载 更改Oracle控制台的8080端口

现在 Oracle 可以通过 http://localhost:8080/apex 以 web 方式管理,但这样会占用 8080 端口,与其他 web 服务器冲突,今天找到了这个方法,试验有效:call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(), '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()', 9090));将端口改到 9090运行之后会提示 “Call Comple

2010-07-11 19:29:00 498

转载 不用注册下载 JDK5

终于找到了:http://java.sun.com/javase/downloads/5u22/jdkfrom: http://ogog.javaeye.com/blog/497406

2010-06-27 17:27:00 1244

原创 几种我常用的二进制文件分析工具

<br />拿到一个二进制文件,除了后缀名以外还有什么办法来判断文件类型?有,那就是根据文件内容。Linux 上有 file 命令,Windows 上也有很多强大的工具。<br /> <br />TrID: http://mark0.net/soft-trid-e.html<br />    能分析三千多种文件类型,还能把一个文件可能从属的几种类型按可能性列出来。开发较活跃,文件类型数据库天天都更新。<br /><br /> <br />FileInfo: http://www.pediy.com/tool

2010-06-08 09:57:00 6429

原创 两个 Java 代码质量检查的 Eclipse 插件

1. findbugs: http://findbugs.sourceforge.net/检查你的代码中的常见不良实践:数据库忘了关闭,流打开忘了关闭,命名不规范。。。类似于 PMD 之类的,但小巧,快速。Update site: http://findbugs.cs.umd.edu/eclipse使用方法:在 project 上点右键->“Findbugs”2. Code Analysis Plugin: http://cap.xore.de/能以图形化的方式显示各个类、各个包之间的依赖关系,帮助你做出更

2010-06-05 00:17:00 1142

原创 试用 dot :用于画示意图的 DSL

啥也不说,直接上代码:digraph G {".class files" -> "instrumented .class files" [label="instr"]"instrumented .class files" -> "runtime data" [label="run(through rt)"]".class files" -> "metadata" [label="metadata"]crep [label="coverage report"]{"metadata" "ru

2010-06-05 00:12:00 830 1

原创 试用 commons-pool

上一篇文章中提到,提高 Java 程序的性能的一个基本想法是,减少频繁的对象创建和销毁。最近仔细分析了一下自己的一个程序,因为这个程序需要进行大量的字符串操作,会大量新建出临时的 StringBuffer 对象,这种对象用完一次就扔。尤其是在一个函数中,每次调用这个函数的时候都新建一个 StringBuffer ,函数退出的时候这个 StringBuffer 就没用了,而这个函数会被调用上万次,积累下来对性能的损耗可想而知。所以我想到了使用对象池技术:每次用完 StringBuffer 并不销毁,而是把它存

2010-06-03 21:59:00 942

两个 Java 代码质量检查的 Eclipse 插件

1. findbugs: http://findbugs.sourceforge.net/检查你的代码中的常见不良实践:数据库忘了关闭,流打开忘了关闭,命名不规范。。。类似于 PMD 之类的,但小巧,快速。Update site: http://findbugs.cs.umd.edu/eclipse使用方法:在 project 上点右键-&gt;“Findbugs” 2. Code Ana...

2010-06-03 21:43:29 118

试用 dot :用于画示意图的 DSL

啥也不说,直接上代码:digraph G {".class files" -&gt; "instrumented .class files" [label="instr"]"instrumented .class files" -&gt; "runtime data" [label="run(through rt)"]".class files&q

2010-05-20 23:45:24 172

试用 commons-pool

上一篇文章中提到,提高 Java 程序的性能的一个基本想法是,减少频繁的对象创建和销毁。 最近仔细分析了一下自己的一个程序,因为这个程序需要进行大量的字符串操作,会大量新建出临时的 StringBuffer 对象,这种对象用完一次就扔。尤其是在一个函数中,每次调用这个函数的时候都新建一个 StringBuffer ,函数退出的时候这个 StringBuffer 就没用了,而这个函数会被调用...

2010-05-20 23:28:10 80

原创 IntegerUtils :一个关于整数操作的工具类

最近自己写程序的时候,想提高程序的性能。 一个基本的想法是:减少对象的创建。由于我的程序中要大量使用整数操作,包括 Integer.toString() 、Integer.toHexString() 等等。理论上,每次调用这些函数的时候都会解析整数,并生成字符串,所以我自己写了个类来缓存结果,第二次调用的时候就不用再计算了。  以下代码发布在公共领域(Public Domain)下

2010-05-20 22:28:00 5855

原创 新博客地址

由于网络速度原因,我决定将 blog 搬迁到 javaeye 。地址是:http://shell-picker.javaeye.com/ 以后这里会发摘要和链接,主要是因为这里可以匿名留言。 感谢大家的关注。

2010-05-20 22:25:00 552

IntegerUtils :一个关于整数操作的工具类

最近自己写程序的时候,想提高程序的性能。 一个基本的想法是:减少对象的创建。由于我的程序中要大量使用整数操作,包括 Integer.toString() 、Integer.toHexString() 等等。理论上,每次调用这些函数的时候都会解析整数,并生成字符串,所以我自己写了个类来缓存结果,第二次调用的时候就不用再计算了。 以下代码发布在公共领域(Public Domain)下,...

2010-05-20 22:16:51 516

rramdisk.zip

gavotte's ramdisk + lyh728的gui。 官网:https://bbs.et8.net/bbs/showthread.php?t=906641 详见:http://blog.csdn.net/shell_picker/archive/2010/08/06/5794203.aspx

2010-08-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除