解决IE6内存泄露的简短办法

使用 try … finally 结构来使对象最终为 null ,以阻止内存泄露。

其中举了个例子:

  1. function createButton() {  
  2.     var obj = document.createElement(“button”);  
  3.     obj.innerHTML = “click me”;  
  4.     obj.onclick = function() {  
  5.         //handle onclick  
  6.     }  
  7.  
  8.     obj.onmouseover = function() {  
  9.         //handle onmouseover  
  10.     }  
  11.     return obj;//return a object which has memory leak problem in IE6  
  12. }  
  13.  
  14. var dButton = document.getElementById(“d1”).appendChild(createButton());  
  15. //skipped…. 

对于 IE6 中,引起内存泄露的原因,可看《Understanding and Solving Internet Explorer Leak Patterns》一文。

上面的例子,应该属于上文中的 “Closures”原因。

121P35M6-0

再看下用 try … finally 的解决方法:

  1. /**  
  2.      * Use the try … finally statement to resolve the memory leak issue  
  3. */ 
  4. function createButton() {  
  5.     var obj = document.createElement(“button”);  
  6.     obj.innerHTML = “click me”;  
  7.     obj.onclick = function() {  
  8.         //handle onclick  
  9.     }  
  10.     obj.onmouseover = function() {  
  11.         //handle onmouseover  
  12.     }  
  13.  
  14.     //this helps to fix the memory leak issue  
  15.     try {  
  16.         return obj;  
  17.     } finally {  
  18.         obj = null;  
  19.     }  
  20. }  
  21.  
  22. var dButton = document.getElementById(“d1”).appendChild(createButton());  
  23. //skipped…. 

可能大家有疑问: finally 是如何解析的呢?

答案是:先执行 try 语句再执行 finally 语句。

例如:

  1. function foo() {  
  2.     var x = 0;  
  3.     try {  
  4.         return print(“call return “ + (++x));  
  5.     } finally {  
  6.         print(“call finally “ + (++x));  
  7.     }  
  8. }  
  9.  
  10. print(‘before’);  
  11. print(foo());  
  12. print(‘after’); 

 返回的结果为:
print » before
print » call return 1
print » call finally 2
print » true
print » after

更多详细的演示:
《Finally, the alternative fix for IE6’s memory leak is available》

相关的一些讨论:
《Is “finally” the answer to all IE6 memory leak issues?》

旅行箱自动跟随主人行走 (hop! )

采用蓝牙技术的新奇电子产品着实不少,今天为大家介绍的是一款名为“hop!”的旅行箱。这是一款由西班牙学生设计出的作品,它采用蓝牙技术,可以自动跟随主人行走,看起来就像是一只乖巧的宠物狗。虽然它在行走时身手还有点笨拙,但样子颇为卖萌,有了它就不用担心没有回头率了。

这个箱子的设计者在设计之初,考虑到出门在外时往往需要空出手来拿手机,或者拿各种袋子,非常不方便,于是灵机一动设计出一个智能旅行箱,如此一来就可以空出手来拿更多东西了。下面先通过视频来生动形象地了解一下这款产品:

设计者将3个蓝牙信号传感器安装在一个特制的旅行箱里面,它们通过蓝牙信号与主人的智能手机匹配,获取智能手机所在的角度和方位,然后通过一个微型处理器计算出主人当前所在位置,并一直与主人保持一些距离。箱底设有履带,可以在处理器信号的驱动下运作,带动箱子移动。从外面看上去,就是一个很聪明的旅行箱在跟随者主人四处走动了。

360%E6%88%AA%E5%9B%BE201210111636074541
手机端的专用控制软件

360%E6%88%AA%E5%9B%BE201210111635213841
箱中设有三个蓝牙传感器

另外设计者还考虑到了诸多人性化的设计,比如一旦蓝牙信号丢失,旅行箱还会自动上锁,并发出信号让主人的手机不停震动,这样就可起到提醒作用。另外,如果行李较多,使用者还可以对多个旅行箱进行程序设置,让多个“Hop!”旅行箱排着队保持行进。

当然,目前这个旅行箱还存在着一些问题,比如行走时多少有些不稳,设计者正在对这款产品进行改进。具体上市时间未知,价格也未知。

untitled2
hop!旅行箱

Via:coolest-gadgets

推荐读物,创业必读

Tony Lek

