室内空气监测

GP2Y1010AU0F
左图[1] 是夏普的紧凑型光学灰尘密度传感器 GP2Y1010AU0F (PDF),淘宝三十元不到。

传感器内部有一个 LED,通过检测灰尘对光的反射的强度来估计空气中单位体积内灰尘的质量。
虽然因为无法区分灰尘颗粒的体积,无法直接推算出 PM2.5 数值,但我想它和 PM2.5 之间应该还是比较强的相关性的 来源请求

(嘛 30 块一个东西还是不要想太多比较好。

另一个传感器是 DHT22,淘宝大概 20 元一个。用于测量空气温度和湿度。

去年暑假我把这两个东西用了起来,监测室内空气状况并绘制图表然后显示在网页上。干嘛用?就是玩具,好玩嘛… 如果你也觉得有点意思,想搞个玩玩… 这篇文章也许可以用作参考。

事隔较久,一些细节记不太清了,可能会有些疏漏。相关代码在使用前记得改改文件名路径什么的。 继续阅读

银联闪付遭遇 POS 机 Bug —— 钱飞了

见到有人谈论银联闪付(QuickPass)、电子钱包(UPCash)、脱机支付时我就忍不住想去讲我这次遭遇。但我发现一两句还真说不清楚,想想还是写篇文章来记录一下好了。虽然事情已经过去一年多了…

电子钱包与脱机支付

先说一下几个基本概念。

所谓电子钱包,就是卡内有一块 IC,(电子)现金以数据的形式直接存在 IC 内。不记名不挂失[来源请求]

脱机即不联网,脱机支付即为在不与银行通讯的情况下直接完成支付。电子现金使脱机支付成为可能。

有了银联闪付,在读卡器上直接拍卡就能完成支付,不需要密码也不用签字。嘛就是类似公交卡的那种体验啦…

顺带,往电子钱包里存钱叫做「圈存」,从电子钱包里体现叫做「圈提」,现在 ATM 机里似乎都能进行这两项操作。卡上带有「UPcash」字样,并且在限额大于 0 的卡都能进行此项操作(限额调整可在银行柜台办理)。

POS 机死机重启

当时我和往常一样,拿着工行的借记卡在超市用闪付结帐。

超市的 POS 机是中行的,一个小巧的「读卡器」通过连接线与 POS 机相连。使用时,只需将银行卡置于读卡器之上,读卡器显示扣款金额,「嘀——」,显示卡内余额。POS 机打印两份小条,一份商家留底,一份自己拿走,无需签名确认,完成。

那天,扣款时「读卡器」突然「死机重启」了。(嗯我确定那是在重启,我对画面中闪过的「Bootloader」等字样比较敏感(

当时我也没多想,又刷了两次:第二次依旧死机重启,第三次才成功支付

核对存根

平常有保留各种票据的习惯,到宿舍后我翻出了上一次闪付时的小条,和这次的对比: 继续阅读

Nexus 9

一没忍住,入了 Nexus 9,剁手啊。

最近才知道,美亚(amazon.com)上的东西是可以直接寄往国外的。似乎商品页面有注明“This item is also available for shipping to select countries outside the U.S.”字样的都行,我随便点了几个就没发现不支持的。

这导致了在其网站购买 Nexus 9 异常方便,免得找转运折腾什么的,看着靠谱用着安心。当然 US$ 33.33 的邮费也很可观。好在我这不用交关税,要是在加上 80 刀的关税什么的… 还是上淘宝吧(

虽然港版也出了… 但…还是网上买方便啊!再者船票也比邮费贵多了…

UPS 负责运送,9日上午(UTC+8)发件,15日中午到手,历时六天,应该还不算慢?

Nexus 9 UPS 盒子Nexus 9 UPS 盒子侧面Nexus 9 盒子

寄来的包裹长这样,点击大图有码见谅。大小盒子间只塞了几张纸,我大淘宝卖家比它不知道高到哪里去了

机子就不贴图了,我拍的照片和工信部的有得一拼(

简单说下使用感受吧

手感比已故的 iPad 2 好很多。更轻、薄。嘛毕竟隔了几年的科技了,还拼不过可说不过去。应该和 iPad Air 比较?但我没怎么玩过所以没办法啦。

2G RAM 似乎不大,但使用一周下来还没遇到内存不够的情况。即在几个程序之间切换时,没有程序因为内存不足而清扫出门。

Lollipop,赞!原生大法好!

自带电源输出 5V 1.5A,作为一个有着 6700 mAh 电池的设备,不觉得 1.5A 有点太少了吗!实际充电的时候,在点亮屏幕、CPU 闲置的情况下,电池输入电流大概在 1A ~ 1.2A 之间浮动。虽然没有试过,估计从没电到充满插一个下午是要的吧……

最不满的一点是,音频输出底噪明显。比手上这台索尼猴机还要明显。视频/音乐等连续的音频输出带来的是连续稳定的噪声;按键声等带来的是断续的噪音,烦啊。肾板、魅族 M8、正在用的 Dell 本子没这问题;现在的 Xperia SP,之前用的华为和天语,还有旧的联想本子,也是不同程度的底噪。所以这问题其实挺普遍的?

简单的 SSTP 服务器

SSTP (Secure Socket Tunneling Protocol) 是微软开发的一种 VPN 协议,用 SSL/TLS 加密 PPP 流量。参见 使用 SSTP 协议的 VPN 有什么优势和缺陷?

本来没怎么关注这个东西,支持少非主流,IP over TCP,也是因为一些奇怪的事突然有了这方面需求了,才开始了解它。

SoftEther

目前在 Linux,服务器似乎只有 SoftEther 这个实现。这软件也是挺拼的,把各种流行的非主流的 VPN 协议都给实现了一遍,跨平台,GPL。还提供傻瓜化的 GUI 管理,中日英三语界面,简直就是部署 VPN 的大杀器。只是一来太重,二来对 RADIUS 支持不全,不太符合需求。

DIY

因为内部走的是 PPP,如果只是调用 pppd 并转发数据,由 pppd 负责用户认证等麻烦事,自己实现一个目测也不是太复杂。加上微软的官方文档甚详,近来又一直想学一下 Twisted 但又不知如何入手,决定来写一个试试。

托 Twisted 的简单易用,挺顺利地初步完成了这个 SSTP 服务器。

代码放在 GitHub 和 PyPI 上了,sorz/sstp-server
PyPI

安装使用

供参考,详见sstpd --help继续阅读

OpenWrt VPN 按域名路由

简述

这是一种基于域名的 VPN 智能翻越方案。不同于 chnroutes 这类通过维护一个 IP 地址列表来区分国内外网站的方案,基于域名的方式不受 IP 地址变动的影响。仅需维护一个相对很少有变化的域名列表即可。

dnsmasq 在 2.66 版之后加入了对 ipset 的支持,可将指定域名的 IP 解析后自动加入某一 ipset 中。 再配置路由规制,使该 ipset 中的 IP 走 VPN 即可。

感谢 @wzyboy 提供了此方案的思路。

大致流程

  • 配置 VPN
  • 配置 dnsmasq,指定域名
  • 增加一个路由表,默认网关为 VPN
  • 使用 iptables 匹配 ipset 并打上 mark
  • 使用 ip rule 将打上 mark 的包送入该路由表

所需软件

  • iproute2
  • dnsmasq (>= 2.66, has ipset)
  • iptables (with ipset and mark modules)

继续阅读