0%

概述

为了使用新版tmux的特性,需要在Ubuntu 16.04上安装高版本的tmux,没有找到现成的ppa,因此搜到了一个从源代码安装的脚本,这里记录下来。

阅读全文 »

概述

由于某些奇怪的原因(如项目中要用某个用Python3.4编译的库),你可能需要安装官方停止支持的Python版本(如Python2.5, Python2.6, Python3.3, Python 3.4或者更老的版本),
直接通过sudo apt install python3.4是没法安装的,因为Ubuntu 16.04移除了对Python3.4的支持。
作为不应该知道的知识的一部分,这里详细记录下在Ubuntu 16.04下安装旧版本的Python的方式,如果在2029年,因项目你需要安装Python3.4,或许本文可以帮到你。

阅读全文 »

oh-my-zsh

1
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

修改SHELL为zsh

1
sudo usermod -s /bin/zsh $(whoami)

安装fzf

1
2
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

git alias设置

1
2
3
4
5
6
7
8
9
10
git config --global alias.st status
git config --global alias.a add
git config --global alias.p push
git config --global alias.pu pull
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
git config --global alias.last 'log -1'
git config --global alias.co checkout
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

概述

在有些情况下,如安装某个比较Cool的工具的时候,需要用到Python3.6+。这时候,可以选择从Python官网下载源代码,然后编译。不过编译可能会因为各种各样的问题而出错。对于只是想安装高版本的Python以便来使用Cool的工具的我来说,
从头一步步地解决这些编译问题,并不是我想要的,因此能不能有一种直接apt install来安装Python的途径呢?答案是Yes,下面详述(也就三条命令)。

阅读全文 »

1. 概述

在使用Numpy的时候,有时候会遇到下面的错误:

1
AttributeError: incompatible shape for a non-contiguous array

看报错的字面意思,好像是不连续数组的shape不兼容。

有的时候,在看别人代码时会时不时看到ascontiguous()这样的一个函数,查文档会发现函数说明只有一句话:“Return a contiguous array (ndim >= 1) in memory (C order).”

光靠这些信息,似乎没能道出Numpy里面contiguous array和non-contiguous array有什么区别,以及为什么需要进行ascontiguous操作?带着这些疑问,我搜了比较多的资料,在stack overflow上发现一个比较详细的回答,简单明白地将Numpy里面的数组的连续性问题解释清楚了,因此这里翻译过来,希望能帮助到别的有同样疑问的小伙伴。

2. 额外知识: C order vs Fortran order

所谓C order,指的是行优先的顺序(Row-major Order),即内存中同行的存在一起,而Fortran Order则指的是列优先的顺序(Column-major Order),即内存中同列的存在一起。这种命名方式是根据C语言和Fortran语言中数组在内存中的存储方式不同而来的。Pascal, C,C++,Python都是行优先存储的,而Fortran,MatLab是列优先存储的。

阅读全文 »

今天无意中发现了这个vim-plug这个简洁又高效的Vim插件管理工具,试了下,安装插件简直没法再容易,大大减小了配置难度,对于我这种既想要Vim及插件强大的功能但又不想花费太多时间到配置上的懒人来说,Vim-plug简直就是神器了。
借用作者的原话,Vim-plugin有下面的优点:

  1. Easier to setup: Single file. No boilerplate code required.
  2. Easier to use: Concise, intuitive syntax
  3. Super-fast parallel installation/update (with any of +job, +python, +python3, +ruby, or Neovim)
  4. Creates shallow clones to minimize disk space usage and download time
  5. On-demand loading for faster startup time
  6. Can review and rollback updates
  7. Branch/tag/commit support
  8. Post-update hooks
  9. Support for externally managed plugins

既然配置又简单,功能又强大,为甚不小小折腾一番,提高工作效率呢?下面我以在Vim中安装一个Python的检查器为例,对Vim-plugin的使用进行说明。

阅读全文 »

概述

Git提交的时候,有的时候很容易将目录下的非源代码的文件(如二进制文件、模型等)提交到Git仓库里,给后续的使用造成麻烦。那么有没有一种方法来限制提交到Git的文件的大小呢,答案是Yes,下面我来大概介绍下吧。

阅读全文 »