软件是为什么服务的

前一段时间都在忙论文的事情,没有时间更新博客。

近期又做了不少的工程,对于软件开发又有了许多新的理解。我认为许多刚入行的程序员存在一个对技术的误解,就是: 软件到底是为什么服务的。

……

阅读全文

我的 Linux 开发环境

GNU/Linux 操作系统数量繁多,对于新手直接使用进行开发十分不友好。但是,随着 许多工具的发展,Linux 入门已经没有那么困难,这里简单介绍笔者的几个开发环境, 供读者参考。

……

阅读全文

《睡眠革命》阅读笔记

睡眠革命是一本关于睡觉的书。

我在其中学到的比较关键的几点:

  1. 早点睡觉,90分钟前不要工作,不要刺激。
  2. 起床之后90分钟,也是睡眠时间,给身体一个适应的时间。
  3. 任何时候小睡30分钟,可能对你的身体都有莫大的好处。别怕,但别睡的太长。
  4. 人睡眠是90分钟为周期的。
  5. 每天早上起床时间基本上一致。请尊重你的生物钟。
……

阅读全文

穷爸爸富爸爸 – 阅读笔记

这本书解决了不少让我迷茫的问题,感觉还不错。主要讲了一些财务的问题,以及打工的价值,当老板的价值。有些人可能一辈子就打工了,有些人则不同。有些人一辈子都不懂,有些人很小就懂了。

书中有不少夸张的地方,辩证思考^_^

……

阅读全文

Ubuntu 装机总结

本以为常年 Ubuntu 装机小达人的我不会再出现重装的失败的情况,不想,竟然成功将自己的重装次数刷新到30次(仔细想想,不应该是30次,应该是50次都有了吧)。

绝望之余,打算记录一下自己装机的心路历程。

  • 首先很恶心的一件事,Ubuntu 安装的时候如果网络环境不好,那么安装程序会闪退。基于 Ubuntu 的 mint 就没有这个问题。可见 Ubuntu的安装程序写的有多么不鲁棒。。(WTF)。
  • 再一个事情,cuda 最近(2019-03-19)安装不上了。我不知道是内核的原因,还是 header 的问题,反正就是安装不上了。我想尝试一下 runfile,看看能不能安装上,如果不能安装,那么我打算在网上找一个教程。我连 cuda 都没能装上,真不知道是哪里出了问题。
  • 装不上的表现是,mint 无法进入图形界面,并且键盘和鼠标都没有反应。-.- 我的天啊。
……

阅读全文

编程语言与知识基础

随着一部分编程经验的增长,我越来越觉得,是在知识基础上实现应用的工具。 最初,在我进行应用编码的时候,往往让我 stuck 的东西就是基础知识。这种基础知识,比如 WSGI,session,cookie 这些东西;以及过于焦急的学习心态。总想做出点什么,但是却没有意识到做出一个东西需要积累和时间。 语言的重要性在于,大量的使用语言会让你更了解你所使用的,与计算机交流的方式。这个很重要。语言使我们本身就站在巨人的肩膀上处理事情。因此,专注于一门语言在最初是十分重要的,因为我想很多人像我一样急于求成,并且很难按下心来慢慢学习知识基础。 意识到的时间似乎有点晚,但是不算太迟。我也能够花一些时间在知识基础上,使得事情解决的更加清晰。 还有就是硬件。想象中总是很美好的,但是实际上编程过程中,若是不考虑硬件,不考虑拓扑是不可取的。这是视角割裂。最近一直都在读一些软件工程方面的书,但是读的越多,越不敢说。 潜意识里,读的越多越发现自己懂得少,害怕自己说错。 就这些,算是给 2018 年读者的一个交代。……

阅读全文

将已经运行的进程切换到后台

之前一直都是用 screen 来后台运行 Linux 进程,但是 screen 对于已经在运行的进程就不方便处理了,这个时候怎么办呢? Run some SOMECOMMAND 1.** ctrl+z **to stop (pause) the program and get back to the shell 2. bg to run it in the background 3. disown -h so that the process isn’t killed when the terminal closes Type **exit **to get out of the shell because now your good to go as the operation will run in the background in it own process so its not tied to a shell 套路摘选自下面的连接。 这次训练直接用 bg 结果把自己的任务直接干掉了。。。「sad」。记得用 disown -h 来让任务逃离 「terminal」的控制。……

阅读全文

Django tricks

关于 session django.contrib.sessions.middleware | Django documentation | Django session 是使用 cookie 来进行判断的,通过 session_cookie_name 来提取,然后通过 SessionStore() 来保存。 因此,Django 也是通过 sessionid 来区分用户;(或者其他什么名称)。 使用 cache 作为全局变量 cache.set(‘foo’, ‘bar’) # another function cache.get(‘foo’) # get ‘bar’ 使用 cache , django-redis 是一个好方法。可以在使用 cache.lock变量,在应用层面加锁,来完成异步操作,还可以支持分布式应用,十分方便。……

阅读全文

My Keras tricks.

记录了一些使用 keras 的技巧。 categorical_crossentropy vs sparse_categorical_crossentropy. 3. The Answer, In a Nutshell If your targets are one-hot encoded, use categorical_crossentropy. Examples of one-hot encodings: [1,0,0] [0,1,0] [0,0,1] But if your targets are integers, use sparse_categorical_crossentropy. Examples of integer encodings (for the sake of completion): 1, 2, 3 clip norm Multiple GPU # https://keras.……

阅读全文