8.28周末记录

吃了一周的organic的食物之后,LP的兴趣不减,于是这个周末继续去新天地赶集,因为是小集,所以人数少多了,然后买东西也顺利的很,不想上次,人山人海的,还怕LP被别人不小心给挤坏了。因为上周没买到鲫鱼,这周去了,鲜活的鱼儿还挺多的,直接搞定2条,回家慢慢炖鱼汤。没看到卖海米的,要不然也会买点,在市场上转了一圈,七七八八的就买了一大包,总共才花了60块钱,比超市来还是划算多了。
LP爱吃的桃子,10元5斤,当下的蔬菜,黄瓜,两个大倭瓜,总共才3块钱,红薯继续储备。

8.21weekend & LP happy

这个算是补记了,马山新的周末都到来了,才想起来一个星期没动笔写点啥了。就当流水看了:
周六在家宅了一整天,小研究了下单反,拍起来有点感觉了,不过还得继续加深练习。周日去新天地赶大集。好久没去了,以前住在新天地的时候,基本上每周日都过去,主要是能买到好多便宜的蔬菜啊水果啊,都是当季节的,所以在这个食品安全信任危机的年代,从大集上买点农家自己种植的蔬菜,吃了多多少少的也放心吧。
其实赶集的乐趣蛮多的,尤其是在农村长大的70后和80后们,多多少少都有那种感觉,熙熙攘攘,讨价还价之声此起彼伏。由于是初七,正逢真正的大集,所以人那叫一个多啊, people moutain and people sea。
买了鲜活的柴公鸡,准备这周末炖上。其他好吃的大桃子,买了2兜子,还有一袋苹果,好吃的小红薯居然才5毛一斤,要知道在地铁国道地下可是10元5斤呢,其他的蔬菜,流水记录,茄子,豆角,柿子椒,韭菜,西红柿都是大路菜。
哦,对了,马路边还遇到一个自称是“医生”的女人,对LP的大肚肚点评了一番,建议还要吃海参,羊奶啥的,过后跟LP一致认为“跟巫婆一般”,于是就当过眼烟云了。
晚上就是韭菜猪肉馅儿的饺子了,好吃啊。
晚上去贵友底下的物美超市,主要买一周喝的牛奶+酸奶,顺带了一块豆腐。小区楼下又开了一个超市,这次是华润的便利店,真服了居然每栋楼下都有个小超市开张,难道这年头超市的利润这么丰厚了?一个小区居然养活了这么多,也不知道为啥新天地底商的大超市为何还不开张?

培养学习能力

这周开始,强行培养自己的学习能力,初期很痛苦,听力也听不懂,很抓狂,很抓狂,时不我待了,很有紧迫感,得抓紧才行。
晚上睡觉,貌似给小凉风给吹感冒了,鼻涕是断断续续地留了一整天啊,难受。

周末记录-2011.08.14

过去的周末,又下了一场雨,今年北京的雨水好勤快,总是隔三差五的就来一次,这就注定了天气不会永远那么地热,这是个好事情,不用受那桑拿天的煎熬。LP的苦日子多少也好点,周六实际上就闷热的很,晚上睡觉都不舒服,不过到周日总算把雨给盼来了。
周六在家听英语,听的很抓狂,什么时候才能听明白呢?唉,看了一部分培训班的资料,有点感触,慢慢练习吧。周日去超市买菜,LP喜欢吃的桃子快要下市了,取而代之的是那种脆生生的,不太好吃,还是汁多肉多的好吃,不过在超市看到了,于是一下子买了2袋子,其他杂七杂八的买了一小推车,最后为了凑够128元可以用优惠券的返利,还买了一桶油,反正家里的也快吃完了。之后去淘宝城逛了一圈,LP自己买了几件衣服,顺便给小宝买了一件偏粉色的衣服,看着真好玩,衣服,袜子都是那么小的,嘿嘿。
接下来该规划下,需要准备买哪些东西了,大件的话就是婴儿床,婴儿车的,小件的主要是奶粉,奶瓶和妈妈需要的一些东东了。
学习目标还得坚持,刻不容缓了。
对了,开始打地铺睡觉了,LP舒服第一位。

数码情节D7000

