2019-11-21 随记

所谓人生无常,天下的幸福都是相似的,但是不幸却是万千百态的。最近生活中发生了一些变故,有些事情终究还是落幕了,不论愿意与否,都需要画上句号。同时自己朋友的一些成就让我感到恐惧,让我又有了一些危机感,也开始忧虑和思考起了自己的未来与人生。

Migrating to hexo from hugo

先辈们说:Don’t Reinvent The Wheel, Unless You Plan on Learning More About Wheels,反正就是不要重复造轮子,因为这本身是一件浪费时间的事情。

最早的时候我是使用Wordpress的,那个时候是还是LAMP、LNMP满天飞的时代,各种一键脚本层出不穷,虽然我不一定会用,但是事实证明我总是重复地去配置,也没有整理成自动化的脚本最后对于我掌握这门技巧还是没有任何实质性的帮助。就这样用了很久很久,博客也得到了比较好的发展也有不少的访问量了,突然发现了Github Pages,而且借助Cloudflare也可以实现半程的HTTPS访问,具体怎么做可以自行Google,这边不作赘述。然后折腾了一段时间之后得到了最优解(也使用过Pelican Static Site Generator):Hexo+NexT。当然,维护了一段时间之后发现场上除了经久不衰的Wordpress之外还出现了GravGhostTypecho等优秀的CMS搅局者,但是这些都没有吸引住我的目光,直到GoHugo

Manjaro Taste

之前有尝试过Arch Linux,但是因为arch本身折腾的属性实在是太过浓重(什么都需要自己进行配置),因此就“浅尝辄止”了。
最近在看到了这条信息:Manjaro Linux的两项大胆举措 ,发现的重点有四个:1. 基于Arch Linux 2. 商业公司驱动 3. 使用了不开源但是兼容性更好的FreeOffice 4. 预装了N卡驱动免折腾 。在稍作查询之后我发现Manjaro对硬件兼容性的支持也很好,联想到最近使用Ubuntu 19.04的卡顿感(尤其是SSD下开机速度基本是2分钟),旋即决定尝试一下这个新鲜(对我而言)的系统。

Daily Trivials

其实日常的工作和学习中出现问题最多的倒不是一些比较大的课题,都是一些小问题小毛病,因此最多的是troubltshooting和tips。

这篇文章讲用于记录我日常遇到的一些问题的解决和一些小的hacks。话不多说,let’s begin.

  • nginx测试配置是否正确

The -c flag indicates a certain configuration file will follow; the -t flag tells Nginx to test our configuration.

nginx -c /etc/nginx/nginx.conf -t

  • tigervnc-server 无法启动问题
    Fatal server error:
    (EE) Cannot establish any listening sockets - Make sure an X server isn’t already running(EE)

推荐使用Beancount来记账及部署私服记录

郭大神的《在Google的這四年》系列文章中提到了他是一个重度记账用户,他选择使用beancount 来进行他的日常记账工作,于是从这里我接触到了double-entry accounting,也就是复式簿记啦,感兴趣的可以自己主动去google具体的原理等,其实我也只是一知半解,仅停留在知道是啥而已。但是其实账目相平,从不同的桶将豆子都来倒去的原理让我耳目一新,因为之前自己的记账方式太过原始,只是简单记录下自己的花销等。当消费习惯引入了信用卡,花呗等贷记方式之后就会发现记账变得非常困难(比如还款和具体交易金额无法区分),只是能看到自己的花费而不能明白如:自己的钱从哪来,又到了哪去这个问题。于是我选择尝试一下beancount。

Manage python project configurations

When working on a python project I’ve been thinking how to manage the configurations in an elegant way, just like the ‘maven-way’(use a placeholder and replace them when packaging). Here are some points I care about:

  1. separate development and production configs
  2. easy to use, no need to include third party packages
  3. safe, will not be committed to git repo by mistake
  4. out-of-box, no need to modify the code to run on production or development environment

Setting Shadowsocks Libev With Obfs

今天是2019年2月5日,农历大年初一。但是今天发现昨天icloud photos加载不出来不是空穴来风,应该是GFW升级了之类导致的,起码在目前的网络环境下(江苏电信),是电脑和手机全线崩,不能访问Google的。

所以第一时间考虑如何修复这个问题。但是对于我而言翻墙成本有以下几个需要考虑的点:

  1. 多用户多端口(小伙伴们合租)
  2. 上网习惯了PAC模式自动切换代理开关
  3. PAC模式可以随时新增网址(算是第2点的补充,这个列表需要不停地update)

2019.01.27

生活总是充满了无穷无尽的困难,以及希望。

最近越发地清楚地意识到了自己换工作是多么迫切的一件事情(虽然18年的3月份就有此打算但是不知道为何精力不够或者说自控力不够强导致一直延期延期或者得过且过,一直没能下定决心)。通过又是一年的工作,平时的工作内容,考虑到薪资待遇以及自己能力的成长,越发觉得上海某地方银行的信用卡中心是个不宜久留的地方,不然自己的人生都得搭进去。简单分析有以下几个原因:

2018-11-18

这周刚巧基友在爬国学网站,爬出来的都是json,于是他想到了存在mongodb中,然后再导出为PDF。因为他跟我提了这件事情,联想到腾讯的招聘要求中有一条加分项就是了解过mongodb,心想自己也得去研究一下(于是???最后也没看mongo是怎么玩的是么?【逃】)。于是准备安装。在mac下直接使用brew install mongodb结果炸了:

1
2
3
4
5
6
php@7.0
mongodb: A full installation of Xcode.app 8.3.2 is required to compile this software.
Installing just the Command Line Tools is not sufficient.
Xcode 8.3.2 cannot be installed on macOS 10.11.
You must upgrade your version of macOS.
Error: An unsatisfied requirement failed this build.

2018-10-24

本周继续学习GOPL,在讲到defer语句的时候提到了很有意思的一个概念,是Linux中的file descriptor。简单来讲,linux在系统中都有一个唯一的id指向某个文件,例如0指向标准输入,1指向标准输出,2指向标准错误,3…从3开始,直接指向到开启文件。最大1024,换言之如果同时开启的文件太多超过1021,那么就会出现Linux File Descriptor 耗尽的问题。以下为全文:

File Descriptor

一个打开的文件通过唯一的描述符进行引用,该描述符是打开文件的元数据到文件本身的映射。在Linux内核中,这个描述符称为文件描述符(FileDescriptor),文件描述符用一个整数表示(C语言中的类型为int),简写为fd。文件描述符在用户空间(相对于内核空间而言,也就是我们应用程序的那层)中共享,允许用户程序用文件描述符直接访问文件。同一个文件能被不同或者相同的进程多次打开,每一个打开文件的实例(也就是java中的File类对象吧)都产生一个唯一的文件描述符。同一个描述符可以被多个进程使用。不同的进程能同时对一个文件进行读写,所以存在并发修改问题。