水能载舟 亦可赛艇

你们非常熟悉西方的这一套理论

网件 R6220 刷机 LEDE(openwrt)固件教程

折腾 openwrt lede 路由器

家里一直用的是网件的 R6220 路由器,之前一直用的是原厂固件,因为本人不太喜欢在主路由器上装奇奇怪怪的东西,另外是因为 R6220 一直都没有好用的固件可以刷,前几天逛论坛发现竟然已经有人破解了 R6220 可以刷 LEDE 和 pandora 了,忍不住手痒又去刷了一波固件。此文记录一下过程。

2017-08-20 17:49 PM

Caddy - 方便够用的 HTTPS server 新手教程

运维 HTTP caddy

说起 HTTP server,使用最广泛的就是 apache 和 nginx 了,功能都非常强大,但相对而言,学习它们的配置是有一定难度的。最近发现了一个 golang 开发的 HTTP server,叫做 Caddy,它配置起来十分简便,甚至可以 28 秒配置好一个支持 http2 的 server ,而且对各种 http 新特性都支持的比较早(比如 http2、quic都有支持)。因此对于不用于生产环境只搭建个人博客是十分友好的,我就简单介绍下 caddy。

2017-08-09 23:30 PM

移植 LuaCoco

lua coroutine 协程 移植

lua 语言最大的卖点之一就是他的协程(coroutine)了。但是在 lua5.1 中有一个文档都没提到的一个坑:协程只能在 lua 中使用,当调用 yield 时,如果当前的调用栈上有 c 代码,则会报错 “attempt to yield across metamethod/C-call boundary”。目前有个第三方的 patch 叫做 luaCoco 可以让 lua 支持 “真协程”。本文研究了 luaCoco 的内部实现,并把它移植到了 xtensa 处理器上。

2017-05-30 13:38 PM

小蚁摄像头实时同步视频到群晖 nas(2)—— 使用 rtsp 协议同步

linux 嵌入式 折腾

上一篇 blog 我利用 inotify-tools 和 rsync 两个工具实现了自动同步小蚁摄像机里拍摄的视频。不过今天翻网络又发现了另一种自动同步的解决方案,这个可以利用到群晖 nas 的 Surveillance Station 功能,使用效果更佳一些。这篇博客记录一下这次折腾过程。

2017-01-04 16:13 PM

小蚁摄像机实时同步视频到群晖 nas

linux 交叉编译 嵌入式 折腾

之前买了个小蚁智能摄像机,原生只支持向小米路由器里同步视频,我只有一个群晖 nas 做网络存储,所以元旦放假在家研究了下怎么样“破解”小蚁摄像头使它能同步视频到 nas 上。本质上,小蚁摄像头也是一个 Linux 服务器,只不过是运行在 arm 上的嵌入式 Linux,所以 Linux 的整个生态环境都可以利用的上。我这次的解决方案是使用 Linux 上著名的 rsync 做同步工具,但是必须编译出一个在 arm 上能用使用的 rsync。所以这篇文章的重点是 交叉编译。

2017-01-03 00:12 AM

把你的 Linux 服务器打造成 AirPlay 音乐播放器

linux AirPlay

AirPlay 是苹果设备上最方便的播放技术,可以很方便的把音频、视频串流到你的电视或音箱上。现在大部分智能电视都支持 AirPlay 投屏了,但是支持 AirPlay 的音响设备还是比较少见(and 贵)。那么,有没有比较廉价的搭建 AirPlay 音乐播放器的方式呢?那就是今天的主角 shairport-sync。

2016-11-22 13:26 PM

女朋友都能看懂的 git 速查

git 速查

为女朋友总结了一些常用的 git 操作。这个速查默认:以 master 为主分支,开发新功能创建新分支。

2016-08-11 15:30 PM

总结 golang 对于 stream 的抽象

golang io stream 标准库

本文对 golang 标准库中的 stream 进行了一些总结。

2016-07-24 17:13 PM

并发难 | 池里究竟该放多少线程?

并发 思考

最近在项目里做了一个数据同步的功能。需要把两个数据库里的数据做同步,在业务不繁忙的时候跑一次,核对库里每一条数据,主要是为了保证数据最终一致,做的一个保底工作。之前项目里同步的代码是单线程的,我改成了基于线程池的,但是在上线前的一些问题却引起了我的思考。

2016-07-09 13:08 PM