自从D7000购入已经快2个月了,但是一直也没仔细研究,尽管心里一直想彻底研究透彻了,然后期待着自己能拍出点好的片子来,无奈相机看着就复杂,于是一直当普通数码用着,今天想起来了,于是看了下手册,然后就有了蠢蠢欲动的念头,恨不能一下子就能把排片子的“大招”全部用好,以后无论是LP还是小宝都可以尽情地拍了。
在网上搜各种名词术语,知道单反里面最重要的几个参数就是光圈/快门 ISO/焦距,这几个配合着用熟练了估计就可以尽情的拍来拍去了吧。总结如下:
光圈就是镜头f数字,f1.0,f1.4,f2.0,f2.8,f4.0,f5.6,f8.0等等。
光圈的数值越小,光圈孔径越大,进光量越多,画面也就越明亮。
光圈的数值越大,光圈孔径越小,进光量越少,画面也就越灰暗。
光圈可以控制景深,在拍摄风景的时候尽量使用F8、F11这样的小光圈拍摄,这样拍出来的风景照片远近都是清楚的;而在拍摄人像的时候可以选择F4、F2这样的大光圈拍摄,大光圈可以很好的虚化背景来突出主体人物。
光圈的数值越小,光圈孔径越大,景深越浅,背景虚化越明显。
光圈的数值越大,光圈孔径越小,景深越深,背景虚化越不明显。

快门的速度单位是“秒”。常见的快门速度有:1 1/2 1/4 1/8 1/15 1/30 1/60 1/125 1/250 1/500 1/1000 1/2000等。
快门速度越快,光线通过时间越短,画面越暗,越能抓拍瞬间。
快门速度越慢,光线通过时间越长,画面越亮,越能表现过程。
1/250~1/1000比较实用。
高速快门一般用作于捕捉物体瞬间的美,比如在拍摄一些转瞬即逝的画面或者拍摄运动速度较快的物体时就需要我们用到高速快门。较低的快门速度能让我们拍摄出过程美,当你要拍的是夜晚的车水马龙,快门时间就要拉长,常见照片中丝绢般的水流效果也要用慢速快门才能拍出来。
在相机模式拨盘上标有A和S档,它们分别是光圈优先档和快门优先档,A档也就是光圈优先档,在光圈优先的情况下,我们可以通过改变光圈的大小来轻松地控制景深,相机会在保证曝光量的前提下自动为其配备合适的快门速度。A档的优势是使用者只要专心的根据自己所需的景深大小来设置光圈,不用将其他心思放在快门速度的配置上,由此来提高拍摄效率。

ISO感光度越高,感光元件对光线越敏感,所拍照片就越明亮,噪点也就越多。
ISO感光度越低,感光元件对光线越不敏感,所拍照片就越暗,噪点也就越少。
感光度ISO在相机中一般分为这些档位:ISO100,ISO200,ISO400,ISO800,ISO1600,ISO3600等,在提高相机ISO的同时照片噪点数量也会随之增加。一般来说在晴天光线充足的环境下我们应该尽可能的将相机ISO设置在最低档,因为相机在使用最低档ISO拍摄时所拍出的照片画面质量是最好的;当遇到阴天或者是在室内进行拍照时我们可以适当的提高相机ISO,来保证画面的明亮。

焦距数值越小,镜头焦距越短,越能拍摄广阔的范围,景深越深。
焦距数值越大,镜头焦距越长,越能拍摄较远的物体,景深越浅。
镜头上较粗的调节环是变焦环,通过旋转镜头的变焦环可以实现焦距的改变,这个必须手动完成,在变焦的同时,镜头可能会伸长或缩短。镜头上较细的是对焦环,就是让图像清晰使焦点落在感光元件上,这个可手动,也可自动完成,自动对焦简称AF。

家里来了个蟋蟀

好坑爹啊,家里不知道从什么地方来了个不速之客-蟋蟀,夜半三更的在洗手间里,“嗓音”那个嘹亮啊,估计LP也被吵得没休息好,到6点钟,终于忍无可忍,5分钟后结束战斗,罪过。
雅思口语王送到,开始认真看书了。

解析Html利器-HtmlParser

