为什么我不用笔记软件

2010年左右,我开始使用Evernote。那时候,我用它来记密码、软件注册码,还有一些杂项条目。接着,我渐渐用Evernote“收集”写得好的文章等。如今,我好久好久才会去登录一下Evernote,查看一些以前的东西。为什么我不再用笔记软件了呢?因为没什么东西需要记了。

不上课记笔记

有人需要上课记笔记。[1]对于发ppt的老师,我把ppt打印出来,在ppt上记东西,一般不会很多。我选课不太选写板书的老师,万一不慎选到了,就用纸笔记。

不记密码

从前我用Evernote记密码,但后来Chrome浏览器有了记住密码功能,我就用Chrome的密码功能了。读者也[……]

继续阅读

A progressive git workflow

When you are new to Git, you may be presented with the dizzy branching workflow of Git, which is often a picture of Figure 1. In this article, I will interchangeably use the term git flow, git workflow, and git branching model.


Figure 1: so-called a successful Git branching model[1][……]

继续阅读

btrfs ext4 xfs性能比较

创建了三个分区,总容量都是50G。发现XFS占用的元数据最多,其次是ext4;btrfs元数据最少。

BTRFS
EXT4
XFS

git add .
real 21m23.858s
user 17m8.905s
sys 1m43.146s
real 30m5.863s
user 21m13.333s
sys 2m41.837s
real 26m8.169s
user 19m3.882s
sys 2m36.098s

git commit[……]

继续阅读

slurm集群上的并行

除了线程并行、进程并行,在shine集群上我们还可以在节点或slurm任务级别并行。

假设有1000个文件夹,每个文件夹要用被CreateLabel.py处理。我们可以创建1000个slurm任务,每个任务接受一个参数,即文件夹路径。

为了减少阻塞其他任务,slurm并行任务需要再原基础上加两倍nice。若原本是GPU任务,设–nice=300;若原本是CPU任务,设–nice=200。[……]

继续阅读

slurm sbatch的输出

如果没有指定–output和–error,sbatch就会使用默认值,即写到文件。但是,是否立即写到文件则取决于具体的应用。

如果用Python,如果print没有加flush,则输出会被缓存,往往等slurm任务结束才会一次性写到文件。[……]

继续阅读

脱字符表示法与ANSI转义序列

读者往往从“如何在Bash输出颜色”接触到ANSI转义序列。当探索Bash逐渐深入,读者会在Bash高级用法的特殊按键、键绑定里看到脱字符表示法与ANSI转义序列。本文辨析脱字符表示法与ANSI转义序列。本文不需要读者掌握“输出颜色”的技能。

本文将用带框文字代表键盘上的特殊按键,如Esc代码ESC键、ctrl-d代表按住ctrl和d。没有框的文字代表逐字输入,如[31m表示依次按下[、3、1、m四个键。

物理ESC键在Bash的内部表示

$ cat
Esc[31mhello
ctrl-d

会看到hello变为红色。

命令行的实际显示是^[[31mhello,说明[……]

继续阅读

Tensorflow里的交叉熵损失函数及互相转换

CategoricalCrossentropy 交叉熵

在数学上,交叉熵(cross entropy)的定义如下

\[
H \left (\vec{y},\vec{\hat{y}} \right )=-\sum_{i=1}^{\left \| y \right \|} y_i \log \hat{y_i}
\]

交叉熵的输入是两个向量。另外,向量每个元素之和必须为1,即,。

这种最原始的交叉熵在Tensorflow里被称为CategoricalCrossentropy

试计算

\[
\begin{align*}
& H([0,1,0],[0.05,[……]

继续阅读

Bash与zsh的比较

Bash
!可以执行上一条命令,!vim可以执行上一条以vim开头的命令,但是Bash并不显示具体的命令是什么,这缺少安全感。

除非shopt -s histverify

zsh
同样使用!操作符,zsh会显示将要执行的命令,用户需要再按一次回车进行确认。

zsh(或oh my zsh)
运行命令时,标题栏显示正在执行的命令。有的命令输出信息很多,一直在滚屏,有的命令则覆盖shell命令行,我们就可能“忘记”正在执行什么任务。

此外,在图形界面操作时,如果开了多个终端,某个终端标题栏发生变化(命令执行结束)容易引起注意。[……]

继续阅读