《寻路中国》——最先看的彼得·海斯勒,就是这本,而后补上了他的《江城》与《甲骨文》,最深切的感受就是他一贯的观察中国的态度:接触最 普通的中国人。至于为什么喜欢,大概是在不停快速发展、接近于魔幻的中国,我们自己却早已迷失方向,看得还不如外国人清楚。他笔下的中国,在我看来仿佛有 一种非常神奇的色彩,有点虚幻,但这确确实实是我们足下不断动荡发展的中国。这种感觉非常奇特。

《设计中的设计》(全本)—— 日本是设计强国,这是公认的,而这本书并没有带给你类似的感受——他们内敏、谦虚,甚至还有点自卑——他们不断在为设计而苦苦思索,某些程度上似乎还像个 苦行僧,不断的折磨自己。原研哉的文字稍显繁杂,事实上其围绕着的核心也就寥寥几句,但这也充分表明了他不断的思考。日本的设计,用一句常用的话介绍就是 「简洁却不简单」,非常柔和,看着就心生喜爱。若类似的产品出现在中国的企业,恐怕会被一刀砍掉的吧,为什么?「大气,不够大气,我们给你那么多钱,就别 留那么多空白。」

《七日谈》——至于这本,我觉得和菜头先生在豆瓣的书评写的很好,摘抄如下: 很多人必然会把这本书当作讽喻来读,故事虽然 精美,但是棱角总是有的,一不留神就会穿出包装露出峥嵘一角来。全书是「我」和「张三」两个人的对话,「我」以字母代替一干人等,讲述他们的人生故事。 「张三」自承来自希里花斯国,用异国的奇风异俗和「我」彼此交换故事。中间除了少量关于人生价值的观点碰撞,大部分是两个对话者在完成一个寓言故事。借用 村上春树的比喻,来自「张三」的故事,讲述的是「墙」的一方,属于宏大叙事,调侃诸多宏大何以成为如何荒谬的种种。来自「我」的故事,讲述的则是「蛋」的 一方,凡人琐事,洞见人性各种层面的阴暗之处。

董诣

<失控>

涵盖面的广度和深度都有, 社会学, 经济学, 计算机科学, 生物学,博大精深

<禅者的初心>

讲修禅的  认识自己 找到自己的

<不二>

很有趣的一本小说, 文字很漂亮

<世界是平的>

互联网, 经济在当今是如何运作和相互改变

<乔布斯传>

还是比较客观反应的  了解苹果追求完美的基因

<沉默的大多数>

涉及到很多中国国情的不太好的一面

<浪潮之巅>

IT 计算机公司编年史   对创业的同学很有帮助   看别人都犯过什么错

王琛

《先知》句句经典,诠释关于生与死之间的一切,迷雾中指引方向的灯塔;

《小王子》每个人心中都有一个小王子,这本书让我了解了“驯服”的含义;

《温柔的夜》《倾城》等,接触到三毛的文章,就被她的文字所吸引,被书中那个真真实实的三毛所感动,她活得自由不羁,谁说她不是快乐的呢。

马浓

1.一些今年很流行的书:《失控》、《乔布斯传》等等,上面已经有众多网友推荐

2.《中国近代史》,徐中约著。从另一个视角了解历史,反省我们教材上学到的东西。因为可以想到原因,不在国内出版,电子版网上很容易找。

3.《计算中的上帝》,一本个人感觉写得很不错的科幻小说,故事情节怎么样我倒不是很在乎,但是其中包含的一些对宇宙、生命起源等等问题的思考,让我有种找到共鸣的感觉。

4.《心灵史》,张承志著。 这书出版有些年头了。介绍了一个叫“哲合忍耶”的回族群体,在历史中经历的变迁和伤痛。不论赞不赞同作者的立场,至少大多数读者读后都会感慨:原来有这么一个群体。

5.《這就是天堂!我的朝鮮童年》,一位脱北者的回忆。因为作者在朝鲜时只是普通百姓,所以相比于黄长烨的回忆,个人觉得更平实一些。看完这本书之后第二天,金正日就死了,很巧。

6. 《七十年代》,北岛主编。许多名家撰写的回忆文章,讲述他们的七十年代,看了太多关于那个特殊年代的宏观叙事之后,感觉这样从个体或者小群体的角度回顾,很有意思。

李秉泽

《送你一颗子弹》 刘瑜的文字让我从感性和理性中徘徊,没有什么能够阻挡我去品味她的语言,就像眼前又一杯热牛奶,而我是一个荒漠中的旅者,给我以渴望和美好。

