熟读唐诗三百首的会吟,一定不如诗仙随心所欲吟出来的那种东西
2006-04-17
会吟与会吟
发表者tiny @ 时间 4/17/2006 11:12:00 上午 | 0 条评论
[转贴]简介小型数据库引擎Sqlite
作者:陈文成
最近在工作过程中发现一个好用的咚咚(其实很久以前就喜欢上它了):SQLite。
SQLite是一个小型的C程序库,实现了独立、可嵌入、零配置的SQL数据库引擎,其特性包括:事务操作是原子,一致,孤立,并且持久的,即使在系统崩溃和电源故障之后。
零配置??不需要安装和管理,实现了绝大多数SQL92标准。
整个数据库存储在一个单一的文件中,数据库文件可以在不同字节序的机器之间自由地共享,支持最大可达2T的数据库。字符串和BLOB类型的大小只受限于可用内存。
完整配置的少于250KB,忽略一些可选特性的少于150KB。在大多数常见操作上比流行的客户/服务器数据库引擎更快。
简单易于使用的API:内建TCL绑定,另外提供可用于许多其他语言的绑定。
具有良好注释的源代码,95%经过测试。
独立:没有外部依赖,源代码位于公共域,可用于任何用途。
但是在近来的开发中发现SQLite缺少一些中文的支持,SQLite官方网站上 面提供了不少的文档,但是都是英文的,也没有中文社区。所以林轩就想作一个文档的汉化以及把一些最近开发的心得体会写出来,以便大家的学习使用。说干就 干,先从文档翻译开始吧,经过一段时间零零散散的翻译,文档的汉化已经基本完成了。申请了两个站点:http://www.sqlite.com.cn 和 http://www.mysqlite.com 。小林也加入了我们队伍了。他申请了一个 http://www.sqlite.org.cn ,确实不错的域名,到时候把他kiang过来,哈哈。
我们也开始寻找一些SQLite的资料,收集、整理、自创,十八般武艺能用上的都用上。目前也已经有了一些内容了,出了一个内部测试版的,采用的是 asp的页面。希望能够在“五?一”回来之后出来一个beta版,准备用php实现。书到用时方恨少,现在只有恶补一下了,everything in action。
发表者tiny @ 时间 4/17/2006 10:11:00 上午 | 5 条评论
2006-04-11
程序员的电视台-CSDN Live正式推出(第一期我参与录制)
即使是在电视行业非常发达的今天,一些边缘的需求仍旧难以满足 。比如作为程序员,我希望有一个电视节目关注程序员的生活、心态,然而这样的节目并不会存在,这是因为对于电视这种寸土寸金的媒体来说,任何一个特定的边缘群体都很难满足他们对收视率的基本需求(也就是节目不赔本的基本需求)。
所以说,我要说我们很幸运生存在一个网络发达的时代,也幸运CSDN能够去作出这样的努力。CSDN Live是一个关注于程序员和软件行业的频道,以视频节目为主,准备一周进行一次到两次的程序员和相关厂商的访谈。以后会加入更多的内容,据说还会请位美女跟登高一起每天中午给大家播报业界的新闻(期待美女啊)。
第一期是我和霍炬参与录制的《写Blog的程序员》,下一期是Qihoo公司副总经理王航和搜房网搜索引擎优化负责人田春峰参与录制的《什么是社区搜索?》。
Technorati Tags: CSDN, Tinyfool, Huoju, Yanhui, Live, blog
发表者tiny @ 时间 4/11/2006 10:23:00 上午 | 7 条评论
2006-04-04
4月3日Google Maps API新版本发布,更多心动特性
2006年4月3日,Google Maps API官方Blog(需代理)发布Google Maps API Version 2,在此之前这个版本实际上已经测试了2个月左右。
新版本的发布不会立刻影响到Google Maps Api的应用程序开发者,老版本的Api仍旧可以使用,为了做到这一点,新功能是用新的类GMap2来实现的。升级包括了UI、功能特性和授权条款。
UI方面的改进

