伟 的个人资料乾城梦幻照片日志列表 工具 帮助

日志


11月21日

巨无霸指数2009

巨无霸指数

维基百科,自由的百科全书

澳洲買到的麥當勞巨无霸

巨无霸指数(Big Mac index)是一個非正式的經濟指數,用以測量兩種貨幣匯率理論上是否合理。這種測量方法假定購買力平價理論成立。

購買力平價的大前提為兩種貨幣的匯率會自然調整至一水平,使一籃子貨物在該兩種貨幣的售價相同(一价定律)。在巨無霸指數,該一「籃子」貨品就是一個在麥當勞連鎖快餐店裡售賣的巨無霸。選擇巨無霸的原因是,巨無霸在多個國家均有供應,而它在各地的製作規格相同,由當地麥當勞的經銷商負責為材料議價。這些因素使該指數能有意義地比較各國貨幣。

兩國的巨無霸的購買力平價匯率的計算法,是以一個國家的巨無霸以當地貨幣的價格,除以另一個國家的巨無霸以當地貨幣的價格。該商數用來跟實際的匯率比較;要是商數比匯率為低,就表示第一國貨幣的匯價被低估了(根據購買力平價理論);相反,要是商數比匯率為高,則第一國貨幣的匯價被高估了。

舉例而言,假設一個巨無霸在美國的售價為 $2.50,在英國的售價為 £2.00;購買力平價匯率就是 2.50 ÷ 2.00 = 1.25。要是一美元能買入 £0.55(或 £1 = $1.82),則表示以兩國巨無霸的售價而言,英鎊美元匯價被高估了 45.6%((1.81-1.25)÷1.25×%)。

巨無霸指數是由經濟學人1986年9月推出,此後該報每年出版一次新的指數。該指數在英語國家裡衍生了Burgernomics(漢堡包經濟)一詞。

在2004年1月,《經濟學人》推出了Tall Latte index(中杯鲜奶咖啡指數);計算原理一樣,但巨無霸被一杯星巴克咖啡取代,標誌著該連鎖店的全球擴展。在1997年,該報也出版了一份「可口可樂地圖」,显示每個國家的人均可樂飲用量与平均健康之间的反比关系。

用漢堡包測量購買力平價是有其限制的;比方說,當地稅收、商業競爭力及汉堡包材料的進口稅可能無法代表該國的整體經濟狀況。在许多国家,像在麦当劳这样的国际快餐店进餐要比在当地餐馆贵,而且不同国家对巨无霸的需求也不一样。例如在美国,低收入的家庭可能会一周几次在麦当劳进餐,但在马来西亚,低收入者可能从来就不会去吃巨无霸。儘管如此,巨無霸指數廣為經濟學家引述。

巨无霸指数2009

image

11月14日

微软家的硬件们(2) -- 键盘篇

微软家的键盘, 公平来说, 手感上明显超出罗技家一筹. 特别是在Office Depot中逐个对比一遍之后, 对这种印象就更加确信. 但微软家的键盘种类不多. 我喜欢的只有人体工学4000一种, 廉价而顺手, 难得的逸品.

1. 微软人体工学4000键盘

image

说成完美有些夸张. 基本是完全不能用来玩游戏的. 玩游戏需要左手操键盘, 右手控鼠标, 但该键盘的体积惊人, 跨度也惊人, 不是姚明那么大的手掌, 想只手乾坤只能是白日梦一场.

该键盘长宽高都超过一般键盘良多. 目前为止尚未见到能容纳该键盘的键盘盒, 所以一般要放到桌面上.

做工是很好的, 不是一流水准, 但也是二流偏上. 一流水准的做工那是微软无线激光8000键鼠套装. 手感偏软, 键程很长, 敲击的感觉一般. 但也是中等偏上的. 整个键盘中唯一的例外是空格键, 至少有一个批次的键盘的空格键非常硬. 恐怕其下不是橡胶粒而是弹簧.  键区下面是个很大的腕垫, 材质较有弹性. 四季使用皆宜.

功能键是非常丰富的. 音量, 计算器, Favorite 还有上网用的放大缩小前进后退. 能用30美元以下的价格买到是非常超值的.

另外人体工学7000键鼠套装的键盘也是这个形制, 只不过是无线的而已. 和鼠标共享同一个发射器.

2. 微软舒适曲线2000

image

这个键盘经常能用10美元的价格买下来. 如此还是比较超值的. 其键程超短, 是笔记本键盘型的. 也有微软家键盘的通病, 那就是软. 但手感不差. 一些附加功能键虽然比不上人工4000那么华丽, 也差以足用. 性价比是很好的.

3. 微软无线娱乐桌面8000键鼠套装

image

别的不说, 这个套装的价格足以唬人: 300美元. 想想已经够买一个上网本了.

整个键盘采用了很多金属材质, 因而尽管看起来苗条瘦小, 但体重达到了734克. 在手中冷冰冰沉甸甸的. 上面很多区域会发出蓝色荧光. 在较暗的环境下会现出一种幽娴的气质.

它同样是笔记本键程, 手感冰冷清脆. 但没有数字键盘区. 使用起来和笔记本的键盘区别就不大了. 反正没有数字键盘区的我是不会考虑的.