罗方园

《秘密花园》一个抑郁,脾气暴躁的十岁小女孩在走进这个秘密花园之后,这个秘密花园的大自然的力量最后把她感染成一个活泼开朗,有爱心,善良的小女 孩。因为故事是发生在英国,所以读这本书的时候可以了解到当地的一些人文,地理的信息。而且她的经历本身就是一个有趣的故事,更重要的是,你可以感受到大 自然神奇的魔力。这是一本净化心灵的书。

《小妇人》围绕几个善良可爱的小ladys的成长为主题的小说,充满了爱。

张翔

<<平凡的世界》很久以前的书了,但还是被深深感动和震撼了!让我明白了,一切合法的劳动都是平等的!

推荐阅读:

杨葵:闲读书 读闲书

我们为什么爱 “攒人品”?

不论我们再怎么努力,生活中总有些事到最后只能“听天由命”。递交了自己精心制作的简历之后,只能等待公司的电话通知;考试前认真准备,可出成绩前也只能期盼分数能够让自己满意……

在我们控制了所有我们可以控制的方面后,能决定我们最终结果的往往是那些我们控制不了的,像别人的一个决定,一个偶然的因素等等。但我们总是相信“老天是公正的”。

一项最新的心理学研究发现,当人们在等待一个自己无法控制的结果时,通常会更愿意做一些助人的事,希望以此来增加自己的好运。也就是所谓的“攒人品”。

“这是你应得的”

人们相信“善有善报,恶有恶报”。虽然也许你会告诉我你不相信“因果报应”之说,但不论从道德还是法律层面来说,“惩恶扬善”的信念是根植于社会的期望中的。若是出现什么意外的惊喜,或者难以接受的事情,这种信念也会帮助我们迅速将心态调整好。我们会告诉自己,“一定是之前帮了xx一个大忙才会有这样好的运气”或者“我上辈子肯定干了什么对不起ta的事情”。 心理学研究认为,类似上述的想法可以让人们尽量对自己得到的结果感到满意。总之就是:你得到了你应得的。

攒“人品”:为了好运而做好事

既然人们这么喜欢把做好事和得好报联系起来,那当人们希望有好运的时候会不会为了得好报而去做好事呢?

来自弗吉尼亚大学心理学家本杰明•匡威(Benjamin A. Converse)领导的研究小组用一系列实验对这个问题进行了探究。

在第一个实验中,一部分参与者需要回忆一些他们无法控制其结果的事件。他们被要求写下自己正在等待结果并且对自己非常重要的事,比如求职面试、考试分数或是医疗检验报告。另一些被试只需要写下自己日常生活的某个片段。

当参与者得到被试费,以为这个实验结束了的时候,主试会询问他们是否愿意额外参加一项这个实验室的志愿工作,而这个工作可以为慈善团体筹募资金。

实验结果如研究者所料,回忆起自己无法控制结果的事件那组人中,有更多的人表示原意参加志愿活动。而且,在一项后续实验当中,当这类参与者在消磨实验结束前的一小段时间时,也有更多的人选择参加一个简单的网上慈善活动,而不是娱乐活动。

在第二个实验中,参与者需要面对一些选择,这些选择有的关乎自己人生发展(比如是留在学校里继续读书还是工作)。这些问题往往较难给出明确答案,并且答案也并不完全由自己的意志决定。另一些则是非常通俗的问题,像午饭是吃匹萨还是汉堡。参与者会在拿到被试费后被询问是否愿意捐一些给某某慈善机构。与前一个实验一致,那些回答了自己毫无控制感的问题的被试,总体捐出的善款更多。

现实中的“攒人品”效应

既然研究者的假设已经在实验设置的情境下得到证实,那如果将他们的发现应用于现实世界的场景中,结果会不会也是如此呢?

在第三个实验,研究者以糖果作为报酬招募了77名求职者参加实验。他们中的一些人需要思考求职中自己无法控制的方面(比如能不能找到新工作),另一些人思考自己可以控制的方面(比如要不要多了解一些这个行业的知识)。完成调查后,主试会告诉参与者,他们实际的报酬是100块。并且主试会询问他们是否愿意捐些钱给慈善组织(0到100块都可)。那些思考自己无法控制的方面的人捐的更多。

做好事,让你更乐观

