• 偶也来赶赶时髦!用用Sqlite(请读作:傻Q奶特)

    偶也来赶赶时髦!Sqlite【注1】越来 越有流行的趋势,其实三年前我就知道它了,但是觉得它是个鸡肋,直到我正式的体会到了小型应用中,没必要使用mysql的时候,它,出现了……. 在小型的CMS和Blog中,使用大型的关系数据库是不明智的,管理复杂,不便迁移,sqlite是这样一个东西:

    1.它易于使用,不需要配置,不需要安装,也不需要管理员帐户;
    2.支持大部分SQL92命令;
    3.一个完整的数据库保存为磁盘上的一个文件,同一个数据库文件可以在不同机器上使用;
    4.最大支持数据库到2TB;
    5.整个系统少于3万行代码,少于250KB的内存占用(gcc);
    6.大部分应用比目前常见的 客户端/服务端 的数据库快;
    7.没有其它任何环境依赖,源代码开放;
    8.实属居家旅行,杀人越货之必备软件,建议人手一份。

    在 我看来最重要的是小巧,快速,支持大部分SQL92命令,这么精美的一个东西,让我萌发了把以前那个mysql计数器转过来的想法,这个计数器代码很简 单,网上到处都是,我要做的呢,就是把里面的mysql部分修改为sqlite的,废话少说,先建个表了来,sqlite是独立启动的,还是使用和 mysql相同的数据库名,visit_log,不过,sqlite的后缀可以随便改,我们就用visit_log.db吧,建个 visit_counter表,添加一个integer叫做amount,插入一个数据52419,娃哈哈哈…….最后select 一下看对不对,额,下面这个输出应该是对的……

    数据库搞定了,下面我们来改程序,这些代码大部分是现成的,sqlite部分的代码是我改的,我不是程序员,所以里面很可能还有冗余的东西……..首先是进行写数据库的程序页面,sqlite_count.php
    ———————————
    <?php
    $db=sqlite_open(“visit_log.db”); //打开数据库。
    $result=sqlite_query($db,”select * from visit_counter LIMIT 0,3″); //取得表的所有内容
    $record=sqlite_fetch_array($result);

    if(empty($visited)){
    $counter=$record[“amount”]+1;//提出数据并加1
    $sqlite=”update visit_counter set amount=$counter”;//更新数据库
    $result=sqlite_query($db,$sqlite);
    }
    switch(strlen($counter)){ //将counter变量格式化
    case 1:
    $counter=”00000″.$counter;
    break;
    case 2:
    $counter=”0000″.$counter;
    break;
    case 3:
    $counter=”000″.$counter;
    break;
    case 4:
    $counter=”00″.$counter;
    break;
    case 5:
    $counter=”0″.$counter;
    break;
    sqlite_close($db);//关闭数据库的连接
    }?>
    ——————————-
    然后呢是读数据库并且生成图形计数器的页面sqlite_count_show.php
    ——————————-
    <?php
    $db=sqlite_open(“visit_log.db”); //打开数据库。
    $result=sqlite_query($db,”select * from visit_counter LIMIT 0,3″); //取得表的所有内容

    $record=sqlite_fetch_array($result);
    $Countershow=$record[“amount”];

    switch(strlen($Countershow)){ //将counter变量格式化
    case 1:
    $Countershow=”00000″.$Countershow;
    break;
    case 2:
    $Countershow=”0000″.$Countershow;
    break;
    case 3:
    $Countershow=”000″.$Countershow;
    break;
    case 4:
    $Countershow=”00″.$Countershow;
    break;
    case 5:
    $Countershow=”0″.$Countershow;
    break;
    }
    Header(“Content-type: image/png”);
    $pic=imagecreate(43,16); //创建图像
    $bkcolor=ImageColorAllocate($pic,255,255,255); //定义背景色
    $fcolor=ImageColorAllocate($pic,0,0,255); //定义字体颜色
    imageline($pic,0,0,50,17,$bkcolor);
    imagestring($pic,3,1,1,$Countershow,$fcolor);
    Imagepng($pic);
    ImageDestroy($pic);

    sqlite_close($db);//关闭数据库的连接
    ?>
    ———————————
    把 这两个文件和visit_log.db放在一个目录就可以了,至于效果嘛,大家可以看看偶Blog的右下角,额,php5里面已经包含了sqlite,不 用另外安装,但是,php4需要另外安装,不要去看网上那些安装方法,完全是胡说八道睁着眼睛说瞎话,你抄我的我抄你的,windows下面的不说了,太 简单,unix下面,首先要执行pear install sqlite,然后还没完,需要修改php.ini里面的ext目录,指向正确的位置(如果你之前没安装过任何php ext的话就必然有这一步),否则你的phpinfo里面是不可能出现sqlite的,

    当然了,大部分人用它,是用来开发,而中国程序员的开发环境大多在windows下面,不用考虑这个问题,真正的web或者嵌入应用,现在似乎还没流行起 来(很多嵌入应用我们是不知道d~),我觉得,快了……..记得用sqlite2哈~php好像还没支持sqlite3……这个计数器只 是很简单的应用,sqlite当然可以支撑更多复杂的应用,但是我看好的是它在手持终端里面的应用,比如手机的通讯录,我这个moto a760就是用的 Berkeley DB XML,上次通讯录坏了,我找了半天愣是没找到修复数据库的方法……如果是sqlite就好了……

    我在wap.kenbaby.org上面也加了一个计数器,大家可以用手机访问看看。

    【注1】:About SQLite
    ———————
    SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine. Features include:

    * Transactions are atomic, consistent, isolated, and durable (ACID) even after system crashes and power failures.
    * Zero-configuration – no setup or administration needed.
    * Implements most of SQL92. (Features not supported)
    * A complete database is stored in a single disk file.
    * Database files can be freely shared between machines with different byte orders.
    * Supports databases up to 2 terabytes (241 bytes) in size.
    * Sizes of strings and BLOBs limited only by available memory.
    * Small code footprint: less than 250KiB fully configured or less than 150KiB with optional features omitted.
    * Faster than popular client/server database engines for most common operations.
    * Simple, easy to use API.
    * TCL bindings included. Bindings for many other languages available separately.
    * Well-commented source code with over 95% test coverage.
    * Self-contained: no external dependencies.
    * Sources are in the public domain. Use for any purpose.

    The SQLite distribution comes with a standalone command-line access program (sqlite) that can be used to administer an SQLite database and which serves as an example of how to use the SQLite library.

  • 舞女妖姬风尘泪,今天晚上八点半

    “舞女妖姬风尘泪,今天晚上八点半,龙溪电影院!深圳歌舞团顷情奉献!”,两辆打扮得异常花哨的卡车从公司楼下开过,伴随着车后的一些花枝招展的女人,果 然是红灯区,换了重庆市内任何一个地方,我想都是不可能出现这种情况的,卡车四周的彩灯闪闪发光,彩灯四周的人们望了又望,似乎都不觉得怪异了,我也见了 几次,按说也应该不觉得怪异了,面馆的老板说,明天吃过,她们就放假了,好像大部分的公司都是25号放假,连面馆的老板都知道,中午吃饭的时候他们又在讨 论年终奖的问题,一致指责我没经历过穷困差钱的生活,不错,我从来没饿过肚子,我用钱也很节约,老婆经常说,我是把钱放那发霉,年终奖这个问题,我的看法 是,没有盈利,就不存在分红,年终奖应该是属于分红的一种,既然我们这个项目还没盈利,就没必要去强求年终奖,不过,去除年终奖这个说法,再怎么也应该意 思意思,哪怕只有50,100,或者吃个团年饭,是个意思,没得那个意思,就不太好了,当然,这不是我能决定的,何况我并不在意这些,因为我看好公司的未 来,问题是老汉经常在问我涨工资没有,很难交代啊,说没涨他就要给我打钱过来,顺便喊我换工作,说涨了就喊我买东西回去……我跟他们说,除了钱, 人生里面还有更重要的东西。

    坐在我旁边的美女穿的棕色衣服,蓝色牛仔裤,黄色的头发,抱着两个白色的毛毛熊,里面插着一卷包装花纸(后来 我发现那是一根烟花,晕…….),她把头埋在玻璃和肩膀之间,漠然的看着手里的手机,不停的按着,我不能确定她是在打游戏还是在发消息,忧郁的眼 睛上看不出来眼影,感觉像要哭出来,她在重大后门下车了,从椅子下面拖了一袋莴笋出来……不错,我也买过菜,但是我没试过在江北买菜带回沙坪坝, 而且带着两个毛毛熊和一根烟花,她走下公交,用力的一甩头发,消失在夜色中。坐我前面的女人快要让我吐出来,刚开始看她拿着一本小小说,蛮以为是个爱学习 的文学青年……旁边是个中年男人,打瞌睡,大概是睡着了,不停的往她那边靠,她神经质般的跳了起来,然后和他保持着一分米的距离,随着男人的摇摆 即时调整,而且她还在看右手拿着的小小说,本来这公交车的位置就很符合国情,不但很窄,而且很挤,男女坐一起就难免摩擦嘛,像我天天上班就是摩擦来摩擦 去,偏要装清高,这种人或多或少都在我们周围存在着,以前大三的时候班上就有一个,很让我恶心,关键是她演技太差了,看起来就像是拙劣的肥皂剧,像其它装 扮得很精美的所谓“做作”,我会很乐意接受,不能对所有人寄予相同的期望嘛,五指有长短,有森林就该有灌木。

    据说拉登又忽悠了一下布什, 说起美利坚,刚才上车的时候看见一个洋人在红灯区外问这问那,一群国人,男男女女围着他却不知所云,本来想上去说一声 may I help you sir? 想想算了,八国联军的帐还没和你算呢,一直以来的梦想就是在中国大地上和几个志同道合的人把旅游的日本人打一顿,欧洲人也一样,不过还是得先找个茬,比如 对南京大屠杀有什么看法啊,八国联军抢去的文物该不该还之类的,要是给出了我们不满意的回答……..这次拉登还是故技重演,说评价多高,那是不现 实的,拉登剩下对美国唯一有威胁的,就是半岛电视台了,或者说传媒更合适,他没有其它办法了,再说了,他也不需要去打仗,做精神领袖足矣,我是拉登的 fans,不是他的事业有多么正义,而是他的敢于反抗强权,我想,大多数支持拉登的人,也是因为他的敢于反抗,而不是他从事的非正义事业,很多时候一些事 情是没办法判断正义与否的,胜者为王败者为寇,小规模可以称为一小撮反革命分子,大规模的可以称为分裂主义,再大规模的就是意识形态的问题 了…….总之,拉登的讲话,又给了许许多多的人新的希望,可以预见的是在不久的将来,美利坚的洋人和中国出去的精英们生活将越来越不安稳。

    附送一张上午收到的WAP信息,我第一眼看到的时候不禁笑出了声音,因为我还没想过可以这么发,这必是对人们心理进行深刻的分析和调查得出的结论。

  • 老桑说他27号到重庆

    睡到下午才起来,好睡啊,挤了一堆消息在那里,桃桃起 来得真早,上午九点多就发了个消息来,原来昨天她那边停电了,不止是停电,而且手机还没信号,怎么搞的,堂堂一自治区首府,居然会停电,由此可见中国大陆 发展的严重不平衡,回个消息继续睡……她说她正在街上,遵照我的指示给她老头买烟,我可没指示过你去买烟哦,我是说不能禁烟,但是没说可 以…….这个这个,简直是完全错误的理解,买点其它的什么嘛,比如按摩椅,钓鱼杆,花草种植指南什么的多好,我比较喜欢种些花花草草,只是我现在 没那么多时间,等我有时间的时候我一定会种的,说不准种两棵树呢,起床了起床了,泡面,喝牛奶,吃几瓣柚子,再吃了一个亭希MM的脐橙,嗯,要是天天吃水 果都可以满足身体需要就好了,天然卫生,不含自由基那些有害物质,我就搞不清楚,为什么人们明明知道油炸食品含有大量的有害自由基还要去吃,不过,吃浆糊 的生活,我还是不喜欢的。【注1】爽一把就死啊,谁不是这样呢,因为没有永生,爽一把就死才是最好的选择,至少现在看起来大多数人是这么认为的,吃饱了看 电影,没什么好看的,都是些故事片,爱情片,我喜欢看科幻片和历史剧,但是我不喜欢大陆拍的那些个历史剧,僵硬死板,一口的京腔,仿佛全中国除了北京其余 的都是蛮夷,过了会她又打电话来了,好吵闹的样子,傻傻的说她在“狂shopping”,还是很多人呢,我嘴巴里面正嚼着一口的颗颗香干,话都说不清楚, 她肯定是看着时间打电话的,准时在过了50秒之后挂机,不知道她加了17951没有,不然很贵的哦(我想身为主任应该要报销电话费才对)。

    老 桑说他27号到重庆,小严应该也是那两天,定于27号晚上回去,那我只有请假罗,只有四个人,车子不至于太挤,刚好美好又问我,是不是经过万州回去,那样 她就可以请我吃饭了,从万州回去,不是不可以,只是他们大概不会同意,油费啊~我得26就请假,27白天要去瓷器口走一趟,老婆怎么办呢?

    【注1】:The.Martix.1999