Mac OSX launchd 定时任务

Mac OSX launchd 定时任务

除了工作里,生活中也有很多重复的任务。比如说定期查询户口办理状态,尽可能第一时间去办理下一步。所以需要有一种方法可以定时跑一个脚本去爬取查询网站,解析结果最后通知自己。在 Mac 上可以用 launchd。

阅读更多

我的 GCD 回顾

我的 GCD 回顾

入门

GCD 对我来说是初入门 iOS 开发的记忆,那个时候还不知道 UIKit 中的类应该在主线程调用,所以异步获取了数据之后虽然调用了 reloadData,但是界面怎么都不刷新,心慌慌查了好久才解决这个问题,现在回想起来也是蛮有趣。这可以说明 GCD 的引入,真的大大降低了进行多线程操作的门槛,然而要解决多线程带来的难题却依旧不那么容易。

阅读更多

我的 Vim 日常使用

我的 Vim 日常使用

原生 vim 需要的配置不少,而且想要有一些特定自动补全需要的配置步骤就更多(iOS API),所以我主要是用 vim mode 插件。几乎主流的 IDE 应该都有 vim 插件,甚至 sublime text 都有 vim mode 可以开启。

阅读更多

函数式与过程式编程区别之不同的世界观

大名鼎鼎的 objc.io 有一本书叫做 Functional Swift,只看到这个名字很容易误导人以为 Swift 可以是 Functional 的,但事实上这压根不可能,那本书更准确的名称应该是 Functional part of Swift。一个过程式语言可以拥有函数式的功能,特别是一些比较新的语言 Python Ruby 就曾经因为带有这些功能让人觉得更高级,同时也会被一些人评价说他们只不过实现了一些古老语言早就有的功能。这个评价是客观事实,早期从理论研究中诞生的编程语言大多都很函数式,局部变量和赋值这种过程式的功能仅仅是他们的一小部分。大规模应用于实践之后诞生的编程语言则完全将这一局面翻转了过来,完全是建立在局部变量和赋值之上的过程式,慢慢发展之后才开始增加一些函数式的功能。

阅读更多

用高阶函数解八皇后问题

八皇后问题是求在八行八列的国际象棋棋盘上放置八个皇后,令她们彼此之间不能相互被吃的所有方法。国际象棋中皇后可以顺着横竖对角线方向行进任意距离。

阅读更多

那些「绝对」的和「相对」的

这个世界上所有事物都是相对的,只有「相对」本身是绝对的
接盘侠日记

阅读更多

一些有趣的问题在Swift中的表现

1. 排序过的数组遍历更快

实验

阅读更多

函数式与过程式编程区别之赋值行为

对于常见的过程式编程语言赋值行为和定义变量是同一种形式,都是用等号进行。对于函数式编程语言来说定义和赋值有着显著区别。

阅读更多

复合数据分层设计求数独解的例子

由编程语言自带的数据结构种类有限,在解决实际问题中设计适和的复合数据类型更有利于程序的组织和迭代。复合数据的分层设计一般可以分为三层:最底层是复合数据的实现,上层是复合数据的使用方法,最上层是复合数据使用方法的应用。

阅读更多

用过程复合数据

复合数据只要拥有满足一定条件的构造函数、选择函数和约束规则,甚至不需要是由基本数据复合,church 计数是一个以 lambda 表达式为唯一元素,构建数值、数值运算等编程要素的系统,在church 计数中 0 和 加1 运算分别被定义为

阅读更多