以前在爬网页的时候,用的最多的方法是直接查看源代码,然后分析源码,一步步搞到自己需要的数据,绑LP抓人人网的照片数据时经常用的,很土很暴力结果也很实在。今天帮同事实现一个后台自动抓数据的,有意地用了下HtmlParser,果然很是强大,把自己关心的那部分代码摘录一下,存档。

    public static void main(String[] args) throws IOException, ParserException {
        
        StringBuilder sb = new StringBuilder();
        BufferedReader buf = new BufferedReader(new FileReader(new File("d:\dc.html")));
        String tmp = "";
        while ((tmp  = buf.readLine()) !=null) {
            sb.append(tmp).append("n");
        }
        System.out.println(sb.toString());
        //创建解析器
        Parser parse = Parser.createParser(sb.toString(), "GB2312");
        //需要parse的内容 
        NodeFilter textFilter = new NodeClassFilter(TextNode.class);
        NodeFilter linkFilter = new NodeClassFilter(LinkTag.class);
        NodeFilter titleFilter = new NodeClassFilter(TitleTag.class);
        
        OrFilter orfilter = new OrFilter();        
        orfilter.setPredicates(new NodeFilter[]{textFilter, linkFilter, titleFilter});
        //解析各个节点
        NodeList nodeList = parse.parse(orfilter);
        Node[] nodeArr = nodeList.toNodeArray();
        //内容输出
        sb =new StringBuilder();
        for (Node node : nodeArr) {
            if(node instanceof TextNode){
                String text = node.getText();
                sb.append(text);
            }else if (node instanceof LinkTag){
                String link = ((LinkTag) node).getLink();
                sb.append(link);
            }else if (node instanceof TitleTag){
                String title = ((TitleTag) node).getTitle();
                sb.append(title);
            }
        }
        System.out.println(sb.toString());
    }

python 2.x和3.x中maketrans和translate函数的使用

本文的缘由在于今天在网上逛来逛去的时候,发现了一个Python解谜的网站http://projecteuler.net/www.pythonchallenge.com,鉴于自己Python一瓶不满的水平,直接草草做了一下,发现水的很,搞不出来就直接看答案了,主要题目是这个http://www.pythonchallenge.com/pc/def/map.html,具体的解答可以参考这篇文章http://garethrees.org/2007/05/07/python-challenge/
maketrans和translate函数是进行字符串字符编码的常用方法。本文着重点在于演示其基本用法和在不同版本下操作的差异。本文提到的2.X版本指2.6以上的版本,3.X版本指3.1以上的版本。
2.X版本把字符串基本分为两种:unicode字符串和8位字符串str,后者包含字节数据和我们常见的ASCII码数据;而3.X版本则重新对字符串进行了划分,分为了字节字符串bytes和文本字符串str,两者都是不可变的,所以添加了一个可变的字节字符串类型bytearray。
2.X版本中string类型和str、unicode类型大量方法是重复的,所以3.X版本不提倡使用string模块中与str重复的方法。string模块中还有很多有用的常量和方法,比如string.digits,可以在字符串编码中方便地使用。
2.X中maketrans和translate函数的签名:

    string.maketrans(from, to)  #Return a translation tablesuitable for use in string.translate.  The strings frm and to must be of the same length.
    string.translate(s, table[, deletechars])  #Return a copy of the string s, where all characters occurring in the optional argument deletions are removed, and the remaining characters have been mapped through the given translation table, which must be a string of length 256.  The deletions argument is not allowed for Unicode strings.
    str.translate(table[, deletechars])  
    unicode.translate(table)

2.X中maketrans和translate函数的签名:

    static str.maketrans(x[, y[, z]])  
    static bytes.maketrans(from, to)  
    static bytearray.maketrans(from, to)  
    str.translate(map)  
    bytes.translate(table[, delete])  
    bytearray.translate(table[, delete])  

从中可以看出,相对于2.X的string模块的maketrans方法,3.X中分别提供了三个静态方法用于创建映射表。下面让我们看一个简单的例子来说明字符串转换的过程:
2.X下的演示过程:

    >>> import string                       #导入string模块  
    >>> map = string.maketrans('123', 'abc')#建立映射表,将字符串中含有的'1','2','3'替换为'a','b','c'  
    >>> s = '54321123789'                   #转换前的字符串  
    >>> s.translate(map)                    #用创建的映射表map转换字符串  
    '54cbaabc789'                           #转换后的字符串

