<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>YY in Limbo 混沌海狂想 &#187; Apple</title>
	<atom:link href="http://www.limboy.com/category/geek/apple/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.limboy.com</link>
	<description>这里既空虚又充实，没有规则，没有约束，创造来自思考，生存依赖想像，现实源自梦想</description>
	<lastBuildDate>Fri, 07 Oct 2011 19:33:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>“iPhone人工智能”的背后</title>
		<link>http://www.limboy.com/2011/10/08/ai-in-iphone/</link>
		<comments>http://www.limboy.com/2011/10/08/ai-in-iphone/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 19:02:06 +0000</pubDate>
		<dc:creator>Dexter.Yy</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[SF/F]]></category>

		<guid isPermaLink="false">http://www.limboy.com/?p=482</guid>
		<description><![CDATA[本来想直接推荐这篇9to5Mac的访谈：《Siri联合创始人: 苹果的“语音助手”将改变世界》 ，但是要补充的太多，豆瓣说的字数不够用了……
我在iPhone 4S发布会之前就看过这篇文章，居然没注意到关键信息……我一直以为Nuance才是“iPhone语音识别”背后的核心技术，因为Nuance市值超过60亿，因为Apple买了Nuance的语音技术授权，因为Nuance跟IBM合作研发了人工智能Watson（其实除了语音识别和理解问题的部分，这家伙剩余的技术就是搜索和数据挖掘罢⋯⋯）

今天看了iPhone 4S发布会视频的后半段，感觉Siri（特别是结合Wolfram Alpha之后）绝对被低估了，现场演示和广告都相当惊艳，让人浮想联翩，无愧于amazing、incredible之类的乔式营销词汇——这才不是什么“语音识别”！这是霹雳游侠里的KITT！高智能方程式里的Asurada！东之伊甸里的Juiz！星际争霸里的人族Adjutant！Portal里的GLaDOS！2001太空漫游里的HAL9000！⋯⋯ 


恰好今天又传出Nuance收购手机输入法Swype的新闻，其中都提到T9输入法是Nuance的业务之一，我才知道Nuance的业务其实很广……
重读那篇访谈，才注意到根源是DARPA发起的CALO项目，DARPA（美国国防高级研究计划局）在我心目中是跟硅谷并列的美国科技两大引擎之一，它比硅谷的VC更大胆更有前瞻性，赞助过一大堆充满科幻风格的未来技术，其中就包括投资数亿的“学习型个人助理”（PAL）计划，目的是为指挥官和作战人员提供革命性的辅助系统，快速掌握战场状况并辅助决策——有没有想起一大票FPS游戏里的辅助语音系统，比如HALO中跟&#8221;超级战士&#8221;计划配套的，UNSC研发的最强人工智能Cortana⋯⋯

PAL主要涉及的技术是人工智能（具体一点是机器学习和自然语言），而CALO正是PAL的子项目，占用了首期投资的76%，全称是&#8221;Cognitive Assistant that Learns and Organizes&#8221;，但也表示拉丁文&#8221;calonis&#8221;，意思是“soldier’s servant”（英灵！？⋯⋯）

参与CALO项目的强力组织包括麻省理工、斯坦福、卡内基梅隆大学、UC伯克利、波音等20多家，但牵头的是斯坦福的SRI International，而Apple收购的Siri正是SRI的嫡系，Nuance同样也是SRI孵化出来的——比起访谈里的信息，更值得注意的是：PAL计划是2003年启动的，Siri在2007年创立，直接来源于SRI在CALO项目中的工作，而Nuance早在1994年就创建了，前身是SRI的STAR实验室（Speech Technology and Research）⋯⋯
所以Norman Winarsky说Nuance只是Siri中可替换的“语音识别组件”——Nuance的业务只是语音技术，而Siri开发的是人工智能！

那么最实用的好消息便是：Nuance在上海和北京望京都有研发中心，一直在做国内各种方言的识别，“在广东话和普通话，我们是下了很大的功夫，然后我们把普通话的口音都覆盖，所以像我是香港口音、或者台湾国语、四川国语、东北国语其实全部是可以覆盖的”，而Apple可以直接利用“语音组件”的这些进展～
P.S. Thank you, Steve. Bravo.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.limboy.com/wp-content/uploads/2011/10/29741-358549_main_super.jpg" target="_blank"><img src="http://www.limboy.com/wp-content/uploads/2011/10/29741-358549_main_super.jpg" style="width:150px;float:left;margin:0 15px 10px 0;"  /></a>本来想直接推荐这篇9to5Mac的访谈：<a target="_blank" href="http://www.leiphone.com/siri-assistant-world-changing.html">《Siri联合创始人: 苹果的“语音助手”将改变世界》</a> ，但是要补充的太多，<a target="_blank" href="http://shuo.douban.com/#!/Dexter_Yy">豆瓣说</a>的字数不够用了……</p>
<p>我在iPhone 4S发布会之前就看过这篇文章，居然没注意到关键信息……我一直以为Nuance才是“iPhone语音识别”背后的核心技术，因为Nuance市值超过60亿，因为Apple买了Nuance的语音技术授权，因为Nuance跟IBM合作研发了<a target="_blank" href="http://nota.lukhnos.org/post/3380874795">人工智能Watson</a>（其实除了语音识别和<a target="_blank" href="http://www.52nlp.cn/%E7%AB%8B%E5%A7%94%E7%A7%91%E6%99%AE-%E9%97%AE%E7%AD%94%E7%B3%BB%E7%BB%9F%E7%9A%84%E5%89%8D%E7%94%9F%E4%BB%8A%E4%B8%96">理解问题</a>的部分，这家伙剩余的技术就是搜索和数据挖掘罢⋯⋯）<span id="more-482"></span></p>
<div style="clear:both;"></div>
<p>今天看了iPhone 4S发布会视频的后半段，感觉Siri（特别是结合<a target="_blank" href="http://www.tedtochina.com/2010/06/04/stephen-wolfram-on-the-computational-future/">Wolfram Alpha</a>之后）绝对被低估了，现场演示和广告都相当惊艳，让人浮想联翩，无愧于amazing、incredible之类的乔式营销词汇——这才不是什么“语音识别”！这是霹雳游侠里的<a  target="_blank" href="http://en.wikipedia.org/wiki/File:Knight_Rider_Supercar_KITT_instrumentation.jpg">KITT</a>！高智能方程式里的<a target="_blank" href="http://zh.wikipedia.org/wiki/%E9%96%83%E9%9B%BB%E9%9C%B9%E9%9D%82%E8%BB%8A%E8%B3%BD%E8%BB%8A%E5%88%97%E8%A1%A8">Asurada</a>！<a  target="_blank" href="http://zh.wikipedia.org/zh/%E6%9D%B1%E4%B9%8B%E4%BC%8A%E7%94%B8">东之伊甸</a>里的Juiz！星际争霸里的人族Adjutant！Portal里的<a  target="_blank" href="http://www.guokr.com/article/59555/">GLaDOS</a>！2001太空漫游里的HAL9000！⋯⋯ </p>
<p><a href="http://www.limboy.com/wp-content/uploads/2011/10/siri-iphone-4s1.jpg" target="_blank"><img src="http://www.limboy.com/wp-content/uploads/2011/10/siri-iphone-4s1.jpg" style="width:400px;" /></a></p>
<p><a href="http://www.limboy.com/wp-content/uploads/2011/10/52-295x300.jpg" target="_blank"><img src="http://www.limboy.com/wp-content/uploads/2011/10/52-295x300.jpg"  width="295" height="300"   /></a></p>
<p>恰好今天又传出<a target="_blank" href="http://www.36kr.com/p/51312.html">Nuance收购手机输入法Swype</a>的新闻，其中都提到T9输入法是Nuance的业务之一，我才知道<a target="_blank" href="http://www.contactcenterbr.com/info.aspx?id=1973&amp;lm=7">Nuance的业务其实很广</a>……</p>
<p>重读那篇访谈，才注意到根源是DARPA发起的CALO项目，DARPA（美国国防高级研究计划局）在我心目中是跟硅谷并列的美国科技两大引擎之一，它比硅谷的VC更大胆更有前瞻性，赞助过一大堆充满科幻风格的<a target="_blank" href="http://science.solidot.org/article.pl?sid=11/08/19/1018234">未来技术</a>，其中就包括投资数亿的“学习型个人助理”（PAL）计划，目的是为指挥官和作战人员提供革命性的辅助系统，快速掌握战场状况并辅助决策——有没有想起一大票FPS游戏里的辅助语音系统，比如HALO中跟&#8221;超级战士&#8221;计划配套的，UNSC研发的最强人工智能Cortana⋯⋯</p>
<p><a href="http://www.limboy.com/wp-content/uploads/2011/10/Chiefcort.jpg" target="_blank"><img src="http://www.limboy.com/wp-content/uploads/2011/10/Chiefcort.jpg" style="width:300px;" /></a></p>
<p>PAL主要涉及的技术是人工智能（具体一点是机器学习和自然语言），而CALO正是PAL的子项目，占用了首期投资的76%，全称是&#8221;Cognitive Assistant that Learns and Organizes&#8221;，但也表示拉丁文&#8221;calonis&#8221;，意思是“soldier’s servant”（<a target="_blank" href="http://zh.wikipedia.org/wiki/Fate/stay_night#.E5.BE.9E.E8.80.85">英灵</a>！？⋯⋯）</p>
<p><a href="http://www.limboy.com/wp-content/uploads/2011/10/Screen-Shot-2011-10-08-at-2.14.42-AM.png" target="_blank"><img src="http://www.limboy.com/wp-content/uploads/2011/10/Screen-Shot-2011-10-08-at-2.14.42-AM.png" style="width:300px;" /></a></p>
<p>参与CALO项目的强力组织包括麻省理工、斯坦福、卡内基梅隆大学、UC伯克利、波音等20多家，但牵头的是斯坦福的SRI International，而Apple收购的Siri正是SRI的嫡系，Nuance同样也是SRI孵化出来的——比起访谈里的信息，更值得注意的是：PAL计划是2003年启动的，Siri在2007年创立，直接来源于SRI在CALO项目中的工作，而Nuance早在1994年就创建了，前身是SRI的STAR实验室（Speech Technology and Research）⋯⋯</p>
<p>所以Norman Winarsky说Nuance只是Siri中可替换的“语音识别组件”——Nuance的业务只是语音技术，而Siri开发的是人工智能！</p>
<p><a href="http://www.douban.com/photos/album/49655403/"><img src="http://www.limboy.com/wp-content/uploads/2011/10/p1029523786.jpg"  title="We do what we must because we can!" style="width:380px;" /></a></p>
<p>那么最实用的好消息便是：Nuance在上海和北京望京都有研发中心，一直在做国内各种方言的识别，“在广东话和普通话，我们是下了很大的功夫，然后我们把普通话的口音都覆盖，所以像我是香港口音、或者台湾国语、四川国语、东北国语其实全部是可以覆盖的”，而Apple可以直接利用“语音组件”的这些进展～</p>
<p>P.S. <a  target="_blank" href="http://www.douban.com/note/176291524/">Thank you, Steve. Bravo.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.limboy.com/2011/10/08/ai-in-iphone/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Google的大危机——本地app重新流行！浏览器和web已死？</title>
		<link>http://www.limboy.com/2010/08/21/app-vs-web/</link>
		<comments>http://www.limboy.com/2010/08/21/app-vs-web/#comments</comments>
		<pubDate>Sat, 21 Aug 2010 14:02:58 +0000</pubDate>
		<dc:creator>Dexter.Yy</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[web服务/应用]]></category>
		<category><![CDATA[科技]]></category>

		<guid isPermaLink="false">http://www.limboy.com/?p=336</guid>
		<description><![CDATA[这个星期连线杂志的文章《浏览器已死，互联网永生》（中文）成功的引发话题，即使在中国都引发了广泛激烈的争论，以下这段评论我本来是像往常一样用google reader的note来写的，但是不小心写长了-__-b，干脆发到这里，文字没时间修改所以也没有笑点，我只是觉得这些很明显的道理，在很多人的文章里没看到提起，所以如梗在喉……
引发连线思考的，并非一份统计数据，而是本地应用（native app）重新流行的现象，连线把这种现象解读为：商业战胜乌托邦、垄断战胜混乱、封闭战胜开放、便利战胜多样、营销战胜传播、性能战胜创新、稀少战胜丰富、内容战胜技术……显然YY过头了，这些观点随便抽出一个都不可能不引发争议。而实际上呢，这个现象背后真正分出胜负的对战双方，应该是移动设备战胜传统电脑。
先想想web的优势：跨平台、即需即用、一致性、安装和升级的成本为0、托管数据、托管计算任务、自由开放、实现和分发新产品新内容的成本低门槛低——最后两条导致新产品新内容层出不穷。
在桌面电脑上，这些都是绝对无敌的杀手级特性，本地软件即便在用户体验和性能方面有优势，在web的巨大优势面前也是杯水车薪。所以我们看到：即使在第三方软件用户体验最高（平均…）的OS X平台上，本地软件替代web的情况都极少，相反，因为google reader，像NetNewsWire这样的阅读器软件销声匿迹。因为gmail，困扰开源社区多年的outlook终于有了替代品。我们也并没有下载安装一大堆本地app专门用来访问连线、NYT、维基、google maps、facebook&#8230;&#8230;只有在那些web还没发展出成熟技术的领域，本地app才会无法取代，比如代码编辑器（vim/eclipse）和音乐管理（itunes）。也许有人认为twitter是一个app取代浏览器的例子……请问，早期的twitter真的是一个website或者webapp么？实际上只是一个数据服务罢？
正因如此，就在不久前，人们还经常畅谈web和浏览器取代操作系统，google也毫不动摇的坚守在浏览器里。为什么现在突然变调，开始有人怀疑浏览器将死了？
是因为移动设备火了。开头列举的web优势，并不全都适用于移动设备——我指的是“跨平台、即需即用、一致性”，人们经常需要使用不同的电脑：住宅里的台式机、公司里的工作站、咖啡馆里的笔记本……但是移动设备，比如手机和ipad，却几乎肯定是一人一机，没有切换的可能性，于是“即需即用”变成了“事先装好以后常用”、跨平台和一致性的需求也没了。另一方面由于app store的出现，移动平台上软件的安装和升级成本也大幅降低了（虽然对像我这样装了200+软件的用户来说升级还是很麻烦）。而“托管数据”和“托管计算任务”，也不再是浏览器的专利，在随时与网络连接、自身资源有限的移动设备上，本地app也大量使用云端的托管。因为这些原因，web/浏览器的优势被抵消了大半，本地app在用户体验和性能方面的优势凸显出来，成了最佳选择……
但是别忘了，web的优势还剩下两条：“自由开放、实现和分发新产品新内容的成本低门槛低“。仅凭这两条，web就拥有独一无二的生命力，也永远不会被app取代。想想看：世界上真正有几家企业的软件或内容服务，能为广大用户熟知，能轻易的说服广大用户下载安装甚至购买？假如没有浏览器里的web，这个世界就只有大厂商和传统媒体能生存，只会有封闭的、不一致的平台。新事物、新内容、新企业的出现都会变的很难、很慢、很少。一个成员数量接近七十亿的人类社会能接受这种世界么？
一种产品或内容，不论多么优秀多么创新的，都不会一直是最好，因为永远会出现更好。一种现状，无论多么尽善尽美，都不可能抑制住一些人对创造和自我实现的向往。一个企业，无论多么强大，也不可能满足长尾上的每一点需求、不可能看到每一个能通向引爆点的新方向。一个平台，即使是apple出品，即使它值得学习值得崇拜，但是值得去局限自己的视野、封闭自己的思维么——我觉得《连线》的编辑就是这样做的。
另外，就算是移动设备，也不适合所有人都一窝蜂推出本地app，上上周在书店遇到都市客的技术总监小叶同志，我也对他们的周末画报app泼过类似的凉水，小叶同志说重要的是”先圈地“，我认为……地是很有限的。比方说，我喜欢google reader的web界面，更喜欢ipad上的本地客户端Reeder，但要是你以为你的产品也能复制这种成功，用本地app来取代web界面，那就大错特错了——除非你是真正的杀手级应用，或者极少数垄断性内容媒体，否则除了死geek，没人会把你的app，连同另外上百个类似的app都安装保留在移动设备上面，我们只可能在web上，通过链接的跳转，偶尔访问到你。如果没有web，没有浏览器，你早就死了。

]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.limboy.com/wp-content/uploads/2010/08/apple-app-store.jpg"><img src="http://www.limboy.com/wp-content/uploads/2010/08/apple-app-store-300x174.jpg" alt="" title="apple-app-store" width="300" height="174" style="float:left;margin:0 10px 0 0;" /></a>这个星期连线杂志的文章<a href="http://www.wired.com/magazine/2010/08/ff_webrip/all/1" target="_blank">《浏览器已死，互联网永生》</a>（<a href="http://tech.sina.com.cn/i/2010-08-18/19554560539.shtml" target="_blank">中文</a>）成功的引发话题，即使在中国都引发了广泛激烈的争论，以下这段评论我本来是像<a href="http://www.google.com/profiles/dexter.yy" target="_blank">往常</a>一样用google reader的note来写的，但是不小心写长了-__-b，干脆发到这里，文字没时间修改所以也没有笑点，我只是觉得这些很明显的道理，在很多人的文章里没看到提起，所以如梗在喉……</p>
<p>引发连线思考的，并非一份<a href="http://www.techcrunchchina.com/2940" target="_blank">统计数据</a>，而是本地应用（native app）重新流行的现象，连线把这种现象解读为：商业战胜乌托邦、垄断战胜混乱、封闭战胜开放、便利战胜多样、营销战胜传播、性能战胜创新、稀少战胜丰富、内容战胜技术……显然YY过头了，这些观点随便抽出一个都不可能不引发争议。而实际上呢，这个现象背后真正分出胜负的对战双方，应该是移动设备战胜传统电脑。<span id="more-336"></span></p>
<p>先想想web的优势：跨平台、即需即用、一致性、安装和升级的成本为0、托管数据、托管计算任务、自由开放、实现和分发新产品新内容的成本低门槛低——最后两条导致新产品新内容层出不穷。</p>
<p>在桌面电脑上，这些都是绝对无敌的杀手级特性，本地软件即便在用户体验和性能方面有优势，在web的巨大优势面前也是杯水车薪。所以我们看到：即使在第三方软件用户体验最高（平均…）的OS X平台上，本地软件替代web的情况都极少，相反，因为google reader，像NetNewsWire这样的阅读器软件销声匿迹。因为gmail，困扰开源社区多年的outlook终于有了替代品。我们也并没有下载安装一大堆本地app专门用来访问连线、NYT、维基、google maps、facebook&#8230;&#8230;只有在那些web还没发展出成熟技术的领域，本地app才会无法取代，比如代码编辑器（vim/eclipse）和音乐管理（itunes）。也许有人认为twitter是一个app取代浏览器的例子……请问，早期的twitter真的是一个website或者webapp么？实际上只是一个数据服务罢？</p>
<p>正因如此，就在不久前，人们还经常畅谈web和浏览器取代操作系统，google也毫不动摇的坚守在浏览器里。为什么现在突然变调，开始有人怀疑浏览器将死了？</p>
<p>是因为移动设备火了。开头列举的web优势，并不全都适用于移动设备——我指的是“跨平台、即需即用、一致性”，人们经常需要使用不同的电脑：住宅里的台式机、公司里的工作站、咖啡馆里的笔记本……但是移动设备，比如手机和ipad，却几乎肯定是一人一机，没有切换的可能性，于是“即需即用”变成了“事先装好以后常用”、跨平台和一致性的需求也没了。另一方面由于app store的出现，移动平台上软件的安装和升级成本也大幅降低了（虽然对像我这样装了200+软件的用户来说升级还是很麻烦）。而“托管数据”和“托管计算任务”，也不再是浏览器的专利，在随时与网络连接、自身资源有限的移动设备上，本地app也大量使用云端的托管。因为这些原因，web/浏览器的优势被抵消了大半，本地app在用户体验和性能方面的优势凸显出来，成了最佳选择……</p>
<p>但是别忘了，web的优势还剩下两条：“自由开放、实现和分发新产品新内容的成本低门槛低“。仅凭这两条，web就拥有独一无二的生命力，也永远不会被app取代。想想看：世界上真正有几家企业的软件或内容服务，能为广大用户熟知，能轻易的说服广大用户下载安装甚至购买？假如没有浏览器里的web，这个世界就只有大厂商和传统媒体能生存，只会有封闭的、不一致的平台。新事物、新内容、新企业的出现都会变的很难、很慢、很少。一个成员数量接近七十亿的人类社会能接受这种世界么？</p>
<p>一种产品或内容，不论多么优秀多么创新的，都不会一直是最好，因为永远会出现更好。一种现状，无论多么尽善尽美，都不可能抑制住一些人对创造和自我实现的向往。一个企业，无论多么强大，也不可能满足长尾上的每一点需求、不可能看到每一个能通向引爆点的新方向。一个平台，即使是apple出品，即使它值得学习值得崇拜，但是值得去局限自己的视野、封闭自己的思维么——我觉得《连线》的编辑就是这样做的。</p>
<p>另外，就算是移动设备，也不适合所有人都一窝蜂推出本地app，上上周在书店遇到都市客的技术总监小叶同志，我也对他们的周末画报app泼过类似的凉水，小叶同志说重要的是”先圈地“，我认为……地是很有限的。比方说，我喜欢google reader的web界面，更喜欢ipad上的本地客户端<a href="http://reederapp.com/ipad/" target="_blank">Reeder</a>，但要是你以为你的产品也能复制这种成功，用本地app来取代web界面，那就大错特错了——除非你是真正的杀手级应用，或者极少数垄断性内容媒体，否则除了死geek，没人会把你的app，连同另外上百个类似的app都安装保留在移动设备上面，我们只可能在web上，通过链接的跳转，偶尔访问到你。如果没有web，没有浏览器，你早就死了。</p>
<p><img src="http://www.limboy.com/wp-content/uploads/2010/08/dead-300x203.jpg" alt="" title="dead" width="300" height="203" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.limboy.com/2010/08/21/app-vs-web/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>用synergy在Mac和双屏幕PC之间共享鼠标键盘</title>
		<link>http://www.limboy.com/2008/11/25/synergy-on-mac-and-pc/</link>
		<comments>http://www.limboy.com/2008/11/25/synergy-on-mac-and-pc/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 16:13:20 +0000</pubDate>
		<dc:creator>Dexter.Yy</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[工具]]></category>
		<category><![CDATA[纯水]]></category>

		<guid isPermaLink="false">http://www.limboy.com/2008/11/25/synergy-on-mac-and-pc/</guid>
		<description><![CDATA[其实去年5月的时候我就在ibook和公司的PC上装过synergy，后来完全抛弃了windows环境，那台PC长期闲置，有没有键盘鼠标都无所谓，所以就没再装过这个工具。未想到风水轮流转——
先是在封闭开发黑豆的时候，我只把macbook pro和宽屏显示器带进了小黑屋，完全不用PC测试，自以为凭借经验和美学智慧已经足以预判和规避一切浏览器兼容问题……结果测试阶段被ie里relative定位的一系列渲染问题折腾得很囧。
然后是testing team抛弃了Bugzilla，开始“严肃的”使用Mercury QC，虽然它繁复的操作和用activex开发的客户端都让我很不屑，但是这玩意的可怕之处在于严谨的（或者说死板的）权限和缺陷状态管理，没有哪个testing team的姐姐能帮我绕过流程，由于我长期不接受也不关闭任何bug，每周五邮件里的统计结果就很不好看。
再加上最近又开始大萧条，为了遵从开源节流现金为王的教诲，我也只好腆着脸登陆公司里那个界面更烂的OA系统申请报销手机费。
这些事情都让我越来越离不开IE，对了，windows上的软件也越来越有吸引力，比如httpwatch和chrome，相反mac上有吸引力的软件却恰好不能在我的工作环境中使用，比如textmate和coda，eclipse 3.4也经常假死或者弹一些莫名其妙的报错窗口。
还有一个重要的因素是，mac里的flashplayer绝对是资源大户，虽然有flashblock这类插件帮忙，但是由于我经常要反复刷新各种带有flash广告和播放器的页面，cpu还是会被折腾到接近80度，你可能会说这没什么大不了的，但是我坚持认为：windows里的浏览器更适合进行这些测试！公司采购的机器更适合承担这些耗损！
鉴于以上总总，我终于忍无可忍去申请换了配置更高的PC，装上了windows2008，决心给自己的工作环境增加一些效率和新鲜感。
不好意思其实本文只是想简单的分享synergy的设置方法，现在回到正题。
synergy是一个可以让多台机器共用一套鼠标和键盘的工具，除了能在指针跨越屏幕的时候切换操作对象，它还能在多台机器之间共享剪贴板内容，关联键位，总之作为一个软件实现来说是很好很强大的。而且这个软件虽然挂了GPL的牌子，但是好像从06年到现在都没更新过，可见功能很健全，bug很少。
在mac里以前只能用命令行和配置文件来使用synergy，GUI好像也有很多，比如quicksynergy，但是问题很多。感谢Patrick同学在youtube上发布的视频教程，我这次尝试了synergyKM，很轻松的就设置成功了。
下载后直接执行镜像里的SynergyKM.prefpane，会添加到系统设置面板里。跟windows的设置界面类似，如果想使用其他电脑的键盘鼠标，直接设置为client，填入那台电脑的ip地址，然后运行，如果那台机器上已经在运行synergy的server，就会提示connected，一切ok。
如果想把这台机器的鼠标键盘共享给其他机器用，可以设置为server，然后在后续的configuration里添加机器，screen name就是电脑的主机名，在windows的设置界面里直接点左下角的info就可以查到，在mac里可以在这个设置面板的“共享”里查到，比如我的：

注意是“.local”前面那个名字
包括server本身也要添加进去，然后就可以运行起来等待其他客户端来连接了。SynergyKM界面里的图标位置表示鼠标在屏幕之间移动的方式，比如我的台式机（PC）是接双显示器，笔记本放在它们中间：

而鼠标指针只能通过进出一个方向的屏幕边缘在两台机器之间切换，所以我设置的是从笔记本屏幕顶部移出进入台式机的显示器（而且如果从顶部偏左的位置移出，就会进入左边的显示器，很赞）

当然也不能忘了把mac里的command键（苹果键）关联到windows的ctrl键……
windows机器做server的设置：

完整的设置过程可以看Patrick的视频：

]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.limboy.com/2008/11/25/synergy-on-mac-and-pc/picture-3png/' rel='attachment wp-att-205' title='picture-3.png'><img src='http://www.limboy.com/wp-content/uploads/2008/11/picture-3.png' alt='picture-3.png' style="width:200px;float:left;margin:0 5px 5px 0;" /></a>其实去年5月的时候我就在ibook和公司的PC上装过synergy，后来完全抛弃了windows环境，那台PC长期闲置，有没有键盘鼠标都无所谓，所以就没再装过这个工具。未想到风水轮流转——</p>
<p>先是在封闭开发黑豆的时候，我只把macbook pro和宽屏显示器带进了小黑屋，完全不用PC测试，自以为凭借经验和美学智慧已经足以预判和规避一切浏览器兼容问题……结果测试阶段被ie里relative定位的一系列渲染问题折腾得很囧。</p>
<p>然后是testing team抛弃了Bugzilla，开始“严肃的”使用Mercury QC，虽然它繁复的操作和用activex开发的客户端都让我很不屑，但是这玩意的可怕之处在于严谨的（或者说死板的）权限和缺陷状态管理，没有哪个testing team的姐姐能帮我绕过流程，由于我长期不接受也不关闭任何bug，每周五邮件里的统计结果就很不好看。</p>
<p>再加上最近又开始大萧条，为了遵从开源节流现金为王的教诲，我也只好腆着脸登陆公司里那个界面更烂的OA系统申请报销手机费。</p>
<p>这些事情都让我越来越离不开IE，对了，windows上的软件也越来越有吸引力，比如httpwatch和chrome，相反mac上有吸引力的软件却恰好不能在我的工作环境中使用，比如textmate和coda，eclipse 3.4也经常假死或者弹一些莫名其妙的报错窗口。<span id="more-201"></span></p>
<p>还有一个重要的因素是，mac里的flashplayer绝对是资源大户，虽然有flashblock这类插件帮忙，但是由于我经常要反复刷新各种带有flash广告和播放器的页面，cpu还是会被折腾到接近80度，你可能会说这没什么大不了的，但是我坚持认为：windows里的浏览器更适合进行这些测试！公司采购的机器更适合承担这些耗损！</p>
<p>鉴于以上总总，我终于忍无可忍去申请换了配置更高的PC，装上了windows2008，决心给自己的工作环境增加一些效率和新鲜感。</p>
<p>不好意思其实本文只是想简单的分享synergy的设置方法，现在回到正题。</p>
<p><a target="_blank" href="http://synergy2.sourceforge.net/">synergy</a>是一个可以让多台机器共用一套鼠标和键盘的工具，除了能在指针跨越屏幕的时候切换操作对象，它还能在多台机器之间共享剪贴板内容，关联键位，总之作为一个软件实现来说是很好很强大的。而且这个软件虽然挂了GPL的牌子，但是好像从06年到现在都没更新过，可见功能很健全，bug很少。</p>
<p>在mac里以前只能用命令行和<a target="_blank" href="http://synergy2.sourceforge.net/configuration.html">配置文件</a>来使用synergy，GUI好像也有很多，比如<a target="_blank" href="http://quicksynergy.sourceforge.net/">quicksynergy</a>，但是问题很多。感谢Patrick同学在youtube上发布的视频教程，我这次尝试了<a target="_blank" href="http://sourceforge.net/projects/synergykm">synergyKM</a>，很轻松的就设置成功了。</p>
<p>下载后直接执行镜像里的SynergyKM.prefpane，会添加到系统设置面板里。跟windows的设置界面类似，如果想使用其他电脑的键盘鼠标，直接设置为client，填入那台电脑的ip地址，然后运行，如果那台机器上已经在运行synergy的server，就会提示connected，一切ok。</p>
<p>如果想把这台机器的鼠标键盘共享给其他机器用，可以设置为server，然后在后续的configuration里添加机器，screen name就是电脑的主机名，在windows的设置界面里直接点左下角的info就可以查到，在mac里可以在这个设置面板的“共享”里查到，比如我的：</p>
<p><a target="_blank" href='http://www.limboy.com/wp-content/uploads/2008/11/picture-1.png' title='picture-1.png'><img src='http://www.limboy.com/wp-content/uploads/2008/11/picture-1.png' alt='picture-1.png' style="width:400px;" /></a></p>
<p>注意是“.local”前面那个名字</p>
<p>包括server本身也要添加进去，然后就可以运行起来等待其他客户端来连接了。SynergyKM界面里的图标位置表示鼠标在屏幕之间移动的方式，比如我的台式机（PC）是接双显示器，笔记本放在它们中间：</p>
<p><a target="_blank" href="http://www.flickr.com/photos/dexter-yy/3055649385/" title="用synergy在PC的双屏幕和macbook之间共享鼠标键盘 by dexteryy, on Flickr"><img src="http://farm4.static.flickr.com/3208/3055649385_1952b4b8c1_b.jpg" alt="用synergy在PC的双屏幕和macbook之间共享鼠标键盘" style="width:400px;" /></a></p>
<p>而鼠标指针只能通过进出一个方向的屏幕边缘在两台机器之间切换，所以我设置的是从笔记本屏幕顶部移出进入台式机的显示器（而且如果从顶部偏左的位置移出，就会进入左边的显示器，很赞）</p>
<p><a target="_blank" href='http://www.limboy.com/wp-content/uploads/2008/11/picture-2.png' title='picture-2.png'><img src='http://www.limboy.com/wp-content/uploads/2008/11/picture-2.png' alt='picture-2.png' style="width:400px;" /></a></p>
<p>当然也不能忘了把mac里的command键（苹果键）关联到windows的ctrl键……</p>
<p>windows机器做server的设置：</p>
<p><a href='http://www.limboy.com/wp-content/uploads/2008/11/synergy.png' title='synergy.png'><img src='http://www.limboy.com/wp-content/uploads/2008/11/synergy.png' alt='synergy.png' style="width:400px;" /></a></p>
<p>完整的设置过程可以看Patrick的视频：</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/uydwhv20qnI&#038;hl=en&#038;fs=1"></param><param name="wmode" value="opaque"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/uydwhv20qnI&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" wmode="opaque" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.limboy.com/2008/11/25/synergy-on-mac-and-pc/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>iPhone App开发笔记</title>
		<link>http://www.limboy.com/2008/03/08/iphone-app-develop/</link>
		<comments>http://www.limboy.com/2008/03/08/iphone-app-develop/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 19:04:13 +0000</pubDate>
		<dc:creator>Dexter.Yy</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[web服务/应用]]></category>
		<category><![CDATA[界面]]></category>

		<guid isPermaLink="false">http://www.limboy.com/2008/03/08/iphone-app-develop/</guid>
		<description><![CDATA[第一，标题里的app指的是根正苗红老实本分的Web App，昨天的这个时候，对是在昨天，iPhone Web App就等同于iPhone App，咳咳，虽然现在不是了，但我这笔记是两个星期前的……
第二，不全，主要是我关心的一些细节，以及我自己理解的一些东西……


&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;

html里可以调用系统接口，比如电话拨号：
&#60;a href=&#34;tel:1-408-555-5555&#34;&#62;1-408-555-5555&#60;/a&#62;
还有mail和google map的接口……

&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;

在js里嗅探iphone的safari环境，要注意agent字符串里有额外两处：
&#8220;Mobile/1A543&#8243;，这个是iphone OS的操作系统版本（注意不是固件版本）
&#8220;iPhone&#8221;，这个是移动平台的类型，如果是ipod touch的话这里会是“ipod”
此外：
&#8220;version/3.0&#8243;，Safari的市场版本号
&#8220;Safari/419.3&#8243;，这个是build版本，虽然iphone跟osx一样都是safari3.0，但build版本号不同
完整的例子：
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like
Gecko) Version/3.0 Mobile/1A543 Safari/419.3

&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;

调用css的时候，media类型支持CSS3，比如可以用“only”来屏蔽旧浏览器，用“(min-device-width: 481px)”屏蔽小屏幕手机。由于iphone里的safari不支持print和handheld的media类型，可以用它们来对iphone屏蔽一些css文件。
示例：
&#60;link media=&#34;only screen and (min-device-width: 481px)&#34; href=&#34;not-small-device.css&#34; type=&#34;text/css&#34; rel=&#34;stylesheet&#34; &#62;
也可以作为css选择器里，比如
@media screen {&#160;
#text&#160;{ color: white; background-color: black; }&#160;
}
由于safari支持css3，你还可以享受到的福利包括在background里放6张图片做圆角，给文本加阴影，使用属性选择器之类……

&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;

iphone的浏览器里有一个很重要的概念是viewport（视区），系统默认的viewport为980像素，可以用meta标签指定，宽度范围从200到10,000，高度范围从223到10,000，还可以使用user-scalable禁止用户缩放页面（常见的iphone web应用，比如facebook,google reader，因为要仿原生界面，都是这样设置的），minimum-scale和maximum-scale可以设置缩放的限制，initial-scale是默认的缩放程度，范围从>0到10
示例：
&#60;meta name=&#34;viewport&#34; content=&#34;width = 320&#34; /&#62;
&#60;meta&#160;name=&#34;viewport&#34; content=&#34;initial-scale=2.3, user-scalable=no&#34; /&#62;
iphone默认的浏览器窗口尺寸是:  竖向（body[orient="profile"]）为宽320px，高356px，横向（body[orient="landscape"]）为宽208px，高480px，但实际上这是显示了浏览器地址栏之后剩余的空间，往下拖动页面时，地址栏会隐藏，所以实际的viewport（竖向）是宽320px，高416px。
页面加载之后可以用 window.scrollTo(0, 1) 隐藏地址栏，自动使用最大化的viewport。
关于viewport，还有一个很重要的概念是：iphone的safari浏览器完全没有滚动条，而且不是简单的“隐藏滚动条”，是根本没有这个功能。所以不但iframe, [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.limboy.com/2008/03/08/iphone-app-develop/index_steps_2jpg/' rel='attachment wp-att-184' title='index_steps_2.jpg'><img src='http://www.limboy.com/wp-content/uploads/2008/03/index_steps_2.jpg' alt='index_steps_2.jpg' style="width:200px;float:left;margin:0 5px 0 0;border:0;" /></a>第一，标题里的app指的是根正苗红老实本分的<a href="http://www.apple.com/webapps/" target="_blank">Web App</a>，昨天的这个时候，对是在昨天，iPhone Web App就等同于iPhone App，咳咳，虽然现在不是了，但我这笔记是两个星期前的……</p>
<p>第二，不全，主要是我关心的一些细节，以及我自己理解的一些东西……<span id="more-182"></span><br />
<br/><br />
<br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>html里可以调用系统接口，比如电话拨号：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">a</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">tel:1-408-555-5555</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">1-408-555-5555</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>还有mail和google map的接口……</p>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>在js里嗅探iphone的safari环境，要注意agent字符串里有额外两处：</p>
<p>&#8220;Mobile/1A543&#8243;，这个是iphone OS的操作系统版本（注意不是固件版本）<br />
&#8220;iPhone&#8221;，这个是移动平台的类型，如果是ipod touch的话这里会是“ipod”</p>
<p>此外：</p>
<p>&#8220;version/3.0&#8243;，Safari的市场版本号<br />
&#8220;Safari/419.3&#8243;，这个是build版本，虽然iphone跟osx一样都是safari3.0，但build版本号不同</p>
<p>完整的例子：</p>
<blockquote><p>Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like<br />
Gecko) Version/3.0 Mobile/1A543 Safari/419.3</p></blockquote>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>调用css的时候，media类型支持CSS3，比如可以用“only”来屏蔽旧浏览器，用“(min-device-width: 481px)”屏蔽小屏幕手机。由于iphone里的safari不支持print和handheld的media类型，可以用它们来对iphone屏蔽一些css文件。<br />
示例：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">link</span><span style="color: Gray;"> </span><span style="color: #00008b;">media</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">only screen and (min-device-width: 481px)</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">not-small-device.css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">rel</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">stylesheet</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>也可以作为css选择器里，比如</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #00008b;">@media</span><span style="color: Gray;"> </span><span style="color: Blue;">screen</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">#text</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span><span style="color: Gray;"> </span><span style="color: Green;">color:</span><span style="color: Gray;"> </span><span style="color: #00008b;">white</span><span style="color: Gray;">; </span><span style="color: Green;">background-color:</span><span style="color: Gray;"> </span><span style="color: #00008b;">black</span><span style="color: Gray;">; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>由于safari支持css3，你还可以享受到的福利包括在background里放6张图片做圆角，给文本加阴影，使用属性选择器之类……</p>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>iphone的浏览器里有一个很重要的概念是viewport（视区），系统默认的viewport为980像素，可以用meta标签指定，宽度范围从200到10,000，高度范围从223到10,000，还可以使用user-scalable禁止用户缩放页面（常见的iphone web应用，比如facebook,google reader，因为要仿原生界面，都是这样设置的），minimum-scale和maximum-scale可以设置缩放的限制，initial-scale是默认的缩放程度，范围从>0到10<br />
示例：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">meta</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">viewport</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">content</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">width = 320</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">meta</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">viewport</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">content</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">initial-scale=2.3, user-scalable=no</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li></ol></div>
<p>iphone默认的浏览器窗口尺寸是:  竖向（body[orient="profile"]）为宽320px，高356px，横向（body[orient="landscape"]）为宽208px，高480px，但实际上这是显示了浏览器地址栏之后剩余的空间，往下拖动页面时，地址栏会隐藏，所以实际的viewport（竖向）是宽320px，高416px。<br />
页面加载之后可以用 window.scrollTo(0, 1) 隐藏地址栏，自动使用最大化的viewport。</p>
<p>关于viewport，还有一个很重要的概念是：iphone的safari浏览器完全没有滚动条，而且不是简单的“隐藏滚动条”，是根本没有这个功能。所以不但iframe, overflow:scroll的元素没有滚动条，整个窗口也没有的，iphone的safari浏览器实际上从一开始就完整显示了这个网页，然后用viewport查看其中的一部分。当你用手指拖动时，其实拖的不是页面，而是viewport…………由此引申出的结果很多，比如CSS里的 position:fixed 无效……</p>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>浏览器行为的改变不止是滚动条，交互事件也跟普通桌面不一样：</p>
<p>所有hover动作，还有mouseover，都不存在，链接上的title内容，会在你点击链接并按住不动时弹跳出来（如果你不放开手指，继续移动的话，点击事件不会发生，具体原因下面解释）…………而mouseover，直接转换成了mousedown……</p>
<p>点击页面元素之后发生的事情很复杂…………比如当你用单指按住可点击元素（大约就是默认为block的元素），然后放开，首先触发的event居然是mousemove！ 接下来如果元素内容不变（这个条件比较难理解，我知道），会陆续触发mousedown，mouseup，click，如果内容改变，就不会再触发任何事件……</p>
<p>如果你恰好不太走运的给网页上一些inline元素绑过js事件（这比较常见，我也知道），比如span，有一个不用修改标签的方法是给它们都加上onclick=&#8221;void(0)&#8221;，这样iphone就会认为它们是可点击的元素-_____-b</p>
<p>如果按住元素之后移动手指，当然就不要指望会触发mousemove了，啥事情都没有，不过停下的时候，会触发onscroll （因为你刚才移动了viewport嘛……）</p>
<p>如果你用两个手指做缩放的动作，啥事件都不会有啦，但是如果你用两个手指在屏幕上一起移动，而且所在的位置是一个本来有滚动条的页面元素(比如iframe罢)，会触发一个叫mousewheel的事件（但是别指望iframe本身的内容会滚动-___-b）, 停止移动时同样触发onscroll。</p>
<p>OK，你希望像平时那样用onmousedown,onmouseup,onmousemove来做页面元素的拖拽交互把iphone web app的界面做的像原生界面一样活蹦乱跳的梦想已经破灭了，请努力克制骂乔布斯的欲望。</p>
<p>对了，不用我说也应该想得到，onkeyup，e.charCode，e.keyCode这类玩意都不能用罢？</p>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>默认的html控件的样式大家都已经知道很cool了，不过也可以自己修改，具体内容请查看《iphone用户界面指南》的第三章：<a href="http://developer.apple.com/documentation/iPhone/Conceptual/iPhoneHIG/MetricsLayout/chapter_5_section_1.html#//apple_ref/doc/uid/TP40006596-CH6-SW1" target="_blank">Metrics, Layout Guidelines, and Tips</a></p>
<p>iphone里的safari调整了默认的文字样式，这些调整被包括在了一个新的css属性“-webkit-text-size-adjust”里面，相当于“-webkit-text-size-adjust:auto;”，你可以覆盖它，根据需要改成none或者200%</p>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>web app可以像原生应用一样，在home界面里上添加一个快捷方式图标，方法是增加一个link标签：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">link</span><span style="color: Gray;"> </span><span style="color: #00008b;">rel</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">apple-touch-icon</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">custom_icon.png</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li></ol></div>
<p>这是针对单个页面的，如果你把图片命名为“apple-touch-icon.png”，放在网站的某个目录里面，该目录下所有页面都会获得添加图标的功能……</p>
<p>图标的要求是尺寸57×57，png格式，不用画蛇添足的去做圆角渐变或玻璃反光效果，iphone系统会把图片自动裁剪和渲染成统一的风格……</p>
<p>喔对了……不要高兴太早……这个快捷图标的功能，只有1.1.3或更高的固件版本才支持……考虑到国内那些买旧版本破解机器还被商家反复叮嘱不要升级的用户……呃……</p>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>关于网页中的媒体文件，普通图片最大支持200万像素（jpg的话，最大可以显示出3200万的，不过超过200万的jpg都会被压成缩略图），支持的最大尺寸是2 * 1024&#215;1024，gif动画最大支持2m（否则只显示第1帧）</p>
<p>iphone支持的视频格式：</p>
<blockquote><p>H.264 Baseline Profile Level 3.0 video, up to 640 x 480 at 30 fps. Note that B frames are not supported in the Baseline profile.<br />
MPEG-4 Part 2 video (Simple Profile)<br />
AAC-LC audio, up to 48 kHz<br />
.mov, .mp4, .m4v, .3gp file formats</p></blockquote>
<p>需要注意的是这里的“Baseline profile”，由于这种编码的质量跟“Extended Profile”和“main profile”相比效果比较差，目前主流的支持“高清”（h264）的视频网站，比如youtube，土豆，都没有采用Baseline profile压缩h264视频，所以iphone不但不能播放网络上流行的flv视频（因为不支持flash），连刚开始流行的h264也不能直接播放…………提供iphone应用的视频网站无法使用现有资源，不得不压缩iphone专用的视频文件，所以不要指望能立即在iphone上观看视频网站上的所有资源……T__T</p>
<p>由于iphone不支持flash播放器，视频文件只能直接嵌在页面里，用自带的quicktime来全屏播放，示例：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">embed</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">screen.jpg</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">movie.m4v</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">video/x-m4v</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">target</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">myself</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">scale</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> ...</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>更多细节请看官方文档：<a href="http://www.apple.com/quicktime/tutorials/embed.html" target="_blank">Including QuickTime In A Web Page</a></p>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>如果想全面了解iphone上的web开发，推荐阅读：</p>
<p><a href="http://developer.apple.com/documentation/iPhone/Conceptual/iPhoneHIG/" target="_blank">iPhone Human Interface Guidelines</a>(官方还有一份名字类似的文档，简称OSXHIG，是<a href="http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/" target="_blank">界面设计者的圣经</a>之一)</p>
<p><a href="http://developer.apple.com/documentation/AppleApplications/Reference/SafariWebContent/" target="_blank">Safari Web Content Guide for iPhone</a> </p>
<p><a href="http://developer.apple.com/internet/webcontent/bestwebdev.html" target="_blank">Web Page Development: Best Practices</a>(这篇可以凑合看看，2月8号刚更新过的)</p>
<p>此外，ADC on iTunes里有好多iphone相关的视频，讨厌翻文档的可以去弄来看看，这可是iTunes store里少有的免费资源喔……</p>
<p><br/><br />
<em style="color:#999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;懒得想小标题的分界线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><br />
<br/></p>
<p>就像开头说的，这是2周前写的，一直懒得修改整齐了往blog上帖，但是昨天半夜（好罢是今天凌晨）在<a href="http://twitter.com/apple4us" target="_blank">twitter</a>上不小心看了iphone SDK发布的实况转播……我发现再拖延的话就只能贴到火星去了……</p>
<p>跟华丽的SDK相比，iphone safari上的开发环境可以说很糟糕，非常限制想象力——对javascript和RIA开发者来说，不过只要看看iphone用户上网的热情和相关数据，可以预见在很长一段时间里，iphone平台仍然会是立志开发web app的勇者们争夺的滩头阵地。</p>
<p>啊啊啊啊啊，2.10G的iphone_sdk.dmg终于下载完了，睡觉去……下周买<a href="http://www.china-pub.com/computers/common/info.asp?id=38686">《Cocoa入门&#8211;使用Objective-C》</a>……<br />
<br/><br />
<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.limboy.com/2008/03/08/iphone-app-develop/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>为什么信仰apple</title>
		<link>http://www.limboy.com/2007/11/17/why_apple/</link>
		<comments>http://www.limboy.com/2007/11/17/why_apple/#comments</comments>
		<pubDate>Sat, 17 Nov 2007 05:58:09 +0000</pubDate>
		<dc:creator>Dexter.Yy</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[土豆网]]></category>

		<guid isPermaLink="false">http://www.limboy.com/2007/11/17/why_apple/</guid>
		<description><![CDATA[土豆的老大gary这段时间在硅谷，好像是去参加NewTeeVee大会（陈士俊在演讲中宣布youtube将推出高清视频），前天还去了苹果总部，有跟steve jobs见面，内部邮件里传出的八卦新闻非常劲爆，说是jobs当时表示“中国人stupid”，而老大又似乎是很血性的文青，于是当即拍桌子大怒，吵了一架，出门时连纪念品都没买………不过昨天老大的blog更新………似乎p事都没有……也没说要砸自己的macbook pro（/失望），同去的marc也有更新blog，描述的状况更是大相径庭，还说“but he said that he loves China”……啊啊啊，都是幻觉！吓不倒我的！……
不过假如jobs真的说了“中国人stupid”，又会怎样？这次帝都的网志年会上，据说macbook普及率都很高了(我在facebook上还发现，keso和tinyfool也买了macbook pro)。大家为什么要砸钞票买苹果，肯定不是因为jobs是中国人民的老朋友……我不是很清楚别人的想法，不过我买苹果产品，其实就跟用ubuntu的原因一样：它能让我感受到科技的未来和人类的梦想。
正好在论坛写过一个相关的回帖，这种观点以后也许还要复述，为了避免每次都浪费时间重新组织观点构造上下文，还是copy到blog上来罢：
sunnix ：
我认识到苹果的SB就是从第一代shuffle开始的……而我认识到苹果粉丝的SB则是从对岸的 frostyplace这个网站，苹果粉丝就是两个凡是的坚定拥护者——凡是苹果出的，都是伟大的，创新的，艺术的，合理的，友好的，直觉式的，精美的，典范的，blahblahblah;凡是非苹果的就是愚蠢的，笨重的，保守的，不方便的，丑陋的，吃不到葡萄说葡萄酸的，抄袭的，眼红的， blahblahblah。
Dexter.Yy :
这“两个凡是”我很理解，你看，虽然mac是建立在大量开源软件和技术的基础之上，但它跟Linux是两个相反的极端：
Linux会给你提供无数的选择，强烈的参与感，让你和整个开源社区一起共同打造心目中的“未来操作系统”。同样的功能都有几个不同风格的项目供你选择，即使在一个软件里，比如Compiz Fusion，也会给你一大堆选项，让你定制出osx的效果，vista的效果，或是osx和vista都没有的效果。用图形界面改不出来，可以改文本形式的配置文件，配置文件里也没有，可以写脚本，脚本也实现不了，可以改源代码重新编译。还有无数的文档来支持你做这些事情………………firefox也很类似，我可以在一个光秃秃的浏览器上安装各种扩展，定制出一个符合自己需求的网络平台……
而mac只给你一个选择（不是指软件），它明白无误的让你感觉到：这就是“未来的操作系统”。虽然它提供了完善的unix命令行工具（osx10.5是标准的UNIX系统, Linux都只能算unix like）和开发工具（这些工具的强大我难以形容，只能截图），自带了ruby，python，php这样的开源语言，只要你有深入的了解，一样可以控制系统的大部分，但归根结底，它为了给大众用户最方便最简洁的体验，实际上是封装了刚才说的那些东西，把强大的技术隐藏在华丽的图形界面之后。“设计”和 “整合”，这就是apple最擅长的事情。
你可以自己定制，安装各种新东西，却总是觉得自己很笨拙，生怕打乱整个系统的和谐和完美（没有linux上那种自由自在，搞砸事情也不怕的感觉），你可以创作出各种界面，却就是觉得比不上cocoa的原生界面（cocoa是osx的GUI库），那种简洁，高效，细致，优雅，让你除了学习和模仿之外完全没有别的想法。很多人可能看不出来，现在web上流行的一些设计风格和元素，都是从osx里模仿来的。apple的作品几乎从没让你失望过，apple提供的选择虽然少，但几乎就是最好的选择，用mac的过程实际上是不断的在强化这种感觉。所以难免会产生“两个凡是”的思维定式。还有一个例子是：比较一下 windows软件的界面，各种风格都有，就算外观上接近windows的原生界面，面板的布局，按钮位置也可能完全不同。形成鲜明对比的是，mac上的软件（先声明，mac软件的数量不少）几乎都有一致的界面和用户体验，因为mac平台的开发者都谨守apple的GUI规范和建议。
我没有说绝对自由是最好的，也不认为应该让一个强势的偶像级的独裁者给你提供唯一的最好的选择。linux和osx都是能让我感受到未来的科技产品，在两者间做取舍时，我其实是抱着很务实的态度：在现阶段，osx要更优秀更成熟，而且我需要的是能提高效率提高生活质量的工具，而不是把精力和时间消耗在操作系统本身，我既希望享受到开源技术的好处，又不想为此浪费太多时间，所以我用mac……
]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.limboy.com/2007/11/17/why_apple/20070806stevejpg/' rel='attachment wp-att-164' title='20070806steve.jpg'><img src='http://www.limboy.com/wp-content/uploads/2007/11/20070806steve.jpg' style="width:220px;float:left;margin:0 10px 5px 0;" alt='aplycos2_jobs_f.jpg' alt='20070806steve.jpg' /></a>土豆的老大gary这段时间在硅谷，好像是去参加<a href="http://live.newteevee.com/">NewTeeVee大会</a>（陈士俊在演讲中宣布youtube将推出高清视频），前天还去了苹果总部，有跟steve jobs见面，内部邮件里传出的八卦新闻非常劲爆，说是jobs当时表示“中国人stupid”，而老大又似乎是很血性的文青，于是当即拍桌子大怒，吵了一架，出门时连纪念品都没买………不过昨天老大的<a href="http://blog.tudou.com/?p=96627">blog更新</a>………似乎p事都没有……也没说要砸自己的macbook pro（/失望），同去的marc也有更新blog，<a href="http://www.marc.cn/2007/11/27-hours-in-silicon-valley.html">描述的状况</a>更是大相径庭，还说“but he said that he loves China”……啊啊啊，都是幻觉！吓不倒我的！……<span id="more-162"></span></p>
<p>不过假如jobs真的说了“中国人stupid”，又会怎样？这次帝都的网志年会上，据说macbook普及率都很高了(我在facebook上还发现，<a href="http://blog.donews.com/keso/">keso</a>和<a href="http://www.tinydust.net/prog/diary/diary.htm">tinyfool</a>也买了macbook pro)。大家为什么要砸钞票买苹果，肯定不是因为jobs是<a href="http://www.google.com/search?q=%E4%B8%AD%E5%9B%BD%E4%BA%BA%E6%B0%91%E7%9A%84%E8%80%81%E6%9C%8B%E5%8F%8B">中国人民的老朋友</a>……我不是很清楚别人的想法，不过我买苹果产品，其实就跟用ubuntu的原因一样：它能让我感受到科技的未来和人类的梦想。</p>
<p>正好在论坛写过一个相关的回帖，这种观点以后也许还要复述，为了避免每次都浪费时间重新组织观点构造上下文，还是copy到blog上来罢：</p>
<p>sunnix ：</p>
<blockquote><p>我认识到苹果的SB就是从第一代shuffle开始的……而我认识到苹果粉丝的SB则是从对岸的 frostyplace这个网站，苹果粉丝就是两个凡是的坚定拥护者——凡是苹果出的，都是伟大的，创新的，艺术的，合理的，友好的，直觉式的，精美的，典范的，blahblahblah;凡是非苹果的就是愚蠢的，笨重的，保守的，不方便的，丑陋的，吃不到葡萄说葡萄酸的，抄袭的，眼红的， blahblahblah。</p></blockquote>
<p>Dexter.Yy :</p>
<blockquote><p>这“两个凡是”我很理解，你看，虽然mac是建立在大量开源软件和技术的基础之上，但它跟Linux是两个相反的极端：</p>
<p>Linux会给你提供无数的选择，强烈的参与感，让你和整个开源社区一起共同打造心目中的“未来操作系统”。同样的功能都有几个不同风格的项目供你选择，即使在一个软件里，比如<a href="http://www.compiz-fusion.org/">Compiz Fusion</a>，也会给你一大堆选项，让你定制出osx的效果，vista的效果，或是osx和vista都没有的效果。用图形界面改不出来，可以改文本形式的配置文件，配置文件里也没有，可以写脚本，脚本也实现不了，可以改源代码重新编译。还有无数的文档来支持你做这些事情………………firefox也很类似，我可以在一个光秃秃的浏览器上安装各种扩展，定制出一个符合自己需求的网络平台……</p>
<p>而mac只给你一个选择（不是指软件），它明白无误的让你感觉到：这就是“未来的操作系统”。虽然它提供了完善的unix命令行工具（osx10.5是<a href="http://www.google.com/search?q=leopard+unix+03+posix">标准的UNIX系统</a>, Linux都只能算unix like）和开发工具（这些工具的强大我难以形容，只能截图），自带了ruby，python，php这样的开源语言，只要你有深入的了解，一样可以控制系统的大部分，但归根结底，它为了给大众用户最方便最简洁的体验，实际上是封装了刚才说的那些东西，把强大的技术隐藏在华丽的图形界面之后。“设计”和 “整合”，这就是apple最擅长的事情。</p>
<p>你可以自己定制，安装各种新东西，却总是觉得自己很笨拙，生怕打乱整个系统的和谐和完美（没有linux上那种自由自在，搞砸事情也不怕的感觉），你可以创作出各种界面，却就是觉得比不上cocoa的原生界面（cocoa是osx的GUI库），那种简洁，高效，细致，优雅，让你除了学习和模仿之外完全没有别的想法。很多人可能看不出来，现在web上流行的一些设计风格和元素，都是从osx里模仿来的。apple的作品几乎从没让你失望过，apple提供的选择虽然少，但几乎就是最好的选择，用mac的过程实际上是不断的在强化这种感觉。所以难免会产生“两个凡是”的思维定式。还有一个例子是：比较一下 windows软件的界面，各种风格都有，就算外观上接近windows的原生界面，面板的布局，按钮位置也可能完全不同。形成鲜明对比的是，mac上的软件（先声明，mac软件的数量不少）几乎都有一致的界面和用户体验，因为mac平台的开发者都谨守apple的GUI<a href="http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/index.html?http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGIntro/chapter_1_section_1.html#//apple_ref/doc/uid/TP30000894-TP6">规范和建议</a>。</p>
<p>我没有说绝对自由是最好的，也不认为应该让一个强势的偶像级的独裁者给你提供唯一的最好的选择。linux和osx都是能让我感受到未来的科技产品，在两者间做取舍时，我其实是抱着很务实的态度：在现阶段，osx要更优秀更成熟，而且我需要的是能提高效率提高生活质量的工具，而不是把精力和时间消耗在操作系统本身，我既希望享受到开源技术的好处，又不想为此浪费太多时间，所以我用mac……</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.limboy.com/2007/11/17/why_apple/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>在Leopard里配置rails+php+apache+mysql</title>
		<link>http://www.limboy.com/2007/11/14/rails_php_apache_mysql_on_leopard/</link>
		<comments>http://www.limboy.com/2007/11/14/rails_php_apache_mysql_on_leopard/#comments</comments>
		<pubDate>Wed, 14 Nov 2007 04:21:37 +0000</pubDate>
		<dc:creator>Dexter.Yy</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[代码]]></category>

		<guid isPermaLink="false">http://www.limboy.com/2007/11/14/rails_php_apache_mysql_on_leopard/</guid>
		<description><![CDATA[上上周在lex的怂恿下升级到了Leopard，最后花了3天时间，备份数据用了一台macbook pro加一只80g移动硬盘，重装4遍，到现在总算稳定下来了，不过还有一个bug未解决（期待10.5.1补丁）……
在Leopard里，很多开源代码都升级到了最新版，比如Python 2.5.1，PHP 5.2.4，Ruby 1.8.6，Apache 2.2，更棒的是，这次系统里直接集成了ruby on rails，包括Mongrel和Capistrano，据说还做过优化……
以前在mac里配置ROR，我是按照Dan Benjamin的《Building Ruby, Rails, Subversion, Mongrel, and MySQL on Mac OS X》来做的，安装ruby,gem之类的东西都是依靠MacPorts（osx里的包管理系统），而MacPorts安装的程序都在/opt/local里，独立于系统环境……
作为一个完美主义者，一定不能容忍自己心爱的系统里有任何兀余的代码，所以，这一次我希望能在leopard已经集成的代码基础上，搭建rails+php+apache+mysql的开发环境……
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;完美主义者的分割线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
首先搞定apache，在配置面板里的“共享”中，选中&#8221;web共享&#8221;，就可以启动apache。默认的http://localhost指向/Library/WebServer/Documents，如果想修改成自己的目录，比如/Users/dexteryy/Sites/www，最简单的方法是直接改掉httpd.conf里的DocumentRoot
httpd.conf是放在/etc/apache2/里的，除了DocumentRoot，还要记得把下面两行代码前的注释删掉：
LoadModule php5_module        libexec/apache2/libphp5.so
LoadModule fastcgi_module     libexec/apache2/mod_fastcgi.so
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;完美主义者的分割线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
然后是php.ini，系统默认在/etc里放了一个php.ini.default，把它copy一份，改名为php.ini
php.ini里有一个关于mysql的地方要注意，leopard好像修改过mysql.sock的位置，所以要修改以下两行：
mysql.default_socket = /private/tmp/mysql.sock
mysqli.default_socket = /private/tmp/mysql.sock
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;完美主义者的分割线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
然后安装最新的mysql，我下载的是mysql-5.0.45-osx10.4-i686.dmg。其中的MySQLStartupItem.pkg和mysql.prefpane都不用安装了，因为这两个东西目前都不起作用-___-b
以前启动mysql都是用这个命令：
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
但是在leopard里，这个东西好像失效了，只好用这个命令来启动
sudo /usr/local/mysql/bin/safe_mysqld
如果要自动启动mysql，可以用以下方法：
在/Library/LaunchDaemons/里新建一个叫com.mysql.mysqld.plist的文件：
&#60;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&#62;
&#60;!DOCTYPE&#160;plist PUBLIC &#34;-//Apple//DTD PLIST 1.0//EN&#34; &#34;http://www.apple.com/DTDs/PropertyList-1.0.dtd&#34;&#62;
&#60;plist&#160;version=&#34;1.0&#34;&#62;
&#60;dict&#62;
&#160; &#160; &#60;key&#62;KeepAlive&#60;/key&#62;
&#160; &#160; &#60;true/&#62;
&#160; &#160; &#60;key&#62;Label&#60;/key&#62;
&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.limboy.com/2007/11/14/rails_php_apache_mysql_on_leopard/leopard_box200jpg/' rel='attachment wp-att-154' title='leopard_box200.jpg'><img src='http://www.limboy.com/wp-content/uploads/2007/11/leopard_box200.jpg' alt='leopard_box200.jpg' style="float:left;margin:0 10px 5px 0;width:150px;" /></a>上上周在lex的怂恿下升级到了Leopard，最后花了3天时间，备份数据用了一台macbook pro加一只80g移动硬盘，重装4遍，到现在总算稳定下来了，不过还有一个bug未解决（期待10.5.1补丁）……</p>
<p>在Leopard里，很多开源代码都升级到了最新版，比如Python 2.5.1，PHP 5.2.4，Ruby 1.8.6，Apache 2.2，更棒的是，这次系统里直接集成了ruby on rails，包括<a href="http://mongrel.rubyforge.org/">Mongrel</a>和Capistrano，据说还做过优化……</p>
<p>以前在mac里配置ROR，我是按照Dan Benjamin的<a href="http://hivelogic.com/narrative/articles/ruby-rails-mongrel-mysql-osx">《Building Ruby, Rails, Subversion, Mongrel, and MySQL on Mac OS X》</a>来做的，安装ruby,gem之类的东西都是依靠<a href="http://www.macports.org/">MacPorts</a>（osx里的包管理系统），而MacPorts安装的程序都在/opt/local里，独立于系统环境……</p>
<p>作为一个完美主义者，一定不能容忍自己心爱的系统里有任何兀余的代码，所以，这一次我希望能在leopard已经集成的代码基础上，搭建rails+php+apache+mysql的开发环境……<span id="more-153"></span></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;完美主义者的分割线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>首先搞定apache，在配置面板里的“共享”中，选中&#8221;web共享&#8221;，就可以启动apache。默认的http://localhost指向/Library/WebServer/Documents，如果想修改成自己的目录，比如/Users/dexteryy/Sites/www，最简单的方法是直接改掉httpd.conf里的DocumentRoot</p>
<p>httpd.conf是放在/etc/apache2/里的，除了DocumentRoot，还要记得把下面两行代码前的注释删掉：</p>
<p>LoadModule php5_module        libexec/apache2/libphp5.so<br />
LoadModule fastcgi_module     libexec/apache2/mod_fastcgi.so</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;完美主义者的分割线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>然后是php.ini，系统默认在/etc里放了一个php.ini.default，把它copy一份，改名为php.ini</p>
<p>php.ini里有一个关于mysql的地方要注意，leopard好像修改过mysql.sock的位置，所以要修改以下两行：</p>
<p>mysql.default_socket = /private/tmp/mysql.sock</p>
<p>mysqli.default_socket = /private/tmp/mysql.sock</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;完美主义者的分割线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>然后安装最新的mysql，我下载的是mysql-5.0.45-osx10.4-i686.dmg。其中的MySQLStartupItem.pkg和mysql.prefpane都不用安装了，因为这两个东西目前都不起作用-___-b</p>
<p>以前启动mysql都是用这个命令：</p>
<p>sudo /Library/StartupItems/MySQLCOM/MySQLCOM start</p>
<p>但是在leopard里，这个东西好像失效了，只好用这个命令来启动</p>
<p>sudo /usr/local/mysql/bin/safe_mysqld</p>
<p>如果要自动启动mysql，可以用以下方法：</p>
<p>在/Library/LaunchDaemons/里新建一个叫com.mysql.mysqld.plist的文件：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;?</span><span style="color: Green;">xml</span><span style="color: Gray;"> </span><span style="color: #00008b;">version</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">1.0</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">encoding</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">UTF-8</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">?&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Gray;">!</span><span style="color: #00008b;">DOCTYPE</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">plist</span><span style="color: Gray;"> </span><span style="color: #00008b;">PUBLIC</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">-//Apple//DTD PLIST 1.0//EN</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.apple.com/DTDs/PropertyList-1.0.dtd</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">plist</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">version</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">1.0</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">dict</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">key</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">KeepAlive</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">key</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">true</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">key</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Label</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">key</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">string</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">com.mysql.mysqld</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">string</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">key</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Program</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">key</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">string</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">/usr/local/mysql/bin/mysqld_safe</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">string</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">key</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">RunAtLoad</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">key</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">true</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">dict</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">plist</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>修改权限：<br />
sudo chown root /Library/LaunchDaemons/com.mysql.mysqld.plist</p>
<p>ok了……注意，如果安装过MySQLStartupItem.pkg，最好把MYSQLCOM直接删掉：</p>
<p>sudo rm -R /Library/StartupItems/MYSQLCOM</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;完美主义者的分割线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>ruby on rails已经完美的集成了，不需要做任何设置，除了跟mysql的绑定……</p>
<p>sudo gem install mysql &#8212; &#8211;with-mysql-dir=/usr/local/mysql</p>
<p>选择3……</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;完美主义者的分割线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>现在可以新建rails的项目了，在终端里进入刚才设置的DocumentRoot目录，输入/rails rails_test</p>
<p>然后启动服务器：<br />
rails_test/script/server</p>
<p>命令执行后不要关闭终端窗口（会关闭服务器），leopard的终端现在支持标签了，苹果键＋T，继续做别的事情……</p>
<p>现在访问http://localhost:3000/ ，就可以看到rails项目的页面了……</p>
<p>这里启动的服务器是Mongrel，实际上可以把它跟apache整合到一起，用apache接受浏览器的请求，利用反向代理功能转发给Mongrel，这样就不需要用3000端口，直接用这样的地址就可以访问rails的页面：http://localhost/rails_test</p>
<p>方法很简单，找到刚才的httpd.conf，在最下面加入：</p>
<p>ProxyPass /rails_test http://localhost:3000</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;完美主义者的分割线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>以上是我目前搭建的一个简单的rails+php+apache+mysql开发环境，可能还有其他问题，在具体使用中慢慢改……</p>
]]></content:encoded>
			<wfw:commentRss>http://www.limboy.com/2007/11/14/rails_php_apache_mysql_on_leopard/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>iPod更新后的怨念</title>
		<link>http://www.limboy.com/2006/09/13/ipod/</link>
		<comments>http://www.limboy.com/2006/09/13/ipod/#comments</comments>
		<pubDate>Wed, 13 Sep 2006 13:29:34 +0000</pubDate>
		<dc:creator>Dexter.Yy</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/index.php/2006/09/13/ipod/</guid>
		<description><![CDATA[因为我有凌晨三点上床睡觉的好习惯，所以今天凌晨一点的时候我就顺便看了苹果It&#8217;s Show Time新品发布会的直播。
WWDC.Apple.pro、北麦网、麦客地带、AppleCorner联合进行了文字直播，然则因为整场发布会都没有出现他们臆想中的新产品——比如传说中的iPhone（假想设计图、专利资料）和宽屏幕Video iPod，所以从文字中可以感受到很重的怨念……
Engadget的报道比较好看，不但图文并茂，还针对5个产品分别发文描叙。是的，这次发布了5个产品，其中4个是iPod系列产品的更新，包括第二代iPod video（电池使用时间翻番、软件更新增加搜索和游戏、更换耳机、价格降到250刀）、第二代iPod nano（变成了MINI的铝制外壳和五颜六色）、第二代iPod Shuffle（现在成了世界上最小的播放器……） ，还发布了iTunes7……唯一的新产品是一个机顶盒……我不感兴趣……
由于我2个星期前才刚刚购入iPod video 30G，所以这次升级让我非常郁闷，尤其是电池……由于锂电池不适合在电量耗光后充电，我现在每天都要小心翼翼的注意剩余电量，平时根本不敢看电影，下班回家坐公交车时如果还有很多剩余电量，才敢看一会视频podcast……不过我好像看到过更换iPod电池的广告……不知道能不能升级成能连续播放24小时的电池……
iTunes7的升级是最让人高兴的事情了，UI比以前更漂亮，完全摆脱了AQUA风格，增加了podcast的订阅提示，还有专辑封面浏览模式——这个是最华丽的了！

可惜的是，自动获取专辑封面的功能无法使用，因为需要登陆Store的会员帐号（注册时必须要信用卡，而且必须是Store所在国家本地的信用卡）。另外，ipod软件更新的功能现在整合到iTunes里了，然而我更新软件时，ipod会自动弹出……不知道是怎么回事，我只好在老爸的机器上给ipod升级……
]]></description>
			<content:encoded><![CDATA[<p><a href="http://edge.macworld.com/2006/09/images/content/showtime_th.gif"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 140px;" src="http://edge.macworld.com/2006/09/images/content/showtime_th.gif" alt="" border="0" /></a>因为我有凌晨三点上床睡觉的好习惯，所以今天凌晨一点的时候我就顺便看了苹果It&#8217;s Show Time新品发布会的直播。</p>
<p><a href="http://wwdc.apple.pro/">WWDC.Apple.pro</a>、<a href="http://www.beimac.cn/">北麦网</a>、<a href="http://www.maczone.cn/">麦客地带</a>、<a href="http://applecorner.com/">AppleCorner</a>联合进行了<a href="http://www.maczone.cn/live/live.html">文字直播</a>，然则因为整场发布会都没有出现他们臆想中的新产品——比如传说中的iPhone（<a href="http://chinese.engadget.com/2006/09/08/apples-iphone-the-rumor-resurrected/">假想设计图</a>、<a href="http://chinese.engadget.com/2006/09/12/new-filing-seen-as-proof-of-apple-cell-phone/">专利资料</a>）和<a href="http://chinese.engadget.com/2006/03/05/another-video-ipod-surfaces-online/">宽屏幕Video iPod</a>，所以从文字中可以感受到很重的怨念……<span id="more-51"></span></p>
<p><a href="http://chinese.engadget.com/2006/09/12/live-from-the-steve-jobs-keynote-its-showtime/">Engadget的报道</a>比较好看，不但图文并茂，还针对5个产品分别发文描叙。是的，这次发布了5个产品，其中4个是iPod系列产品的更新，包括第二代iPod video（电池使用时间翻番、软件更新<a href="http://gizmodo.com/gadgets/apple-showtime/apple-showtimes-after-party-photos-of-the-ipod-playing-games-200238.php">增加搜索和游戏</a>、更换耳机、价格降到250刀）、第二代iPod nano（变成了MINI的铝制外壳和五颜六色）、<a href="http://gizmodo.com/gadgets/apple-showtime/apple-showtimes-after-party-new-shuffle-photos-200239.php">第二代iPod Shuffle</a>（现在成了世界上最小的播放器……） ，还发布了iTunes7……唯一的新产品是一个机顶盒……我不感兴趣……</p>
<p>由于我2个星期前才刚刚购入iPod video 30G，所以这次升级让我非常郁闷，尤其是电池……由于锂电池不适合在电量耗光后充电，我现在每天都要小心翼翼的注意剩余电量，平时根本不敢看电影，下班回家坐公交车时如果还有很多剩余电量，才敢看一会视频podcast……不过我好像看到过更换iPod电池的广告……不知道能不能升级成能连续播放24小时的电池……</p>
<p>iTunes7的升级是最让人高兴的事情了，UI比以前更漂亮，完全摆脱了AQUA风格，增加了podcast的订阅提示，还有专辑封面浏览模式——这个是最华丽的了！</p>
<p><a href="http://www.yupoo.com/photos/view?id=ff8080810da6d7c1010da73820cc0c3b" title="iTunes7新功能"><img src="http://photo9.yupoo.com/20060913/204754_552062694.jpg" style="width: 400px;" border="0" /></a></p>
<p>可惜的是，自动获取专辑封面的功能无法使用，因为需要登陆Store的会员帐号（注册时必须要信用卡，而且必须是Store所在国家本地的信用卡）。另外，ipod软件更新的功能现在整合到iTunes里了，然而我更新软件时，ipod会自动弹出……不知道是怎么回事，我只好在老爸的机器上给ipod升级……</p>
]]></content:encoded>
			<wfw:commentRss>http://www.limboy.com/2006/09/13/ipod/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

