RaspberryZero网络与OTG配置.md

买 Raspberry Zero 的原因呢, 是因为钉钉打卡, 每次可能晚了那么几分钟, 但我就是起不来啊… 这篇文章主要讲三个点 无屏幕 SSH, Static IP, 开启OTG模式 SSH 当然在 ssh 的时候要保证 Raspberry Zero 是有网的状态, 编辑第二个分区 wpa-supplicant 的配置文件 /etc/wpa_supplicant/wpa_supplicant.conf 基本网络配置 network={ ssid="testing" psk="testingPassword" } ssid 无线网络名称, psk 无线网络密码 隐藏网络配置 network={ ssid="testing" scan_ssid=1 psk="testingPassword" } 多个网络配置 network={ ssid="HomeOneSSID" psk="passwordOne" priority=1 id_str="homeOne" } network={ ssid="HomeTwoSSID" psk="passwordTwo" priority=2 id_str="homeTwo" } priority 网络优先级 连接 SSH 如果网络配置没问题的话,现在应该已经连接上了无线网络了, 接下来就是在无屏幕状态下如何 ssh 到 Raspberry Zero 挂载第一分区在 / 目录创建 SSH 文件就可以了, 然后插电启动 Raspberry Zero 等待自动连接到网络后进行后续操作...

十一月 1, 2018 · 1 分钟 · Mioto Yaku

为终端设置代理

现在一般都是使用 SS FQ 了吧, 所以都是 SOCKS5 代理, 但是在终端有些程序是不支持 SOCKS5 的, 比如 go get 方法一 如果你的 SS 目前 Cow 支持的加密算法有: aes-128-cfb, aes-192-cfb, aes-256-cfb, bf-cfb, cast5-cfb, des-cfb, rc4-md5, chacha20, salsa20, rc4, table 安装教程参见 https://github.com/cyfdecyf/cow#快速开始 方法二 如果你用的 SS 加密算法不在以上支持的情况 可以先使用 ss-local 在本地开启 SOCKS5 然后在通过 Cow 将 SOCKS5 转 HTTP

十月 5, 2018 · 1 分钟 · Mioto Yaku

安装 Manjaro I3 记录

