Author Archives: Leaf Duo

iOS dev: 将 Xcode 中的 CODE SIGN IDENTITY 分离出 VCS

做 iOS 开发的时候每个人都有不同的开发者证书/私钥,只有通过这个私钥进行代码签名之后 app 才能在 iPhone 上运行起来。项目中用来确定使用哪个私钥签名的配置文件是 project.pbxproj,由于它也记录了项目地很多其它信息,所以它往往会出现在版本控制系统中,这样就造成只有一个人能够成功地签名。好在我们可以通过 .xcconfig 文件来将这个配置抽离出来。 首先新建一个文件(Cmd+N),在 Other 中选择 Configuration Settings File,新建一个配置文件 CodeSign.xcconfig。在这个文件中添加一行: CODE_SIGN_IDENTITY = iPhone Developer: 人甲 路 (XXXXXXXXXX),其中证书的名称可以在 Keychain Access 里面找到。 之后删除原来 project.pbxproj 里面的签名,直接在 build settings 里面删除就好,注意 project 和 target 的都要删掉(都选中之后 Cmd+delete)。 最后在 Project … Continue reading

Posted in Information Technology | Tagged , , , | Leave a comment

Lion 对加密卷的支持

今天想给硬盘数据做备份,毕竟硬盘已经用了两年了,不用查 SMART 信息也知道他已经老了,虽然诸如代码之类的都有很多备份,但是还是有些文档、照片需要备份。 又阴差阳错得到一块老旧移动硬盘,灰常好啊。开工吧。 拿来的时候是 NTFS,第一件事情就是改成 HFS+,拿 Disk Utility 格式化的时候发现多出了加密的选项,不用多说,先试试。不得不说这个 Lion 的 GM 版本还不够到正式版的水平,这个输入密码的输入框如果输入超过十位的密码就会 crash,这个完全不能忍受啊,尝试了半天发现先在别的地方输入好然后复制过来就可以了。(好吧,我不得不说我写文章想截图的时候这个 bug 又神秘的消失了) 这样格式化好了之后每次插入移动硬盘的时候都会提示你输入密码才能访问,像是做备份这种应用就会安全很多。 之后我就发现加密卷的密码无法修改,我猜测这种加密是用密码加密一个密钥,再用密钥加密数据的,应该可以修改密码,现在无法修改的原因应该是 Apple 还没想好在哪里放这个功能,也或许 Apple 不会给这个功能提供 GUI,那我们转战 CLI 吧,Disk Utility 对应的命令行工具是 diskutil,里面提供了很多 GUI 中没有的功能。鼓捣一会之后发现 diskutil 有个叫做 CoreStorage 的模块,进一步发现 diskutil coreStorage changeVolumePassphrase 可以修改 CoreStorage … Continue reading

Posted in Information Technology | Tagged , , , | Leave a comment

VMWare Fusion 装 Gentoo⋯⋯

发现其它发行版真的没法胜任开发工作,而我又不喜欢自己编译,Ubuntu 里面的 nginx 缺少我需要用的模块,真伤心,本来想在虚拟机里弄一个不用编译的发行版来着,看样子还是得 Gentoo 出马。 VMWare Fusion 又傲娇了,又是驱动问题,偷懒用 genkernel 就好了,可谁让我这么勤奋呢? lspci 告诉我们,VMWare 有个设备叫 00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01),查到对应的内核选项是 CONFIG_FUSION,记得选上。这样就解决了启动的时候找不到分区的问题⋯⋯ 还有一个问题是,启动到一半说 Freeing unused kernel memory,然后就死掉了,是新引入的 OpenRC 的问题,解决办法在这里。 Happy … Continue reading

Posted in Uncategorized | 1 Comment

Installing Gentoo Linux on DELL R710

公司买了一台 R710,第一次自己装服务器上的 Linux,虽说区别不是很大,但是还是很值得纪录一下的哦。 服务器跟 PC 最大的区别大概就是硬件了吧,涉及到驱动的基本上就只有 RAID 控制器了吧?编译内核的时候那个纠结啊……那个启动不起来啊……真是…… 首先是得照着一个指南做,就是这个指南啦,比较适合以前装过 Gentoo 的人看。这个指南是装软件 RAID 和 LVM2,我们做的是硬件 RAID,所以里面软件 RAID 相关的东西就不用安装了,比如 dm-mod 之类的就不用装了。我还是习惯把 /boot 放在 LVM 里面,其实自己有的时候也觉得没啥必要,有点犯贱的意思……如果你也希望把 /boot 放在 LVM 里面,可以参考 Gentoo Wiki 的这篇文章,不过里面的内容略微有点过时了,比如内核参数 dolvm2,现在写成 dolvm 了。一开始安装的时候忘了做 initrd,查了半天才发现,还是不细心啊。 剩下的大概就是编译内核了,先随手把什么声卡驱动什么的去掉,然后重点是 RAID 驱动,一开始天真地以为 RAID 控制器的驱动是 LSI … Continue reading

Posted in Information Technology | Tagged , , , , | 1 Comment

Python 判断一个变量是否是字符串

忏悔啊,就写了一个类还出了 bug⋯⋯ 写了单元测试还出了 bug⋯⋯ type(data) == type("") 这种办法是不行的,因为 "" 是 str 类型,如果 data 是 unicode 的话这种判断就不成立了,而应该采用这种办法:isinstance(data, basestring),其中 basestring 是 str 和 unicode 两个类的父类。 期待 python 3k⋯⋯ Tags:bug,python

Posted in Uncategorized | Tagged , | Leave a comment