印象笔记 Python SDK 踩坑记

于我而言,一个笔记工具最重要的两个功能就是信息采集和提取。

人脑是用来思考而非用来记忆的,因此我们需要一个外部系统来存储个人化的信息。这一点的体现就在于,我们能随时随地方便地将看到的有价值的信息保存起来。网上的各种博客文章和微信公众号是我的主要信息来源,我的印象笔记配合上剪藏插件就能完美地解决我信息采集的问题。

提取信息最好的办法是搜索,印象笔记在这一点上也是做得很出色。可以说,有了它的搜索功能,基本上我收藏文章的时候可以不需要进行分类了(然而,作为一个有整理强迫症的人,不分类我是不能忍的)。IBM 做过一个研究,让人去找一封电子邮件,有的人喜欢搜索,有的人喜欢平时就把邮件分类。结果搜索的人平均只需要 17 秒可以找到他想要的邮件,而分类的人则需要 58 秒。

虽然印象笔记的搜索功能已经很好用了,但是每次要搜索的时候还是得先打开印象笔记再进行搜索,这一个流程下来,少说也要花掉三四秒的时间,并且还要把手从键盘上移到鼠标(触摸板)上,实在是太费劲了。

iOS 逆向实战 - 钉钉签到远程“打卡”

作为程序员,大家应该都碰到过这样的问题:公司要求加班到 10 点才算加班费或者报销打车费,而你在 9 点多的时候就把活干完了。这时,你是选择强行加班到 10 点,还是选择提前走人不要加班费呢。

所谓鱼和熊掌不可得兼,不过在这个问题上,如果公司恰巧使用了钉钉的考勤系统,我们还是可以做一点手脚的。而这就是这两天我的一个朋友对我提出的需求,伪装钉钉的 GPS 定位,实现躺在宿舍床上也能打卡签到的功能。

我用了最简单粗暴的方法完成了这个需求。现在,再次应这位朋友的需求,把整个问题的解决过程记录一下,顺便把使用 theos 写 tweak 的整个流程再梳理一遍。

源码已经上传到 Github :https://github.com/buginux/DingTalkGPSFaker

Swift 中的指针操作

默认情况下,Swift 是内存安全的,这意味着它禁止我们直接操作内存,并且确保所有的变量在使用前都已经被正确地初始化了。但是,Swift 也提供了我们使用指针直接操作内存的方法,直接操作内存是很危险的行为,很容易就出现错误,因此官方将直接操作内存称为 “unsafe 特性”。

一旦我们开始直接操作内存,一切就得靠我们自己了,因为在这种情况下编译能给我们提供的帮助实在不多。正常情况下,我们在与 C 进行交互,或者我们需要挖掘 Swift 内部实现原理的时候会需要使用到这个特性。

RunLoop 学习笔记

RunLoop 是 iOS 开发当中一个很基础又很重要的概念。由于它是一个很底层的概念,日常开发中很少直接接触到,再加上官方文档写得很难理解,导致很多开发者(包括我自己)都对这个概念一知半解。但是,既然它是很重要的概念,又是 iOS 开发的底层基础,我们就不得不去把它啃下来。

经过这几天的学习,感觉自己对 RunLoop 的概念理解得比较清晰了,因此写篇笔记来进行下总结。

(译)使用 Swift 3 与 Xocde 8 创建条码与二维码扫描应用

本文由SwiftGG独家授权发布。

那么,什么是二维码呢?我相信读者中的大多数都知道什么是二维码(译者注:我觉得应该是全部都知道吧)。以防还有读者没有听说过二维码,可以看一下上面这张图片(译者注:原文如此,并且原文中也没有图片)——那就是二维码。

二维(QR 全称是 Quick Response 快速响应)码是一种二维的条形码,它是由 Deson 所发明的。它原本被设计用于跟踪工业生产中的零件,最近几年二维码被用于编码 URL,在消费市场上受来越来越多的欢迎。与你所熟悉的普通条形码不同的是,二维码在横向和纵向上都包含了信息。这赋予了它储存大量数字和字母信息的能力。我并不想在这里深入讨论二维码的技术细节。如果你对这些感兴趣的话,可以参考二维码的官方网站