Google Maps Api V2新特性-自定义控件

Google Maps Api V2新特性-自定义覆盖对象

Google Maps Api V2新特性-同步缩略窗口

功能特性的改进
- 更小的JavaScript文件尺寸
新版本JavaScript文件尺寸只有原有文件尺寸的一半,这可以提高网站的用户感受。 - 增加的两个缩放级别
美国,加拿大,英国,日本,欧洲以及世界各主要城市的卫星地图分辨率和覆盖范围都有所改进。 - 缩略图
使用新引入的GOverviewMapControl可以在屏幕的一角显示一个可伸缩的缩略图。
- 扩展能力和新的GMap2类
GMap2是全新设计出来的,Api用户可以方便的扩展它。文档详细说明了如何创建自定义的控件,自定义覆盖对象,甚至自定义的地图。
- 更少的内存泄漏
现在Api中包括了一个GUnload方法,你可以在页面的unload事件中调用这个方法,这样可以最大限度的清除循环引用,包括在事件注册中隐含发生的。
- 调试日志
一个简单的浮动调试窗口原本用于Google Maps工程师的内部调试,现在开放给开发者。这样就可以在不中断程序运行和干扰用户UI的前提下进行调试。很简单,用 GLog.write()代alert()即可。
- GLatLng类替换了GPoint类
更加直观
更友好的授权条款
- 不再有PageView的限制
- 任何广告相关的改变提前90天通知
发表者tiny @ 时间 4/04/2006 12:05:00 上午 | 4 条评论
2006-04-01
对了,你在命令后面加回车了么?
小张这些日子正在做某邮件软件的Gmail 支持,但是似乎遇到了没有办法逾越的障碍。因为,大多数的邮件服务器商都未采用基于Ssl连接的Pop3协议,所以这个邮件软件原本没有这个功能。然而Gmail只支持基于Ssl连接的Pop3协议,所以小张的任务就是给邮件软件增加基于Ssl连接的Pop3协议的功能。
被折磨两三天后,小张来问我有什么建议。
Tiny:“那么,协议看了么?基于Ssl连接的Pop3协议有啥区别么?”
小张:“看起来没什么大区别,但是不知道是不是有什么要加密的认证流程。”
Tiny:“那么现在能连接到服务器了么?”
小张:“可以了,使用了OpenSsl的库,Gmail的服务器返回一个信息 "+OK Gpop ready q36pf3852152pyg" ”
Tiny:“根据Pop3协议的约定,这代表你的连接很正确,然后你给他发User和Pass了么?”
小张:“问题就在这里,我发送了User和Pass但是服务器一点反应都没有。”
Tiny:“哦?连 -ERR 信息都没有么?”
小张:“一点反应都没有。你说是那里错了呢?”
Tiny:“哦,我试试看。”
我懒得现写一个程序了,打开Firefox输入 https://pop.gmail.com:995/ 一回车,立刻响应如下:
这说明,我们这边的网络连接Gmail的服务器很快,而且反应也正确啊。那么小张的程序问题在哪里呢?+OK Gpop ready q36pf3852152pyg
-ERR bad command q36pf3852152pyg
-ERR bad command q36pf3852152pyg
-ERR bad command q36pf3852152pyg
-ERR bad command q36pf3852152pyg
-ERR bad command q36pf3852152pyg
-ERR bad command q36pf3852152pyg
-ERR bad command q36pf3852152pyg
-ERR bad command q36pf3852152pyg
-ERR bad command q36pf3852152pyg
-ERR bad command q36pf3852152pyg
小张:“郝哥,是不是我们发信息的顺序不对呢?或者手里面的协议写的不全面?”
我心说,这不太对,协议对错无所谓,为什么服务器没有响应呢?无所谓,我们先看看正确的协议是怎样的。这时想到Outlook Express有日志功能,我打开Outlook Express配置好我的Gmail账号。然后在选择菜单“工具-〉选项”,然后在选项对话框的维护页,选择记录邮件的访问日志。(这个日志会保存在上面设定的存储文件夹。)
然而,从日志可以很清晰看到,基于Ssl连接的Pop3协议跟普通的Pop3协议没有任何本质区别。
POP3: 22:39:21 [rx] +OK Gpop ready 36pf3567290nza那么,小张的问题是什么呢?协议显然没错,而且他也连接到服务器了。真奇怪。
POP3: 22:39:21 [tx] USER tinyfool
POP3: 22:39:22 [rx] +OK send PASS
POP3: 22:39:22 [tx] PASS *********
POP3: 22:39:22 [rx] +OK Welcome.
POP3: 22:39:22 [tx] STAT
POP3: 22:39:22 [rx] +OK 26 8139171
POP3: 22:39:23 [tx] LIST
POP3: 22:39:23 [rx] +OK 26 messages (8139171 bytes)
POP3: 22:39:23 [rx] 1 9268
POP3: 22:39:23 [rx] 2 3827
POP3: 22:39:23 [rx] 3 616929
POP3: 22:39:23 [rx] 4 27164
POP3: 22:39:23 [rx] 5 13456
POP3: 22:39:23 [rx] 6 1854
POP3: 22:39:23 [rx] 7 6078693
POP3: 22:39:23 [rx] 8 3139
POP3: 22:39:23 [rx] 9 10862
POP3: 22:39:23 [rx] 10 53442
POP3: 22:39:23 [rx] 11 343820
POP3: 22:39:23 [rx] 12 29832
POP3: 22:39:23 [rx] 13 86862
POP3: 22:39:23 [rx] 14 667057
POP3: 22:39:23 [rx] 15 2336
POP3: 22:39:23 [rx] 16 25130
POP3: 22:39:23 [rx] 17 14377
POP3: 22:39:23 [rx] 18 6795
POP3: 22:39:23 [rx] 19 40428
POP3: 22:39:23 [rx] 20 11224
POP3: 22:39:23 [rx] 21 18744
POP3: 22:39:23 [rx] 22 20920
POP3: 22:39:23 [rx] 23 17022
POP3: 22:39:23 [rx] 24 12724
POP3: 22:39:23 [rx] 25 17125
POP3: 22:39:23 [rx] 26 6141
POP3: 22:39:23 [rx] .
POP3: 22:39:23 [tx] RETR 1
POP3: 22:39:23 [rx] +OK message follows
POP3: 22:39:37 [tx] RETR 2
POP3: 22:39:37 [rx] +OK message follows
POP3: 22:39:39 [tx] RETR 3
POP3: 22:39:39 [rx] +OK message follows
POP3: 22:41:16 [tx] RETR 4
POP3: 22:41:17 [rx] +OK message follows
POP3: 22:41:20 [tx] RETR 5
POP3: 22:41:20 [rx] +OK message follows
POP3: 22:41:21 [tx] RETR 6
POP3: 22:41:22 [rx] +OK message follows
POP3: 22:41:22 [tx] RETR 7
POP3: 22:41:23 [rx] +OK message follows
这时候,我突然想起,我还没看到小张的代码呢,万一他犯了一些低级错误呢?98年我第一次写Pop3服务器的时候就犯过一个错误,在返回信息后面没有添加回车,结果客户端就不会响应。
于是,我问小张:“对了,你在命令后面加回车了么?”
小张摸了摸头,“那后面还需要加回车的么?”
Tiny:“…………………………………………”
问题就这么解决了,不知道小张学到了什么,我希望他学会在对手里面的资料疑惑的时候,如何通过设计实验来验证他们的正确性。以及如何更仔细的看自己手里面的资料,相信协议文档里面写明了,需要回车。
而我呢?也许应该在这孩子开始跟我抱怨的时候,就先去看看他的代码,呵呵。人总是会犯一些看似很愚蠢的低级错误的,这跟智力无关,这往往是因为经验不足,或者粗心。
Technorati Tags: Gmail, pop3, smtp, ssl, 编程
发表者tiny @ 时间 4/01/2006 10:23:00 下午 | 8 条评论



