2013-09-02

基于tornado的web server

一个基于tornado的webserver,每个请求会开启一个新的线程还异步处理。 代码见:https://github.com/aoyoo/tornado

整理一下近一年的工作

看了看为知笔记和firefox收藏夹里面乱七八糟的记录,决心把近一年半的工作内容整理一下。能写出代码的就放到github上去,注意不要有些工作的内容是不能公开的。 以此为记。

use redis with hiredis & pipeline

简单的将hiredis封装成一个c++的类,需要增删查改的数据格式:
1.key: long, value: long set

2.key: long, value: bytes

代码在https://github.com/aoyoo/redis/tree/store_for_gid_pid_pidinfo
数据简单的按key取模的方式分片,并用pipeline接口减少延迟,封装为以下接口:

同时一个简单的python脚本,用于每次dump一份redis的rdb文件作为备份。 代码在https://github.com/aoyoo/redis/tree/master

MySQL基本命令


初步学习了一些MySQL的基本命令,以及针对apple的epfimporter而做的binlog日志分析,代码放在了github(https://github.com/aoyoo/mysql)。
创建用户
GRANT ALL PRIVILEGES ON *.* TO 'epfimporter'@'localhost' IDENTIFIED BY 'epf123' WITH GRANT OPTION;
行数:
select count(*) from epf_application ;
列最大/小值
select max(application_id) from epf_application ;
select min(application_id) from epf_application ;
最大/小 N个值
select application_id from epf_application order by application_id limit 10;
select application_id from epf_application where application_id<281816692 10="" application_id="" by="" div="" limit="" order="">
清空表
TRUNCATE TABLE epf_application ;
查看表大小
select TABLE_NAME,DATA_LENGTH,INDEX_LENGTH from information_schema.TABLES;

2013-05-02

Activity传递Intent用于显示本地图片

0.创建2个Activity,一个用于启动时选择图片,另一个显示选择的图片。

                    android:name="com.example.openlocalimage2.MainActivity"
            android:label="@string/app_name" >
           
               

               
           

       

       
                    android:name="com.example.openlocalimage2.showImage"
            android:label="@string/app_name" >
           
               

                 
                  

                //如果没有这句话,这无法启动此Activity
 
           

       

1.在一个Activity中打开一个Intent,用于打开本地图片
        Button button = (Button)findViewById(R.id.b01); 
        button.setText("选择图片"); 
        button.setOnClickListener(new Button.OnClickListener(){ 
            @Override 
            public void onClick(View v) { 
                Intent intent = new Intent();
                intent.setType("image/*"); 
                intent.setAction(Intent.ACTION_GET_CONTENT);  
                startActivityForResult(intent, reqCodeOpenImage); 
            } 
        });
打开成功后,启动另一个 Activity
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        if (requestCode == reqCodeOpenImage){
            if (resultCode == RESULT_OK) {
                Intent i = new Intent("org.aoyoo.showImage");

                Uri uri = data.getData();
                i.setData(uri);
                startActivityForResult(i, reqCodeimageview);
            }
        }

    }

2.显示图片
        Uri uri = getIntent().getData(); 
        Log.e("uri", uri.toString()); 
        ContentResolver cr = this.getContentResolver(); 
        try { 
            Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri)); 
            ImageView imageView = (ImageView)findViewById(R.id.iv01); 

            imageView.setImageBitmap(bitmap); 
        } catch (FileNotFoundException e) { 
            Log.e("Exception", e.getMessage(),e); 
        } 







2013-01-04

中国梦,宪政梦『南方周末新年献词』