11月13日

微软家的硬件们(1) -- 鼠标

由于工作关系, 深入敌后, 所以经常能见到各种微软软硬件. 软件自不待言, 在中国过去各种软件一律只要5人民币, 现在下载更是只要网费和电费即可. 大家也没有什么神秘感. 硬件则使用人群较小. 特举二三例以广声色见闻.

微软家的鼠标

微软家的鼠标有几大系列, 像光学系列, 人工系列, 无线系列等等. 其实这些系列之间的分类很差, 没有什么特殊规律可循. 这些代工产品的质量不一, 平均来说质量一般. 但是在中国境内销售的微软鼠标都是三年质保, 有的甚至5年, 因而其质量便不再是个大问题了.

只说几个比较有特色的:

1. 诡异: 微软探险家轨迹球

DSC07166

这个像外太空生物的东西在2001年面世. 现已不幸下岗. 下岗后身价倍涨, 在Amazon上居然涨到了599美元. 手感一流, 外观拉风, 你这辈子很难见到比这个更古怪的设计了.

据说是设计人员的最爱, 游戏玩家看一眼就会对它嗤之以鼻.

这个家伙有个兄弟, 外观低俗了很多, 罗技家也有类似的产品:

image

2. 帅气: 微软Arc鼠标

image

这个小东西诞生之初是比较惊艳的. 折叠设计使得它可以轻松放入裤袋. 发射器也很小. 因为对地接触面积小, 运行起来相当顺滑轻松. 但是因此定位感下降, 正是利弊相生. 手感相当一般, 由其材质和形状就能看出来. 爱漂亮的女孩子可以考虑买一个, 整天到处开会的人也可以考虑. 目前的建议零售价是50美元.

3. 温柔: 微软人体工学6000鼠标

image

毫不夸张地说, 这是我用过的手感最好的鼠标. 圆圆的外形比较像龙猫(南美栗鼠). 握在手里贴合手心, 贴大拇指的地方有一块橡胶, 增加摩擦力和手感. 四向滚轮就是标配.

这款鼠标在微软内部也是最受欢迎的鼠标. 随处可见.

唯一的缺点是, 它的发射器太大了...... (人体工学7000键鼠套装的发射器似乎是小号的, 用的时间太短已经记不得了.)

4. 平民: 微软IE 4 鼠标

image 

全面中庸, 但没什么缺点. 有人工设计, 四向滚轮, 自定义功能键. 可以玩游戏用.  而且很便宜. 有个无线版的价钱相当. 但是无线的一般来说定位没有有线鼠标好. 全看个人取舍.

5. 贵族: SideWinder X8

image

这个玩意儿现在通常要卖七八十美元. 外观很后现代, 其腹面也是经过设计的. 而且还有一丁点的人工设计, 其背面其实是左边高右边低. 侧面有自定义按键. 手感还算不错. 本人不玩游戏, 这个鼠标除了设计特殊之外, 对我没有丝毫的吸引力. 目前这是微软在售系列中最贵的鼠标.

11月12日

大爱: 微软轨迹球鼠标~~~

微软家的停产产品之一. 原价大概在40美元左右. 现在eBay和Amazon上的二手货在200美元上下, 全新库存货的报价是$599. 寒.... 但它在世的时候, 中关村售价在400人民币左右. 总之, 这是款非常有个性的小众产品. 停产是得其所哉.

长的模样么, 给我的个人印象非常像蛞蝓, 也就是鼻涕虫啦, 怎么看都是软趴趴有点恶心的样子. 说成是外星生物也可. 该鼠标体积惊人, 长度在18厘米左右, 宽度也超过11厘米, 最高5厘米. 手小的人是无法使用的.

. DSC07166

这张是最帅的一面. 轨迹球比乒乓球略大.

DSC07165

这张也比较帅. 滚轮和普通鼠标的滚轮无异, 滚轮下面是左键, 上面是右键. 这三者只能用右手大拇指来控制. 大拇指的工作压力有点大.

DSC07164

这张就很猥琐了. 轨迹球右边两个键是自定义键, 如果没有正式驱动安装的话, 那么默认将是后退/前进键.

DSC07167

使用上, 拇指同时控制左右键有点吃力, 特别是在按住左键拖动的时候, 感觉会有点小痛苦.

其在ebay和Amazon上今日的火爆, 除了其怪异/卓绝的外观设计外, 另一个主要原因恐怕就是健康. 显然这个鼻涕虫是静静趴在桌面上的, 即便你抓起它甩来甩去, 光标也没法移动. 它不会消耗你的手腕, 这非常显而易见. 但另一个问题是, 它非常消耗你的手指, 尤其是大拇指. 因为人类的大拇指没那么灵活......

这款产品还有个后继版, 把轨迹球放到左边, 所有按键放到右边, 改为大拇指控球, 食指中指等按键. 近于常规鼠标. 窃以为其设计更合理一些. 但是售价上并没有这个大玩意儿高. 或许是相对平淡的外形所误吧.

10月6日

全球最宜居国家:挪威 (From煎蛋)

 

