Xeodou

Xeodou

将 Ghost 博客迁移到家里的 Raspberry PI
瞎折腾

将 Ghost 博客迁移到家里的 Raspberry PI

我这个博客最开始的时候使用的是 DigitalOcean 的最便宜的服务,后来 AWS 推出了更便宜每月 3 .5$ 的 LightSail ,我变把博客迁移到了 LightSail。由于博客本身使用的是 Docker 部署,博客使用的是 Ghost 的 self-hosted,只需使用 scp 将所有的数据从一台服务器拷贝到另外一台服务器即可。 scp [OPTIONS] [[user@]src_host:]file1 [[user@]dest_host:]file2 前几年我买了一块树莓派 4b, 心想着可以做一些好玩的事情,也可以把博客从 LightSail 迁移过来,每个月还可以节省一些钱,虽然很少但聊胜于无,遗憾的是一直没有行动。 刚这次假期的业余时间也很充沛,就刚好可以行动起来。迁移之前,我也研究了一下大概选择什么样的方案,我希望这个方案不单单可以用来部署我的博客也可以用来部署其他的一些应用。这时候 Coolify 进入了我眼前,这是一个类似于
5 min read
日本换驾照记
东京记事

日本换驾照记

在中国时我开车并不多,在上海的大部分时间居住都在公司 5 km 的范围内,相对于开车,地铁和自行车出行是个更好的选择。当然最关键的问题是我并没有一辆车,持有汽车的成本再算上使用次数也让我一直没有想法再买一辆。所以我的驾驶经验也并不丰富,这其中最长的一次就数有一年五一假期去山西自驾,租了一辆车几天的行程,两人平均开了 500 km 左右吧。 至于为什么想要换个日本驾照其实原因也很简单,总有很多地方是地铁没法到二公交又不方便的地方,再者就是我们还有一只宠物,有车出行也是方便很多。在来日本前,其实也已经做了一些功课,去哪里办理、需要哪些材料、哪些材料需要在国内办好等。准本的充足也是希望一切顺利。 到达日本后一直因为在处理其他更为紧急的事情,找一间公寓等,将这件事情放置一边,也正是因为如此也造成了我后面的一些问题。当然“懒“也是我一直没去办理的另外一个原因。大概几周前,我中国的驾照即将到期前,我终于不得不下定决心要去做这件事情。二月的早晨天还很冷,早晨 6 点多起床,天刚鱼肚白,几个月不曾早起的我们匆忙吃个烤吐司便直奔地铁站而去。经过一个多小时的车程终于抵达目的地,然后就是漫长的排队等待。
4 min read
涩谷十字路口

去日本工作

刚来日本时觉得每天时间都过的很慢,每天都有很多想去吃的餐厅、想去的地方、想做的事情,每一天都计划着下一天。不过 2 个多月过去以后好像习惯了新的生活节奏,时间眨眼即逝。 东京和上海,这两座东方最大的城市有些不一样,也有些相同的地方。在这之前最近一次来东京还是 3 年前,那还是世界还是正常的世界,没有疫情、没有战争、没有通货膨胀、没有健康码,有还是自由的国界。之前做为游客对东京的感觉是好吃的食物、干净街道、好玩的景点等等,和这次在东京工作的感觉也确实不一样,不用每天给自己安排满满的行程,因为也只有周末有空出去玩。作为游客不会日语会觉得很自然,工作在东京时却觉得语言的屏障让我降低了生活的质量。这次刚来东京时,日本政府还没有彻底开放国门,那时候几乎没有游客,都默认你会日语,当然也可能是因为同是黄色肤人,会觉得应该要会才对。当然也得庆幸,现在日本完全开放后,我可以做为看起来像游客的人得到更多包容。 在东京的工作和上海区别不大,去公司时便搭地铁去公司,在家办工时就宅在家中。东京的地铁更复杂,价格也稍微贵些,早高峰时也和上海一样拥挤。不过我更喜欢在公司工作,可以和同事没事的时候说说笑笑,谈谈一
4 min read
CSS

font-size 的常用长度单位

font-size 是网页开发的过程中 CSS 语言针对字体的一个属性,通常我们在设计一个网页时会使用不同的字体大小,可以方便对应 html 中的不同标签,我们一般作为 Heading 在整个项目中去不断的复用这些 Heading。像诸多设计工具一样,font-size 也有不同的单位,设计常用的单位可能有像素(px)、厘米(cm)等,而在 CSS 中 font-size 常用的单位有 rem、em、px、pt、% 这几种。那么 font-size 的不同单位都有什么不同呢? 相对长度单位 em、rem、% * em ,1em 就等于当前元素的字体大小,在印刷媒体时代,通常是用 M 的宽度表示 1em ,其由来由于英文中的 -- 与 M 是等宽的,--
5 min read
随想

动与静

一个平常的早晨是9点钟起床,10点钟左右出门,然后乘2号线地铁上班,江苏路下车后走路去公司。今日却有点不同了,我像往常一样路过我平日里买包子的包子铺正准备买包子,这时包子铺的老板娘问了一句:“一个肉包子和一个粉丝包子是吧?”,我愣了半响,反复思考一个问题:我的生活竟然已经按部就班到连包子铺的老板娘都知道我的习惯了。
3 min read
iOS Develope

