在git里面,想修改一下刚才提交的内容,重新提交的话
git reset HEAD~1 git commit -m "your comment"
如果你只是想修改一下提交的注释
git commit -amend
you are coming a long way…
在git里面,想修改一下刚才提交的内容,重新提交的话
git reset HEAD~1 git commit -m "your comment"
如果你只是想修改一下提交的注释
git commit -amend
刚才实验了一下,发现Python里面声明类的时候是否选择继承objects还是有很大区别的。只有继承了objects,才可以使用钩子方法如’__get__’, ‘__set__’, ‘__getattr__’, ‘__getattribute__’这些方法。也就是说这些有用的钩子方法是所谓的new object里面的东西。今天我在项目的代码里面尝试了一下类似Ruby method_missing的写法,实验在Python里面加点元编程的东西。发现很相似的三个方法’__get__’, ‘__getattr__’, ‘__getattribute__’方法区别挺大。注意,一定要继承object才可以享用三个钩子方法。
我目前还没有调用方法的method_missing,目前只是访问一些属性。我们实际处理的是一个可以直接用属性名读取/修改对象里面的持久化json属性的方法,就是类持有一个{‘property’: ‘value’}的json文本属性,我们就可以直接用Model.property访问和修改里面的方法,而不用特别的去生命json结构过来。是一个在Python中做meta programming的尝试。
测试刚才说的几个*get*方法的测试如下:
# -*- coding: utf8 -*- import unittest class A(object): def __init__(self): print 'init A' def __get__(self, *args): print '__get__ A', args def __set__(self, *args): print '__set__ A', args class B(object): a = A() def __init__(self): print 'init B' def __getattr__(self, *args): print '__getattr__ B', args def __getattribute__(self, *args): print '__getattribute__ B', args raise AttributeError def __get__(self, *args): print '__get__ B', args def __set__(self, *args): print '__set__ B', args class MeTest(unittest.TestCase): def test_simple(self): b = B() print b.a b.a = A() b.c hasattr(b, 'e')
前两天被身边的朋友(他用csh)嘲笑我用的bash在按Tab自动完成的时候不能忽略大小写。所以就造成你键入do就不能自动联想到”Downloads”,有的时候你不得不ls一下看看是否有大写的文件夹。Google下发现bash其实是支持忽略大小写的。在Mac下修改~/.inputrc,加入:
set completion-ignore-case On
然后重启一下Terminal,就开始支持大小写通配了。其实这里解释的是我看到的最清晰的:http://www.macosxhints.com/article.php?story=20070831153033300。Bash使用了readline,而readline的配置就在~/.inputrc,里面还有很多配置,有兴趣可以研究一下。注意,上面那个方法在10.5以后的OSX才生效,10.4以前的版本设置方法不同,大家自己Google吧。
想给爸爸买一个笔记本。爸爸主要是看书,所以我在选择超轻薄移动本本,目前比较看好的都是Intel今年一直偷偷在推的SU系列超低电压CPU的亚本本。SU系列CPU性能比Atom要一些,而且它没有使用陈旧945M芯片组搭配(现在的Z系列Atom也不再搭配945M。
对于低价本本,我一直比较迷Acer的,而不喜欢Asus的。目前Acer的Timeline系列是我最看好的CULV笔记本系列,各方面都很匀称。有3810T、4810T、1810T,其中13和11.6的两个系列是我瞄准的主要目标,都使用了1366×768分辨率的LED LCD,我有点怕给爸爸用文字比较小。不过从品质上来说这才是我比较喜欢的样子。
所以瞄准了这么几款,我再仔细衡量一下哪个更好
这么写完以后我感觉似乎要性能和屏幕就要Acer 3810T(Intel SU3500),否则就买个Acer A751h(Intel Z520)好了。
今天被身边的众神拉出来一个很二的bug,发现javascript里面
parseInt('09') = 0
所以需要
'09' * 1 = 9; '09'-0 = 9; new Number('09') = 9
太生疏了
Mac下用ports安装的python-mysql驱动回报告出错:
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/MySQLdb/__init__.py:34: DeprecationWarning: the sets module is deprecated from sets import ImmutableSet
刚才李明同学说实际上可以忽略他们,在出错的那一行前面加上:
import warnings 35 warnings.simplefilter("ignore", DeprecationWarning)
而后就OK了。
Powered by Twitter Tools.
Powered by Twitter Tools.
Powered by Twitter Tools.
Powered by Twitter Tools.