饭否归档(2011-08-10~2011-08-22)

  • 自从不上班开始,处理邮件的频率从一天三次变成三天一次,积累了好多垃圾邮件。 2011-08-22 07:43:15
  • 大清早起来就发现无线网卡驱动丢失,昨晚还用得挺好的…… 2011-08-22 07:41:57
  • HP太令人失望了。 2011-08-21 15:54:40
  • 今天外面真是热得可怕。。出去寄个东西衣服裤子全汗湿了。 2011-08-20 14:06:49
  • 小路考顺利通过,等待大路考。 2011-08-17 10:14:11
  • 把他给我拖出去毙了! 2011-08-16 13:33:48
  • 失业在家第二天,昨晚睡得不错,再有两三天,作息时间就能调整好了~ 2011-08-16 09:03:39
  • 失业在家第一天,想做点啥又啥都不想做。 2011-08-15 08:50:49
  • @bristlegbfly 打算按现在市场价半价左右吧,不过我只做同城交易…… 2011-08-13 21:11:11
  • 悲剧了,新买的主板居然不支持旧的内存条……威刚DDR2 800内存条2G×2,转让,有谁要么? 2011-08-13 14:39:26
  • 失业了……在哪儿可以申领失业保险? 2011-08-12 18:19:05
  • 恩。就这样吧~Goodbey,AccelOps~ 2011-08-12 16:57:19
  • 第一次野队上评级战场,在吉尔尼斯遇到2000+匹配值的工会队,5分钟被占三点直接坑到死……打完散伙……太TM强大了。哎…… 2011-08-12 14:57:59
  • 在accelops的最后一天,也是在上海工作的最后一天,也许是这辈子做程序员工作的最后一天…… 2011-08-12 08:23:14
  • 暴雨啊。 http://fanfou.com/photo/OQlUDncGRu0 2011-08-11 17:01:50
  • 第一次开车上路,穿梭于黑车之中,感觉很奔放…… 2011-08-11 15:40:35
  • EPad root以后从来没有用过需要root的功能,今天又重新去掉root了。等待国行3.2的推送升级~ 2011-08-10 14:58:31
  • 在VBox中安装PC-BSD 9,感觉速度似乎比用VBox安装Linux的慢。 2011-08-10 13:52:04
  • 买了本《咬人画的》,我喜欢这样的画风和内容,留作收藏~ 2011-08-10 12:46:36
  • 几年前用过一段时间FreeBSD,感觉对桌面不太友好,改用Linux。现在想试试PCBSD,不知道会不会好一些? 2011-08-10 10:18:54

Last ID: wfJ-7_G0G6U

新CPU风扇

换了主板之后发现旧CPU风扇不好用了,开机CPU温度就60+,随便跑个程序就80+。只好新买了一个。

不过……从什么时候开始CPU风扇已经这么大了?差不多和半个主板一样大,我得拆了机箱的散热框才能装下……时代变更真是快哎。

不过这东西效果真好,正常状态下CPU只有30度左右,运行WOW也最高只到36。很强力。

饭否归档(2011-07-29~2011-08-09)

Last ID: NqVL7287YaY

G+ host

I know you know it!

203.208.46.29 plus.google.com
203.208.46.29 picasaweb.google.com
203.208.46.29 lh1.ggpht.com
203.208.46.29 lh2.ggpht.com
203.208.46.29 lh3.ggpht.com
203.208.46.29 lh4.ggpht.com
203.208.46.29 lh5.ggpht.com
203.208.46.29 lh6.ggpht.com
203.208.46.29 lh6.googleusercontent.com
203.208.46.29 lh5.googleusercontent.com
203.208.46.29 lh4.googleusercontent.com
203.208.46.29 lh3.googleusercontent.com
203.208.46.29 lh2.googleusercontent.com
203.208.46.29 lh1.googleusercontent.com
203.208.46.29 talkgadget.google.com