研究者认为,我们面对未知的结果时,有关因果报应的“攒人品”系统将会自动启动。在残词补全的测试中,更多的使用因果报应(karma)、运气(luck)、命运(fate)此类词来补全。可见,在他们脑中的确出现了类似因果报应的说法。将那些自己无法控制的事件与人品联系起来与你是否真正相信因果报应的说法没关系。这么做其实是为了增强自己对整个事件的控制感,从而让自己对事态感到一丝乐观。

在另一项实验中,那些回忆起自己求职的无力处境,并且选择参加慈善活动的求职者,对自己的求职前景会表现地更加乐观。

虽然每个人不是都像宗教信徒那样强烈地相信宿命和业障因果,但我们也总希望好人一生平安,坏人得到应有的制裁,也希望自己的努力能够有回报。当我们觉得周遭的生活完全超出我们的控制,便很容易去通过宗教或其他方式寻求慰藉。但由此看来,这样的想法也不一定就是逃避现实,因为它给了一些人继续活着的意义,和在这世间前行的力量。

文献来源

Converse, B. A., Risen, J. L., & Carter, T. J. (2012). Investing in Karma: When Wanting Promotes Helping. Psychological science.

取代电子邮件

电子邮件现在的使用方式不再像过去。电子邮件不是消息传递协议了。它是待办事宜列表。或者更确切地说,我的收件箱是一个待办事宜清单,而电子邮件则是事情进入该列表的途径。不过这个待办事宜列表很糟糕,简直是灾难性的。

我对这一问题各种类型的解决方案持开放态度,不过我怀疑光调整收件箱是不够的,电子邮件必须用新协议来代替。这一新协议应当是一个待办事宜列表协议,而非消息传递协议,尽管存在一种退化情况,有人希望你做这个:请读以下文字。

作为待办事宜列表协议,这一新协议赋予接收方的权力应该要比电子邮件给予的多。对于谁可以往我的待办事宜列表里面放东西,我希望能够有更多的限制。而一旦他能够往里面放东西时,我也希望他能告诉我他希望从我这里得到什么东西。除了阅读文字以外他们是不是还希望我做什么事情?这件事情有多重要?(显然必须有某种机制来防止说一切事情都很重要。)什么时候该完成?

这是那些创意之一,这些创意就好比是一股不可抗力遭遇了一个不能移动的物体。一方面,根深蒂固的协议不可能被替代。另一方面,100年之内大家都生活在同一个电子邮件的地狱中似乎也不大可能。那么,要是电子邮件最终要被取代的话,为什么不趁着现在呢?

如果你的做法得当,你也许可以避免新协议面临的那种常见的鸡生蛋还是蛋生鸡的问题,因为这个世界上的一些最具能量的人会是首批换用新协议的人之一。他们一样全部都受到电子邮件的支配。

不管你要建什么东西,关键要快。Gmail已经变得令人痛苦的慢。如果你做出来的东西没有Gmail好但是很快的话,仅这一点就可以让你从Gmail那里抢走用户。

Gmail慢是因为在上面开支太多的话Google没办法承受。不过有人会为此买单的。一个月50美元对我来说没有问题。考虑到我自己花了多少时间在电子邮件上面,自己该付多少钱才算合理呢?想想都有点提心吊胆。至少得1000美元一个月吧。如果我每天都要花若干小时去读写电子邮件的话,这可以算是让自己生活得更美好的一种廉价方式。

Facebook 宣布 Fmail,Web 3.0 革命終於來到 Emails

讓整個網路圈從上星期開始,可以說是屏息以待的 Facebook 「新郵件系統記者會」,昨天深夜終於上演。Facebook 創辦人馬克‧沙克伯 (Mark Zuckerberg) 和軟體工程處長 (Director of Engineering) 安德魯‧壩斯沃斯(Andrew Bosworth) 輪番上陣, 詳細的介紹了這個 FB 的最新發明,他們口中所謂的「現代化訊息系統」(Modern Messaging System),我則簡稱它叫Fmail

Fmail 到底是什麼?與其說它是「Gmail 殺手」,我倒覺得它更像是「Email 殺手」,因為什麼事情加上了 Social (真實人際),都會更加好用、更加有趣、更加有意義。而已經 45 歲的 Email,就是下一個 Web 3.0 大革命的場所。

宇宙的中心