全球最宜居国家:挪威 | Jandan.net

这是联合国发展项目队182个国家排名的结果,排名的标准包括人口寿命、教育程度、人均GDP等等。前三名是挪威、澳大利亚和冰岛,尼泊尔垫底,倒数第二是阿富汗。

中国在榜单上进步最多,跃升7位上升到第92名,根据分析这次上升的原因主要是人口寿命的增长以及教育的增强。另外哥伦比亚和秘鲁也都上升了5位,而法国去年还游离于top 10 之外,今年上升到第八。

前20名的国家是:

1 挪威
2 澳大利亚
3 冰岛
4 加拿大
5 爱尔兰
6 荷兰
7 瑞典
8 法国
9 瑞士
10 日本
11 卢森堡
12 芬兰
13 美国
14 奥地利
15 西班牙
16 丹麦
17 比利时
18 意大利
19 列支敦士登
20 新西兰

# 这是以2007年的数据为主的,所以没有考虑到经济危机的影响
另外,第21位是英国,所以英国每日电信的新闻上给出的是Top 21 的名单,很有喜感 :)

-------------------------

靳:尼泊尔也是某些人心目中的圣地, 但是在他们发现没有抽水马桶之后, 其吸引力就一路狂降. 对于绝大多数宣称对西藏尼泊尔及黑非洲怀有极大热情的人来说, 我们中国有个很好的成语留给他们: 叶公好龙

10月4日

用户不需要精准广告

from 煎蛋 by oioi用户不需要精准广告 | Jandan.net
一个来自哆嗦大学的联合调查结果显示:66%的美国用户根本就不关心所谓的网络精准广告。当被问及是否允许广告商以跟踪用户网络行为的方式来确定精准投放时,86%的被调查者表示 No 绝不。

同时,35%的人也表示这类‘伤天害理’的广告公司明显侵犯了个人隐私相关法律,18%的人表示这些公司应该受到惩罚。

几乎所有的统计数据表明,用户更加在意自己的隐私而不是乱七八糟的广告。

# 该调查由加州大学Berkeley 分校、滨州大学Annenberg 分校联合执行。不过他们只访问了1000名用户。来源itworld

9月18日

在 Chrome 浏览器里玩 NES 模拟器(ZZ)

nes-chrome

这是可以证明Chrome强大之处的最佳方法了,用Chrome打开JSNES,你可以直接在浏览器里选择各种NES模拟器来玩,全是童年的经典(包括吃豆人、俄罗斯方块、超级马里奥、网球、魂斗罗、超级马里奥3、塞尔达2、大金刚等等),理论上任何NES模拟器都可以读取,如果能允许用户自己选择硬盘里的NES模拟器来玩就更爽了。

JSNES是利用 JavaScript和Canvas建立的,尽管其它浏览器也支持(比如FireFox),但几乎没有可玩性,因为速度糟糕到只有12fps左右,而 Chrome可以轻而易举的达到60fps以上。Chrome告诉FireFox,“支持”是一方面,“性能”又是另一方面。

谁说未来的Chrome OS不能玩游戏?你的浏览器=你的游戏平台,恩,就是这样了。

Via Google Blogoscoped

8月26日

波斯帝国的'鸦片战争' 1

 

一点说明, 这不是历史. 事实上我拒绝承认历史的存在. 即便其存在, 那也只不过是空虚的盒子, 等待人们向其中安置糖果; 或者是色彩, 等待着被涂抹在画布上形成图案. 这是我庸庸碌碌的文学理想的一部分, 它是否真实, 并不是我负责的部分, 它也不是我的故事. 它属于历代先贤, 例如普鲁斯特和卡夫卡, 他们淡淡的幽影经历了时空的变换而并不为消散, 透过我的眼睛, 我的喉咙, 控制了我的指尖, 驱使有着暗香的墨水在纸面上洇化蔓延. 这世世代代游走在眼睛喉咙指尖墨水纸张心灵间的欲望, 本身就是一切文学的主题. 

根据某些人的记述, 他们宣称在公元1800年前后发生了一系列事件. 但问题是, 尊奉教皇敕令的狄奥尼修斯通过计算, 认定600多年前的某一天耶稣降生, 谁能保证他计算得正确? 他的计算耶稣出生于罗马建城754年, 但谁又能保证李维的<建城以来史>准确无误? 我们只能将错就错, 大致认为, 地球在绕行太阳200余周之前, 大概发生了某些事件.

我们中国人, 根据至今为之骄傲不已的历史传统, 宣称那是嘉庆九年. 即便如此, 关心这一年的中国人也的确寥寥. 嘉庆九年, 从即位之初就开始让仁宗皇帝头疼不已的白莲教起义已经基本被剿灭. 但大清朝的日头从此偏离了天穹的最高点. 不过仁宗皇帝还是写下了'舒卷枢机归掌握, 坚持大柄易炎凉'的诗句. 我很难猜测他真正的想法, 就像很难猜测这样一位庸碌君主, 为什么配的上'仁宗'这样的庙号.

三十年后, 千年帝国的麻烦才会真正降临.