用 Manjaro I3 差不多快半年了, 重装了两三次, 记录一下自己的安装记录, 避免以后遇到一些坑 配置文件 配置文件使用 [Mackup](https://github.com/lra/mackup) 进行备份, 备份至 Dropbox 中 输入法 搜狗输入法…, 怎么说呢, 用起来很可以,简单方便. 但是在 Manjro 下安装简直是一种煎熬, 需要自己 building QTwebkit, 所需要的时间你自己想… 可能有更简单的方法, 但是我不知道… 我现在使用的输入法是 ibus rime, 简单好用, 虽然不能同步输入习惯,但是通过 Mackup 解决了 字体 编程字体主要是用 manoco, Dejavu Sans Mono 两个都很好看, 可以尝试一下, 因为使用 zsh 可能还需要装一下 [Powerline Font](https://github.com/powerline/fonts) 常用软件 JetBrain 全家桶, 主要用 Goland Google Chrome 浏览器 VSCode 用来写 Markdown zeal 类似于 Mac 下的 Dash, 用起来还不错 Dropbox 同步 dotfiles, 以及一堆的资料 Ibus Rime 中文输入法, 台湾人开发的?...

十月 5, 2018 · 1 分钟 · Mioto Yaku

私有-docker-registry-搭建

简介 这个东西可能并没有你想象中的那么完美, 适合个人使用, 上传后无法删除镜像, 但是有第三方工具帮你删除后面会讲. 如果这几点你都不介意的话, 可以继续往下看了!!! docker 的基础操作我都不会讲, 如果不太了解的话建议去官网学习 必备的程序 docker-ce, docker-compose. 本机搭建 registry 的默认端口为 5000 如果想将 hub.docker.com 上的 alpine 做个镜像. docker pull alpine:latest docker tag alpine:latest localhost:5000/alpine:latest docker push localhost:5000/alpine:latest --- version: "2" services: registry: image: registry:latest restart: always volumes: - registry:/var/lib/registry volumes: registry: 配置前端 registry-frontend 是 registry 的前端, 如果想详细设置可以去 konradkleine/docker-registry-frontend 这里看. 效果图如下: --- version: "2" services: registry: image: registry:latest restart: always volumes: - registry:/var/lib/registry registry-frontend: image: konradkleine/docker-registry-frontend:v2 environment: ENV_DOCKER_REGISTRY_HOST: registry ENV_DOCKER_REGISTRY_PORT: "5000" ENV_MODE_BROWSE_ONLY: "true" depends_on: - registry volumes: registry: 配置域名与认证 我使用的是 caddy 作为我的反向代理服务器, 当然你也可以使用 nginx 等....

八月 19, 2018 · 1 分钟 · Mioto Yaku

Go byte 数组转 string

今天遇到个问题, 如何将 [32]byte 转 string // https://play.golang.org/p/JkK_B5609GN func main() { hs := sha256.Sum256([]byte("hahaha")) fmt.Println(hs) } // ===== // [190 23 140 5 67 235 23 245 243 4 48 33 201 229 252 243 2 133 229 87 164 252 48 156 206 151 255 156 166 24 41 18] ...

三月 11, 2018 · 1 分钟 · Mioto Yaku

Go Slice 原理解析

今天被一道题目恶心到了, 发现不研究这些东西可能真的活不下去了, 狠下心来读了一个多小时的源码, 写下些自己对 Slice 的见解吧. 先说说那个题目. // https://play.golang.org/p/2fA3BylTgtf // 请问 s1 和 s2 的值分别是? func main() { s1 := []int{1, 2, 3} s2 := s1[:0] s2 = append(s2, 4) fmt.Println(s1) fmt.Println(s2) } //========== // [4 2 3] // [4] Slice 定义 先看看 Slice 在 Go 底层的定义 // https://github.com/golang/go/blob/master/src/reflect/value.go#L1806 type sliceHeader struct { Data unsafe.Pointer // Array pointer Len int // slice length Cap int // slice capacity } 原理讲解 第一行 s1 := []int{1, 2, 3} 是将 [1, 2, 3] 的首地址 存入了 Data 中, 设置了 Len 为 3, 设置了 Cap 为 3....

三月 9, 2018 · 3 分钟 · Mioto Yaku

Go HTTP JSONRPC Service

就贴一段代码… package main import ( "bytes" "errors" "io" "log" "net/http" "net/rpc" "net/rpc/jsonrpc" ) type Args struct { A, B int } type Quotient struct { Quo, Rem int } type Arith int func (t *Arith) Multiply(args *Args, reply *int) error { *reply = args.A * args.B return nil } func (t *Arith) Divide(args *Args, quo *Quotient) error { if args.B == 0 { return errors.New("divide by zero") } quo.Quo = args....

三月 6, 2018 · 2 分钟 · Mioto Yaku

基于 Go 的 RESTful API 怎么设计权限控制

其实 RESTful API 实现权限控制的方法很多很多, 比如在每个 Handler 中进行判断, 但是这种写法会导致工作量无限增加, 万一增加了其他的角色还要不停的更改源码, 所以要以尽量优雅的方式来实现这个部分. 比如 Middleware 的方式. ...

二月 22, 2018 · 2 分钟 · Mioto Yaku

openssl 自签证书

最开始主要是想玩玩 Go http 2 Push 的, 但是发现以前那种最简单的自签 Chrome58+ 后就不认了… 查询后才知道 Chrome58+ 后只允许包含SAN(Subject Alternative Name)信息的证书. ...

一月 29, 2018 · 2 分钟 · Mioto Yaku

使用GoBase64标准包遇到的问题

在解析 jwt 中的 Playload 部分的 base64 时遇到了错误. 报错代码 enstr := "eyJBY2NvdW50SWQiOiIxIiwiQ2xpZW50IjoiIiwiRW1haWwiOiJ5YWt1Lm1pb3RvQGdtYWlsLmNvbSIsIk1hc3RlckZsYWciOnRydWUsImV4cCI6MTU0ODc0NTY5OSwidHlwZSI6ImVtcGxveWVlcyJ9" // {"AccountId":"1","Client":"","Email":"yaku.mioto@gmail.com","MasterFlag":true,"exp":1548745699,"type":"employees"} debytes, err := base64.StdEncoding.DecodeString(enstr) if err := nil { // ... // err output: illegal base64 data at input byte xxx } // ... ...

一月 29, 2018 · 1 分钟 · Mioto Yaku