你好世界

这里是一只废喵,时隔多年,我又准备写博客了。这次搬家到了 GitHub pages,用上了hexo。整体感觉还不错,简单记录下折腾 hexo 的经历。

安装步骤

1
2
3
4
npm install hexo-cli -g
hexo init blog
cd blog
npm install

这几步是在本机上安装好 hexo,并且生成一个 hexo 项目文件。

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

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

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

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

移植 LuaCoco

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

image_1bhbpomnrk0m58270a54k789.png-16.9kB

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

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

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

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

总结 golang 对于 stream 的抽象

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

Interfaces

在 golang 中,通过几个基本的 interface 对流操作进行了抽象。

读写

首先是最基本的Reader、Writer,定义了对于一个流来说最基本的操作:读、写。这两个 interface 定义在 io 包里。

1
2
3
4
5
6
7
type Reader interface {
Read(p []byte) (n int, err error)
}

type Writer interface {
Write(p []byte) (n int, err error)
}

Proudly powered by Hexo and Theme by Hacker
© 2020 wastecat