203.208.39.22 profiles.google.com
203.208.39.22 webcache.googleusercontent.com
203.208.39.22 mail.google.com
203.208.39.22 www.google.com.hk
203.208.39.22 www.google.com
203.208.39.22 news.google.com
66.249.89.104 code.google.com
74.125.95.113 docs.google.com

203.208.46.29 www.youtube.com
203.208.33.100 gdata.youtube.com
203.208.46.29 s.youtube.com
203.208.46.29 s2.youtube.com
203.208.46.29 s.ytimg.com
203.208.46.29 i4.ytimg.com
203.208.46.29 i3.ytimg.com
203.208.46.29 i2.ytimg.com
203.208.46.29 i1.ytimg.com

饭否归档(2011-07-15~2011-07-29)

Last ID: 8wCQuDbKqgc

HTML5的Canvas学习笔记

大部分内容翻译整理自《HTML5&CSS3 in the real world》(by Alexis Goldstein, Louis Lazaris, and Estelle Weyl, Copyright © 2011 SitePoint Pty. Ltd.)一书中的第11章。

通过JS和canvas,我们现在可以在web上画出很多有趣和有用的东西。这里的内容仅限于Canvas 2D绘图。

按照当前(2011年7月)的情况,支持Canvas 2D绘图的浏览器有:

  • Safari 2.0+
  • Chrome 3.0+
  • Firefox 3.0+
  • Internet Explorer 9.0+
  • Opera 10.0+
  • iOS (Mobile Safari) 1.0+
  • Android 1.0+

canvas和SVG的比较

canvas的特点:

  • 可以进行像素级操作;
  • 一次成型,不可以动态修改。如果要对已有的canvas进行修改,必须重绘;(canvas使用immediate mode)
  • 不能通过DOM模型访问canvas中的内容;
  • 可以将canvas的内容保存成PNG或JPEG文件;

SVG的特点:

  • 可以通过DOM模型访问SVG的内容;(SVG使用retained mode)
  • 目前你可以使用一些工具来生成SVG(例如Raphaël library和Inkscape);
  • 和canvas相比,SVG可被当作是一种文件格式而不是一些列用来绘图的方法;
  • 不可进行像素级操作;

总的来说,如果和Flex相对应,canvas类似于bitmap和bitmapData,用于位图处理;SVG类似于Sharp/Sprite等,用于矢量图处理和事件操作等。

canvas绘图的一般方法

