新浪微博无疑揩了饭否,叽歪,嘀咕。。。的油。都是twitter clone,新浪围脖的出现却算是合适的时间,合适的地点(当然主要是合适的地点)。既然用户习惯已经培养起来了,新浪不用在教用户可以这样做,可以那样做了。反过来,天天都是用户再教新浪应该有这个功能,应该有那个功能。
当然不是新浪不用功,即使是团队,即使是门户新浪网的团队,执行力也是有限的,要想为无限的人民群众服务,一种是靠时间,几天一个功能,做啥你用啥,急啥;一种是靠开放,比如twitter, twitter的很多功能都是用户习惯收入到官方那个功能,这个趋势还在增加,此外,twitter的各类客户端各种插件也是五花八门,这一点也就饭否借鉴了一部分,不过照twitter也还差的远。
好了,开放。facebook的开放在大洋彼岸百花齐放,国内SNS的开放却是公认的伪命题。当然,微博的开放是另一种形式,主要是扩展功能为主,应该会好一些。不过,新浪微博会不会开放api么,会开放成什么样子,大家只能慢慢猜。
在这种局势下,微波炉诞生了,微波炉给微博用户提供了观看微博直播的途径,下回看快女,看大典,可以不用只守着电视看了,盯着微波炉看就可以了,看的兴起,还可以自己发几条微波参与一下。
此外,正如上面提到的,很多功能用户很需要,新浪微博暂时还顾不上实现,微波炉也会帮忙帮用户实现。比如@回复功能,分享音乐、视频功能、快速贴图功能等。微博做的不好的功能,微波炉也会提供更好的方案,比如博客Feed总导入不进去等。总之,饭总是要吃的,灶台不够,就尽量用微波炉做吧。
当然,很重要的一点,是信息的丢失问题。有时候,因为网络问题,发不上去还好;有时候发上去了,信息可能也会丢失。脖友们,憋半天,想一句话不容易,有微波炉就不怕了,微波炉的信息都是离线保存的。不但自己的,好友的信息也是随时同步并保存到本地,随时可以查阅。
好了,这是一个神奇的微波炉,也是一个进步中的微波炉。不到一周,已经发布了近10个版本。从第一个版本丑的不敢见人,到现在差强人意。博友们的关注和鼓励才是微波炉成长最大的动力。此期间主要也是通过微博收集反馈和发布信息,说明了微博不但可以是一个谈风月的地方,也可以是一个干正事的地方。
来吧,用微博吧,用微波炉吧!
Posted in
开发手记 at 09月 10th, 2009.
No Comments.
1. 一般情况下Sqliteman差不多属于最方便的sqlite桌面管理工具,因为,他可以直接打开一个sqlite数据库文件进行管理,比较方便。sqlite developer每次都要关联一下文件,才能操作,不过对DDL的操作sqlite developer是最方便完善的,sqliteman alter某一个字段的类型时,会丢失主键(primary key)的声明,这应该是它的一个bug.
2. integer字段,字段类型最好写INTEGER,全部大写的。我用delphi的sqlite simple wrapper的FieldAsInteger读取类型为integer的字段时,总告诉我类型不对,改为INTEGER正常。(后记,还是检查了一下SQLITETable3.pas文件的代码,果然里面判断类型时,直接和大写的匹配,sqlite对字段的类型时大小写都可以的。里面很多地方判断的时候,都只和大写判断,暂时不去修改这个wrapper的代码了,地方太多,先自己按大写的习惯来吧)
Posted in
开发手记 at 08月 22nd, 2009.
No Comments.
php自带了URLDecode和urldecode函数,可以用来对&=等一些出现在url或者get/post内容中的控制字符进行转义。
delphi没有自带此类函数,必须自己写。
function URLDecode(const S: string): string;
var
Idx: Integer; // loops thru chars in string
Hex: string; // string of hex characters
Code: Integer; // hex character code (-1 on error)
begin
// Intialise result and string index
Result := ”;
Idx := 1;
// Loop thru string decoding each character
while Idx <= Length(S) do
begin
case S[Idx] of
‘%’:
begin
// % should be followed by two hex digits - exception otherwise
if Idx <= Length(S) - 2 then
begin
// there are sufficient digits - try to decode hex digits
Hex := S[Idx+1] + S[Idx+2];
Code := SysUtils.StrToIntDef(’$’ + Hex, -1);
Inc(Idx, 2);
end
else
// insufficient digits - error
Code := -1;
// check for error and raise exception if found
if Code = -1 then
raise SysUtils.EConvertError.Create(
‘Invalid hex digit in URL’
);
// decoded OK - add character to result
Result := Result + Chr(Code);
end;
‘+’:
// + is decoded as a space
Result := Result + ‘ ‘
else
// All other characters pass thru unchanged
Result := Result + S[Idx];
end;
Inc(Idx);
end;
end;
function URLEncode(const S: string; const InQueryString: Boolean): string;
var
Idx: Integer; // loops thru characters in string
begin
Result := ”;
for Idx := 1 to Length(S) do
begin
case S[Idx] of
‘A’..’Z', ‘a’..’z', ‘0′..’9′, ‘-’, ‘_’, ‘.’:
Result := Result + S[Idx];
‘ ‘:
if InQueryString then
Result := Result + ‘+’
else
Result := Result + ‘%20′;
else
Result := Result + ‘%’ + SysUtils.IntToHex(Ord(S[Idx]), 2);
end;
end;
end;
Posted in
开发手记 at 08月 12th, 2009.
No Comments.
Delphi下时间和字符串互转用使用DateToStr或者StrToDate函数。
这两个函数没有php下的date函数方便和灵活。不过有时候也确实需要用到。
我写的下面这几句代码基本上体现了DateToStr比较完整的用法
aFormat.ShortDateFormat := ‘yyyy/mm/dd hh:mm:ss’;
aFormat.DateSeparator := ‘/’;
ShowMessage( DateToStr( now, aFormat) );
Posted in
开发手记 at 08月 10th, 2009.
1 Comment.
试了一圈 vsftpd,proftpd 等等,都觉得太麻烦了。特别是和系统用户关系太紧密了。按我自己的需求,如果一个ftp用户非要和shell帐户关系整的那么密切的话,还不如直接用sftp(ftp over ssl)算了。当然,主要是因为配置也不简单。
最终试了pureftpd觉得,不错,正是我想要的。可以直接他他在即的puredb里添加用户,这是虚拟用户(相对于linux系统来说),和系统用户一点亲戚都没有。配置在几个ftp里也算简单。下面把安装过程简单记录一下,以备需要的朋友和自己以后查阅!
1. 到pureftpd的官方网站 www.pureftpd.org/ 下载最新版本的pureftpd。
2. configure,参数很多,参考相关文档,我不复制了。也可以不看,直接./configure with-everything。如果不选定所有的话,其中有一个参数–with-puredb 是支持虚拟用户要用的,别落下。 make;make install;
3. 创建虚拟用户passwd文件 ./pure-pw useradd yourname -u ftp -d /home/youpath -f /xxx/pureftp.passwd
会提示你输入密码
4. 根据passwd文件生成pureftpd的puredb用户文件 ./pure-pw mkdb /xxx/www.iu1u.com/pureftp.pdb -f /xxx/www.iu1u.com/pureftp.passwd 这个文件一会儿要制定到conf文件中
5. 到puredb安装文件目录下
#chmod 755 configuration-file/pure-config.pl
#cp configuration-file/pure-config.pl /usr/local/sbin/
#cp configuration-file/pure-ftpd.conf /usr/local/etc/
6. 修改pure-ftpd.conf文件,打开并确认pdb配置路径
PureDB /ftp/etc/pureftpd.pdb
7. 到puredb安装文件目录下,cp contrib/redhat.init /etc/init.d/pure-ftpd,然后进到目标目录,
chmod 755 pure-ftpd;
chkconfig –add pure-ftpd;
确认pure-ftpd里的路径是不是和自己安装的一致。
8. ./pure-ftpd start 开动ftp即可,默认dameon 方式执行,不用操心了。打开ftp,试一下刚才自己用./pure-pw useradd 配置的用户名是否能登录和操作正常。
Posted in
开发手记 at 08月 6th, 2009.
No Comments.
如果我们把一个优酷的视频嵌入到自己的页面里的时候,用户一点全屏播放,就跳到了优酷的页面里,是不是觉得很不爽。其实优酷播放器支持很多参数,需要咱们去挖掘出来。通过参数设置,可以实现优酷视频页面全屏播放,优酷播放器不带优酷图标和链接等功能。
方法很简单,就是在flashvars参数里增加isShowRelatedVideo=false&showAd=0&show_pre=1&show_next=1&isAutoPlay=true&isDebug=false&UserID=&winType=interior&playMovie=true&MMControl=false&MMout=false&RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999
这一段即可,不知道什么是flashvars可以google一下!
演示地址:http://www.qqtag.com/shipin/310_428571.html
另外,我花了一天半的时间自己写了一个客户端采集器,带自动采集和自动发布功能哦,功能比火车头强大,www.qqtag.com就是用它生成的。自己在用用,修改修改,过段时间免费发布!
Posted in
开发手记 at 08月 5th, 2009.
1 Comment.
sqlite:单机数据库,好处多多,特别适合单机桌面程序保存(复杂)数据用。以前一般都要自己写个数据保存模块,代码量比较巨大。
Sqlite一般是以.dll的形式发布的,然后到处一堆接口函数。aducom (http://www.aducom.com/cms/page.php?2) 有个免费的mysql vcl组件,调用方式模拟ado,习惯按ado方式操作数据库的可以使用。不过,现在下载最新版的需要注册用户(很恶心),还需要激活注册邮箱(非常恶心),下下来以后,虽然是2009年的新版本,但是最高还只支持到Delphi5,delphi7以上,要自己重新制作组件包,操作方法比较复杂,可以参考http://edn.embarcadero.com/article/27717 ,这是个非常详细的解决方案,真要解决的花点时间看绝对没有问题。
其实sqlite左右方便的小型数据库,也没有做太多的封装。另外一个解决方案是,给sqlite.dll写delphi声明。当然不用自己写,A simple Delphi wrapper (http://www.itwriting.com/blog/a-simple-delphi-wrapper-for-sqlite-3)就挺不错的,简单实用。价格便宜量又足。
顺便说一下,sqlite因为是文件型操作,所以,对于批量的操作,最好放到一个事务里面,这样所有操作只有一次文件读写,否则,每一次操作都会读写一次数据,连续插几十条数据,都能感觉到机器卡。
Posted in
开发手记 at 08月 3rd, 2009.
No Comments.
注:www.iu1u.com 原创,转载请保留出处,谢谢!
心血来潮,玩起Perl。为了方便,先试试windows版的,activePerl。
尝试连接mysql时遇到麻烦,mysql接口竟然没有默认安装。照了些资料,大部分资料的方法已经过期了,所以重新整理一下。
1. %perl%/bin/perl ppm-shell 出来ppm命令行,ppm是perl下的程序包管理器,应该是perl packages manager。windows下直接运行ppm,或者perl ppm,都会调出GUI的ppm,不如command line 好用。
2. perl ppm-shell install http://theoryx5.uwinnipeg.ca/ppms/DBD-mysql.ppd 找个好用的源不容易,DBI一般默认安装了,所以直接安装DBD-mysql即可。
3. 再试一下,可以连接mysql了。
Posted in
开发手记 at 04月 18th, 2009.
No Comments.