linfan's blog

几个非官方的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中,即便是打开沙盒容器中的目录都无法成功,可以在控制台看见这样的信息。

各种OS中生成UUID的方法

开发人员或多或少都应该知道UUID或GUID,这是摘自维基百科的一段描述。

通用唯一识别码 (Universally Unique Identifier, UUID) 是一个软件建构的标准,亦为自由软件基金会 (Open Software Foundation, OSF) 的组织在分散式计算环境 (Distributed Computing Environment, DCE) 领域的一部份。

UUID 的目的,是让分散式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的 UUID。在这样的情况下,就不需考虑数据库建立时的名称重复问题。目前最广泛应用的 UUID,即是微软的 Microsoft's Globally Unique Identifiers (GUIDs),而其他重要的应用,则有 Linux ext2/ext3 档案系统、LUKS 加密分割区、GNOME、KDE、Mac OS X 等等。另外我们也可以在 e2fsprogs 套件中的 UUID 函式库找到实作。