<?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>Tinyfool的Blog &#187; 开发</title>
	<atom:link href="http://tiny4.org/blog/category/dev/feed/" rel="self" type="application/rss+xml" />
	<link>http://tiny4.org/blog</link>
	<description>这就是我，Tinyfool，郝培强！身高180，体重240，标准的中年老胖子。 有妻有女，无房无车，现居上海，程序员。</description>
	<lastBuildDate>Fri, 20 Apr 2012 00:58:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>谈起《编译原理》</title>
		<link>http://tiny4.org/blog/2010/09/about-dragon-book/</link>
		<comments>http://tiny4.org/blog/2010/09/about-dragon-book/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 14:54:14 +0000</pubDate>
		<dc:creator>tinyfool</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[文化]]></category>

		<guid isPermaLink="false">http://tiny4.org/blog/?p=445</guid>
		<description><![CDATA[其实我觉得大多数人都可以看看编译原理，当然我跟真正的牛人不一样的地方是，我很杂，无专精，且好读书，不求甚解（不是诸葛亮陶渊明那种，就是真的不求甚解）。 我最早接触电脑是在朋友的家里的小霸王学习机，里面有个logo语言，很喜欢。后来家里也买了个学习机，但是里面没有logo，只有basic，所以我就用basic编自己的logo语言，那是高中，住校一个星期才可以玩一次家里的学习机，所以，我只好在纸片上写程序，到了周末回家输入进去，写了一个还算能解释点基础logo语法的东西，有上百行，在一个不能存盘（垃圾的学习机）上面输入很麻烦，后来其实也就是玩了一两次，打一遍实在是太累了。 后来才知道有编译的语言，因为不懂汇编，死活不明白编译是在做什么。 后来自己仔细的去想也没太想明白，不是科班出身，也不知道有哪些科目要学，自然不知道世界上还有编译原理这东西。当然后来有了网络，在论坛里面当小白当多了就都知道了，买了本看了看热泪盈眶啊。 后来我去金远见做上班，同宿舍的lee就是文曲星上面很流行的lava（类C，可以编译成6502汇编）的作者，他是科班出身，不过能写出lava在当时也是很牛的事情，有一次出门买书，我给他推荐买的龙书，他好好看了看，貌似又改进了下lava。 后来我也没有再做过自己的语言，就是学着写个代码高亮之类的东西，看编译原理最功利的作用无非是懂了正则表达式的原理。 有时候科班的孩子很让人无语的，我公司原来有个下属，是比较著名的学校的科班生，而且他们学校有信息检索的国家重点实验室。我们做Lucene生意的时候，他一直不明白Lucene是个什么玩意，我给他从原理讲起仔细的讲了一遍，过了很久，他才恍然大悟，原来就是他们学过的信息检索啊。]]></description>
			<content:encoded><![CDATA[<p>其实我觉得大多数人都可以看看编译原理，当然我跟真正的牛人不一样的地方是，我很杂，无专精，且好读书，不求甚解（不是<del datetime="2010-09-16T15:05:15+00:00">诸葛亮</del>陶渊明那种，就是真的不求甚解）。</p>
<p>我最早接触电脑是在朋友的家里的小霸王学习机，里面有个logo语言，很喜欢。后来家里也买了个学习机，但是里面没有logo，只有basic，所以我就用basic编自己的logo语言，那是高中，住校一个星期才可以玩一次家里的学习机，所以，我只好在纸片上写程序，到了周末回家输入进去，写了一个还算能解释点基础logo语法的东西，有上百行，在一个不能存盘（垃圾的学习机）上面输入很麻烦，后来其实也就是玩了一两次，打一遍实在是太累了。</p>
<p>后来才知道有编译的语言，因为不懂汇编，死活不明白编译是在做什么。</p>
<p>后来自己仔细的去想也没太想明白，不是科班出身，也不知道有哪些科目要学，自然不知道世界上还有编译原理这东西。当然后来有了网络，在论坛里面当小白当多了就都知道了，买了本看了看热泪盈眶啊。</p>
<p>后来我去金远见做上班，同宿舍的lee就是文曲星上面很流行的lava（类C，可以编译成6502汇编）的作者，他是科班出身，不过能写出lava在当时也是很牛的事情，有一次出门买书，我给他推荐买的龙书，他好好看了看，貌似又改进了下lava。</p>
<p>后来我也没有再做过自己的语言，就是学着写个代码高亮之类的东西，看编译原理最功利的作用无非是懂了正则表达式的原理。</p>
<p>有时候科班的孩子很让人无语的，我公司原来有个下属，是比较著名的学校的科班生，而且他们学校有信息检索的国家重点实验室。我们做Lucene生意的时候，他一直不明白Lucene是个什么玩意，我给他从原理讲起仔细的讲了一遍，过了很久，他才恍然大悟，原来就是他们学过的信息检索啊。</p>
]]></content:encoded>
			<wfw:commentRss>http://tiny4.org/blog/2010/09/about-dragon-book/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>浓眉大眼的Google Wave怎么也会死？</title>
		<link>http://tiny4.org/blog/2010/09/how-handsome-google-wave-dead/</link>
		<comments>http://tiny4.org/blog/2010/09/how-handsome-google-wave-dead/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 21:02:10 +0000</pubDate>
		<dc:creator>tinyfool</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[文化]]></category>

		<guid isPermaLink="false">http://tiny4.org/blog/?p=443</guid>
		<description><![CDATA[Google Wave真是得天独厚，它是世界最牛的网络公司Google的产品。 一年前，Google Wave的演示出现在Google I/O后，马上就红遍了整个Geek圈。有人预言它将成为Email的替代品，有人预言它将彻底改变我们的生活，有人说它让所有其他协作工具黯然失色。 刚开始支持邀请注册，它就引发了狂潮，Twitter上天天都有人在求邀请码，谷奥甚至设计了一个邀请排队系统，至少有7000多人曾经在这个系统里注册过。 我从小规模邀请阶段开始试用Google Wave。那时候最大的烦恼是人少，很长一段时间，我通讯录里面一个人都没有。 但不久，Google Wave就火了，人们慢慢地从各种渠道获得邀请码，我的所有好友都出现在Wave中，经常有人ping我，经常有人把我加到他的Wave里。 “哈，又一个Gmail式的营销神话诞生了！”我当时这么想。 然而，一切喧嚣过后我发现，Google Wave里面有无数Wave，大多数我都没有兴趣打开，更谈不上参与。而我参与的所有Wave都有上百人，每个人都留了一句或者几句话。打开Google Wave慢得要命，打开那些很热的Wave更慢。 慢慢的，我不再想打开Google Wave，即使有通知告诉我，我最好的朋友邀请我加入了一个Wave。我甚至不想去想这个东西。直到最近我听说Google Wave已经被Google放弃，即将关闭。 某年春晚，陈佩斯扮演的主角，看到迎面而来的高大英俊的叛徒朱时茂时，不禁感叹道“我以为只有我这样的才能当叛徒，原来你这浓眉大眼的也当叛徒啊！” 是啊，那么，浓眉大眼的Google Wave怎么也会死？ 它不够简单。每个人看它在Google I/O演示的时候都会说，“太酷了，就是我想要的”。没错！它太酷了，它可以像Email那样发给别人，可以所见即所得地编辑，它可以多人协作，它可以装上各种的插件。从演示中，我们可以看到它可以用来下棋，填调查表，可以协作写文章，可以用来商量聚餐的地点等。但是，酷不是生产力。虽然它每次亮相都可以引来“哇！”声一片，但是当用户开始使用它的时候，巨大的挫折感就会迎面而来。它的概念太复杂，直至今天，里面的一些概念我还弄不明白。它的界面太复杂，一堆窗口，看上去像Mail，操作上去却又不完全一样；一堆按钮，完全没有办法记住，也不好选择。于是我们的Wave收件箱里面充斥着各种试图跟演示的Wave们一样酷，但是怎么都做不到那么酷的东西。 它多次让我想起OLE技术，当年微软推出它的时候，每个人也都是相当的震撼。人们经常把一个BMP图片扔到Word中，在旁边写几个字，然后双击BMP，当看到会自动打开一个嵌入在文档中的画图软件，就会很高兴地随笔画上几画，然后关闭全部文件，心想这是多酷啊！那时候的Geek们奔走相告，现在我们可以在Word文档里面嵌入一个国际象棋游戏了。虽然OLE技术一直没有被完全抛弃，但是有几个人真正地在用它？当文档变成了一个游戏的容器后，那它还是文档吗？ 我无意回答这个问题。 但我相信OLE的道路，Google Wave的道路将来还会有无数的厂商去重复。毕竟更多功能，更炫，看上去更美是每个厂商都不懈追求的。 但是，在他们更多去倾听用户的难处，更精雕细琢、更懂得取舍之前，这样的梦想是无法实现的。 本文曾发表于《程序员》杂志10年09期。]]></description>
			<content:encoded><![CDATA[<p>Google Wave真是得天独厚，它是世界最牛的网络公司Google的产品。</p>
<p>一年前，Google Wave的演示出现在Google I/O后，马上就红遍了整个Geek圈。有人预言它将成为Email的替代品，有人预言它将彻底改变我们的生活，有人说它让所有其他协作工具黯然失色。</p>
<p>刚开始支持邀请注册，它就引发了狂潮，Twitter上天天都有人在求邀请码，谷奥甚至设计了一个邀请排队系统，至少有7000多人曾经在这个系统里注册过。</p>
<p>我从小规模邀请阶段开始试用Google Wave。那时候最大的烦恼是人少，很长一段时间，我通讯录里面一个人都没有。</p>
<p>但不久，Google Wave就火了，人们慢慢地从各种渠道获得邀请码，我的所有好友都出现在Wave中，经常有人ping我，经常有人把我加到他的Wave里。</p>
<p>“哈，又一个Gmail式的营销神话诞生了！”我当时这么想。</p>
<p>然而，一切喧嚣过后我发现，Google Wave里面有无数Wave，大多数我都没有兴趣打开，更谈不上参与。而我参与的所有Wave都有上百人，每个人都留了一句或者几句话。打开Google Wave慢得要命，打开那些很热的Wave更慢。</p>
<p>慢慢的，我不再想打开Google Wave，即使有通知告诉我，我最好的朋友邀请我加入了一个Wave。我甚至不想去想这个东西。直到最近我听说Google Wave已经被Google放弃，即将关闭。</p>
<p>某年春晚，陈佩斯扮演的主角，看到迎面而来的高大英俊的叛徒朱时茂时，不禁感叹道“我以为只有我这样的才能当叛徒，原来你这浓眉大眼的也当叛徒啊！”</p>
<p>是啊，那么，浓眉大眼的Google Wave怎么也会死？</p>
<p>它不够简单。每个人看它在Google I/O演示的时候都会说，“太酷了，就是我想要的”。没错！它太酷了，它可以像Email那样发给别人，可以所见即所得地编辑，它可以多人协作，它可以装上各种的插件。从演示中，我们可以看到它可以用来下棋，填调查表，可以协作写文章，可以用来商量聚餐的地点等。但是，酷不是生产力。虽然它每次亮相都可以引来“哇！”声一片，但是当用户开始使用它的时候，巨大的挫折感就会迎面而来。它的概念太复杂，直至今天，里面的一些概念我还弄不明白。它的界面太复杂，一堆窗口，看上去像Mail，操作上去却又不完全一样；一堆按钮，完全没有办法记住，也不好选择。于是我们的Wave收件箱里面充斥着各种试图跟演示的Wave们一样酷，但是怎么都做不到那么酷的东西。</p>
<p>它多次让我想起OLE技术，当年微软推出它的时候，每个人也都是相当的震撼。人们经常把一个BMP图片扔到Word中，在旁边写几个字，然后双击BMP，当看到会自动打开一个嵌入在文档中的画图软件，就会很高兴地随笔画上几画，然后关闭全部文件，心想这是多酷啊！那时候的Geek们奔走相告，现在我们可以在Word文档里面嵌入一个国际象棋游戏了。虽然OLE技术一直没有被完全抛弃，但是有几个人真正地在用它？当文档变成了一个游戏的容器后，那它还是文档吗？ 我无意回答这个问题。</p>
<p>但我相信OLE的道路，Google Wave的道路将来还会有无数的厂商去重复。毕竟更多功能，更炫，看上去更美是每个厂商都不懈追求的。</p>
<p>但是，在他们更多去倾听用户的难处，更精雕细琢、更懂得取舍之前，这样的梦想是无法实现的。</p>
<p>本文曾发表于《程序员》杂志10年09期。</p>
]]></content:encoded>
			<wfw:commentRss>http://tiny4.org/blog/2010/09/how-handsome-google-wave-dead/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>开放不应是唯一的价值观</title>
		<link>http://tiny4.org/blog/2010/09/open-not-only-value/</link>
		<comments>http://tiny4.org/blog/2010/09/open-not-only-value/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 13:39:25 +0000</pubDate>
		<dc:creator>tinyfool</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[文化]]></category>
		<category><![CDATA[价值观]]></category>
		<category><![CDATA[开放]]></category>
		<category><![CDATA[移动开发]]></category>

		<guid isPermaLink="false">http://tiny4.org/blog/?p=439</guid>
		<description><![CDATA[一段时间以来，开发者的圈子里面，有很多对苹果公司，以及iPhone OS平台（包括iPhone、iPod touch、iPad）批评的声音，主要是批评这个平台不开放。有些批评是很诚恳的，直击要害的，而有些完全是空穴来风，以讹传讹。 首先，开放不是一个简单的概念。 在智能手机出现之前，手机上的操作系统往往是制造厂商私有的，上面的软件往往是内置的，只有制造厂商才能开发上面的程序，而且大部分机器根本不支持安装新软件。这才是真正的封闭。 有了智能手机后，虽然有大量的平台和语言我们可以选用，但是实际上并没有形成蓬勃发展的应用程序市场。 J2ME曾经幻想给手机应用市场带来繁荣。但实际上，一方面，为了保证兼容性，J2ME放弃了很多功能，性能和应用场景也大大受限，很难开发出让用户使用方便而且功能强大的程序。 而在另外一个方面，它没有比较完善的界面和操作方面的标准，支持了各种形形色色的手机之后，实际上的兼容性又完全无法得到保证，很少有程序可以真的完美支持多款手机，尤其是游戏类应用，真正地做到兼容多款手机的凤毛麟角。 Nokia坚持了S40和S60的两条战线，在标准化和产品多样性上做到了比较好的平衡。曾经被认为是手机应用市场的救星，然而这10年来，Nokia的手机虽然外观日新月异，但是软件和操作系统方面的改进乏善可陈。而且Symbian系统开发难度一直过高，Nokia也没有在Symbian平台发展势头最好的时候推出类似AppStore这样的商业模式出来。所以，在iPhone出现以后，大量有志于移动开发的开发者，开始放弃Nokia和Symbian平台。 现在不管是从各平台手机应用的数量、质量，以及开发者的收益来看，我们都可以说是苹果推出iPhone是手机应用市场真正繁荣的开始。 当然毋庸置疑，苹果在某些方面确实很封闭。但是，我并不认为这完全是坏事儿。 软件行业未来的图景，不应该只有开源软件，只有商业软件，或者只有AppStore下的软件。这三种不同的模式，互相之间形成了非常良好的补充。 在iPhone/iPod touch和iPad这样的特定领域里，AppStore模式的威力惊人。去看看苹果财报你就会知道这开辟了多大的一个第三方软件市场。智能手机这个概念出现快10年了，从来没有一个平台上，聚集了这么多的第三方开发者，这么多的免费和付费的优秀应用。以前，第三方开发者当然也在赚钱，但是以这样规模和形式聚集在一个平台下，是前所未见的。 假设iPhone OS平台一切都不变，只是去掉AppStore，我们会发现，很多现在已经发财了的第三方开发者，他们还仅仅是在梦想发财而已。所以，一定程度上的封闭也不见得是万恶之源。 正是因为在应用发行的时候，严格的需要苹果公司签署的开发者证书，最大程度地防止了盗版，使得各种付费应用的销量得到了保证。也正是因为有了被很多人诟病的，甚至可以说过于严格的质量审核，才保证了AppStore内的程序都有一定的质量水平，这样就会让消费者喜欢在AppStore里面寻找和购买更多的程序。 更何况，苹果公司在未来的图景上，只是绚烂的一块，不是全部。开源/商业/AppStore三种模式，我认为在未来各有所长，也会各得其所。 我多次强调，喜欢开放的人，心态更要开放。要允许这世界有人不想开源，不想开放，这才是开放的心态。你热爱CopyLeft，你大可以把你的代码都开源了。但是CopyLeft的精神绝不包括强迫别人开源（受授权限制则令当别论）。 我也认同源代码开放的精神，自己也在维护开源项目，但是做这些开源项目，和我做iPhone这样的相对封闭平台上面的项目，完全没有产生任何的冲突。 我乐见在未来开源/商业/AppStore三种模式，各显神通，都蓬勃发展。事实上，开源兴起，并没有杀死商业，反而扩大了我们整个软件行业的视野和疆域。App Store也具有类似的作用，我期待它给我带来更多的惊喜。 本文曾发表于《程序员》杂志10年06期。]]></description>
			<content:encoded><![CDATA[<p>一段时间以来，开发者的圈子里面，有很多对苹果公司，以及iPhone OS平台（包括iPhone、iPod touch、iPad）批评的声音，主要是批评这个平台不开放。有些批评是很诚恳的，直击要害的，而有些完全是空穴来风，以讹传讹。</p>
<p>首先，开放不是一个简单的概念。</p>
<p>在智能手机出现之前，手机上的操作系统往往是制造厂商私有的，上面的软件往往是内置的，只有制造厂商才能开发上面的程序，而且大部分机器根本不支持安装新软件。这才是真正的封闭。</p>
<p>有了智能手机后，虽然有大量的平台和语言我们可以选用，但是实际上并没有形成蓬勃发展的应用程序市场。</p>
<p>J2ME曾经幻想给手机应用市场带来繁荣。但实际上，一方面，为了保证兼容性，J2ME放弃了很多功能，性能和应用场景也大大受限，很难开发出让用户使用方便而且功能强大的程序。</p>
<p>而在另外一个方面，它没有比较完善的界面和操作方面的标准，支持了各种形形色色的手机之后，实际上的兼容性又完全无法得到保证，很少有程序可以真的完美支持多款手机，尤其是游戏类应用，真正地做到兼容多款手机的凤毛麟角。</p>
<p>Nokia坚持了S40和S60的两条战线，在标准化和产品多样性上做到了比较好的平衡。曾经被认为是手机应用市场的救星，然而这10年来，Nokia的手机虽然外观日新月异，但是软件和操作系统方面的改进乏善可陈。而且Symbian系统开发难度一直过高，Nokia也没有在Symbian平台发展势头最好的时候推出类似AppStore这样的商业模式出来。所以，在iPhone出现以后，大量有志于移动开发的开发者，开始放弃Nokia和Symbian平台。</p>
<p>现在不管是从各平台手机应用的数量、质量，以及开发者的收益来看，我们都可以说是苹果推出iPhone是手机应用市场真正繁荣的开始。</p>
<p>当然毋庸置疑，苹果在某些方面确实很封闭。但是，我并不认为这完全是坏事儿。</p>
<p>软件行业未来的图景，不应该只有开源软件，只有商业软件，或者只有AppStore下的软件。这三种不同的模式，互相之间形成了非常良好的补充。</p>
<p>在iPhone/iPod touch和iPad这样的特定领域里，AppStore模式的威力惊人。去看看苹果财报你就会知道这开辟了多大的一个第三方软件市场。智能手机这个概念出现快10年了，从来没有一个平台上，聚集了这么多的第三方开发者，这么多的免费和付费的优秀应用。以前，第三方开发者当然也在赚钱，但是以这样规模和形式聚集在一个平台下，是前所未见的。</p>
<p>假设iPhone OS平台一切都不变，只是去掉AppStore，我们会发现，很多现在已经发财了的第三方开发者，他们还仅仅是在梦想发财而已。所以，一定程度上的封闭也不见得是万恶之源。</p>
<p>正是因为在应用发行的时候，严格的需要苹果公司签署的开发者证书，最大程度地防止了盗版，使得各种付费应用的销量得到了保证。也正是因为有了被很多人诟病的，甚至可以说过于严格的质量审核，才保证了AppStore内的程序都有一定的质量水平，这样就会让消费者喜欢在AppStore里面寻找和购买更多的程序。</p>
<p>更何况，苹果公司在未来的图景上，只是绚烂的一块，不是全部。开源/商业/AppStore三种模式，我认为在未来各有所长，也会各得其所。</p>
<p>我多次强调，喜欢开放的人，心态更要开放。要允许这世界有人不想开源，不想开放，这才是开放的心态。你热爱CopyLeft，你大可以把你的代码都开源了。但是CopyLeft的精神绝不包括强迫别人开源（受授权限制则令当别论）。</p>
<p>我也认同源代码开放的精神，自己也在维护开源项目，但是做这些开源项目，和我做iPhone这样的相对封闭平台上面的项目，完全没有产生任何的冲突。</p>
<p>我乐见在未来开源/商业/AppStore三种模式，各显神通，都蓬勃发展。事实上，开源兴起，并没有杀死商业，反而扩大了我们整个软件行业的视野和疆域。App Store也具有类似的作用，我期待它给我带来更多的惊喜。</p>
<p>本文曾发表于《程序员》杂志10年06期。</p>
]]></content:encoded>
			<wfw:commentRss>http://tiny4.org/blog/2010/09/open-not-only-value/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>iPhone/iPad开发讲座 第二讲 iPhone用户界面设计 Keynote放出</title>
		<link>http://tiny4.org/blog/2010/07/iphone-ipad-design/</link>
		<comments>http://tiny4.org/blog/2010/07/iphone-ipad-design/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 02:35:41 +0000</pubDate>
		<dc:creator>tinyfool</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[讲座]]></category>
		<category><![CDATA[设计]]></category>

		<guid isPermaLink="false">http://tiny4.org/blog/?p=374</guid>
		<description><![CDATA[昨天下午，在公司做了第二讲，来了很多人，还有很多貌似是其他分公司的MM（漂亮的很多，都不认识……）。总共讲了2个多小时，很High，互动也还可以，感谢公司买的实物投影仪，虽然还玩的不熟练，但是用它做这类演示还是很酷的。 这次的keynote主要内容是汉化自苹果开发视频“iPhone User Interface Design”，略有修改。这个keynote其实不仅仅是讲界面具体该怎么设计，而是在讲苹果内部在用的设计方法论，按照什么样的逻辑开展设计流程。我第一次看到这个视频的时候很震撼，看过多次，苹果的设计方法论也许不是全世界最好的，但是在整个行业设计水平都相对低下的当下，这样的方法论，值得所有做苹果平台，和不做苹果平台的设计开发的人员，去了解，去学习，去体会。 点击浏览：iPhone/iPad开发讲座 第二讲 iPhone用户界面设计 公司每次分享活动都有很全面的录像资料保存，但是考虑到很多在内部分享提到的细节都不适于对公众公开，所以，我不准备放出在内部分享会的视频。 我考虑过单独给每个keynote录音，但是试了一下，确实是没有场景就很难high，很难流畅的发挥，且，这涉及到太大的工作量，最近工作非常繁忙，就不进行这方面的尝试了。 但是我准备给每个keynote配一个文本讲义，这一讲和上一讲的讲义的我会考虑在这周末做出来。 相关链接： iPhone/iPad开发讲座 第一讲 IOS开发简介 Keynote放出 iPhone/iPad开发讲座 第二讲 iPhone用户界面设计 Keynote放出 iPhone/iPad开发讲座 第三讲 基础UI和基础编程 Keynote放出 iPhone/iPad开发讲座 第四讲 网络通讯和Xml处理 Keynote放出 iPhone/iPad开发讲座 第五讲 定制视图和多点触摸 Keynote放出 Tiny4Cocoa（做最好的iPhone开发社区、iOS开发社区）]]></description>
			<content:encoded><![CDATA[<p>昨天下午，在公司做了第二讲，来了很多人，还有很多貌似是其他分公司的MM（漂亮的很多，都不认识……）。总共讲了2个多小时，很High，互动也还可以，感谢公司买的实物投影仪，虽然还玩的不熟练，但是用它做这类演示还是很酷的。</p>
<p>这次的keynote主要内容是汉化自苹果开发视频“iPhone User Interface Design”，略有修改。这个keynote其实不仅仅是讲界面具体该怎么设计，而是在讲苹果内部在用的设计方法论，按照什么样的逻辑开展设计流程。我第一次看到这个视频的时候很震撼，看过多次，苹果的设计方法论也许不是全世界最好的，但是在整个行业设计水平都相对低下的当下，这样的方法论，值得所有做苹果平台，和不做苹果平台的设计开发的人员，去了解，去学习，去体会。</p>
<p>点击浏览：<a href="http://www.slideshare.net/tinyfool/iphone-4655243">iPhone/iPad开发讲座 第二讲 iPhone用户界面设计</a></p>
<p>公司每次分享活动都有很全面的录像资料保存，但是考虑到很多在内部分享提到的细节都不适于对公众公开，所以，我不准备放出在内部分享会的视频。</p>
<p>我考虑过单独给每个keynote录音，但是试了一下，确实是没有场景就很难high，很难流畅的发挥，且，这涉及到太大的工作量，最近工作非常繁忙，就不进行这方面的尝试了。</p>
<p>但是我准备给每个keynote配一个文本讲义，这一讲和上一讲的讲义的我会考虑在这周末做出来。</p>
<p>相关链接：<br />
<a href="http://tiny4.org/blog/2010/06/iphone-ipad-ios-development-01/">iPhone/iPad开发讲座 第一讲 IOS开发简介 Keynote放出</a><br />
<a href="http://tiny4.org/blog/2010/07/iphone-ipad-design/">iPhone/iPad开发讲座 第二讲 iPhone用户界面设计 Keynote放出</a><br />
<a href="http://tiny4.org/blog/2010/07/iphone-ipad-ui-keynote-base/">iPhone/iPad开发讲座 第三讲 基础UI和基础编程 Keynote放出</a><br />
<a href="http://tiny4.org/blog/2010/07/iphone-ipad-network-xml-http/">iPhone/iPad开发讲座 第四讲 网络通讯和Xml处理 Keynote放出</a><br />
<a href="http://tiny4.org/blog/2010/08/iphone-ipad-dev-custom-uiview-drawrect-mutil-touch/">iPhone/iPad开发讲座 第五讲 定制视图和多点触摸 Keynote放出</a></p>
<p><a href="http://tiny4cocoa.com/">Tiny4Cocoa（做最好的iPhone开发社区、iOS开发社区）</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tiny4.org/blog/2010/07/iphone-ipad-design/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>碗中的屎尿</title>
		<link>http://tiny4.org/blog/2010/06/shit-in-bow/</link>
		<comments>http://tiny4.org/blog/2010/06/shit-in-bow/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 05:49:55 +0000</pubDate>
		<dc:creator>tinyfool</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[文化]]></category>
		<category><![CDATA[空]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://tiny4.org/blog/?p=353</guid>
		<description><![CDATA[最早听这个故事貌似是我爸讲给我的，后来似乎在《笑林广记》中看到过，不过出处今天不细论了。 话说： 曾经有个地主四体不勤，五谷不分，从来不去看自己的土地，反正有下面人管着也不需要他自己操心。 某天不知道怎么心血来潮，他来到了自己的一块地前，佃户正在给蔬菜浇粪。 他大为惊异，质问佃户，“你们，为什么要往菜上面浇粪，这以后怎么吃？” 佃户答道，“东家，只有这样蔬菜才能长得大，才能好吃。” 他不信，要求佃户给他种的菜一点屎尿都不准浇。 几个月后，特供他的菜终于成熟了，他让下人做好，兴奋的准备吃。谁知道，他吃了一口就吐了出来。那些菜又小，又涩很难吃。 他叫来佃户，问道，“菜怎么这么难吃？真的是因为没有浇粪么？” 佃户，“东家，真的啊，没有浇粪的菜就是难吃的。” “哦，我明白了，去给我舀勺粪，放在碗里！” 另一个关于屎尿的故事，来自小时候看的《加里森敢死队》， 话说： 加里森敢死队的兄弟们，不知道怎么就缴获了一辆坦克，这当然是个宝贝，但是那是战区，弄不到柴油。 兄弟们想到了，酒精也可以用在柴油发动机里面，可是酒精也不好找。 好在他们有会酿酒的人，决定自己寻找土豆来酿酒。这可乐坏了其中一个哥们，他是大酒鬼，很久都没有喝到酒了，于是他很积极的帮助，建设蒸馏的设备（一大堆空油桶连在一起），收集土豆等等。 然而一切都做好了，酒却没有酿出来，原来缺少了酵母。于是会酿酒的兄弟说需要一些大便（里面有很多酵母）放进去，这样才能酿出来。 爱喝酒的哥们急了，说这样怎么能酿酒了，这样酿出来的东西我一定不喝。于是，后面的酿酒工作他也不参与了。 但是，最后酒还是如期酿好了，放到坦克油箱里面，发动机运转正常。大家喝了喝也觉得很好喝，但是爱喝酒的那个哥们就是不喝。大家也没有勉强他。 出发的日子，找不到那个哥们了，后来大家发现，他在放酒的地方睡着了，头天晚上他先是很小心的试了几口，然后是欲罢不能，喝的酩酊大醉。 好了，来点土的，这两个故事告诉我们什么呢？ 我想说，一切事物都有它的规律，也许听起来不那么卫生，那么心旷神怡，但是违背规律是没有办法作出事情的。 一者： 前些日子，一个朋友想做一个基于地理信息的SNS，跟我们一班人谈了几次，大家都只是泼凉水。其实他讲的一切都说的圆，比如有了地理信息，我们拼车的时候就不用在一堆上海的信息里面狂找跟自己住的近的人，而是一开始就会看到本小区的想拼车的人的信息。比如有了地理信息，同一个小区的人可以一起去团购，一起去学车，一起去郊游等等。 这些愿景都很美妙，道理也讲得通。但是这些讲得通的道理都无法说明一个问题，一开始，当交流的氛围没有形成之时，人们为什么会来到这个SNS；来到了这里如果发现一片荒凉，大家会不会留住，会不会继续来等等。其实，不管是什么样的SNS，什么样的社区，什么样的论坛都有一个运营的核心问题，如何开始第一推。 这个问题，从某些网站的成功经验来看也许是很肮脏的，比如淘宝，现在淘宝成为了很多人喜欢的东西，但是在当年，为了让淘宝有足够多的知名度，马云投放广告的方式是非常肮脏的，什么媒体都投，什么样的投放方式都做。人家是强制弹出一个广告条，引诱你点，淘宝是直接弹出一个网站首页来。不仅肮脏而且超级费钱，据我当年得到的数字，淘宝一年的推广费用就可以占到中国互联网当时一年广告总投放量的相当比例。再如，现在很火的人人网，在还叫校内的时候，陈一舟老师是用鸡腿换注册得到了大量学生用户的当年，陈一舟老师还没买到校内时，5Q跟校内竞争时，曾经用鸡腿去吸引学生注册，不过据说有人去5Q注册了50个帐号，得到了50个鸡腿以后，跑到校内去炫耀。，等等等等。（注释：这里引了肮脏的例子，是用来说，第一推之难，成本之高，而不是鼓励这种行为，倡导这种行为。如果你看到了这段，说，“哦，做网站就是要流氓啊”，那你还是别回复告诉我，我会伤心的。且，我觉得你就很像第一个故事里面的地主了，首先，网站不流氓也有可能成功，其次，大多数顿悟了去做流氓的，做的都太拙劣，连流氓都做不好，费钱，费力，害人，最后还是什么都没成。） 当年我见某投资人最大的收获就是他给我们讲，携程发展到现在，就仅拿在地铁发传单来看，发展一个新会员需要的成本是多少钱。当时很惊诧，然而一点一点数字算下去，你才知道真的需要那么多钱。 所以，很多事情，在我们空想的时候，他可能是自然就可以圆的，道理都对，但是实际的推动力，那些肮脏的，也许不肮脏的，昂贵的，也许不昂贵的推广的成本，很容易就被想当然的忽略掉了。 再者： 我看到过很多项目的兴衰，有经验的项目管理者，也许大词概念未必懂，但是项目的每个要点：进度，质量，人力安排都把握的很紧。然后，可能会慢慢的在项目中引入各种新鲜的技术思想，实践检验，好的留住。没有经验的项目管理者，总是自以为是，按照自己的逻辑先胡乱安排一通，然而，遇到了危机，开始抓耳挠腮，最后决定找到几个银弹，要么也单元测试一把，要么也来个敏捷。幻想有一把剑，叫做尚方，抽出来以后，神鬼妖狐，魑魅魍魉，老板员工，Bug进度，一切都安分守己，听其调遣。 做技术的人也往往是这样，玩数据库的，索引优化不懂，负载缓存不精。天天看着世界一流领先的网站是怎么发展的，人家NOSQL了，我也要NOSQL。可是你知道人家是日均几千万流量以后才开始玩NOSQL的么？你这日均10万不到瞎掺活什么？我从来不反对Buzzword，我喜欢云计算，我喜欢NOSQL，但是大喊着喜欢这些概念的家伙们，你们了解你们所说需要的东西的边界了么？什么样级别的负载，什么样的逻辑适合云计算？什么样的负载什么样的逻辑适合NOSQL？你们想过没有？ Google牛屄么？牛屄。但是Google玩的东西，别人玩不了么？不见得。有了Google file system，map reduce的论文后，业界都明白了，哦，原来就是这么东西啊。Hadoop不是有了么？开源都有实现了，不难吧。实话说，要是不论真实负载能力，计算机专业刚毕业的学生，也应该有能力按照论文的思路实现出类似Hadoop这样的东西。 那么我是在说Google一点不牛屄么？那当然不是，人家先走到那个流量，那个负载，那个存储压力，所以先想到这个方案，这就叫牛屄。人家公开了Google file system，map reduce的思路，Ok，我们可以超越Google了么？不能，你搭出个环境放了200T的数据，沾沾自喜，看我也是T级车了，先别美。人家已经在构建 P级存储了，人家在玩咖啡因了。人家甚至不是为了牛屄，人家搞这么大存储就是为了解决现实存在的问题。就算你再有深度，再有领悟能力，你没有站在那块土地上，你怎么知道那块土地的重力加速度是多少啊！想在思想上超越Google，好，你现在流量和存储上超过去，我觉得你就有戏了。 再说苹果，到了今时今日，如果你还以为这家公司最近股票升到全美第二的市值，只是他们的工业设计水平高，找了个设计过高档马桶的设计师，那你洗洗睡吧，别玩互联网了，别玩IT了，这边热，找个凉快地方待会儿吧。]]></description>
			<content:encoded><![CDATA[<p>最早听这个故事貌似是我爸讲给我的，后来似乎在《笑林广记》中看到过，不过出处今天不细论了。</p>
<p>话说：<br />
<blockquote>曾经有个地主四体不勤，五谷不分，从来不去看自己的土地，反正有下面人管着也不需要他自己操心。</p>
<p>某天不知道怎么心血来潮，他来到了自己的一块地前，佃户正在给蔬菜浇粪。</p>
<p>他大为惊异，质问佃户，“你们，为什么要往菜上面浇粪，这以后怎么吃？”</p>
<p>佃户答道，“东家，只有这样蔬菜才能长得大，才能好吃。”</p>
<p>他不信，要求佃户给他种的菜一点屎尿都不准浇。</p>
<p>几个月后，特供他的菜终于成熟了，他让下人做好，兴奋的准备吃。谁知道，他吃了一口就吐了出来。那些菜又小，又涩很难吃。</p>
<p>他叫来佃户，问道，“菜怎么这么难吃？真的是因为没有浇粪么？”</p>
<p>佃户，“东家，真的啊，没有浇粪的菜就是难吃的。”</p>
<p style="font-size:24px;color:red;">“哦，我明白了，去给我舀勺粪，放在碗里！”
</p>
</blockquote>
<p>另一个关于屎尿的故事，来自小时候看的《加里森敢死队》，</p>
<p>话说：</p>
<blockquote><p>加里森敢死队的兄弟们，不知道怎么就缴获了一辆坦克，这当然是个宝贝，但是那是战区，弄不到柴油。</p>
<p>兄弟们想到了，酒精也可以用在柴油发动机里面，可是酒精也不好找。</p>
<p>好在他们有会酿酒的人，决定自己寻找土豆来酿酒。这可乐坏了其中一个哥们，他是大酒鬼，很久都没有喝到酒了，于是他很积极的帮助，建设蒸馏的设备（一大堆空油桶连在一起），收集土豆等等。</p>
<p>然而一切都做好了，酒却没有酿出来，原来缺少了酵母。于是会酿酒的兄弟说需要一些大便（里面有很多酵母）放进去，这样才能酿出来。</p>
<p>爱喝酒的哥们急了，说这样怎么能酿酒了，这样酿出来的东西我一定不喝。于是，后面的酿酒工作他也不参与了。</p>
<p>但是，最后酒还是如期酿好了，放到坦克油箱里面，发动机运转正常。大家喝了喝也觉得很好喝，但是爱喝酒的那个哥们就是不喝。大家也没有勉强他。</p>
<p>出发的日子，找不到那个哥们了，后来大家发现，他在放酒的地方睡着了，头天晚上他先是很小心的试了几口，然后是欲罢不能，喝的酩酊大醉。
</p></blockquote>
<p>好了，来点土的，这两个故事告诉我们什么呢？</p>
<p>我想说，一切事物都有它的规律，也许听起来不那么卫生，那么心旷神怡，但是违背规律是没有办法作出事情的。</p>
<p>一者：</p>
<blockquote><p>前些日子，一个朋友想做一个基于地理信息的SNS，跟我们一班人谈了几次，大家都只是泼凉水。其实他讲的一切都说的圆，比如有了地理信息，我们拼车的时候就不用在一堆上海的信息里面狂找跟自己住的近的人，而是一开始就会看到本小区的想拼车的人的信息。比如有了地理信息，同一个小区的人可以一起去团购，一起去学车，一起去郊游等等。</p>
<p>这些愿景都很美妙，道理也讲得通。但是这些讲得通的道理都无法说明一个问题，一开始，当交流的氛围没有形成之时，人们为什么会来到这个SNS；来到了这里如果发现一片荒凉，大家会不会留住，会不会继续来等等。其实，不管是什么样的SNS，什么样的社区，什么样的论坛都有一个运营的核心问题，如何开始第一推。</p>
<p>这个问题，从某些网站的成功经验来看也许是很肮脏的，比如淘宝，现在淘宝成为了很多人喜欢的东西，但是在当年，为了让淘宝有足够多的知名度，马云投放广告的方式是非常肮脏的，什么媒体都投，什么样的投放方式都做。人家是强制弹出一个广告条，引诱你点，淘宝是直接弹出一个网站首页来。不仅肮脏而且超级费钱，据我当年得到的数字，淘宝一年的推广费用就可以占到中国互联网当时一年广告总投放量的相当比例。<del datetime="2010-06-30T14:02:44+00:00">再如，现在很火的人人网，在还叫校内的时候，陈一舟老师是用鸡腿换注册得到了大量学生用户的</del><ins datetime="2010-06-30T14:02:44+00:00">当年，陈一舟老师还没买到校内时，5Q跟校内竞争时，曾经用鸡腿去吸引学生注册，不过据说有人去5Q注册了50个帐号，得到了50个鸡腿以后，跑到校内去炫耀。</ins>，等等等等。<span style="color:red;">（注释：这里引了肮脏的例子，是用来说，第一推之难，成本之高，而不是鼓励这种行为，倡导这种行为。如果你看到了这段，说，“哦，做网站就是要流氓啊”，那你还是别回复告诉我，我会伤心的。且，我觉得你就很像第一个故事里面的地主了，首先，网站不流氓也有可能成功，其次，大多数顿悟了去做流氓的，做的都太拙劣，连流氓都做不好，费钱，费力，害人，最后还是什么都没成。）</span></p>
<p>当年我见某投资人最大的收获就是他给我们讲，携程发展到现在，就仅拿在地铁发传单来看，发展一个新会员需要的成本是多少钱。当时很惊诧，然而一点一点数字算下去，你才知道真的需要那么多钱。</p>
<p>所以，很多事情，在我们空想的时候，他可能是自然就可以圆的，道理都对，但是实际的推动力，那些肮脏的，也许不肮脏的，昂贵的，也许不昂贵的推广的成本，很容易就被想当然的忽略掉了。</p></blockquote>
<p>再者：</p>
<blockquote><p>我看到过很多项目的兴衰，有经验的项目管理者，也许大词概念未必懂，但是项目的每个要点：进度，质量，人力安排都把握的很紧。然后，可能会慢慢的在项目中引入各种新鲜的技术思想，实践检验，好的留住。没有经验的项目管理者，总是自以为是，按照自己的逻辑先胡乱安排一通，然而，遇到了危机，开始抓耳挠腮，最后决定找到几个银弹，要么也单元测试一把，要么也来个敏捷。幻想有一把剑，叫做尚方，抽出来以后，神鬼妖狐，魑魅魍魉，老板员工，Bug进度，一切都安分守己，听其调遣。</p>
<p>做技术的人也往往是这样，玩数据库的，索引优化不懂，负载缓存不精。天天看着世界一流领先的网站是怎么发展的，人家NOSQL了，我也要NOSQL。可是你知道人家是日均几千万流量以后才开始玩NOSQL的么？你这日均10万不到瞎掺活什么？我从来不反对Buzzword，我喜欢云计算，我喜欢NOSQL，但是大喊着喜欢这些概念的家伙们，你们了解你们所说需要的东西的边界了么？什么样级别的负载，什么样的逻辑适合云计算？什么样的负载什么样的逻辑适合NOSQL？你们想过没有？</p>
<p>Google牛屄么？牛屄。但是Google玩的东西，别人玩不了么？不见得。有了Google file system，map reduce的论文后，业界都明白了，哦，原来就是这么东西啊。Hadoop不是有了么？开源都有实现了，不难吧。实话说，要是不论真实负载能力，计算机专业刚毕业的学生，也应该有能力按照论文的思路实现出类似Hadoop这样的东西。</p>
<p>那么我是在说Google一点不牛屄么？那当然不是，人家先走到那个流量，那个负载，那个存储压力，所以先想到这个方案，这就叫牛屄。人家公开了Google file system，map reduce的思路，Ok，我们可以超越Google了么？不能，你搭出个环境放了200T的数据，沾沾自喜，看我也是T级车了，先别美。人家已经在构建 P级存储了，人家在玩咖啡因了。人家甚至不是为了牛屄，人家搞这么大存储就是为了解决现实存在的问题。就算你再有深度，再有领悟能力，你没有站在那块土地上，你怎么知道那块土地的重力加速度是多少啊！想在思想上超越Google，好，你现在流量和存储上超过去，我觉得你就有戏了。</p>
<p>再说苹果，到了今时今日，如果你还以为这家公司最近股票升到全美第二的市值，只是他们的工业设计水平高，找了个设计过高档马桶的设计师，那你洗洗睡吧，别玩互联网了，别玩IT了，这边热，找个凉快地方待会儿吧。
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://tiny4.org/blog/2010/06/shit-in-bow/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>iPhone/iPad开发讲座 第一讲 IOS开发简介 Keynote放出</title>
		<link>http://tiny4.org/blog/2010/06/iphone-ipad-ios-development-01/</link>
		<comments>http://tiny4.org/blog/2010/06/iphone-ipad-ios-development-01/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 15:58:34 +0000</pubDate>
		<dc:creator>tinyfool</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://tiny4.org/blog/?p=343</guid>
		<description><![CDATA[盛大创新院有很多同事都有iPhone或者iPad，我刚到公司也有别的项目组的软件需要iPhone或者iPad客户端，找我咨询。所以我就有了在公司搞个iPhone/iPad开发讲座的念头。前些日子太忙，公司内场次也没安排开，今天终于可以搞了。 不过也算是一波三折，前两天我眼睛得了麦粒肿，第一天疼痛难忍几乎什么都干不了，下午去医院开了药。第二天在家里静养敷药等等，睡了一天。项目耽误了很多进度，讲座的Keynote也没时间做。所以第一讲的Keynote实际上是今天白天几个小时里面做出来的，刚刚全都做好就去讲，未免有点仓卒，内容有点凌乱。 讲的效果还好，大家也很热情，结果本来一小时的讲座多讲了快40分钟才结束，虽然耽误了一个很重要饭局，但是跟另一班同事吃了顿烤肉，喝冰凉的啤酒，也非常的快乐，而且讲座整个过程我都很High，讲完大汗淋漓，估计也有减肥效果，快哉快哉。 点击浏览：iPhone/iPad开发讲座 第一讲 Ios开发简介 内容大量参考了苹果的开发文档，以及斯坦福的iPhone开发开放课程CS193P，建议英语好且有志于iPhone开发的同学下载学习之。 下期准备介绍苹果推荐的iPhone应用设计方法。 相关链接： iPhone/iPad开发讲座 第一讲 IOS开发简介 Keynote放出 iPhone/iPad开发讲座 第二讲 iPhone用户界面设计 Keynote放出 iPhone/iPad开发讲座 第三讲 基础UI和基础编程 Keynote放出 iPhone/iPad开发讲座 第四讲 网络通讯和Xml处理 Keynote放出 iPhone/iPad开发讲座 第五讲 定制视图和多点触摸 Keynote放出 Tiny4Cocoa（做最好的iPhone开发社区、iOS开发社区）]]></description>
			<content:encoded><![CDATA[<p>盛大创新院有很多同事都有iPhone或者iPad，我刚到公司也有别的项目组的软件需要iPhone或者iPad客户端，找我咨询。所以我就有了在公司搞个iPhone/iPad开发讲座的念头。前些日子太忙，公司内场次也没安排开，今天终于可以搞了。</p>
<p>不过也算是一波三折，前两天我眼睛得了麦粒肿，第一天疼痛难忍几乎什么都干不了，下午去医院开了药。第二天在家里静养敷药等等，睡了一天。项目耽误了很多进度，讲座的Keynote也没时间做。所以第一讲的Keynote实际上是今天白天几个小时里面做出来的，刚刚全都做好就去讲，未免有点仓卒，内容有点凌乱。</p>
<p>讲的效果还好，大家也很热情，结果本来一小时的讲座多讲了快40分钟才结束，虽然耽误了一个很重要饭局，但是跟另一班同事吃了顿烤肉，喝冰凉的啤酒，也非常的快乐，而且讲座整个过程我都很High，讲完大汗淋漓，估计也有减肥效果，快哉快哉。</p>
<p>点击浏览：<a href="http://www.slideshare.net/tinyfool/iphoneipad-ios" title="iPhone/iPad开发讲座  第一讲 Ios开发简介">iPhone/iPad开发讲座  第一讲 Ios开发简介</a></p>
<p>内容大量参考了苹果的开发文档，以及斯坦福的iPhone开发开放课程CS193P，建议英语好且有志于iPhone开发的同学下载学习之。</p>
<p>下期准备介绍苹果推荐的iPhone应用设计方法。</p>
<p>相关链接：<br />
<a href="http://tiny4.org/blog/2010/06/iphone-ipad-ios-development-01/">iPhone/iPad开发讲座 第一讲 IOS开发简介 Keynote放出</a><br />
<a href="http://tiny4.org/blog/2010/07/iphone-ipad-design/">iPhone/iPad开发讲座 第二讲 iPhone用户界面设计 Keynote放出</a><br />
<a href="http://tiny4.org/blog/2010/07/iphone-ipad-ui-keynote-base/">iPhone/iPad开发讲座 第三讲 基础UI和基础编程 Keynote放出</a><br />
<a href="http://tiny4.org/blog/2010/07/iphone-ipad-network-xml-http/">iPhone/iPad开发讲座 第四讲 网络通讯和Xml处理 Keynote放出</a><br />
<a href="http://tiny4.org/blog/2010/08/iphone-ipad-dev-custom-uiview-drawrect-mutil-touch/">iPhone/iPad开发讲座 第五讲 定制视图和多点触摸 Keynote放出</a></p>
<p><a href="http://tiny4cocoa.com/">Tiny4Cocoa（做最好的iPhone开发社区、iOS开发社区）</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tiny4.org/blog/2010/06/iphone-ipad-ios-development-01/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>如何使用Objective-C获取iPhone/iPad内全部字体的Fontfamily和FontName？</title>
		<link>http://tiny4.org/blog/2010/06/fontfamily-name-fontname-ipad-iphone/</link>
		<comments>http://tiny4.org/blog/2010/06/fontfamily-name-fontname-ipad-iphone/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 14:03:28 +0000</pubDate>
		<dc:creator>tinyfool</dc:creator>
				<category><![CDATA[代码样例]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[字体]]></category>

		<guid isPermaLink="false">http://tiny4.org/blog/?p=336</guid>
		<description><![CDATA[How to use Objective-C get all fontfamily name and fontname in an iPad or iPhone? 代码很简单，效果就是把全部字体家族和字体名都输出到调试窗口。 NSArray* familys = [UIFont familyNames]; for (int i = 0; i&#60;[familys count]; i++) { NSString* family = [familys objectAtIndex:i]; NSLog(@&#34;rnrnFontfamily:%@rn=====&#34;,family); NSArray* fonts = [UIFont fontNamesForFamilyName:family]; for (int j = 0; j&#60;[fonts count]; j++) { NSLog(@&#34;%@&#34;,[fonts objectAtIndex:j]); } }]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://tiny4.org/blog/wp-content/plugins/wordpress-code-snippet/scripts/shBrushCpp.js"></script>
<p>How to use Objective-C get all fontfamily name  and fontname in an iPad or iPhone?</p>
<p>代码很简单，效果就是把全部字体家族和字体名都输出到调试窗口。<pre class="brush: cpp">	NSArray* familys = [UIFont familyNames];
	
	for (int i = 0; i&lt;[familys count]; i++) {
		
		NSString* family = [familys objectAtIndex:i];
		NSLog(@&quot;rnrnFontfamily:%@rn=====&quot;,family);
	
		NSArray* fonts = [UIFont fontNamesForFamilyName:family];
	
		for (int j = 0; j&lt;[fonts count]; j++) {
		
			NSLog(@&quot;%@&quot;,[fonts objectAtIndex:j]);
		}
	}
</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://tiny4.org/blog/2010/06/fontfamily-name-fontname-ipad-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WWDC 2010的一些数字、细节以及我的感受</title>
		<link>http://tiny4.org/blog/2010/06/wwdc-2010-ipad-iphone-pdf/</link>
		<comments>http://tiny4.org/blog/2010/06/wwdc-2010-ipad-iphone-pdf/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 16:13:29 +0000</pubDate>
		<dc:creator>tinyfool</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[空]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://tiny4.org/blog/?p=311</guid>
		<description><![CDATA[WWDC 2010开幕那晚，我一夜无眠，但没有时间看任何直播，我正在赶一个项目的进度。一天后，我从podcast下了那夜的Keynote，然后隔了几天，项目不那么紧张了，我才有时间看。有很多数字让我很有感受，这些日子跟一些朋友、跟一些同事零星的聊了一下，现在也分享给大家，更重要的是给自己记录一下，免得忘了。 一、当然是在59天内卖出了200万台iPad，平均3秒钟卖出一台。这个数字非常惊人，要知道很多号称流行一时的手机总的出货量也就是百万左右。一个月前，当苹果公布28天卖出了100万台iPad的时候，有人称赞，有人怀疑，有人认为这一旺盛的势头会很快降低。现在数字再次证明了一切。说起来，我的《iPad革命：开发者的机遇和挑战》几乎是最早的正面表扬iPad的文章，可惜因为投稿的原因发布到我自己的Blog的时间比较晚。iPad发布以后最好玩的一个现象是，一开始没见到这个东西的真身时，各种猜测，各种批评满天飞，等到各大媒体的记者们、Blogger们拿到手了以后，每个人都是在表扬，呵呵。 二、短短的两个月的时间，App store里面已经有了8500个iPad程序，这些程序被下载了3500万次，按照200万iPad计算，平均一个iPad上安装了17个程序。说到这个数字的时候，Jobs老师连说了两遍“That is a great number.” 这组数字非常值得玩味，我手中没有iPhone的平均程序数。但我怀疑，这个数字可能并不高，甚至可能低于17或者仅仅是相当。因为我们知道很多人买了iPhone仅仅是为了打电话，也就是说，iPhone有一个杀手应用，打电话。而iPad不同，它没有任何的杀手应用，每个买了iPad的人都应该买点（也许花钱，也许免费）什么app，要不然这个iPad看起来就太傻了。 几个月前，huoju同学的那个号称是中国前10个iPad之一的iPad到达上海的时候，我们公司一群同事正在钱柜K歌，iPad到了，开封以后，大家先是很兴奋的围观，然后是讨论，最后是把它弃置一旁，原因很简单，没有任何应用和数据的iPad看起来好傻，毫无用处。 另外一个值得玩味的点在于，35,000,000/8500约等于4118，也就是说平均每个应用有4118次下载。这个平台简直就是狼少肉多的状态，不赶快杀过来太傻了。以上的分析我跟几个朋友讲过后，他们第一反应就是本来要先做iPhone版的决定先做iPad版；本来不想马上杀入苹果平台的，也准备先做个自己软件的iPad版本。 还有一点，就是从我得到的反馈来看，虽然iPad可以完美支持iPhone程序（如果你觉得不完美，我没话说），但是大家很少会喜欢在iPad上面安装iPhone程序。我不知道Jobs老师之前是否想到了这点。那天聊到这个问题的时候，我有朋友说，那未来苹果会不会直接关闭这个支持呢？我认为不会，虽然大家喜欢在iPad上面用iPad应用，但是遇到一些特殊场合，以及相应iPad版本确实还没有推出的时候，大家也会用iPhone版本的。例如，也许即使没有iPad版本的植物大战僵尸，你也不会在iPad上面去玩iPhone版本。但是网银程序呢？支付程序呢？这些东西也许你更在意的是方便，而不是体验。 这里多说一点，Jobs不是神，苹果也不是神。在苹果一个最牛的设计方法的Keynote里面，大大夸奖了某公司的生化危机类游戏，称里面的软操纵杆的设计很好，溢美之词铺天盖地，但是，从我得到的反馈来看，大家喜欢的游戏，往往都是有鲜明iPad/iPhone操作风格的游戏。简言之就是，看到什么点什么的游戏。我的女儿才1岁半，但是看到我们玩iPad版植物大战僵尸的时候，她会主动去点那些飘动的小太阳，原因就是那东西太直观了，完全不用教育，太好用了，完全不费脑子。这样的东西，在iPad/iPhone上最有生命力。 另外值得讨论的例子是FieldRunner游戏，此游戏很早就有iPhone版本，我玩过多次完全不感冒。但是现在有了iPad版本，什么都没有改变，操作方式没变，界面没变，甚至地图都没有变，分辨率提高以后，我爱不释手。而且在公司掀起了我们整个一个小组的游戏沉迷高潮，甚至有我们公司某大牛，业界著名的技术高手，每天中午吃饭的时候，都捧着iPad玩FieldRunner游戏，好吃的都被我们抢走了都不知道。 三、65天内，电子书下载了500万次，平均一个iPad上2.5本书，按照在iPad上面有书的美国前五大出版社的统计，iBookStore的市场份额已经达到了整个电子书市场份额的22%。 虽然统计方法也许不是最公允的，但是仅仅两个多月22%的市场份额显然是好的不得了的成绩。 我更关注的是这次iBooks里加入了PDF的支持。这家公司以前是不懂得怎么解析PDF么？显然不是。 其实iPad出现之前，我就考察过很多可以读PDF的iPhone电子书阅读器（很严肃的考察，很多都是我真金白银买的，有些是免费的），效果都完全不可接受。原因很简单，流行的PDF文件多半都是用打印方式生成，是基于排版格式的，不是流式文本。所以，内容很难重排，如果保持排版样式，显示全部则很难看清，显示局部则很难阅读全貌。基本上可以说，这类软件从技术上是可行的，从实践上是毫无意义的（当然那东西确实可以读，只是实在是一种折磨）。 而iPad的分辨率下，想得到完美的PDF显示效果那实在是太容易了。而熟悉Mac开发的同学们，应该知道Mac平台的PDF支持是相当的好，有现成的API可以解析生成等等，iPad的SDK（也就是IOS 3.2 SDK）里面也包含了支持PDF的各种API。那么苹果为什么不在iPad发布伊始就在iBooks里面支持PDF呢？ 基于我对Jobs老师和这家公司的认识，我认为这是因为，他们在认为一个东西可以完美实现之前，是绝对不会拿出来的，比如复制粘贴，比如多任务（这个我未来会有专门的技术文讨论），比如这次的PDF。 他们在等的应该就是iPhone 4，在等iPhone 4的Retina屏幕，在这个分辨率下，屏幕虽小，但是PDF是可以完美显示的。 我认为，iBooks支持PDF，iBooks支持iPhone，iPhone推出Retina屏幕，这三件事情的时间点太过巧合，绝对是有紧密关联的。 Retina屏幕绝不是某些人想象的，刚好有了，就刚好被放到了iPhone里面，耍耍酷这么简单。这就跟iPhone的Cpu一样，iPhone 3G是无法支持新的多任务功能的，那个功能必须有Samsung S5PC100 ARM Cortex-A8（iPhone 3GS）或者苹果A4才能支持。所以，你可以想见，在3GS切换到A8的时候，也许刚刚被在IOS 4中发布的多任务功能就已经在策划或者实现中了。 四、每周有15000个程序被提交到AppStore，包含30种语言，95%的程序可以在7天内审核过。剩下的5%，有三种最大的可能性： 程序的功能和开发者描述的不一致，会被拒绝。 使用了私有的API，苹果不允许开发者使用私有API，因为升级系统的时候，私有API可能会失效，程序崩溃，用户会很不满意。（当然有时候开发者也是不得已为之，比如某功能苹果的程序可以实现，为什么我们就不能实现。有些问题上，最后苹果和开发者达成了妥协，私有API可以调用，未来可能会变成公开API，例如UIGetScreenImage();） 程序会崩溃，这当然会被拒绝。 这一段显然是Jobs老师在自吹自擂，当然从我个人的经历以及我收到的一些反馈来看，AppStore审核效率确实是有大幅的提高。但是遇到了一些事件的时候，还是会大幅下降，比如iPad发布那段时间，所有iPhone程序的审核貌似都放慢了。 这场keynote显然还有更耀眼的明星iPhone 4，就是这两天的消息，预售第一天就突破了60万订货量，看来一个新的销售神话要诞生了，：）。]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://tiny4.org/blog/wp-content/plugins/wordpress-code-snippet/scripts/shBrushCpp.js"></script>
<p>WWDC 2010开幕那晚，我一夜无眠，但没有时间看任何直播，我正在赶一个项目的进度。一天后，我从podcast下了那夜的Keynote，然后隔了几天，项目不那么紧张了，我才有时间看。有很多数字让我很有感受，这些日子跟一些朋友、跟一些同事零星的聊了一下，现在也分享给大家，更重要的是给自己记录一下，免得忘了。</p>
<p><strong>一、</strong>当然是在59天内卖出了200万台iPad，平均3秒钟卖出一台。这个数字非常惊人，要知道很多号称流行一时的手机总的出货量也就是百万左右。一个月前，当苹果公布28天卖出了100万台iPad的时候，有人称赞，有人怀疑，有人认为这一旺盛的势头会很快降低。现在数字再次证明了一切。说起来，我的《<a href="http://tiny4.org/blog/2010/05/ipad-revolution-developer/">iPad革命：开发者的机遇和挑战</a>》几乎是最早的正面表扬iPad的文章，可惜因为投稿的原因发布到我自己的Blog的时间比较晚。iPad发布以后最好玩的一个现象是，一开始没见到这个东西的真身时，各种猜测，各种批评满天飞，等到各大媒体的记者们、Blogger们拿到手了以后，每个人都是在表扬，呵呵。</p>
<p><strong>二、</strong>短短的两个月的时间，App store里面已经有了8500个iPad程序，这些程序被下载了3500万次，按照200万iPad计算，平均一个iPad上安装了17个程序。说到这个数字的时候，Jobs老师连说了两遍“That is a great number.” </p>
<p>这组数字非常值得玩味，我手中没有iPhone的平均程序数。但我怀疑，这个数字可能并不高，甚至可能低于17或者仅仅是相当。因为我们知道很多人买了iPhone仅仅是为了打电话，也就是说，iPhone有一个杀手应用，打电话。而iPad不同，它没有任何的杀手应用，每个买了iPad的人都应该买点（也许花钱，也许免费）什么app，要不然这个iPad看起来就太傻了。</p>
<p>几个月前，<a href="http://en.virushuo.com/">huoju</a>同学的那个号称是中国前10个iPad之一的iPad到达上海的时候，我们公司一群同事正在钱柜K歌，iPad到了，开封以后，大家先是很兴奋的围观，然后是讨论，最后是把它弃置一旁，原因很简单，没有任何应用和数据的iPad看起来好傻，毫无用处。</p>
<p>另外一个值得玩味的点在于，35,000,000/8500约等于4118，也就是说平均每个应用有4118次下载。这个平台简直就是狼少肉多的状态，不赶快杀过来太傻了。以上的分析我跟几个朋友讲过后，他们第一反应就是本来要先做iPhone版的决定先做iPad版；本来不想马上杀入苹果平台的，也准备先做个自己软件的iPad版本。</p>
<p>还有一点，就是从我得到的反馈来看，虽然iPad可以完美支持iPhone程序（如果你觉得不完美，我没话说），但是大家很少会喜欢在iPad上面安装iPhone程序。我不知道Jobs老师之前是否想到了这点。那天聊到这个问题的时候，我有朋友说，那未来苹果会不会直接关闭这个支持呢？我认为不会，虽然大家喜欢在iPad上面用iPad应用，但是遇到一些特殊场合，以及相应iPad版本确实还没有推出的时候，大家也会用iPhone版本的。例如，也许即使没有iPad版本的植物大战僵尸，你也不会在iPad上面去玩iPhone版本。但是网银程序呢？支付程序呢？这些东西也许你更在意的是方便，而不是体验。</p>
<p>这里多说一点，Jobs不是神，苹果也不是神。在苹果一个最牛的设计方法的Keynote里面，大大夸奖了某公司的生化危机类游戏，称里面的软操纵杆的设计很好，溢美之词铺天盖地，但是，从我得到的反馈来看，大家喜欢的游戏，往往都是有鲜明iPad/iPhone操作风格的游戏。简言之就是，看到什么点什么的游戏。我的女儿才1岁半，但是看到我们玩iPad版植物大战僵尸的时候，她会主动去点那些飘动的小太阳，原因就是那东西太直观了，完全不用教育，太好用了，完全不费脑子。这样的东西，在iPad/iPhone上最有生命力。</p>
<p>另外值得讨论的例子是FieldRunner游戏，此游戏很早就有iPhone版本，我玩过多次完全不感冒。但是现在有了iPad版本，什么都没有改变，操作方式没变，界面没变，甚至地图都没有变，分辨率提高以后，我爱不释手。而且在公司掀起了我们整个一个小组的游戏沉迷高潮，甚至有我们公司某大牛，业界著名的技术高手，每天中午吃饭的时候，都捧着iPad玩FieldRunner游戏，好吃的都被我们抢走了都不知道。</p>
<p><strong>三、</strong>65天内，电子书下载了500万次，平均一个iPad上2.5本书，按照在iPad上面有书的美国前五大出版社的统计，iBookStore的市场份额已经达到了整个电子书市场份额的22%。</p>
<p>虽然统计方法也许不是最公允的，但是仅仅两个多月22%的市场份额显然是好的不得了的成绩。</p>
<p>我更关注的是这次iBooks里加入了PDF的支持。这家公司以前是不懂得怎么解析PDF么？显然不是。</p>
<p>其实iPad出现之前，我就考察过很多可以读PDF的iPhone电子书阅读器（很严肃的考察，很多都是我真金白银买的，有些是免费的），效果都完全不可接受。原因很简单，流行的PDF文件多半都是用打印方式生成，是基于排版格式的，不是流式文本。所以，内容很难重排，如果保持排版样式，显示全部则很难看清，显示局部则很难阅读全貌。基本上可以说，这类软件从技术上是可行的，从实践上是毫无意义的（当然那东西确实可以读，只是实在是一种折磨）。</p>
<p>而iPad的分辨率下，想得到完美的PDF显示效果那实在是太容易了。而熟悉Mac开发的同学们，应该知道Mac平台的PDF支持是相当的好，有现成的API可以解析生成等等，iPad的SDK（也就是IOS 3.2 SDK）里面也包含了支持PDF的各种API。那么苹果为什么不在iPad发布伊始就在iBooks里面支持PDF呢？</p>
<p>基于我对Jobs老师和这家公司的认识，我认为这是因为，他们在认为一个东西可以完美实现之前，是绝对不会拿出来的，比如复制粘贴，比如多任务（这个我未来会有专门的技术文讨论），比如这次的PDF。</p>
<p>他们在等的应该就是iPhone 4，在等iPhone 4的Retina屏幕，在这个分辨率下，屏幕虽小，但是PDF是可以完美显示的。</p>
<p>我认为，iBooks支持PDF，iBooks支持iPhone，iPhone推出Retina屏幕，这三件事情的时间点太过巧合，绝对是有紧密关联的。</p>
<p>Retina屏幕绝不是某些人想象的，刚好有了，就刚好被放到了iPhone里面，耍耍酷这么简单。这就跟iPhone的Cpu一样，iPhone 3G是无法支持新的多任务功能的，那个功能必须有Samsung S5PC100 ARM Cortex-A8（iPhone 3GS）或者苹果A4才能支持。所以，你可以想见，在3GS切换到A8的时候，也许刚刚被在IOS 4中发布的多任务功能就已经在策划或者实现中了。</p>
<p>四、每周有15000个程序被提交到AppStore，包含30种语言，95%的程序可以在7天内审核过。剩下的5%，有三种最大的可能性：</p>
<ol>
<li>程序的功能和开发者描述的不一致，会被拒绝。</li>
<li>
使用了私有的API，苹果不允许开发者使用私有API，因为升级系统的时候，私有API可能会失效，程序崩溃，用户会很不满意。（当然有时候开发者也是不得已为之，比如某功能苹果的程序可以实现，为什么我们就不能实现。有些问题上，最后苹果和开发者达成了妥协，私有API可以调用，未来可能会变成公开API，例如UIGetScreenImage();）</li>
<li>程序会崩溃，这当然会被拒绝。</li>
</ol>
<p>这一段显然是Jobs老师在自吹自擂，当然从我个人的经历以及我收到的一些反馈来看，AppStore审核效率确实是有大幅的提高。但是遇到了一些事件的时候，还是会大幅下降，比如iPad发布那段时间，所有iPhone程序的审核貌似都放慢了。</p>
<p>这场keynote显然还有更耀眼的明星iPhone 4，就是这两天的消息，预售第一天就突破了60万订货量，看来一个新的销售神话要诞生了，：）。</p>
]]></content:encoded>
			<wfw:commentRss>http://tiny4.org/blog/2010/06/wwdc-2010-ipad-iphone-pdf/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>关于腾讯推出QQ for android软件事件的短评</title>
		<link>http://tiny4.org/blog/2010/03/qq-android-iphone/</link>
		<comments>http://tiny4.org/blog/2010/03/qq-android-iphone/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 02:54:43 +0000</pubDate>
		<dc:creator>tinyfool</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[qq]]></category>

		<guid isPermaLink="false">http://tiny4.org/blog/?p=158</guid>
		<description><![CDATA[这两天，腾讯推出了QQ for android。和QQ for iPhone的好评如潮不同，这款软件受到了很多批评，仅仅在Twitter上面我就看到了很多： @LifeNT：怎么看都觉得腾讯的android qq很山寨！ @tonyq0802：原来官方那个的android的qq是固定在480*360分辨率的 据说milestone登录的时候那个qq企鹅就被拉成长企鹅了 @Beichen：QQ for Android 体验好差，登录界面不能横屏。 @siyet：当我用milestone进入qq 看到那张被生生拉长的小企鹅的时候 我的脸也长了~~~ 小公司不针对两个分辨率做优化也罢了 可是腾讯。。。丫的 我就不一一罗列了，大多数都是批评在milestone上面的分辨率问题。 我在twitter上面做了一些短评： 对Android QQ的抱怨颇多，证明了我说过的话，Android兼容性是个大问题。QQ不是游戏，但也有分辨率不匹配带来的用户批评了，而出问题的机器，开发者可能听说都没听说过。所以开发其实也更费钱，光买各种测试机就不少钱。 上次去豆瓣，他们经历也类似，iphone买了一个就够了，但给android开发者买的手机已经显得不够了，不仅不如新的好玩，而且不多买几个测试机的话，谁知道以后会遇到什么兼容性问题。 给qq做多分辨率适配多半不难，但是有两个问题，需要多少精力才能了解市面上所有的android，多少钱把测试机都买全，多少精力去测试。开发成本就这么上来了。 兼容性的另外一个问题是向前兼容，就算QQ现在做个完美的兼容所有市面上android手机的app，这时候横空出世一个完全不同的型号，QQ的开发者还是会被骂一顿。当然问题总能解决，一切最后都变成了开发成本。 QQ是家上市公司，这点开发成本不算什么。其实我也不太care腾讯的事情，但是，作为第三方开发者，这个案例是可以参照的。第三方开发者如果想以android为基础平台，难度，复杂度，兼容性，开发成本，要综合考虑。 如我前面一个文章的观点，我没有说android就纯粹是个垃圾。但是你需要了解里面的陷阱和困难。我自己的程序也会出android版本，但是至少在现在绝对不是我的重心所在，未来这个平台在兼容性和渠道上进步了，才会是，这个时候更多观望是更安全的。 其中，@quakelee和@virushuo同学提出有4sq这样做的很好的客户端。 @lordhong同学说： android 自己有套处理多种屏幕的机制，虽然繁琐了点。但如果用相对布局来出来，大部分情况下界面还是过得去的。腾讯的android程序员要么不懂，要么就是太懒。 @hanlei同学说，分辨率不那么重要。 我觉得： 有处理多种屏幕的机制，也是开发成本。iphone和ipad也是有机制的，而且很平滑，而且是可以挣到不同的钱的，那个我不批评，因为人家是两款产品。]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://tiny4.org/blog/wp-content/plugins/wordpress-code-snippet/scripts/shBrushCpp.js"></script>
<p>这两天，腾讯推出了<a href="http://im.qq.com/qq/android/index.shtml">QQ for android</a>。和QQ for iPhone的好评如潮不同，这款软件受到了很多批评，仅仅在Twitter上面我就看到了很多：</p>
<blockquote><p>@<a href="http://twitter.com/LifeNT/">LifeNT</a>：怎么看都觉得腾讯的android qq很山寨！</p>
<p>@<a href="http://twitter.com/tonyq0802/">tonyq0802</a>：原来官方那个的android的qq是固定在480*360分辨率的 据说milestone登录的时候那个qq企鹅就被拉成长企鹅了</p>
<p>@<a href="http://twitter.com/Beichen/">Beichen</a>：QQ for Android 体验好差，登录界面不能横屏。</p>
<p>@<a href="http://twitter.com/siyet/">siyet</a>：当我用milestone进入qq 看到那张被生生拉长的小企鹅的时候 我的脸也长了~~~ 小公司不针对两个分辨率做优化也罢了 可是腾讯。。。丫的
</p></blockquote>
<p>我就不一一罗列了，大多数都是批评在milestone上面的分辨率问题。</p>
<p>我在twitter上面做了一些短评：</p>
<blockquote><p>对Android QQ的抱怨颇多，证明了<a href="http://tiny4.org/blog/2010/03/iphone-developer/">我说过的话</a>，Android兼容性是个大问题。QQ不是游戏，但也有分辨率不匹配带来的用户批评了，而出问题的机器，开发者可能听说都没听说过。所以开发其实也更费钱，光买各种测试机就不少钱。 </p>
<p>上次去豆瓣，他们经历也类似，iphone买了一个就够了，但给android开发者买的手机已经显得不够了，不仅不如新的好玩，而且不多买几个测试机的话，谁知道以后会遇到什么兼容性问题。 </p>
<p>给qq做多分辨率适配多半不难，但是有两个问题，需要多少精力才能了解市面上所有的android，多少钱把测试机都买全，多少精力去测试。开发成本就这么上来了。</p>
<p>兼容性的另外一个问题是向前兼容，就算QQ现在做个完美的兼容所有市面上android手机的app，这时候横空出世一个完全不同的型号，QQ的开发者还是会被骂一顿。当然问题总能解决，一切最后都变成了开发成本。</p>
<p>QQ是家上市公司，这点开发成本不算什么。其实我也不太care腾讯的事情，但是，作为第三方开发者，这个案例是可以参照的。第三方开发者如果想以android为基础平台，难度，复杂度，兼容性，开发成本，要综合考虑。</p>
<p>如我前面一个文章的观点，我没有说android就纯粹是个垃圾。但是你需要了解里面的陷阱和困难。我自己的程序也会出android版本，但是至少在现在绝对不是我的重心所在，未来这个平台在兼容性和渠道上进步了，才会是，这个时候更多观望是更安全的。
</p></blockquote>
<p>其中，@<a href="http://twitter.com/quakelee">quakelee</a>和@<a href="http://twitter.com/virushuo">virushuo</a>同学提出有4sq这样做的很好的客户端。</p>
<p>@<a href="https://twitter.com/lordhong">lordhong</a>同学说：</p>
<blockquote><p>android 自己有套处理多种屏幕的机制，虽然繁琐了点。但如果用相对布局来出来，大部分情况下界面还是过得去的。腾讯的android程序员要么不懂，要么就是太懒。
</p></blockquote>
<p>@<a href="http://twitter.com/hanlei">hanlei</a>同学说，分辨率不那么重要。</p>
<p>我觉得：</p>
<blockquote><p>有处理多种屏幕的机制，也是开发成本。iphone和ipad也是有机制的，而且很平滑，而且是可以挣到不同的钱的，那个我不批评，因为人家是两款产品。</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://tiny4.org/blog/2010/03/qq-android-iphone/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>[教程]如何使用iPhone日历控件</title>
		<link>http://tiny4.org/blog/2010/03/tutorial-how-to-use-iphone-calendar-control/</link>
		<comments>http://tiny4.org/blog/2010/03/tutorial-how-to-use-iphone-calendar-control/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 15:09:44 +0000</pubDate>
		<dc:creator>tinyfool</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[开源]]></category>

		<guid isPermaLink="false">http://tiny4.org/blog/?p=125</guid>
		<description><![CDATA[iPhone日历控件是由我贡献的，一个开源的类库，使用它你可以在你的iPhone软件里面插入一个日历视图。使用起来非常简单。 下载代码 如果你知道如何安装SVN，或者你的电脑已经安装了SVN，那么你可以简单的使用SVN来下载代码，在终端键入下列命令： svn checkout http://iphonecal.googlecode.com/svn/trunk/ iphonecal-read-only 如果，你可以从以下两个链接下载代码： http://iphonecal.googlecode.com/svn/trunk/TdCalendarView.h http://iphonecal.googlecode.com/svn/trunk/TdCalendarView.m 创建一个iPhone应用程序项目 下载代码后，你需要创建一个iPhone应用程序项目。打开XCode，点击菜单&#8221;File&#8221;->&#8221;New Project&#8230;&#8221;，在打开的对话框中，选择View-based Application。 把项目命名为TestiPhoneCal（或者其他什么名字，无所谓）： 创建项目以后，点击菜单&#8221;Project&#8221;->&#8221;Add to project&#8230;&#8221;，选择你下载的文件，注意选中&#8221;Copy items into destination group&#8217;s folder&#8221;选项。 设置view类 打开你的nib文件。 选择你要作为日历的view，把它的类设置为TdCalendarView。 好，现在运行你的程序，你就可以看到你的日历了。 如果你按照这个教程操作，遇到了困难，也可以使用我提供的Demo Code，作为自己代码的模版。下载地址：http://iphonecal.googlecode.com/files/TestiPhoneCal.zip English Version]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://tiny4.org/blog/wp-content/plugins/wordpress-code-snippet/scripts/shBrushCpp.js"></script>
<p><a href="http://code.google.com/p/iphonecal">iPhone日历控件</a>是由我贡献的，一个开源的类库，使用它你可以在你的iPhone软件里面插入一个日历视图。使用起来非常简单。</p>
<h3>下载代码</h3>
<p>如果你知道如何安装SVN，或者你的电脑已经安装了SVN，那么你可以简单的使用SVN来下载代码，在终端键入下列命令：</p>
<p>svn checkout http://iphonecal.googlecode.com/svn/trunk/ iphonecal-read-only</p>
<p>如果，你可以从以下两个链接下载代码：</p>
<p><a href="http://iphonecal.googlecode.com/svn/trunk/TdCalendarView.h">http://iphonecal.googlecode.com/svn/trunk/TdCalendarView.h</a><br />
<a href="http://iphonecal.googlecode.com/svn/trunk/TdCalendarView.m">http://iphonecal.googlecode.com/svn/trunk/TdCalendarView.m</a></p>
<h3>创建一个iPhone应用程序项目</h3>
<p>下载代码后，你需要创建一个iPhone应用程序项目。打开XCode，点击菜单&#8221;File&#8221;->&#8221;New Project&#8230;&#8221;，在打开的对话框中，选择View-based Application。</p>
<p><a href="http://tiny4.org/blog/wp-content/uploads/2010/03/iphonecal001.png"><img src="http://tiny4.org/blog/wp-content/uploads/2010/03/iphonecal001.png" alt="" title="iphonecal001" width="400"  class="aligncenter size-full wp-image-126" /></a></p>
<p>把项目命名为TestiPhoneCal（或者其他什么名字，无所谓）：</p>
<p><a href="http://tiny4.org/blog/wp-content/uploads/2010/03/iphonecal002.png"><img src="http://tiny4.org/blog/wp-content/uploads/2010/03/iphonecal002.png" alt="" title="iphonecal002" width="400" class="aligncenter size-full wp-image-129" /></a></p>
<p>创建项目以后，点击菜单&#8221;Project&#8221;->&#8221;Add to project&#8230;&#8221;，选择你下载的文件，注意选中&#8221;Copy items into destination group&#8217;s folder&#8221;选项。</p>
<p><a href="http://tiny4.org/blog/wp-content/uploads/2010/03/iphonecal003.png"><img src="http://tiny4.org/blog/wp-content/uploads/2010/03/iphonecal003.png" alt="" title="iphonecal003" width="387" class="aligncenter size-full wp-image-130" /></a></p>
<p><a href="http://tiny4.org/blog/wp-content/uploads/2010/03/iphonecal004.png"><img src="http://tiny4.org/blog/wp-content/uploads/2010/03/iphonecal004.png" alt="" title="iphonecal004" width="500" class="aligncenter size-full wp-image-131" /></a></p>
<p><a href="http://tiny4.org/blog/wp-content/uploads/2010/03/iphonecal005.png"><img src="http://tiny4.org/blog/wp-content/uploads/2010/03/iphonecal005.png" alt="" title="iphonecal005" width="414" class="aligncenter size-full wp-image-132" /></a></p>
<h3>设置view类</h3>
<p>打开你的nib文件。</p>
<p><a href="http://tiny4.org/blog/wp-content/uploads/2010/03/iphonecal006.png"><img src="http://tiny4.org/blog/wp-content/uploads/2010/03/iphonecal006.png" alt="" title="iphonecal006" width="500" class="aligncenter size-full wp-image-135" /></a></p>
<p>选择你要作为日历的view，把它的类设置为TdCalendarView。</p>
<p><a href="http://tiny4.org/blog/wp-content/uploads/2010/03/iphonecal007.png"><img src="http://tiny4.org/blog/wp-content/uploads/2010/03/iphonecal007.png" alt="" title="iphonecal007" width="500" class="aligncenter size-full wp-image-136" /></a></p>
<p>好，现在运行你的程序，你就可以看到你的日历了。</p>
<p><a href="http://tiny4.org/blog/wp-content/uploads/2010/03/iphonecal008.png"><img src="http://tiny4.org/blog/wp-content/uploads/2010/03/iphonecal008.png" alt="" title="iphonecal008" width="414" class="aligncenter size-full wp-image-137" /></a></p>
<p>如果你按照这个教程操作，遇到了困难，也可以使用我提供的Demo Code，作为自己代码的模版。下载地址：<a href="http://iphonecal.googlecode.com/files/TestiPhoneCal.zip">http://iphonecal.googlecode.com/files/TestiPhoneCal.zip</a></p>
<p><a href="http://tinyfool.blogspot.com/2010/01/tutorialhow-to-use-iphone-calendar.html">English Version</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tiny4.org/blog/2010/03/tutorial-how-to-use-iphone-calendar-control/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
	</channel>
</rss>