我所好奇的, 正是两个老大帝国在相近的时代遇到了相近的麻烦. 还是那样, 历史总会出现两次, 一次是正剧, 另一次则是闹剧. 

嘉庆九年, 中国古老史书上的安息帝国, 已经经历了两千年来的风云变换, 经历了阿拉伯人, 突厥人和蒙古人的统治, 至此, 已经是土库曼人建立的恺加王朝了. 但相比不幸的大流士三世更加不幸, 帝国尽管看起来如日中天, 可衰败的种子在帝国诞生之初就已经埋下. 好吧, 既然我们的视线已经凌驾伊朗高原上的大麦, 挂毯和描金的细密画之上, 那么我们就不妨把视野再扩展一些, 并且想象着地球再倒转几十周, 到一个叫不列颠的小岛上, 看看乾隆朝中发生了什么.

乾隆三十年以降, 不列颠人开始了一场很小范围的技术革新, 后来这些革新在<专利法>的刺激之下, 勃然而兴, 便是人常道及的: 工业革命.
如果把视角再调整一下, 乾隆五十四年, 一群城市贫民抬枪曳炮, 开始了巴黎这个城圈子里的大革命. 一个科西嘉小个子籍由此脱颖而出. 再过几年, 其将荣登大宝, 继承不朽罗马的皇帝名号.

8月11日

Windows Live Writer 测试

一切服从的现象,根源都在与恐惧,不论我们所服从的领袖时人还是神 ...... 在危急的关头,例如在失火的时候,最顽劣的儿童也会完全服从一个有能力的成年人的命令。大战爆发时,潘克赫斯特派和劳埃德-乔治达成了和解。在任何存在深刻危机的时候,大多数人的迫切愿望就是找出一个权威人士而向他服从。在这样的时候,很少人会想到革命。当战争爆发的时候,人民对政府也怀有和这类似的感情。

--罗素<权利论>

故而, 在内部矛盾激化的时候, 政府最惯常的行为就是恐吓民众: 如果你们不服从, 你们就会过得更糟. 外面有各种对我们领土虎视眈眈的国家, 内部有各种独立势力. 他们全都比现政府更糟糕.

真的会比现政府更糟糕吗?

V8

3月18日

近日书单

《科耶夫的新拉丁帝国》
《文化研究概论》
《文化研究导论》

为什么要买后两本我已经记不得了……
___
Sent with Mobile


12月17日

再度起飞

12月17日。天气清冽。

我现在坐在北京国际机场的候机室内,等着空中小姐们用甜美的嗓音宣布:现在开始登机,各位请排队……

这是2008年中第三次去美国工作。回想一下,今年在北京的时间好像不足5个月。随着公司人员的变化,等我再次回到北京的办公室,会不会也在困倦中叹出一句物是人非?

08年即将过去,发生了太多事,我不知道是该记住还是忘却。或许忘却会好一点。
___


Sent by Mobile

12月5日

论美国的平等

一:
波尔教授这本书对于美国社会核心价值观之一的平等的在200年中不断演进的内涵和相关的社会风貌进行了分析和描述。平等作为当今人类最伟大的价值观,其诞生和演进都不是那么尽善尽美和轻松的。
从柏拉图开始,一个等级社会的理念就在反复勾画中; 而与此同时,平等的理念也渐渐萌芽。但文化的传播逐渐被上层阶级垄断,而上层阶级通常对平等精神持有一种嘲讽的态度,因而上层阶级利用各种理论来证明人与人持有权利的不同,这包括神赋论,进化论,骨相学,地缘说,甚至智商测定。而平等,作为一种仅仅存在于理智之中的理想,其道路往往一波三折。
人类从现实社会提取的模型都是建立在不平等的现实万象之上的,但是平等的概念却能在近世绽出花蕾,其功乃在于平等是人类的天性--没有人会希望自己处于被歧视的阶层,而广泛博弈的结果就是平等。
但是建立平等的历程远比'广泛博弈'四个字要漫长而艰辛地多。相对的,等级制观念在更多的地方-例如东北亚-仍然保有巨大优势。或许'经济独立乃自由之基础'现在听起来是老生长谈,但在东北亚地区仍然有大量的人群在实际操作层面上没有私有财产,也没有保护私有财产的法律,甚至人们都不尊重法律--上层阶级玩弄法律,而下层阶级嘲笑法律。没有私有财产,经济独立便无从谈起。有的只是上层阶级的飞扬跋扈,和下层阶级蝼蚁般匍匐在地。
……待续……
___


12月4日

近日读书小记

首先,这篇日志是用手机发email的方式发布的。还真是曲折……

近来事务烦劳较多,周末去了两次潘家园,拎回来一大堆东西; 周日去参加聚会,又扮了次主持人。不过见到失重MM感觉还是蛮开心。纪念品也还不错啦,上面的Logo是我们的人设计的。

最近读书有《国学拾遗》(林语堂),所述不多,小册子的水准。可以不看。远不及《春秋大义》(熊逸)。《巴别塔之犬》也阅毕,无特别好处,里面的狗狗只是个副线使用的道具,主线又因为女主人公的神经不正常而变得牵强。这种双线结构或者所谓的复调结构现在已经过于常见而使我丧失了阅读快感。

