改进Digital Ocean VPS的访问速度

我用的 VPS 是 Digital Ocean 的 SFO1, 这个据说对大陆的访问作了优化,我在学校的时候用校园网(双线20M)看 Youtube 下行速率可达500-600kb/s,基本满足了日常生活的使用。不过我家的电信6M宽带极其不给力,下行速率只有50kb/s左右: 之前在v2ex看到有人说锐速这款单边 TCP 加速服务效果很好,于是就去试了一下,效果果然很明显(请无视上传速率,我这电信上行带宽估计只有512K- -) »

如何使用 Git Submodule

译自Jon Cairns的博客 Git submodules是在一个仓库里链接另一个仓库的方式. 比如, 如果你的项目需要使用到别人挂在 Github 上的项目, 那么你就可以把它作为一个submodule,而不是把它所有的代码复制进自己的项目. 这样便有另外的好处:可以跟踪 submodule 仓库的变化并且可以一键更新而不是手动更新代码. 这篇教程将会告诉你: 如何向你的项目新增一个 submodule 如何 clone 带有 submodules 的仓库 如何更新 submodules 如何管理 submodules »

Block的实现

把 Block 语法转换成 C 代码 初次接触 Block 的时候,觉得 Block 似乎是 Objective-C 的一种特殊语法。但我们知道 Objective-C 最终是被编译器编译成 C 语言的,因此 Block 也不例外。LLVM 有一个选项-rewrite-objc可以把 Objective-C 代码转换成人们能看懂的 C »

ReactiveCocoa快速入门

最基本的使用(订阅一个信号),以TextField为例 每当textField的text属性发生变化时则emit 一个信号,这个信号可以进行二次处理(这些处理结果是返回一个signal,一般情况下是self),比如filter、map,最后subscriber可以在块里执行后续的操作. filter:过滤返回值为真的信号 map: 把信号emit出的值类型做一个映射,比如把text值的signal映射成bool [[self.usernameTextField.rac_textSignal filter:^BOOL(id value) { NSString *text »

NavigationBar Playground

可动态调整大小的导航条 要想调整导航条(NavigationBar)的大小或位置,只需改变他的frame即可。 但怎样让导航条上的那些控件(按钮、标题、searchbar之类的)也能成一定比例的缩小或者消失呢?当然是对这些视图做仿射变换(CGAfineTransfrom)。 我们知道UIBarButtonItem继承自UIBarItem,UIBarItem继承自NSObject,不能对它做一些UIView能做的仿射变换。 但是NavigationController.navigationItem有一个属性:titleView可作为我们自定义控件(所有继承自UIView的控件)的容器。 实现动态导航条的思路:当检测要触发调整导航条的事件时(scrollView向下向上滚动或Tap导航条等等),1、将导航条向上移动20个Point(因为状态栏的宽度是20) »