主要用于记录和分享我当前的阅读流程、用到的工具、自动化的方案以及弃用的方案。会随时根据变化而更新,也欢迎大家推荐好用的工具和服务。主要适用于 Mac 和 iPhone 用户。
主要用 Reeder 和 Instapaper 来进行阅读。 Reeder Mac 和 iOS 客户端都有,体验很一致。 Instapaper 就只有 iOS 客户端,虽然 Reeder 现在也支持 Instapaper 帐号了,但并不能同时自动缓存 Rss 和 Instapaper 两个帐号。Mac 上我还是用 ReadKit 来看 Instapaper。

(这里偷懒用 markdown 的顺序图画了下)
```sequence
Blog->Reeder: via Inoreader
Reeder->Instapaper:
PinboardNetwork->Instapaper: 根据 Pinboard Network 的 RSS 利用 IFTTT 存到 Instapaper 上
Twitter->Instapaper: use Tweetbot's Share to Instapaper
微信文章->Instapaper: 在 Safari 里打开后 Share to Instapaper
```
目的:将觉得有价值的文章自动化分享到 Pinboard 并同时全文保存到 Evernote 流程:存到 Instapaper,利用它的Like 自动分享到Pinboard 和 Evernote(需要 evernote plus)
可选方案:
Caps Lock 改成 Hyper(Shift + Control + Command + Option),这样你就可以有一整套一般不会被程序占用的快捷键可供使用了。
今天看了下他的具体语法,发现还可以有别的玩法:
切换中英文输入法我一直觉得是浪费时间的一件事情,每次都要先试错法判断下当前处于什么输入法。特别是如果你有时候还会用到中文输入法的英文输入的话,这时候你要切换到中文的话恐怕得将视线移到标题栏里确认当前是处于英文输入法还是处于中文输入法的英文输入,然后才好切换到中文输入(当然避免这种情况最好的办法还是把中文输入法的英文输入禁掉)。
用KeyRemap4MacBook,你可以为你的每个输入法都设置一个快捷键。这里我用Cmd + Space来切换到英文输入法,用Shift + Cmd + Space来切换到中文输入法。我的中文输入法是百度拼音,用别的输入法的同学可以用KeyRemap4MacBook的Event Viewer来查看自己所用的输入法的input source id,然后将下面的inputsourceid_equal值换成对应的 source id 就可以了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
最近入了神器键盘 HHKB,由于它天生就把Caps Lock去掉了,重度依赖的Hyper键一下子没了很不习惯,于是我做了以下修改,以便在保留 HHKB 键位优点的基础上,尽可能的贴合普通键盘的习惯(这些设置都只在 HHKB 上才生效):
Tab => HyperOption => Hyper,搭配之前设置的Hyper + J/K/H/L 输出 下/上/左/右,这样只要用手掌按住右Option就可以直接单手用 J/K/H/L这些 vi 键来做方向键了。Shift + Delete => Forward Delete1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | |
update: HHKB 的 Fn 键 不能被 KeyRemap4MacBook 捕获,所以不支持 Fn 相关的修改。只有 Fn 键在 EventView 里能看到的键盘,才可以修改。
经常有些应用,比如 QQ 或者邮件,你只需要很快的瞄一眼, 就可以切换回原来正在进行的工作中。用 Command + Tab切换的话得一个个切换过去实在太慢。如果可以为这个应用指定一个快捷键,按一下就切换过去,再按一下,切换回之前的应用,那可以节约不少时间。
这个用 KeyRemap4MacBook 也能做到,实现的思路是当当前应用不是 QQ 时,这个快捷键打开 QQ,当当前应用是 QQ 时,这个快捷键隐藏当前应用的所有窗口。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | |
updated:后来想想,这个功能用 betterTouchTool 来实现更方便些,这里就当留个备份吧
除了上面几个以外我还用到了下面这些:
Hyper + Space 输出 Enter。 适合需要按 Enter而右手在鼠标上时用,最常见的场景就是跳出对话框让你选确定还是取消,而你想直接按Enter键选择确定的时候。Shift_L/R + Space 输出 ( / )Option_L 进入浏览模式Command +h/j/k/l和Fn+h/j/k/l 输出 上下左右 ,和Command + f/b输出 PageDown/PageUp。Command_L + Command_R 进入 complete vi mode完整的 private.xml
]]>After a long time digging, I found that the problem rooted in the hash method of NSString. These two url:
http://aizheke-img-dev.b0.upaiyun.com/imagefs/amw/food_story/50b85c545c168b2e6000003f/image/banner_46664ae45ffaff8ad1ab1cd55d38b6ac.jpg
and
http://aizheke-img-dev.b0.upaiyun.com/imagefs/amw/food_story/50b85c545c168b2e6000003f/image/medium_46664ae45ffaff8ad1ab1cd55d38b6ac.jpg
Their hash is identical! (And EGOImageLoading uses the hash result as a key to cache the image. So if the square image had been cached, the rectangle view used the cached square image to display.)
Then I found this article back in 2004, it says:
NSString/CFString/NSURL
The hash is a convolution of the first and last eight bytes plus the length of the string basically the byte values are shifted and added to the string length.
I do know that the hash result is not guaranteed to be unique, but I don’t expect a “weak unique” like these. The implementation of hash must have been improved after these years because the data provided in the article no longer give the same result. But as of now 2012, on iOS 6 SDK, those two urls in my project still yield the same hash.
The fix is simple, just use MD5 as the key. Now I use this fork instead. If someday I had time, I may give SDWebImage a try.
]]>TestFlight主要有以下几个好处:



You can download my config here and import to BetterTouchTool directly.
]]>cmd+shift+? 的全局快捷键来代替Mackup 备份各个程序的配置文件到Dropbox
PCKeyboardHack 可将caps lock按钮改成别的按键. 这个没用的按键占据了这么好的键盘位不好好利用实在可惜.建议配合下面的KeyRemap4MacBook使用.
KeyRemap4MacBook 可自定义按键的映射,将你的键盘 hack 成完全适合你自己习惯的样子。我的配置在这里
DaisyDisk [Disk Inventory X] 大文件清理
Rss feed address can be change by modifying the subscribe_rss value in _config.yml. But this only change the url for the feed link on your page. It won’t generate a feed there. Then how do you generate a feed there?
just ssh to the server and do $ ln -s atom.xml $your_rss_file, then you are done.
If you host your Octopress on heroku or github, then you have no ssh access to the server.
You can redirect the request. Details can be found in the redirect part of this article, and code can be found here.
You can simply copy the atom.xml in your source(not public) directory to any location in the source directory or its sub-directory.
But this method has a little disadvantage, that due to your have two(or more) same feed source files now, Octopress will generate the rss feed more than one time. But that would not be a problem.
To eliminate this disadvantage, I added a rake task to copy the generated atom.xml to other feed files in the Rakefile as follow:
1 2 3 4 5 6 7 8 9 | |
And invoke the task before push to github by modify the deploy task in Rakefile:
1 2 3 4 5 6 | |
Methods above serve well if the feed you want is somehing like rss.xml. But there is still a little problem if your old feed url is like /feed.
Since in github pages, the content-type of a file is determinate by the file extension. The response content-type of the request to /feed is application/octet-stream rather than text/xml as a normal rss feed. When user clicked on the /feed clink, it eventual downloads the feed file other than displaying the feed content or bringing up the Rss subscribe interface. And even if you add the address to google reader manually , although it can read the content first time you import this feed, you can’t get further updates.
What is worse is that github has no support for .htaccess or other ways to redirect /feed to atom.xml.
After searching a long time and no solution was found, I almost gave up. But suddenly I came up with an idea: how about look /feed as a directory rather than a file? Then the /feed request eventually redirect to /feed/index.html, and the content-type can be specified in the html.
I tried that. And it DID WORK!
So the solution is :
or
安装完后用 rake new_post['Title of The Post'] 来新建一篇文章。编辑完后用 rake generate 生成 html, 然后 rake deploy 即可将文章发布了。
原来的blog改到photo.luosky.com上,将主要用来放日常用手机拍的照片。
一些迁移时碰到的问题记录如下:
Some Tips:
warning: setlocale: LC_CTYPE: cannot change locale (zh_CN.UTF-8)的问题
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8PassBook里存放的是一个个电子凭证(pass),这些pass可以是兑换券,机票,门票等,这些pass可以通过各种第三方app,网站,或者email进行安装. PassBook本身不提供这些pass,只是提供了一个查看这些pass,以及接受pass更新的平台. PassKit则是这个平台开放的API.
必须在developer.apple.com里注册自己pass type identifier
预先指定的提醒:
预先指定的提醒在发布到用户的PassBook后仍可以随时被修改.
实时提醒:

store card & coupon:

event :


显示App Store item :
"associatedStoreIdentifiers" : [ 375380948 ]
iPad上没有Passbook
1 2 3 4 | |
附上自己写的 pass工程 (你可能需要换成自己开发者账号签名的pass才能在pass列表中查看已安装的pass,添加pass的话则不需要)
]]>
以后不知道取什么名字的时候就来这网站捞一个
btw,图中这个类名碉堡了
]]>
第一次处理Github的Pull Request,还是CocoaPods这样的项目,要点Merge pull request时不禁有点手抖…

算是对CocoaPods做了点小贡献.
============== 我是分隔线 ==============
CocoaPods很活跃, 我的pull request提交没多久, 管理员就提了修改建议,并且把我加入到了成员组里,同时还有另外一个人也提了别的建议.
关注了这个框架挺久了, 因为改动太大,之前一直不敢用. 现在算是已经挺成熟的了,这几天正在把爱折客换成用它来管理用到的组件.强烈推荐iOS和 Mac开发者也试试,要升级你用到的组件的版本真的非常方便.
]]>
]]>发表了256篇blog (btw,这个数字真不错)
link
2011 年,看了 58 部电影,打出 8.4 的平均分。电影关键词是: 美剧 电视剧 文艺 暴力 成长 奇幻 浪漫 搞笑 友情 政
治
link
我在虾米的这些年,累计听歌10285首!
link
Since June 22, 2006 you have read a total of 101,836 articles.