<!DOCTYPE html>
<html lang="en">
	<head>
		<script src="jquery.js"></script>
		<script>
			// 这里我使用jquery的方法让document加载完成之后再执行
			// 也可以直接写在body的onload或类似的方法之内
			$(document).ready(function(){
				draw();
			});

			function draw()
			{
				// 获取canvas及其context
				// 基于webGL的支持,将来可能会有3D的context支持
				// 不过目前浏览器对webGL的支持似乎并不理想
				var canvas = document.getElementById("can");
				var context = canvas.getContext("2d");

				// 绘制颜色填充
				context.strokeStyle = "red"; // 设定填充边框的颜色
				context.fillStyle = "rgba(0, 0, 255, 0.5)"; // RBGA值,red,blue,green,alpha
									// 也可以使用RGB值,即没有alpha
				context.fillRect(10,10,100,100); // 绘制填充,和Flex的rectangle不同,这里的值依次是:x0, y0, x1, y1。后两个值不是width和height。
				context.strokeRect(120,10,100,100); // 绘制边框,同上

				// 绘制过渡填充
				var g = context.createLinearGradient(300, 300, 300, 500); // x0, y0, x1, y1
				// 注意,这里的过渡值设定的范围是按照整个canvas来确定的
				// 而不是针对要绘制的区域。
				// 方法createRadialGradient(x0, y0, r0, x1, y1, r1);可用来绘制放射过渡填充
				g.addColorStop(0, "blue");
				g.addColorStop(1, "red");
				context.fillStyle = g;
				context.fillRect(300, 300, 200, 200);

				// 绘制弧度路径。canvas没有提供绘制圆的方法,用这个绘制弧度的方法来绘制圆。
				context.beginPath();
				// arc用来设定路径属性
				context.arc(50, 50, 30, 0, Math.PI * 2, true); // x, y, radius, startAngle, endAngle, anticlockwise
				context.closePath();
				context.strokeStyle = "red";
				context.fillStyle = "blue";
				context.lineWidth = 3;
				context.fill(); // 用设定的style直接填充path
				context.stroke(); // 同上,直接绘制边框

				// 添加文字
				canvas.style.backgroundColor = "transparent";
				context.fillStyle = "blue";
				context.textAlign = "left";
				context.font = "24px Georgia, Verdana";
				// 后两个参数是文字的起始坐标。
				context.fillText("some words to display", 50, 20);

				// 用图片填充
				var img = new Image();
				img.src = "E2.jpg";
				img.onload = function()
				{
					var p = context.createPattern(img, "repeat");
					context.fillStyle = p;
					context.fillRect(100, 100, 200, 200);
				}
			}
		</script>
		<style>
			#can
			{
				border: dotted 2px black;
			}
		</style>

	</head>

	<body>
		<!-- 创建canvas标签是必须的 -->
		<canvas id="can" width="500" height="500">
			<!--
			这里可以添加一些提示信息
			如果用户的浏览器不支持canvas
			这的文字就将被显示出来以提醒用户
			-->
			not support
		</canvas>
	</body>
</html>

上海记忆

如果时间凑巧,离开上海的日子可能正是6年前到上海的日子。

一。

2005年9月23日,离开武汉,到达上海。

出了虹桥机场,我看到很多人在排队,但是没有找到出租车站(我后来才知道那些人是排队等出租车的,我没想到上海机场出租车常常不够用)。然后走来一个人说:坐车不?我说:到源生路要多少?他说:150。我想,在武汉的时候从学校打车到机场也要130,上海这么大,物价也高,150还是划算的吧,于是我便上车走了。

多年之后,出租车涨价以后,我又坐了一次从虹桥到张江的出租车,才用了140。

从车上下来的时候,我身上只有50块钱了。于是我就这样拖着2个大大的行李箱,揣着50块钱来到上海。

之后我在上海住了四个地方,北洋泾路,昌邑路,乳山路,丹桂路。前三个是租的房子,第一个住了不到半年,之后两个地方各住了一年,然后在张江由父母出资买了个小房子,便一直住到现在。没有住房的压力,算是我这些年在上海过得还算轻松的主要原因之一吧。

二。

为了不让别人看出我是从偏远山区来的土包子,到了上海以后我就买了一身看起来有点正式的工作装,还有手表(当然是找父母要的钱)。不过没买领带,因为不会戴。后来才发现,这样穿着看上去更像是山区来的。

来上海以后投了大约10份简历,很快便约了3个面试。第一个说是招ASP,我只是毕业论文用的ASP,实际上我并不很在行;第二个是做电子地图的,2000/月;第三个是做网络视频聊天的,2500/月。于是我去了第三家。英文名叫TopCMM,中文名叫拓盟,上班地点在徐家汇飞洲国际广场。到上海后的第三天,我便上班了。

我在那里做到2007年3月。BOSS一直还算挺看重我的——至少他是这样说的。薪水也每三个月涨一次,虽然每次都不多,但是算是我在上海涨薪最频繁最快的时期。公司在上海最繁华的地段之一,每天在路上消耗的时间差不多3个小时,除此之外,上海的一切仿佛都很美好。虽然租着房子,吃得廉价,但是觉得前途一片光明。时常想象着在上海落地生根发芽,成为新上海人,完完全全的融入这个繁华而忙碌的城市。