對於大多數的人來說,Email 是我們日常生活的中心,大多數的網路活動,都圍繞著我們的 Email 帳號。雖然我們常常也同時掛在 FB 上面,但很多時候,我們是靠著 Email 通知來開始我們的每一次 Facebook 經驗。Facebook 清楚的知道這一點,所以在他們成功的佔據使用者社交中心的位置後,他們必須繼續往中間靠攏,才能讓大家更離不開 FB 的懷抱。因此,以策略上來說,改革 Email 是 FB 非常合理的下一步。

Email 的問題

問題是 Email 並沒有壞掉,它或許可以更好,但是大家並沒有太多的抱怨。目前使用者碰到最大的問題,大概是在 Email 的量上面,所以 Gmail 先前推出了「優先收件匣 (Priority Inbox)」,來幫助使用者過濾出重要的 Email。而 Fmail 這次的重點,也是在如何透過使用者的人際關係 (Social Graph),來更有效率的濾出重要的訊息。

另一方面,Facebook 認為 Email、Chat 和手機簡訊等訊息管道可以更整合,也就是說當我傳訊息給朋友的時候,只需要知道要傳給誰,並不需要知道對方是用什麼方式接收這個訊息。這個問題我不確定是否存在,先前也有很多人嘗試解決,但是結論都不是很好。畢竟一般的消費者很難了解「整合式訊息」這個概念,不要 care 訊息管道也會讓人感到不安,況且 Facebook 所擁有的人際圖譜在這方面並沒有幫助。

除此之外,Facebook 認為 Email 還可以更簡化、更短、不要那麼嚴肅、更即時,於是,Fmail 就這樣誕生了。

@facebook.com 和三個資料夾

在 Fmail 的世界,使用者將有一個 @facebook.com 帳號,所有寄到這個帳號的訊息 — 有可能是 Email, Chat 或是簡訊 (你看,是不是很難理解),都會被歸入三個檔案夾的其中一個。收件匣 (Messages 或稱 Main Folder) 裡面都是最重要的訊息,就像 Facebook 首頁的「動態新聞」一樣,是 FB 透過社交圖譜幫你過濾出的。其他較不重要的訊息則被放入「其他 (Other)」這個資料夾,FB 認為你大概一天去看一次,然後可以把重要的訊息「救」到收件匣裡面 (這裡的邏輯和 Gmail Priority Inbox 很像)。最後是垃圾,你連看都不會看。

單一討論串

Fmail 的另一個特色,是你和每一個朋友的所有對話歷史,包括 Email、Chat 和簡訊 (你看,是不是很難理解),都被整理到一個討論串當中 — 只有一個討論串,而且是根據朋友來歸檔,而不是信件主旨。這個邏輯和傳統的 Email 非常不同,我覺得並不適用於所有的使用情境。不過 Facebook 是非常擅長 Lean Startup 和 MVP 的公司,所以我猜他們的策略是先把這個滿足 80% 的東西做出來,然後看大家怎麼用,再來修改功能。

然後呢?

根據 Facebook 的公告,這個功能將會在未來的幾個月,陸續的開放給使用者測試。然後他們希望在 1~2 年後的將來,大家對 Email 的依賴將會越來越少 — 也就是說對 FB 的依賴將會越來越多。我個人認為,就像 Facebook 首頁動態新聞一樣,事實證明用 Web 3.0 式的社交圖譜 (Social Graph) 來過濾訊息,是非常有效率的。而這樣的特色能不能真的讓大家的使用行為開始轉變,讓 Facebook 更往宇宙的中心靠攏,我們就接著看下去吧!

(更新:有興趣早點開始試用的朋友,可以到這裡去要求邀請函。)

未来的电子邮件

还记得当你第一次签署了Hotmail的?你有一个收件箱中排鳞次栉比的主题行吗?你点击了一个,你看,人的眼睛灼热的字体和颜色组合?是啊,电子邮件已经改变了很多。事实上,这并没有太大的改变在40年。

我们三个人离开谷歌,形成流利出的一个愿望,创建一个以设计为主导的通讯产品,快速移动的-最重要的-推到未来的电子邮件。一种工具,准确地反映了人们沟通今天将适应他们想要的东西明天。

为了实现这一愿景,我们正在构建一个产品的六项原则的基础上:

  • 简单的对话
  • 简化的工作流程
  • 随时随地存取
  • 美丽的设计
  • 台式机,小屏幕和触摸屏设备的无缝体验
  • 在尽可能最好的方式沟通

