让 SSH 走代理连接服务器

很多网络运维、或者站长需要通过 ssh 来管理服务器、vps,如果不凑巧,你和服务器之间相隔了一堵 GFW,那么由于 GFW 会分析 ssh 数据包,结果就是导致稍微慢一点的网络就会让命令卡一分钟。

GFW 现在完全有能力分析 ssh 流量特征,以判断你是在真的使用 ssh 配置服务器,还是使用它作为代理来浏览网页。

如果有什么好的办法让ssh像浏览器那样指定翻墙就好了。

事实上,还真有[……]

点击跳转以继续阅读

Swift 使用 InputMethodKit 写输入法

如何在 iOS 上写一款输入法?这个问题已经被很多人解答过了。你可以轻易通过 Google 找到一篇详细的教程。但是,在 macOS 上写一款输入法就没那么简单了。

好吧,严格来讲,是指用 Swift 在 macOS 上写一款输入法很难。主要的原因是 从来没有人做过这件事情 。

目前能够获取的资料,除了苹果官方的 API 说明(一点用也没有),以及官方的 demo(很详细但过时了,而且[……]

点击跳转以继续阅读

Swift 3 里的 GCD

Xcode 8 正式版已经发布,我要在第一时间迁移我的项目到 Swift 3 —— 毕竟这是趋势。

在迁移的过程当中我遇到了很多问题——比如 Xcode 提供的自动迁移工具根本没有用,在我等待了两个多小时之后,我放弃了,选择手动迁移——毕竟,Xcode 的自动更正也是很好用的。

然而——在迁移过程当中,Xcode 一直处在 “indexing” 中,功能也不怎么全……可能是由于 Swi[……]

点击跳转以继续阅读

Swift UIButton 圆角 + 阴影

很多时候,我们都希望按钮更符合 iOS 的设计风格,这样会让应用的界面看起来不那么跳,就算设计的不好看,也不会显的与系统格格不入。

“我不是设计师,我不知道怎么设计好看——但尽可能贴近系统风格不是错误的选择。 ” —— by Router

那么对于 UIButton 来说,圆角+阴影应该是常态。

放一张图片

显然,这是最便宜的办法——实际上也最昂贵。它需要你为每一个按钮做一系列的圆角图片,[……]

点击跳转以继续阅读

用 ownCloud 搭建个人私有云

背景交代

根据国家的规定,所有网盘必须接受审查!(可能是因为女神太多了,你懂的 =_=),然后大部分网盘纷纷停止服务,大厂商里现在只有某度云还在运营。但是,你存到某度云里的所有资料都要接受审查(女神的电影会变成15秒教育片,这还是轻的;要是你敢说dang不好,或者把类似的文件存到某度云里,明天就会有人来给你送快递…)所以,根据这个背景环境,我需要一个属于自己的网盘(不管你需要不需要,至少我需[……]

点击跳转以继续阅读

iOS 自定义键盘 左右划动移动光标 实现

我们都直到,第三方输入法比如搜狗输入法有个经典的手势操作——在键盘上左右划动即可移动光标。而这个功能我自己也十分的常用,所以,我想要自己来实现它。

首先我想到的就是 UISwipeGestureRecognizer ,不过结果可想而知,划动一次只能移动一格光标,这可不是我想要的。

看来唯一的办法就是用 UIPanGestureRecognizer[……]

点击跳转以继续阅读

我是如何使用双拼的

说起来,使用双拼也一年多了。现在每天都在使用,手机在用,电脑也在用——很奇怪早些年的时候为什么没有遇到这么优秀的输入方法。总之,经过这么久的持续使用——再加上我甚至为了能在 iOS 上体验与 Mac 一致的双拼,我还自己动手写了一个输入法(见首页)。

现在双拼已经是小众了,我曾按照自己的理解,写了一个双拼是怎么来的这个文章,是为了放在输入法的 FAQ 里。不过,虽然总体上双拼渐渐的被全拼所淹[……]

点击跳转以继续阅读

用 Santa 阻止 Mac QQ 的 Jietu.app 启动

更新,新版的qq截图的名称改了,改为 QQ jietu plugin.app ,目录不变。

下文中的命令已经做了对应的修改。

我们都知道 QQ 这个东西和 360 一个样,尽不干好事。出了 Mac 版也没想着把功能做好,倒是流氓先耍起来了。这次更新后,你就会发现 QQ 的截图功能独立出来了(其实很早就独立了,我指的是其他方面),网络连接不和 QQ 本[……]

点击跳转以继续阅读

Swift 中的正则表达式

在一开始,Swift 里并没有提供正则表达式的支持,所以我们只能自己来封装,比如说写一个结构体,像这样:

其实现在 Swift 已经有了对正则表达式的支持,我们只需要这样:

直接就能获取正则捕获的内容了。

 

获取到的是一个[crayon[……]

点击跳转以继续阅读

Swift 中切分数组

大多数情况下,如果我们想要获取数组中某一段的内容(比如说从前到中间,或者数组最后的某些值),这时候就需要遍历数组来给新的数组赋值:

这样数组短了还好说无所谓,但如果数组比较大而我们需要的值又比较多,那遍历起来显然就很浪费时间。

Swift 中本身就提供了对数组进行拆分的功能,这个机制是一个叫做 [crayon-6904e9[……]

点击跳转以继续阅读

让 pip 走代理

使用 python 的时候,经常需要下载一些第三方的框架,好在 python 也有类似 apt 的包管理工具,pip。

不过,pip 虽然能够管理包,却没有切换镜像源的功能,而我们下载的包,大多数都在国外大型的代码托管服务器上,这就导致了往往几百KB的包要下载一个小时。

 

这里我们假定,作为程序员的你,已经给电脑部署了 HTTPS 以及 HTTP 代理,我们之前也讲过[……]

点击跳转以继续阅读

什么是 双拼 ?

落格输入法是一款专业的双拼输入法,它致力于让用户体验双拼输入快感的同时也可以兼具全拼的优势——比如海量词库等。

对于双拼的认知,你不应再停留于单字重码率介于全拼和五笔之间这个概念,双拼是时尚的、符合汉语发音本能的一种输入方法。

全拼

既然要介绍双拼,我们还是从你最熟悉的全拼开始。要知道,abcd这样的符号并不起源于中国,自然,中国一开始也没有这样类似英语音标的拼音。后来,为了普通话的发展[……]

点击跳转以继续阅读

“plugin invalidated” ios 自定义键盘

国内似乎没有人愿意来为 iOS 系统写一个输入法,除了几个寡头大公司在做以外就没有别的了。走近了中国特有的苹果生态平台看看,发现其实里边都是空壳子,有意义的应用真的是少的可怜。

落格博客最近正在致力于给 iOS 平台写第一款能真正支持码表的双拼输入法,第一个兼容的双拼方案自然是开放的“小鹤双拼”,这中间踩了不少坑,陆续会发一些经验出来。现在,先来紧急记录一个坑:

在键盘使用过程当中,会偶尔[……]

点击跳转以继续阅读

在 Swift 里使用 SQLite 数据库

SQLite

说起 SQLite,它和你熟知的 MySQL 一样,都是关系型数据库管理系统,但与后者不同的地方在于,它完全不需要对应的独立服务器!

一般说起来,SQLite 都是以文件的形式存在,大多用在应用的内嵌储存里。通过在应用代码里加载 SQLite 库,就可以很方便地直接存取 SQLite 文件里的数据了。

SQLite 由 C 编写,所以你懂的,要调用它的库,一定也是 C 语言[……]

点击跳转以继续阅读

Xcode 里各种 Sent Event 的含义

在 Xcode 中,我们给 iOS 平台开发 App,免不了要添加一个按钮绑定一个事件,这时候就有说法了,你会发现一个按钮的触摸事件早已经不是以前的一个“Touch Up Inside”那么简单了。

参照题图,目前至少有这么多中有的没的事件可以供你选择,在功能更多的同时,新手可能就更加懵逼了?

这次我们就一起来看看这些事件,究竟都是什么样的手势:

Did End on Exit

nRF24L01 无线收发模块 Arduino

nRF24L01 是一款工作在 2.4~2.5GHz 世界通用 ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型 SchockBurstTM 模式控制器、功率放大器、晶体振荡器、调制器、解调器。输出功率频道选择和协议的设置可以通过 SPI 接口进行设置。

方便的设置以及极低的功耗使得它被广泛地应用于无线鼠标、键盘;无线门禁、各种智能物联网设备通讯等方面。

参数

在 macOS 10.11 上用 BootCamp 安装 Windows 10 解决分区错误

一切为了再吸两口!

屁股先锋出了,为了能够吸上它,我也是废了九牛二虎之力。——谁叫爸爸这么坑不支持 macOS 呢!

据说虚拟机来安装守望先锋虽然能够进入游戏但会有奇怪的黑块出现,游戏不能。

总之,用了 macOS 五年了,第一次终于有了装双系统的理由。

但曾今的 Bootcamp 攻略已经不适用了,在 El Captian 里,不再需要 U 盘来制作 Windows 的安装盘,而是自[……]

点击跳转以继续阅读

利用阿里云域名管理 API 实现 动态域名解析 ddns

动态域名解析,缩写ddns,它不同于我们常用的DNS解析,而是专门用于对付那种没有固定公网 IP 的服务器地址解析的。

典型的使用情况就是:自家宽带构建小服务器,没有固定IP,想要上线,除了写脚本发邮件外,就只有ddns这一条路可以走了。

目前来说,国内最知名的可能就是出了名的难用不稳定的花生壳了。国外的话有一个dynu也很不错。

现在阿里云开放了 API,那么我们能否使用阿里云的 AP[……]

点击跳转以继续阅读

embedXcode 找不到 Arduino 系统库头文件

在 Mac 上玩 Arduino,除了可以使用官方的那个简单的 IDE 之外,还可以选择使用 Xcode 来进行开发。

使用 embedXcode 插件即可让 Xcode 摇身一变成为嵌入式开发 IDE,包括了本地编译、上传等全套功能。

不过,在使用标准库的时候就出了问题,比如上图中,我在测试 nRF24L01 这个 SPI 模块,需要用到 [crayon-6904e9866f[……]

点击跳转以继续阅读