2009-03-31

紫竹院·白羊运动会

  之前在六人行上给女朋友报名参加一个白羊运动会,因为看上面有跳绳的项目,女朋友和我一样没啥运动天赋,不过跳绳还不错。周六十点左右我们就出发了,先去了趟万通,买了跳绳和护腕,然后吃了点东西,赶到运动会的举办地点——紫竹院。之前没记清是在哪个门集合,于是我们在南门和西南门往返了好几次。大概等了一个多小时,人才到齐。
  我坐在公园门口晒太阳,遇到一个老头和我聊天,他说自己之前是某大学教授,问了我的人生理想,然后大肆抨击,大致是说我胸无大志、划地为牢,思想不够解放,孤立、片面、静态地看问题。并说我是“梁上君子”,很奇怪,估记他把这个成语的意思给记错了。老人说自己就是一本百科全书,他给我讲了自己波澜壮阔的一生以及自己的部分发明创造及学术思想。很受教,后来人到齐,我就同他告别了。
  女朋友跳绳大概是一分钟跳了158个,与另一个参加运动会的女孩并列女子组第一。有个人破了历届运动会的记录,跳绳跳了200多个。做俯卧撑时,女朋友做不了,让我替她做,很惭愧,只做了20多个。



2009-03-20

早上遇到好几拨打架的

  早上在一号线国贸站等女朋友,很多列地铁呼啸而过,她还没有到。我发现原来每次关闭地铁门前的铃声是地铁司机按的,并且不是在车内,而是在站内靠进车头的某个柱子上。后来把手中的书全看完了,开始观察起排队上车的人群。某个车厢门附近好像吵了起来,一男子上车后就被里面的一个人给推了下去,如果几次,后来他还是上了车,车里面那人还在推他,但推不下去了。被推的男子大声说着凭什么推他之类的话。我凑近观察一下是谁这么牛,还不让人上车了,才发现好像是个老外,跟老外一起的应该是他的中国同事或朋友,他稍微劝解了下那老外。感觉很气愤,太不讲理了,被推的人应该不会很严重侵犯那老外。这厮在中国还这么嚣张,真想上前踹他一脚,当然,想想而已。后来开走了。
  一会下趟开进了站,还是刚才那车门,一男子下车时被推倒在了地上,背部着地,人们陆续从他身旁走过,其中还个年轻女人说了他一句,大致是说挤在车门口妨碍了她下车。过了好一会儿,那男人才缓缓从地上起来,摔的应该不严重,可能是他对自己倒在地上很诧异,半天才缓过神儿。他起来后径直走向车门,去撕扯车厢内的另一男子,叫他下来。后来被人劝解开了,刚刚摔倒的男人骂骂咧咧地走了。
  女朋友终于到了,话不投机,我们也小吵了两句。大家火气都很大呀。

2009-03-18

今天真暖和

  今天真暖和,后天就是春分了。这两天一直犹豫要不要把毛衣脱掉。还好,只是简单想想,不是太劳神——小时候可不一样,那时我总在想自己穿什么或不该穿什么,生怕自己穿的和同学不一样了。
  早晨挤上地铁后身旁是一个二十多岁的小姑娘,好像穿了件低领毛衣,身材不是太高,所以我稍微一低头就能从看到她毛衣里面的一些内容,很小,很普通。我看了一眼,又看了一眼,又又看了一眼,总之没看几眼,没特殊看使劲看,不过就这样还被小姑娘发现了,她把手放置于胸上挡往了我的目光。确实没有很放肆地看,所以我想也可能她自己知道会被看,于就是采取了一下预防措施。
  女朋友的一个同学L身份证号和别人重了,一直不能在银行开户,所以去年的时候女朋友把我的一张没用的银行卡给了她,给之前我改了下密码,一个很简单的密码。后来L往我的卡里存了钱,后来又取钱,结果密码记不清了,试了几次,密码被锁住。今天她来找我一同去银行解锁密码。结果解锁的时候我们输了几次密码都不对,只能密码挂失了,七天后才能取新密码。L今天回家,取不了钱,只好向我借了点钱。很麻烦的事情。而且我想,别人会不会觉得我是故意的呀。记得三年级刚转学到某个学校的时候,同学中有人丢了瓶墨水,后来我和另外一位同学说起此事,我出了很多办法抓偷墨水的人,当时感觉自己过于热心,有点像做贼心虚。这件事情我一直记得。

2009-03-16

一条没用过的SQL语句

  在某论坛上看有网友发帖说面试时被考到了这样一道题:

  数据:
  Year Salary
  2000 1000
  2001 2000
  2002 3000
  2003 4000
  查询结果:
  Year Salary
  2000 1000
  2001 3000
  2002 6000
  2003 10000

  自己在SQL Server里试了一下:

  if exists (select * from sysobjects where id = object_id(N'Test'))
   drop table Test
  create table Test (year int, salary float)
  insert into Test values (2000, 1000)
  insert into Test values (2001, 2000)
  insert into Test values (2002, 3000)
  insert into Test values (2003, 4000)
  select a.year, sum(b.salary) as salary
   from test as a left outer join test as b on a.year >= b.year
   group by a.year order by a.year

  顺利通过。很久没怎么写SQL语句了。