第二家公司叫前程无忧,也叫“51Job”。是一个朋友介绍的,位于张江集电港。在那里我工作了整三年,直到2010年3月。去51Job我是降薪跳槽的,原因有2个。第一,离家近。虽然那时候还没搬到张江,但是公司有班车,加上坐地铁的时间也很短。第二,我特别想去大公司,我很羡慕老婆每天穿着工作服带着门卡去打卡上班的样子,我觉得那才是“真正的白领”。51Job的工作并不算令人失望,我只是觉得长久以来都没有专心的做自己想做的事情。而且公司的领导似乎也挺看重我,但是总有使不上劲的感觉。

第三家公司叫第九城市,也称九城,九村,或9C。我去的时候已经是9C丢了WOW一年之后,那是我到目前为止的短暂职业生涯中唯一一次涉足游戏领域。在那里我只待了5个月。我带着“要做点有趣的产品”的想法去了9C,半年之后我带着对游戏行业的失望离开。中国的游戏充斥着抄袭、低俗、混乱,而那里的一切都显得浮躁和急功近利。而这时候我似乎渐渐明白,我曾经向往的“上海生活”其实并没有那么遥远,而实际上那也并不是我向往的生活。

第四家公司叫腾起,英文名“AccelOps”,是一家由美籍华人和印度人创立的美国公司的国内全资子公司,也就是我现在在的公司。公司挺小,但是有着较为浓厚的技术氛围。这里给我的工作感觉比9C好,至少不那么的低俗。但是公司的薪资偏低福利太差(让我想想,有福利吗?),管理也因为团队的分离两地和经验的不足显得混乱,执行力低下。总的来说,我觉得这里更适合刚工作的人起步,而无法靠其寻求事业上的突破。

算上在武汉工作的天地网络,我一共效力过5家公司。是不是跳槽频繁了一点?

三。

我是做Flex/Flash/ActionScript开发的。在武汉的时候误打误撞进入了这个行业,便一直做到现在。

在TopCMM的时候,国内的Flash/Flex才刚刚兴起,那也是我个人最积极的时期。翻译英文资料,在论坛上给别人解答问题,编写自己的教程,忙得不亦乐乎。还时不时和同行们聚一聚,对行业评头论足,对未来感概万千。

在51Job的时候,我被称为master。此master非彼master,它并没有给我带来更多的东西。这时候的Flex3和ActionScript3出来了。视频,游戏,社交网站,如同雨后春笋般冒了出来,让我异常的兴奋,AS的春天终于要来了!

51Job并没有实现我的所想象的AS的春天,9C依旧没有。而当我到了AccelOps的时候,我已经开始对Flex失望了。效率低,封闭,以及混乱的开发思想,唯利是图的同行,让我终于决定,我不要再做这个东西了!

我不知道将来会去做什么,也许我还会做一些Flash/Flex/AS之类的东西,毕竟我有着自认为非常丰富的经验;也许我会偏向于HTML5/CSS3/JavaScript,那是我较熟悉而更看好的东西;也许我会去写C/Haskell/Lua,那是我向往的语言;也许我会写python/PHP,因为它们用起来太方便了;也许我还会继续关注Apache/MySQL/NoSQL/GTK,这些东西都非常有趣;也许我会成为一个职业的Linux自由软件工程师……也许,更大的可能是不再写程序了……

四。

如果不是阿兜比我提前2个月到上海,我到上海之后也许就只有露宿街头了。

在到上海之前,我和阿兜只能几个月见一次。之后,我们便每天都见面,直到现在。

阿兜不像我,她6年时间只待过一个公司:招商银行信用卡中心。薪水低,福利好,加班多,工作累。她常常埋怨我做事没个准,一天一个主意。阿兜是聪明而文静的,但是偶尔也发脾气,不过总的来说比我好,要不就不会稳在一个公司那么长时间了。

有阿兜伴随在身边是我这些年最大的幸福。

