EverET.org

好记性不如烂笔头

论程序之帮助文档

| Comments

每个程序都拥有自己的生命,每个程序都应该拥有自己的帮助文档。一个好的帮助文档可以让一个程序的寿命延长。当然,有了一个好的帮助文档还不够,还需要友好快捷的帮助方式。

Shell

我们在shell下可以使用各种小工具,像ls,ps,grep等,当我们需要查看ls的帮助,可以是键入man ls,至于什么是man,我们可以输入man man,就可以看到man的帮助了。

这给用户提供了一种统一而便捷的帮助接口。

Vim

Vim的帮助主要是通过:help, 例如,可以输入:help x,查看x按键的帮助。如果不指定主题,:help默认打开一个总揽的帮助窗口。

Python

Python交互式解释器除了python自带的,还有一个非常好用的交互环境是iPython,ipython – Tools for Interactive Computing in Python。

Python的文档是和对象绑定在一起的,每个对象都有一个doc的属性,我们可以通过这个属性查看这个对象的文档,例如print str.doc,当然,如果我们需要更详细的帮助文档,我们可以help(str),查看str的帮助。如果我们想了解一下os模块,我们可以键入help(os),就可以看到关于os的详细的帮助文档。

Python是个神奇的语言,交互解释器也是一个神奇的环境。

Emacs

emacs里面有非常详细的各种文档,我们可以是用 Ctrl+h    i   g 打开它,然后阅读帮助文档。

例如,我们想知道emacs的调试工具的使用,我们可以键入  Ctrl+h   i   g   (emacs) Debuggers   RET  ,然后就可以看到像gdb,pdb的帮助手册。这个是非常方面的。

如果我们想知道某个按键具体是做什么的,我们可以 Ctrl+h   k ,然后按下按键,例如 Ctrl+x   Ctrl+f  ,就会打开如下的帮助:

发现一个很好玩的Python网站

| Comments

http://www.pythonchallenge.com/

又是一个解题过关的网站,不过这次题目是Python的,有兴趣的同学们一起上吧。

豆瓣的介绍:

来玩pythonchallenge吧,理由如下: 0、Tim Peters的理由:”I’ve been using Python since 1991, and while I’ve always enjoyed it, I have to confess this is the most Python fun I’ve had this century! Excellent work. Thank you!“ 1、沈大仙的理由:”说到这里, 想起我们部门新来两位同事, 在使用 Python 做项目之前, 先沉下心来做了两周的 Python Challenge, 把 Python 模了个透, 结果两周后程序写出来相当漂亮, 甚至让我这种老牌 Python 程序员跌破眼镜, 与我周围的同事立马有了境界上的区分。” 2、给你的理由:能在短时间内完成全部33题,这可以证明你很聪明。 3、自己的理由:俺连滚带爬好不容易做到了第27题,沮丧地看到了自己的笨,但从好处想,这至少可以证明俺有毅力,嘿嘿。 4、自私的理由:憋死在第27题,等老大们来给个提示拉俺一把吧。

临近大三结束的一些杂乱的思绪

| Comments

今天博客主页改版终于告一段落,突然发现很久没有更新博客的文章了,于是想写把一些凌乱的思绪记录到博客中。以前的很多想法都是用笔写下的,今天就当作例外吧。不过发现写在博客里可以搜索,写在本子里,只能人工翻阅查找,不过人工翻阅也会帮助回忆以前做了什么。

我写的字很难看,于是想在写日记的时候练字,想起中小学时被老师逼着练字是一件很痛苦的事情,没想到到了大学,写字竟成了一种享受。

很多程序员写的字比小学一年级的小朋友还更加扭曲,这让我不禁为汉字感到悲哀。作为中国人都写不好汉字,这是什么情况呢?

Python的“黑暗魔法”,两行解一元一次方程

| Comments

无意看到一个大神写的《Linear equations solver in 3 lines (Python recipe)》,Python解一元一次方程只需要三行就完成了,确实很强悍啊。

我们来围观一下:

1
2
3
4
5
6
7
8
9
10
11
12
说到底呢,这个段代码的关键是利用了复数。
第一步:
2 * x + 233 = x * 8 + 3
变成
2 * x + 233 -(x * 8 + 3)
然后把x变成虚数1j
然后变成
2 * 1j + 233 -(1j * 8 + 3)
通过eval算出结果为230-6j
因为我们知道这个表达式结果为0,而且j也相当于x。
所以问题变成了:230-6j=0,也就是230-6x=0。
最后x = - 230 / 6 = 38.33333333336。

Ubuntu上的屏幕截图

| Comments

偶们都是被QQ截图宠坏的一代,QQ截图确实很好用,不过在Linux下就木有了,于是该怎么办呢。

我们可以使用系统自带的截图,默认按Print Screen全屏截图或者Alt + Print Screen截活动窗口。

那如果我们想截一个区域,就要打开screenshot,然后选中Select area to grab,非常地麻烦。

Python打印字符三角形

| Comments

想起初中老师教Pascal的时候,就会有各种打印字符三角形的程序让我们写。

现在发现在Python下竟是如此的容易。可惜当年还不知道世界上有种语言叫Python。

image

UltraDemo —— 数据结构实验平台

| Comments

传统数据结构教学中,老师站在讲台上讲课,放着PPT,而学生坐在下面神游。 原因何在?因为学生缺乏实践机会,所以注意力难以集中。

于是UltraDemo诞生了! UltraDemo提供一个自己动手实践的平台,我们可以在UltraDemo中编程,并且可以对数据结构可视化。 这个是一个编程实践平台,可以在上面写代码,编译,执行,并且可以查看图形化的数据结构。UltraDemo支持单步执行,支持断点,支持查看当前作用域的变量,支持自动执行,支持自动执行速度选择,支持动画。

UltraDemo已经开源~

源码:https://github.com/cedricporter/UltraDemo

UltraDemo主要提供以下的功能:

“反盗链”与反“反盗链”

| Comments

现在很多大网站都有了图片反盗链,于是有时候在某些论坛或者博客就会遇到些“此图片仅限于…用户之间交流与沟通”的图片,这真是无法理喻。

反盗链

引用一段话:来自http://www.ningoo.net/html/2007/get_away_from_photo_defense.html

这里忍不住再次提起这茬,是在豆瓣九点看blog的时候,时不时冒出一副“此图片仅限于…用户之间交流与沟通”的图片出来,一个字,烦。不让看你干脆将所有的img直接过滤掉不显示就好了,还TMD放这么恶心的一个东西来刺激我的眼睛,要知道我眼睛本来就不太灵光,还好心脏不错,不然搞不好弄出人命官司。Blog和网页有啥区别?我想区别就在于我可以通过rss聚合阅读而不必要跑到blogger的网站上去吧。要是你输出的东西这不能看,那仅限于,那还搞个屁的rss。

图片防盗链,请离blog远点。呼吁所有的blogger,离图片防盗链的XX网站远点,不然,你们的内容再好,也只能敬而远之了。

这个我深有同感。