最后一点是一个大问题。我们认为,我们已经建立了一个产品,蜱第一五盒(来吧,一起来看看)。我们将始终确保流利的顶部其在这些领域的游戏,但我们认为,沟通是以上只是一个文本框。我们有一些伟大的计划如何真正把协同票据,文件共享到您的沟通,图像处理和任务管理的,我们很乐意有你的输入。

流利是所有关于你和沟通。我们目前正在使用我们的测试,以得到早期和热心人士的帮助我们塑造未来的电子邮件将是。如果这听起来好给你,然后登录,得到使用,并享受沟通就像是21世纪。

为什么没有人收服Email?

编者按:本文作者Gentry Underwood是一名软件设计师兼Orchestra公司CEO(该公司目前正在开发一款名为Mailbox的移动端email应用)。这篇文章详尽地论述了email的一些历史问题、缺陷和目前的一些改进手段。同时,作者也以行业的眼光,解释了为什么到现在为止,都没有一家公司成功收服email这个存在了半个多世纪的老古董。

090703110822911

每个人都在抱怨email——抱怨我们的收件箱常常被各种邮件淹没,抱怨自己不堪重负,哭诉自己和邮箱都失控了…

不仅如此,最近,关于改造email的声音也是不绝于耳。Jordan Crook说自己恨透了email,MG Siegler也狠了心要戒它,不过Alan Henry又反驳道,“不,你不可以。”而广大普通民众还唠叨着要让Gmail加速,让Yahoo!奋力追上,或者,假使上面的两家公司都有负所托,他们也指望着能够有一个团队,有任何一个团队,可以站出来,推出一款更好的产品。尽管人人都认为现在的email烂透了,但是,关于要如何“修理”email,大家似乎都只是大眼瞪小眼,手足无措。

在Orchestra,我们对email的问题已经深挖了一阵子。改造email是一个众所周知的挑战,不过,我们当中的很多发现还是让我们自个儿吃了一惊。现在,我就来说说,当前的email坏在哪儿,想要修理它,又需要解决什么问题。

Email坏在哪儿

email带给我们的焦虑和痛苦,可以归罪于下面的几点:

1.我们收到了太多太多我们压根不关心的邮件…好在,过滤器帮了一部分忙

现在,我们每收到一封重要的邮件,就必定会受到几封来自其他闲杂人等,我们压根不想收到的邮件。这事想起来就来气:突然就会有盏小灯熄灭,提醒我们收到了一封信新邮件。然后,当我们看到这封邮件时,就会禁不住想:“到底是谁把我的注意力’授权’于你的?”

而之所以有这个问题,这里还要扯进一点email的历史——email是在那个整个互联网都只有几百个科学家和工程师使用的年代被造出来的。那会儿,大家压根就不会收到什么垃圾邮件。这也是为什么,现在某个人的email的地址会向所有人敞开大门,并让它们肆无忌惮地闯进来。

不过,好消息是,现在这个问题在很大程度上已经可以被解决了。尽管我们现在没法强迫其他人把我们的地址从它们的CC(抄送)列表中移除,但是我们的垃圾邮件过滤器在过去的几年还是表现不错的。事实上,垃圾邮件占到了所有邮件的78%,不过大部分垃圾邮件都没有机会在我们面前现身。而那部分没有被成功过滤的邮件,我们可以有几种方式将其揪出并分解掉——在拆分垃圾邮件方面,Gmail的过滤器做得很不错,而诸如SaneBox, Unroll.me这样的服务,以及Gmail的重要邮件收件箱,则可以自动将那些不是很重要的邮件打入冷宫。还有一种法子是,你可以花一个小时收集那些自己压根不会阅读的邮件,并取消订阅——这么做之后,你的整个人生都将改变!

No-spam

2.很多email都像懒婆娘的裹脚布——又臭又长…好在,好多人现在都学会了“收敛”

即便你已经将那些垃圾邮件清理干净,读我们收件箱中的一些重要邮件还是很费事。有的时候是发件人的问题,有的时候,就是怪发件人选错了工具。

不过,在“言简意赅避免啰嗦”方面,我们还是有在进步的。在那些古老的年月中,我们写的email堪比实体信件。但现在,我们会选择给对方发即时消息,短信,tweet,还有其他形式的,以短见长的信息。越来越多的人开始发现短消息的价值,而这也开始改变我们对什么是“可在社会上被广泛接受的”通信规则这个问题的认知。

不过,这种转变总的还是需要时间,而在强制推行这种做法方面,我们也可以说是无能为力。当各大公司想着用一些更切中要害的工具直接取代email时(此时我想到了Google waveShortmail),他们看到了整个网络效应的阴暗面:假如你的解决方案要求所有人都替换服务,那你想都别想!

