谢谢你留下时光匆匆
docker常用命令整理

最近在部署一些应用时候用到了docker,上一次用docker也是几年前了,很多命令印象已经不深刻了,这里稍微复习整理了一下常用的命令,方便以后部署应用使用。

container 相关

运行一个container

启动一个container是docker应用部署的关键一步,有许多配置选项需要注意。

1
docker run [flags] XXX/IAMGE_TO_RUN

利用Github Action定时运行Python脚本

自己业余时间经常会开发一些脚本,定时运行它们,来辅助自己完成各种各样的任务,比如:定时推送天气情况到自己的todo list;定时运行一些爬虫,摘录新闻、消息(例如优化热榜类RSS feed源);定期整理自己的财务数据,输出报表等等等等。

以前我用过云服务设置cron job定时来跑这些脚本,但是云服务的使用是需要付费的。后来Github Action发布,public repo可以无限制使用,private repo也提供一定的免费时长额度。Action job可以通过cron形式触发,我们可以借此实现定时运行Python脚本。整个实现过程只需要两步,本文简单记录一下过程。


优化热榜类RSS feed源

自己个人很喜欢用传统的RSS feed源来获取信息,因为其简洁纯净的风格,可以避免App推荐算法带来的信息茧房,以及广告与用户评论带来的嘈杂;RSS的集成性,使只用一个完全定制的app接受各种信息变为可能,提供很不错的浏览体验。但有一类比较重要的信息与RSS适配不算完美,就是各大平台的热榜(例如,微博热搜、知乎热榜等),这些热榜类信息代表时下社会热点。

现有的热榜类RSS feed源,以RssHub为例,不能带来很好的浏览体验,其原因有三:首先,热榜channel是以每一条热榜条目为item,每条item在channel出现的顺序并非按照热度顺序呈现,很难定位到头部重点热点内容;二是以热榜条目为item,整个channel内会出现一段时间内所有的热榜条目,数量庞大;三是传统意义上,RSS item应该以一篇文章为单位,热榜中每条条目单独作为一条item,信息量极小,与RSS阅读器的操作逻辑不符合。

于是,我自己搭建了一个为热榜类信息优化的RSS源,本文记录一下相关细节。


为Hugo主题添加动态跟随目录Scrollspy效果

自己搭建设计博客主题时候,采用了主栏与侧边栏的双栏设计,在博客文章页面,侧边栏可以用来呈现文章的目录(一级标题,二级标题等),方便读者了解文章整体结构脉络,也方便读者进行跳转操作。基础的目录html部分可以通过Hugo原生的{{ .TableOfContents }}函数实现。除了基本的目录,自己还想为目录部分添加上动态跟随的工作,即,目录会高亮出目前读者所浏览部分的标题。博客原先采用的bootsrap框架自带的Scrollspy模块可以实现这个功能,但是如果页面元素发生高度变化(例如,评论功能的异步载入),该Scrollspy功能会出现位置定位不准的问题。经过一番尝试后,自己最后使用了gumshoe作为替代实现动态跟随目录的效果,本文记录整个相关实现的细节。


Markdown转换Latex简易实现方案

学术文章通常使用Latex进行最后的渲染,但是直接利用Latex语言进行写作并不方便,各种命令细节(例如,命令的花括号的输入)常会打断书写的思路;此外,较为笨重的渲染引擎也很难做到“所见即所得”的写作模式,给文本(尤其是数学公式)修改带来了一定不便;相对的,Markdown作为一种“轻量级”的修饰语言,简单的修饰符,加上完备的工具生态,码字的体验更为流畅。自己读书期间进行学术写作时候,采用了先Markdown写作,再进行Latex转换的步骤。这其中的Markdown到Latex的转换可以利用 Pandoc 进行。但转换后的Latex会有很多附带的不必要的代码,尝试几种方案后,我发现利用正则表达式处理这些不必要的代码是最为直接有效的方法。本文将相关脚本代码以及简单使用说明贴出。


利用Kindle阅读网络文章

在前不久闲鱼公布的 2021 年度十大“无用”产品中,电子书名列第3上榜。Kindle 作为墨水屏幕电子书的代表产品,在许多人生活中使用率并不高,常处于“吃灰”的状态。因为其较小的屏幕,以及流式操作逻辑(无法方便进行前后翻页的对比阅读),并不适用于专业书籍文章的阅读。唯一较好的使用场景是娱乐阅读,例如网络小说,文学作品的阅读。所以,Kindle 常常被戏称为”盖泡面神器“。

现在网络时代信息爆炸,在刷手机时候,其实我们常常会接触到各类文章,微信公众号文章,新闻app时事文章,知乎各类新知文章。但细想起来,对于这些手机上刷到的文章,我个人经常只是扫了一眼过去。手机上阅读很难有沉浸感,很难在手机上专注仔细品读文章。后来想到能否将手机上刷到的文章发送到 Kindle 进行阅读,经过我一番调研和实践,找到一个利用 Inspaper 的解决方案,本文记录一下最后的实现方案。


一些好的代码习惯

对于代码,自己也算半个有代码洁癖的人。自己平常也会开发一些小玩意儿,写点个人项目,因为各种各样的事情耽误,可能一个个人项目的开发是断断续续的,中间有时候会间隔好几个月,这么长时间的间隔,之前代码的思路,细节处理早已忘记,这时候需要重读代码来熟悉项目。久而久之,随着项目代码的积累,代码的质量就尤为重要。

养成好的代码习惯,可以促使我们写出高质量,可读性更强的代码,以方便后期维护,提高工作效率。本文记录了我在开发过程中,认为较好的代码习惯,用以规范自己以后的开发习惯。我大致将好的习惯分为两类,一类是能优化代码视觉阅读习惯的,另一类是能降低代码逻辑思考负担的。这个习惯,有些来自于自己实际的经验,有些来自于我代码的阅读过程,还有些来自于相关资料。


iPhone/iPad后台播放YouTube视频方案

之前在学英语时候,经常在YouTube上找一些喜欢的博主,观看他们分享生活,分享观点看法。除此之外,YouTube上还有很多课程资源,闲暇时间可以以此拓宽知识面。但是YouTube app并不支持后台播放,在一些使用场景下,这带来了一些不便,例如在路上听YouTube博主的分享,或者听一些像是相声、歌曲之类纯音频的内容。

自己最近调研了多种网络上的方案,大多数解决方法只支持安卓平台,ios平台上使用Alook app的方案最近又失效了。后来,我发现可以利用YubePiP这款免费app实现iPhone/iPad后台播放Youtube视频。本文简单介绍一下具体操作步骤。


RSS Feed xml格式模版与标签归纳

最近在做的几个个人项目,都会遇到RSS feed的开发,这里对rss开发相关的资料做一个汇总,方便以后开发使用。


简明图示解释Git各类合并的区别

本文尝试用一系列图示解释各种Git合并的区别。

为了叙述方便,我们将被合并的分支称为dev开发分支,合并到的目标分支成为master主分支

master分支与dev分支合并前状态
master分支与dev分支合并前状态