linfan's blog

PEDIY:解除雷电2对光盘的依赖

雷电2的经典毋庸置疑,由于街机模拟的不完善,其PC版仍旧是体验这款游戏的最佳方式。在遥远的1997年,限于当时的软硬件环境,PC版采用CD音轨作为背景音乐,运行时需要光盘或虚拟光驱,既不方便又占用大量存储空间。因此我一直希望有一个方便的版本,不依赖光盘但保留背景音乐以获取完整的游戏体验。经过一番努力,终于成功使用Ogg音乐文件代替CD音轨回放,完美解除了雷电2对光盘的依赖。本文是此次逆向工程的记录,仅限于技术研究,勿用于破解及盗版用途。

几个非官方的OpenWrt软件包

OpenWrt是一个优秀的开源路由器固件,也是一个高度可定制的Linux发行版。OpenWrt包含opkg软件包管理工具,可以从软件源中轻松安装数以千计的软件包。即便如此,有时我们还是需要从官方源之外寻找其它软件包,以满足某些特殊的需求。本文就收集了我目前使用的一些非官方软件包,其中有自己创建的,但大部分来自于第三方。

我的路由器是网件WNDRMAC,以下软件包适用于ar71xx系列芯片,部分软件包文件名以all结尾,说明其与硬件平台无关,也适用于其它芯片,但我只在WNDRMAC上进行过验证。

修改Mountain Lion提醒列表的颜色

Mountain Lion操作系统中,提醒事项从日历应用中分离,成为了独立的应用。新的提醒事项应用不再使用颜色标记事项列表,也无法设置列表的颜色。可是,很多第三方应用,比如Fantastical以及拙作LunarCal都会使用列表的颜色进行展示。于是写了这个小程序,用来在Mountain Lion操作系统中修改提醒列表的颜色。

CalColor

下载
源码

诡异的NSURLErrorDomain -3001错误

最近在使用NSURLDownload下载文件时,遇到NSURLErrorDomain -3001错误,具体的错误日志如下。

The operation couldn’t be completed. (NSURLErrorDomain error -3001.)

Google无果,最后居然发现是因为目标目录只读所致。由于很难从错误信息得知真正原因,故记录于此备忘。

Linode Library 离线文档

Linode LibraryLinode这家VPS供应商维护的一个文档库,内容涉及到Linux VPS的方方面面,包括Linux基础知识、系统安装维护、各种服务架设等。即使不使用Linode的VPS,这些文档也具有极大的参考价值,于是将它离线并打包成了CHM文件,供大家下载、查阅。

下载地址:Linode Library Offline 2012.10.31

在沙盒环境中使用Finder打开文件夹

从6月1日开始,Apple要求所有提交到App Store的应用程序都必须运行在沙盒环境中,这可苦了我们这些悲催的码农。一则受到沙盒环境的种种限制,一些很常用的操作都没法实现;二则App Sandbox本身就是BUG重重,这个更是有理没处说。

举个例子,常规环境中,一般使用Shared File List API来设置程序随系统自动运行。到了沙盒环境中,Apple不许我们使用此API了,而建议使用Service Management来实现类似功能。Service Management不如传统方法直接,必须将一个Helper程序设置为启动项,由Helper程序唤起主程序,而且创建的启动项不能显示在系统设置中。这就算了,问题是Helper程序怎么也不能唤起主程序,这个BUG直到10.7.4才解决。

言归正传,本文要说的是另一个BUG。通常,如果需要展示某个文件夹的内容,我们会使用NSWorkspace的OpenURL方法。即使在沙盒环境中,只要已经取得了该文件夹的相关权限,此方法显然也应该没问题。但Apple不这么想,直到目前的Lion 10.7.4中,即便是打开沙盒容器中的目录都无法成功,可以在控制台看见这样的信息。