Mythsman


I wonder how the world builds software.


Linux


  1. 利用 FFmpeg 将视频转换为 GIF 操作指北

    背景 在写技术文档的时候,为了演示方便,经常需要插入一些短小的视频资源。比如一些操作的录频、一些经典视频片段、一些科普动画等。由于展示的地方通常是网页,而如果是插入视频之类的资源,通常需要占用额外的存储,而且也需要可用的视频播放器的支持,非常不便。对于命令行操作的回放,我们可能会采用 Asciinema [https://asciinema.org/],但是这个方案对非终端的操作无法模拟。一个常见的方案是把需要的资源转换成网页支持的 GIF、WEBP 格式等动图。考虑到各大浏览器对 GIF 格…

    Linux, FFmpeg, Tools, Gif阅读全文

  2. 纯Docker部署Https服务——以Nextcloud为例

    背景 近期阿里云的廉价学生机小水管到期了,打算把一些服务打包迁移到微软员工不要钱的azure云上。 原先各种服务的部署方式都是直接部署的,换主机需要重新搭建各种环境非常麻烦,也容易遗漏。于是就想跟随潮流把这些服务都上docker,能够做到部署一把梭。 难点 一般的开源组件都会有官方docker镜像,部署起来其实都很方便。大部分对着官方文档改改配置再用docker-compose组合一下参数就能跑起来。比较麻烦的点就是网站要部署成 https 的话需要 SSL 证书。对于个人使用的小网站来说,…

    Linux, Docker, Https阅读全文

  3. 快手抓包问题分析

    背景 不知从什么版本后,对快手进行简单抓包似乎“不可行”了。表现就是使用常规的 HTTP 正向代理抓包工具(charles [https://www.charlesproxy.com/]、mitmproxy [https://mitmproxy.org/]、fiddler [https://www.telerik.com/fiddler] 之类)并且把自签名证书种到系统证书里后,数据依然能刷出来,也能抓到一些零星的报文,但是关键出数据的那些接口报文都没有。 一般来说,常规方法无法抓安卓应用的…

    Spider, Linux, Network阅读全文

  4. Python依赖管理的一些思考

    前言 之前一直比较抵触用 Python ,很大一部分原因是觉得 Python 项目的环境管理比较混乱。Node.js 有 Npm 包管理工具,通过 package.json 配置项目依赖,最多再通过 nvm [https://github.com/nvm-sh/nvm] 来进行环境切换;Java 有 Maven [https://maven.apache.org/] Gradle [https://gradle.org/] 来进行包管理和项目依赖配置,并体现在 pom.xml 和 build…

    Python, Conda, Linux, Tools阅读全文

  5. Ngrok内网穿透简单上手

    背景 这两天想跟异地的妹子一起玩《泰拉瑞亚 [https://www.douban.com/game/10755861/] 》。直接用steam的联机非常卡,而自己的电脑又没有公网IP,于是最简单朴素的想法就是搞一个内网穿透,将自己本地的IP映射到一个公网IP上。 natapp 一开始是打算用natapp [https://natapp.cn/] ,但是这个东西的免费版会经常强制换域名换端口,非常难受。而收费版虽然不算贵,但总觉得挺浪费,可能也不怎么用却一直要续费。 后来想到natapp其实…

    Tools, Linux阅读全文

  6. Shell解析处理XML方法汇总

    前言 前几天干活的时候遇到一个需要解析处理xml文件的一个需求,当时考虑到逻辑比较复杂,因此用java慢慢搞了搞。不过这个需求经常会变,每次变化之后都要重新找到jar包的代码,改了之后还要替换原来的jar包,一来不方便修改,二来不方便统一保存代码,三来也不方便查看jar包的功能。 其实对于这种比较灵活的功能,最方便高效的做法是采用一些脚本语言,比如python,ruby等等,开发效率高,而且也能处理一些复杂逻辑。但是由于种种原因,工作中有的机器没有安装这些语言的解释器。因此不得已,研究了一波用s…

    Shell, Linux, Tools, XML阅读全文

  7. Linux下定时任务配置深入理解

    前言 关于定时任务的配置其实是一个老掉牙的问题了,为什么我又要总结一遍呢?我想大概有以下几点原因。首先,大多数文章都聚焦于cron语法,而比较忽视具体的操作步骤。其次,很多文章都介绍的比较凌乱,层次不是很清楚。而且,当我理清楚linux下定时任务配置的一套流程之后,深刻的觉得他的设计真的是很周到的。不过最重要的一点大概就是我非常不喜欢那种堆砌命令用法的文章,好像Linux就是他写的一样,东一块说明,西一块说明,谁都不知道这些说明是谁说的,从哪里来的,是不是以讹传讹,可信度有多少,是不是已经不被支…

    Linux, Shell, Cron阅读全文

  8. 编写Shell脚本的最佳实践

    前言 由于工作需要,最近重新开始拾掇shell脚本。虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看。而且当我在看其他人写的脚本的时候,总觉得难以阅读。毕竟shell脚本这个东西不算是正经的编程语言,他更像是一个工具,用来杂糅不同的程序供我们调用。因此很多人在写的时候也是想到哪里写到哪里,基本上都像是一段超长的main函数,不忍直视。同时,由于历史原因,shell有很多不同的版本,而且也有很多有相同功能的命令需要我们进行取舍,以至于代码的规范很难统一。 考虑到上面的这些原…

    Linux, Shell阅读全文

  9. Linux的环境变量配置详解

    简介 在平时使用Linux的时候,经常需要配置一些环境变量,这时候一般都是网上随便搜搜就有人介绍经验的。不过问题在于他们的方法各不相同,有人说配置在 /etc/profile里,有人说配置在/etc/environment,有人说配置在~/.bash_profile里,有人说配置在~/.bashrc 里,有人说配置在~/.bash_login里,还有人说配置在~/.profile 里。。。这真是公说公有理。。。那么问题来了,Linux到底是怎么读取配置文件的呢,依据又是什么呢? 文档 我一向讨…

    Linux, Shell阅读全文

  10. 利用CSF防火墙屏蔽恶意请求

    问题 最近不知道为什么,恶意代理的请求数越来越多,明明我返回的都是403Forbidden,但是由于数量实在庞大,还是消耗了我大量的带宽和资源。之前的方法已经没有用了,想了半天还是研究研究防火墙吧,虽然仅仅靠Apache也能对某些IP进行黑名单设置,但是感觉还是有点麻烦的。比如最常见的用iptables,或者是ufw,虽然都能很好的做到管理,但是他们基本都需要一条一条的加,十分麻烦。 网上搜索了下,找到了一个挺方便的小工具--CSF(ConfigServer & Security Firewal…

    Linux, Tools阅读全文