<?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>计算机与 Internet &#8211; 老范讲故事｜AI、大模型与商业世界的故事</title>
	<atom:link href="https://lukefan.com/category/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B8%8E-internet/feed/" rel="self" type="application/rss+xml" />
	<link>https://lukefan.com</link>
	<description>这里是老范讲故事的主站，持续更新 AIGC、大模型、互联网平台、商业冲突与资本市场观察，帮你看清热点背后的底层逻辑。</description>
	<lastBuildDate>Mon, 20 Aug 2018 06:46:09 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://lukefan.com/wp-content/uploads/2026/03/cropped-jimeng-2026-02-28-5245-用图一的人物形象，替换图二中的人物，使用图二的风格。文字替换：老范讲故事，Yo-32x32.jpeg</url>
	<title>计算机与 Internet &#8211; 老范讲故事｜AI、大模型与商业世界的故事</title>
	<link>https://lukefan.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>即时通讯软件为什么那么难以替换</title>
		<link>https://lukefan.com/2018/08/20/%e5%8d%b3%e6%97%b6%e9%80%9a%e8%ae%af%e8%bd%af%e4%bb%b6%e4%b8%ba%e4%bb%80%e4%b9%88%e9%82%a3%e4%b9%88%e9%9a%be%e4%bb%a5%e6%9b%bf%e6%8d%a2/</link>
		
		<dc:creator><![CDATA[Luke Fan]]></dc:creator>
		<pubDate>Mon, 20 Aug 2018 06:46:09 +0000</pubDate>
				<category><![CDATA[计算机与 Internet]]></category>
		<category><![CDATA[WhatsApp]]></category>
		<category><![CDATA[出海]]></category>
		<category><![CDATA[即时通讯]]></category>
		<category><![CDATA[移动互联网]]></category>
		<guid isPermaLink="false">http://lukefan.com/?p=956</guid>

					<description><![CDATA[即时通讯系统，我们通常管这叫IM，QQ、微信、Line、Whatsapp都是此类系统。 这种系统的流行于否，有 ... <a title="即时通讯软件为什么那么难以替换" class="read-more" href="https://lukefan.com/2018/08/20/%e5%8d%b3%e6%97%b6%e9%80%9a%e8%ae%af%e8%bd%af%e4%bb%b6%e4%b8%ba%e4%bb%80%e4%b9%88%e9%82%a3%e4%b9%88%e9%9a%be%e4%bb%a5%e6%9b%bf%e6%8d%a2/" aria-label="阅读 即时通讯软件为什么那么难以替换">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<p>即时通讯系统，我们通常管这叫IM，QQ、微信、Line、Whatsapp都是此类系统。</p>
<p>这种系统的流行于否，有很多偶然与必然因素在里面。</p>
<p>这其中最重要的一个因素是进入一个封闭市场的时间点。通俗的讲，就是先发优势很重要。</p>
<p>Line是一款很有趣的IM软件，这个软件在日本、台湾都很流行，最为IM系统，LINE的最大特点是可爱，里面有很多Line自有版权的卡通形象以及这些卡通形象的表情包。以前在一些国内的大商场里面还会有Line的专卖店，销售由Line授权，印有Line自有版权卡通形象的特许商品。在这些地区，其他IM系统，有再多的功能优势，也很难打入了，用户的习惯已经被训练了，大部分用户已经被Line俘获，除非有一些特殊的垂直用途，否则当地用户不太会转用其他IM。比如台湾有很多人因为工作或生活原因需要和大陆的同事、朋友或亲人联系，他们也会安装微信，但是他们日常使用的IM系统，就是Line。因为他们日常生活中绝大部分联系人，都在使用Line，这是一个巨大的惯性，很难调整。香港距离我们更近，那里的用户主要在使用whatsapp，不需要和大陆人进行沟通联系的香港人的比例肯定不会那么高，但是他们依然喜欢使用whatsapp，在香港人之间的沟通中，依然会使用whatsapp。</p>
<p>国际大公司的例子，Facebook，在推出了自己的facebook massage之后，发现无法改变用户行为习惯，最后不得不收购whatsapp。Google在尝试了Google Talk，Google Hangout，以及最新的Google Allo之后，还是无法占领IM市场。</p>
<p>综上所述，国内的移动IM市场已经基本被微信占领了，马云也不是万能的。引入Line或whatsapp等国外产品对于改变微信的统治地位是没有什么帮助的。从技术水平上来说，不好说哪家更领先一些，按照我的理解，我更愿意相信这些产品中，可能除了加入人工智能的Google Allo之外，微信的技术最好的。从功能上来说，whatsapp是目前最容易吸引用户的产品，在某些国家，多个IM同时进入的情况下，whatsapp胜利了。whatsapp是相对来说比较简单，比较单纯的一款IM软件，手机号就是账号，更容易被移动用户所接受。在全球范围来说，用户量最大的IM，应该就是whatsapp，国内如果没有墙的话，微信的胜利可能还要多出一些波折。</p>
<p>微信大概是所有流行的移动IM中功能最复杂的一个了，里面形成了非常复杂的生态体系，有很多公司，很多人，依赖微信体系赚钱。国外的各种IM，包括Line和Whatsapp，都在逐步的向微信学习。</p>
<p>写在最后，IM的更替，也不是完全不可能的。最简单的方法是国家管控，非常有效。另外一个方法，就是等待年轻人的成长。年轻人有时候为了不和父母使用同样的IM系统，或者是有一些新的需求，会使用新的IM系统，当这些年轻人长大之后，那么新系统就会自然的替换老系统。从国内来看，95后，特别是00后，又重新开始使用QQ了。现在，微信越来越变成了一种工作IM工具，大家在微信上的联系人以及沟通内容，甚至是朋友圈内容，很多都是工作相关的。现在总有一种人生被微信绑架了的感觉，但是没有办法，这就是我们的生活，我们选择了微信的便利，同时就要承担微信给我们带来了各种痛苦。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>罗永浩的天生骄傲（三，终）</title>
		<link>https://lukefan.com/2014/12/15/%e7%bd%97%e6%b0%b8%e6%b5%a9%e7%9a%84%e5%a4%a9%e7%94%9f%e9%aa%84%e5%82%b2%ef%bc%88%e4%b8%89%ef%bc%8c%e7%bb%88%ef%bc%89/</link>
		
		<dc:creator><![CDATA[Luke Fan]]></dc:creator>
		<pubDate>Sun, 14 Dec 2014 16:29:38 +0000</pubDate>
				<category><![CDATA[计算机与 Internet]]></category>
		<category><![CDATA[随笔]]></category>
		<guid isPermaLink="false">http://lukefan.com/?p=841</guid>

					<description><![CDATA[话接上回。   最后、在总结了前面犯的错误之后，老罗讲起了他的人生理想——《天生骄傲》。以及，锤子手机以12万 ... <a title="罗永浩的天生骄傲（三，终）" class="read-more" href="https://lukefan.com/2014/12/15/%e7%bd%97%e6%b0%b8%e6%b5%a9%e7%9a%84%e5%a4%a9%e7%94%9f%e9%aa%84%e5%82%b2%ef%bc%88%e4%b8%89%ef%bc%8c%e7%bb%88%ef%bc%89/" aria-label="阅读 罗永浩的天生骄傲（三，终）">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" title="NewImage.png" src="http://lukefan.com/wp-content/uploads/2014/12/NewImage7.png" alt="NewImage" width="381" height="600" border="0" /></p>
<div>话接上回。</div>
<div> </div>
<div>最后、在总结了前面犯的错误之后，老罗讲起了他的人生理想——《天生骄傲》。以及，锤子手机以12万部销量，完美的为老罗诠释了什么才是一个理想主义者的胜利。</div>
<div>这里是本文唯一一处引用老罗ppt中的原文：</div>
<div>如果我们成功，很大程度上，这是正派、体面、原则性和理想主义的成功：因为价值观方面的原因，我们得到了太多不合一般商业逻辑的支持与帮助。</div>
<div>如果我们失败，可以肯定，这是商业能力上的不成熟，跟我们没有采取流氓手段收益没有丝毫关系，更谈不上理想主义和情怀的失败。</div>
<div> </div>
<div>
<p>首先，老罗讲了讲什么是天生骄傲，以及为什么要要宣传天生骄傲。首先，老罗认为他们自己，就是一群天生骄傲的人，并且希望能够找到认同这种天生骄傲理念的人，并将这些人聚集在身边。</p>
</div>
<div>所谓的天生骄傲，老罗也没有给出明确的定义，而是举了四个故事：</div>
<div>1、某高中生见义勇为，当地某知名大学跳出来说，要让该学生免试入学，这个学生拒绝了，并表示见义勇为，是应该做的，和高考入学是没有关联的两件事。</div>
<div>
<p>2、某司机刚刚因为路边救人，被讹诈。看到路边倒着一个大肚子孕妇，还是停下来救人。</p>
</div>
<div>3、某足球运动员，在对方禁区摔倒。裁判员判罚点球，该球员主动告知裁判，那是自己摔倒的，对方并未犯规。但是裁判员依然坚持原来的判罚。于是这个球员，一脚将球踢飞。</div>
<div>4、某父亲，感觉自己的孩子成长得非常孤独，于是决定承担罚款，再生一个，让孩子可以快乐的成长。</div>
<div> </div>
<div>如果让我总结的话，那就是，明知道社会和规则是丑陋的，却一定要坚持自己的原则，宁肯遭受损失，也绝不向丑陋的东西低头。这就是天生骄傲，这就是老罗所标榜的，理想主义者。</div>
<div>在这里要说，老罗绝对是一个社会心理掌控的大师。他在寻找现在社会人群的心理缺失的部分，并设法唤醒人们，产生共鸣。</div>
<div>现今社会，很多国人都已经解决了温饱问题，于是开始追寻那些已经被践踏多年的荣誉感。而且，大多数人，在太多的问题上，被这个丑陋的社会所扭曲，不得不去做一些违背自己是非观念的事情。</div>
<div>绝大部分人，都会感受到，现今社会上的很多事情，和小时候树立起来的是非观念是不相符的。这会使人感到困扰，不知道什么是真的，什么是假的。甚至很多人开始说，只有孩子才在乎是非，成年人只关注利益。如果我们的社会，是完全由只关注利益的成年人构成，那将是多么恐怖的一件事情啊？所有人在违背道德、甚至法律的时候，唯一需要考量的就是从利益的角度出发，是不是划算？大街上所有成年人，都完全没有是非观念。笑贫不笑娼就是这种社会的最真实写照。</div>
<div>
<p>如果成年的标志就是放弃是非观念的话，那么我宁肯永远都只做一个孩子。</p>
</div>
<div>老罗发现了这个问题，很多人都发现了这个问题，但是老罗第一个找到了痛点，并跳出来，高呼“天生骄傲”。并借由“天生骄傲”来唤醒民众心中对于秩序，对于道德、善良，对于是非观、荣耀的渴望。</div>
<div> </div>
<div>
<p>我个人喜欢看小说，也觉得自己是一个愿意为了公正之类虚无的东西，去放弃和牺牲一些什么的人。对于公平和公正来说，我想引用《间客》中的一句话，那就是第二卷，第八十六章中写到的：“这个世界上从来没有出现过真正的公平……但存在的，并不都是合理的，没有出现过的，并不都是不能追求的。公平正义或许是很虚幻的词句，但是为之努力，总比麻木不仁要好一些。”</p>
</div>
<div> </div>
<div>到底应该坚持“天生骄傲”，还是应该和社会妥协，有一个孔子的故事，可以很好的解释这一点。</div>
<div>
<p>孔子还有一个弟子叫颜回，很有名的一个。当时孔子和他的弟子们是鲁国人，就是现在的山东人。战乱纷飞的当时，一个国家俘虏了别国的士兵就将他们脸上刺字变成奴隶使用，鲁国有很多战俘在别国当奴隶。鲁国政府为了解救这些奴隶就出台一个优惠政策，如果人们将鲁国籍的奴隶赎回的话，不但可以到政府报销赎金还可以领赏。但是颜回在齐国赎回了很多奴隶既不去报销也不去领赏，赢得了人们的称赞，但是孔子却很生气地告诉他，你这个举动将鲁国的俘虏们害苦了，以后么有人敢赎他们了。颜回很吃惊，孔子说，你是富有阶层能有大批的钱赎奴隶不要报酬，但是大部分的鲁国人没有这些钱，如果他们以后赎回奴隶后去报销领赏的时候人们肯定会拿你作比较会瞧不起他，但是如果不去报销领赏的话经济上又负担不起。颜回醒悟后马上去报销领赏了。 </p>
<p>人是可以坚持信念的，不过同样的行为，在不同的层次来看，都可以是符合信念的。不过这种特性被某些伪善之人给玩儿坏了。</p>
</div>
<div>矫枉必须过正，“天生骄傲”就是矫枉过正的典型例子。所谓天生骄傲，指的应该是出淤泥而不染。即使社会很丑陋，却不愿意同流合污，即使牺牲现实利益，也要去坚持正确的东西，坚守原则、信念和道义。</div>
<div> </div>
<div>不讨论哲学问题，单从“天生骄傲”这一点来看，老罗找准了现今社会主流人群中心理缺失的东西，并成功引起了共鸣。在这一点上来说，老罗是成功的。</div>
<div> </div>
<div>锤子手机，锤子科技，最终是不是可以成功，现在还不好说。不过老罗这个人，还是有不少值得学习和研究的地方的。</div>
<div>老罗，在讲到过去六个月到底做错了什么的时候，其实结论都是妥协。向供应链妥协，向互联网媒体规则妥协。但是，真正可爱的，是叛逆的，不妥协的老罗。于是，在讲了两个做错了的点，讲了两个妥协之后，老罗跳出来，高呼理想主义的胜利和“天生骄傲”。</div>
<div> </div>
<div>社会不一定需要锤子手机，但确实缺失了“天生骄傲”。</div>
<div><embed src="http://player.youku.com/player.php/Type/Folder/Fid/22962463/Ob/1/sid/XODQzMDQ0NTQ0/v.swf" type="application/x-shockwave-flash" width="480" height="400" quality="high" align="middle" allowscriptaccess="always" allowfullscreen="true" mode="transparent" /></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>罗永浩的天生骄傲（二）</title>
		<link>https://lukefan.com/2014/12/14/%e7%bd%97%e6%b0%b8%e6%b5%a9%e7%9a%84%e5%a4%a9%e7%94%9f%e9%aa%84%e5%82%b2%ef%bc%88%e4%ba%8c%ef%bc%89/</link>
		
		<dc:creator><![CDATA[Luke Fan]]></dc:creator>
		<pubDate>Sun, 14 Dec 2014 15:56:57 +0000</pubDate>
				<category><![CDATA[计算机与 Internet]]></category>
		<category><![CDATA[随笔]]></category>
		<guid isPermaLink="false">http://lukefan.com/?p=838</guid>

					<description><![CDATA[ 话接上回。 继续来看看老罗在他的理想主义演说中说到的，过去六个月中，做错的第二件事情。 和媒体的关系问题。  ... <a title="罗永浩的天生骄傲（二）" class="read-more" href="https://lukefan.com/2014/12/14/%e7%bd%97%e6%b0%b8%e6%b5%a9%e7%9a%84%e5%a4%a9%e7%94%9f%e9%aa%84%e5%82%b2%ef%bc%88%e4%ba%8c%ef%bc%89/" aria-label="阅读 罗永浩的天生骄傲（二）">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<div> 话接上回。</div>
<div>继续来看看老罗在他的理想主义演说中说到的，过去六个月中，做错的第二件事情。</div>
<div>
<p>和媒体的关系问题。</p>
<p>老罗说了，以前他是一个个人，现在是企业家了。不能再像以前那样想说什么就说什么了。还举了王自如的例子。</p>
<p>老罗说了，他是来自于东北，一个荣誉体系盛行的地方。大家会因为一言不合，就拔刀相向的。</p>
<p>老罗以往一向是采用这种方式来处理媒体问题的。以眼还眼，以牙还牙。甚至是，只要臆测其他人心存不善，就直接泥沙俱下，先抄起搬砖，掀翻对方再说。</p>
</div>
<div><img decoding="async" title="NewImage.png" src="http://lukefan.com/wp-content/uploads/2014/12/NewImage5.png" alt="NewImage" width="524" height="401" border="0" /> </div>
<div>王自如的故事，在我的理解里面，应该就是这样的。某个南方规则社会走出来的小伙子，准备先做一些试探，看看东北大汉的反应。不料从荣誉社会中走出来的东北大汉，直接抡起板砖，将其拍倒在地，然后还跳到他身上，一通拳打脚踢，并举手向身边围观的人挥舞，以展示自己的强大。</div>
<div><img decoding="async" title="NewImage.png" src="http://lukefan.com/wp-content/uploads/2014/12/NewImage6.png" alt="NewImage" width="500" height="272" border="0" /></div>
<div>王自如对于锤子手机评测之后，他所期待的结果，是接到锤子科技的公关部电话，然后进行一番澄清和沟通，再决定后面怎么办。结果没成想，接到的确实老罗的约架。这绝对不是互联网圈子里面的标准规则。</div>
<div>王自如是抱着一种可以最后和老罗握手言和的心理准备登上约架的现场的。准备和把稀泥，最后达到双方都不太成熟理智，现在尽弃前嫌，重新可以坐在一起愉快的玩耍。没成想，老罗是做好了万全的准备，就是要他你死我活的战斗一场。就算忽略掉战斗技巧上的差异，忽略掉谁是谁非，道理在哪一边，单单是上场决斗的两个人的心态，就已经分出胜负了。</div>
<div>当时看完现场之后，感觉王自如很傻很天真。应该站起来就走，不能陪着老罗把这场戏唱完。</div>
<div>老罗个人和整个互联网媒体的战斗，从他个人的角度上来说，就像他和王自如的约架一样，完胜。但是对于整个互联网圈子来说，对于锤子科技来说，就是完败了。</div>
<div>原来，老罗主要面对的那些媒体，覆盖的人群和老罗本人覆盖的人群，相差不大。而且这些人群的信息再反馈、再传播的能力和效率都不高。所以老罗将传统的那些媒体干翻，那些媒体人拿他也没有什么办法，只能和老罗各说各话，这个时候，就要考验战斗力了，而老罗是一个面对大众，战斗力极强的家伙。</div>
<div>现在，互联网媒体，每一个媒体都有不同的覆盖人群，这些人群的信息反馈与再传播能力和效率都很强大。于是在直面这些媒体人的时候，老罗胜利了，然后这些互联网媒体可不会躲在角落里偷偷的舔伤口，而是会变本加厉的面向他自己的客户人群，将在老罗那里受到的挫折和屈辱，都释放出去。然后引导各自的追随者们，进行快速有效的再传播。</div>
<div>
<p>老罗最后痛定思痛，决定做出改变。他的妥协就是，将自己的微博账号和密码上交公司市场和公关团队。</p>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>罗永浩的天生骄傲（一）</title>
		<link>https://lukefan.com/2014/12/14/%e7%bd%97%e6%b0%b8%e6%b5%a9%e7%9a%84%e5%a4%a9%e7%94%9f%e9%aa%84%e5%82%b2/</link>
		
		<dc:creator><![CDATA[Luke Fan]]></dc:creator>
		<pubDate>Sun, 14 Dec 2014 15:37:43 +0000</pubDate>
				<category><![CDATA[计算机与 Internet]]></category>
		<category><![CDATA[随笔]]></category>
		<guid isPermaLink="false">http://lukefan.com/?p=828</guid>

					<description><![CDATA[12月7日，周日，用了两个多小时的时间，看了罗永浩的告别演出。 为什么要去看呢？被标题吸引了，过去六个月到底做 ... <a title="罗永浩的天生骄傲（一）" class="read-more" href="https://lukefan.com/2014/12/14/%e7%bd%97%e6%b0%b8%e6%b5%a9%e7%9a%84%e5%a4%a9%e7%94%9f%e9%aa%84%e5%82%b2/" aria-label="阅读 罗永浩的天生骄傲（一）">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<div><img loading="lazy" decoding="async" title="NewImage.png" src="http://lukefan.com/wp-content/uploads/2014/12/NewImage.png" alt="NewImage" width="390" height="300" border="0" /></div>
<div>12月7日，周日，用了两个多小时的时间，看了罗永浩的告别演出。</div>
<div>
<p>为什么要去看呢？被标题吸引了，过去六个月到底做错了什么？</p>
</div>
<div>罗永浩，在做锤子手机之前，我只是偶尔听说过这个名字，并不知道这到底是谁。后来有人开始流传说老罗如何如何，老罗开始亲自看代码了等等。我对这个胖子也没有什么直观的印象，直到有一次，傅盛在公司里面组织大家看了一次锤子手机的发布会，我才将这个名字，这个符号，和一个鲜活的人，对应了起来。然后，看了一下他的一些经历，对于老罗的一些新闻，也给予了更多的关注。</div>
<div>锤子手机，和我身边的很多人都有关系。有些朋友，曾经接到过老罗的邀请。当然，就像老罗自己说的那样，技术圈的人，大多对于他做手机是持有一种观望态度的。当时我朋友圈子里面比较流行的看法是，老罗是找不到靠谱rom团队的，他会败在系统稳定性上的。</div>
<div>自从看了发布会视频之后，六个月过去了，从个人的角度来说，我听到的信息，从一开始大家认为，不论卖得怎么样，锤子已经成功了。然后是听说他们供应链有问题，无法按时发货，再然后就是老罗和王自如的约架了。最好，还是降价了，降价之后，好像卖得还可以。</div>
<div>
<p>然后回过头来，老罗说是要和大家聊聊过去六个月，都错在了什么地方。那么总还是要上来看看老罗的激情演出的。</p>
<p>老罗先总结了一下做手机的过程中出现的问题，第一、供应链问题，任何需要批量生产的东西，在这一块都会出问题。产品从作出样机，到能够批量生产，完全是两个概念。特别是那些花费了很多心思的小细节，在流水线上更是让人欲仙欲死。老罗在供应链上遇到的最大问题，叫做“良品率”，很多部件和细节工艺的良品率不高。传统的搞法，要么放弃一些什么，要么将良品率的要求降低，多生产出一些备品。很多中国生产小商品的工厂都是用1%的备品来替代售后服务的。老罗和他的团队，是叛逆的，是不妥协的，于是他们就只能和供应链斗争。</p>
</div>
<div>关于供应链的问题，为什么设计生产出来的产品，最后量产的时候，会出现很多问题。在这里分享一个故事，让大家理解一下设计师脑中的想法，有时候是多么的不靠谱。</div>
<div>这是很久以前听一个学机械的兄弟讲过的笑话，那些没有理工科背景的人，不一定能够找到笑点，那就只能抱歉了。</div>
<div>某机械系学生在提交课程设计的时候，在某个机械的盖子上，设计了一个没有倒角的方形盲孔。老师看到之后就笑了，问那个同学，你准备怎么加工这个孔呢？一般的方孔，都是有圆倒角的，也就是说，在每一个角上，会有一个圆弧。这种有倒角的孔，可以直接用铣床铣出来，铣床的刀具就像是一个钻头，一边转，一边在机件上移动，将不需要的部分，从机件上铣下来。所以铣出来的机件，在角上会有一个圆形的倒角，因为铣刀是圆柱形的，就像一个钻头。这个故事里面涉及的另外一个词，是盲孔。盲孔的意思，就是另外一头，是不通的。如果不是盲孔，那么可以直接在机件上打个对穿的孔，然后做线切割，线切割有点儿像钢丝锯，是可以加工出没有倒角的方形孔，但如果是盲孔，就不能打对穿的孔洞，就不能使用线切割这种工艺，只能用铣床去铣。</div>
<div><img loading="lazy" decoding="async" title="NewImage.png" src="http://lukefan.com/wp-content/uploads/2014/12/NewImage1.png" alt="NewImage" width="440" height="296" border="0" /></div>
<div>
<p>上面这个故事，对于学机械的同学来说，是个有趣的笑话，对于其他人来说，就需要一大堆背景知识来辅助理解了。但总得来说，设计师设计出来的东西，并不一定能够做出来。</p>
</div>
<div>某些东西，可以在钳工和老师傅们的帮助下做出来，但没法大批量生产。试制样品的时候，是一群老师傅，围在一起，造一台机器。</div>
<div>有任何不合适的地方，还有钳工可以处理各种奇怪的问题。钳工的工作场景，就和老罗那张工匠精神的壁纸差不多。很喜欢老罗的那句，我不在乎输赢，就是认真。</div>
<div><img loading="lazy" decoding="async" title="NewImage.png" src="http://lukefan.com/wp-content/uploads/2014/12/NewImage2.png" alt="NewImage" width="600" height="343" border="0" /></div>
<div>老师傅，也是一种神奇的生物，他们经常可以做出一些让人无法想象的神奇的事情，下面两张照片都选自央视的钳工争霸赛：</div>
<div><img loading="lazy" decoding="async" title="NewImage.png" src="http://lukefan.com/wp-content/uploads/2014/12/NewImage3.png" alt="NewImage" width="450" height="321" border="0" /></div>
<div><img loading="lazy" decoding="async" title="NewImage.png" src="http://lukefan.com/wp-content/uploads/2014/12/NewImage4.png" alt="NewImage" width="424" height="600" border="0" /> </div>
<div> </div>
<div>有哪些零件不合适，可以随时替换，也就是说，多套配件，只要能够装出一台来，就算成功。但是，当大批量生产的时候，每台机器在流水线上就可能遇到各种熟练程度的工人了，每台机器，都只能使用自己的那套零件，不可以调换，于是，良品率的问题就产生了。</div>
<div>我们老觉得传统工业品的创意不够，其实很多原因就在于那些设计者，是懂得生产过程的复杂性的，他们在设计产品的时候，就把哪些容易出问题的地方都下意识的躲开了，于是他们设计出来的东西，就中规中矩。即使有些有趣的设计，也会在生产过程中，被工艺妥协掉。</div>
<div>互联网产品，有趣、新奇，很大的原因是互联网产品的设计师，没有生产经验，他们设计的时候，不受到那些潜移默化的心理定式的影响。而且，在生产的时候，不妥协，于是才能给我们带来神奇的体验。</div>
<div>老罗，作为一个手机领域里面的新人，这个过程肯定是要经历的。一开始无知者无畏，冲上来就惦记着乱拳打死老师傅。老师傅是被打死了，他自己也被老师傅折腾得欲仙欲死。下一次，他肯定会在设计的时候，就考虑到一些生产问题，也就是向老师傅的方向发展。随着供应链的顺畅，这是一个磨合的过程，供应链会在这个过程中得到提升，以前很多搞不定的工艺，以后可以搞定了。但是老罗也必然会学到很多东西，以前很多敢于设计的东西，以后他也不敢了。</div>
<div>如果老罗还继续做下去，供应链问题，会被逐步的解决的。</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Live Message试用失败</title>
		<link>https://lukefan.com/2006/06/26/live-message%e8%af%95%e7%94%a8%e5%a4%b1%e8%b4%a5/</link>
		
		<dc:creator><![CDATA[Luke Fan]]></dc:creator>
		<pubDate>Mon, 26 Jun 2006 04:14:20 +0000</pubDate>
				<category><![CDATA[计算机与 Internet]]></category>
		<guid isPermaLink="false">http://lukfan.wordpress.com/2006/06/26/live-message%e8%af%95%e7%94%a8%e5%a4%b1%e8%b4%a5</guid>

					<description><![CDATA[今天早晨在同事的推荐下，下载并安装了Microsoft的Live Message。运行起来之后发现，所有的联系 ... <a title="Live Message试用失败" class="read-more" href="https://lukefan.com/2006/06/26/live-message%e8%af%95%e7%94%a8%e5%a4%b1%e8%b4%a5/" aria-label="阅读 Live Message试用失败">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<div id="msgcns!85DD60846AD95DC7!264" class="bvMsg">
<div>今天早晨在同事的推荐下，下载并安装了Microsoft的Live Message。运行起来之后发现，所有的联系人都丢光了需要重新安装，天啊，完蛋了。</div>
<div>赶快卸载，重新安装MSN7.5，登陆一看，还好还好，所有的联系人都还在。</div>
<div>新鲜事务还是不要随便尝试，等别人都用起来再说吧。</div>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>在ASP.NET 中为图像加入版权信息</title>
		<link>https://lukefan.com/2006/04/04/%e5%9c%a8asp-net-%e4%b8%ad%e4%b8%ba%e5%9b%be%e5%83%8f%e5%8a%a0%e5%85%a5%e7%89%88%e6%9d%83%e4%bf%a1%e6%81%af/</link>
		
		<dc:creator><![CDATA[Luke Fan]]></dc:creator>
		<pubDate>Tue, 04 Apr 2006 13:39:38 +0000</pubDate>
				<category><![CDATA[计算机与 Internet]]></category>
		<guid isPermaLink="false">http://lukfan.wordpress.com/2006/04/04/%e5%9c%a8asp-net-%e4%b8%ad%e4%b8%ba%e5%9b%be%e5%83%8f%e5%8a%a0%e5%85%a5%e7%89%88%e6%9d%83%e4%bf%a1%e6%81%af</guid>

					<description><![CDATA[using System.Drawing;using System.IO;using System.Drawi ... <a title="在ASP.NET 中为图像加入版权信息" class="read-more" href="https://lukefan.com/2006/04/04/%e5%9c%a8asp-net-%e4%b8%ad%e4%b8%ba%e5%9b%be%e5%83%8f%e5%8a%a0%e5%85%a5%e7%89%88%e6%9d%83%e4%bf%a1%e6%81%af/" aria-label="阅读 在ASP.NET 中为图像加入版权信息">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<div id="msgcns!85DD60846AD95DC7!195" class="bvMsg">
<div><span style="color:#0000ff;"><font face="Courier New" size="2">using</font></span><font size="2"><font face="Courier New"><span style="color:#000000;"> System.Drawing;<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color:#0000ff;">using</span></font></font><font size="2"><font face="Courier New"><span style="color:#000000;"> System.IO;<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color:#0000ff;">using</span></font></font><font size="2"><font face="Courier New"><span style="color:#000000;"> System.Drawing.Imaging;<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/None.gif" align="top" /><br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color:#0000ff;">private</span><span style="color:#000000;"> </span><span style="color:#0000ff;">void</span><span style="color:#000000;"> AddTextToImg(</span><span style="color:#0000ff;">string</span><span style="color:#000000;"> fileName,</span><span style="color:#0000ff;">string</span></font></font><font size="2"><font face="Courier New"><span style="color:#000000;"> text)<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img decoding="async" style="display:none;" src="http://spaces.msn.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="border-right:#808080 1px solid;border-top:#808080 1px solid;display:none;border-left:#808080 1px solid;border-bottom:#808080 1px solid;background-color:#ffffff;"><img decoding="async" src="http://spaces.msn.com/Images/dot.gif" /></span></font></font><span><font size="2"><font face="Courier New"><span style="color:#000000;">&#123;<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="color:#0000ff;">if</span><span style="color:#000000;">(</span><span style="color:#000000;">!</span></font></font><font size="2"><font face="Courier New"><span style="color:#000000;">File.Exists(MapPath(fileName)))<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img decoding="async" style="display:none;" src="http://spaces.msn.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　</span><span style="border-right:#808080 1px solid;border-top:#808080 1px solid;display:none;border-left:#808080 1px solid;border-bottom:#808080 1px solid;background-color:#ffffff;"><img decoding="async" src="http://spaces.msn.com/Images/dot.gif" /></span></font></font><span><font size="2"><font face="Courier New"><span style="color:#000000;">&#123;<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　　</span><span style="color:#0000ff;">throw</span><span style="color:#000000;"> </span><span style="color:#0000ff;">new</span><span style="color:#000000;"> FileNotFoundException(</span><span style="color:#000000;">&quot;</span><span style="color:#000000;">The file don&#8217;t exist!</span><span style="color:#000000;">&quot;</span></font></font><span style="color:#000000;"><font face="Courier New" size="2">);<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />　&#125;</font></span></span><span style="color:#000000;"><br /><font face="Courier New" size="2"><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　</font></span><font size="2"><font face="Courier New"><span style="color:#0000ff;">if</span><span style="color:#000000;">( text </span><span style="color:#000000;">==</span><span style="color:#000000;"> </span><span style="color:#0000ff;">string</span></font></font><font size="2"><font face="Courier New"><span style="color:#000000;">.Empty )<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img decoding="async" style="display:none;" src="http://spaces.msn.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　</span><span style="border-right:#808080 1px solid;border-top:#808080 1px solid;display:none;border-left:#808080 1px solid;border-bottom:#808080 1px solid;background-color:#ffffff;"><img decoding="async" src="http://spaces.msn.com/Images/dot.gif" /></span></font></font><span><font size="2"><font face="Courier New"><span style="color:#000000;">&#123;<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　　</span><span style="color:#0000ff;">return</span></font></font><span style="color:#000000;"><font face="Courier New" size="2">;<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />　&#125;</font></span></span><span style="color:#000000;"><br /><font face="Courier New" size="2"><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　</font></span><font size="2"><font face="Courier New"><span style="color:#008000;">//</span><span style="color:#008000;">还需要判断文件类型是否为图像类型，这里就不赘述了</span></font></font><span style="color:#008000;"><br /><font face="Courier New" size="2"><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" /></font></span><span style="color:#000000;"><br /><font face="Courier New" size="2"><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　System.Drawing.Image image </font></span><span style="color:#000000;"><font face="Courier New" size="2">=</font></span><font size="2"><font face="Courier New"><span style="color:#000000;"> System.Drawing.Image.FromFile(MapPath(fileName));<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　Bitmap bitmap </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">new</span></font></font><font size="2"><font face="Courier New"><span style="color:#000000;"> Bitmap(image,image.Width,image.Height);<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　Graphics g </span><span style="color:#000000;">=</span></font></font><font size="2"><font face="Courier New"><span style="color:#000000;"> Graphics.FromImage(bitmap);<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="color:#0000ff;">float</span><span style="color:#000000;"> fontSize </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#000000;">12.0f</span><span style="color:#000000;">; </span><span style="color:#008000;">//</span><span style="color:#008000;">字体大小</span></font></font><span style="color:#008000;"><br /><font face="Courier New" size="2"><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" /></font></span><font size="2"><font face="Courier New"><span style="color:#000000;">　</span><span style="color:#0000ff;">float</span><span style="color:#000000;"> textWidth </span><span style="color:#000000;">=</span><span style="color:#000000;"> text.Length</span><span style="color:#000000;">*</span><span style="color:#000000;">fontSize; </span><span style="color:#008000;">//</span></font></font><font size="2"><font face="Courier New"><span style="color:#008000;">文本的长度<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="color:#008000;">//</span><span style="color:#008000;">下面定义一个矩形区域，以后在这个矩形里画上白底黑字</span></font></font><span style="color:#008000;"><br /><font face="Courier New" size="2"><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" /></font></span><font size="2"><font face="Courier New"><span style="color:#000000;">　</span><span style="color:#0000ff;
">float</span><span style="color:#000000;"> rectX </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#000000;">0</span></font></font><font size="2"><font face="Courier New"><span style="color:#000000;">; <br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="color:#0000ff;">float</span><span style="color:#000000;"> rectY </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#000000;">0</span></font></font><font size="2"><font face="Courier New"><span style="color:#000000;">;<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="color:#0000ff;">float</span><span style="color:#000000;"> rectWidth </span><span style="color:#000000;">=</span><span style="color:#000000;"> text.Length</span><span style="color:#000000;">*</span><span style="color:#000000;">(fontSize</span><span style="color:#000000;">+</span><span style="color:#000000;">8</span></font></font><font size="2"><font face="Courier New"><span style="color:#000000;">);<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="color:#0000ff;">float</span><span style="color:#000000;"> rectHeight </span><span style="color:#000000;">=</span><span style="color:#000000;"> fontSize</span><span style="color:#000000;">+</span><span style="color:#000000;">8</span></font></font><font size="2"><font face="Courier New"><span style="color:#000000;">;<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="color:#008000;">//</span><span style="color:#008000;">声明矩形域</span></font></font><span style="color:#008000;"><br /><font face="Courier New" size="2"><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" /></font></span><font size="2"><font face="Courier New"><span style="color:#000000;">　RectangleF textArea </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">new</span></font></font><font size="2"><font face="Courier New"><span style="color:#000000;"> RectangleF(rectX,rectY,rectWidth,rectHeight);<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　Font font </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">new</span><span style="color:#000000;"> Font(</span><span style="color:#000000;">&quot;</span><span style="color:#000000;">宋体</span><span style="color:#000000;">&quot;</span><span style="color:#000000;">,fontSize); </span><span style="color:#008000;">//</span><span style="color:#008000;">定义字体</span></font></font><span style="color:#008000;"><br /><font face="Courier New" size="2"><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" /></font></span><font size="2"><font face="Courier New"><span style="color:#000000;">　Brush whiteBrush </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">new</span><span style="color:#000000;"> SolidBrush(Color.White); </span><span style="color:#008000;">//</span><span style="color:#008000;">白笔刷，画文字用</span></font></font><span style="color:#008000;"><br /><font face="Courier New" size="2"><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" /></font></span><font size="2"><font face="Courier New"><span style="color:#000000;">　Brush blackBrush </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">new</span><span style="color:#000000;"> SolidBrush(Color.Black); </span><span style="color:#008000;">//</span><span style="color:#008000;">黑笔刷，画背景用</span></font></font><span style="color:#008000;"><br /><font face="Courier New" size="2"><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" /></font></span><span style="color:#000000;"><br /><font face="Courier New" size="2"><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　g.FillRectangle(blackBrush,rectX,rectY,rectWidth,rectHeight); <br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　g.DrawString(text,font,whiteBrush,textArea);<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　MemoryStream ms </font></span><font size="2"><font face="Courier New"><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">new</span></font></font><font size="2"><font face="Courier New"><span style="color:#000000;"> MemoryStream( );<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="color:#008000;">//</span><span style="color:#008000;">保存为Jpg类型</span></font></font><span style="color:#008000;"><br /><font face="Courier New" size="2"><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" /></font></span><font size="2"><font face="Courier New"><span style="color:#000000;">　bitmap.Save(ms,ImageFormat.Jpeg);<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="color:#008000;">//</span><span style="color:#008000;">输出处理后的图像，这里为了演示方便，我将图片显示在页面中了</span></font></font><span style="color:#008000;"><br /><font face="Courier New" size="2"><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" /></font></span><font size="2"><font face="Courier New"><span style="color:#000000;">　Response.Clear();<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　Response.ContentType </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#000000;">&quot;</span><span style="color:#000000;">image/jpeg</span><span style="color:#000000;">&quot;</span></font></font><span style="color:#000000;"><font face="Courier New" size="2">;<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　Response.BinaryWrite( ms.ToArray() );<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　g.Dispose();　<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　bitmap.Dispose();<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/InBlock.gif" align="top" />　image.Dispose();<br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&#125;</font></span></span><span style="color:#000000;"><br /><img decoding="async" src="http://spaces.msn.com/Images/OutliningIndicators/None.gif" align="top" /></span></div>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>BDS2006无法开发COM＋的解决方法</title>
		<link>https://lukefan.com/2006/04/04/bds2006%e6%97%a0%e6%b3%95%e5%bc%80%e5%8f%91com%ef%bc%8b%e7%9a%84%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95/</link>
		
		<dc:creator><![CDATA[Luke Fan]]></dc:creator>
		<pubDate>Tue, 04 Apr 2006 09:49:50 +0000</pubDate>
				<category><![CDATA[计算机与 Internet]]></category>
		<guid isPermaLink="false">http://lukfan.wordpress.com/2006/04/04/bds2006%e6%97%a0%e6%b3%95%e5%bc%80%e5%8f%91com%ef%bc%8b%e7%9a%84%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95</guid>

					<description><![CDATA[BDS2006无法开发COM＋的解决方法。 在注册表里添加以下信息就可以了。 HKEY_CURRENT_USE ... <a title="BDS2006无法开发COM＋的解决方法" class="read-more" href="https://lukefan.com/2006/04/04/bds2006%e6%97%a0%e6%b3%95%e5%bc%80%e5%8f%91com%ef%bc%8b%e7%9a%84%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95/" aria-label="阅读 BDS2006无法开发COM＋的解决方法">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<div id="msgcns!85DD60846AD95DC7!193" class="bvMsg">
<p>BDS2006无法开发COM＋的解决方法。</p>
<p>在注册表里添加以下信息就可以了。</p>
<p>HKEY_CURRENT_USERSoftwareBorlandBDS4.0Type LibraryTransactionalWizards = True </p>
</div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
