0%

概述

由于某些奇怪的原因(如项目中要用某个用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,下面我来大概介绍下吧。

阅读全文 »

1. 概述

写脚本的时候,想要用Python读取Excel文件内容,谷歌搜索发现了openpyxl这个包,学习后发现简单地读写Excel文件还是比较方便的,库的设计也很简洁,没有太多深奥的东西。这里记录一下,说不定哪天还是会用到呢。

阅读全文 »

这个博客以前是采用Disqus作为评论系统,之前Disqus还是偶尔能访问,最近是怎么着都没法访问了。写东西很多时候还是希望能得到反馈,因此为了更愉快的博客交流,我调查了下常见的还活着的的评论系统,最后发现了Valine。配置后发现真的是简单又好用,有任何想说的小伙伴都可以轻轻松松留言了,给有创造力的工程师们点赞!而且由于Hexo的NexT主题默认支持Valine配置(而之前使用的Jacman并不支持),所以也将博客的主题改成NexT了。于是从蓝花花变成了白花花~

后面说下这个博客经历的几次迁移记录,从2013-2019。

阅读全文 »

前言

拖了近20天的18年总结,今晚终于出炉了。很久没有像在实验室那会一样,打开Vim,新建一个.md文件,写一个总结,很晚才写完,执行hexod一键上传,打开浏览器访问vra.github.io,发现一切OK,才收拾东西往宿舍走,一路上异常满足。现在想想,记录所学的知识,并与人分享,我觉得算是很能提升幸福感的事情了。因此在空闲的时间,我还是会将我学的东西整理后写到这里,一方面是方便自己以后回顾,另一方面是希望能帮到别人,最后的私心是希望以这种方式记录时间的一部分,等到老了,慢慢翻阅,回想某年某月某个夜晚,写完了一个总结,回去的路上隐隐有些欣喜,那种情景,想想也觉得很美好。

阅读全文 »