存档在 2009 年 02 月

十年前我的专辑——卡带

2009年2月27日

张信哲 – 《心事》

李玟 – 《DiDaDi》 【据我后来在网上搜索,没有找到该专辑,怀疑是盗版的盗版】

谢霆锋 – 《谢谢你的爱1999》

赵传 – 《勇敢一点》

王菲 – 《只爱陌生人》

林心如 – 《心跳》

赵薇 – 《爱情大魔咒》

张学友 – 《心如刀割》

还有一些暂时记忆不起来了,当时刚刚高考完毕有了自己的随身听,于是从每个月仅有的几百块钱生活费里扣出来点钱买了这些。后来搜集了有一鞋盒。

上次米妈问我,为什么居然还下载林心如和赵薇的歌,呵呵,当时我没有回答。

虽然有很多好听的歌,有很多不好听的歌,但是什么时代听什么时代的歌,这个就是代沟的表现之一。

还记得第一次听说周杰伦是01年了 古巴比伦,哈哈。

有趣的三个叠加字组成的字

2009年2月27日

金 – 鑫 xin

木 – 森 sen

水 – 淼 miao

火 – 焱 yan

人 – 众 zhong

石 – 磊 lei

土 – 垚 yao,zhuang 【索尔提供,zhuang发音由人帮人提供】

口 – 品 pin

日 – 晶 jing

犬 – 猋 biao

小 – 尛 mo

牛 – 犇 ben  【索尔提供】

虫 – 蟲 chong  【21php.china提供】

吉 – 嚞 zhe 【人帮人提供】

心 – 惢 suo 【人帮人提供】

鱼 – 鱻 xian 【人帮人提供】

羊 – 羴 shan 【人帮人提供】

李小错搜索出来的结果

鑫(xīn)森(sēn)淼(miǎo)焱(yàn)垚(yáo)

骉(biāo)驫(piāo)犇(bēn)羴(shān)猋(biāo)蟲(chóng)鱻(xiān)赑(bì)贔(bì)

众(zhòng)姦(jiān)孨(nì)譶(tà)聶(niè)瞐(mò)品(pǐn)舙(huà)掱(pá)惢(suǒ)

轟(hōng)刕(lí)磊(lěi)晶(jīng)灥(quán)畾(léi)

尛(mó、ma)馫(xīn)皛(pò)歮(sè) 劦(xié)

叒(ruò)矗(chù) 嚞(zhé)雥(zá)厽(lěi)

一个智能机所需要具备的要素?

2009年2月27日

上网,那是没话说,必须得有,WIFI最好

听歌,可有可无,能上网有耳机就能听歌最好

看视频,视频越来越多,慢慢看。

看电子书,纯文本的那种也可以。

照相,不用专门带个照相机。

摄像,可以随时传到网上与人分享。

地图,GPS定位系统,不至于在外面迷路。找地方也很方便。

 

还有什么呢?

对了,还要能打电话和发短信,不过如果话费不贵的吧,发短信的功能就省了吧。

不过,发短信的功能还是留着吧,有些话可能不方便在电话里说。

米妈准备入手一台M8了。【M8是魅族2009年初新出的智能手机的型号】

如何在复杂的嵌套环境中输出单引号和双引号

2009年2月26日

<a href="javascript:alert('这里有2个单引号一个双引号&#34;\&#39;\&#39; :) ');" >引号的嵌套</a>

单引号 ‘ 的 ASCII码是 39  双引号 " 的 ASCII码是34,

所以我们可以用&#xxx;的形式来代替具体的符号。

虽然变成了&#xxx;的形式,但是在嵌套环境中仍然要很当心。这里代码里的alert()使用的引号是单引号,alert里的字符串应该转义掉单引号。于是就有了 \&#39;的形式。

反之,就要转义掉 \&#34;

上海地铁进出站处的扫票BUG

2009年2月26日

绝对是BUG。

假设有2个乘客,乘客A和乘客B。

乘客A用交通卡扫过之后进去,交通卡余额显示时间为1秒【具体时间未测定】,

也就是说:

乘客A在时间 t扫票进站,那么在 t+1秒之后,交通卡余额会消失。

乘客B出场

如果乘客B在t+1秒之后扫票进站,那么这个逻辑不会出现任何问题。

反之,如果乘客B在t+1秒之前进站,例如说t+0.5秒,那么会出现什么现象呢?

