编辑器之神vim养成
坐电脑面前,写文章敲代码,大部分时间是和编辑器交互的,所以编辑器效率高不高,好不好用体验都是最直接的。以前也试过Sublime Text,不过没有上手。编辑器之神vim的大名倒是早有耳闻,不过陡峭的学习曲线也不是盖的,所以也一直不敢亵玩。倒是最近转到linux下面,整天泡在终端里不出来,vim来vim去的倒也慢慢的喜欢上了,昨天一咬牙,找了参考自己配置了一番,硬把原本不比windows下面记事本高端的玩意儿武装成了战斗机,最大的感受是,好玩!下面把我的配置写在这里,留作参考。
开始之前先说说我是怎么上手vim的。窃以为学习使用vim,一开始的生存阶段能否坚持下来是最重要的,而我一开始是从使用chrome的一个叫Vimium的插件开始的。装上以后可以用vim的浏览模式看网页,所有操作都可以通过键盘执行,尤其是我经常包着笔记本又懒得带鼠标,简直吊且酷。这无疑是个不错的切入点,有不懂的按一下问号查帮助,很方便。等基本操作熟悉了以后再来学着用vim就自然的多。至于说明书、教程之类的网上很多,这里就不废话了。
配置vim
vim的配置我认为在于两个方面,一是vim本身提供的各种设置选项,通过写配置文件~/.vimrc
来调整,二是安装插件,这个就看想象力了。两者相结合,vim登神。
注意事项
所有的命令都有两种设置生效的方法 ...
read moreubuntu下python虚拟环境的配置问题
昨天重做了一下系统,今天配置的时候有些新收获,写在这里。
Enthought Canopy
注:下面有更新,Enthought Canopy现在并非首选。
自己用python首要是做计算的,昨天试着自己配置一下几个常用的包,弄了半天卡在依赖关系上了,没办法又用回Enthought的Canopy。
Canopy是一个集成环境,把IDE和扩展包管理器等东西绑在了一起,做计算用的包也都有,装完所有东西都齐活了可以直接使用,非常舒服,后续的升级维护也很方便。
但有一个问题是Canopy会推荐你将其设置为系统默认的python环境,好处是你在终端里面也可以用Canopy下面的包,这样就免得你再次配置,非常方便。问题是,如果后面用python做其他方面的开发,直接就乱套了。
Canopy的虚拟环境
Canopy采用了虚拟环境,所以并不影响系统本身的python环境,思路大致是把机器的环境复制一份出来放在其他路径下,运行维护就跟机器的环境再不相关了。
如果你也安装了Canopy,可以看一下,一般机器的python环境都在
/usr/lib/python2.7
而Canopy默认情况下则把环境装在了
/home/Enthought/Canopy
两者没有什么关联。
而之前提到的将Canopy设置为系统默认python环境,则是Canopy在~/.bashrc
文件最后加了一句
VIRTUAL_ENV_DISABLE_PROMPT ...
ubuntu的简单配置
接触ubuntu不过两个月,之前装了一个试玩,熟练之后越发的喜欢了,准备把工作环境迁移过来。不过之前只给了ubuntu 30g的磁盘空间,明显不够用,而且gnome3各种反人类,昨天心血来潮把原来的系统删了,扩了一下磁盘,重装。今天重新配置,顺便写在这里,后面方便查阅。
装系统
分区
我搞的是双系统,windows虽然讨厌,但还真离不开。没装ubuntu之前,硬盘分了两个区,c盘是主分区,用来装系统,剩下的扩展分区是一个d盘,存数据。
要再装个ubuntu的话就得再分一个区出来,做法很简单,(如果有的话)在windows下面,找到磁盘管理器,在原来的d盘上右键,压缩磁盘,跳出来的对话框可以调整大小,我弄了130g出来,点确定,过一会儿就能看到多了一个130g的空闲分区,windows下面的操作就到此为止了。
注意虽然压缩磁盘对原有的数据没影响,但磁盘操作都有丢数据的风险,最好提前做好备份。
做u盘安装盘
先去找一个顺眼的ubuntu的iso镜像,官网上就能下,这次我选了xubuntu,就是ubuntu换了张皮,但很多细节做的很舒服。
而后google一下UNetbootin,是个跨平台的ubuntu安装盘制作工具。找个空u盘,插电脑上 ...
read more用Matplotlib做一个交互式的德劳尼三角生成器
正在看的一篇文献里用到了德劳尼三角形的算法来界定包含了一些点的空间,搜索了一下,这里有一个在线的小程序,让你可以通过鼠标在演示界面上点击的形式确定点的位置并动态的生成德劳尼三角形。
唯一的问题在于这个小程序是java
写的,而我不懂java
,遂用python
自己写一个,也方便h后面给同事们展示。
Matplotlib的Event
其实这样的交互式程序应该用GUI
包来完成,为此我甚至把Tkinter
的文档都翻了一遍,偶然的机会我注意到常被用来画图的matplotlib
居然也可以实现交互功能,简直喜出望外。
官方的文档请参考这里,除了必要的介绍还有几个例子供学习。显然matplotlib
提供的交互功能与真正的GUI
包比起来孱弱很多,不过能在作图的过程中加上一两个交互的特性确实是锦上添花的事情。
链接Event
matplotlib
里面event
的用法和GUI
包的设定大同小异,都需要声明把特定的事件名称和一个函数关联起来:
fig.canvas.mpl_connect('button_press_event',click)
这里fig
是一个 ...
创作的法则
之前提到要自己折腾博客的主题,也就是重写网页,不过我本身没有经验,看了html和css的基本语法以后还是无从下手,不过经过一些思考,我觉得还是有一些线索可以追寻的。
来自摄影师的启发
摄影教材中的经典《纽约摄影学院教程》一开始就指出优秀的摄影作品具有三个特点:
- 它必须有一个鲜明的主题
- 它必须能将观者的注意力引向主题本身
- 它必须去除了不必要甚至是干扰主题的元素
这既是评价一个作品优劣的标准,也给创造出好的作品指明了方向。显然,这些法则也适用于设计网页。
当然我更愿意把设计网页比作绘画,不同于摄影的,这是一个无中生有的过程,每个像素的存在都是创作者刻意而为之的结果,所以也必须体现了创作者的意图,为创作目的而服务。
实用为美
在什么是美的问题上,我认为很多人走入了一个误区,以为美应该是极尽华丽的。但一个事物被创造出来却只有很少一部分单纯是为了给人提供美的感受的————更多的是要服务于一个目。
比如近来遇到的一个事例:街上很多店铺门前的地板喜欢选用光亮的瓷砖材质,平时还没什么问题,遇上下雨下雪就变得很滑,行人猝不及防的即使不摔倒也不免心惊胆战一下。既然是地板,首要的目的应该是供人行走,亮丽则在其次。刻意的追求感官效果,本末倒置了。
另一方面,华丽意味着更多的元素,进而意味着更难以驾驭,一个不好怕是会起反效果。
我想说的是,对于美,或许有另外一条逼近的路径:当一个事物被设计成能够最大限度的服务于其存在的目的时,同样得到了美的结果。也即,最实用的就是最美的 ...
read more