《植物的欲望》也基本读毕。此书考证颇多,引用甚详,文笔亦有可观。对于植物有兴趣的人可一读。

《看不懂的中国经济》这本书似乎可以套入《思想背后的利益》(陆建德),其观点一如资本家利益体和官僚及其寄生利益体的宣传喉舌。

《Zen of Palm》, 主要为了吸取一些产品设计的思路和教益。据说这是Palm巅峰时代的设计圭皋,也是其僵化败亡的开始。Palm的设计在几年前还可以说引领时代,但现在来看只能说是死不足惜。

《代码之美》买来基本还没看……估计也不是很容易看懂了……



12月3日

测试

测试邮件发日志……

5月25日

女人最喜欢问的问题的标准答案(ZT)


问题一:你爱我吗?

错误答案A:“爱。”

错误答案B:“这还用问吗?”

错误答案C:“你烦不烦啊?

标准答案:目光怜爱的望着对方三秒,然后神情的点一下头,同时发出“嗯”的声音,然后一把把她揽在怀里......

解析:答案A会让她觉得你太不严肃了,纯粹胡弄她;答案B会让她觉得你对她的爱不够坚定,而且她一定会喋喋不休的问到底,让你给她明确的答案,够你烦的;答案C过后一定是一顿大架或冷战。其实女人对男人是不是爱她这件事儿心里特有数,她这么问纯粹就是撒娇调情,你抱抱她亲亲她比回答什么都让她高兴。

问题二:你看我这件衣服好看吗?(衣服也可以换成新剪的头发、新修的指甲等。)

错误答案A:“挺好看的。”

错误答案B:“还行。”

错误答案C:“真好看,我老婆穿什么都好看。”

标准答案:“来来来,转一圈让我看看......”待她害羞的转完一圈后,把她拉过来,拉着她的手微笑的看着他说:“真挺好看的。”

解析:答案A会让她觉得你应付她;答案B会让她觉得没自信,在她心里她穿什么你都应该觉得好;可是如果真说好看,像答案C一样她又会觉得你花言巧语不真诚。所以啊,你要表示出对她提的这个问题的认真程度,必须要仔细的看看再说。

问题三:在她把她的闺蜜介绍给你认识之后,回到家她问:“你觉得我这朋友怎么样啊?”

错误答案A:“挺漂亮的。”

错误答案B:“不怎么样,比你差远了。”

错误答案C:“我都没怎么注意她。”

标准答案:“我觉得她对你挺真诚的,应该好好珍惜这样的朋友。”如果那闺蜜确实人品不怎么样,你就说:“你呀,就是傻孩子一个,交友要慎重,以后交朋友一定要让我见见,我给你把把关。”

解析:答案A纯粹是没事儿找抽型的,女人是绝不能允许你在她面前说别的女人好的(当然,母亲除外。);答案B听着就太假了;答案C你一定觉得回答得挺高明的吧,她压根儿就不会信,而且她会展开想像分析你为什么不愿意对她的朋友进行评价。所以,要避开问题,转个弯儿回答,让她觉得你一切都是为她着想,连见她的朋友都是为她把关,她会有被呵护照顾的感觉。


问题四:你觉得我胖了吗?

错误答案A:“没胖。”

错误答案B:“好像是胖了。”

错误答案C:“呦,是不是最近太累啊,怎么都瘦成这样了?”

标准答案:“过来让我抱抱”,等抱过之后你再说:“我就喜欢你这样的,有点肉的,摸着舒服。”

解析:答案A回答得太干脆了吧,她听着不过瘾。答案B纯属找骂,女孩子怎么能喜欢听别人说她胖呢?即使你再三强调你喜欢胖的,她还会不高兴;答案C听着都那么虚伪,现在的女人哪那么好蒙啊。其实,在女人的心里,她还是希望男人不在乎她的胖瘦,虽然嘴上说为了你减肥,其实是为了自己更漂亮,能穿更多好看的衣服。所以你用肢体语言表示出你喜欢她有点儿肉就可以了。


问题五:我和你前女友比起来,你更喜欢哪一个?

错误答案A:“废话,当然是你了,要不然干吗跟你在一起。”

错误答案B:“嗯,怎么说呢,如果让我说实话,各有千秋吧。”

错误答案C:“她比你差远了。”

标准答案:狠狠的咬她一口或亲她一下或捏她的小脸蛋,等到她撒娇的嗷嗷叫的时候你就说:“下次再问这种无聊的问题,还得这么惩罚你。”

解析:答案A也太生硬直接了吧,她接下来就会问:“那你以后碰见比我好的是不是也得把我踹了啊?”答案B您就等着分手吧,忒实在了也。答案C听上去还不错,但你这不是抽自己嘴巴嘛,你说自己前女友不好会让女人很得意而降低了你自己的身价。其实在女人心里,她特别希望你的前女友是个特别优秀的女人,而偏偏是你不愿意跟她好了,这样女人心里会有成就感的。可是你又不能直接说前女友有多好,所以就用她喜欢的方式来回避问题吧(至于她是喜欢你捏她的脸蛋儿还是咬她一口我们就不知道了)。