我们在2009年3月7日在长宁区领的证。本来时间可以再提前一点的,但是我之前总想要先去实现我的扯淡的事业和无聊人生理想,现在想起来觉得挺愚蠢的。

五。

08年的时候,我周末在家闲着没事,便报名攻读工程硕士。考试有2次,一次GCT,一次专业数学。GCT考过之后我居然忘记了要考数学,等我想起的时候已经是第二年了。GCT的成绩看起来还算不错,于是我第二年又报名参加专业数学考试,顺利考上2010届上海交大计算机专业的工程硕士。

但是,我想这件事也许算是我在上海做出最愚蠢的决定。耽误了我许多的时间,影响了我太多的决定,但是我依旧没学到什么我觉得有用的东西。

而今我还有1年的时间才毕业。我想最大的收获也就仅仅是这一个没什么分量的学位吧。

(未完,无续)

转让二手家具

家里太乱,转让一些二手家具。上海张江地区。所有产品均需买家自行上门提货,价格好商量。转让信息长期有效。

» 更多内容 …

【转载】程序员文史综合题

附部分个人解体答案。

一,选择题(皆为单选)

1,以下谁是二进制思想的最早提出者?
A,伏羲
B,姬昌
C,莱布尼茨
D,柏拉图

A,伏羲,创造八卦,两极

2,以下哪个概念和公孙龙的《指物论》中的“指”字含义相近?
A,变量
B,数组
C,对象
D,指针

D,指针。含义,意图的意思。

3,蔺相如,司马相如;魏无忌,长孙无忌。下列哪一组对应关系与此类似?
A,PHP,Python
B,JSP,servlet
C,java,javascript
D,C,C++

C,都有“java”,却没有任何关系。

4,秦始皇吞并六国采用了以下哪种算法思想?
A,递归
B,分治
C,迭代
D,模拟

B,分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。

5,雅典王子忒修斯勇闯克里特岛斩杀米诺牛的时候采用了以下哪种算法?
A,动态规划
B,穷举
C,记忆化搜索
D,Dijkstra算法

C。
……忒修斯一进入迷宫,就将线球的一端拴在迷宫的入口处,然后放开线团,沿着曲折复杂的通道,向迷宫深处走去。最后,他终于找到了怪物米诺牛。他抓住米诺牛的角,用阿里阿德涅公主给的剑,奋力杀死米诺牛。然后,他带着童男童女,顺着线路走出了迷宫。
记忆化算法在求解的时候还是按着自顶向下的顺序,但是每求解一个状态,就将它的解保存下来,以后再次遇到这个状态的时候,就不必重新求解了。

6,印度电影《宝莱坞机器人之恋》中的机器人七弟采用的智能算法最有可能是以下哪一种?
A,神经网络
B,遗传算法
C,模拟退火
D,穷举算法

A,猜的。

7,《公孙龙子》记载:“齐王之谓尹文曰:‘寡人甚好士,以齐国无士,何也?’尹文曰:‘愿闻大王之所谓士者。’齐王无以应。”这说明了齐王:
A,昏庸无道
B,是个结巴
C,不会下定义
D,不会定义自己的需求

D,……写过程序的都知道……

8,惠施曾提出过“卵有毛”的命题,以下哪一项是导致这个错误命题的原因:
A,混淆了命名空间
B,引入了错误的包
C,衍生类未重载
D,调用了危险的指针

C。“卵有毛”以惠施的“合同异”观点立论。但是这这里明显是说“卵他妈有毛”,但是“卵不应该有毛”。即衍生未重载。

9,下面哪种面向对象的方法可以让你变得富有?
A,继承
B,封装
C,多态
D,抽象

A……

10,明朝时期张居正改革的一条鞭法的主要思想是:
A,面向过程
B,万物皆数
C,统一接口
D,泛型编程

