努力工作,认真生活。


Tools


  1. PDF字体乱码问题分析

    背景 最近身体有恙,于是就想起来整理下这几年体检的电子报告汇总看看。结果发现在善诊平台下载的体检报告在电脑上看直接乱码了。不过这种字符集的问题怎么能难得了本码农呢,所以就尝试起各种办法进行恢复,结果发现这果然是个深坑。。。 问题 本来好好的一个 PDF 报告,结果打开后画风是这样的: 我本地的环境是 Macbook,尝试了用 Chrome 打开、自带的 Preview 工具打开,都是同样的结果。除了 ASCII 字符能展示,其他所有的中文信息都没有,但是 PDF 中的所有图片都能正常展…

    Tools阅读全文

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

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

    Linux, FFmpeg, Tools, Gif阅读全文

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

    前言 之前一直比较抵触用 Python ,很大一部分原因是觉得 Python 项目的环境管理比较混乱。Node.js 有 Npm 包管理工具,通过 package.json 配置项目依赖,最多再通过 nvm 来进行环境切换;Java 有 Maven Gradle 来进行包管理和项目依赖配置,并体现在 pom.xml 和 build.gradle 等中。而 Python 相比编程语言有时更体现了脚本语言的特性,系统化和标准化程度都不太高。很多 Python 项目上来就是怼代码,没有声明依赖、配置…

    Python, Conda, Linux, Tools阅读全文

  4. Ngrok内网穿透简单上手

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

    Tools, Linux阅读全文

  5. IntelliJ常用配置备忘

    前言 最近IntelliJ又由于自己的骚操作给弄崩溃了,导致之前弄的一大波配置又找不到了,十分蛋疼的又要开始重头开始弄环境。很多之前精心搞过的配置又都记不住了,为了防止以后出现这种情况,这里就把我日常用的配置和注意点记一下,免得以后又要重新摸索。尽量持续更新。 安装 安装这块没啥好说的,不过要注意的是,虽然 IntelliJ 有 Community 版,但是毕竟还是少了一些东西的,比如对JavaScript的支持、一些静态检查的支持、Spring框架的整体支持等等。因此还是不要太委屈自己…

    Java, Tools阅读全文

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

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

    Shell, Linux, Tools, XML阅读全文

  7. 利用Graph-tool进行图的可视化处理

    前言 最近恶心的项目中期检查,我被分配到做社交图的分析,然而事实上我并不知道弄啥。虽然不是我自己答辩,但是考虑到还是不要太坑dalao,我决定不管怎样至少得搞点图撑撑场面免得尴尬,这几天就赶鸭子上架倒腾了下graph_tool这个专门用于对图进行可视化的python库。虽然网上中文资料不足,但是他的英文文档还是非常全面的,很多设计的小细节也在文档里提及了,非常简单容易上手。下面就从一个初学者的记录下我的学习历程。 安装 虽然是个python库,但是毕竟是要做大量数据计算的,因此graph…

    Python, Tools, Graph-tool, BigData阅读全文

  8. 关于Ascii-Art的一些总结

    前言 好久没写博客了,倒不是因为最近没在学习,而是觉得最近学得有点太多,一时无从下笔。知识这种东西真是奇怪,真的是懂得越多才知道自己懂得越少。虽然这个真相经常会给我一种无力感,但是我还是会沉浸在了解一件事情的来龙去脉的过程中。唔,看来学习也是会容易让人上瘾的。。。 不过最近在学习的过程中,我渐渐也明白了一点,那就是碎片化的学习效率那是惊人的低。我曾经十分推崇学习一个技术的时候,先上手,然后遇到一个问题就解决一个问题。但是后来慢慢发现,这样经常会导致我们花很多的时间去解决那些在这个领域里非常基…

    Computer Vision, Ascii Art, Anecdote, Tools阅读全文

  9. 用Unoconv工具将DOC,PPT批量转为PDF

    前言 最近需要在网页上做一个对于文档的预览功能,但是这个预览功能基本只能对pdf格式的文件进行处理,而不能对doc、ppt之类的格式进行处理(毕竟微软爸爸)。因此为了能够方便的显示所有的文档,并且统一管理,我需要找到一个能将doc、ppt这些文件方便快捷的转成pdf的工具。当然,word、ppt这些软件本省有到出成pdf的功能,网络上这类转换工具很多,但是用起来也是不太方便,而且这当中垃圾软件也不少。 仔细想想,实现这个功能无非有两个途径,一是利用微软自己的api。不过这显然有点麻烦,还要自己…

    Tools阅读全文

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

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

    Linux, Tools阅读全文