问题六:如果我和你妈妈同时掉进水里,你会救哪一个?

错误答案A:“你有聊无聊啊?”

错误答案B:“一块儿救。”

错误答案C:“宝贝儿,别难为我,再说这种情况也不会发生的。”

标准答案:1“哦,我没告诉你吧,我妈是游泳健将。” 标准答案:2“走,咱现在去买泳衣,我教你游泳去。”

解析:虽说问这个问题确实很无聊但你也不能像答案A那样,这会引来喋喋不休的争吵;答案B她一定会不甘心的追问下去,你不想清静清静吗?答案C听上去还不错,但还是很牵强。不如就幽默一回,别让她一天到晚的老杞人忧天没事儿找事儿了。


问题七:如果我老了难看了你还会爱我吗?

错误答案A:“不可能,你老了也好看。”

错误答案B:“女人不同的年龄段有不同年龄段的魅力......”

错误答案C:“没事儿,你老了我也好不到哪儿去,咱俩谁也别嫌弃谁。”

标准答案:“我巴不得你难看点儿老点儿呢,这样放在家里多放心啊。”

解析:答案A她听着也高兴,但心里知道这是绝对不可能的;答案B就赶紧打住吧,唐僧来了;答案C不就说她老了肯定不好看了嘛,她怎么能接受呢?所以啊,最聪明的答案就是既让她打消顾虑又让她知道你特别在意她特别怕失去她。
5月7日

最近书单

商品清单

  商品名称 市场价 当当价 黄金VIP 发货数量 小计  
 
完全傻瓜系列:魔术(随书赠送魔术扑克)
¥20.00 ¥16.60 ¥16.10 1 ¥16.10  
 
罗兰.巴特---明室
¥18.00 ¥12.40 ¥12.03 1 ¥12.03  
 
建筑十书
¥25.00 ¥20.40 ¥19.79 1 ¥19.79  
 
中国历代政治得失——钱穆作品系列
¥16.00 ¥12.00 ¥11.64 1 ¥11.64  
 
香料传奇:一部由诱惑衍生的历史
¥31.80 ¥23.20 ¥22.50 1 ¥22.50  
 
论摄影
¥22.00 ¥16.20 ---- 1 ¥16.20  
 
追忆似水年华之前:普鲁斯特之夏
¥12.00 ¥10.30 ¥9.99 1 ¥9.99  
 

再来一批:)

  商品名称 市场价 当当价 黄金VIP 订购数量 小计  
 
塞耳彭自然史
¥29.80 ¥22.40 ¥21.73 1 ¥21.73  
 
植物的欲望——世纪人文系列丛书
¥28.00 ¥22.40 ¥21.73 1 ¥21.73  
 
树:全世界500多种树木的彩色图鉴——...
¥49.00 ¥30.60 ¥29.68 1 ¥29.68  
 
猫:全世界250多种猫的彩色图鉴——自...
¥39.00 ¥26.90 ¥26.09 1 ¥26.09  
 
犬与鬼——现代日本的坠落
¥29.80 ¥22.40 ¥21.73 1 ¥21.73  
 
停滞的帝国/两个世界的撞击
¥46.00 ¥34.30 ¥33.27 1 ¥33.27  
 
美国与中国
¥26.00 ¥20.50 ¥19.89 1 ¥19.89  
 
5月5日

After long silence

Speech after long silence; it is right,
All other lovers being estranged or dead,
Unfriendly lamplight hid under its shade,
The curtains drawn upon unfriendly night,
That we descant and yet again descant
Upon the supreme theme of Art and Song:
Bodily decrepitude is wisdom; young
We loved each other and were ignorant.

缄默既久起清讴
孔雀东飞爱亦休
惨淡孤灯影轻敛
抑郁重帷夜绸缪
琢磨宣室虚前席
切磋歌艺第一筹
身老智开始悟彻
青春情浓拙自谋
3月6日

How to debug stored procedure

In SQL Server 2000 -> open query analyzer -> click F4 -> find the SP -> right-click the SP and select debug…

 

In SQL Server2005 -> Open VS 2005 -> View -> Server Explorer -> Connected to your server -> find the SP -> right-click and select ‘Select into Stored Procedure’ …

1月3日

复习基础知识

复习基础知识
Q1: 值类型和引用类型的区别?
A: 简单说, 值类型储存在栈中, 而引用类型储存在堆中.
Q2: Boxing是什么意思?
A: 装箱, 是指将一个值类型隐式或显式地转换成一个object类型, 或者把这个值类型转换
成一个被该值类型应用的接口类型(interface-type). 把一个值类型的值装箱, 就是创建一
个object实例并将这个值复制给这个object, 装箱后的object 对象中的数据位于堆中, 堆中的
地址在栈中.
Q3: 什么是Static Constructor?
A: 静态构造函数是一种类的成员, 它用于实现初始化类时所需的操作. MSDN上有更多用
法, 但是解释细碎, 不得要领.
以下引自MSDN:
静态构造函数具有以下特点:
      静态构造函数既没有访问修饰符, 也没有参数.
      在创建第一个实例或引用任何静态成员之前, 将自动调用静态构造函数来初始化类.
      无法直接调用静态构造函数.
      在程序中, 用户无法控制何时执行静态构造函数.
      静态构造函数的典型用途是:当类使用日志文件时, 将使用这种构造函数向日志文件
