Goodbye, EI Capitan.

意外

找电工过来排查一个电暖灯的问题,中途给我整了两次连续停电,人走了后发现电脑怎么都开不了机。🙃🙃🙃

启动进度条只要走到中途一半就不走了,然后自动关机。重启进入 Recovery 模式,尝试硬盘修复,修复失败(没留存具体错误信息)。重启进入安全模式,磁盘只能挂载(mount)到只读模式,看不出来具体问题,fsck 也修复失败。

6年了,这个 OS X EI Capitan 终归是这么意外地走了,准备重装系统。

备份数据

重启到安全模式,尝试挂载我的一块西数移动硬盘,结果怎么都不成功,不知道原因。重启到 Recovery 模式,在 Disk Utility 里面也挂载不了。一时间也没什么好办法,只好通过网络走 rsync 备份了。在安全模式下是无法连接网络的,但是可以直接读源系统分区的内容。在 Recovery 模式下可以联网但是原系统分区没有自动挂载上,只好手动挂载了,主要通过 diskutil 实现:

diskutil list diskutil info /dev/diskXsY diskutil mount /dev/diskXsY
  
When taskwarrior met git

as wall-e met eve.

Story

Todo list 类的工具我用过很多了,印象中第一个在 Android 手机上用的是 Any.do,早期还和 google calendar 做同步。后来换到了 iOS 生态就试着跟各种类似的软件打过交道了,同时期在桌面端也用过各种奇葩的方式,有存在线笔记的,teambition,trello,甚至最后用 git 仓库存 markdown 的,因为 markdown 支持一种 task list 的格式,而且在笔记中可以做到各种备注之类的。但是这种方式用太久就让我想不起来到底 todo list / item 的原本样貌到底是什么样的了,因为它完全没有章法。

工作和生活类的数据是完全分离的,在手机上后来我一直用的都是 iOS 自带的 Reminders,提醒功能是三方 app 服务不管怎么做都达不到原生级体验的。基本的任务属性也很明确,该有的都有,整体上我觉得中规中矩。

iCloud 的同步服务时好时外,一旦碰上它抽风了我就要问候苹果全家了,尤其是 mac 版的 Reminders。再加上那傻瓜式的 GUI 每次我都得在那个小窗口里面用鼠标点来点去才能完成一个任务的创建,后来我就放弃了在桌面版的输入体验了。现在我主要在手机上保留了生活类相关的任务,工作相关的数据尽可能不放在上面,除非电脑不在旁边但是又想起了什么。

我认为手机一直都不是一个很好的打字窗口,体验碎得一地,还要看 app 做得怎么样,所以我一直不看好在手机上做编辑器的类

Read More

#import "UserHeader.h" 

Story

上一篇我们已经试验了一番头文件的引用和编译时长的关系,但是好像和我们的实际项目没多大关系,或者关系不大?想想好像没人会一股脑地往 prefix header 里面塞一堆的头文件引用,不一定,这个得结合实际看结果。

基于之前的结论,一个普通的 header 被引用到 prefix header 里了之后,被引用的内容 就已经是 prefix header 的内容了。要想看到我们 Xcode 项目里面真实的 prefix header 长什么样子,还得从头展开。首先从目标 target 的 Build Setting - Prefix Header 设置中找到目标文件,然后逐行浏览,如果碰到一个 #import ,就立刻把该文件的内容提取出来,然后继续深度迭代….直到解析完 prefix header 文件中所有的行为止。想想好像挺无聊的,平时只是在 IDE 里面专注写代码,好像并没有想过这个问题。

Read More