按照正常的逻辑,乘客B的交通卡余额也应该显示1秒的时候,即在t+1.5秒的时候消失。

但是实际情况是由于t+0.5秒时,乘客A的交通卡余额还在显示,而这个显示着的乘客A的交通卡余额消失时间也已固定,即t+1秒,那么在t+1秒时,显示着的交通卡余额消失了,但是不是乘客A的而是乘客B的。

BUG的描述就是:如果在前一位乘客进站后,显示余额未消失的情况下,另一位乘客进站了,那么在很短的时间内,后一位乘客的余额就会消失。

BUG带来的后果就是:后一位乘客常常不能确认到自己进出站时的卡内余额。

10进制转26进制

2009年2月25日

为什么会有这种情况出现呢,都是因为M$公司开发的软件Excel,这个软件里面的单元格定位是采用类似地图标注的定位方式,横坐标是已英文A-Z26个字母的形式增长的,纵坐标是数字递增形式。于是就有了下面10进制转26进制的函数出现。


function dec2excel($num) {
  $str = strtoupper(base_convert($num,10,26));
  for($i=0;$i<strlen($str);$i++) {
    $str{$i} = ord($str{$i}) < 58 ? chr(ord($str{$i}) +16) : chr(ord($str{$i}) + 10);
  }
  return $str;
}

PHP里面有提供一个base_convert函数,可以在任意进制之间进行转换。当然这个任意是有限度的,具体来说是在【2-36】之间。为什么是36呢?回头再讲。

但是这里有个问题,不管那种进制,第一个自然数都是1开头的,但是Excel里面的横坐标是以字母A开始的。于是就面临1-9要顺移到A-I的问题。这里1的ASCII值为49 A的ASCII值为65 所以简单判断ASCII值,小于58【9的ASCII值为57】的 递增16,否则递增10。但是这里出现了一个问题,0怎么处理?????这个函数没有对0进行处理,或者说0的处理是完全错误的,0的ASCII值为48,48+16 = 64 ,而ASCII码值为64的是@。


/**
 * 自然数              0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
 * base_convert之后    0 1 2 3 4 5 6 7 8 9 a  b  c  d  e  f  g  h  i  j  k  m  n  o  p  q  10 11
 * 实际的A-Z组成的26进制   A B C D E F G H I J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  AA
 */

看来这个函数不能这么搞。问题的关键就出在 自然数是[1-9]+0 而26进制是[A-Z]的循环。

难道要回归原始的根据每一位所代表的权重用计算的方式把A-Z的26进制弄出来?不行,再想办法。

今天回家的地铁里左思又想也得不到结果,有朋友推荐我去看Excel的相关函数,我想这么简单的东西,算我笨好了,一晚上总想得出来的吧。

终于被我想到了解决方法。我就用死算的方法好了:


function ori_dec2excel($num) {
	$a = array('A','B','C','D',...,'T','U','V','W','X','Y','Z');
	$yushu = $num % 26;
	$jixuchuli = ($num - $yushu) / 26 ;
	if($jixuchuli <= 26) {
		return $a[$jixuchuli-1].$a[$yushu-1];
	} else {
		return ori_dec2excel($jixuchuli).$a[$yushu-1];
	}
}

但是下面这个表达式的结果确不是我想要的,52的26进制应该是AZ。 用base_convert的方式表达是20。



 $k = ori_dec2excel(52);

问题的关键就出在A-Z之中没有“0”。

或者说按照上面的函数 $num % 26 之后,如果余数为0的话,要把这个26给退回来,不能放到高权重的位去处理。于是最后的解决方式出笼了。

function ori_dec2excel($num) {
	$a = array('A','B','C','D','E',...,'V','W','X','Y','Z');
	$yushu = $num % 26;
	$yushu = $yushu == 0 ? 26:$yushu;
	$jixuchuli = ($num - $yushu) / 26 ;
	if($jixuchuli <= 26) {
		return $a[$jixuchuli-1].$a[$yushu-1];
	} else {
		return ori_dec2excel($jixuchuli).$a[$yushu-1];
	}
}

最后附上我的26进制转10进制的函数,这个的思路就比10进制转26进制要简单的多了。