3.X下的演示过程:

    >>> map = str.maketrans('123','abc')  
    >>> s = '54321123789'  
    >>> s.translate(map)  
    '54cbaabc789'

2.X使用了string的maketrans函数,而3.X使用了str的maketrans函数,除了这一点,使用方法是基本相同的。若指定字符串中要删除的字符时,使用就会略有不同,如下:
2.X下的演示过程:

    >>> import string  
    >>> map = string.maketrans('123', 'abc')  
    >>> s = '54321123789'  
    >>> s.translate(map, '78')        #除了转换,还要删除字符串中的字符'7','8'  
    '54cbaabc9'                       #转换后的字符串没有字符'7','8'  

3.X下的演示过程:

    >>> map = str.maketrans('123','abc', '78')#要删除的字符需要在这指定  
    >>> s = '54321123789'  
    >>> s.translate(map)  
    '54cbaabc9'

在读《Python Cookbook》遇到了一个基于2.X版本的例子,如下

    import string   
    def translator(frm='', to='', delete='', keep=None):   
        if len(to) == 1:   
            to = to * len(frm)   
        trans = string.maketrans(frm, to)   
        if keep is not None:   
            allchars = string.maketrans('', '')   
            delete = allchars.translate(allchars, keep.translate(allchars,delete))  
        def translate(s):   
            return s.translate(trans, delete)   
        return translate  

见第8行代码,allchars应该是一个返回的映射表,为什么还可以调用translate方法,所以它应该是一个str类型,测试如下:

    >>> import string  
    >>> map = string.maketrans('123', 'abc')  
    >>> type(map)  
      

在3.X版本中这个方法不能正常通过运行,那么错在什么地方呢,我们看看映射表是什么类型:

    >>> map = str.maketrans('123','abc')  
    >>> type(map)  
      

知道了映射表的类型了,我们就可以对其进行“后期加工”,像上面《Python Cookbook》中的例子一样,来满足我们的编码要求。

上面讨论的例子用的字符串是ASCII字符组成的,如果是字节类型,2.X版本中操作是一样的,3.X中调用bytes或bytearray的函数;若是unicode类型的,2.X需要用unicode的translate方法,注意下面的代码


    >>> print u"hallo".translate({97:u'e'})  
    hello  
    >>> print u"hallo".translate({'a':u'e'})  
    hallo  
    >>> print u"hallo".translate({u'a':u'e'})  
    hallo  

结果之所以不一样,查阅手册可知unicode的translate方法的映射表也就是字典的键必须是unicode的位序数,值可以是unicode的位序数、unicode字符串或这None。
具体的相关信息,可以查阅Python的手册或者help(string)。

关于名字的七七八八

小宝小宝的叫着,正式的名字总是没有定下来,每当想起来起名字就觉得很头疼,今天下午草草的翻了下诗经,记录下自己觉得还算可以的几个名字,回家和LP商量商量。全部取自诗经:
女:
窈窕淑女,君子好逑。 子好 君淑
杨柳依依。今我来思,雨雪霏霏。 采薇 柳依 雨霏 霏霏 雪依
有美一人,清扬婉兮 清婉 婉清 清扬
山有嘉卉,侯栗侯梅。 嘉卉
交交桑扈,有莺其羽。 羽莺
兕觥其觩,旨酒思柔。 思柔
饮酒孔嘉,维其令仪。 嘉仪
有女同车,颜如舜英 舜英
桃之夭夭,灼灼其华 灼华
蒹葭苍苍,白露为霜。所谓伊人,在水一方 伊露
青青子衿,悠悠我心 子衿
——————————————–
男: More

8.9糖筛顺利通过

论坛上看了无数的妈妈,糖筛不过,然后还要挨针扎继续做糖耐,于是提前好久就在LP耳边吹风,少吃甜食,早上起来特别明智的吃了白米稀饭,据说淀粉类高的都含糖比较高,好多人都是吃小米粥+包子的,结果测试挂了。不过今天的测试结果是110mg/md,在基准线140以下好多,可以放心了,不过糖分的摄入量还是得注意才成。主要还是归功于英明神武的LP大人,拼命的溜达了。
午饭继续溜达到团结湖公园的太熟悉,酸菜鱼,LP比较满意。
送LP到医院,然后马不停蹄地往公司赶,脑袋开始微微发疼,估计热伤风了,不爽。