不过,小团队倒是可以在一些特定的情景下取代email,用用别的工具。比如说,Asana公司就试图在工作组的通信中取代email。还有,我们Orchestra开发的工具就可以避免情侣拿各种琐事塞满对方的收件箱。诸如这样的工具可以在很大程度上减少email的统治,但是这类服务必须跟email并存,没有办法直接取代email。

3.大部分的email客户端都很菜

不足之处主要可以归为以下几点:

1、沟通是很重要,但是组织同样重要。现在,市面上那些古老的email客户端都是为了不同用户之间的“沟通”而设计的。没错,沟通是很重要,但是,这只是用户实际情况的一部分。我们的收件箱很多时候也充当着to-do list(代办事项列表)的角色,这里面同样有我们要干的任务,但现在里面却是一团糟,完全没有组织性。

2、它们…慢得像蜗牛。 我们能收到那么多邮件,但是邮箱中的整个工作进度却相当慢。光是加载并处理一条消息就要老半天,而且,一个时延加另一个时延…时延何其多啊。还有,邮箱里面经常还有一些隐藏的快捷键功能,但是大部分用户都对此一无所知。这其实可以归结到交互设计的问题,这里面还潜藏着巨大的机会。

3、它们简直就是台式机时代的老古董。我们口袋里面的移动设备已经改变了一切。但是,大部分的移动邮件客户端却只是传统桌面版的压缩版,根本没有把移动设备的天然优势给利用起来。但实际上,我们可以借助移动设备的这些特点更好地控制我们的收件箱,不过这类工具的设计和开发也需要一定时间。

改进改进再改进…答案藏在收件箱

当我们在开发Mailbox这款产品时,我们逐渐意识到改进email的最大机会就在于,重构收件箱。而这种方法的好处是,你不用抛弃email,但你的整个体验却改变了。MG Siegler最近也说道:

“问题的解决不是在于要取代email。这个方法被试过太多太多次,也失败过太多太多次了;而是在于我们怎么看待email(即它该被怎么用)。”

很多其他公司也得到了相同的结论,也把目光瞄准了改造收件箱,这其中最引人瞩目的就包括Sparrow, Fluent, Ritual, MailPilot, Postbox和.Mail。不过,考虑到email的市场如此广大,目前市场上的竞争者其实还是凤毛麟角。而且,这类公司中有些关门大吉了,有些被收购了,还有些其实压根没有脱离email早期的一些概念。

既然这里面的机会庞大,为什么只有可怜巴巴这么些公司想要重塑用户的收件箱呢?因为…尽管大家对email这个工具都再熟悉不过,但实际,要在改造email上有所作为,你需要克服很多很多苦难:

技术难关要攻克。假如你想改造一个用户数庞大的email,那就意味着你要在跟那些古老的邮件协议和无穷无尽的棘手问题打交道的同时,管理一大批的数据。Sparrow团队花了近十年时间开发Sparrow自家的email引擎。而Gmail团队也才在最近,增加了iOS端Gmail服务中的消息推送这个看似很小的功能。而说道我们自家的服务Mailbox,我们估计了一下,在高峰期,每服务10万个用户,都意味着我们要在每秒处理成百上千条的消息。这在技术上,需要攻克很大的难题。

设计客户端是个苦差事。email客户端的设计师们面临着这样一个难题:这款产品的优势要大到足以刺激用户去使用一款新工具,而与此同时,他们又必须保证整个产品的界面设计对用户来说足够熟悉,足够直观。即便目前的email体系烂透了,大家的习惯也没那么容易改变。而一款好的设计又要在用户的整体体验上带给他们足够的甜头,这个问题实在不简单。

商业模式也是个问题。尽管有大批的用户在使用email,但是在这个领域要赚到钱也绝非易事。假如一个创业公司要推出一个成功的业务,那么它提供的产品或服务就必须比用户可以随手获得的免费版要好很多,而这种产品需要时间的打磨。这类跟email叫板的公司需要很多扶持,但是很多投资人却对这个领域避之不及。举个例子:Fluent的关门大吉在很大程度上就要归罪于资金不够。

change

要么干一番大事业,要么一边呆着去

