![](/media/posts/categories/covers/programming.jpg)
Apr
25
Sparkle 2: Publishing an update
Published 12:04 Apr 25, 2016 by @ezra.
#Programming# 配置好一些基本的内容后,是时候发布一个新版本了。
归档
首先你需要归档你的应用。
如果你使用 DMG,归档后不要再次压缩 .dmg 文件
如果你使用 ZIP,你可以通过 ditto -c -k --...
![](/media/posts/categories/covers/programming.jpg)
Apr
25
Sparkle 1: Setup
Published 12:04 Apr 25, 2016 by @ezra.
#Programming# 做 Mac 开发的同学应该至少都听说过 Sparkle,一个应用升级框架,Sparkle 是开源的,参考 Github。
不过需要注意的是,Sparkle 的使用场景应仅仅局限于 非 App Sto...
![](/media/users/avatars/profile-avatar.jpg)
18:04 Apr 24, 2016
颓废了一阵子,又雀跃了一阵子,但不论是怎样的感情,就像这四年间许许多多不明的日子一样,都会过去。
![](/media/posts/categories/covers/programming.jpg)
Apr
22
NSImage: Get size in pixels
Published 12:04 Apr 22, 2016 by @ezra.
#Programming# Just simple:
let rep = originImage.representations.first
let pixelSize = CGSize(width: (rep?.pixelsW...
![](/media/posts/categories/covers/programming.jpg)
Apr
14
Haskell Primer 008: 类型类
Published 12:04 Apr 14, 2016 by @ezra.
#Programming# 在 Haskell 中,类型类 (typeclass) 是定义类型行为的接口,如果一个类型是某类型类的实例 (Instance),那么它一定实现了该类型类所描述的行为。
这里需要注意,不要将 Has...
![](/media/posts/categories/covers/programming.jpg)
Apr
14
Haskell Primer 007: 类型初识
Published 12:04 Apr 14, 2016 by @ezra.
#Programming# 有了前面一些基础介绍,现在我们开始介绍 Haskell 中关于类型的各种知识。
由于 Haskell 支持类型推导 (Type Inference),允许我们不对类型进行显示声明,但对于初学者,有时我...
![](/media/posts/categories/covers/programming.jpg)
Apr
13
Haskell Primer 006: 模式匹配
Published 12:04 Apr 13, 2016 by @ezra.
#Programming# 模式匹配主要用来定义一些数据必须遵循的规则,根据他们来解析数据。
例如:
sevencheck :: Integer -> Bool
sevencheck 7 = True
sevencheck...
![](/media/posts/categories/covers/programming.jpg)
Apr
13
Haskell Primer 005: 认识元组
Published 12:04 Apr 13, 2016 by @ezra.
#Programming# 学习了列表之后,我们再来认识一下元组 (Tuple)。
什么是元组
学习过 C++ 的朋友应该对这个词不陌生,元组允许我们将多个不同类型的值组合为一个单一值。元组与列表有些类似,但元组含有的内容可以是...
![](/media/posts/categories/covers/programming.jpg)
Apr
12
Haskell Primer 004: 玩玩列表
Published 12:04 Apr 12, 2016 by @ezra.
#Programming# 列表 (List),是一种单类型 (Homogeneous) 数据结构,用于存储一个或多个同类型元素,例如一系列的数字。
将一系列的元素使用方括号 ([]) 包含,元素间使用逗号 (,) 分隔,就形成...
![](/media/posts/categories/covers/programming.jpg)
Apr
12
Haskell Primer 003: 函数定义
Published 12:04 Apr 12, 2016 by @ezra.
#Programming# 尝试了一些函数调用之后,紧接着了解一下函数的定义,这与调用的形式类似,只是多了函数行为的定义:
函数名 参数1 参数2 参数3 参数4 ... = 函数行为
例如:
doubleIt x = x ...
![](/media/posts/categories/covers/programming.jpg)
Apr
12
OS X: How to get the path of Home directory
Published 12:04 Apr 12, 2016 by @ezra.
#Programming# We all know that NSHomeDirectory() is retuning the sandbox root (not the home directory), [@"~" str...