中写入项.
      静态构造函数在为非托管代码创建包装类时也很有用, 此时该构造函数可以调用
LoadLibrary 方法.
Q4: 什么是delegate?
A: 委托. C# 中的委托类似于 C 或 C++ 中的函数指针. 委托是面向对象、类型安全的, 并且
是安全的. 委托和接口的类似之处是:它们都允许分隔规范和实现.
Q5: C#的垃圾回收机制
A: C# 中的回收器是分代的垃圾回收器(Gererational Garbage Collector) 它将分配的对象分为
3个类别或代。(可用GC.GetGeneration方法返回任意作为参数的对象当前所处的代)最近
被分配内存的对象被放置于第0代,因为第0代很小,小到足以放进处理器的二级(L2)缓
存,所以它能够提供对对象的快速存取。经过一轮垃圾回收后,仍然保留在第0代中的
对象被移进第1代中,再经过一轮垃圾内存回收后,仍然保留在第1代中的对象则被移进
第2代中,第2 代中包含了生存期较长的对象。
      在C#中值类型是在堆栈中分配内存,它们有自身的生命周期,所以不用对它们进行
管理,会自动分配和释放。而引用类型是在堆中分配内存的。所以它的分配和释放就需
要像回收机制来管理。C#为一个对象分配内存时,托管堆可以立即返回新对象所需的内
存,因为托管堆类似于简单的字节数组,有一个指向第一个可用内存空间的指针,指针
像游标一样向后移动,一段段内存就分配给了正在运行的程序的对象。在不需要太多垃
圾回收的程序小,托管堆性能优于传统的堆。
      当第0代中没有可以分配的有效内存时,就触发了第0代中的一轮垃圾回收,它将删
除那些不再被引用的对象,并将当前正在使用的对象移至第1代。而当第0代垃圾回收后
依然不能请求到充足的内存时,就启动第1代垃圾回收。如果对各代都进行了垃圾回收
后仍没有可用的内存就会引发一个 OutOfMemoryException异常。
   
终结器
          在有些情况下,类可以提供一个终结器在对象被销毁时执行,终结器是一个名