2009-03-14

大蒜鲶鱼

  上午去城北市场转了一圈,买了条鲶鱼回来,据说是野生的。回来洗的时候发现鱼肚子里没有黑皮,似乎还真是野生的。然后上网查鲶鱼的做法,发现有人说野生鲶鱼颜色发青,而不是黑色,肚子颜色发黄,和我买的鱼很像。找了种看着比较靠谱的做法,如法炮制,步骤如下:
  1) 鲶鱼洗净,鱼头去鳃去牙,然后将鱼切成大块,放入料酒、姜末。
  2) 锅里倒入适量的油,油烧热后放入花椒、大料、葱、姜、豆瓣酱、豆豉、小红辣椒(泡椒的替代品)翻炒,加入适量番茄酱。
  3) 将鱼块放入锅中,并加入少量水。然后依次放入老抽、醋、白糖、盐、干辣椒丝。大火烧开,水开后改用小火。将切好的香菇放入锅中。
  4) 大概半小时左右,锅中的汤已经不多了,加入味精,关火。
  5) 在另一个锅中烧热一些油,然后放入蒜末、香菜末,闻到蒜香后将油、蒜末、香菜末一起倒入鱼中。
  现在就大功告成了,味道还挺不错。上图片:

2009-03-07

自制烤鱼

  味道没上次做的好吃,而且鱼还有点柴油味,不过没有严重到需要倒掉。好像是往鱼嘴里滴点白酒也能让鱼活的时间久些,干吗非得放柴油呢。

2009-03-06

JS矢量图形库Raphaël初体验

  今天看到Raphaël的介绍,于是下载下来看了一下。做了个简单的饼图,效果还不错。不过只能在IE里完全显示,别的浏览器显示不出饼图。这个JS库的文档太简略了。


  下面是部分代码:


var colors = ["#FFCCFF", "#9999FF", "#CCFFCC", "#FF8080",
"#660066", "#CCFFFF", "#FFFFCC", "#000080",
"#CCCCFF", "#FF00FF", "#0066CC", "#993366"];
var data = [{name: "Java", rate: 0.19401},
{name: "C", rate: 0.15837},
{name: "C++", rate: 0.09633},
{name: "VB", rate: 0.08843},
{name: "PHP", rate: 0.08779},
{name: "C#", rate: 0.05062},
{name: "Python", rate: 0.04567},
{name: "Perl", rate: 0.04117},
{name: "Delphi", rate: 0.03624},
{name: "JavaScript", rate: 0.03540},
{name: "Ruby", rate: 0.03278},
{name: "Other", rate: 0.133190}];
var rateList = new Array();
for (var i = 0; i < data.length; i++)
rateList.push(data[i].rate);

var chart = Raphael(20, 20, 501, 401);
var border = chart.rect(0, 0, 500, 400);
border.attr("stroke", "#000000");
border.attr("stroke-width", 2);
var title = chart.text(185, 40, "2009年2月编程语言市场份额统计表");
title.attr("font-family", "Arial");
title.attr("font-size", "18px");
var charList = drawPieChart(50, 90, 310, 310, rateList);
var legend = Raphael(390, 150, 101, 251);
var logendBorder = legend.rect(0, 0, 100, 250);
logendBorder.attr("stroke", "#000000");
for (var i = 0; i < data.length; i++)
{
var shape = legend.rect(10, i * 20 + 5, 16, 16);
shape.attr("fill", colors[i]);
shape.attr("stroke", "#000000");
var label = legend.text(60, i * 20 + 15, data[i].name);
label.attr("font-family", "Arial");
label.attr("font-size", "12px");
}

function drawPieChart(x, y, w, h, array)
{
var shapes = new Array();
var chart = Raphael(x, y, w, h);
var radius = Math.max(Math.min(w / 2, h / 2) - 4, 0);
var radian = 0;
var lastX = w / 2 + radius;
var lastY = h / 2;
var currentX = 0;
var currentY = 0;
for (var i = 0; i < array.length; i++)
{
radian = radian + array[i];
currentX = w / 2 + Math.cos(Math.PI * radian * 2) * radius;
currentY = h / 2 + Math.sin(Math.PI * radian * 2) * radius;
shapes.push(chart.path({stroke: "#000000", fill: colors[i]}).
moveTo(lastX, lastY).
arcTo(radius, radius, false, true, currentX, currentY).
lineTo(w / 2, h / 2).
andClose());
lastX = currentX;
lastY = currentY;
}
return shapes;
}

function rotate()
{
if (charList)
for (var i = 0; i < charList.length; i++)
charList[i].rotate(15);
}