Finder居然花了33h 42m,位居第七,实在超乎想象.看来是应该找个替代品了. 不知道Alfred的Power Pack能否完全替代Finder?


已行驶 7,537 公里,距月球还有 355,566 多公里


小时候觉得,一个人的一生,如果不能使人类的科技或文明前进哪怕一小步,那人生还有什么意义。
当初的一小步,现在想想,却是那么的遥不可及。
就连儿时梦想的成为一名天文学家,宇航员或考古学家,现在想想,也已经是风马牛不相及的事了。
人生有很多的岔路,选择了一个,就没法选另一个。却总是时不时不经意地想起那些没走的路,以及曾经决心要做的而最终却没做成的事,心怀愧疚。
写到这里突然想起多年前曾经摘抄过的诗,竟然还静静地躺在原来的博客里。多年后重读,有了更深的感悟。
http://my.opera.com/Luosky/blog/show.dml/389440
]]>The Road Not Taken
Saturday, August 5, 2006 2:54:09 AM
life, poetryThe Road Not Taken
-Robert FrostTwo roads diverged in a yellow wood,
And sorry I could not travel both
And be one traveler, long I stood
And looked down one as far as I could
To where it bent in the undergrowth;Then took the other, as just as fair,
And having perhaps the better claim
Because it was grassy and wanted wear;
Though as for that, the passing there
Had worn them really about the same,And both that morning equally lay
In leaves no step had trodden black.
Oh, I marked the first for another day!
Yet knowing how way leads on to way
I doubted if I should ever come back.I shall be telling this with a sigh
Somewhere ages and ages hence:
Two roads diverged in a wood, and I,
I took the one less traveled by,
And that has made all the difference.黄叶林中分出两条小路,
可惜我一人不能同时涉足,
我在路口伫立良久,
向着其中一条翘首极目,
直到它消失在丛林深处。但我选择了另一条路,
芳草待踏,分外幽寂,
同样显得诱人,美丽,
显然这两条路是如此相似,
都几乎没有旅人的足迹。那天清晨落叶满地,
两条都是未经脚步踩踏的小径,
呵,留下一条路等下次再走,
但我知道路径蜿蜒没有尽头,
恐怕一走就再难回首。也许多少年后在某地,
我回首往事轻声叹息,
两条道路分散在树林里
而我选择的那条更少人迹,
从此决定了我人生的迥异
今天插着耳机一个人走了大半个厦门
我想还是应该写篇blog悼念一下
作为一个iOS开发者,我的工作可以说是拜Steve Jobs所赐
他让我”follow your heart”
他让我明白交互设计的重要性
他让我看到科学和艺术能够结合得如此紧密
也是他让我能够在生活中享受着那些便利
我向来比较理智,我也会说苹果这样那样的不好,我不会说自己是果粉
他辞去CEO的那天,我就知道这一天应该不远了
但当这一天真的来临的时候,心里还是不免难过
昨天iPhone 4S 的S对我来说代表的还是”Same” as iphone 4
今天这个S恐怕要代表Steve了
我想我会去买一台你的遗作来收藏
以此感谢你带给我们的一切
Rest in peace, Steve Jobs
]]>Xcode 4相比Xcode 3变化好大,这一周花了N多时间在熟悉和折腾Xcode 4上.
Xcode 4亮点很多,比如Interface Builder现在和Xcode整合在一起了,创建outlet只要拖动到代码里就搞定了,非常方便,让我不禁又重回xib的怀抱.还有其他不少改进.
相关的文章已经很多了.这里就仅记录下碰到的问题,方便后来者:
在build settings里将precompile prefix header设为NO,删掉Derived Data目录(在Organizer里可以找到),等index完之后再看看
这一般是在打开了引用这个static library的项目的情况下打开这个static library项目导致的.关掉那个项目的xcode窗口即可.
同上.因为这个static library 项目已经在别的xcode窗口中打开了.
检查static library项目和主项目的building setting是否一致.比如主项目的building setting用的是自建的Distribution而不是Release,那么在static library里也得有这个Distribution名字的setting(并且由于前面的workspace integrity问题当时还没解决,无法打开该library项目,使得这个问题花了我n多时间才解决)
在static library的building settings里将skip install设为YES
]]>花谢花开又是一季
对于有些花儿
这是它的起点
对于有些花儿
这是它的终点
地球是圆的
你的春天也许正是别人的秋天
如果你看过(500)Days of Summer
你的夏天就是别人的秋天
Taken at 汤臣豪园
]]>