function ori_excel2dec($num) {
	$v=0;
	$l = strlen($num);
	$a = array('A','B','C','D','E',...,'U','V','W','X','Y','Z');
	for($i=0;$i<$l;$i++) {
		$v += (array_search($num{$i},$a)+1)*pow(26,($l-$i-1))."\r\n";
	}
	return $v;
}

为什么PHP的base_convert最大只提供到36进制的转换呢,那是因为:0-9 十个数字加上 a-z 26个字母,可以用来表达不同位的字符只有36个。所以,这下明白了吧。

寻找时间的人

2009年2月25日

最近看完这本小说,也可以说是童话吧。感觉还不是很好看的,蛮吸引人。为什么我们的时间总是不够用,原来是时间泄露到另一个时间去了。怎么会泄露的呢?呵呵,书中自有答案。

这本书是一个爱尔兰音乐小集合,讲述了音乐,时间,社会以及宗教。当然不是教条的讲,而是非常有趣味的以故事的形式描述勾勒出社会的现状。

最有特色的是,每个小章节后面都有一个五线谱的小曲子,呵呵,可惜我几乎忘记了高中时候学习过的无线谱,不然还可以哼哼两句。

挺有意思!

猪肝你吃吗?

2009年2月23日

今天有一道菜是西红柿猪肝,我回来的时候,还有半盘猪肝,当然西红柿也是有一点的。我小时候就不太喜欢吃猪肝,我爸爸倒是很喜欢吃,为不吃猪肝的事,我爸爸在我小的时候还给过我脸色看。米妈也是小时候从来不吃猪肝的。

西红柿猪肝怎么了呢?

请听我道来:

前文说过,我现在还是不怎么喜欢吃猪肝,事情回到一周前,米妈发现米米手指甲有点弯曲,于是断定这是缺铁造成的,而且是缺铁性贫血,于是派我去药店买铁剂,可是药店都是推销的啊,根本不想卖给我任何便宜的药品,一直跟我推“X尔”保健品。于是又回来了,没买。

最后还是米妈从网上订了个什么补铁的。药补不行,咱们还是得食补啊。最便利的方式就是吃猪肝了,补肝补血补铁。

回到今天,今天是最近第三次吃猪肝,我一看那半盘的猪肝我就生气,怎么吃那么少,吃这么少怎么补啊?我让米妈今天一定要把这半盘猪肝吃完。米妈死活说今天吃的够多了。于是我只好自己吃啦。迟到还剩5-6块的时候,电视剧里说了一句不知道什么话。米妈跑过来,拿起我的筷子,扒拉扒拉,吃了好几块猪肝。我纳闷了,刚刚不是说不吃的了吗,怎么吃这么多?

我晕,原来那个超级低俗的、我完全看不懂的、幼稚少年看的台湾电视连续剧里说了一句吃鸡肝对人体有好处的话居然有这么大魔力。

猪肝的故事就讲完了。米妈的故事也讲到这里。电视对米妈的影响可见一斑。

我该去洗那因为和我的袜子靠到一起而必须重新洗过的米米的衣服,米米洗屁股的毛巾去了!再见!

好久没看书了,随便找一本看看——Head first web design[Jan 2009]

2009年2月22日

 

很久没有看书,今天去http://itstudy8.org上一看就有一本封面比较戆的书,就是左边这本了。上豆瓣一看,还没几个人看过,评价是三星四星各一。好吧,虽然这种形式【书里面图片比较多】的书我买过一本head first design pattern【里面代码是JAVA的,后来转手50块卖掉了】,内容不太看得懂,但是我想这本Web Design总不能再离我太遥远了吧?下载下来看看。

先贴下目录:

  1. 1.Building Beautiful Web Pages
  2. 2.Pre-Production
  3. 3.Organizing Your Site
  4. 4.Layout and Design
  5. 5.Designing with Color
  6. 6.Smart Navigator
  7. 7.Writing For The Web
  8. 8.Accessibility
  9. 9.Listen to Your Users
  10. 10.Evolutionary Design
  11. 11.The Business of Web Design

2009年的新书哦!

基于jQuery的datagrid->flexigrid

2009年2月22日

该项目主页:http://www.flexigrid.info/

在使用不起EXTJs的环境下,用用这个代码还是不错的,pack后的代码只有20k不到,稍微修改一下就适合中文使用。

不过最后一次更新是在2008年的7月,作者有一段时间没有更新及添加新功能了,使用说明还不够全面。