为Finalize的受保护的方法:
1protected void Finalize()
2{
3 base.Finalize();
4  //释放外部资源
5}
6
垃圾回收器使用名为“终止队列”的内部结构跟踪具有 Finalize 方法的对象。每次您的应用
程序创建具有 Finalize 方法的对象时,垃圾回收器都在终止队列中放置一个指向该对象
的项。托管堆中所有需要在垃圾回收器回收其内存之前调用它们的终止代码的对象都在
终止队列中含有项。(实现 Finalize 方法或析构函数对性能可能会有负面影响,因此应
避免不必要地使用它们。用 Finalize 方法回收对象使用的内存需要至少两次垃圾回收。
当垃圾回收器执行回收时,它只回收没有终结器的不可访问对象的内存。这时,它不能
回收具有终结器的不可访问对象。它改为将这些对象的项从终止队列中移除并将它们放
置在标为准备终止的对象列表中。该列表中的项指向托管堆中准备被调用其终止代码的
对象。垃圾回收器为此列表中的对象调用 Finalize 方法,然后,将这些项从列表中移除
。后来的垃圾回收将确定终止的对象确实是垃圾,因为标为准备终止对象的列表中的项
不再指向它们。在后来的垃圾回收中,实际上回收了对象的内存。)
Dispose方法
在不使用终结器时,可以考虑使用Dispose方法,你可以使用这个方法来释放所保存包括
的在托管对象引用在内的任何资源。但使用它时需用GC.SuppressFinalize来告知运行时这
些对象不需要终结。如下所示:
1public void Dispose()
2{
3 object.Dispose();
4dbConnection.Dispose();
5GC.SuppressFinalize(this);  //申明不需要终结
6}
创建并使用了Dispose方法的对象,就需要使用完该对象之后调用这些方法,最好是
在Finally中调用。
  1//以下代码演示来自MSDN
  2// Design pattern for the base class.
  3// By implementing IDisposable, you are announcing that instances
  4// of this type allocate scarce resources.
  5public class BaseResource: IDisposable
  6{
  7   // Pointer to an external unmanaged resource.
  8   private IntPtr handle;
  9   // Other managed resource this class uses.
 10   private Component Components;
 11   // Track whether Dispose has been called.
 12   private bool disposed = false;
 13
 14   // Constructor for the BaseResource object.
 15   public BaseResource()
 16   {
 17      // Insert appropriate constructor code here.
 18   }
 19
 20   // Implement IDisposable.
 21   // Do not make this method virtual.
 22   // A derived class should not be able to override this method.
 23   public void Dispose()
 24   {
 25      Dispose(true);
 26      // Take yourself off the Finalization queue
 27      // to prevent finalization code for this object
 28      // from executing a second time.
 29      GC.SuppressFinalize(this);
 30   }
 31
 32   // Dispose(bool disposing) executes in two distinct scenarios.
 33   // If disposing equals true, the method has been called directly
 34   // or indirectly by a user's code. Managed and unmanaged resources
 35   // can be disposed.
 36   // If disposing equals false, the method has been called by the
 37   // runtime from inside the finalizer and you should not reference
 38   // other objects. Only unmanaged resources can be disposed.
 39   protected virtual void Dispose(bool disposing)
 40   {
 41      // Check to see if Dispose has already been called.
 42      if(!this.disposed)
 43      {
 44         // If disposing equals true, dispose all managed
 45         // and unmanaged resources.
 46         if(disposing)
 47         {
 48            // Dispose managed resources.
 49            Components.Dispose();
 50         }
 51         // Release unmanaged resources. If disposing is false,
 52         // only the following code is executed.
 53         CloseHandle(handle);
 54         handle = IntPtr.Zero;
 55         // Note that this is not thread safe.
 56         // Another thread could start disposing the object
 57         // after the managed resources are disposed,
 58         // but before the disposed flag is set to true.
 59         // If thread safety is necessary, it must be
 60         // implemented by the client.
 61
 62      }
 63      disposed = true;        
 64   }
 65
 66   // Use C# destructor syntax for finalization code.
 67   // This destructor will run only if the Dispose method
 68   // does not get called.
 69   // It gives your base class the opportunity to finalize.
 70   // Do not provide destructors in types derived from this class.
 71   ~BaseResource()     
 72   {
 73      // Do not re-create Dispose clean-up code here.
 74      // Calling Dispose(false) is optimal in terms of
 75      // readability and maintainability.
 76      Dispose(false);
 77   }
 78
 79   // Allow your Dispose method to be called multiple times,
 80   // but throw an exception if the object has been disposed.
 81   // Whenever you do something with this class,
 82   // check to see if it has been disposed.
 83   public void DoSomething()
 84   {
 85      if(this.disposed)
 86      {
 87         throw new ObjectDisposedException();
 88      }
 89   }
 90}
 91
 92// Design pattern for a derived class.
 93// Note that this derived class inherently implements the
 94// IDisposable interface because it is implemented in the base class.
 95public class MyResourceWrapper: BaseResource
 96{
 97   // A managed resource that you add in this derived class.
 98   private ManagedResource addedManaged;
 99   // A native unmanaged resource that you add in this derived class.
100   private NativeResource addedNative;
101   private bool disposed = false;
102
103  // Constructor for this object.
104   public MyResourceWrapper()
105   {
106      // Insert appropriate constructor code here.
107   }
108
109   protected override void Dispose(bool disposing)
110   {
111      if(!this.disposed)
112      {
113         try
114         {
115            if(disposing)
116            {
117               // Release the managed resources you added in
118               // this derived class here.
119               addedManaged.Dispose();        
120            }
121            // Release the native unmanaged resources you added
122            // in this derived class here.
123            CloseHandle(addedNative);
124            this.disposed = true;
125         }
126         finally
127         {
128            // Call Dispose on your base class.
129            base.Dispose(disposing);
130         }
131      }
132   }
133}
134
135// This derived class does not have a Finalize method
136// or a Dispose method without parameters because it inherits
137// them from the base class.
138
System.GC类
 GC类包含了可使用户与垃圾回收机制进行互操作的静态方法,包括发起新一轮垃圾回
收操作的方法。确定某对象当前所在代的方法及当前分配内存空间的方法。
GC.Collect();  //无参时将发起一轮全面的回收。
GC.Collect(i);//(0<=i<=2)对第i代进行垃圾回收。
GetTotalMemory将返因分配于托管堆上的内存空间总量。当参数为True时,在计算之前将
进行一轮全面的垃圾回收。如下所示:
long totalMemory = System.GC.GetTotalMemory(True);
下面是 在.NET Framework 2.0 版中是新增的公共方法:
通知运行库在安排垃圾回收时应考虑分配大量的非托管内
public static void AddMemoryPressure (    long bytesAllocated)  //bytesAllocated
已分配的非托管内存的增量。
返回已经对对象的指定代进行的垃圾回收次数。
public static int CollectionCount (
    int generation
)
通知运行库已释放非托管内存,在安排垃圾回收时不需要再考虑它。
public static void RemoveMemoryPressure (
    long bytesAllocated
)
Q6: ASP.net 中的ViewState是什么?
ViewState是ASP.NET中用来保存WEB控件回传时状态值一种机制, 可以简单想像session的
作用, 后一请求的需要传送上一请求的响应信息, 否则服务器不能正常处理客户端的请求
Q7: MasterPage是什么?
MasterPage其实是一种模板, 它可以让你快速的建立相同页面布局而内部不同的网页, 如
果一个网站有多个MasterPage, 那么新建aspx文件的时候就可以选择需要实现页面布局的
MasterPage. 改动布局时也可减少工作量.
Q8: 如何取一个单项链表的倒数第n个元素? 思路越广泛越好.
最简单的是用栈. 用总长度加计数器也可以.