如何使用Sparkle实现Mac App自动更新

15.Mar 2021
有做Mac App开发的朋友应该多少都听说过Sparkle Framework。因为macOS允许在Mac App Store以外进行App分发,所以如果你的App不上App Store那就得自己解决App更新问题。Sparkle就是一个非常好用的解决方案。 Sparkle的原理也很简单,以appcast.xml文件为数据规范,提供客户端的检查更新、下载、数据校验、自动替换等通用能力。App的C…

Just Focus for Mac 2.0 Beta 来啦!

15.Mar 2021
➡️ 请点这里到官网下载Beta版 ⬅️ 最近有时间修复了一下Just Focus for Mac的几个小问题,上线了1.6.8,没想到就上了Mac App Store的首页! 于是本懒人受到了鼓舞,赶紧在周末把2.0版本开发一通,现在终于可以开始2.0版本的Beta测试啦!(官网直达链接) Just Focus for Mac的第一个版本是大约5年前(2016年)发布的。当时只是我学习…

使用 Helmet 给你的站点加个头盔

04.Jan 2021
小型站点我一般直接用 ExpressJS 加个 Helmet 就可以跑了,不过之前没仔细看 helmet 都做了什么,所以简单了解了一下。 helmet 配合 express 的用法十分简单: const express = require("express"); const helmet = require("helmet"); const app = express(); app.us…

了解 AES 加密算法

28.Oct 2020
最近在开发一个简单接口的时候,因为敏感度不高所以前后台直接用对称加密解决。过程中遇到了点问题,让我想起几年前也遇到一样的问题,归根结底还是对 AES 的了解不多,所以学习了一下,其实在应用层面来说这个加密算法还是蛮简单的。 首先 AES 是一种对称加密算法,加解密都用同一个 Key,简单理解为: 明文 + Key => 密文 密文 + Key => 明文 不过实际使用中这个算法…

关于 Rosetta (Universal 2) 和苹果的 ARM 架构迁移

29.Jun 2020
今年(2020年)的 WWDC 苹果宣布最快将于年底发布运行在自家设计的 CPU (Apple Silicon) 上的 Mac 硬件。在发布会上苹果也演示了搭载了 A12Z 芯片(iPad Pro 2020 同款芯片)的 MacBook Pro。 在之前的播客节目里(枫言枫语 #24 和 枫言枫语 #25)我们也就这场 CPU 架构大迁移进行了讨论,感兴趣的朋友可以订阅"枫言枫语"播客收听。 …

TypeScript + ExpressJS 快速搭建小工具服务

21.Jun 2020
平时偶尔会需要用到一些小工具来替代重复的劳动,Node.js 一直是我的首选。虽然 Javascript 是一门神奇的语言,充满各种玄妙的“艺术机关”令新手迷失其间不知所措。而写小工具的初期因为代码量小,所以各种不规范和弱类型奇技淫巧一旦用上,将来项目大了就很可怕了,各种莫名其妙的 Crash 让你不知所措。 还好大微软 2012 年推出了 TypeScript 语言,冲着原生 JS 的弱点,在…

由一个非 Unix Timestamp 想到的

27.May 2020
今天同事提交了一个 Bug Fix,把基于 CFAbsoluteTimeGetCurrent() 计算的 Time Stamp 改成了基于 [[NSDate date] timeIntervalSince1970] 计算,原因是 CFAbsoluteTimeGetCurrent() 是从 2001 年 1 月 1 日 0 点开始计算的。 /* absolute time is the time …

一个 fork 的面试题引发的思考

01.May 2020
酷壳有个经典文章: 一个fork的面试题 挺有趣的,不仅涉及 fork() 函数,还有一个缓冲区继承的技术点。 #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(void) { int i; for(i=0; i<2; i++){ …

关于 macOS 伪终端(PTY)的学习

09.Apr 2020
1973 年 Xerox PARC 第一次在 Xerox Alto 这款个人计算机上推出带有 GUI 界面的操作系统,自此让极大地降低个人计算机的使用门槛,也开启了更加丰富多彩的计算机发展。 不过作为一个码农,终端依然是平日不可或缺的生产力工具。在 macOS 上,系统自带的 Termianl.app 或者更加好用的开源的 iTerm2.app 是最受欢迎的终端应用(其他 X Windows 系…

为什么 arm64e 的指针地址有空余支持 PAC?

17.Nov 2019
一、PAC 前两天同事提到苹果去年发布的 A12 芯片支持 arm64e 指令集,提供了指令地址加密功能。说是虽然系统是 64 位的,但是 arm64 指令地址根本用不满,所以把高位的部分(upper bits)拿来存一个指针地址签名。 当时我就很好奇,现在 arm64 的内存指针都是 64 位的,为啥会用不满?于是我学习了一下 ARMv8.3 新增的 PAC 功能。 首先我们来看看 PAC…
粤ICP备2021029457号-1