教训

由于校内更改了状态发布的代码,所以之前的 Fannt2r 失效。今天修改时候由于一个细节问题浪费了不少时间:

  1. 小心中间临时变量名。由于设置了一个函数变量 cookie,而中间又有 cookie 临时缓存,之前都是用 cookie 一个变量,导致变量的值被篡改。所以,中间临时变量名字不要跟函数变量一样,改为 cookie_buf;
  2. 细心耐心的去调试程序。

PS:Python 真的很有爱。

玉树不倒

国务院决定,为表达全国各族人民对青海玉树地震遇难同胞的深切哀悼,2010年4月21日举行全国哀悼活动,全国和驻外使领馆下半旗志哀,停止公共娱乐活动。

为玉树人民默哀。玉树不倒,青海常青。

一日黄山

由于我悲剧的手机线充,去黄山的这两天不敢随意上推,也就无法随时记录这次黄山一日的一些感受想法,下面这些字是回来后回想,些许带着情绪。标题很明显就带着情绪。

  1. 坐车真累,17 号早上 7 点出发,12 点才到汤口,这一路车坐的屁股疼。由于不能手机上网玩,真的很无趣,只有睡觉。所以说,手机在有些时候是打发时间的绝佳武器。
  2. 一路上的风景远观都很不错,很多油菜花,黄灿灿一片非常漂亮。
  3. 往南走,能看到很多跟北方不一样的东西,比如建筑,两层尖顶小楼,应该是南方雨水多带来的特色建筑。
  4. 旅游团订的午餐很烂,而且量很少,我们一桌人几乎都没吃饱。
  5. 导游吃饭前是说先到宾馆,然后再计划下一步是休息还是宏村转转,结果吃了饭把你装上车就跟你耗着,不去宏村就不回宾馆,当然,去宏村的门票要再算。还好老板说给报销,不然估计得在大巴上憋几个小时。
  6. 宏村的设计相当赞,非常的系统化。村子保存的很不错,虽然现在人工修复的痕迹很浓,依然能看出几百年前的样子。
  7. 在宏村想去买点纪念品,但都知道旅游时候买这种东西就是明摆着让人宰,一个木工艺品要价 15,最后 5 块钱入手。
  8. 晚上住宿就是个杯具,先是我们 43 个人被分成两批,说一个宾馆住不下,13 个人出去另一个宾馆,半路上又把我们 13 个人再次劈开,6 个人去一民宅,另外 7 个去另外一小区民宅,完全让导游宰割,你却没啥办法。
  9. 早上 3 点起床,早餐,然后换乘黄山旅游大巴上山,盘山路真险,绝对十八弯。
  10. 缆车上山,开始发现人多,接下来一整天的感受就是人多。
  11. 风景确实很美,只可惜 18 号天公不作美,早上阴天,远景看的不是太清楚。临时充当领队,拍了不少照片,可惜不是自己的相机,还没拿到照片。嗯,在黄山上,真的想要一个相机。
  12. 八点不到的样子,阵雨如期而至。只见满山上都是雨衣,很好很强大。
  13. 雨中感到光明顶,风大,只拍了几张。
  14. 漫长的前山到后山之行,人挨着人,人挤着人,想走快是妄想,想慢走看景也是不可能。就这么“被”走了三公里到迎客松。
  15. 人真多真多!玉屏峰全是人!下山口严重拥堵,据前方导游说中午时分上山的人依然很多,下山和上山的人在黄山狭窄的石道上堵住了。
  16. 人太多,完全没有兴致玩了,排队下山。下山到天都峰路口时候,天气放晴,云雾飘渺,漂亮。
  17. 上山容易下山难,生生走了两个小时,累的腿都要断掉。
  18. 导游安排到一茶楼品茶,还是有不少同事被营销,纷纷出手买茶叶,可惜咱乡下人,不懂品茶,省掉。
  19. 走了一天真累,粗略算下来有 20 里山路,所以回来的车上歪头就睡着了。
  20. 十点半到合肥,打车回到家,洗洗睡吧。

景色真的很不错,只可惜人太多,又下着雨,完全没法去观景,就被挤着走路了。回头跟老婆挑个好时节好天气再去一番。

Update:今早看新闻,发现自己一不小心还参与创造黄山游客记录,四月这种淡季居然赶上五一十一黄金周的人流量了,其实原因很简单,黄山这一天门票半价,我也是上山后听导游说才知道的。

Missing

刚送老婆上车,心里就空落落的。顺着那条破路往家走。

到楼下,不想上去,一个人呆在屋里不好玩,就去老梁那边串门,扯淡到九点,还是得回去。

肯定睡不着,所以就看无聊的肥皂剧。一集、两集,其实我是在等老婆上火车,顺便等我生物钟赶紧到,这样就可以倒头就睡着。

半夜醒来无数次,一个人的被窝太冷。