本文是《南方周末》2013年新年献词,作者系南方周末资深评论员戴志勇先生。
  
    天地之间,时间绽放。
  这是我们在2013年的第一次相见,愿你被梦想点亮。
  2012年,你守护自己的生活,他们守护自己的工作。守护这份工作,就是在守护他们对生活的梦想。
  2012年,庙堂之上发出的宪政强音嗡然回响:“宪法的生命在于实施,宪法的权威也在于实施。”我们期待宪法长出牙齿,宪政早日落地。惟如此,才能成就这个沧桑古国的艰难转型;惟如此,国家与人民,才能重新站立于坚实的大地之上。
  今天,已是能够梦想的中国,今天,已是兑现梦想的时代。经历过宪政缺失的“文革”梦魇,我们花费三十多年的时间来逐渐回归常理与常情。从土地联产承包责任制到个体户、乡镇企业到“民企”,稍稍归还国人自主安排生活的权利,我们便创造了繁华城市,收获了满仓粮食。
  我们重新体认什么是真,什么是假,是其是,非其非;我们重燃对公义的热爱,对自由的向往。面对暴虐强力,我们双手相握,一起走过艰难时刻,迎接生活转机。
  今天,我们终于可以从厚厚的历史尘埃中挺起胸,从琐碎的日常生活中抬起头,重走先辈的宪政长征,重温先辈的伟大梦想。
  一百七十多年前,我们开始从天朝上国的迷梦中醒来。先败于英,后败于日。百姓愈加民不聊生,耻感深深刺痛中国士人。保国!保种!由洋务而君宪,由立宪而革命。从器物到制度再至文化,激愤者不惜彻底打倒“孔家店”,决绝地将自己的文明连根拔起。
  辛亥革命后,清帝退位,先辈们终于建立了亚洲第一个共和国。但是,一个自由、民主、富强的宪政中国并没有随之而来。
  国家内外,战争连连;人群内外,残酷不断。
    一度,人们远离仁,远离义,远离天道,远离对自由的坚守。
  一度,人们认错为对,指鹿为马,万千生灵生机断绝。
  美梦与山河,齐齐破碎。自由与宪政,双双消隐。
  度尽人世劫波,深味人性幽暗,我们依然是能做梦的人,有颗能做梦的心。
  今天,我们断断不只梦想物质丰盛,更希望性灵充盈;我们断断不只梦想国力能强盛,更希望国民有自尊。新民和新国,救亡与启蒙,谁也离不开谁,谁也不能压倒谁。而宪政便是这一切美梦的根基。
  兑现宪政,坚守权利,人人才能心如日月流光溢彩;鳏寡孤独才能感受冬日暖意而非瑟瑟发抖;“城管”与小贩才能谈笑风生;房屋才能成为自己与家人的城堡;
  兑现宪政,限权分权,公民们才能大声说出对公权力的批评;每个人才能依内心信仰自由生活;我们才能建成一个自由的强大国家。
  兑现宪政大梦,每个人才能做好个人的美梦。而这需要我们就从手边做起,就从守护此时此刻的生活做起,而不要将重任留给子孙。
  很多人一直深深懂得这一点,很多人早就努力践行这一点。
  不是杰出者才做梦,是善于做梦者才杰出。
  你的天赋权利就是可以梦想,并且兑现梦想!
  为你的梦想鼓掌,为这个国家的梦想加油,这就是很多新闻人的梦想,是他们不大不小的野心。他们忠于新闻,更忠于内心。愿你也有个玫瑰色的美梦;自由成就自己,完成天之所赋。
  总会梦想人人都可以做一个有尊严的人,不论身居高位,还是街头卖艺;
  总会梦想人人内心有爱,即使罪犯也未必穷凶极恶,总有恻隐之心自由闪动;
  总会梦想阶层只是引人自由流动的动力,而不再是相互猜忌和仇视的天堑;总会梦想这五千年文明生生不息,为改善人类的现代处境,捧出一掬甘冽清泉……
  兑现这一千一万个梦想,才能抚平这一百多年的刻骨痛楚。
  兜兜转转一百七十年,美梦成真何其难!一百七十年后,依然有人渴望良知萌新芽,重温天命之谓性;依然有人坚持要求权利一一落地,政治复归于正,公义自在流淌。
  依然有人相信,不管多难,梦想终会落实为宪政良制,风行为敦敦美俗。
  先辈们筚路蓝缕,践义成仁。如今,后人承继其志,燃灯前行。
  兑现梦想,自然要借鉴前贤智慧,与古人的信仰、习俗和情感和解。儒释道法墨,百家皆是源泉;周汉唐宋明,代代皆有可取。
  但这决不是要复古,古人不能给予今天所需的一切。只是不再轻易贬损先辈,平心静气地吸收转进,以让中华文明开新花,结新果。
  兑现梦想,自然要吸取世界经验。所以要认真审视希腊民主,罗马法治,借鉴英美宪政,追赶现代科技文明。
但这也不是仅仅作一个西方文明的优等生,西人有西人演进的轨迹,同样未必能直接给予我们今天所需的一切。
  我们要站在自己的大地上,与各国人民一起,生活出一种古今相融的新生活,文明出一种中西合璧的新文明。在古今中西的激荡中,要遵循人类共通的价值,也要不惮于做自己的新梦。
  称美古人,赞扬邻居,不是因为他们足够完美,而是因为我们熟悉他们眼中洋溢的快乐,心底流淌的自由。
  中国人本应就是自由人。中国梦本应就是宪政梦。
  宪政之下,才能国家持续强盛,宪政之下,才有人民真正强大。兑现宪政梦想,才能更好地外争国权,维护国家的自由;才能更好地内争民权,维护人民的自由。而国家的自由最终必得落脚于人民的自由,必得落脚于人人可以我口说我心,人人可以用心做美梦。
  生而为人,谁能不热爱自由?这自由,不仅是权利针对权力而言,也是宽恕针对报复而言,是般若针对无明而言,是仁爱针对暴虐而言,是有道针对无道而言。
  大道之行,天下为公;万物自在,各正性命。这就是古人的梦想,先辈的梦想,也是今天很多人的梦想。
  中国梦,自由梦,宪政梦。
  万物速朽,但梦想永在。万物诞生,因梦想不灭。梦想就是生生之几,就是当你失败了一百次,那第一百零一次充实你内心的不死之希望。
  依然有人倾听你的梦想,期待你敢于做梦。你从苦难中爬起,他们为你加油;你尝尽人世冷暖,他们为你加油;你收获美好生活,他们为你加油……他们别无所资,惟有对梦想的执着;他们别无所长,惟有对真相的追求。
  一句真话能比整个世界还重,一个梦想能让生命迸射光芒!