[翻译] 献给编程之神的祷词 (A prayer to the programming god)

A prayer to the programming god

噢! 软件开发与运营之神,我犯了罪。

祢的怒气落在我身上,我觉察到了祢的愤怒。

我所继承的网站没有单元测试,
它也没有部署脚本,没有 README,
     甚至没有数据库迁移工具。
它完全没有用到 virtualenv、requirements.txt、buildout 等工具,
     甚至连依赖关系都没有写。
它大多数的版本信息已经丢失。
     源代码的依赖随机地分散在不同的文件夹里,
它们显然是从私有或开源项目的 SVN 中检出的,
     不过不知在哪天丢失了版本历史。

我哭喊道:“为什么是我啊?”

我不是在开始我的项目时用了 fabfile 了吗?
我不是在我的开源项目中放了一个 setup.py 了吗?
我不是写了有用的文档(至少有个 README.rst 文件)了吗?
我不是准确而细心地写上了没有混淆特性和修复的补丁提交信息了吗?
我经手的项目——至少在最核心的功能上——难道还有没被自动测试覆盖的吗?

但是我想到了我年轻时所犯的罪,
我承认我的过犯:祢是公正的。

祢本可以把我18岁时写的 VBA 程序或者我后来写的 web 程序赐给我。
那本可以是成千上万行我当时用两年时间码出来的 ASP.NET 程序,
     就像谚语中尝试变成莎士比亚的猴子一样。
那本可以是前端代码中原始的 SQL 语句、混合着业务逻辑的 HTML 代码。
祢本可以给我一个 PHP 工程,但是祢没有那样做。

但幸好有 Python 和 Django 在,这使问题迎刃而解。
祢的责罚真是轻的。

Continue reading

Advertisements

Take part in solving Project Euler !

Recently, I’ ve find something intersting and easy to go to build basic skills for programming training — it’s Project Euler !

As you can read from their homepage,

Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.
The motivation for starting Project Euler, and its continuation, is to provide a platform for the inquiring mind to delve into unfamiliar areas and learn new concepts in a fun and recreational context.
The intended audience include students for whom the basic curriculum is not feeding their hunger to learn, adults whose background was not primarily mathematics but had an interest in things mathematical, and professionals who want to keep their problem solving and mathematics on the edge.

I was wandering on StackoverFlow reading some advices about Python learning, and someone came across to point out that one may try to solve problems on Project Euler to improve his/her skill.

I think it’s just for me when I took a look at their website!
Continue reading

PyGTK官方资料链接mark

嗯,其实这个日志就是给自己做个记录,以后学习的时候到自己blog上找找然后点开链接就好了~哈

Documentation

不过说起来,PyGTK的资料,特别是中文资料,确实不好找。在收集Python相关的图形界面教程时,倒是PyQT的东西挺多的,甚至Tkinter的也能找见,唯独很少PyGTK的,尤其是中文……好吧,我知道英文我也是能看懂的,但是毕竟不如看中文来的快。当然了,我也知道,英文的东西比较新比较齐全,中文资料更新的慢,中间的翻译搞不好又会有偏差……还有可能会有人跟我说QT应用面比较广什么的,但是俺不是KDE用户,俺怎么说是用着Gnome“长大”的,所以习惯啦,没办法,自己要是做图形界面程序肯定还是首选GTK的。当然的当然咯,因为现在刚起步,其实学习Python也还是起步阶段,所以目前在做的,仍然还是学习着用Tkinter。可能没那么炫,不过相对比较简单。先这么学着吧~

又是比较无趣的内容的堆积,哦?

-EOF-

Learn Python The Hard Way 学习笔记(1)

本篇日志简单回顾一下决定写日志记录之前我过掉的17+1个练习的主要内容。

1.

安装。Mac我没有,Windows现在不撞墙也能直接下载2.7版本了,不过我的win上安装的还是2.5,基本没用过,就先那么留着;Linux是系统自带的,Ubuntu中目前是2.6.6,相传Fedora已经2.7了,还有更激进的,Archlinux上面已经3.1了……Orz。

往下几个例子,主要是print语句、培养type的感觉、#注释符、数学计算、变量名称、字符串、格式化输出,模块导入、文件读写

2.

这里记一下格式化输出,是我之前不会的。

formatter = "%r %r %r %r"
print formatter % (1, 2, 3, 4)

(发现google syntax highlighter好像失效了……)

这里,先用一个固定的formatter来定义好一种格式,以后只要在打印输出的时候,填写需要输出的内容即可。相比我之前在每个print语句中定义输出格式,效率高些。

3.

反斜杠跟以r方式print结合的时候,有一些特别的效果。
Continue reading

Learn Python The Hard Way 学习笔记(0)

一个月前在酷壳看到推荐的书,《两本电子书》,当时就把这本Learn Python The Hard Way (pdf)下载了。

后来决定开始按照里面的例子做起,一点一点积累学习。165页的文档,总共有52+1个练习,快的话一个月左右就可以做完(因为开始几个确实挺简单,一下子就能完成)。

今天做到ex17了,看到个不错的东西,仿校内体就这么说:很好的东西,不分享怕以后再也找不到了,收藏起来~~~哈哈

确实,如果没有长时间专注的投入,那过段时间很容易忘的比较彻底。所以还是要做点摘录,也就是学习笔记。

准备把今天这篇作为前言了,所以顺带就继续摘录一下作者写的话。

1.
The Hard Way Is Easier

2.
If you go through this book, and do each exercise for one or two hours a night, you will have a good foundation for moving onto another book.

3.
A very important skill – that most programmers develop over time – is the ability to visually notice differences between things.

4.
The point of these exercises is to train your hands, your brain, and your mind in how to read, write, and see code. If you copy-paste, you are cheating yourself out of the effectiveness of the lessons.

5.
remember that anything worth doing is difficult at first.

6.
Whatever your reason for wanting to quit, keep at it. Force yourself.

挺直白的话,我就不翻译了。

========================================

倒是从这本书让我真的知道,不能仅仅copy-paste,typing对培养编程习惯很有帮助。

========================================

还有,作者建议每天花一两个小时用于编程。时间么,挤一挤总会有的,加油~~

-EOF-

GAE搭建gtap:为了oAuth的API

之前见过@youlingman的日志搞过这个东西,然后@Kuroba99小王子同学也搭建了个给自己的iPhone用。

然后鉴于自己在iPhone上一直只能刷个dabr来看推,觉得生产力水平有点低了……遂在昨天一时兴起就搭建了起来。

参考@youlingman同学的日志,地址在这里

gtap项目的主页 如果项目被墙,下载地址maybe可用:downloads list

在GAE上面注册应用什么的不说了,通过GAE-Python-SDK上传东西我也不说了,这个东西吧,说起来就是在Linux下面折腾方便,win下搞这些个命令行啊什么的着实DT。。。
Continue reading

Java学习小笔记(一)

因为在看书了么,所以也就做点笔记,写一些小小的”心得体会“。

第一感想:在看Java的时候不由自主地会去和Python做比较……没办法的吧,对Python的印象太深刻了。比较不是刻意为了得出孰优孰劣之分,而是为了让自己了解区别到底在何处。所以也准备好好地拿Java与Python对比着学习。javainanutshell

先看本比较薄的书,也没什么经验,找了本《Java技术手册》来看,翻目录,介绍的还是比较详细的。

Continue reading