C。一条鞭法内容主要为赋役合并,差役合并,田赋征银,官收官解。类似于统一标准。

二、匹配题(分析A中的句子所体现的算法,和B中的算法一一匹配)

A:
1,江南可采莲,莲叶何田田,鱼戏莲叶间。鱼戏莲叶东,鱼戏莲叶西,鱼戏莲叶南,鱼戏莲叶北。——汉乐府《江南》(穷举)
2,众里寻他千百度,蓦然回首,那人却在灯火阑珊处。——辛弃疾《青玉案》(回溯)
3,从前有座山,山里有座庙,庙里有个老和尚,再给小和尚讲故事,故事内容是:从前有座山,山里有座庙,庙里有个老和尚,再给小和尚讲故事,故事内容是:从前有座山,山里有座庙,庙里有个老和尚,再给小和尚讲故事,故事内容是……(递归)
4,只劝楼台追后主,不愁弓矢下残唐。——孔尚任《桃花扇》(贪心)
5,飞鸟之影,未尝动也。——《庄子》(分治)

B:
1,贪心;
2,回溯;
3,穷举;
4,分治;
5,递归;

三、阅读理解(阅读下文,回答后面的问题)

美国的贝尔实验室设计了最初的C语言;
刻在UNIX操作系统距今已有三四十年;
你在屏幕前凝视数据的缱绻;
我却在旁轻轻敲打键盘,把你的梦想展现。
循环 递归 贪心 动规 是谁的从前,
喜欢在匈牙利算法中你我牵手的画面,
经过MSRA门前,我以大牛之名许愿。
思念像斐波那契数列般漫延,
当软工沦落在设计的文档间,算法依旧是永垂不朽的诗篇。
我给你的爱写在程序间,深藏在最长不下降子序列里面,
几万组数据流过后发现我的心依然不变。
我给你的爱写在程序间,深藏在最长不下降子序列里面,
用无尽的代码刻下了永远。
那已保存千年的誓言一切又重演,
我算了很多遍,时间复杂度还是趋于无限,
我只想要这样永远链接在你的身边。

1,题目中的MSRA是什么的缩写?

Microsoft Research Asia,微软亚洲研究院。

2,试赏析“思念像斐波那契数列般漫延”一句。

斐波那契数列一个自然数数列,数列从第三项开始,每一项都等于前两项之和。
通项公式为:
令:x = sqr(5),则:a[n] = (1/x)*(((1+x)/2)^n-((1-x)/2)^n)
这样一个完全是自然数的数列,通项公式居然是用无理数来表达的。而且当n无穷大时a[n]-1/a[n]越来越逼近黄金分割数0.618。

3,请结合时代背景,谈谈你对“当软工沦落在设计的文档间,算法依旧是永垂不朽的诗篇”一句的理解。
4,“几万组数据流过后发现,我的心依然不变”一句体现了算法的什么特性?
5,就“喜欢在匈牙利算法中你我牵手的画面”一句,谈谈你对匈牙利算法的理解。

选择

有时候会想,如果08年换新电脑的时候我买的是iMac而不是自己组装了一台机器,我今天的生活是不是会不一样。也许那样我便会继续用Apple的产品,追随着iPhone,iPad的出现,热衷于Flex/Flash的Mac开发,沉迷于小鸟、僵尸这样的游戏,然后继续在这样的职位和事业上探索和追求,也许今天还能在智能移动平台开发和webgame上小有成就。但是现在完全不是这个样子。Apple的产品的确是不错的。但是有太多没有品位没有思想没有主见的人,为了显得自己是有品位有思想有主见的人而疯狂的无知的迷恋Apple的产品,并因此而盲目自大且嘲笑周围一切非Apple用户,我不想因为使用一种可被代替的商业产品而和这样的人为伍,因此我选择了拒绝Apple。

我很庆幸当初的选择,虽然我没有想到当初的选择对如今的影响。但是如今的选择又会如何呢?