早上六点半闹钟,我还是习惯性的关掉,然后再眯一会。

可惜眯一会就没人再叫我了,所以我七点二十惊醒,然后飞奔到公司。

老婆赶紧回来。

PHP 里常量和变量的区别

  1. 常量前面没有美元符号($);
  2. 常量只能用 define() 函数定义,而不能通过赋值语句;
  3. 常量可以不用理会变量范围的规则而在任何地方定义和访问;
  4. 常量一旦定义就不能被重新定义或者取消定义;
  5. 常量的值只能是标量。

Delphi ADOTable 增删查改

//添加记录

ADOTable1.AppendRecord([val1,val2]);

//删除记录

 ADOTable1.Filter :='SaleID='''+text+'''';
 ADOTable1.Filtered := true;
 if ADOTable1.RecordCount = 0 then
      begin
          ADOTable1.Filtered := false;
      end;
 else
      begin
          ADOTable1.Filtered := true;
          ADOTable1.Delete;
          ADOTable1.Filtered := false;
      end;

//查找记录

ADOTable1.Filter := 'SaleID='''+text+'''' ;
ADOTable1.Filtered :=True;

//更新记录

ADOTable1.Edit;
ADOTable1.FieldByName('SaleID').Asstring := text;
ADOTable1.Post;

Delphi ADODataset 增删查改

//Select/Refresh

ADODataset1.Active := false;
ADODataset1.CommandText := 'select *  from Table_1';
ADODataset1.Active := true;

//Add

ADODataset1.Append;
ADODataset1.Fieldbyname('ID').Value := edit1.Text;

//Delete

ADODataset1.Delete;

//Update

ADODataset1.Edit;
ADODataset1.Fieldbyname('ID').Value := edit1.Text;
ADODataset1.Post;

Why GAE?Why Picky?

Why GAE?为什么用 GAE 做 Blog 平台,参见 Livid 的把博客架在 Google App Engine 上的好处,自己的观点:

  1. WP 越来越庞大。WP 的功能强大和定制性毋庸置疑,但是随着 WP 的功能强大,效率和安全性越来越是个问题;
  2. 主机服务器的问题,在国内要备案要审查,这也是为啥我放弃了之前在国内的博客停止更新;
  3. GAE 是免费,并且满足自己折腾。

在放弃 WP 转战“云博客”的时候,也考虑过 Blogger、WP.com、Posterous 这种 BSP,不过还是放弃了,原因:

  1. Blogger、Posterous 虽然也可以自己绑定域名,但你能够折腾的只有内容和样式布局上,在整体功能上还是受限,参考上面第三条;
  2. WP.com 可以让我无痛转移之前博客过去,但不能绑定域名;
  3. GAE 的强大免费以及对 Google 的中毒,:)

Why Picky?Blog system powered by GAE 有很多,其中徐明的 Micolog 和丛林大侠的 iHere 异常强大,最吸引我的就是都支持 WP 导入,但是这两个的强大带来的一个问题就像是 WP 的庞大,有很多自己不非常需要的功能。另外,Picky 有很多非常吸引我的地方;

  1. Clean,no unnecessary visual noises,focus on writing;
  2. Employ sexy technologies like HTML5,Twitter;
  3. Integrated Twitter client,synchronize to Twitter automatically.

至于 appspot 被墙,这年头谁上网还没几个翻墙的家伙什?!

这就是为什么我选择 GAE+Picky 作为自己的发布平台,Easy to share my thought and opinion。

Delphi ADOQuery查询、插入、删除、修改

//查询记录

with ADOQuery do begin
    Close;
    SQL.Clear;
    SQL.Add('Select * From Table');
    Open;
end;

//插入记录

with ADOQuery do begin
    Close;
    SQL.Clear;
    SQL.Add('Insert Into Table(val1,val2) values(:val1,:val2)');
    Parameters.ParamByName('val1').Value := Trim(Edit1.Text);
    Parameters.ParamByName('val2').Value := Trim(Edit2.Text);
    ExecSQL;
end;

//删除记录

with ADOQuery do begin
    Close;
    SQL.Clear;
    SQL.Add('Delete from TABLE where val1=:val1'); // =: 前后都不可有空格;
    Parameters.ParamByName('val1').Value := Trim(Edit1.Text);
    ExecSQL;
end;

//修改记录

with ADOQuery do begin
    Close;
    SQL.Clear;
    SQL.Add('Update TABLE Set Key=:val1');
    Parameters.ParamByName('val1').Value := Trim(Edit1.Text);
    ExecSQL;
end;

Open 有记录集返回,ExecSQL 没有记录集返回;Select 常用 Open,Delete/Insert/Update 常用 ExecSQL。

忙碌的愚人节

今天我开始培训工作,碰巧愚人节,够巧的。

一上午就在帮他们整理资料,下午网络布线,累死个人了,真比做项目都累。

挑战很大,要加把劲,加油加油!~