既然解决email问题如此困难,那为什么我们还要飞蛾扑火呢?因为…这真真正正是个问题,而且是个影响所有人的问题。而现在,改造的时机来了:移动互联时代为我们将email的用户体验变得既快速,又讨人欢喜,提供了大大的机会——当然,也埋伏着令人恐惧的挑战。我们想好了,带上我们的鲜血,汗水和泪水,干一番大事业!

判断批处理文件调用的参数个数

@echo off
call :Sub %random% %random% %random% %random%
pause
goto :eof

:Sub
set "f=%*"
if not defined f (echo 没有参数! & goto :eof)
echo 过程名称:    %0
echo 完整参数:    %*
echo --------------------------------------
echo 用for循环:
set /a x=1
for %%i in (%*) do (call echo    第%%x%%个参数:    %%~i & set /a x+=1)
echo --------------------------------------
echo 用goto循环:
set /a y=1
:loop
set "t=%~1"
if not defined t goto :eof
echo 第%y%个参数:    %~1
set /a y+=1
shift
goto loop

MAC OSX Lion 下搭建PHP开发环境(nginx+php)

MAC OSX 下有类似于 centos下的 yum 包管理工具,就是 macports

首先安装macports

下载最新的macports的Mac OS X Package(.pkg)安装包

源代码来编译安装了,其中nginx和php是通过macport进行的,

mysql则通过官网的dmg包进行安装。

首先安装macport,从其官网上下载dmg包进行安装,安装完成后重启bash执行sudo port selfupdate。

接下来安装php(安装了fastcgi模块,这里通过fastcgi来执行php),打开bash,输入

sudo port install php5 +fastcgi fcgi php5-gd php5-mysql php5-sqlite php5-curl php5-iconv

待安装完成后,继续执行

cd /opt/local/etc/php5

sudo cp php.ini-development php.ini

然后打开配置文件php.ini,修改时区

date.timezone=Asia/Shanghai

和错误级别

error_reporting=E_ALL&~E_NOTICE

,其他配置项视情况修改。

启动phpfcgi:

sudo /opt/local/bin/spawn-fcgi -C 2 -p 9000 /opt/local/bin/php-cgi

执行后即在9000这个端口监听请求。

杀死phpfcgi进程:sudo killall -9 php-cgi。

接下来安装nginx,输入

sudo port install nginx spawn-fcgi

安装完毕后,执行

vim /opt/local/etc/nginx/nginx.conf

修改配置文件。可大致参考:

# 自动显示目录索引

autoindex on;

autoindex_exact_size on;

autoindex_localtime on;

server{

#web根目录的位置,这里直接使用当前目录

root /Users/你的用户名/Sites/;

index  index.php index.html index.htm;

#本机自用,关闭log     access_log off;

#php的设置     location ~ \.php$ {

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME /Users/你的用户名/Sites/$fastcgi_script_name;

include        fastcgi_params;

}

}

配置文件写好后,可通过sudo nginx -t来检测配置文件是否有效。

启动nginx:  sudo nginx

重启nginx的命令是: sudo nginx -s reload

nginx启动成功后,访问http://127.0.0.1检查是否有效。如正常,则可创建index.php以测试php部分是否正常。index.php的典型内容是:

<?php phpinfo();

访问这个页面,正常则可看到php的相关信息。

mysql的安装则很简单,访问官网下载相应的版本安装即可。安装完成后可执行 sudo vim /etc/bashrc ,在bash的配置文件中添加mysql和mysqladmin这两个工具的别名。在bashrc文件的末尾添加:

alias mysql=’/usr/local/mysql/bin/mysql’ alias mysqladmin=’/usr/local/mysql/bin/mysqladmin’

完成后重启bash。默认情况下mysql的root账号是没有密码的,可以通过 mysqladmin -u root password  “新密码”来设置。

接下来安装phpmyadmin作为mysql的管理工具。从官网下载文件后解压到~/Sites目录,目录名为phpmyadmin,然后执行  cp ~/Sites/phpmyadmin/config.sample.inc.php ~/Sites/phpmyadmin/config.inc.php  ,然后打开config.inc.php文件,修改以下内容:

$cfg[‘blowfish_secret’] = ‘输入一串字符’;  //cookies加密用

访问 http://127.0.0.1/phpmyadmin 输入账户密码,即可进入管理界面。此时可能会看到一些提示,比如没有mbstring库,安装mbstring后即可正常,重新执行上文提到的php安装指令(需在指令末尾加上php5-mbstring)即可。

至此,nginx-php-mysql基本配置完毕。