Golang 开发跨平台SDK(iOS, Android),Part 1

**前一篇 [https://xeodou.me/2015/11/03/write-a-react-native-native-module/] **介绍了用React-Native做跨平台开发,其实Golang在1.5发布以后也是支持做移动端的跨平台开发的,Golang的移动端开发支持两种模式,一种是使用Golang开发整个应用,另外一种便是使用Golang开发common library。这两种各有优缺点,前者没有完善的UI库,如用来开发一个完整的应用需要的工作量着实有点不小,或者用来开发游戏可能也是一个不错的选择,亦或者寄望于Google可以开发出完善的UI库,至于后者想对于前者就方便多了,Google的GoMobile项目已经完善了大部分的工作,现在的缺点就是支持的数据类型还是远远不够,而且现只支持ARM架构。所以现阶段二者都还有些限制,但是作为一个跨平台的备选方案还是有其可取之处的。 How it works 在Google GoMobile的项目里Google提供了一个工具gobind,gobind 可以生成对于Java和Objective-C的bindings。下面是一
2 min read
reactjs

React-Native Native Module In Practise

React-Native [https://facebook.github.io/react-native] 是Facebook 开发的一套移动端跨平台开发的框架,其脱胎于 ReactJS [https://facebook.github.io/react/] 。React-Native允许你使用JavaScript开发移动端的应用,相对于 PhoneGap [http://phonegap.com/] React-Native 确实带来了原生应用的性能,如果之前有写过ReactJS,用React-Native开发一个移动端应用是非常容易的。不过虽然React-Native社区一天天壮大,但是仍旧可能需要自己开发一些React-Native的原生模块。 什么是React-Native原生模块 React-Native 模块就是包含原生代码库的React-Native的模块(在Android 里是包含Java代码库,在iOS里是包含Objecive-C/Swift代码库),其工作原理是将原生代码库加载到React-Native的包管理器中,然后用JS通过React-Native的b
3 min read
windows

一个简单的问题

最近一直忙于缅甸大选的投票系统,做Windows客户端给缅甸的人民用。由于种种原因我们用SQLCipher做客户端的数据库,Golang做中间的数据层。 我们的SQLCipher的Golang驱动是通过SQLCipher和SQLite驱动 [https://github.com/mattn/go-sqlite3] 修改来的,中间用了很多cgo的混合编码,其中就有著名的加密库OpenSSL。 编译好的exe文件直接执行的话会报missing libeay32.dll的错误。 之前我们的做法是把编译后的libeay.ddl放到系统目录C:/windows/system32文件下,这个文件下的所有dll 文件都是可以被任何应用共享的,问题自然就解决了。但是有一个问题是需要管理员确认才能将文件复制到该目录,所以我们就需要一个window installer去复制文件,其中还需要用户确认。现在我们的需求是解决这个问题,在这个项目之前我从来没有任何windows的经验,所有的经验都是以前用windows和google 来的。所以我搜索golang load dll go use static li
2 min read
gpg Featured

GPG 的工作原理

原文链接 http://www.pgpi.org/doc/pgpintro The Basics of Cryptography 当 尤利烏斯·凱撒 给他的将军们发送信息的时候,他并不信任他的信使。然后他就把信里的所有字母都向后移3位, A 替换成了字母 D ,所有的 B 替换成 E 等。只有知道 “向后移动三个位置” 的人可以解密出他的信息。这就是著名的 凯撒加密算法。 Encryption and decryption 无需经过特别处理就可以被读取和理解的数据称为纯文本数据或者明文。隐藏纯文本数据真实内容的方法称为 Encryption( 加密 ),加密后产生的不可读的乱码称为密文。通过加密过程你可以对你想要接受数据之外的人实现数据的保护,就算这个人得到了密文也无法知道真实的内容。将密文转换成明文或者纯文本数据的过程称为解密。图 1-1 描绘的就是这个加密解密的过程。 图 1-1 加密和解密 What is cryptography?
44 min read

拉面

在上海待了三年总有些味道是你无法忘记的,不知道什么时候就会突然的想起那股熟悉的味道,指引你去寻找它。 今天下午在看 米兰•昆德拉 [https://zh.wikipedia.org/zh/%E7%B1%B3%E5%85%B0%C2%B7%E6%98%86%E5%BE%B7%E6%8B%89] 的小说[《不朽》]( https://zh.wikipedia.org/wiki/不朽_(米兰·昆德拉),思考着阿涅丝的问题:一个人的脸其实并不一定代表自己,你喜欢的人的脸,可是那张脸下面可能并不是你,如果你从没有照过镜子的人在生活了20年以后第一次照镜子后,可能发现镜子里的人和你相像的并不一样,这个时候你不得不承认一个事实:你的脸不是你!然后就睡着了,突然间被莫名的惊醒,一看表其实才过了10分钟,却好像是睡了一宿一样。
2 min read