<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[晋城生活服务]]></title> 
<description><![CDATA[美好的生活需要用心记录，记录一些收集的东西，还有心情吧！]]></description>
<link>http://blog.0356sh.com/</link>
<language>zh-cn</language>
<generator>www.emlog.net</generator>
<item>
	<title>品牌医美从“流量思维”向“客户思维”的转变</title>
	<link>http://blog.0356sh.com/yimei_shiwei.html</link>
	<description><![CDATA[郑州的孟明星大夫给我讲了一故事：10年前，他在火车站碰见过卖擦鞋剂的骗子，10元钱1瓶；10年后，还是那个火车站，骗子还在，还是那款擦鞋剂，换了个包装，改成200元2瓶；还是会有人上当。孟大夫觉得这个现象很有意思，我们详细讨论了一下这个案例。
<p>
	<br />
火车站的骗子多，因为人们发现上当时，多半已经随着火车远去了，所以火车站的“绝户生意”最多，他们根本就不需要回头客。这其实就是典型的“流量思维”。
</p>
<p>
	<br />
这种线下的开门生意，抱着“流量思维”不放非常可疑，很可能就是骗子们在割韭菜，因为每获取一批流量，总会有一定比例的人上当，这批人就是要被割掉的韭菜；而上当这件事，当然没有回头客（回来的都是砸店的），所以骗子们需要不断地获得新的流量。这种思维模式下，要想依靠大流量的信息触达来培养品牌，基本就是幻觉。
</p>
<p>
	<br />
<strong> “品牌医美”思维模式的迭代</strong>
</p>
<p>
	<br />
品牌医美，在当今的信息传播大环境中固执地坚持所谓“流量思维”是危险的，依靠流量生存的医美机构，很少有机会成为“品牌医美”，因为买来的那些流量，已经不是品牌医美的获客模式。医美品牌的传播方式似乎越来越单一，那就是客户的口碑；所以，品牌医美的营销思维模式，只能顺应潮流迭代到“客户思维”，而不是“流量思维”。需要操心的是：种子客户的获取和经营。
</p>
<p>
	<br />
话说回来，哪个优秀的医生手里没有一批粉丝或种子客户呢？没有的话，说明你还不够优秀。如果是换了一个陌生的城市，那么从前的经验会告诉你，最初的那批客户在哪里，当然，这个时候医生需要熟练的营销人员给予帮助，方式多种多样，只是不在本文的讨论范围。
</p>
<p>
	<br />
依靠价格战来低价导流的医美机构，有人称之为“超市医美”，就是便宜！这其实也可能是个伪概念，真的存在“医美超市”吗？那些打价格战的机构，真的能保持低价、坚持“惠民”的高尚目标吗？大多数医美机构的运营培训手册里的培训内容都是如何“升单”的技巧，它们真正惦记的是：怎样把人钩来，然后升单痛宰；所以，低价导流背后的逻辑，还是带有骗的成分。
</p>
<p>
	<br />
“客户思维”的逻辑是什么？医美再怎么商品化，也离不开线下的临门一脚，治疗动作必须由医生在线下机构完成，因此，不管传播触达有多么丰富，品牌的最后定格，取决于医疗服务的主观效果，这种强接触的关系把品牌的评价与人（医护团队）紧密捆绑，用户主动屏蔽广告信息的动作，随着Z世代的长大成人，变得越来越熟练。
</p>
<p>
	<br />
Z世代（Generation
Z），是指那些出生于1995—2012年间的年轻一代，已经占据全球人口的1/4，在中国，95后接近2.5亿，是互联网时代最活跃的人群。德勤一份针对全球千禧一代和Z世代两拨年轻人的调研报告称：他们对大众媒体类传统社会机制表现出强烈的不信任，对商业动机保持怀疑，通过消费支持那些他们认可价值观的公司，并且也会在发现价值观背离时毫不犹豫地终止支持。在可预见的未来，人们对广告和推销尤其反感，他们喜欢被熟人种草，信赖社交圈子，69%的Z世代会在自己的手机里安装广告拦截软件，慢慢逼迫互联网硬广自动消失，人们对品牌信息绝不盲从，会多方面求证所获取的信息，这与Z世代一出生就是互联网宝宝密切相关，他们从小接受多元化信息并且能够高效处理，从而养成了辩证思维能力，不轻易相信和盲从别人说的观点。在医美这种强接触的消费过程中，消费者只注重消费体验，消费习惯将回归理性。
</p>
<p>
	<br />
<strong> 医美“客户思维”，我们能做什么？</strong>
</p>
<p>
	<br />
以客户价值为导向的营销目的。让医生实现“客户价值”为目标实施诊疗行为轻而易举，大多数医生本来就这样，特别是在从事疾病医疗的时候，所以“销售目标”导向转变成“客户价值”导向在医生端问题不大。营销人员的转变相对比较困难，但是观念的转变必须是团队的共识，营销人员迫于业绩压力而导致的动作变形，可能会让“客户思维”变得有名无实。
</p>
<p>
	<br />
把最擅长的服务产品介绍给真正需要的客户，是形成口碑的主要方式，单品策略被多次证明行之有效。一些人被医美是冲动消费的观念误导了，其实绝大部分医美消费是理性的，只是表现得像是“冲动”而已，如果能够分辨出客户在冲动情绪下购买了服务，客服人员或医生应该引导客户冷静下来。这是除去医疗事故外，避免爆发纠纷的不二法门，一个纠纷就可能毁掉一个多年养育的品牌。
</p>
<p>
	<br />
建立互信，技术组织型的医生最容易获得信任，因为他不仅仅在自己擅长的领域为就医者创造价值，还能在自己不太擅长的项目上为客户找到解决方案。医生为了让自己的客户获得满意的效果，请别的医生进行治疗，是特别容易赢得客户信任的做法，这种口碑有时比医生自己做来得更好。
</p>
<p>
	<br />
让客户树立正确的价格观念是非常必要的，对医生的价格毫不尊重的客户绝对称不上是粉丝，更不是品牌的传播者，这就是好多机构经营多年仍然没有品牌的原因。有两点值得注意：一是价格的严肃性，医美价格的随意性是破坏品牌形象的捷径，一旦就医者发现了相同治疗的不同收费，无论是交钱多的还是交钱少的，都会对医生或机构产生疑问，进而给出负面评价，甚至有可能联合起来算后账；二是选择那些对价格与品质有正确认知的客户进入精心维护的会员圈子，那些只顾贪图便宜价格的人，是不可能有任何品牌忠诚度的。
</p>
<p>
	<br />
经营圈子，除了科普，还可以有其他的内容，比如共同的爱好，或者公益活动，把一个圈子维系起来的方法有很多。
</p>
<p>
	<br />
<strong> 品牌传播方式的重构</strong>
</p>
<p>
	<br />
单纯品牌广告传播的式微，消费者的触媒习惯早已被一种新的方式取代，他们只对真实的内容感兴趣。第一批种子用户的心智如何占领，是所有品牌战略的第一步：从内容开始。
</p>
<p>
	<br />
美国资深内容营销专家斯考特·奥特蒙（Scott Aughtmon）提出了业内公认的标准：“有价值的内容”，应当让你的目标消费者永不厌倦、总是有时间消费、难以忘记且愿意和他人分享。
</p>
<p>
	<br />
“市场部网”看到一篇文章《天下苦流量久矣》说：“流量，就是消费者的注意力，是销量的保证。”电商平台对于流量的需求史，其实就是20年中国互联网的一部流量简史，它从门户时代，到搜索时代，再到社交时代，最后是内容时代。对，现在就是内容时代。
</p>
<p>
	<br />
“在传统的流量获取越来越贵的今天，从淘宝诞生了一个新词儿：私域流量。私域流量的意思是：这些是自己的，可以反复利用，免费且直接触达用户；每一个流量都是一个用户，他们沉淀在微信公众号、微信群、微信个人号、微博、小红书、头条和抖音这些平台。”
</p>
<p>
	<br />
“公域流量是大海，刚开始的时候，鱼多，捕鱼的人少，哪怕你技术一般，都可能有收获；随着捕鱼的人越来越多，捕到的鱼成本越来越高，于是很多人就开始自建鱼塘养鱼，这样捕鱼的成本低了，也更容易捕到鱼了。自建的鱼塘，我们就称为私域流量。”
</p>
<p>
	<br />
“私域流量”不就是你的朋友圈或粉丝群么？抑或是你的会员和老客户么？让他们经由你的服务实现价值之后的口碑相传，日益成为体验式服务品牌的传播主流渠道。
</p>
<p>
	<br />
<strong> 品牌医生的市场机会</strong>
</p>
<p>
	<br />
医美品牌医生们正面对着难得的市场机会。表面上看是机构品牌在先，医生品牌在后，机构投资人担心医生的流动性而只会注重机构品牌的投入，实际作用却恰恰相反，消费者会越过机构品牌直接触达医生品牌，医生凭借着对消费者的强接触，拥有大把的机会培养个人IP，他们可以在自媒体世界用更低的成本，个人品牌迅速崛起。
</p>
<p>
	<br />
低价导流的弊端对拥有技术优势的医生是一种刺激，当他们意识到同时拥有个人品牌将使市场接受溢价的时候，他们会毫不犹豫地离开低价导流平台。对品质有要求的消费者愿意支付医生的品牌溢价，品牌做的越好，医生的自主定价权就越大。
</p>
<p>
	<br />
医美行业的分散性特征不利于形成强大的品牌，这正是历史留给5G时代的机会，因为管理手段的互联网化，让形成大型连锁机构的时间大大缩短，医生们发现联合起来组建大型医生集团完全是有可能的，大型医生集团的品牌力量是分散的个体模式无法抗衡的，美国前三名的医疗品牌都是医生集团，它们是凯撒、克利夫兰和梅奥。同时医生们也发现，强大的品牌能够给自己带来更好的利基市场。
</p>
<p>
	<br />
品牌的竞争能力让所谓的“流量思维”不攻自破，未来，能够给消费医疗带来利润的是品牌而非流量。
</p>
<p>
	<br />
<strong> 医生的品牌壁垒是技术实力</strong>
</p>
<p>
	<br />
在这样一个去中心化的时代，医生们的客户不像从前那样呆在传统广告媒体的那一端等着你的信息，而是活跃在朋友圈、公众号、微博和小红书里，随时随地获取信息，并且与信息源互动，这种互动的影响力可以秒杀无数的广告费。
</p>
<p>
	<br />
多元化的信息来源，定制化产品难以形成品牌壁垒，但是个性化的服务呢？技术自然成为品牌壁垒，这是医生品牌得天独厚的优势；但是在同行之间，虽然医学服务存在信息高度不对称的传统，但是相对同质化的医美服务内容也在削弱医生们的技术屏障，以往充满神秘感的技术变得不再那么高不可攀，有些消费者说起手术来也是头头是道，所以医生之间的竞争重新回归技术实力，只有建筑于技术基础上的品牌力，才能成为占领客户心智的最重要武器。
</p>
<p>
	<br />
如何占领客户心智呢？“经营客户”思维有朝一日会成为主导方式，圈内互动有助于医患之间的理解和认同，彼此深入的理解，或许某种层次上的情感交流，都是建立医疗品牌忠诚度的前奏，当然，一切的一切，都有赖于技术结果的最终呈现；然而，医美结果的主观性，与医患双方的互信有某种程度的关系，医患关系越紧密，满足感的阈值越宽；也就是说，医生对客户经营的越好，客户对医疗结果的满意度越高。
</p>]]></description>
	<pubDate>Wed, 05 Jun 2019 07:12:30 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/yimei_shiwei.html</guid>

</item>
<item>
	<title>京东商城CEO徐雷年会演讲</title>
	<link>http://blog.0356sh.com/jd-ceo-annualmeeting.html</link>
	<description><![CDATA[<tbdiv id="playerControlBtn"></tbdiv><tbdiv id="leftFullStackButton"></tbdiv><tbdiv id="rightFullStackButton"></tbdiv>
<p>
	<strong>各位亲爱的同事们：</strong>
</p>
<p>
	大家下午好！
</p>
<p>
	今年是我第一次以京东商城CEO的身份参加年会，也是第一次站在台上面对场内和场外数万名同事发言。担任商城CEO的半年来，坦率的讲，我确实很焦虑。
</p>
<p>
	但这种焦虑更多的不是来自于业绩压力，而是来自于责任。
</p>
<p>
	我们团队中有很多的年轻人，大家都足够努力拼搏，可以说是将人生中最好的青春和年华都投入到了公司，对每个人负责、<strong>让每个人的付出都有足够的价值体现</strong>、每个人都在拼搏中成长，不辜负大家的汗水和梦想，这是我最大的心愿。
</p>
<p>
	当然在这半年当中，无论是刘总，还是集团的兄弟部门、商城的管理团队以及每一个同事都给了我巨大的支持和包容，首先请允许我对大家表示最由衷的感谢！
</p>
<p>
	<strong>回顾2018</strong>
</p>
<p>
	回顾2018年，相信大家的感受都是“累”。确实，过去一年，可以说是京东历史上内外部环境变化最剧烈的一年，在经历了十几年的高速增长之后，商城进入到了一个大变局时期，各种不确定的状况突如其来。
</p>
<p align="center">
	<img src="http://blog.0356sh.com/content/uploadfile/201901/3d9ff8c70f44b2ff12a1a60a8203bc9820190121031345.jpeg" data-original="https://static.cnbetacdn.com/article/2019/0120/6c0e1249f4d6842.jpeg" style="display:block;" />
</p>
<p>
	但我们必须要肯定的是，虽然我们遭遇到了很多困难，但<strong>商城业务的基本面依旧非常良好</strong>，各项业务指标均保持着稳健的增长，抗住了雨雪风霜，并且依然持续不断的为客户和社会创造了巨大的价值！
</p>
<p>
	过去这一年，<strong>我们依旧是最受用户信赖的零售平台</strong>，为海内外超过3亿个家庭提供了稳定放心的服务，从最北端的黑龙江漠河到最南端的印尼古邦再到最西端的新疆塔什库尔干，处处都有我们的身影。这是我们最值得骄傲的根基。
</p>
<p>
	过去这一年，<strong>我们为社会经济的稳定和增长做出了巨大贡献。</strong>今天，京东自营以及第三方平台上已经有超过20万国内外品牌商家，一万多亿的交易额直接或间接带动就业超过1000万人。
</p>
<p>
	在首届进口博览会上直接签约并采购近1000亿元进口品牌商品。
</p>
<p>
	在中国、在印尼、在泰国、在“一带一路”的每一条风景线上，京东正在积极推动国内消费升级及进出口贸易发展。特别感谢在座的全体同事以及我们所有的合作伙伴们！
</p>
<p>
	过去这一年，<strong>我们持续投入研发，不断夯实了核心技术的应用能力。</strong>今天，我们可以实时让京东智能客服识别出7种不同的用户情绪、在1分钟内回答9万个问题；
</p>
<p>
	1分钟内京东大数据可实时计算处理超过30亿条数据！今天，我们的年专利申请量已超过3000件， 正式进入国内互联网企业第一梯队！商城的研发同事们，你们辛苦了！
</p>
<p>
	过去这一年，<strong>我们敢于创新，并在一些新业务上取得了阶段性突破！</strong>目前，有数十万家线下门店通过京东智能供应链和门店科技开始数字化升级。
</p>
<p>
	京东之家、京东专卖店、京东家电专卖店在全国突破了12000家，在通过数字化助力实体经济的过程中，涌现出了京东＆沃尔玛、京东＆曲美等一大批具有行业示范效应的标杆案例。
</p>
<p>
	同时，大客户业务、拼购业务和开普勒业务均保持了高速成长，为商城带来了大量新用户和订单。
</p>
<p>
	更重要的是，不管环境有多么困难，<strong>我们都始终牢记着正道成功的核心价值观，积极承担社会责任。</strong>
</p>
<p>
	尤其是我们通过商城平台，积极开展产业扶贫，截至目前，京东为全国832个贫困县上线商品超300万种，实现销售额超500亿元，直接带动70万户建档立卡贫困户增收。我们展现出了一个企业公民对社会应有的担当。
</p>
<p>
	以上所有这些都是兄弟姐妹们用汗水凝结的成果，我们无需妄自菲薄，今时今日，京东过去十几年不断积累的零售、供应链、数据和营销的各种能力，已经有了足够的可扩展性和爆发力，我们现在需要的就是<strong>聚力前行、赢得未来！</strong>
</p>
<p>
	<strong>主动求变</strong>
</p>
<p>
	回顾过去是为了看清楚我们的核心价值，但审视当下才是我们重新出发的指南！过去我们习惯了一路狂奔、高速成长，这主要取决于内外两个因素：
</p>
<p>
	一方面得益于互联网人口红利，这个红利不仅成就了京东，也成就了中国的互联网产业；
</p>
<p>
	另一方面，得益于我们以“客户为先“的核心能力打造，无论是正品行货、自建物流，还是全品类扩张、移动化、211、618等，都是紧密围绕着客户痛点、客户需求，凭借着差异化的战略设计和强大的执行力，打下了今天的基业。
</p>
<p>
	然而，目前的环境已经发生了巨变，众所周知，在全球经济形势下行的压力下，中国经济也面临着挑战，毫无疑问，我们的发展与大形势的起落密切相关，这是每个企业必然都会遇到的困难和阻力。
</p>
<p>
	尤其互联网人口红利消失、网络零售红利消失，“增量”变得很难，所有的人都紧盯“存量”，在饱和的“存量”市场里，更加残酷的竞争在所难免。
</p>
<p>
	抛开大形势，向内看，实事求是的说，我们的组织能力和行为方式也出现了问题：
</p>
<p>
	客户为先的价值观被稀释、唯KPI论和“交数”文化盛行、部门墙越来越高、自说自话、没有统一的经营逻辑、对外界变化反应越来越慢，对客户傲慢了。
</p>
<p>
	我们由一个行业的颠覆者变成了被挑战者，但思想上和机制上都没有做好相应的准备。
</p>
<p>
	所幸的是，在刘总的带领下，集团和商城的管理团队始终都保持了强烈的危机意识和正视问题、实事求是的精神，不粉饰、不遮掩，这保证了我们在发展过程中即便遇到这样那样的问题，都依旧拥有强大的自我修复能力。
</p>
<p>
	去年12月初，我们组织商城的核心高管用了4天4夜的时间，人人参与，畅所欲言，针对商城的战略进行了深入的研讨，目的就是在当前的环境下进行主动求变！
</p>
<p align="center">
	<img src="http://blog.0356sh.com/content/uploadfile/201901/be0efb22c72e9b418c65726b8c0b85ca20190121031345.jpeg" data-original="https://static.cnbetacdn.com/article/2019/0120/dfcf4cbda70e524.jpeg" style="display:block;" />
</p>
<p>
	在这次讨论中，我认为最核心及最有价值的产出就是我们明确了商城的经营理念：<strong>以信赖为基础、以客户为中心的价值创造。</strong>
</p>
<p>
	这条经营理念有三个关键词：信赖、客户、价值！信赖是我们立足的根本，客户是我们永远的指挥棒，价值是我们存在的唯一理由。有的同事可能会想，这不就是一句口号吗？这些关键词之前在不同场合不也总被提及吗？
</p>
<p>
	今天在这里，我想和大家分享的是，这绝对不是一句挂在墙上的标语，在未来很长的一段时间里，<strong>这条经营理念既是我们战略的顶层设计，也是我们行为规范的底线和红线！</strong>
</p>
<p>
	过去我们评估某个业务要不要开展、某个品牌要不要给特殊的政策和白名单，大家的考核是A还是C，只有GMV和财务指标。
</p>
<p>
	这导致很多短期利益至上的行为被纵容、很多的资源被白白浪费，很多不符合客户价值的事情多次发生，而且不同部门之间由于屁股坐在不同的位置，各说各话，推诿扯皮，缺乏统一的话语体系和行为逻辑。
</p>
<p>
	经营理念就是帮助公司从行为深处去解决这些问题，让大家能够统一共识、统一语言、统一目标、统一行动，未来“以信赖为基础、以客户为中心的价值创造”将成为商城“<strong>业务决策的标准、资源分配的依据、绩效考核的导向和组织文化的核心”。</strong>
</p>
<p>
	在这里，我明确的希望大家：以后做任何的事情，先对照我们的经营理念，想想要做的事情是否违反了信赖原则、是否以客户为中心，究竟有什么独特价值？只唯真，不唯上，<strong>对照经营理念而不是上级的命令工作。</strong>
</p>
<p>
	在这条经营理念的指引下，我想商城的全体同事要迎接几个重大的变化：
</p>
<p>
	<strong>第一：从单纯追求数字，到追求有质量增长的变化！</strong>
</p>
<p>
	这个变化并不是说GMV不重要，但我认为GMV只是结果，而不是出发点，如果我们本末倒置，就一定会动作变形。增长一定是京东商城永恒的主题！但我们的增长思路和增长方式要发生彻底的转变，我们未来将寻求的是“有质量的增长”。
</p>
<p>
	这包含三个方面：<strong>增长的可持久性、可盈利性和可持续性。</strong>可持久性，是增长的结构重塑，考验的是我们的战略眼光和耐力；可盈利性，体现的是增长的优势，只有持续产生价值的投入最终才可能带来盈利。
</p>
<p>
	可持续性，是增长的互利，体现的是我们对周边的合作伙伴、产业链上下游的持续贡献。
</p>
<p align="center">
	<img src="http://blog.0356sh.com/content/uploadfile/201901/2f084250c4887654cc1336332e55cb0c20190121031345.jpeg" data-original="https://static.cnbetacdn.com/article/2019/0120/93f15ed3e648f21.jpeg" style="display:block;" />
</p>
<p>
	所以，在有质量的增长逻辑下，<strong>以长期利益为代价获取短期利益的事情我们坚决不干！盲目投入资源，没有独特价值创造的事情我们坚决不干！盘剥合作伙伴、饮鸩止渴的事情我们坚决不干！</strong>
</p>
<p>
	<strong>第二：从单纯以货为中心，到以客户为中心的变化！</strong>
</p>
<p>
	一直以来，京东都是一个中心化开放式货架的经营模式，这与我们自营供应链的基因有关，也与互联网零售早期的模式有关。
</p>
<p>
	在这个模式下，我们培养了一大批具有深度行业理解能力和敏锐市场眼光的采销人员，去帮助用户发现最优质的商品，高品质、低价格和优质服务的货品自然就是我们最核心的价值及能力。
</p>
<p>
	但我们也必须深刻的认识到，随着技术的发展、多种移动互联网场景的出现，大众消费市场正在被细分消费场景所取代，零售的边界正在由中心化卖场延伸到任何可以触达用户的地方，无论是社交、短，还是资讯、游戏，亦或是线下各种业态，其中都有形成交易的机会和需求。
</p>
<p>
	一盘货打天下的时代已经过去了，如何能够对客户需求进行精细化、分层次的深刻理解，在正确的时间、正确的场景，给对的用户提供最适合的商品及服务，已经成为了我们必须要面对的问题。作为一个综合性零售平台，我们既要满足企业客户，也要满足家庭客户；
</p>
<p>
	我们既要满足男性客户，也要满足女性客户；我们既要追求消费升级、品质品牌，也要追求物美价廉、极致性价比；我们既要有线上的服务能力，也要有线下的拓展能力；我们既要支持品牌商，也要大力扶持中小及个性化卖家；
</p>
<p>
	这其中大数据和精准推荐的技术能力很重要，智能化的供应链能力很重要，个性化的触达手段和营销能力也很重要，但所有的前提，都是对客户需求的理解和洞察。所以，我们未来的成功一定是以客户为中心的成功，希望大家能够真正理解这个转变背后的深刻含义。
</p>
<p>
	<strong>第三：从纵向垂直一体化的组织架构，到积木化前中后台的变化！</strong>
</p>
<p>
	战略的执行要组织先行，在明确了以客户为中心的经营理念之后，商城进行了一次大规模的组织架构调整，将原先以品类为核心的纵向一体化架构，变成了以客户为中心的前中后台的架构。这个架构的设计有几个核心点：
</p>
<p>
	首先，明确了离客户最近，最理解和洞察客户需求，最终实现客户价值的职能为前台。与客户体验息息相关的终端、场景都被划分到了前台，更加聚焦的去钻研不同客户，并进行面向客户的产品创新和精细化运营。
</p>
<p>
	其次，<strong>明确提出了零售板块大中台建设的目标；</strong>中台的核心关键词就是专业化的能力沉淀，这也是京东最宝贵的财富沉淀。我们要把过去十几年所积累的know how标准化、组件化、平台化、系统化，做好对前台的赋能和支持。
</p>
<p>
	这其中除了承担数据、搜索、产品、系统的技术中台基本上已经成为了互联网公司的标配之外，我们也将大力开展供应链中台的建设，兵哥、老胡和老辛将统领这个体系，在自营、开放平台和生活服务三种不同供应链形态下布局相应的能力建设，打造核心竞争壁垒。
</p>
<p align="center">
	<img src="http://blog.0356sh.com/content/uploadfile/201901/1e12d9480ff7596407ace5c1fbe09a4020190121031346.jpeg" data-original="https://static.cnbetacdn.com/article/2019/0120/148aa140b7fe967.jpeg" style="display:block;" />
</p>
<p>
	大船必须要有龙骨，<strong>大中台将是京东商城永不停歇的超级引擎！</strong>因此，建设包含供应链、技术、营销、客服、基础平台业务等在内的大中台，是由我牵头的必赢之战！
</p>
<p>
	未来在大中台驱动下的商城图景，是对行业趋势有准确的判断能力、对客户需求有敏锐的反应能力、对新技术、新模式有极强的感知能力、对内部优势沉淀有锐利的组件化、产品化的能力、对外部风险有前瞻性的预测能力。未来，单兵做战模式一定会被淘汰，强大的中军是决胜的关键！
</p>
<p>
	我经常用乐高积木来比喻前中后台的合作关系，好的合作关系是无缝对接，不同的模块快速拼接成型，形成强大的合力。而不好的合作关系则是对牛弹琴，自行其是。
</p>
<p>
	如何建设好的合作关系，使得前中后台高效灵活运转，靠的是逻辑、流程和规则，以及统一的价值观、行为模式和语言。所以，关系到这次组织结构的变化能否成功的核心依旧要回归到经营理念的落地上。
</p>
<p>
	前中后台所有的团队如果都以经营理念为行事标准，站在全局看问题，跳离本位主义，即便是短期有磨合的问题，但长期一定会越来越顺畅。面对着组织结构的变化，我相信有很多同事在初期会不适，但我深信，只要我们在认知上是统一的，就一定能度过短期的阵痛！
</p>
<p>
	<strong>第四：从创造数字到创造价值的人才激励导向的变化</strong>
</p>
<p align="center">
	<img src="http://blog.0356sh.com/content/uploadfile/201901/e27a03843fe378852db8c07b088ba53d20190121031346.jpeg" data-original="https://static.cnbetacdn.com/article/2019/0120/71360c09aff01d0.jpeg" style="display:block;" />
</p>
<p>
	人才，是京东商城发展的压舱石。尤其在战略变革期，人才建设怎么强调都不过分。然而，如何让“人力”转化为“人才”？
</p>
<p>
	这是我们必须要深入思考的问题。我想，在座的各位同事都是人才，只不过，我们需要找到适合你们发展的着力点，当你们踏在了着力点之后，就可以尽情跳跃。
</p>
<p>
	这个着力点是什么？就是价值创造！
</p>
<p>
	我简单讲下我心中前中台人才需要具备的素质：前台人员要具备更强的客户意识、行业敏感度和创新意识及能力。大中台人员，我们则要求具备更强的服务意识、专业能力和开放心态。这里，不仅有我们对大家的要求，更有我们能为大家做什么。其中，核心就是激励体系的设立。
</p>
<p>
	在蒙眼狂奔的时代，我们对于人才的考核也几乎是工厂式的，重“量”不重“质”，这种业绩考核体制下，只会让团队沉醉于数字的增长。所以，当有一天，大家发现“交数”已经交不动了，我们首先反思的是目标导向的问题。
</p>
<p>
	目前，我们正在树立以“价值创造”为导向的激励理念，建立匹配战略、组织、文化升级的激励体系，我们将围绕前台、中台和后台，从价值创造的界定、评估和分配三个方面，优化目前的激励体系和配套机制。
</p>
<p align="center">
	<img src="http://blog.0356sh.com/content/uploadfile/201901/35330270dd1acf377920b7e3aff4d4da20190121031346.jpeg" data-original="https://static.cnbetacdn.com/article/2019/0120/7df7eeff029377b.jpeg" style="display:block;" />
</p>
<p>
	我们要为那些具有开拓性的人才提供更合理、甚至是激进的薪酬激励，让能者上，庸者下！
</p>
<p>
	同时，我们也将加速组织的扁平化，减少汇报层级，加强一线授权，打破常规，营造更加开放创新的工作氛围，让更多年轻人承担关键任务，走上核心岗位，为组织提供更多的新鲜血液和持续的动能。
</p>
<p>
	<strong>回归初心</strong>
</p>
<p align="center">
	<img src="http://blog.0356sh.com/content/uploadfile/201901/ec002dae6524c166c437f74662a708d720190121031346.jpeg" data-original="https://static.cnbetacdn.com/article/2019/0120/d14fd6fc1909c43.jpeg" style="display:block;" />
</p>
<p>
	各位同事，刚才我谈到的四大变化，其实每一项单独来看，都不亚于对组织进行彻底的重写，尤其是对于超过3万人的大型商业组织来说，更是极具挑战，可以预见到过程会异常艰辛、异常痛苦。
</p>
<p>
	但京东人一直以来传承的文化和基因，最不怕的就是苦和累，因为我们所有的付出都会与我们创造的价值成正比。
</p>
<p>
	我们当下正在解决的就是“我们从哪里来，到哪里去”的命题。面对着庞大的组织重组，艰巨的2019年，经过管理团队仔细的论证和统一共识，我们所有人都看到了希望。
</p>
<p>
	2019年我们的使命就是回归对客户的初心，创造真正的价值，我相信，有着辉煌传统和卓越成就的商城团队，一定可以再次战胜所有困难和挑战，获得用户、合作伙伴甚至是竞争对手的尊敬！
</p>
<p align="center">
	<img src="http://blog.0356sh.com/content/uploadfile/201901/14f8384b29b8c987491f05d0d05f543920190121031346.jpeg" data-original="https://static.cnbetacdn.com/article/2019/0120/db2760d4f8bdd4a.jpeg" style="display:block;" />
</p>
<p>
	我想用一句话来总结今天的演讲：“心迷则此岸，心悟则彼岸”。找到我们生活和工作的意义，找到我们奋斗的原动力，回到我们事业的初心，集结号已经吹响，我们已经整装待发！"
</p>]]></description>
	<pubDate>Mon, 21 Jan 2019 03:11:32 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/jd-ceo-annualmeeting.html</guid>

</item>
<item>
	<title>远程桌面，出现身份验证错误，要求的函数不正确，这可能是由于CredSSP加密Oracle修正</title>
	<link>http://blog.0356sh.com/post-133.html</link>
	<description><![CDATA[<p style="font-family:&quot;padding:0px;font-size:14px;color:#3F3F3F;text-decoration:none;line-height:30px;max-width:680px !important;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:left;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;background-color:#FFFFFF;">
	问题点：
</p>
<p style="font-family:&quot;padding:0px;font-size:14px;color:#3F3F3F;text-decoration:none;line-height:30px;max-width:680px !important;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:left;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;background-color:#FFFFFF;">
	升级至win10 最新版本10.0.17134，安装最新补丁后无法远程win server 2016服务器，报错信息如下：
</p>
<p style="font-family:&quot;padding:0px;font-size:14px;color:#3F3F3F;text-decoration:none;line-height:30px;max-width:680px !important;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:left;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;background-color:#FFFFFF;">
	出现身份验证错误，要求的函数不正确，这可能是由于CredSSP加密Oracle修正。
</p>
<p style="font-family:&quot;padding:0px;font-size:14px;color:#3F3F3F;text-decoration:none;line-height:30px;max-width:680px !important;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:left;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;background-color:#FFFFFF;">
	<a target="_blank" href="http://blog.0356sh.com/content/uploadfile/201805/377e1525915454.jpg" id="ematt:360"><img src="http://blog.0356sh.com/content/uploadfile/201805/377e1525915454.jpg" title="点击查看原图" alt="QQ截图20180510092335.jpg" width="494" height="200" border="0" /></a> 
</p>
<p style="font-family:&quot;padding:0px;font-size:14px;color:#3F3F3F;text-decoration:none;line-height:30px;max-width:680px !important;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:left;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;background-color:#FFFFFF;">
	解决方法：
</p>
<p style="font-family:&quot;padding:0px;font-size:14px;color:#3F3F3F;text-decoration:none;line-height:30px;max-width:680px !important;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:left;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;background-color:#FFFFFF;">
	参照微软kb：
</p>
<p style="font-family:&quot;padding:0px;font-size:14px;color:#3F3F3F;text-decoration:none;line-height:30px;max-width:680px !important;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:left;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;background-color:#FFFFFF;">
	<a href="https://support.microsoft.com/zh-cn/help/4093492/credssp-updates-for-cve-2018-0886-march-13-2018" style="font-family:&quot;padding:0px;color:#333333;max-width:680px !important;text-decoration:none;">https://support.microsoft.com/zh-cn/help/4093492/credssp-updates-for-cve-2018-0886-march-13-2018</a> 
</p>
<p style="font-family:&quot;padding:0px;font-size:14px;color:#3F3F3F;text-decoration:none;line-height:30px;max-width:680px !important;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:left;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;background-color:#FFFFFF;">
	&nbsp;
</p>
<p style="font-family:&quot;padding:0px;font-size:14px;color:#3F3F3F;text-decoration:none;line-height:30px;max-width:680px !important;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:left;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;background-color:#FFFFFF;">
	本地组策略：
</p>
<p style="font-family:&quot;padding:0px;font-size:14px;color:#3F3F3F;text-decoration:none;line-height:30px;max-width:680px !important;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:left;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;background-color:#FFFFFF;">
	计算机配置&gt;管理模板&gt;系统&gt;凭据分配&gt;加密Oracle修正
</p>
<p style="font-family:&quot;padding:0px;font-size:14px;color:#3F3F3F;text-decoration:none;line-height:30px;max-width:680px !important;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:left;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;background-color:#FFFFFF;">
	选择启用并选择易受攻击。
</p>
<p style="font-family:&quot;padding:0px;font-size:14px;color:#3F3F3F;text-decoration:none;line-height:30px;max-width:680px !important;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:left;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;background-color:#FFFFFF;">
	&nbsp;
</p>
<p style="font-family:&quot;padding:0px;font-size:14px;color:#3F3F3F;text-decoration:none;line-height:30px;max-width:680px !important;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:left;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;background-color:#FFFFFF;">
	<a target="_blank" href="http://blog.0356sh.com/content/uploadfile/201805/c5601525915454.jpg" id="ematt:362"><img src="http://blog.0356sh.com/content/uploadfile/201805/c5601525915454.jpg" title="点击查看原图" alt="QQ截图20180510092343.jpg" width="553" height="511" border="0" /></a> 
</p>
<p style="font-family:&quot;padding:0px;font-size:14px;color:#3F3F3F;text-decoration:none;line-height:30px;max-width:680px !important;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:left;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;background-color:#FFFFFF;">
	原文：https://www.cnblogs.com/fayong/p/9015604.html
</p>
<tbdiv id="playerControlBtn"></tbdiv><tbdiv id="leftFullStackButton"></tbdiv><tbdiv id="rightFullStackButton"></tbdiv>]]></description>
	<pubDate>Thu, 10 May 2018 01:22:41 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/post-133.html</guid>

</item>
<item>
	<title>Adobe CS6 系列软件官方正式版+破解补丁</title>
	<link>http://blog.0356sh.com/adobe-cs6.html</link>
	<description><![CDATA[<center>
	<img alt="Adobe CS6 系列软件官方正式版+破解补丁 by UI设计师阿斌" src="http://blog.0356sh.com/content/uploadfile/201610/9f75ece2a0780cc3b1e46669437dd91820161024084530.jpeg" width="250" height="188" />
</center>
<p>
	1、Dreamweaver CS6 官方简体中文原版
</p>
<p>
	下载地址：http://trials2.stage.adobe.com/AdobeProducts/DRWV/12/win32/Dreamweaver_12_LS3.exe(直接复制地址到迅雷测试都OK 
下同)
</p>
<p>
	DreamweaverCS6官方简体中文正式原版发布，其最大的特点是拥有直观的可视界面，可制作并编辑网站和移动应用程序。新版本最大的改善就是启动速度，基本上可以说是秒开的。
</p>
<p>
	2、PhotoShop CS6 官方简体中文原版
</p>
<p>
	下载地址：http://trials2.stage.adobe.com/AdobeProducts/PHSP/13/win32/Photoshop_13_LS3.7z
</p>
<p>
	万众期待的AdobePhotoShopCS6Extended简体中文正式版终于推出了!!PSCS6曾被业界认为是Adobe产品史上最大的一次升级!从界面设计、窗口布局功能体验上看PhotoshopCS6确实改变了不少!外在上，PS的图标从原来的3D样式转变成了如今比较流行的平面简单风格，而用户界面的主色调也重新设计成了深色;内在方面最明显的便是PSCS6为摄影师提供了基本的视频编辑功能，同时在指针、图层、滤镜等各方面也发生了不同程度的变化。
</p>
<p>
	3、Fireworks CS6 官方简体中文原版
</p>
<p>
	下载地址：http://trials2.stage.adobe.com/AdobeProducts/FWKS/12/win32/Fireworks_12_LS3.exe
</p>
<p>
	Adobe系列软件之FireworksCS6官方简体中文版正式发布，它可以轻松制作出各种动感的Gif、动态按钮、动态翻转等网络图片。更重要的是Fireworks可以轻松地实现大图切割，让网页加载图片时，显示速度更快!让你在弹指间便能制作出精美的矢量和点阵图、模型、3D图形和交互式内容，无需编码，直接应用于网页和移动应用程序!
</p>
<p>
	4、Flash CS6 官方简体中文正式版下载
</p>
<p>
	下载地址：http://trials2.stage.adobe.com/AdobeProducts/FLPR/12/win32/FlashPro_12_LS3.exe
</p>
<p>
	Adobe系列软件之FlashCS6官方简体中文版正式发布，对于喜爱制作动画的朋友可是一大喜讯。下面就直接附上下载链接和破解补丁。
</p>
<p>
	5、AfterEffects CS6 官方正式版发布
</p>
<p>
	下载地址：http://trials2.stage.adobe.com/AdobeProducts/AEFT/11/win64/AfterEffects_11_LS7.7z
</p>
<p>
	AdobeAfterEffects是Adobe研发的非常知名的视频效果处理软件。我们平时在电视和电影中看到的视频特效都是经过AdobeAfterEffects加工处理而来。新版本AdobeAfterEffectsCS6据说是该软件近十年来最大的改进，速度和响应都更快使用GlobalPerformanceCache(全局性能缓存)，可以即时保存预览，再大的对象也能随时应付。
</p>
<p>
	6、Illustrator CS6 官方简体中文原版下载
</p>
<p>
	下载地址：http://trials2.stage.adobe.com/AdobeProducts/ILST/16/win32/Illustrator_16_LS3.7z
</p>
<p>
	AdobeIllustratorCS6新增了不少功能和对原有的功能进行增强。全新的图像描摹，利用全新的描摹引擎将栅格图像转换为可编辑矢量。无需使用复杂控件即可获得清晰的线条、精确的拟合及可靠的结果。新增的高效、灵活的界面，借助简化的界面，减少完成日常任务所需的步骤。体验图层名称的内联编辑、精确的颜色取样以及可配合其他Adobe工具顺畅调节亮度的UI。还有高斯模糊增强功能、颜色面板增强功能、变换面板增强功能和控制面板增强功能等等。
</p>
<p>
	注：(安装之前请确认已经删除以前安装的版本文件) 直接复制上面地址到迅雷 测试都OK
</p>
<p>
	安装与破解使用方法：
</p>
<p>
	1、下载 Adobe CS6 系列软件官方原版安装包，先以试用的模式安装完成软件。
</p>
<p>
	2、安装完成后运行一次软件，然后关闭
</p>
<p>
	3、下载Adobe CS6 
系列软件破解补丁，解压后得到32和64两个文件夹，根据自己的系统类型选择，64位系统请选择64文件夹，复制里面的amtlib文件，替换掉相应软件安装目录的同名文件即可。当然，原文件最好备份一个备用。
</p>
<p>
	Adobe CS6 系列软件破解补丁 (amtlib.dll 
支持32位和64位)下载地址：http://pan.baidu.com/s/1c2FVBbE
</p><div id="related_log" style="font-size:12px"><p><b>相关日志：</b></p><p><a href="http://blog.0356sh.com/js_flash_charts.html">几个常用的flash以及js图形绘制插件</a></p><p><a href="http://blog.0356sh.com/mac_osx_lion_wallpapers.html">Mac OS X 10.7 Lion 正式版官方壁纸下载</a></p><p><a href="http://blog.0356sh.com/photoshop_cs6.html">PhotoShop CS6 官方简体中文正式版原版+破解补丁下载</a></p><p><a href="http://blog.0356sh.com/Dreamweavercs6-2.html">Dreamweaver CS6功能和新增功能</a></p><p><a href="http://blog.0356sh.com/CorelDRAW_X6.html">CorelDRAW X6 官方正式版</a></p></div>]]></description>
	<pubDate>Mon, 24 Oct 2016 08:43:21 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/adobe-cs6.html</guid>

</item>
<item>
	<title>Windows下面安装和配置MySQL</title>
	<link>http://blog.0356sh.com/mysql-install.html</link>
	<description><![CDATA[<p>
	1.首先到http://dev.mysql.com/ 
上下载windows版mysql5.6免安装zip包。然后将zip包解压到C:\mysql下。
</p>
<p>
	2.复制mysql下的my-default.ini, 在同目录下创建my.ini，my.ini为mysql的配置。最简单的配置：
</p>
<pre class="brush: plain;auto-links: false;">[mysqld]

character-set-server=utf8

# Remove leading # to turn on a very important data integrity option: logging
# These are commonly set, remove the # and set as required.
# server_id = .....
# The TCP/IP Port the MySQL Server will listen on
port=3306

#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/mysql/"

#数据文件的目录，可以更改也可以不改，为了数据安全，最好改到非系统盘，改的时候注意，把前面#去掉，再把mysql目录下的data文件夹复制到你所要的目录
#datadir="D:/data/"

character-set-server=utf8

default-storage-engine=MYISAM
max_connections=1000
query_cache_size=64M
tmp_table_size=128M
#在V5.1里table_open_cache替换table_cache做为新的变量名称，所以5.1以上的要改成table_open_cache
table_cache=256
wait_timeout=120
interactive_timeout=120
local-infile = 0
thread_cache_size=8

#*** MyISAM Specific options
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=26M
key_buffer_size=32M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K

#*** INNODB Specific options ***
#skip-innodb
innodb_buffer_pool_size = 128M
innodb_additional_mem_pool_size = 4M
innodb_log_files_in_group = 3

# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 64M
innodb_log_buffer_size = 10M
innodb_max_dirty_pages_pct = 50
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50
innodb_file_per_table = 1
innodb_open_files = 100
&nbsp;</pre>
<p>
	3.计算机右键，属性，高级系统设置，高级，环境变量，系统变量。
</p>
<p>
	<a target="_blank" href="http://blog.0356sh.com/content/uploadfile/201610/0cdb1476411851.jpg" id="ematt:347"><img src="http://blog.0356sh.com/content/uploadfile/201610/0cdb1476411851.jpg" title="点击查看原图" alt="QQ截图20161014100221.jpg" width="408" border="0" height="469" /></a> 
</p>
<p>
	编辑环境变量PATH。将"<span style="color:#E53333;">;C:\mysql\bin</span>"加入path中。
</p>
<p>
	4.注册mysql为windows service. 以后可以使用windows service来安装mysqld和卸载mysqld的服务.
</p>
<p>
	以管理员模式启动cmd
</p>
<p>
	<img src="http://blog.0356sh.com/content/uploadfile/201610/934d1476411851.jpg" title="点击查看原图" alt="QQ截图20161014100318.jpg" width="416" border="0" height="248" /> 
</p>
<p>
	进入mysql安装路径： C:\mysql\bin
</p>
<p>
	输入：<span style="color:#E53333;">mysqld -install Mysql --defaults-file="C:\mysql\my.ini"</span> 
</p>
<p>
	提示：Service successfully installed.
</p>
<p>
	<a target="_blank" href="http://blog.0356sh.com/content/uploadfile/201610/61721476411851.jpg" id="ematt:350"><img src="http://blog.0356sh.com/content/uploadfile/201610/61721476411851.jpg" title="点击查看原图" alt="QQ截图20161014101016.jpg" width="577" border="0" height="142" /></a> 
</p>
<p>
	(卸载MySQL服务命令是：mysqld -remove Mysql)
</p>
<p>
	5.启动mysql服务：<span style="color:#E53333;">net start Mysql&nbsp;</span>&nbsp; (net stop Mysql 停止mysql服务)，现在进去Windows服务里面可以看到Mysql的服务：
</p>
<p>
	<a target="_blank" href="http://blog.0356sh.com/content/uploadfile/201610/44151476411851.jpg" id="ematt:352"><img src="http://blog.0356sh.com/content/uploadfile/201610/44151476411851.jpg" title="点击查看原图" alt="QQ截图20161014101232.jpg" width="278" border="0" height="116" /></a> 
</p>
<p>
	<a target="_blank" href="http://blog.0356sh.com/content/uploadfile/201610/b6c91476411851.jpg" id="ematt:353"><img src="http://blog.0356sh.com/content/uploadfile/201610/b6c91476411851.jpg" title="点击查看原图" alt="QQ截图20161014101423.jpg" width="426" border="0" height="172" /></a> 
</p>
<p>
	6.现在就可以在命令行使用root用户登录mysql数据库：
</p>
<p>
	<span style="color:#E53333;">mysql -u root -p</span> 
</p>
<p>
	密码为空，直接回车。
</p>
<p>
	<a target="_blank" href="http://blog.0356sh.com/content/uploadfile/201610/f7a41476411851.jpg" id="ematt:355"><img src="http://blog.0356sh.com/content/uploadfile/201610/f7a41476411851.jpg" title="点击查看原图" alt="QQ截图20161014101618.jpg" width="648" border="0" height="350" /></a> 
</p>
<p>
	修改root帐户的登陆密码1234：
</p>
<p>
	<br />
</p>
<p>
	GRANT ALL ON *.* TO 'root'@'localhost' IDENTIFIED BY '1234';
</p>
<p>
	<a target="_blank" href="http://blog.0356sh.com/content/uploadfile/201610/e5681476412335.jpg" id="ematt:357"><img src="http://blog.0356sh.com/content/uploadfile/201610/e5681476412335.jpg" title="点击查看原图" alt="QQ截图20161014103204.jpg" width="636" border="0" height="270" /></a> 
</p>
<p>
	<br />
</p>
<p>
	7.安装完成!
</p><div id="related_log" style="font-size:12px"><p><b>相关日志：</b></p><p><a href="http://blog.0356sh.com/php_mysql_luanma.html">PHP中插入MYSQL数据乱码的问题和解决方法</a></p></div>]]></description>
	<pubDate>Fri, 14 Oct 2016 01:33:08 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/mysql-install.html</guid>

</item>
<item>
	<title>31款轻量级开源JavaScript插件和库 快速提升效率</title>
	<link>http://blog.0356sh.com/javascript-plus.html</link>
	<description><![CDATA[<p>
	目前有很多网站设计师和开发者喜欢使用由JavaScript开发的插件和库，但同时面临一个苦恼的问题：它们中的大多数实在是太累赘而且常常降低网站的性能。其实，其中也有不少轻量级的插件和库，它们不仅轻巧有用，而且不会影响网站的性能。本文，就为大家整理了2016年以来30多款轻量级Javascript插件和库的列表，这些工具服务于特定的目标，并且它们能够非常有效和高效地实现目标。
</p>
<p>
	不管你想创建一个图片库、一个滑动效果，个性化菜单还是其他接口元素，你都可以用这些插件和库轻易的实现。同时，你还可以使用这些插件为网站增加出色的功能，例如GIF和图片预览、吸引人的网站图标及其他。
</p>
<p>
	这些插件和库都是非常简单的编码并且可以轻易实现。你以后肯定会发现它们对于你的Web项目非常有用。
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/371fc262859704023e46e7431f4e3bae20161013020113.jpg" width="600" height="300" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">0<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/feimosi/baguetteBox.js" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">baguetteBox.js</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
baguetteBox.js是一个简单易用的响应式图像灯箱效果脚本，而且在移动设备上支持滑动手势，完全使用Javascript编写。（压缩后大约2.7KB）
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/37d3b323142174eab4745567a624eee520161013020113.png" width="600" height="254" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="https://feimosi.github.io/baguetteBox.js/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">https://feimosi.github.io/baguetteBox.js/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">1<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/jlmakes/scrollreveal.js" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">ScrollReveal</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
ScrollReveal插件使用户能够无比轻松地创建桌面和移动浏览器的网页滚动动画（压缩后大约3.3KB）
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/d80c1bc2674862ab7c206b4c8daf2b3420161013020113.png" width="600" height="284" /> 
</p>
<p>
	请各位自行打开DEMO页面感受一下动画效果。： ）
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="https://scrollrevealjs.org/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">https://scrollrevealjs.org/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">2<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/fdansv/marginotes" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Marginotes</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
Marginotes，使用jQuery实现的添加旁注插件，快速，炫酷。
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/b442b899a822ac6bf22741a7813ffeaf20161013020113.gif" width="600" height="159" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="http://francisco.dance/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">http://francisco.dance/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">3<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/mahdif/loud-links/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Loud Links</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
LoudLinks是一个轻量级的JavaScript库用于添加交互声音到您的站点。它通过创建HTML5音频元素并用它来播放MP3或OGG音频文件来实现这个功能。（约1.5KB）
</p>
<p>
	还是烦请各位打开下面的链接感受一下效果。： ）
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="http://loudlinks.rocks/#examples" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">http://loudlinks.rocks/#examples</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">4<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/callmecavs/bricks.js" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Bricks.js</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
Bricks.js，是一款超快的用于固定宽度元素的“砖石”布局生成器
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/0fdd322ccfdfc3b89894162c5c1b2c1d20161013020114.png" width="600" height="552" /> 
</p>
<p>
	可以在DEMO页面输入所需的砖块个数，查看生成的效果（每次都会随机变化）
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="http://callmecavs.com/bricks.js/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">http://callmecavs.com/bricks.js/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">5<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/yabwe/medium-editor" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">MediumEditor</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
MediumEditor，使用了Vanilla Javascript框架。MediumEditor是一个轻量级的（28KB）仿Medium.com的所见即所得在线编辑器工具栏。还有一个可用的MediumEditor扩展和主题。
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/061d40996eeb4f2104d50c7a604d95b720161013020114.jpg" width="600" height="374" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="https://yabwe.github.io/medium-editor/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">https://yabwe.github.io/medium-editor/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">6<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/Specro/Philter" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Philter</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
Philter可以让你通过使用HTML属性控制CSS滤镜，使用它之后，当你将光标移动到图片上的时候，图片上会加载CSS滤镜。无论是作为jQuery插件还是Vanilla Javascript框架都可用。
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/9f9b6a0c587d31177e8c43550c48175920161013020114.png" width="600" height="311" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="http://specro.github.io/Philter/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">http://specro.github.io/Philter/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">7<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/corbindavenport/superembed.js" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">SuperEmbed.js</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
SuperEmbed.js是一个Javascript库，可检测出网页上的内嵌视频并使他们能够变成响应式元素（压缩后约1.6KB）
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="https://jsfiddle.net/h6x04LuL/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">https://jsfiddle.net/h6x04LuL/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">8<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/substance/substance" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Substance</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
Substance是一个基于Web的内容编辑JavaScript库。它给你提供所有你需要用于创建自定义编辑器和基于Web的发布系统的工具。
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/b64486ed2b6eaa35e05c1071e5aa6c3020161013020114.jpg" width="600" height="240" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="http://substance.io/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">http://substance.io/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">9<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/javve/list.js" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">List.js</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
List.js是一个轻量级的和快速的Vanilla JavaScript框架脚本，为列表、表格或其他任何HTMLL标签增加了搜索，排序，过滤器和灵活性等元素
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/709c5d20f5f126880e16dd42094abad320161013020115.png" width="385" height="417" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="http://www.listjs.com/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">http://www.listjs.com/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">10<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/SodhanaLibrary/jqGifPreview" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">jqGifPreview</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
jqGifPreview是一个简单的jQuery插件，用于创建GIF预览，就像你在Facebook上看到的。
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/c31235a1848307ba383c906776a45c1520161013020115.png" width="300" height="169" />&nbsp;&nbsp;<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/825717275c5b8be628c0ffcadb92cf3420161013020115.gif" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="http://demo.sodhanalibrary.com/angular/gif_preview/jqGifPreview/demo.html" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">http://demo.sodhanalibrary.com/angular/gif_preview/jqGifPreview/demo.html</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">11<span class="Apple-converted-space">&nbsp;</span><a href="https://www.oschina.net/p/datedropper-js" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Datedropper.js</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
Datedropper.js是一个jQuery插件，为您提供了一种简单的方法用于在输入区域输入日期。
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/e4abf21cf5ea1e933f48d6fc29aeca4320161013020115.gif" width="370" height="370" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="http://felicegattuso.com/projects/datedropper/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">http://felicegattuso.com/projects/datedropper/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">12<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/fonstok/jfMagnify" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">jfMagnify</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
jfMagnify是一个jQuery插件用于在任何HTML元素创建放大镜效果，不仅仅是图像。
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/13717f3b59082a20a311dc94ad23dd0d20161013020116.jpg" width="600" height="240" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="https://github.com/fonstok/jfMagnify/tree/master/demo" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">https://github.com/fonstok/jfMagnify/tree/master/demo</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">13<span class="Apple-converted-space">&nbsp;</span><a href="https://www.oschina.net/p/jquery-formbuilder" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">jQuery formBuilder</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
jQuery formBuilder是一个新的jQuery插件，可通过拖放的方式快速生成表格
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/ac1029b68f141e3b066cdfaaaec4d93920161013020116.png" width="600" height="262" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="https://formbuilder.online/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">https://formbuilder.online/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">14<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/FezVrasta/popper.js" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Popper.js</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
Popper.js是一个轻量级的库用于管理工具提示和弹窗效果。你可以快速轻易地使用一行代码放置工具提示控件。（压缩后约4KB）
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/3ba1476e1639ec84c4f7247e6008ce0720161013020116.png" width="324" height="222" />&nbsp;&nbsp;<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/58114d8a49a9ec38e44783940d46662f20161013020116.png" width="175" height="311" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="https://popper.js.org/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">https://popper.js.org/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">15<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/msurguy/background-blur" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Image Blur Plugin</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
Image Blur Plugin是一个轻量级的跨浏览器jQuery插件，用于生成图像模糊效果
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/e679593b78ad6eb0664fd1d8cf0ad59220161013020116.png" width="556" height="394" /> 
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/88be850d28cd63e1d1d4dca59db5344320161013020116.png" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="https://msurguy.github.io/background-blur/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">https://msurguy.github.io/background-blur/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">16<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/ireade/inlinetweetjs/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">InlineTweet.js</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
InlineTweet.js，你可以通过它轻易地用网页上的任何文字创建一个推特链接。你所需要做的是用data-inline-tweet将推特文字包裹到一个容器
</p>
<p>
	可以点击DEMO，体验该插件的效果
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="http://ireade.github.io/inlinetweetjs/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">http://ireade.github.io/inlinetweetjs/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">17<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/Bahlaouane-Hamza/I-Miss-You" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">iMissYou.js</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
iMissYou.js是个轻便小巧的jQuery插件用于当用户离开你的网页时，改变网页的标题和图标
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/a31fecccce8cb3403dce24c96c3fcacb20161013020117.jpg" width="600" height="240" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">18<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/limonte/sweetalert2" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">SweetAlert2</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
SweetAlert2是一个颜值很高而且可以自定义的警告弹出窗口插件，可以代替Javascript的弹出窗口
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/4e840b00bd2f7e3809919a27a13e096220161013020117.gif" width="550" height="349" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="https://limonte.github.io/sweetalert2/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">https://limonte.github.io/sweetalert2/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">19<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/polarnotion/turntable/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Turntable.js</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
Turntable.js是一个响应式的jQuery滑块插件，会在当你的鼠标(或手指)扫过一个存放了一批图片的容器时产生翻转效果
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/f911272f2cb141b42ca7695fca2bd24920161013020117.jpg" width="600" height="240" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="http://polarnotion.github.io/turntable/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">http://polarnotion.github.io/turntable/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">20<span class="Apple-converted-space">&nbsp;</span><a href="https://www.oschina.net/p/push-js" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Push.js</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
Push.js是一个跨浏览器的Javascript桌面通知插件
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/0fccf832ff6ee4c08be82f101aa9b33020161013020117.png" width="600" height="280" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="http://nickersoft.github.io/push.js/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">http://nickersoft.github.io/push.js/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">21<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/rishabhp/bideo.js" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Bideo.js</a>&nbsp;</strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
Bideo.js是一个Javascript库，能非常轻易添加全屏背景视频到网页
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/54238c15098f46cd9d7a4202c7bcb10d20161013020117.png" width="600" height="280" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="https://rishabhp.github.io/bideo.js/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">https://rishabhp.github.io/bideo.js/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">22<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/asvd/microlight" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Microlight.js</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
Microlight.js是一个轻量级的代码高亮库，适用于任何编程语言，这大大提高了代码可读性（约2.2KB）
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/5704cbacfac84f74d307c14725be949620161013020117.png" width="501" height="302" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="https://asvd.github.io/microlight/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">https://asvd.github.io/microlight/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">23<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/algolia/places/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Algolia Places</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
Algolia Places是一个Javascript库，能让你在网页轻易实现搜索栏自动完成功能
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/68d4a016bd6b14f2d05ba990f62c7e7720161013020118.gif" width="600" height="224" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="https://community.algolia.com/places/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">https://community.algolia.com/places/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">24<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/chmln/flatpickr" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">flatpickr</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
flatpickr基于vanilla Javascript框架，是一个轻量级的日期标记和日历插件
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/8577bd197b6a6ecfcd9aa1c18718204320161013020118.png" width="600" height="419" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="https://chmln.github.io/flatpickr/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">https://chmln.github.io/flatpickr/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">25<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/adchsm/Slidebars" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Slidebars</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
Slidebars是一个jQuery框架，用于为你的网页或web应用添加off-canvas菜单和侧边栏
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/41ae52c7b2d41d753194328087b5515620161013020118.jpg" width="600" height="240" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="https://www.adchsm.com/slidebars/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">https://www.adchsm.com/slidebars/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">26<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/juliangarnier/anime" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">anime.js</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
anime.js是一个灵活轻便的JavaScript动画库。它通过CSS，独立变换，SVG，DOM属性和JS对象实现。这个GIF没有表现出它真正的效果，大家可以<em style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;"><strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;"><a href="http://anime-js.com/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">访问主页</a></strong></em>看一下，动画相当酷炫。
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/4b2e23b929b2d3921e353c8b3d6abba320161013020118.gif" width="288" height="128" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="http://codepen.io/collection/XLebem/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">http://codepen.io/collection/XLebem/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">27<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/nosir/cleave.js/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Cleave.js</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
Cleave.js会在你输入时格式化你的&lt;input/&gt;标签里面的内容
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/6e3f3caad0eac9629987589ff21fd2c520161013020118.png" width="600" height="499" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="http://nosir.github.io/cleave.js/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">http://nosir.github.io/cleave.js/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">28<span class="Apple-converted-space">&nbsp;</span><a href="http://www.github.com/austenpayan/skippr" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Skippr</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
Skippr是一个超级简单的jQuery轻量级幻灯片插件
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/6cda15e72e3db521cb49b997eb754f5b20161013020118.jpg" width="600" height="240" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="http://austenpayan.github.io/skippr/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">http://austenpayan.github.io/skippr/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">29<span class="Apple-converted-space">&nbsp;</span><a href="https://www.oschina.net/p/izimodal-js" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">iziModal.js</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
iziModal.js是一个优雅的，响应式的，灵活和轻便的jQuery插件。
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/f32969513139bd545570964facdcb20b20161013020119.png" width="600" height="284" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="http://izimodal.marcelodolce.com/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">http://izimodal.marcelodolce.com/</a> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">30<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/sachinchoolur/lightgallery.js" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">Lightgallery.js</a></strong><br style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;" />
Lightgallery.js是一个功能齐全的JavaScript图像灯箱插件，没有任何依赖。
</p>
<p>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201610/1d2652d53cd08a9ca0544be1a671155320161013020119.jpg" width="600" height="240" /> 
</p>
<p>
	<strong style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;">DEMO：</strong><a href="https://sachinchoolur.github.io/lightgallery.js/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">https://sachinchoolur.github.io/lightgallery.js/</a>&nbsp;&amp;&amp;&nbsp;<a href="https://codepen.io/sachinchoolur/pen/qNyvGW" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">https://codepen.io/sachinchoolur/pen/qNyvGW</a> 
</p>
<p>
	来自：<a href="http://www.dzineship.com/lightweight-javascript-plugins-and-libraries-from-2016/" target="_blank" rel="nofollow" style="box-sizing:inherit;-webkit-tap-highlight-color:transparent;font-family:'Pingfang SC', STHeiti, 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', SimSun, sans-serif;outline:0px;border:none;transition:color 0.3s;text-decoration:none;color:#4466BB;">dzineship.com</a> 
</p><div id="related_log" style="font-size:12px"><p><b>相关日志：</b></p><p><a href="http://blog.0356sh.com/nivoSlider-noConflict.html">TypeError: $(...).nivoSlider is not a function</a></p><p><a href="http://blog.0356sh.com/js-cookice.html">javascript操作cookie函数写法</a></p><p><a href="http://blog.0356sh.com/jquery_live.html">jQuery live时代替hover的问题</a></p><p><a href="http://blog.0356sh.com/qianduancainiao.html">前端工程师新手必读</a></p><p><a href="http://blog.0356sh.com/canvas-introduced.html">讲一讲 Canvas 究竟是个啥</a></p></div>]]></description>
	<pubDate>Thu, 13 Oct 2016 01:56:19 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/javascript-plus.html</guid>

</item>
<item>
	<title>讲一讲 Canvas 究竟是个啥</title>
	<link>http://blog.0356sh.com/canvas-introduced.html</link>
	<description><![CDATA[<p>
	HTML5 的标准已经出来好久了，但是似乎其中的 Canvas 现在并没有在太多的地方用到。一个很重要的原因是，Canvas 的标准还没有完全确定，不适合大规模用在生产环境。但是，Canvas 的优点也是很明显的，例如在绘制含有大量元素的图表的时候，SVG 往往因为性能问题而无法胜任，例如我见过的一次技术分享会的抽奖环节，虽然效果比较炫，但因为每个头像都是 DOM，利用 CSS3 控制的动画，导致了性能非常低下。此外，随着硬件性能的提高，视频截图、图像处理等功能也逐渐可以在网页上实现了，大多数网站用的是 Flash，但是 Flash 在 Mac 电脑上性能不高，还需要学一些额外的知识。Canvas 则是直接使用 JavaScript 来进行绘图，对 Mac 友好，所以不失为 Flash 的一个继承者。
</p>
<h2>
	使用 Canvas
</h2>
<p>
	说了这么多，Canvas 究竟是个啥？
</p>
<p>
	英文中 Canvas 的意思是“画布”，不过这里说的 Canvas 是 HTML5 中新出的一个元素，开发者可以在上面绘制一系列图形。Canvas 在 HTML 文件中的写法很简单：
</p>
<pre class="brush: js;auto-links: false;">&lt;canvas id="canvas" width="宽度" height="高度"&gt;&lt;/canvas&gt; </pre>
<p>
	其中<span class="Apple-converted-space">&nbsp;</span><code class="hljs objectivec" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;"><span class="hljs-keyword" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:700;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;color:#333333;">id</span></code><span class="Apple-converted-space">&nbsp;</span>属性是所有 HTML 元素都可以用的，Canvas 自带的属性只有后面两个（分别控制宽度、高度），没有其它的了。至于兼容性，<a href="http://caniuse.com/#search=canvas" target="_blank" rel="nofollow" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:'Microsoft Yahei', 'Helvetica Neue', sans-serif;font-size:14px;font-style:inherit;font-weight:inherit;margin:0px;padding:0px;vertical-align:baseline;text-decoration:none;color:rgba(41, 46, 53, 0.6);">CanIUse</a><span class="Apple-converted-space">&nbsp;</span>上面写了，基础的功能目前用户使用的 90% 的浏览器都支持，所以大部分情况下还是可以放心使用的。
</p>
<p>
	<a href="https://dn-rexskz.qbox.me/blog/article/canvas/1.png" target="_blank" class="bubble-markdown-image-link" rel="nofollow" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:'Microsoft Yahei', 'Helvetica Neue', sans-serif;font-size:14px;font-style:inherit;font-weight:inherit;margin:0px;padding:0px;vertical-align:baseline;text-decoration:none;color:rgba(41, 46, 53, 0.6);"><img src="https://dn-rexskz.qbox.me/blog/article/canvas/1.png" alt="1" class="bubble-markdown-image" width="559" height="334" /></a> 
</p>
<p>
	注意，一定要使用 Canvas 自带的<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">width</code><span class="Apple-converted-space">&nbsp;</span>和<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">height</code><span class="Apple-converted-space">&nbsp;</span>属性，不要使用 CSS 来控制，因为 CSS 控制会导致 Canvas 变形。可以试着与 PhptpShop 对比一下，后者是改变“图像大小”，前者才是正确的改变“画布大小”。例如下图是三张图片的横向拼接：最左边的黑框中是大小为 50px * 50px 的原图；中间是改变了图像大小为 100px * 100px 的效果，图像变得模糊，但是对于图像本身来说坐标范围并没有变大；最右边才是正确的 100px * 100px 的 Canvas。
</p>
<p>
	<a href="https://dn-rexskz.qbox.me/blog/article/canvas/2.png" target="_blank" class="bubble-markdown-image-link" rel="nofollow" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:'Microsoft Yahei', 'Helvetica Neue', sans-serif;font-size:14px;font-style:inherit;font-weight:inherit;margin:0px;padding:0px;vertical-align:baseline;text-decoration:none;color:rgba(41, 46, 53, 0.6);"><img src="https://dn-rexskz.qbox.me/blog/article/canvas/2.png" alt="2" class="bubble-markdown-image" /></a> 
</p>
<p>
	Canvas 绝大部分的绘图方法都与<span class="Apple-converted-space">&nbsp;</span><code class="hljs xml" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;"><span class="hljs-tag" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:400;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;color:navy;">&lt;<span class="hljs-title" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:400;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;color:navy;">canvas</span>&gt;</span></code><span class="Apple-converted-space">&nbsp;</span>标签无关，需要使用 JavaScript 对其进行操作，这就是所谓的 Canvas API。
</p>
<p>
	我们首先获取到这个元素：
</p>
<pre class="brush: js;auto-links: false;">var canvas = document.getElementById('canvas'); </pre>
<p>
	然后通过一个方法来获取可以调用一切 Canvas API 的入口：
</p>
<pre class="brush: js;auto-links: false;">var ctx = canvas.getContext('2d');</pre>
<p>
	看到<span class="Apple-converted-space">&nbsp;</span><code class="hljs cpp" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;"><span class="hljs-number" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:inherit;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;color:teal;">2</span>d</code><span class="Apple-converted-space">&nbsp;</span>是不是很激动地联想到有没有<span class="Apple-converted-space">&nbsp;</span><code class="hljs cpp" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;"><span class="hljs-number" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:inherit;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;color:teal;">3</span>d</code><span class="Apple-converted-space">&nbsp;</span>呢？没有<span class="Apple-converted-space">&nbsp;</span><code class="hljs cpp" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;"><span class="hljs-number" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:inherit;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;color:teal;">3</span>d</code><span class="Apple-converted-space">&nbsp;</span>的写法，不过如果想要开启 3D 世界的大门，则可以写<span class="Apple-converted-space">&nbsp;</span><code class="hljs actionscript" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">canvas.getContext(<span class="hljs-string" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:inherit;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;color:#DD1144;">'webgl'</span>)</code>。然而 WebGL 是基于 OpenGL ES 2.0 的一套标准，与本文是彻彻底底的两条路，因此这里就不讨论了。
</p>
<h2>
	Canvas 中的基本概念
</h2>
<h2 style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:'Helvetica Neue', 'Microsoft Yahei', 'Hiragino Sans GB', 'Microsoft Sans Serif', 'WenQuanYi Micro Hei', sans-serif;font-size:1.8em;font-style:normal;font-weight:400;margin:0px 0px 0.4em;padding:0px 0px 20px;vertical-align:baseline;color:#000000;line-height:1.5;font-variant:normal;letter-spacing:normal;orphans:auto;text-align:start;text-indent:0px;text-transform:none;white-space:normal;widows:1;word-spacing:0px;-webkit-text-stroke-width:0px;background-color:#FFFFFF;">
	坐标
</h2>
<p>
	与数学上常见的笛卡尔坐标系不太相同，Canvas 的坐标系是计算机中常见的坐标系，它长这样：
</p>
<p>
	<a href="https://dn-rexskz.qbox.me/blog/article/canvas/0.png" target="_blank" class="bubble-markdown-image-link" rel="nofollow" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:'Microsoft Yahei', 'Helvetica Neue', sans-serif;font-size:14px;font-style:inherit;font-weight:inherit;margin:0px;padding:0px;vertical-align:baseline;text-decoration:none;color:rgba(41, 46, 53, 0.6);"><img src="https://dn-rexskz.qbox.me/blog/article/canvas/0.png" alt="0" class="bubble-markdown-image" /></a> 
</p>
<p>
	画布的最左上角是 (0,0)，往右 x 增大，往下 y 增大，而且 x 和 y 都是整数（就算在计算过程中不是整数，在绘制的时候也会当作整数处理），单位是像素。
</p>
<h2>
	绘图
</h2>
<p>
	带大家怀旧一下。不知道有多少同学小时候玩过 logo 语言，在里面你可以控制一只小海龟在一块板子上行走、画画、提笔、落笔。Canvas 中也一样，你需要控制一只画笔的移动和绘制。然而 Canvas 更高级一些，你可以直接利用一些函数来画图，不用去控制那只画笔的位置。
</p>
<h2>
	Canvas 中的基本图形
</h2>
<p>
	通过上文定义的<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">ctx</code><span class="Apple-converted-space">&nbsp;</span>变量可以干许多有意思的事情，我们先看看如何绘制一些基本图形。
</p>
<h2>
	线条
</h2>
<p>
	我们指定画笔移动到某一点，然后告诉画笔需要从当前这一点画到另一点。我们可以让画笔多次移动、绘制，最后统一输出到屏幕上。例子如下：
</p>
<pre class="brush: js;auto-links: false;">ctx.moveTo(10, 10);
ctx.lineTo(150, 50);
ctx.lineTo(10, 50);
ctx.moveTo(10, 20);
ctx.lineTo(40, 70);
ctx.stroke(); </pre>
<p>
	上面的代码中，<code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">lineTo</code><span class="Apple-converted-space">&nbsp;</span>是产生线条用的函数，执行完之后画笔就移到了线条的终点。需要注意的是，线条此时并没有显示在屏幕上，必须调用<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">stroke</code><span class="Apple-converted-space">&nbsp;</span>才会显示。这样设计是有道理的，因为向屏幕上输出内容需要耗费大量的资源，我们完全可以先攒够一波<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">lineTo</code>，最后用<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">stroke</code><span class="Apple-converted-space">&nbsp;</span>放一个大的。
</p>
<h2>
	路径
</h2>
<p>
	绘制路径非常简单，只需要先告诉<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">ctx</code><span class="Apple-converted-space">&nbsp;</span>一声“我要开始画路径了”，然后通过各种方法（例如<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">lineTo</code>）绘制路径。如果需要画一个封闭路径，那就最后告诉<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">ctx</code>一声：“我画完了，你把它封闭起来吧。”当然，不要忘记利用<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">stroke</code><span class="Apple-converted-space">&nbsp;</span>输出到屏幕上。
</p>
<p>
	一个简单的例子：
</p>
<pre class="brush: js;auto-links: false;">ctx.beginPath();
ctx.moveTo(10, 10);
ctx.lineTo(150, 50);
ctx.lineTo(10, 50);
ctx.closePath();
ctx.stroke(); </pre>
<p>
	如果我不想只描绘路径线条，而是想填充整个路径呢？可以将最后一行的<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">stroke</code><span class="Apple-converted-space">&nbsp;</span>改成<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">fill</code>，这样就跟使用了画图中的油漆桶一样，封闭路径里面的内容就都被填充上颜色了：
</p>
<pre class="brush: js;auto-links: false;">ctx.fill(); </pre>
<h2>
	弧 / 圆形
</h2>
<p>
	绘制弧的函数参数比较多：
</p>
<pre class="brush: js;auto-links: false;">ctx.arc(圆心 x 坐标, 圆心 y 坐标, 半径, 起始角度, 终止角度, 是否为逆时针); </pre>
<p>
	注意，在 Canvas 的坐标系中，角的一边是以圆心为中心的水平向右的直线。角度单位均为弧度。例如下图，确定了圆心、起始角度（图中标明的锐角）和终止角度（图中标明的钝角），方向为逆时针，于是就有了这么一个弧。如果方向为顺时针，那么就会是一个跟它互补的、非常非常大的弧……
</p>
<p>
	<a href="https://dn-rexskz.qbox.me/blog/article/canvas/3.png" target="_blank" class="bubble-markdown-image-link" rel="nofollow" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:'Microsoft Yahei', 'Helvetica Neue', sans-serif;font-size:14px;font-style:inherit;font-weight:inherit;margin:0px;padding:0px;vertical-align:baseline;text-decoration:none;color:rgba(41, 46, 53, 0.6);"><img src="https://dn-rexskz.qbox.me/blog/article/canvas/3.png" alt="3" class="bubble-markdown-image" /></a> 
</p>
<p>
	所以如果转了 2π 圈之后，弧就成了圆形，因此也可以使用绘制弧的方式来绘制圆形：
</p>
<pre class="brush: js;auto-links: false;">ctx.beginPath();
ctx.arc(圆心 x 坐标, 圆心 y 坐标, 半径, 0, Math.PI * 2, true);
ctx.closePath(); </pre>
<p>
	最后一个参数随便填（当然也可以不填），因为不管是顺时针还是逆时针，转了 2π 圈之后都是一个圆。
</p>
<h2>
	矩形
</h2>
<p>
	如果只是想绘制一个横平竖直的矩形，可以使用下面的两个方法：
</p>
<pre class="brush: js;auto-links: false;">// 只描边
ctx.strokeRect(左上角 x 坐标, 左上角 y 坐标, 宽度, 高度);
// 只填充
ctx.fillRect(左上角 x 坐标, 左上角 y 坐标, 宽度, 高度); </pre>
<h2>
	线条样式 / 填充样式
</h2>
<p>
	之前绘制的所有图形都是黑色的，但是 Canvas 肯定不止这么一种颜色（不然标准的制定者会被喷的很惨）。事实上，Canvas 可以单独设置线条样式和填充样式，分别使用的是<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">strokeStyle</code><span class="Apple-converted-space">&nbsp;</span>和<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">fillStyle</code>。可能的值有三种：纯色、渐变、图像。既然线条样式与填充样式的使用方法相同，那么下面统一以填充样式为例。如果想设置线条样式，直接将所有的<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">fillStyle</code><span class="Apple-converted-space">&nbsp;</span>改成<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">strokeStyle</code><span class="Apple-converted-space">&nbsp;</span>即可，里面的参数都不变。
</p>
<pre class="brush: js;auto-links: false;">/* 纯色填充 */
// 普通的颜色
ctx.fillStyle = '#0000ff';
// 带有透明度的颜色
ctx.fillStyle = 'rgba(64, 0, 127, 0.5)';

/* 渐变填充 */
// 设置渐变的尺寸（参数分别为起始点的 x 和 y、终止点的 x 和 y）
var gradient = ctx.createLinearGradient(0, 0, 170, 0);
// 设置过渡色，第一个参数是渐变的位置，第二个参数是颜色
gradient.addColorStop(0, 'magenta');
gradient.addColorStop(0.5, 'blue');
gradient.addColorStop(1.0, 'red');
// 设置填充样式
ctx.fillStyle = gradient;

/* 图片填充 */
// 创建图片
var image = new Image;
image.src = '/path/to/image.png';
// 创建图片笔触，可以指定图片的平铺方式，这里是横向平铺
var pattern = ctx.createPattern(image, 'repeat-x');
// 设置笔触填充
ctx.fillStyle = pattern; </pre>
<p>
	关于渐变，除了代码中提到的线性渐变以外，还有<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">createRadialGradient</code>，也就是径向渐变。
</p>
<p>
	设置完填充样式之后，就可以使用<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">fill</code><span class="Apple-converted-space">&nbsp;</span>来填充啦！如果设置的是线条样式，那么就可以使用<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">stroke</code><span class="Apple-converted-space">&nbsp;</span>来描边。
</p>
<p>
	当然，对于线条样式，还有个额外的方法叫<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">lineWidth</code><span class="Apple-converted-space">&nbsp;</span>可以用来控制线条的宽度。
</p>
<h2>
	文字
</h2>
<p>
	要想在画布上画文字，首先需要知道所使用的字体和字号：
</p>
<pre class="brush: js;auto-links: false;">ctx.font = '30px Verdana'; </pre>
<p>
	然后就可以通过<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">strokeText</code><span class="Apple-converted-space">&nbsp;</span>或者<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">fillText</code><span class="Apple-converted-space">&nbsp;</span>来对字体描边或者填充字体。
</p>
<pre class="brush: js;auto-links: false;">ctx.strokeText("Hello Coding!", 23, 33);
ctx.fillText("Hello Coding!", 23, 66); </pre>
<h2>
	图片
</h2>
<p>
	在 Canvas 中绘制图片有三种方法：
</p>
<pre class="brush: js;auto-links: false;">// 指定绘制位置
ctx.drawImage(image, x, y);
// 指定绘制位置和图像宽高
ctx.drawImage(image, x, y, width, height);
// 指定剪裁区域、绘制位置和图像宽高
ctx.drawImage(image, sx, sy, swidth, sheight, x, y, width, height); </pre>
<p>
	参数的含义依次如下：
</p>
<pre class="brush: js;auto-links: false;">image:   要使用的 Image、Canvas 或 Video
sx:      可选，开始剪切的 x 坐标
sy:      可选，开始剪切的 y 坐标
swidth:  可选，被剪切图像的宽度
sheight: 可选，被剪切图像的高度
x:       在画布上放置图像的 x 坐标
y:       在画布上放置图像的 y 坐标
width:   可选，要使用的图像的宽度
height:  可选，要使用的图像的高度 </pre>
<h2>
	画布设置
</h2>
<p>
	细心的同学可能会发现，刚才有些属性是直接对<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">ctx</code><span class="Apple-converted-space">&nbsp;</span>变量做设置，例如<span class="Apple-converted-space">&nbsp;</span><code class="hljs css" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;"><span class="hljs-tag" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:400;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;color:navy;">ctx</span><span class="hljs-class" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:inherit;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;">.lineWidth</span></code>，只要设置了它，那么后续画出来的线条全都是这么个宽度。
</p>
<p>
	其实，Canvas 的设置项还有许多，例如我们可以直接移动画布、旋转画布、设置全局的绘制透明度等等。这些设置还可以随时保存和恢复。
</p>
<p>
	<strong style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:'Microsoft Yahei', 'Helvetica Neue', sans-serif;font-size:14px;font-style:inherit;font-weight:700;margin:0px;padding:0px;vertical-align:baseline;color:#333333;">要注意的一点是，所有已经画在画布上的东西，是已经定死了的，不管之后再次进行任何设置都不会再改变。这个很像 Windows 下的画图程序。</strong> 
</p>
<p>
	废话不多说，直接上代码：
</p>
<pre class="brush: js;auto-links: false;">// 移动画布，其实就是移动坐标系
ctx.translate(往右移动的量, 往下移动的量);
// 旋转画布，旋转中心为坐标系原点
ctx.rotate(顺时针旋转的角度);
// 以坐标系原点为中心缩放画布
ctx.scale(横向放大倍数, 纵向放大倍数);
// 设置绘制透明度，如果 fillStyle 等属性设置了透明度则会叠加
ctx.globalAlpha(零到一的小数);
// 设置全局组合操作
ctx.globalCompositeOperation = 'lighter';
// 保存当前设置
ctx.save();
// 恢复上次保存的设置
ctx.restore(); </pre>
<p>
	移动、旋转、缩放其实就是在控制绘图的坐标系，如果你在调用这三个方法的时候，脑子里时刻有一个带刻度的坐标系，效果会非常好。
</p>
<p>
	事实上，Canvas 的坐标变换遵循计算机图形学的知识：变换矩阵。简单来说，一个坐标可以看成是一个矩阵，坐标所对应的矩阵乘上变换矩阵就可以实现对坐标的变换。为了提升计算的效率，可以先计算出几种变换复合之后的变换矩阵，然后直接通过<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">transform</code><span class="Apple-converted-space">&nbsp;</span>函数对当前坐标系进行变换，或者通过<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">setTransform</code><span class="Apple-converted-space">&nbsp;</span>函数将坐标系重置为初始状态后再进行变换。至于变换矩阵的内容，对于本文来说就有些超纲了。
</p>
<p>
	全局组合操作有点像 PhotoShop 里面的“混合选项”，具体的实现方式还没有完全确定，目前常见浏览器都统一了的实现方式有：<code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">source-over</code>、<code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">source-atop</code>、<code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">destination-over</code>、<code class="hljs cs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">destination-<span class="hljs-keyword" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:700;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;color:#333333;">out</span></code>、<code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">lighter</code>、<code class="hljs erlang" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;"><span class="hljs-keyword" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:700;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;color:#333333;">xor</span></code>。具体的行为可以看<span class="Apple-converted-space">&nbsp;</span><a href="https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation" target="_blank" rel="nofollow" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:'Microsoft Yahei', 'Helvetica Neue', sans-serif;font-size:14px;font-style:inherit;font-weight:inherit;margin:0px;padding:0px;vertical-align:baseline;text-decoration:none;color:rgba(41, 46, 53, 0.6);">Mozilla 官方文档</a>，但是由于标准还未完全确定，因此其它浏览器不保证所有的行为都跟 Mozilla 的标准一致。一般来说，比较常见的是<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">source-over</code><span class="Apple-converted-space">&nbsp;</span>和<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">lighter</code><span class="Apple-converted-space">&nbsp;</span>两种，这两种的标准在浏览器界也算是无可争议的。
</p>
<p>
	至于保存和恢复设置就有点好玩了，首先需要了解一个叫“栈”的东西。
</p>
<p>
	栈是一个一维数组，规定只能从一个方向操作。栈一开始是空的，我们可以从这个方向往数组 push 元素，也只能从这个方向把最后一个元素（栈顶元素）pop 出来，除此以外没有任何多余的操作。当然，pop 的次数不能多于 push 的次数，因为 pop 到栈底的时候栈里就已经没有元素了，此时再 pop 是没有意义的。栈的用处有很多，例如括号匹配、表达式求值、深度优先搜索，甚至绝大部分语言的函数调用都要用到栈。
</p>
<p>
	每次我们调用<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">save</code><span class="Apple-converted-space">&nbsp;</span>函数，实际上是将当前的全局设置 push 到了一个专门栈上，每次调用<span class="Apple-converted-space">&nbsp;</span><code class="hljs sql" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;"><span class="hljs-operator" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:inherit;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;"><span class="hljs-keyword" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:700;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;color:#333333;">restore</span></span></code><span class="Apple-converted-space">&nbsp;</span>函数的时候将最后一次保存的内容 pop 出来并用它覆盖当前的全局设置，这样栈顶就是最近一次保存的内容了。保存和恢复在某些情况下很好用，例如我需要画一个歪着的图形，然后继续画正着的图形，这样就可以先调用<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">save</code>，然后调用<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">rotate</code>，画完图形之后再<span class="Apple-converted-space">&nbsp;</span><code class="hljs sql" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;"><span class="hljs-operator" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:inherit;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;"><span class="hljs-keyword" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:700;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;color:#333333;">restore</span></span></code><span class="Apple-converted-space">&nbsp;</span>回来，继续画其它的图形。
</p>
<p>
	其实 Canvas 还有许多方法，例如<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">toDataURL</code><span class="Apple-converted-space">&nbsp;</span>直接将当前画布上的内容转换为十六进制的<span class="Apple-converted-space">&nbsp;</span><code class="hljs haskell" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;"><span class="hljs-typedef" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:inherit;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;"><span class="hljs-keyword" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:0px;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:inherit;font-weight:700;margin:0px;padding:0px;vertical-align:baseline;line-height:18px;color:#333333;">data</span>-url</span></code>，<code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">getImageData</code>直接将图像转换为 RGBA 数组以供图像处理算法使用，<code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">putImageData</code><span class="Apple-converted-space">&nbsp;</span>将 RGBA 数组转换为图片显示在画布上等等。如果配上 JavaScript 的定时更新（最好用<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">requestAnimationFrame</code><span class="Apple-converted-space">&nbsp;</span>而不是<span class="Apple-converted-space">&nbsp;</span><code class="hljs" style="-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);outline:0px;border:1px solid #F1F3F6;font-family:Consolas, Menlo, 'Liberation Mono', Courier, monospace !important;font-size:12px !important;font-style:normal;font-weight:400;margin:0px 5px;padding:3px 5px;vertical-align:baseline;line-height:18px;border-radius:3px;display:initial;overflow-x:auto;color:#333333;background:#F8F8F8;">setInterval</code>），则可以产生动画效果。网上还有许多 Canvas 的库，可以让程序员更简便地基于 Canvas 编写属于自己的特效或功能。在这儿我想说一句话：大家的脑洞有多大，Canvas 的能力就有多强~
</p>
<p>
	转载自<a href="https://blog.coding.net/blog/what-is-canvas" target="_blank">https://blog.coding.net/blog/what-is-canvas</a> 
</p><div id="related_log" style="font-size:12px"><p><b>相关日志：</b></p><p><a href="http://blog.0356sh.com/js-cookice.html">javascript操作cookie函数写法</a></p><p><a href="http://blog.0356sh.com/javascript-plus.html">31款轻量级开源JavaScript插件和库 快速提升效率</a></p><p><a href="http://blog.0356sh.com/html5-video-audio.html">HTML5 Audio/Video 标签,属性,方法,事件汇总</a></p><p><a href="http://blog.0356sh.com/qianduancainiao.html">前端工程师新手必读</a></p><p><a href="http://blog.0356sh.com/minify_info.html">Minify优化网站性能 合并多个CSS或者js文件</a></p></div>]]></description>
	<pubDate>Sun, 09 Oct 2016 07:50:35 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/canvas-introduced.html</guid>

</item>
<item>
	<title>Android SDK在线更新镜像服务器</title>
	<link>http://blog.0356sh.com/androidsdkupdate.html</link>
	<description><![CDATA[<p>
	<strong>Android SDK在线更新镜像服务器</strong>
</p>
<p>
	<strong>中国科学院开源协会镜像站地址:</strong>
</p>
<p>
	IPV4/IPV6: http://mirrors.opencas.cn 端口：80
</p>
<p>
	IPV4/IPV6: http://mirrors.opencas.org 端口：80
</p>
<p>
	IPV4/IPV6: http://mirrors.opencas.ac.cn 端口：80
</p>
<p>
	<strong>上海GDG镜像服务器地址:</strong>
</p>
<p>
	http://sdk.gdgshanghai.com 端口：8000
</p>
<p>
	<strong>北京化工大学镜像服务器地址:</strong>
</p>
<p>
	IPv4: http://ubuntu.buct.edu.cn/ 端口：80
</p>
<p>
	IPv4: http://ubuntu.buct.cn/ 端口：80
</p>
<p>
	IPv6: http://ubuntu.buct6.edu.cn/ 端口：80
</p>
<p>
	<strong>大连东软信息学院镜像服务器地址:</strong>
</p>
<p>
	http://mirrors.neusoft.edu.cn 端口：80
</p>
<p>
	<strong>使用方法：</strong>
</p>
<p>
	启动 Android SDK Manager ，打开主界面，依次选择『Tools』、『Options...』，弹出『Android SDK Manager 
- Settings』窗口;
</p>
<p>
	在『Android SDK Manager - Settings』窗口中，在『HTTP Proxy Server」和「HTTP Proxy 
Port』输入框内填入上面镜像服务器地址(不包含http://，如下图)和端口，并且选中『Force https://... sources to be 
fetched using http://...』复选框。设置完成后单击『Close』按钮关闭『Android SDK Manager - 
Settings』窗口返回到主界面;
</p>
<p>
	依次选择『Packages』、『Reload』。
</p>
<p>
	<br />
</p>
<center>
	<img alt="SDK Manager Proxy Settings" src="http://blog.0356sh.com/content/uploadfile/201511/d6cbbeff38b6b751e956fdd3e97c589920151125031157.png" height="281" width="262" />
</center><div id="related_log" style="font-size:12px"><p><b>相关日志：</b></p><p><a href="http://blog.0356sh.com/dedecmsquanxian-2.html">DedeCMS 服务器目录权限安全设置说明文档</a></p><p><a href="http://blog.0356sh.com/Apache-htaccess.html">Apache服务器htaccess文件配置大全 优化你的网站</a></p></div>]]></description>
	<pubDate>Wed, 25 Nov 2015 03:10:23 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/androidsdkupdate.html</guid>

</item>
<item>
	<title>API Store的json使用及PHP中遍历json</title>
	<link>http://blog.0356sh.com/php-json.html</link>
	<description><![CDATA[<p>
	最近看到百度的API 
Store，没想到提供了这么多的开放查询接口，想到以前找个用IP反查地址的简单接口找半天，不是不稳定就是不方便，终于度娘也做点好事了。
</p>
<p>
	开始做的时候想着直接$getJson直接获取，没想到不能跨域请求，又想着用JsonP吧，API 
Store没有Callback。想了想，只好用php获取过来了。
</p>
<p>
	直接用fopen，获取一点问题都没有。不过解析时候因为对php不太熟，费了半天时间，把遇到的问题整理一下。
</p>
<p>
	首先要用 json_decode 对 JSON 格式的字符串进行编码
</p>
<p>
	json地址：http://apistore.baidu.com/microservice/weather?citypinyin=beijing
</p>
<pre class="brush: php;auto-links: false;">$obj = json_decode($json);

print_r($obj);

输出：stdClass Object ( [errNum] =&gt; 0 [errMsg] =&gt; success [retData] =&gt; stdClass Object ( [city] =&gt; 北京 [pinyin] =&gt; beijing [citycode] =&gt; 101010100 [date] =&gt; 15-04-26 [time] =&gt; 11:00 [postCode] =&gt; 100000 [longitude] =&gt; 116.391 [latitude] =&gt; 39.904 [altitude] =&gt; 33 [weather] =&gt; 晴 [temp] =&gt; 32 [l_tmp] =&gt; 17 [h_tmp] =&gt; 32 [WD] =&gt; 南风 [WS] =&gt; 3-4级(10~17m/h) [sunrise] =&gt; 05:21 [sunset] =&gt; 19:03 ) )</pre>
<p>
	没有问题。然后就获取相关值吧。
</p>
<p>
	<br />
</p>
<pre class="brush: php;auto-links: false;">echo $obj['errNum'];</pre>
<p>
	<br />
</p>
<p>
	输出错误：Fatal error: Cannot use object of type stdClass as array in 
xxxxxxxx;
</p>
<p>
	查了一下，stdClass得用Obj-&gt;值，这种方式。
</p>
<p>
	改为echo $obj-&gt;{'errNum'};
</p>
<p>
	成功输出，想要输出City就得
</p>
<pre class="brush: php;auto-links: false;">$arr=$obj-&gt;{'retData'};

echo $arr-&gt;{'weather'};</pre>
<p>
	总结：
</p>
<p>
	在PHP代码中处理JSON 格式的字符串的两种方法：
</p>
<p>
	方法一：
</p>
<pre class="brush: php;auto-links: false;">$json= '{"errNum":0,"errMsg":"success","retData":{"city":"\u5317\u4eac","pinyin":"beijing","citycode":"101010100","date":"15-04-26","time":"11:00","postCode":"100000","longitude":116.391,"latitude":39.904,"altitude":"33","weather":"\u6674","temp":"32","l_tmp":"17","h_tmp":"32","WD":"\u5357\u98ce","WS":"3-4\u7ea7(10~17m\/h)","sunrise":"05:21","sunset":"19:03"}}';

$obj= json_decode($json);//得到的是 object

echo "返回代码：".$obj-&gt;errNum."   返回提示：".$obj-&gt;errMsg;

$arr=$obj-&gt;{'retData'};

echo "返回天气：".$arr-&gt;{'weather'};</pre>
<p>
	方法二：
</p>
<pre class="brush: php;auto-links: false;">$json= '{"errNum":0,"errMsg":"success","retData":{"city":"\u5317\u4eac","pinyin":"beijing","citycode":"101010100","date":"15-04-26","time":"11:00","postCode":"100000","longitude":116.391,"latitude":39.904,"altitude":"33","weather":"\u6674","temp":"32","l_tmp":"17","h_tmp":"32","WD":"\u5357\u98ce","WS":"3-4\u7ea7(10~17m\/h)","sunrise":"05:21","sunset":"19:03"}}';

$dejson= json_decode($json, true);//得到的是 array

echo "返回代码：".$dejson[errNum]."   返回提示：".$dejson[errMsg]."返回天气：".$dejson[retData][weather];</pre>
<p>
	如果用循环输出数据：
</p>
<p>
	第一种对象用：
</p>
<pre class="brush: php;auto-links: false;">foreach($arr as $obj){

echo "姓名：".$obj-&gt;name."   年 龄：".$obj-&gt;age."   专 业：".$obj-&gt;subject."&lt;br /&gt;";

}</pre>
<p>
	第二种数组用：
</p>
<pre class="brush: php;auto-links: false;">for($i=0;$i&lt;count($dejson);$i++){

echo "姓名：".$students[$i]['name']."   年 龄：".$students[$i]['age']."   专 业：".$students[$i]['subject']."&lt;br /&gt;";

}</pre><div id="related_log" style="font-size:12px"><p><b>相关日志：</b></p><p><a href="http://blog.0356sh.com/php_mysql_luanma.html">PHP中插入MYSQL数据乱码的问题和解决方法</a></p><p><a href="http://blog.0356sh.com/php_url.html">PHP获取URL的方法【总结】</a></p><p><a href="http://blog.0356sh.com/minify_info.html">Minify优化网站性能 合并多个CSS或者js文件</a></p></div>]]></description>
	<pubDate>Sun, 26 Apr 2015 06:51:12 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/php-json.html</guid>

</item>
<item>
	<title>别再为了this发愁了：JS中的this机制</title>
	<link>http://blog.0356sh.com/js-this.html</link>
	<description><![CDATA[<p>
	题记：JavaScript中有很多令人困惑的地方，或者叫做机制。但是，就是这些东西让JavaScript显得那么美好而与众不同。比方说函数也是对象、闭包、原型链继承等等，而这其中就包括颇让人费解的this机制。不管是新手还是老手，不仔细深抠一下还真闹不明白this倒地咋回事捏。今天，我们就一起看一下this倒地咋回事，别再为了this发愁了。
</p>
<p>
	1、this是啥?
</p>
<p>
	简言之，this是JavaScript语言中定义的众多关键字之一，它的特殊在于它自动定义于每一个函数域内，但是this倒地指引啥东西却让很多人张二摸不着头脑。这里我们留个小悬念，希望看完这篇文章了你能回答出来this到底指引个甚。
</p>
<p>
	2、this有啥用?
</p>
<p>
	那边观众又该问了，既然this这么难以理解，那么为个甚还要用它呢?我们来看个例子：
</p>
<p>
<pre class="brush: js;auto-links: false;">function identify() {
    return this.name.toUpperCase();
}
function sayHello() {
    var greeting = "Hello, I'm " + identify.call( this );
    console.log( greeting );
}
var person1= {
    name: "Kyle"
};
var person2= {
    name: "Reader"
};
identify.call( person1); // KYLE
identify.call( person2); // READER
sayHello.call( person1); // Hello, I'm KYLE
sayHello.call( person2); // Hello, I'm READER</pre>
	<p>
		这段代码很简单，我们定义了两个函数，分别为identify和sayHello。并且在不同的对象环境下执行了它们，达到了复用的效果，而不用为了在不同的对象环境下执行而必须针对不同的对象环境写对应的函数了。简言之，this给函数带来了复用。那边客官又问了，我不用this一样可以实现，如：
	</p>
<pre class="brush: js;auto-links: false;">function identify(context) {
    return context.name.toUpperCase();
}
function sayHello(context) {
    var greeting = "Hello, I'm " + identify( context);
    console.log( greeting );
}
var person1= {
    name: "Kyle"
};
var person2= {
    name: "Reader"
};
identify( person1); // KYLE
identify( person2); // READER
sayHello( person1); // Hello, I'm KYLE
sayHello( person2); // Hello, I'm READER</pre>
	<p>
		仔细一看，这位客官给出的解决方法的确也达到了类似的效果。赞一个!我想说的是，随着代码的增加，函数嵌套、各级调用等变得越来越复杂，那么传递一个对象的引用将变得越来越不明智，它会把你的代码弄得非常乱，甚至你自己都无法理解清楚。而this机制提供了一个更加优雅而灵便的方案，传递一个隐式的对象引用让代码变得更加简洁和复用。好了，知道了this的用处，那么再看看我们对它的误解。
	</p>
	<p>
		3、关于this的误解
	</p>
	<p>
		相信很多童鞋是学过其它语言的，在很多编程语言中都有this的机制，惯性思维把其它语言里对它的理解带到了JavaScript中。同时，由于this这个单词的理解导致了我们产生了对它各种各样的误解。所以，开始前，我们先澄清下对它的误解。
	</p>
	<p>
		3.1 误解一：this引用function本身
	</p>
	<p>
		我们都知道，在函数里引用函数可以达到递归和给函数属性赋值的效果。而这在很多应用场景下显得非常有用。所以，很多人都误以为this就是指引function本身。例如：
	</p>
<pre class="brush: js;auto-links: false;">function fn(num) {
    console.log( "fn: " + num );
    // count用于记录fn的被调用次数
    this.count++;
}
fn.count = 0;
var i;
for (i=0; i&lt;10; i++) {
    if (i &gt; 5) {
        fn( i );
    }
}
// fn: 6
// fn: 7
// fn: 8
// fn: 9
 
console.log( fn.count ); // 0 -- 耶？咋不是4捏？</pre>
	<p>
		上面我们想要记录fn被调用的次数，可是明显fn被调用了四次但count仍然为0。咋回事捏?这里简单解释下，fn里第4行的自增隐式的创建了一个全局变量count，由于初始值为undefined，所以每一次自增其实依然不是一个数字，你在全局环境下打印count(window.count)输出的应该是NaN。而第6行定义的函数熟悉变量count依然没变，还是0。如果对这个执行结果不清楚的，欢迎去看我前些天的那篇博文(聊一下JS中的作用域scope和闭包closure 
scope和closure)，在这里你只需要知道，this引用的是function这种理解是错误的就行。
	</p>
	<p>
		这边就会又有人问了，既然this不是引用function，那么我要实现递归函数，该咋引用呢?这里简单回答下介个问题，两种方法：①函数体内用函数名来引用函数本身②函数体内使用arguments.callee来引用函数(不推荐)。那么既然第二种方法不推荐，匿名函数咋引用呢?用第一种，并且给匿名函数一个函数名即可(推荐)。
	</p>
	<p>
		3.2 误解二：this引用的是function的词法作用域
	</p>
	<p>
		这种误解欺骗的人可能更多一些。首先，澄清一下，this并没有引用function的词法作用域。的确JS的引擎内对词法作用域的实现的确像是一个对象，拥有属性和函数，但是这仅仅是JS引擎的一种实现，对代码来说是不可见的，也就是说词法作用域“对象”在JS代码中取不到。(关于词法作用域，如果不理解，可以参考之前的一篇博文《聊一下JS中的作用域scope和闭包closure 
scope和closure》)。看个错误的例子：
	</p>
<pre class="brush: js;auto-links: false;">function fn1() {
    var a = 2;
    this.fn2();//以为this引用的是fn1的词法作用域
}
function fn2() {
    console.log( this.a );
}
fn1(); //ReferenceError</pre>
	<p>
		上面的代码明显没有执行出想要的结果，从而可以看到this并没有引用函数的词法作用域。甚至，可以肯定的说，这个例子里fn2可以在fn1里正确执行都是偶然的(理解了词法作用域你就知道为什么这里执行不报错了)。
	</p>
	<p>
		4、this到底跟啥有关?
	</p>
	<p>
		好了，扯了那么多都没上干货，有的观众都开始关闭当前页开始离席了。这里，我们郑重声明：this跟函数在哪里定义没有半毛钱关系，函数在哪里调用才决定了this到底引用的是啥。也就是说this跟函数的定义没关系，跟函数的执行有大大的关系。所以，记住，“函数在哪里调用才决定了this到底引用的是啥”。
	</p>
	<p>
		5、this机制的四种规则
	</p>
	<p>
		this到底绑定或者引用的是哪个对象环境决定于函数被调用的地方。而函数的调用有不同的方式，在不同的方式中调用决定this引用的是哪个对象是由四种规则确定的。我们一个个来看。
	</p>
	<p>
		5.1 默认绑定全局变量
	</p>
	<p>
		这条规则是最常见的，也是默认的。当函数被单独定义和调用的时候，应用的规则就是绑定全局变量。如下：
	</p>
<pre class="brush: js;auto-links: false;">function fn() {
    console.log( this.a );
}
var a = 2;
fn(); // 2 -- fn单独调用，this引用window</pre>
	<p>
		5.2 隐式绑定
	</p>
	<p>
		隐式调用的意思是，函数调用时拥有一个上下文对象，就好像这个函数是属于该对象的一样。例如：
	</p>
<pre class="brush: js;auto-links: false;">function fn() {
    console.log( this.a );
}
var obj = {
    a: 2,
    fn: fn
};
obj.fn(); // 2 -- this引用obj。</pre>
	<p>
		需要说明的一点是，最后一个调用该函数的对象是传到函数的上下文对象(绕懵了)。如：
	</p>
<pre class="brush: js;auto-links: false;">function fn() {
    console.log( this.a );
}
var obj2 = {
    a: 42,
    fn: fn
};
var obj1 = {
    a: 2,
    obj2: obj2
};
obj1.obj2.fn(); // 42 -- this引用的是obj2.</pre>
	<p>
		还有一点要说明的是，失去隐式绑定的情况，如下：
	</p>
<pre class="brush: js;auto-links: false;">function fn() {
    console.log( this.a );
}
var obj = {
    a: 2,
    fn: fn
};
var bar = obj.fn; // 函数引用传递
var a = "全局"; // 定义全局变量
bar(); // "全局"</pre>
	<p>
		如上，第8行虽然有隐式绑定，但是它执行的效果明显是把fn赋给bar。这样bar执行的时候，依然是默认绑定全局变量，所以输出结果如上。
	</p>
	<p>
		5.3 显示绑定
	</p>
	<p>
		学过bind()\apply()\call()函数的都应该知道，它接收的第一个参数即是上下文对象并将其赋给this。看下面的例子：
	</p>
<pre class="brush: js;auto-links: false;">function fn() {
    console.log( this.a );
}
var obj = {
    a: 2
};
fn.call( obj ); // 2</pre>
	<p>
		如果我们传递第一个值为简单值，那么后台会自动转换为对应的封装对象。如果传递为null，那么结果就是在绑定默认全局变量，如：
	</p>
<pre class="brush: js;auto-links: false;">function fn() {
     console.log( this.a );
 }
 var obj = {
     a: 2
 };
var a = 10;
fn.call( null); // 10</pre>
	<p>
		5.4 new新对象绑定
	</p>
	<p>
		如果是一个构造函数，那么用new来调用，那么绑定的将是新创建的对象。如：
	</p>
<pre class="brush: js;auto-links: false;">function fn(a) {
    this.a = a;
}
var bar = new fn( 2 );
console.log( bar.a );// 2</pre>
	<p>
		注意，一般构造函数名首字母大写，这里没有大写的原因是想提醒读者，构造函数也是一般的函数而已。
	</p>
	<p>
		6、结束语
	</p>
	<p>
		读到现在，1中问的问题你该自己能回答上来了。上面介绍的四种关于this绑定的4中情况和规则，现实写代码的过程中肯定比这要多和复杂，但是无论多复杂多乱，它们都是混合应用上面的几个规则和情况而已。只要你的思路和理解是清晰的，那肯定没问题的。
	</p>
</p><div id="related_log" style="font-size:12px"><p><b>相关日志：</b></p><p><a href="http://blog.0356sh.com/js_flash_charts.html">几个常用的flash以及js图形绘制插件</a></p></div>]]></description>
	<pubDate>Wed, 01 Apr 2015 13:20:50 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/js-this.html</guid>

</item>
<item>
	<title>互联网大佬推荐的34本必读书</title>
	<link>http://blog.0356sh.com/it-read-book.html</link>
	<description><![CDATA[<p>
	周鸿祎、蔡文胜、雷军、李开复、马化腾、张小龙等互联网大佬及腾讯、阿里等高级产品经理推荐的书籍，互联网从业者及产品经理必读。
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366046294595.jpg" height="177" width="120" />
</center>
<p>
	1. IT 不再重要
</p>
<p>
	书籍简介：云计算与信息整合，蔡文胜强力推荐(购买了数千本送人)。
</p>
<p>
	豆瓣评分：7.6
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366052100905.jpg" height="166" width="120" />
</center>
<p>
	2. 精益创业
</p>
<p>
	书籍简介：偏重管理，介绍如何快速开发最精简的产品得到对用户最有价值的认知，李开复推荐。
</p>
<p>
	豆瓣评分：8.5
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366039118389.jpg" height="171" width="120" />
</center>
<p>
	3. 女人的起源
</p>
<p>
	书籍简介：做产品对人性的把握最重要，女性占据了一般的用户，张小龙推荐。
</p>
<p>
	豆瓣评分：7.6
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366051124990.jpg" height="163" width="120" />
</center>
<p>
	4. 认知盈余
</p>
<p>
	书籍简介：这是一个分享的时代，马化腾称作者为“互联网革命最伟大的思考者”。
</p>
<p>
	豆瓣评分：7.4
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366051429414.jpg" height="163" width="120" />
</center>
<p>
	5. 至关重要的设计
</p>
<p>
	书籍简介：前苹果首席设计师罗伯特•布伦纳写的设计书籍，雷军推荐。
</p>
<p>
	豆瓣评分：7.2
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366046693457.jpg" height="157" width="120" />
</center>
<p>
	6. 简约至上
</p>
<p>
	书籍简介：提出了交互设计的四条策略：删除、组织、隐藏、转移，很实用。
</p>
<p>
	豆瓣评分：8.4
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366031961975.jpg" height="156" width="120" />
</center>
<p>
	7. 点石成金：访客至上的网页设计秘籍
</p>
<p>
	书籍简介：设计应当不让用户思考，对网站设计的可用性提出了不少建议。
</p>
<p>
	豆瓣评分：8.5
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366051192136.jpg" height="173" width="120" />
</center>
<p>
	8. 学会提问：批判性思维指南
</p>
<p>
	书籍简介：锻炼批判性思维。
</p>
<p>
	豆瓣评分：8.7
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366045110355.jpg" height="157" width="120" />
</center>
<p>
	9. 精益求精：卓越的互联网产品设计与管理
</p>
<p>
	书籍简介：偏重理论，案例相对较少，不适合初级产品经理、产品助理。
</p>
<p>
	豆瓣评分：7.3
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366038109214.jpg" height="156" width="120" />
</center>
<p>
	10. 掌握需求过程
</p>
<p>
	书籍简介：偏重需求挖掘。
</p>
<p>
	豆瓣评分：7.8
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366045576582.jpg" height="154" width="120" />
</center>
<p>
	11. 网站设计解构 - 有效的交互设计框架和模式
</p>
<p>
	书籍简介：介绍网站框架体系，适合 Web 产品经理。
</p>
<p>
	豆瓣评分：7.0
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366043100776.jpg" height="180" width="120" />
</center>
<p>
	12. 瞬间之美：WEB 界面设计如何让用户心动
</p>
<p>
	书籍简介：介绍 Web 界面设计，适合 Web 产品经理。
</p>
<p>
	豆瓣评分：8.0
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366030621809.jpg" height="166" width="120" />
</center>
<p>
	13. GUI 设计禁忌 2.10
</p>
<p>
	书籍简介：偏重于客户端产品经理。
</p>
<p>
	豆瓣评分：7.4
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366043745955.jpg" height="167" width="120" />
</center>
<p>
	14. About Face 3 交互设计精髓
</p>
<p>
	书籍简介：建议客户端产品经理仔细看看
</p>
<p>
	豆瓣评分：8.8
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366047107273.jpg" height="167" width="120" />
</center>
<p>
	15. 用户体验度量
</p>
<p>
	书籍简介：有一定用户群的产品经理可以看看
</p>
<p>
	豆瓣评分：8.1
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366043356217.jpg" height="146" width="120" />
</center>
<p>
	16. Web 导航设计
</p>
<p>
	书籍简介：偏重 Web 设计，但客户端产品经理也可以看看。
</p>
<p>
	豆瓣评分：8.3
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366045492154.jpg" height="151" width="120" />
</center>
<p>
	17. 锦绣蓝图：怎样规划令人流连忘返的网站
</p>
<p>
	书籍简介：Web 信息架构必读
</p>
<p>
	豆瓣评分：8.0
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366052824962.jpg" height="157" width="120" />
</center>
<p>
	18. 赢在用户-WEB 人物角色创建和应用实践指南
</p>
<p>
	书籍简介：创建人物角色的方式做用研。
</p>
<p>
	豆瓣评分：7.9
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366046994206.jpg" height="167" width="120" />
</center>
<p>
	19. 重来
</p>
<p>
	书籍简介：可以一看，周鸿祎等不少大佬都推荐过。
</p>
<p>
	豆瓣评分：8.4
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366044285774.jpg" height="162" width="120" />
</center>
<p>
	20. 故事的领导力
</p>
<p>
	书籍简介：锻炼沟通能力。
</p>
<p>
	豆瓣评分：7.3
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366041654986.jpg" height="163" width="120" />
</center>
<p>
	21. 人月神话
</p>
<p>
	书籍简介：软件工程经典著作。
</p>
<p>
	豆瓣评分：8.5
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366038119499.jpg" height="130" width="120" />
</center>
<p>
	22. 情感化设计
</p>
<p>
	书籍简介：做产品，理解情感很重要。
</p>
<p>
	豆瓣评分：8.0
</p>
<p>
	下载地址：
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366051557562.jpg" height="163" width="120" />
</center>
<p>
	23. 经济学的思维方式
</p>
<p>
	书籍简介：形成经济学的思维模式，很有用。
</p>
<p>
	豆瓣评分：8.8
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366032556831.jpg" height="149" width="120" />
</center>
<p>
	24. 社会心理学
</p>
<p>
	书籍简介：做产品就是找到用户的心理诉求，然后满足他们。
</p>
<p>
	豆瓣评分：8.9
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366047122124.jpg" height="149" width="120" />
</center>
<p>
	25. 用户体验面面观
</p>
<p>
	书籍简介：有方法、工具和实践。
</p>
<p>
	豆瓣评分：8.1
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366047280007.jpg" height="170" width="120" />
</center>
<p>
	26. 启示录-打造用户喜爱的产品
</p>
<p>
	书籍简介：适合有一定产品经验的，非常棒的一本书。
</p>
<p>
	豆瓣评分：8.5
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366037435395.jpg" height="163" width="120" />
</center>
<p>
	27. 世界是平的
</p>
<p>
	书籍简介：了解世界的扁平化趋势
</p>
<p>
	豆瓣评分：7.7
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366037265893.jpg" height="179" width="120" />
</center>
<p>
	28. 设计中的设计
</p>
<p>
	书籍简介：无印良品 设计师原研哉的书。
</p>
<p>
	豆瓣评分：8.7
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366046115234.jpg" height="176" width="120" />
</center>
<p>
	29. 三双鞋
</p>
<p>
	书籍简介：美捷步创始人谢家华自述，感受如何把体验做到极致。
</p>
<p>
	豆瓣评分：8.3
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366048817259.jpg" height="167" width="120" />
</center>
<p>
	30. 产品经理手册
</p>
<p>
	书籍简介：偏重传统行业，但有利于拓展思维和视野。
</p>
<p>
	豆瓣评分：7.7
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366044649478.jpg" height="176" width="120" />
</center>
<p>
	31. 结网
</p>
<p>
	书籍简介：偏重商业战略和思维，理论性较强。
</p>
<p>
	豆瓣评分：8.0
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366044214771.jpg" height="177" width="120" />
</center>
<p>
	32. 人人都是产品经理
</p>
<p>
	书籍简介：侧重产品流程、技巧，适合初学者了解产品经理，但阿里的风格太强。
</p>
<p>
	豆瓣评分：7.8
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366047326955.jpg" height="170" width="120" />
</center>
<p>
	33. 失控：全人类的最终命运和结局
</p>
<p>
	书籍简介：思考人类进化，预言了维基百科等，将生物进化引入机器，大部头一般人很难啃。
</p>
<p>
	豆瓣评分：8.9
</p>
<p>
	<br />
</p>
<center>
	<img alt="【推荐】 互联网大佬推荐的34本必读书 （附电子版下载）,互联网的一些事" src="http://www.yixieshi.com/uploads/image/20150303/1425366765324545.jpg" height="156" width="120" />
</center>
<p>
	34. 用户体验的要素
</p>
<p>
	书籍简介：将开发流程五个层次：战略层、范围层、结构层、框架层、表现层，纲领性书籍，值得一读。
</p>
<p>
	豆瓣评分：8.1
</p><div id="related_log" style="font-size:12px"><p><b>相关日志：</b></p><p><a href="http://blog.0356sh.com/xiangqin.html">互联网人士相亲体，今年过年你相亲吗？</a></p><p><a href="http://blog.0356sh.com/qianduancainiao.html">前端工程师新手必读</a></p><p><a href="http://blog.0356sh.com/pm.html">互联网产品经理常用软件及工作平台</a></p></div>]]></description>
	<pubDate>Wed, 04 Mar 2015 02:07:08 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/it-read-book.html</guid>

</item>
<item>
	<title>IIS启用Gzip的方法及优缺点分析</title>
	<link>http://blog.0356sh.com/iis-gzip.html</link>
	<description><![CDATA[<p>
	<strong>步骤一：</strong> 
</p>
<p>
	打开II6界面 &gt; 选择“网站” &gt; 右键属性 &gt; 选择“服务”&gt; 按照图中打钩
</p>
<p>
	其中“临时目录的最大容量”与“临时目录”依据自身自行更改设置
</p>
<p>
	特别注意，要给予临时目录 User权限(写入、修改、读取)，如果是默认的则不要修改
</p>
<p>
	<br />
</p>
<center>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201501/7e21f066ab8a97d0adcb2ef3ea5ebe3520150108020708.jpg" align="absMiddle" height="356" width="520" /> 
</center>
<p>
	<strong>步骤二：</strong> 
</p>
<p>
	选择“Web服务扩展” &gt; 在右侧空白处右“键新Web服务扩展” &gt; 按照图输入相关
</p>
<p>
	“设置扩展状态为可选”打钩
</p>
<p>
	“添加文件”很可能由于每个人服务器配置不同，请自行搜索下(或者按照图中打入，看看是否存在)
</p>
<p>
	<br />
</p>
<center>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201501/045ed51df3e352be026f10e7cce8d03520150108020708.jpg" align="absMiddle" height="377" width="520" /> 
</center>
<p>
	<strong>步骤三：</strong> 
</p>
<p>
	开始 &gt; 运行中输入 c:\windows\system32\inetsrv (如果错误，请按照图中输入)&gt; 找到 
MetaBase.xml
</p>
<p>
	复制一份到桌面(并更改为 bak_MetaBase.xml)，作为备份。
</p>
<p>
	<br />
</p>
<center>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201501/67f80add1b659fb67a95b9ac80ef3e4720150108020709.jpg" align="absMiddle" height="206" width="276" /> 
</center>
<p>
	<strong>步骤四：</strong> 
</p>
<p>
	用文本等工具打开 MeteBase.xml &gt; 搜索 Location 
="/LM/W3SVC/Filters/Compression/gzip"
</p>
<p>
	<br />
</p>
<center>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201501/05f829e96eb6e0d616e797b1def292d120150108020710.jpg" align="absMiddle" height="208" width="520" /> 
</center>
<p>
	然后，你将看到如下代码(<span style="color:#E53333;">仔细核对下段落，由于服务商不一样，内容可能略有不同)</span> 
</p>
<p>
	<br />
</p>
<pre class="brush: xml;auto-links: false;">&lt;IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="0"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="FALSE"
HcDynamicCompressionLevel="0"
HcFileExtensions="htm
html
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
dll
exe"
&gt;
&lt;/IIsCompressionScheme&gt;
&lt;IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="0"
HcFileExtensions="htm
html
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
dll
exe"
&gt;
&lt;/IIsCompressionScheme&gt;</pre>
<p>
	<br />
</p>
<p>
	替换成：
</p>
<p>
	<br />
</p>
<pre class="brush: xml;auto-links: false;">&lt;IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="9"
HcFileExtensions="html
css
js
htm
xml
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="php
dll"
&gt;
&lt;/IIsCompressionScheme&gt;
&lt;IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="2"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="9"
HcFileExtensions="html
css
js
htm
xml
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="php
dll"
&gt;
&lt;/IIsCompressionScheme&gt;</pre>
<br />
<p>
	<br />
</p>
<p>
	HcFileExtensions为你要压缩的文件类型，请自行增加。上方为静态类文件，下方为动态类文件。
</p>
<p>
	HcDynamicCompressionLevel为压缩等级，数值为 0-10（9是性价比最高的一个） ，请自行根据服务器硬件等环境来做调试
</p>
<p>
	然后请先保存到桌面，名为 MeteBase.xml
</p>
<p>
	<br />
</p>
<center>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201501/02290cae43680d269b3efa56f1743f7b20150108020710.jpg" align="absMiddle" height="407" width="520" /> 
</center>
<p>
	<strong>步骤五：</strong> 
</p>
<p>
	我的电脑 &gt; 控制面板 &gt; 管理工具 &gt; 服务
</p>
<p>
	找到 IIS Admin Service &gt; 停止
</p>
<p>
	<br />
</p>
<center>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201501/1520318b899a951ffb473db45b3cf1a020150108020710.jpg" align="absMiddle" height="279" width="474" /> 
</center>
<p>
	<strong>步骤六：</strong> 
</p>
<p>
	回到找到 MeteBase.xml 的目录，删除它
</p>
<p>
	<br />
</p>
<center>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201501/a14d912ba3fdd5dddfac32b1e06b8e5120150108020710.jpg" align="absMiddle" height="320" width="471" /> 
</center>
<p>
	<strong>步骤七：</strong> 
</p>
<p>
	在步骤四的最后，让大家保存到了桌面，现在我们剪切它。
</p>
<p>
	<br />
</p>
<center>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201501/58005be319c601e2eb2b3eb44765f5f020150108020710.jpg" align="absMiddle" height="169" width="133" /> 
</center>
<p>
	<strong>步骤八：</strong> 
</p>
<p>
	回到刚才删除 MeteBase.xml 的地方，把从桌面剪切的粘贴进来
</p>
<p>
	<br />
</p>
<center>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201501/fb2775d31a9b63d334d003f9a0a2443220150108020711.jpg" align="absMiddle" height="176" width="340" /> 
</center>
<p>
	<strong>步骤九：</strong> 
</p>
<p>
	在步骤五中，我们停止了 IIS Admin Service 服务，现在，我们点启动它。(图与步骤五一样，所以请以实际的为准)
</p>
<p>
	<br />
</p>
<center>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201501/1520318b899a951ffb473db45b3cf1a020150108020710.jpg" align="absMiddle" height="279" width="474" /> 
</center>
<p>
	<strong>步骤十：</strong> 
</p>
<p>
	回到II6中，对其进行重启IIS
</p>
<p>
	<br />
</p>
<center>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201501/b45727fcd918143c9398b2456085614920150108020711.jpg" align="absMiddle" height="361" width="513" /> 
</center><div id="related_log" style="font-size:12px"><p><b>相关日志：</b></p><p><a href="http://blog.0356sh.com/REQUEST_URI-HTTP_X_REWRITE_URL.html">在php中用$_SERVER['REQUEST_URI']返回index.php</a></p></div>]]></description>
	<pubDate>Thu, 08 Jan 2015 02:01:43 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/iis-gzip.html</guid>

</item>
<item>
	<title>javascript操作cookie函数写法</title>
	<link>http://blog.0356sh.com/js-cookice.html</link>
	<description><![CDATA[<p style="text-indent:2em;">
	以前应该都是用PHP操作Cookie，或用JQ的插件-jQuery.cookie。今天写个简单的页面，想着直接用JS操作一下，现在记录下方法。
</p>
<p style="text-indent:2em;">
	实现的功能是：
</p>
<p style="text-indent:2em;">
	1、先检测该Cookice是否存在，如果不存在则执行一个自定义函数。
</p>
<p style="text-indent:2em;">
	2、执行完自定义函数后，写入Cookice，周期有24小时。
</p>
<p style="text-indent:2em;">
	代码如下：
</p>
<p>
	<br />
</p>
<pre class="brush: js;auto-links: false;">var strCookie=document.cookie;
//将多cookie切割为多个名/值对
var arrCookie=strCookie.split("; ");
var qq;
//遍历cookie数组，处理每个cookie对
for(var i=0;i&lt;arrCookie.length;i++){
  var arr=arrCookie[i].split("=");
  //找到名称为userId的cookie，并返回它的值
  if("qq"==arr[0]){
    qq=arr[1];
  break;
	}
}
if(qq!=1){
  setTimeout("qqtc()",30000);
  //获取当前时间
  var date=new Date();
  var expiresDays=1;
  //将date设置为1天以后的时间
  date.setTime(date.getTime()+expiresDays*24*3600*1000);
  document.cookie="qq=1; expires="+date.toGMTString();
}</pre>
<p>
	<br />
</p>
<p style="text-indent:2em;">
	再来个定义好的函数版本：
</p>
<p>
	<br />
</p>
<pre class="brush: js;auto-links: false;">//设置Cookice，方法为setCookice("qq",1,1)
function setCookie(name, value, iDay) {
    var oDate = new Date();
    oDate.setDate(oDate.getDate() + iDay);
    document.cookie = name+'='+value+';expires='+oDate+';path=/';
}
//获取Cookice，方法为getCookie("qq")
function getCookie(name) {
    var arr = document.cookie.split('; ');
    var i = 0;
    for(i=0; i&lt;arr.length; i++) {
        var arr2 = arr[i].split('=');
        if(arr2[0] == name) {return arr2[1];}
    }
    return '';
}
//删除Cookice，方法为removeCookie("qq")
function removeCookie(name) {
    setCookie(name,'',-1);
}</pre>
<p>
	<br />
</p><div id="related_log" style="font-size:12px"><p><b>相关日志：</b></p><p><a href="http://blog.0356sh.com/javascript-plus.html">31款轻量级开源JavaScript插件和库 快速提升效率</a></p><p><a href="http://blog.0356sh.com/qianduancainiao.html">前端工程师新手必读</a></p><p><a href="http://blog.0356sh.com/canvas-introduced.html">讲一讲 Canvas 究竟是个啥</a></p><p><a href="http://blog.0356sh.com/minify_info.html">Minify优化网站性能 合并多个CSS或者js文件</a></p></div>]]></description>
	<pubDate>Fri, 21 Nov 2014 08:56:38 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/js-cookice.html</guid>

</item>
<item>
	<title>我什么都怕，唯一不怕的是挫折。</title>
	<link>http://blog.0356sh.com/bupacuozhe.html</link>
	<description><![CDATA[<div style="text-align:center;">
	<a target="_blank" href="http://blog.0356sh.com/content/uploadfile/201410/ee211414045406.jpg" id="ematt:283" style="line-height:1.5;"><img src="http://blog.0356sh.com/content/uploadfile/201410/ee211414045406.jpg" title="点击查看原图" alt="p20032150.jpg" border="0" width="600" height="393" /></a> 
</div>
<p>
	2003年7月，我从东北老家出发南下，坐了三天的硬座火车，从福州车站下车的时候，车外41度的高温，宛如走入了一个蒸笼，瞬间我觉得自己好像是只半熟的小笼包。
</p>
<p>
	南方的旅馆有很多和我想得不一样，比如木板床上铺凉席，头顶上整晚开着吊扇，无论喝多少水，你依旧会觉得喝下去的水瞬间从毛孔蒸发。
</p>
<p>
	因为天气太炎热，我要洗很多次澡，洗澡水来自楼顶的水塔，水从放出来的时候就是温的。
</p>
<p>
	无论洗多少次依旧觉得浑身汗臭。
</p>
<p>
	<br />
</p>
<p>
	自从意气用事地和职业学校的负责人吵翻，决定坚决不接受霸王条款，本着世界上一定还有公平在的想法，半个多月我跑了不下三十多场面试，好几场人才招聘会，但事实是残酷的。
</p>
<p>
	我找不到工作。
</p>
<p>
	钱开始越花越少，我不得不将房间的要求从单人间换成双人间，最后到四人间。
</p>
<p>
	每晚睡觉前都把钱包压在枕头下，带着惶恐的眼神应对着同房间里陌生人的提问和玩笑。
</p>
<br />
<p>
	我从福州走到泉州，最后到晋江，然后是石狮。
</p>
<p>
	就好像濒死的动物，一直寻找希望的水源，但是却一次又一次的接受沉重的打击。
</p>
<p>
	每天在沙县小吃吃上一盘最便宜的拌面，马上就要没有钱了，预留出的火车票钱肯定不能动，但是每天吃饭、住宿、交通都要花钱。
</p>
<p>
	到底要怎么办……没人能给我答案。
</p>
<p>
	南方的网吧上网很贵，那个时候四块钱一小时，比起北方一块钱一小时，十块钱包夜的价格来说，那几乎是抢钱的节奏，我上网最大的目的是投简历，一点时间都不敢浪费。
</p>
<br />
<p>
	发一通简历之后就赶快结账，之后等着有人打电话来。
</p>
<p>
	每次接到面试电话，匆匆带着作品赶过去，在进门的时候我都要停下来，深吸一口气，然后给自己加油打气说：没关系！你可以的，马上就会有希望了！
</p>
<p>
	半小时后，我会默默地走出来，不坐公交，沿着来路，步行回去……
</p>
<br />
<p>
	那一路上想过多少五味杂陈的负面情绪早已经不记得了，只记得那条路很长，仿佛要用尽全身力气都还走不完……
</p>
<p>
	南方的夜晚最常见的是夜市，南方的旅馆最常见的是停电。
</p>
<br />
<p>
	因为天气太热，害怕电线起火，所以每天晚上会有一段时间停止供电。
</p>
<p>
	每家小旅馆都有自己的发电机，柴油机带动马达，之后轰鸣声会带来光明。
</p>
<p>
	十年前，我在石狮某个小旅馆，躺在床上盘算着口袋里剩下的最后的钱。
</p>
<p>
	我不知道，自己是应该坚持，还是放弃。
</p>
<br />
<p>
	灯光忽然灭了，又是停电，但是楼下的马达声音却没有响起。后来听人吵起来，老板解释说好像是发动机出了点问题。
</p>
<p>
	黑暗总会让人有一些烦闷，同住的那位大哥我们在晋江的旅馆认识，还是听他介绍石狮有招聘会，所以才跟着一起来了，他从行李包里拿出一包烟，问我要不要抽一根，我摇摇头拒绝了。
</p>
<p>
	忽然走廊里有女人喊：谁要看电视呀！
</p>
<p>
	我就诧异地问：大哥，全旅馆都停电，怎么她那会有电呢？
</p>
<p>
	大哥笑笑说，哈哈！那是个暗号，她们就是做那种事儿的人啊！
</p>
<p>
	我好像听懂了他话里的意思。
</p>
<p>
	女人的声音由远及近，最后站在我们房间的门口，因为天气热，又停电，电扇不能启动，所以大家早就把门窗打开，希望能更凉快些。
</p>
<p>
	那女人拿了一个小的手电筒，微光下看不太出长相，只能看得出丰腴的身体上包裹着一层睡衣。
</p>
<p>
	她冲我招招手说：小兄弟，你要看电视么？
</p>
<p>
	我就好像被火烫了一下，蹿到了床的一角，脸也好像被火烤了一样，红了。
</p>
<p>
	人家还是个学生仔，你不要吓坏了他！看啥电视？好看么？来来来，我随你看看去。
</p>
<p>
	那大哥边说边把女人带走了。
</p>
<br />
<p>
	我拿着枕头下的钱包，下了楼，第一次跑到南方的话吧里去打电话。
</p>
<p>
	然后手指在键盘上不争气的拨到一半就抖得不行。
</p>
<p>
	我不知道应该打给谁，打给父母么？我们家没有电话，唯一有电话的亲戚是小舅舅，这么晚了，我要说什么呢？我都能想象老家人的常规回答是，啊！好啊！要是没事儿就挂了吧！
</p>
<br />
<p>
	打给同学么？说什么？问问对方工作如何？开心么？然后呢？
</p>
<p>
	最后我想来想去打给一个大学时候在QQ里认识的外地的网友。
</p>
<p>
	”你那边怎么样？我这边不太好……我已经快一个月没找到工作了……”
</p>
<p>
	那些温暖的碎碎念，绕过了刚刚小旅馆里的那一幕，我其实也知道要说多久，直到对方说要挂了，才茫然的挂掉。
</p>
<p>
	那一刻我才觉得，其实我只是想找人说说话，原来我如此害怕寂寞。
</p>
<p>
	后来那位大哥不知道是不是吃坏了东西，因为拉肚子不得不去挂吊针，我陪着他在卫生所，预防输液完回血，我们聊了很久，在聊的过程里我想到了放弃，决定过几天回老家。
</p>
<br />
<p>
	在输液的时候他接到了面试的电话，我因为决定放弃反而瞬间觉得轻松了，因为看他颤颤巍巍的样子就决定陪他去面试，却不成想阴差阳错的我也得到了一个工作机会。
</p>
<p>
	从南方回来的时候已经深秋。
</p>
<br />
<p>
	我在冒然选了一份救命的工作之后，最后不得不面对：我还是想做设计的本心，之后就真的决定放弃南方，顺着那个面试邀约的理由回了北方。
</p>
<p>
	在大连属公司适应了一个月，之后回到了公司总部。
</p>
<p>
	总部在兴城，一个靠近海的小镇子。
</p>
<p>
	公司离古城很近，但是我却很少去转过，因为我没有任何一点时间休息。
</p>
<p>
	我原本以为南方那种早中晚三班不分周六日，一个月只有两天带薪假的要求很恐怖，自己好像行尸走肉一样不知道为什么坚持，结果回了北方才发现，原来这个要求似乎是这个行业的潜规则。
</p>
<p>
	你只能用最大时间被榨取更多的价值。
</p>
<br />
<p>
	总部的条件很艰苦，但是我的心态已经成熟了，如果去哪里都是一样的辛苦的话，那我不能白白辛苦，我总要让自己的辛苦值得。
</p>
<p>
	无论多难我都要学点东西再走，哪怕我出了这家企业就转行都没关系，至少我要对得起自己。
</p>
<p>
	这句话变成了那段日子支撑我走过来最大的理由。
</p>
<p>
	新人要从最基本的剪线头开始做起，干这个活儿的都是老奶奶们，一边聊家常一边剪，剪十件一分钱。我们三个设计师拿工资，所以干活没有钱，我在南方的薪水一个月1200块，回了北方一个月800。
</p>
<p>
	除了剪线头，男生还要负责扛布匹、装箱、运货，和劳力没区别。
</p>
<p>
	这种劳动改造式的日子，领导们叫它体验生活。
</p>
<p>
	半个多月后我们开始准备春节后的新品订货会的设计工作，那种兴奋在董事长每天拿着树枝翻牌子一样在设计稿中点选而渐渐消失，我的作品被选上的很少。
</p>
<p>
	没有理由，也没有解释。因为老板没有教你的义务。
</p>
<p>
	竞争就是这样，有成功一定有失败。
</p>
<br />
<p>
	老板喜欢原来的设计师的风格，因为熟悉。
</p>
<p>
	接受一个新人本来就需要过程，什么事其实都没有所谓的绝对公平。
</p>
<p>
	等到我终于被选中了几款设计可以下场去制作样品，这时候我才发现，你要协调打版师傅不要把你的设计稿放到最后，在打版的过程里也许对方还可以给你提一些合理化的建议；你要协调库房帮你找最合适的布料以及配件；你要协调流水线的组长，让她找合适的工人给你调配，这些所有的环节都需要自己来。
</p>
<p>
	没有人欠你什么，尤其是对于计件算钱的工人来说，新款式不但不算钱还因为款式新，所以加工工艺都需要重新研究。
</p>
<br />
<p>
	那时候我才知道，原来从图纸到实物的过程是多艰难，几乎离开了人情关系寸步难行。
</p>
<p>
	这才明白所谓的大半个月的体验生活，其实不过就是让我们先和工人打好关系，以备这个时候全力配合。
</p>
<p>
	我住的宿舍没有暖气，饭盒放在房间里，早晨起来汤匙是冻在上面的。
</p>
<br />
<p>
	我们的设计室是全厂暖气最足的地方，还有一台不能上网但是可以看碟的老式电脑。
</p>
<br />
<p>
	我们三个设计师和打版师傅每次都被食堂的阿姨特别对待，我们中午的菜里会有肉，我们的汤里会有蛋花，而其他员工永远都是土豆白菜和白开水。
</p>
<p>
	很多时候我都觉得自己不配这样的待遇，我在每天被冷落打击和苦闷中找不到自我。
</p>
<br />
<p>
	一次我在锅炉房接热水洗大衣，烧锅炉的大爷问我，这里一个月给你开多少钱啊！我说，八百。
</p>
<p>
	他就呵呵笑说，那你和我也差不多，我一个月还六百呢。
</p>
<p>
	这句话宛如一枚刺，让我瞬间疼到心里最深的地方。
</p>
<p>
	这就是我的价值么？我就是这样？
</p>
<p>
	我内向害羞不善于和人打交道，所以没人帮我，没工人给我出主意，我做的东西自己都看不过去。
</p>
<p>
	我没经验、设计的东西不符合实际，我总说自己有才华不被赏识，但是现实却总是给你一记又一记响亮的耳光。
</p>
<p>
	现在我要承认自己失败么？我要在这里对着一个烧锅炉的大爷痛哭流涕之后说自己就是一个什么都不会的蠢货么？
</p>
<p>
	当然不能！
</p>
<p>
	我决定搬进设计室去住，因为那有充足的暖气以及不用到点提醒你熄灯的室友。
</p>
<br />
<p>
	我把公司所有的资料都找出来，把每天老板选中的设计稿排成一排，把自己今天做的设计稿放在下面比对，找不同，找差异，找解决办法。
</p>
<p>
	我尝试使用那台老旧的电脑，把线稿和布料扫描进去，用一知半解的PS技巧做成电脑效果图意外地获得了老板的认可。
</p>
<p>
	我把落选的稿子裁成小本子，要求自己每天晚上画三十款款式图再睡觉。
</p>
<p>
	我只要有时间就去车间里和工人聊天，从李姐张姐王姐赵姐，能记得的脸和名字都拼命记下，谁的儿子最聪明，哪个大姐最爱吃煮鸡蛋，食堂阿姨拿给我一包榨菜也拿去送给几位组长。
</p>
<p>
	人心，就在是不断被认识、被记住、被夸奖、被问候，甚至是被奉承中被温暖了。
</p>
<br />
<p>
	这不就是社会么？
</p>
<p>
	我知道，我不可能一辈子都做那个南方小旅馆里脸红的少年。
</p>
<p>
	我也不可能一辈子都遇到那种陪人面试，你能拿到一个工作机会的好事。
</p>
<p>
	我从没想过自己要如何改变自己，是这个社会在不断要求你，变成这样吧！变成那样吧！
</p>
<p>
	我只是想活的没那么累。
</p>
<p>
	我想证明，我有价值！
</p>
<p>
	我从那家企业走的时候，我很欣慰。
</p>
<br />
<p>
	我有12件作品入选了公司的订货手册，我有自己的一条样衣流水线，这个线上每一个环节的负责人都和我的关系特别要好。打板师傅对我很好，帮我出了很多主意，也给了我很多实际的建议。
</p>
<p>
	我忙到春节只能休息三天，晚上大家饿着肚子一起装箱，发货，之后几个小伙子骑摩托车去买好吃的包子，不忘记给我送去一份。
</p>
<p>
	我得到北京的面试通知，之后对总经理说我要走了。
</p>
<p>
	我在这里得到了我所有想得到的一切，我很满足。
</p>
<p>
	我知道，我出了这个门，就会彻底放弃设计这个专业，但是没关系，我觉得我努力过了，有成绩了。
</p>
<p>
	这样就够了。我对得起我读过的四年大学。
</p>
<p>
	以后，我要从新开始。
</p>
<p>
	<br />
</p>
<p>
	2004年2月的最后一天，我来到北京，带着老妈给的行李卷，最外面的是狗皮褥子。
</p>
<p>
	我的第一个晚上是在公司会议室的地板上睡的，因为新的宿舍还没有收拾好。
</p>
<p>
	那一晚我睡的很安稳，暖气很足。
</p>
<p>
	我睁开眼看到天花板的第一个瞬间，都依旧不敢相信，自己现在在北京。
</p>
<p>
	我带着一种莫名其妙的自信和近乎破釜沉舟的心情投奔到了北京。
</p>
<br />
<p>
	一周后，主编告诉我，你对日本动漫了解的东西太有限，你好像只知道宫崎骏，你也不会日语，好在你的文笔还不错，但是你要做好准备，如果我们找到合适的人，我会把你开掉。
</p>
<p>
	因为这句话，那漫长的四个月试用期，我没有十二点前离开过办公室。我把公司十年的策划专题都看完，我补充了大量的动漫作品以及关于动漫制作人的信息，我甚至还买了一本日语教材，强迫自己学了一段日语。
</p>
<p>
	我记得加班的那段日子，另外一个编辑问我，老大也没要求你加班，你干嘛每天累死累活的呢？工作又不难找，你何必这么倔一定要留在这呢？
</p>
<p>
	我就笑着说：我在南方的时候，我嫌天气热，嫌工作时间长，结果回了北方才发现原来哪都一样。我在北方的设计公司，每天吃两顿馒头一顿米饭，忙的时候累半死，闲的时候就是力工兼打杂，每天几乎足不出楼的在工作，住的地方没有暖气，赚的钱和烧锅炉的大爷差不多。
</p>
<p>
	你看我现在，工资是过去的两倍，每天三顿想吃什么都可以，还有十块钱的补助。
</p>
<br />
<p>
	我不用费力气，不用搬运，甚至借助椅子的滑轮我连走路都可以省了。
</p>
<p>
	我唯一的工作就是看书，打打电脑，这比我过去不知道好了多少倍。
</p>
<p>
	我不觉得这是吃苦，这简直就是在享福。
</p>
<p>
	这个行业是我自己选的，因为我觉得我喜欢，如果我连自己最喜欢的事儿都做不好，那你说我还能做成什么？
</p>
<p>
	我很知足，我一定会留下来的，在这个城市，留下来……
</p>
<p>
	然后我就真的留在了这个城市十年。
</p>
<br />
<p>
	我怕过很多东西，怕吃苦、怕被拒绝、怕被人看不起、至今我都还有很多怕的东西。
</p>
<p>
	现在我唯一不怕的是挫折。
</p>
<p>
	因为很多东西只有经历之后，那些东西才会慢慢嵌入你的生命，让你越来越勇敢！
</p>
<p>
	<br />
</p>
<p>
	<span style="color:#111111;font-family:Arial, Helvetica, sans-serif;font-size:13px;line-height:21px;white-space:pre-wrap;background-color:#FFFFFF;">转载自（<a href="http://www.douban.com/note/434578112/" target="_blank">http://www.douban.com/note/434578112/</a>）</span> 
</p><div id="related_log" style="font-size:12px"><p><b>相关日志：</b></p><p><a href="http://blog.0356sh.com/hunrizi.html">周鸿祎：给那些仍旧在公司混日子的人</a></p><p><a href="http://blog.0356sh.com/work-raises.html">努力工作就可以加薪？ too young too simple！</a></p><p><a href="http://blog.0356sh.com/wherework.html">毕业了去哪里工作，来自一位毕业多年北飘人的经验感悟</a></p><p><a href="http://blog.0356sh.com/fatherlove.html">宁财神：父爱如山</a></p><p><a href="http://blog.0356sh.com/goodxiashu.html">如何做好下属！省却不必要的麻烦</a></p></div>]]></description>
	<pubDate>Thu, 23 Oct 2014 06:21:39 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/bupacuozhe.html</guid>

</item>
<item>
	<title>css border制作小三角形状及IE6中inline-block的解决文案</title>
	<link>http://blog.0356sh.com/inline-block-ie6.html</link>
	<description><![CDATA[<p>
	<strong>1、display:inline-block</strong> 
</p>
<p>
	让一个元素具有“区块元素”的属性（可以设置width和height），又具有“内联元素”的属性（不产生换行）。
</p>
<p>
	<strong>2、IE中的inline-block</strong> 
</p>
<p>
	IE6不支持这个属性，但IE8开始支持这个属性。
</p>
<p>
	让IE6内联元素具备inline-block特性
</p>
<p>
	由于inline-block会触发IE的layout，所以IE6中只要设置{display:inline-block;}即可。
</p>
<p>
	让IE6区块元素具备inline-block属性，
</p>
<p>
	直接设置为inline，再利用zoom来触发layout来实现类似效果：
</p>
<p>
	<br />
</p>
<pre class="brush: css;auto-links: false;">div{
width:400px;
height:200px;
*display:inline;
*zoom:1;
}</pre>
<br />
<div style="text-align:center;">
	<span style="line-height:1.5;font-size:16px;"><strong>css border制作小三角形状及应用</strong></span><span style="font-size:16px;"><strong>原理</strong></span> 
</div>
<p>
	<br />
</p>
<p>
	<strong> </strong>
</p>
<p>
	<strong>css盒模型</strong>
</p>
<center>
	<img alt="box-model" src="http://blog.0356sh.com/content/uploadfile/201406/a8fd63fe060f7d88ed637a3a5c41f36220140607015738.png" width="303" height="300" /> 
</center>
<p>
	–上下左右边框交界处出呈现平滑的斜线.利用这个特点,通过设置不同的上下左右边框宽度或者颜色可以得到小三角,小梯形等.
</p>
<p>
	–调整宽度大小可以调节三角形形状.
</p>
<p>
	<strong>示例1</strong> 
</p>
<p>
	一般情况下,我们设置盒子的宽高度,及上下左右边框,会呈现如下图
</p>
<center>
	<img alt="snap1" src="http://blog.0356sh.com/content/uploadfile/201406/4870251d793546b53d009ef08d1e91ec20140607015738.gif" width="69" height="67" /> 
</center>
<p>
	<br />
</p>
<pre class="brush: css;auto-links: false;">#test1{
height:20px;
width:20px;
border-color:#FF9600#3366ff#12ad2a#f0eb7a;
border-style:solid;
border-width:20px;
}</pre>
<br />
<strong style="line-height:1.5;"></strong> 
<p>
	<br />
</p>
<p style="display:inline !important;">
	<strong>示例2</strong> 
</p>
<p>
	在上面基础上,我们把宽高度都设为0时,会呈现上述的边界斜线.
</p>
<center>
	<img alt="snap1" src="http://blog.0356sh.com/content/uploadfile/201406/303756427739cc201c5761ff5a2f480220140607015738.gif" width="50" height="50" /> 
</center>
<p>
	<br />
</p>
<pre class="brush: css;auto-links: false;">#test2{
height:0;
width:0;
overflow:hidden;/*这里设置overflow,font-size,line-height*/
font-size:0;/*是因为,虽然宽高度为0,但在IE6下会具有默认的*/
line-height:0;/*字体大小和行高,导致盒子呈现被撑开的长矩形*/
border-color:#FF9600#3366ff#12ad2a#f0eb7a;
border-style:solid;
border-width:20px;
}</pre>
<br />
<strong style="line-height:1.5;"></strong> 
<p>
	<br />
</p>
<p style="display:inline !important;">
	这时,其实我们已经看到有上下左右四个三角形了..如果,我们把4种颜色,只保留一种颜色,余下3种颜色设置为透明(或者设置为和背景色相同的颜色),那不就出现一个小三角了么
</p>
<p>
	<strong>示例3</strong> 
</p>
<p>
	只保留上面的橙色,看看
</p>
<center>
	<img alt="snap1" src="http://blog.0356sh.com/content/uploadfile/201406/f9a23a05ca68468a0c3d9e2b996d40ca20140607015739.gif" width="53" height="37" /> 
</center>
<p>
	<br />
</p>
<pre class="brush: css;auto-links: false;">#test3{
height:0;
width:0;
overflow:hidden;
font-size:0;
line-height:0;
border-color:#FF9600transparenttransparenttransparent;
border-style:solid;
border-width:20px;
}</pre>
<p>
	<br />
</p>
<p style="display:inline !important;">
	可是,IE6下不支持透明啊~~~,会出现下图的样子
</p>
<center>
	<img alt="snap1" src="http://blog.0356sh.com/content/uploadfile/201406/69d55778c2d596cde37199eeb575dd3120140607015739.gif" width="64" height="61" /> 
</center>
<p>
	找到一个在IE6下边框透明的文章中找到解决办法,如下例
</p>
<p>
	<strong>示例4</strong> 
</p>
<p>
	IE6下,设置余下三条边的border-style为dashed,,,即可达到透明的效果~具体原因可以见参考资料3
</p>
<center>
	<img alt="snap1" src="http://blog.0356sh.com/content/uploadfile/201406/f69b012467bade59e3d3cb23876a879920140607015739.gif" width="54" height="48" /> 
</center>
<p>
<pre class="brush: css;auto-links: false;">#test4{
height:0;
width:0;
overflow:hidden;
font-size:0;
line-height:0;
border-color:#FF9600transparenttransparenttransparent;
border-style:soliddasheddasheddashed;
border-width:20px;
}</pre>
<br />
<span style="line-height:1.5;">当然,在IE6下,不设置透明,将其颜色设置为背景色,使其看不出来也是可以的.</span>
</p>
<p>
	<strong>示例5</strong> 
</p>
<p>
	上面我们画的小三角的斜边都是依靠原来盒子的边,还有另外一种形式的小三角,就是斜边在盒子的对角线上
</p>
<center>
	<img alt="snap1" src="http://blog.0356sh.com/content/uploadfile/201406/931d3a47ef56034668f4a7be31c2ccd820140607015739.gif" width="59" height="58" /> 
</center>
<p>
<pre class="brush: css;auto-links: false;">#test5{
height:0;
width:0;
overflow:hidden;
font-size:0;
line-height:0;
border-color:#FF9600#3366fftransparenttransparent;
border-style:solidsoliddasheddashed;
border-width:40px40px00;
}</pre>
<br />
<span style="line-height:1.5;">保留其中一种颜色,就可以得到斜边在对角线上的三角形了…多个这样的三角形,通过设置边框大小,颜色,拼凑起来可以形成任意形状的三角形.</span>
</p>
<center>
	<img alt="snap1" src="http://blog.0356sh.com/content/uploadfile/201406/d2e92b62121c2e6c8fe1e8acf558d97e20140607015739.gif" width="50" height="55" /> 
</center>
<p>
	像这种不规则的三角形,延伸一下,放在气泡框上,就可以省去拼背景图片的麻烦了.
</p>
<center>
	<img alt="snap1" src="http://blog.0356sh.com/content/uploadfile/201406/05aafa39cca10098a10b8cf47fac6fc420140607015739.gif" width="245" height="91" /> 
</center>
<p>
	另外,关于气泡框,可以使用棱形字符(◆)来实现,设置其font-size,颜色和背景色一致,定位可以使用margin负值和absolute绝对定位来实现,
</p>
<p>
	<strong>其他小问题</strong> 
</p>
<p>
	透明：IE6浏览器不支持transparent透明属性,就border生成三角技术而言,直接设置对应的透明边框的border-style属性为dotted或是dashed即可解决这一问题,原因是在IE6下,点线与虚线均以边框宽度为基准,点线长度必须是其宽度的3倍以上（height&gt;=border-width*3）,虚线宽长度必须是其宽度的5倍以上（height&gt;=border-width*5）,否则点线和虚线都不会出现.
</p>
<p>
	IE6的奇偶bug：如果定位外框高度或是宽度为奇数,则IE6下,绝对定位元素的低定位和右定位会有1像素的误差.所以,尽量保证外框的高度或宽度为偶数值.
</p>
<p>
	IE6的空div高度bug：IE6下,空div会有莫名的高度,也就是说height:0;不顶用,此时形成的尖角的实际占高于其他浏览器是有差异的.可使用font-size:0;+overflow:hidden;修复此问题.
</p><div id="related_log" style="font-size:12px"><p><b>相关日志：</b></p><p><a href="http://blog.0356sh.com/ie6_png.html">IE6下PNG图像透明解决方案</a></p><p><a href="http://blog.0356sh.com/CSS_Sprites.html">CSS Sprites,要还是不要？</a></p><p><a href="http://blog.0356sh.com/web-question.html">web标准常见问题整理(转自blueidea)</a></p><p><a href="http://blog.0356sh.com/qianduancainiao.html">前端工程师新手必读</a></p><p><a href="http://blog.0356sh.com/css_hack_iebug.html">前端中浏览器的兼容性和BUG问题的笔记</a></p></div>]]></description>
	<pubDate>Sat, 07 Jun 2014 01:50:54 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/inline-block-ie6.html</guid>

</item>
<item>
	<title>专访罗永浩：43 个细节告诉你，他如何走到今天</title>
	<link>http://blog.0356sh.com/laoluo.html</link>
	<description><![CDATA[<center>
	<p>
		<img alt="" src="http://blog.0356sh.com/content/uploadfile/201405/c6b739e1905dbe58b9682deb12aeeee920140526085334.jpg" width="640" height="380" /> 
	</p>
</center>
<p>
	“ROM发布前，他们觉得我的方向全是错的”，罗永浩说他最艰难的时候是在ROM前后，“进度是一坨狗屎，后面的钱也全都没有到位。有一些工程师甚至隔三差五去问财务会计，我们账上还剩多少钱。大家都很悲观，整个公司都是悲观的情绪。我发布会当天也讲砸了，他们有一些人在小米那些公司有朋友，就被羞辱，就说你好端端一个人，奈何从贼呢？”
</p>
<p>
	这个“贼”现在坐在《好奇心日报》的记者面前，回顾过去24个月里他觉得最重要的事，在三天前的锤子手机发布会上，他的产品亮相，两天之内便获得超过5万台的预订量，我们看看他说了什么，他经历了哪些“憋屈”和艰难，他的悲观和乐观，他是否改变了对世界的看法，他如何看待生意、锤子、小米、苹果、Google……他对未来怎么看，偶尔还会有一点他对过去的评价。
</p>
<p>
	我们这里讲述的是一个认真的人，一个有好奇心的人，如何实现自己的梦想，并且在这个过程当中还能保持自己与这个世界的距离。
</p>
<p>
	下面的文字主要来自于罗永浩接受采访时的对话实录，小标题为编者所加，因为我们文章逻辑结构的原因，它不是完全按照采访时间线再现的，可能会有些误读。
</p>
<p>
	如果有读者对完整的时间线版本有兴趣，请移步阅读《罗永浩专访全文记录》。
</p>
<p>
	不要害怕做生意，做生意没有想像的那么难
</p>
<p>
	1，选对创业模式，20岁和40岁的人不一样
</p>
<p>
	2，如果有拖延症，自制能力差，那就给别人做老板吧
</p>
<p>
	3，很多时候是未知造成的恐慌
</p>
<p>
	4，不能丢了你的价值观，不能因为做生意而丢掉看待世界的方法
</p>
<p>
	原来做英语学校嘛，做了两年赚到点钱了以后就不想干了。因为我由衷地不喜欢那个行业。因为在2008年我拿钱做英语培训的时候，是唯一被我自己和我朋友认为可以赚钱的项目。你知道我年轻的时候是一个文青加愤青，包括我的朋友和我自己都不觉得我能做企业。
</p>
<p>
	我起初在新东方打工，然后做了一个牛博网，牛博网被关掉以后，当时是路金波找我，让我写书给他，他说一年卖个几十万册畅销书也是没问题的。
</p>
<p>
	后来冯唐和我过年吃饭的时候，你知道冯唐是很牛的畅销书作家，但是他认为靠书来赚钱生活在中国实在是太累。中国这么大一个国家，真正靠卖书过得很从容的，全国连20个也数不出来。我们把畅销书作家百大找出来，基本上从20以后都只是中产阶级。他说你如果是20、30岁的，一年卖一本畅销书也没有问题，但是你都快40了，上有老下有小会很困难。
</p>
<p>
	他知道我自制力比较差，要是做一个团队的工作，你会被迫按部就班地走下去，要是你是一个自由职业者呢，就比较容易拖稿。他说我应该去做点儿买卖，做点儿生意。我说我这个性格做不了生意，他说怎么不能，都是逼出来的。就经常在一起吃饭聊，他说没做过你可以拿一个试一试。譬如说英语培训，再差也不会赔钱的。然后我就有点儿动心了，后来冯唐和我的一个发小帮我找了钱，筹了几百万就开张了。开张以后因为没做过公司所以确实很恐慌，头半年一半的时间都是在公司，天天熬夜，各种掉头发，紧张，其实4、5个月就基本理顺了，就发现其实做生意就是那么回事，跟我这辈子学过的大多数东西一样，最开始的时候是未知造成的恐慌，一旦理顺了，就发现也就那么回事。
</p>
<p>
	（好奇心日报：做这24个月的手机以来，你对世界的认识有改变吗？）完全没有。我见过很多我的朋友，价值观比较坚定的，后来做了一些生意以后，就开始产生犬儒主义的念头了。走到今天，让我能坚持下来的原因，很大程度上跟我的价值观有关系。早期的很多工程师，他们是冲着我来，在产品理念上跟我是死去活来的冲突，也就是说我们开发进度完不成的程度下，让他去调15秒动画的时候，他觉得我疯了。他们自己内部讨论过，说这个老板虽然傻逼，但好歹是个好人嘛，就算他错了，既然我们是冲着他来的，黄了我们就走人。当时他们已经在找下一份工作了。他们的想法是，我们陪他走完这一段，等关门那天吃完了散伙饭再走。所以这个完全是靠我的价值观，要不然他怎么会陪我扛？所以他们没走，一个都没走，靠的就是这个东西。所以对我来讲，价值观始终都是特别重要的。
</p>
<p>
	选对行业很重要。如果有能力影响更多的人，那就做衣食住行这样的大众项目
</p>
<p>
	5，你喜欢的东西会成为你日后创业时的积累，比如工业设计对于罗永浩
</p>
<p>
	6，挑好自己的标杆，宜家无从下手，苹果，恰好，最聪明的乔布斯死了
</p>
<p>
	7，发现一个行业中核心人才最需要的是什么，比如缺的是懂设计的老板
</p>
<p>
	然后因为我讨厌这个行业，但是你亏损是有恐慌的，你顾不上，所以没日没夜的工作，做了两年多，我们成绩还不错，从0做到1400多万，用了两年的时间就开始赚钱，一赚钱就完全没有一丝一毫想做下去的热情了。
</p>
<p>
	再加上这两年半的时间，我们在网站做过两次大型的演讲，我的朋友就告诉我，你看起来是能够影响大众的，因为我最高的一个视频点击是1000多万。可惜做的是小众项目，衣食住行才是大众项目，但是我选的是小众的英语培训，更何况我们选的是小众的小众。这成了我和冯唐在那段时间密集聊的话题。
</p>
<p>
	这样聊了半天以后我就想到我比较喜欢的两个企业，一个是苹果，一个是宜家。这两个公司都以设计著称，然后我小时候想做过木匠，所以我是有一些工匠情节在的，要打造一些physical的东西出来是我比较沉迷的。我喜欢软件也设计软件，但是和做一个看得见摸得着的东西给我的满足感是完全不一样的，我希望我能够做一个宜家或者苹果这样的企业。
</p>
<p>
	第一是我最喜欢手机；第二是手机市场份额是最大的，手机对于绝大多数人是必需品，但是PC和Pad也不是，要做就一定要做最大的（市场）。你可能听说过当初乔布斯做多点触控，开发完了以后第一个想做的是平板，但是后来觉得平板一定卖得没有手机多，所以他就把这个技术用在手机上了，等手机做火了再去做平板，其实这个技术是为手机开发的。
</p>
<p>
	但是我感觉不到做宜家有任何的优势，只是我想做。但是苹果的话我有比较大的优势：一是乔布斯死了，这是很重要的，我不是盼他死，而是他凑巧已经死了，这促发我去想这个事儿。第二个是我的朋友羽良，他是网易的，我们聊起来的时候，他就很鼓励，他说这个圈子里就一个聪明人，他还死了，剩下的又很笨，这是一个很好的机遇，完全可以做。然后我自己做这个的自信来自于工业设计，我自己研究了很多年，人类历史上的消费类电子产品只有三个企业以设计著称：早期的博朗，中期的索尼和后期的苹果，就这三个企业能持续地设计出好的产品，其他企业偶尔能做一个惊艳的东西，但是长远地看它们的设计所在成功的比重是非常小的。
</p>
<p>
	这三个企业能做好，可不是乔布斯、盛田昭夫或者博朗兄弟自己会做设计，他们懂设计，请对了人去做设计，这是很重要的。其实设计人才一直不缺，缺的是懂设计的老板。你去跟设计师聊，他们都会有感慨，这个行业是一直职业满足感最差的行业，他们一生中都没有机会给懂设计的老板做产品，这是这个产品的悲哀。
</p>
<center>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201405/0c07533f23f5682744f5cf70bb247aa720140526085334.jpg" width="640" height="427" /> 
</center>
<p>
	为什么是苹果？进入一个领域之后，你到底能做什么。
</p>
<p>
	8，Google是科技狂人，别人做火车，它做飞机，那种公司我绝对做不了
</p>
<p>
	9，像苹果一样，懂心理学、懂体验，懂优美，懂用户感受
</p>
<p>
	10，苹果做得那么好，是跟乔布斯本人每天跟产品经理坐在一块儿抠产品是相关的
</p>
<p>
	11，很多傻逼企业老板认为谈合作谈战略布大局才是重要的，这是非常可笑的
</p>
<p>
	12，产品本身是最重要的，凑巧如果你会营销，你就赚了
</p>
<p>
	还有就是从业人员笨，我说的笨不是指绝对智商，都很聪明。但问题是在消费电子领域，科技只是基础，科技公司分两种，一种完全是technologydriven（技术驱动型），就像Google，Google在用户体验，产品的感受和心理学上的考量都是很粗糙的，但是它牛的地方是它在某些技术领域里是走在世界最前沿的。当别人做不出来只有你能做的时候，它的细腻、它的优美、它的体贴都不重要，因为它是有和无的问题。航空业现在很成熟了，大家都在比餐饮、服务，是因为它已经很成熟了，但是当大家都在坐火车的时候，做的第一家航空公司，它只要能飞起来就已经是牛逼得冒烟了，就完全不用考虑服务了。所以你如果是技术驱动型的公司，体贴、细腻、优美这些完全不重要，就是人无我有。那这种公司我绝对做不了，创始人本身就是科技狂人。
</p>
<p>
	当年摩托罗拉发明手机的时候，体验是不重要的，但是等到全世界都开始用手机，手机已经高度模块化了，技术都是那几个巨头供应的，大部分厂商自己不做核心技术。中国消费者老有个错误的说法，是中国的企业不掌握核心技术，你到美国去，企业也不掌握核心技术，它要么是买来用、要么是借来用，要么就是有钱了收一家有技术的公司。在纯技术领域里，苹果对人类是没有贡献的公司，但这不意味着苹果不伟大，它把别人做的成熟技术，拿过来非常合理地组合起来，实现一个完整优美符合人类需求的体验，从而显著地改善人类的生活品质，在这个方面苹果是一家非常伟大的公司。
</p>
<p>
	我去研究苹果这么多年的时候，我只是觉得这些企业能做，技术只是底子，技术是必须的，但是推动苹果往前走的核心不是技术，而是它懂心理学、它懂体验、懂产品的优美和用户的感受，这些东西是很难由科学家和理工男来完成的。这说白了这是人左右哪个大脑发达的问题。
</p>
<p>
	是这样，产品分两块，一个是技术实现，一个是设计，设计我是不讲外求的，我自己全都能设计，我们现在软件交互40%的设计是由我一个人完成的。另外的50%多是软件团队在逐步建立起来的过程中完成的。而且我们在招软件产品经理团队的时候都不要有专业背景的，就是看有没有sense，品味好不好，人机交互是高度依赖天赋的。苹果做得那么好，是跟乔布斯本人每天跟产品经理坐在一块儿抠产品是相关的。其实这是唯一重要的，或者说是最重要的，结果很多傻逼企业老板认为自己出去跟别的企业谈合作谈战略布大局才是重要的，这是非常可笑的。你做这个产品，产品本身是最重要的。凑巧如果你会营销，你就赚了。
</p>
<p>
	关于团队，有很多值得说的事
</p>
<p>
	13，自己做企业，不是说每一个事情都要亲力亲为，就怕不知道自己的短板
</p>
<p>
	14，招对人很重要，Jeff来了，同行就知道你是做什么的了
</p>
<p>
	15，你做一个大项目，就不能找管理几个人经验的人来做主管
</p>
<p>
	16，做对事很重要。全球最有钱的公司，上千个最好的工程师，但路子走错了去做Vista依旧会失败
</p>
<p>
	17，要敢于否定自己，6个人做ROM是件错误
</p>
<p>
	18，老板在核心业务上要有感觉，心里要有数
</p>
<p>
	19，团队要稳定，这还是一个老生长谈的问题
</p>
<p>
	反正自己做企业的话，不是说每一个事情都要亲力亲为，就怕不知道自己的短板。比如说这块你明明不灵，非要做这块儿，你擅长的又找个不靠谱的来做。
</p>
<p>
	一开始我们没有招到对的人，招人很困难。最后招到Jeff（钱晨）以后才解决了问题。
</p>
<p>
	硬件起步大概是从2013年的六七月份开始，我们定义这个硬件产品是从春天开始的，三四月份的时候。启动开始，买了设备、仪器，硬件工程师进来开始用螺丝刀捣鼓，当然我也看不懂。那个东西是去年七八月份开始动手的。所以现在已经接近完成了这个东西，不到一年的时间吧。做我们这样一个精细复杂的东西，如果是八到十个月完成，在业内会被认为是非常快的。但是外界不懂，他们整天看贴牌机厂商，他们说，周鸿祎为什么做手机，这个月说，下个月就上市了。我要做贴牌机也是这样。而且很有意思的是，因为我们在媒体上动静闹得特别大，深圳那些厂商几乎全找过我们，他们都以为我们要做贴牌机，然后他说，你选谁？我说我们不选谁，打算我们自己做手机。他们特别震惊，他们说，啊，你们还真做手机啊？我说，这叫什么话，我们就是手机厂商，我们就做手机。他说哦，这我们倒是没想到，以为你就是讲个品牌故事，做个宣传推广，然后就卖了，卖明星机一样。他认为是这样的，我说我们不是，我们自己团队做。他说，那你们会做吗？后来我们说我们找的是钱晨，那圈里面都知道嘛，他们就说，误会了。
</p>
<p>
	我们要做这个的时候，软件产品、硬件产品应该是什么样子我心里全都有数。实际上没开始做的时候我脑子里这些画面全都已经在了。但是技术实现我们确实没有这些技术背景，原来我是一个英语培训行业的，做过媒体性质的网站，所以前期技术方面是非常非常困难的。到处去找人，也找错过人，然后过程中受了很多的罪。但万幸的是，软件的操作系统分两种，一种是基于安卓来修改的，这时候底层的架构都是由Google这样一个了不起的公司替你做完，你只是做一些表现型的东西，这会有一个好处就是即使你走错了也是能回来的。它不像大型平台的开发，你写一个安卓的操作系统出来，如果你找的不是一个地球上顶尖的架构工程师的话，如果路子走错了，你往上堆上五万人也解决不了。就像Windows做Vista，把地球上最好的工程师，堆了几千人，依然失败。所以软件行业的开发，如果架构做错了，主导的人全局意识差，再怎么堆人也是没有用的。我们比较幸运的是底层的技术是Google做好的，而且是完全成立的，在这个基础上我们做一些表面的东西话（就比较简单）。
</p>
<p>
	一个安卓操作系统的本质是什么呢，是十几个内建的App加一个底层结构再加一个framework，把它协调起来这么一个架构。
</p>
<p>
	在这个基础上去做的时候，我们比较幸运的是找了两个比较不靠谱的工程师去写某一个App，一般是两三个月是能完成一个基本的雏形，但是这两三个月如果做错了，你再找两三个人再写两三个月还是能做出来。所以我们中间有过很艰难的试错过程，但这个过程不会让你的公司垮掉。但是如果是需要两百个人同时协调工作，但是你的架构师和技术主管找错了，那这二百个人的努力全部废掉以后，这个世界是不会给你这个机会的。
</p>
<p>
	因为前期没有靠谱的主管，我们总共加起来，前期冤枉的时间至少有半年以上。
</p>
<p>
	所以我们走到今天用了两年，软件成熟度在发货以前才勉强达到一个稳定的水平，这完全是因为前期走错了路而付出的成本。但是这没有办法，因为你在这个行业里没有任何资源嘛。
</p>
<p>
	（ROM）那个时候也不一定都错了，的确有一部分是错了。但是最大的问题是你不能用6个人去完成那个工作，那时候至少也需要20、30人，我们因为当时找的技术主管认为6个人够，我们就用了6个人往前走，所以导致时间浪费了。我们浪费了宝贵的将近半年的时间，这个代价是特别惨重的，怎么估量都不过分。
</p>
<p>
	钱晨其实主管的是硬件，软件他也一起带，但是他主要管的还是硬件。软件部分是去年7月份我们从台湾的人保科技招了一个主管，是一个台湾人，叫StevenCai，我们把他招进来以后，他自己是不做开发的，但是他是带队做开发，管过100多人的团队。那个时候我们已经从科技公司里招了专门的人力资源过来，开始高速的扩张。我们搬到这个楼的时候是50个人，现在已经是260、270人的样子了。这是大概用10个月的时间实现的，所以这个时间还是特别快的。
</p>
<p>
	起初呢几个工程师跟我商量，只要凑齐两三个人就开始一个App，凑齐两三个就一个App，这样的分工，这时候还是群龙无首的局面。我刚刚讲，如果这个时候我们做的是一个大型的系统，用这个方式做是一定会黄的。好在安卓是基于人家的底层技术去做一个一个的拆分，所以这样的好处是某一个即使做错做死了，再来一遍也就是两三个月的时间，所以我们虽然也走了很多弯路，但也算是勉强跌跌撞撞地往前走。后来招了StevenCai以后，因为他带过大团队，把任务分工做得很科学，效率马上就上来了，然后基本上就走得比较稳健了。
</p>
<p>
	软硬件的头目都有了，这是到了2013年七八月的时候。
</p>
<p>
	实际上我们因为以设计风格而著称，我们所有的竞争对手都来挖过我们的几个设计总监，而且开的价钱都比我们高得多，这是我曾经担心的一件事情，我就跟他们开玩笑，为什么他们挖你都不走？他就说，哎呀，你也别太自恋了，我们也不是有多喜欢你。主要是那个公司根本就不注重设计，他出了钱，我做了出来，他也不识货，何必呢？他觉得到我们这里前途好，觉得会发财，另外我们老板懂设计，沟通起来愉快。如果是一个煤老板，说再加点红的，再加点绿的，你又不能不听老板，但老板是一个土老帽，也很疲劳。
</p>
<p>
	我们其中一个team的总监，是在加拿大读书回来的。在网上有很多设计稿，在英文的设计论坛上小有名气的，他刚来我这里的一个月，美国苹果的人力资源总监天天来信来电话挖他，因为他跟苹果有一个设计师风格比较像，那位设计师去创业了，他们就挖他去苹果。绝大多数的UI设计师都以去苹果打工为荣，所以我就担心他走了，那边天天打电话，打了两个礼拜，他也把别人给拒了，我还挺高兴的。我们团队超稳固，创业公司人员流动很厉害，我们这两年开除了一些不称职的，还有一些试用期不合格的，算人员流失走掉的话，可能迄今为止所有从0到260多人的过程中可能不到5个人吧。非常稳定。我知道一个软件工程师和一个BSP骨干工程师都是因为离开北京，家搬到外面去了。
</p>
<center>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201405/b84c7e75712f83870ea50458e09756a020140526085334.jpg" width="640" height="427" /> 
</center>
<p>
	产品价值，这个才是做事情的核心
</p>
<p>
	20，好东西人人爱
</p>
<p>
	21，不要相信理工男就对好东西没有感觉，跟所有人一样，他用过好东西之后就不会再用差的了
</p>
<p>
	22，不要低估小创新，100多个人性化的小创新完全可以决定价值
</p>
<p>
	23，核心的东西一定要自己做，能自己做的事，就不要用别人的
</p>
<p>
	24，我们不太依赖什么群众智慧之类的东西，他们给你想到的主意你来实现和完成的时候充其量是让他满意的，而不是带来惊喜的。
</p>
<p>
	25，精英团队如果做得足够好，是可以给群众带来惊喜的
</p>
<p>
	26，我们的核心竞争力有50%是软件交互。这个才会让用户对你产生粘性
</p>
<p>
	27，不要相信焦点小组，自己团队判断总是会比调研要准
</p>
<p>
	28，但有时候会出现偏差，乔布斯也会犯错，比如……噢，原来女人不在意手机很大，因为本来就已经很大了
</p>
<p>
	当然还是有很多的遗憾，但是基本上还是不错的。我们是经历过这样的阶段，因为工程师通常是对美感这些细腻的东西不是特别在意的，所以我们用了很长时间去说服工程师为什么我们要把那么多的时间精力用在那些动画上，你比如说你可能玩过时钟，要把动画这个东西调得这么优美和高级，我们把工程师逼得死去活来的。
</p>
<p>
	它是这样的，一个东西卖得贵还是便宜，很大程度上是心理感受，品牌也是心理感受。所以如果你把钟表这些细节做得非常优雅，非常酷，文艺青年或者在乎生活品质的人就会觉得这个东西很值，他用惯了这个东西再用别的东西就觉得不习惯，生活品质下降了。但是科学家或者理工男是不太在意这些的，可是完成和实现这些功能又需要这些人，所以在做的时候，他们特别不接受。他们说我们在上家公司也做过这样的时钟App，从来没有人花这么多时间去做这么不靠谱的动画，觉得我吃饱撑的，坚信我是脑袋有问题。然后我要花很多时间去哄他、说服他、骗他，等做到这个东西出来放在网上，一片叫好的时候，他们有点儿懵了。我们相当于是领着一帮性冷感的摄影师去拍一个床上镜头，而且是一个唯美的床上镜头，这个太他妈难了，所以当出来以后一片叫好的时候，他们也觉得好了，还在网上说，这个App是我写的。
</p>
<p>
	然后还有一个做这个的过程中，本来想在今年的演讲过程中探讨，但是由于时间的关系删掉了：到底有没有对美和艺术这些东西完全迟钝的人。其实还是有的，但是没有我们想象的那么多，很多我们误以为不在意美感的人，实际上当用过好东西再用差的时候就会不适应。
</p>
<p>
	我们通常认为理工男不在意这些，但实际上大部分理工男用过好东西再用差东西也是受不了的。
</p>
<p>
	（对锤子手机）不会失望的，只要用两个星期，你是完全回不去iPhone的。因为我们在人性化细节方面至少有100多项走在苹果前面。这些都是小创新，大家都说意义不大，但是量变导致质变在这里也依然是成立的。你做的小的，体贴的人性化设计，3、5、8个你可能说也就这样，但是如果做到100个以上，你用熟了再回去，你会发现苹果处处都是难用的。
</p>
<p>
	原则上核心应用都应该自己做，我们现在没自己做的都是没有条件自己去做。
</p>
<p>
	就是手机出厂的时候最基本的那17、18个东西，包括地图。为什么用高德呢，一是因为它优秀，技术成熟，二是我们要自己做的话，可能会做好几年。后期我们可能会自己做，数据还是可能会调用某一个应用商的，但是表现形式和交互我们可能会自己来处理。
</p>
<p>
	我们对所有第三方的App在交互上都是不满意的。
</p>
<p>
	（产品形态）差不多40%是我想的，这个行业也是特别依赖精英的，我们的产品总监朱萧木在所有关键的亮点feature里他想了20%-30%。
</p>
<p>
	这个团队有10来个人吧。现在我主要做的工作是，我要在他们做一个比较好的App里，加入1-3个亮点的设计，使这个App明显优于其它的。这个主要是我和朱萧木，以及产品团队的一两个骨干分子做的。当然也有来自其它成员的好的点子。我们骨子里是一个精英意识非常严重的团队，我们不太依赖什么群众智慧之类的东西。我们的App和群众产生互动的时候通常是补漏，我们想了一个很好的东西，但是有两个漏洞，发出去以后有人替我们发现了，补一些漏洞。我们加一点改动进去就会完善。我们依赖群众智慧是做这些东西，但是设计产品不是靠这些东西，因为他们给你想到的主意你来实现和完成的时候充其量是让他满意的，而不是带来惊喜的。
</p>
<p>
	（好奇心日报：庸众的品味堪忧？）也不是这么说。听起来价值观有问题，但本质上是这样的。小米的团队和苹果比的话，苹果是一个精英团队，做出超越群众期待的东西，小米是自己团队很不错，他解决了人机交互的一半基础，另外的一半靠群众智慧补足，最后的成品也是非常优秀的。但是他做到极致也就是让群众满意，而不是让群众惊喜。精英团队如果做得足够好，是可以给群众带来惊喜的。这是数量级上的差异。
</p>
<p>
	但是为什么小米这么成功？除了我们一半观察到的东西以外，他软件上的成功和易用性也是个特别巨大的东西。这个东西，其它厂商去抄小米的时候也是有严重门槛的。小米的性价比优势，在传统巨头和它比的时候是守住的，小米的互联网优势也是守住的，真正让小米和其它厂商竞争有巨大门槛的是软件。软件是一个特别巨大的问题，所有地球上的手机厂商，在小米之前只有苹果解决了这个问题，小米解决了这个问题的一大半，仍然有远远优于他的竞争对手。所以我们觉得，我们可以把软件做得像苹果一样，甚至更好。那这个是我们赖以成功的一半优势。别人在看发布会的时候看到的是我用感性的东西打动我的受众，这是用外观很漂亮的东西，我们在广告和拍摄上也花了很多心思提升了它的逼格，我们通过与国际一流的团队合作，实现更好的品质和话题效应等等。他们普遍看到了这个，但是我们的核心竞争力有50%是在软件交互上。这个才是让用户对你产品产生粘性，以至于没法更换平台的东西。如果你只是靠外观漂亮让群众一看就很受刺激，花钱买单，是换不来你继续买下一代的。
</p>
<p>
	钱晨在手机圈里是大佬级别，基本上我们要的硬件他是全能实现的。关键就是你怎么定义这个产品，所以我们花了很多时间去讨论产品，了解屏幕到底会有多大。我是讨厌大屏幕的，我就喜欢3.5寸的。但是用了稍大一点以后回去也有一点难受，人的心理接受是需要一个时间的。我一点一点也在适应这个过程，但是我仍然不喜欢5寸，也许我明年就喜欢5寸了，但是我现在仍然喜欢4.5寸的比例。我就坚持要做4.5寸的1080P。他们说，太冒险了，因为到今年这个时候我们所有竞争对手底线是5寸。
</p>
<p>
	大的手机，第一，我就觉得笨重，傻，用着不舒服，但是你用一阵换回小的也难受，憋屈。你有没有这个感受。我从iPhone4到iPhone5的时候完全没有快感，但是回去的时候会感觉憋屈。本来砍掉屏幕一段，少两个人名理论上是没什么效率问题的，但就觉得不舒服。还有看电子版的网页本来可以一屏刷一下，但是突然发现少了四五行字，就会感觉很奇怪。还有我们之前的一个误会是，乔布斯老说3.5寸是最佳单手比例，这个也是男人的自我中心。女人的手比男人普遍小一些，3.5寸的iPhone，从它诞生的第一天起，大量的女性是从单手操作的。只有男性才单手操作，并且认为这是黄金尺寸。所以周鸿祎还是谁，到大学搞调研的时候得到的结果看的目瞪口呆，就说我们以为屏幕变大，女人会比男人更反感，因为女人手比较小，但实际上大部分女生和女人是不介意手机变大的，是因为女人一直用双手，没有一个坎，对男人来讲，这是一个巨大的坎。这些东西坐在屋子里想是很容易误判的，但是大部分时候我们也不太依赖调研的，自己团队判断总是会比调研要准，但有时候确实会出偏差。那个报告我们看完之后傻了。
</p>
<p>
	粉丝有价值，但粉丝文化很低级
</p>
<p>
	29，不要相信粉丝文化，粉丝文化很低级
</p>
<p>
	30，当然不排斥由某个人群来带动消费潮流
</p>
<p>
	31，要关注那些带来生活品质改善有价值的事
</p>
<p>
	32，很多有钱人也会买很多粗糙的东西，很多穷人也会买很多精致的东西
</p>
<p>
	33，有粉丝意味着扩散的基础比较好，但是扩散开还是靠产品本身
</p>
<p>
	粉丝文化在我的产品里是完全不重要的。粉丝文化转换消费的时候必须单品极低，价格就50块，100块，所以你看粉丝经济带来的消费都是唱片、书、碟、电影票。可是韩庚卖手机――我在中国跟韩庚的名气比，屁都不是，我有600万粉丝，人家可能有6000万粉丝。而且他是娱乐明星，到哪一片尖叫、欢呼。可是为什么韩庚做手机卖得很差？粉丝文化一定是单品价格非常低的，即使迈克尔·杰克逊在他的巅峰时代卖手机也卖不了几部的。所以没有人会是因为追星会去买一个他做的、或者是他代言的品牌的3000块的东西，这是不可能的。韩庚在中国即使有6亿粉丝，因为这个理由去买他手机的不会超过6000人。我跟别人比有粉丝的唯一好处，是你作为一个新兴厂商，你的产品品牌传播是从零起步，还是从六百万起步。这个是有数量级和速度上的巨大差异的，仅此而已。支持我的那些人，很多都是自由派的知识分子，独立思考的人，他绝对不会因为盲目崇拜我买我的手机。韩庚卖手机，网上有多少新闻报道？没有多大动静，就几个娱乐版都没法头条，随便发一条就完了。我做这个手机在网上有这么大的动静，可是我跟韩庚的知名度完全比不了啊，他知名度比我高太多了。人们把我这个产品理解成一个粉丝文化打造的品牌，这是百分之百的误读。
</p>
<p>
	我们去接触这个群体（时尚精英、文化精英和媒体精英群体）的时候，发现他们大部分时候都是特别特别喜欢的这款手机的，唯一不喜欢的是有些女性嫌这个手机稍微有点沉。这个我们是知道的，因为我们做这个的时候，前后都是玻璃，如果我们把后背做成廉价的塑料，就会很轻。这个差别很大。
</p>
<p>
	人群不一样。小米的用户是不在意品质感受的人，不是说小米有什么不好，就跟老去吃麦当劳的人是不在意是否健康的。人群需求不一样，所以我们在外壳上花的钱是小米的好多倍。（开始演示）你看这个东西在工艺上这么完美的一个做工是经历不少功夫的，比如说这是我们的塑料，聚碳酸脂加了30%的玻璃纤维，做得特别坚固的壳体。做了这个粗砂的喷漆以后有接近金属的质感，摸起来也是不太像塑料，特别硬。这个东西在喷漆的过程中，一旦凝固下来，本来完美的90度一定会形成肥边现象（凸起来的弧度）。有很多人是不懂工艺的，但是在意生活品质。如果我的缝隙出现得比较大，或者有肥边现象，他会不舒服，他不知道工艺，不懂，但会觉得不舒服。这些人会因为这件事选择或不选择一个商品。但对小米的用户来讲，他根本不在乎这个，就看内置，CPU多高，内存多大，摄像头多少，性价比多好，这个没有任何的错，我的意思是，我们对生活的态度是不一样的，不必然跟收入有关，很多有钱人也会买很多粗糙的东西，很多穷人也会买很多精致的东西，我们对我们的人群在这方面是有非常苛刻的要求的。我们在这上面花了无数的心血。你知道从工程师实现上把光线和距离感应器放在一个洞里（指手机上方的横条）有多难，智能手机厂商，包括苹果我觉得是不合格的。这里有一点一横，再加一个点，不用受什么美学训练都知道是非常糟糕的，苹果都这么糟糕，你看看他的竞争对手有多丑。三星在上面打满了让人起鸡皮疙瘩的洞，乱打一气，三星的排列完全是工程驱动。工程师说，点在这里比较舒服，那设计师说好，就放那。
</p>
<p>
	（现在买手机的人）会有这样的支持者，但这样的情况不会特别多。它跟粉丝经济单价不能高是一个道理，因为支持我而买我产品的人不会特别多，但是有一个好处，是从他们扩散到周边的时候完全看产品好不好，比如说一个公司有6个人，其中有一个是我的铁杆支持者，然后你就买了我的手机。买完了发现不好，你也不好意思跟同事讲，你买完了你自己都不喜欢还有什么可讲的。你想的是，那就当我支持一回吧，不好用就算了，你不会买第二部，所以这样的话产品是走不下去的。如果你觉得好，跟身边的人来说，身边的人觉得好，也就会扩散。所以我的价值观和铁杆支持者在这方面的影响表现在，扩散的基础比较好，但是扩散开还是靠产品本身。
</p>
<p>
	所有时间投入到工作当中，反复确认真的是“所有”时间吗？
</p>
<p>
	34，不要怕开会，开会的问题在于沟通效率高
</p>
<p>
	35，不放过任何一个思考的机会，并把思考结果记下来
</p>
<p>
	这是我们软件团队每天都要做的事情。像全世界最快的抢拍功能，这些都是我们产品经理每天殚尽竭虑地每天去想的。
</p>
<p>
	我们产品会议有的时候会持续10个小时。大家都说开会很讨厌，看开什么会，产品会就很兴奋。除非我自己心境不对的时候，否则开产品会总是很愉快的。我不是每个产品会都参加，因为我还要忙管理工作和其它工作，所以我一般等产品经理们把一些主意都理得差不多了，我会要求他们用PPT把他们一页一页都摆出来，这样提高我去参加会议的沟通效率。所以他们会在PPT里把他们做的交互一步一步全摆出来。通常是这样，我们要有一个逻辑框架上的一致性，这是产品经理的基本功。把这个理顺了之后，单个功能是堆给产品经理去做的。他先出一个百分之七、八十的草稿出来，有时候会整个推翻，但大部分时候是基本成立的。在这个基础上，比如说你是负责日历的，你提出一个框架，另外七八个人探讨这个的时候就会挑毛病和加功能，砍功能、加功能、挑毛病，改善逻辑交互，这样一点点开，开到产品经理80%的时候就叫我去。我去的话会肯定一些，否决一些，再加上一些东西。到了这个东西第一次开完会之后，我会在相当长的一段时间里天天看，每天就去想这个东西。
</p>
<p>
	我大部分的好主意是在早上上厕所的时候，或者是洗澡的时候想出来的。比如说我想做一个防水的配件挂在墙上，因为我洗澡时间比别人长，我就喜欢想着事儿不停地冲热水，一般男的洗个澡5分钟，我洗个澡15-20分钟，冲热水能想出很多好东西。我希望墙上有一个蓝牙的配件，接到我的手机上，WiFi或者是蓝牙连接。因为我的卫生间和房间是连着的，所以蓝牙也是能穿透的，WiFi也是可以的。我就想，有什么好点子我就按一下墙上的防水的麦克，对它说几句话，它就会用语音传到这里生成一个录音文件，同时在便签里用语音识别技术重新生成一个文本。文本可能会因为有水流声出很多错，那也是基本改一改就能用了。我很希望有这么一个配件，但现在没顾上已经在研发了。上厕所的时候好办，你会拎着一个Pad或者手机上厕所，我大部分好主意都是在洗澡和上厕所的时候想出来的。一旦想到一个好主意，我就会一大早去上班，兴冲冲地去找他们，我说有这么一个想法，你们考虑一下可行性。会不会跟别的功能有逻辑冲突。不是说有点子就可以实施，他们会去想，想完了挑出几个毛病，也有推翻的时候。如果有工程难度很高的，就放到下一代产品里。也有很快就可以实现的，马上就可以放上去。这样的话，基本上早期的时候是每一个交互都是我带着队从零做起的，现在有一个相当不错的产品团队，他们会把前面工作都做好。
</p>
<center>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201405/f08d7fdb997642cb027a6c852b35bcc420140526085334.jpg" width="640" height="427" /> 
</center>
<p>
	一定要记住，找最好的合作伙伴
</p>
<p>
	36，VC是聪明人扎堆？跟任何一个群体一样，80%的投资人都是笨蛋
</p>
<p>
	37，“胆敢”跟富士康提各种要求
</p>
<p>
	38，有人欺负你，记下来，励志用，以后“挨个收拾”
</p>
<p>
	外界说做VC的圈子是聪明人扎堆的，这我百分之百不同意。跟我这辈子见过的任何一个群体一样，就是20%的精英带着80%往前走。我见的投资人大概80%都是笨蛋。如果他听不懂我这个Case的具体逻辑，我不认为是笨蛋。因为每个人接触的项目和他了解的世界是有局限性的。但是他甚至不知道这个世界是怎么运作的，这太愚蠢了，简直是智力问题。我们见过一家知名的VC，我给他讲了40分钟工业设计的重要性以及我们擅长这个，并且招来Ammunition这个事情，他听了40分钟之后，拿起手里的三星手机，看了半天自己的。问边上几个助手，他说，难道会有人为了手机的外观会买一款手机吗？我当时就崩溃了。两个助手很尴尬地笑了笑，他就很得意，转过头来跟我说，你看，没有人会因为外观设计去买一款手机。然后他说我们往下聊吧，我心想，我还跟你聊个屁，他妈就一弱智，不在意外观设计这件事没有任何错，但是至少要知道这个世界是怎么运作的。你看我永远穿的很随便很邋遢，一个运动裤，一年穿四季，但是我知道这个世界有多少人是在意服装的。我在意穿着跟我知道这个世界是怎么运作的是两个概念。绝大部分消费者买手机50%的动力就是外观，我们都是视觉动物。他还问手下这个问题，你预设了立场，你的手下怎么敢顶撞你呢？
</p>
<p>
	上一轮的投资的股东帮我们介绍了一个金融顾问，他领着我去见了50多家VC，用了50多天时间，并不是一天见一家，因为有些VC会谈到两轮甚至四轮，我作为一个产品经理，在公司做产品的时间至关重要，但是我大概整整50多天全脱产去见VC。就是元旦前后50天，后来拖了一个星期，满打满算是两个月的时间，绝大多数精力都浪费了。真的大部分都很笨，听不懂，20%聪明点的，能听懂我背后的逻辑，但是真正内部推动的时候也很艰难。我的Case到最后讨论的时候都会打架，特别激烈，一派认为绝对行，一派认为绝对不行。最后我们见过的VC实际上只有一家是投了的。这时候我就发现，你看我的短板是我搞不定那些搞投资的，我见过我的朋友拿着一个特别烂的项目把这些笨蛋说的纷纷投钱，然后赔掉。我自己去谈的投资人只有一家，那还是我上一家的股东介绍给金融顾问，金融顾问又给介绍的。等到这几家一投，好多傻逼又过来了，我们就不需要了，推掉了。我就发现这个圈子特别可笑，你觉得个个目光敏锐，看准一个Case，过去几年有个漂亮成绩，其实好多都是跟风。有些VC笨得好几年没主投过一个项目，都是跟投。他们老板跟一些知名的VC关系好，别人就带着他玩了，这样的话成绩居然也不错，但是你跟他谈完全是浪费时间。
</p>
<p>
	其它的老板只抓融资、抓人力资源、抓大战略，这两个月他们会觉得是自己的分内工作，但是我是产品经理型的老板，所以我特别心疼那两个月。但是我很幸运的是，从下一轮开始我再也不用给这些笨蛋讲故事了，对我来说是完全的大解脱。
</p>
<p>
	有些人就是不理我们，我们是小厂商，这是可以理解的。但不理跟不理是有区别的。我们有一些做供应链的去跟人家谈，然后被人恶心一通回来了，说你们行不行啊，会讲这种无理的话。听完了挺生气的。唐岩跟我说过，他之前创业的时候被很多VC羞辱过，然后他就记了一本小黑账，就想着这些人我以后要挨个收拾。后来他的创业就成功了，我问他，小黑账的人你准备什么时候收拾？他说，唉，事儿成了你哪有心情收拾那些人啊？但是在过程中记录一本小黑账是很有励志作用的。唐岩的小黑账已经销毁了，我的还在，可以给你打气。
</p>
<p>
	工业设计中国落后日本和西方太久了，UI设计和平面设计在中国这些年已经有很优秀的人才，这是一个很核心的原因。第二个原因是由于工业设计一年只做一款，所以你找一个外国的公司，中间的沟通成本是可以接受的。但是UI设计是每天改来改去的，再加上中国的UI设计和西方比差距很小，但是中国的ID设计，所以在起步的时候，我们就没想过找中国的任何一家工作室，瞄的都是世界最顶尖的。这是我们需要找到像Ammunition这样的公司的核心原因。
</p>
<p>
	我们的手机，特别是在白色机器上，都是完美的一点一横，白色手机要晚三个月，因为工艺要求更苛刻，工厂也都被折磨得死去活来。我们的手机外观从上下到左右都在正确的位置上，我们可能是有史以来最接近设计稿，和最终实现几乎没有差异的。这全是时间和钱堆出来的，特别特别艰难。他们摆的时候，很多手机在中框上不是偏上就是偏下，两个孔不是偏外就是偏内。我在发布会上不断秀那些渲染图的原因是我们在这上面花费的精力是难以置信的。我把USB孔做到了合适的位置，如果做得有偏差，就会很难看，就像一个人两个眼睛中间的缝特别大，所以从设计上是有一个黄金比例和位置的。所以完美地去实现一切就非常艰难，工程那边就会不断诉苦，说这个不能实现那个不能实现，最终我们都逼着他们实现了，这是我们把做结构的工程师逼得死去活来的过程，也是把富士康逼得死去活来的过程。很少有小企业，胆敢跟富士康提这个苛刻的要求，他只有接上百万的单子才会绞尽脑汁去实现那么难的技术。我们最终连哄带骗带求地让他们实现了。
</p>
<p>
	还有很多值得分享的艰难，教训，悲观时刻，和一些想不到的东西
</p>
<p>
	39，做好最悲观的打算
</p>
<p>
	40，不要做亏心事，想骗过几亿的人，这个是不可能的
</p>
<p>
	41，不管你觉得自己知识多高、多牛逼、多横，很多也都是运气成分
</p>
<p>
	我们做过最悲观的打算，要是一直解决不了技术的头，我们就做贴牌机，就是深圳OEM厂商产的那些贴牌机。
</p>
<p>
	贴牌机的话软件体验依然能够做得非常好，但是软硬件结合上就做不好了。另外硬件上的限制就挺多了，它是一个公版设计，公版设计你能对外面的壳做一些小改动。但是你不可能像现在一样两侧都有键，三个实体键，包括外观的对称。我们当时做过最坏的打算是要做OEM的贴牌的。
</p>
<p>
	我从英语培训时代一直走到今天，每次出现公关事件都处理得非常好的原因，他们简单地会理解成我处理公关危机的能力会比较强，其实技巧只是一小部分，一大半就是你没做亏心事。如果你做了亏心事，想骗过几亿的人，这个是不可能的。如果发的照片是真的出了错的话，最终会穿帮的，充其量是恶性还是中等恶性负面事件，技巧体现在这里。但是骨子里，我在网上跟人吵架从来不输，他们也会简单理解成吵架的技巧性很高。那只是皮毛，核心的原因是没有做理亏的事情。但你必须承认公关技巧也重要，因为有些人没做什么亏心事，但是就倒霉了。我知道日本有一个化妆品说是含铅还是含汞，就被打得劈头盖脸，后来我们看了很多详细的调研报告，发现他们没有做这些事。这些事情有些甚至都不是媒体黑它，是它纯倒霉。他一个人发了，大家跟着一发，再怎么都没用了，消费者恐慌了，买了又退了。
</p>
<p>
	是这样的，不管你觉得自己知识多高、多牛逼、多横，很多也都是运气成分。就说我们硬件的头儿吧，如果钱晨我没有说服话，我没有第二个钱晨可以选。我就只能做一个贴牌机。整个品质、格调会比现在下降一大截，但我认为生存不是问题。我只要卖一个贴牌机勉强活下来了，并且给圈内人造成了深刻印象，我再找一个硬件的领头人依然是有可能的，但会比现在艰难和缓慢很多。我最后谈妥了钱晨这件事，其实是有运气成分的。因为钱晨被我们打动的一部分东西在我们看来是完全不重要的。特别有意思，他一开始看我们做的东西确实跟其它厂商不一样，印象确实很深刻，就同意了。（开始演示）你看我们现在点一个App的话，在板块凹陷的同时再顶上来，起初设计师一点它，这是立体翻转打开的。但是那个带来了很多小bug，会让人感到很烦，所以我们把这个取消了，放到下一代才做。一开始我演示给大家看的时候，大家都觉得很炫，但是我用了大半年也就审美无感了。因为小bug很多，就选择下一代放，结果钱晨很激动，说我就是因为这个才同意来你这儿的。他虽然是工程师的头，但是有感性的一面。
</p>
<p>
	你看这里是有一个运气成分。融资也是这样的。起初在2011年底我打算转型做电子产品，结果所有朋友都反对，觉得操作难、资金高、供应链难、搞不定，建议我不要做。找了一圈，包括我的同行和朋友，我以前的投资人，都反对，所以我到哪都拿不到钱。这个接近三、四个月吧，我就决定不做了。所以我一边做英语培训，我在想下一个项目。这个时候我接了一个天使投资人建议我做的商业网站和一个项目，准备做这个了，等到准备落实的时候，因为考虑到我没有做过大型商业网站，所以我就找了我的朋友，陌陌科技的创始人唐岩，他是做过网易的总编的，所以我准备了两页纸去请教他。结果我们在咖啡厅聊了一晚上之后，下楼的时候我跟他说，我其实是想做手机的，他说，哎，那为什么不做手机，要不上去再聊聊？我把我的想法说完了之后，他说我觉得挺靠谱的。他问我需要多少钱，我说可能1000万美元才能起步，他说这个有点太大了，有困难。他问我，1000万美元一定要一步到位吗？我说不是，只要1000万人民币，团队就可以开工了。这个过程中，一个是我不断造势，另外一个是我们阶段性地拿出ROM产品，大家觉得好，就有可能即便资本市场不投，也有可能科技巨头投。解决钱的问题之后，我马上注册了公司，到去年3月27日发布了ROM，这个过程中，他帮我介绍了一些投资人。那个时候投资人就比较看好了。但是我可以从这里看出，我在搞定投资人这方面是很笨拙的，到了A轮的时候我依然搞不定投资者。紫辉基金是投过唐岩的，他们投资的陌陌科技是紫辉基金历史上最成功的投资了，他们对唐岩的意见很重视，有唐岩给我背书，才有紫辉基金给我投。当然紫辉基金的老板是喜欢数码产品的，他对我们也很感兴趣。我们上一轮的大股东和小股东都在帮我找钱，所以基本上是他们帮我搞定的，不是我搞定的。我搞不定投资人的。
</p>
<p>
	对未来要有清晰的规划，记得不用太在意对手
</p>
<p>
	42，不用太在意对手
</p>
<p>
	43，不要忘了初心，从“东半球最好用的智能手机”到做“全球最好用的手机”。
</p>
<p>
	我们希望用未来两到三年的时间积累足够的资金、技术和专利，第三条对杀出国门很重要。这个行业是专利流氓的天下，大家都在把一个没技术含量的东西注册成专利以后互相打来打去，特别恶劣的规则游戏，所以我们走出国门之前每天都在不停地注册专利，我们在跟中国最大的专利机构做专利申请。我们已经外人不知道的情况下跟德国电信什么的打起官司来了，这些东西一方面是注册做的准备，另一方面是赚了足够多的钱，在两三年以后可能会花几亿美元买一些有专利的，或者经营不善的小公司，买它就是为了专利。我们掌握了足够数量的核心专利之后，再杀到美国去，如果苹果要告我们，三星要告我们，我们也可以告他，互相侵犯。这样就可以上一个谈判桌谈，谈完了互相授权。但我跟那些流氓的区别是我们是保护性的，不会去主动去打，你不打我就行了。这是要花很多时间精力和钱去解决的，一旦解决了这个我完全不愁，到美国一样用英语开发布会，搞定美国观众。
</p>
<p>
	每一代版本升级都会有100多个新特性。你看我们的ROM发布会之后，转天MIUI就发布了两个一样的新特性，他们的团队很大，那些小特性说做就做了。当然我们的特性跟他们重复的也有很多，我是觉得你养着一个很聪明的团队坐在那里对着小屏幕殚尽竭虑地去想交互，想到一起的几率是挺高的。有人问，万一这些新特性他们全抄了怎么办？全抄了我也不怕，你看iPhone一直走到几天，全世界都是抄他们的。老乔活着的时候iPhone不断创新，你抄我的就抄我的，有什么？150个新特性你要把它抄全了，至少你也要一年的开发时间，那你一年抄完了，我150个新特性又都来了。我永远领先。现在苹果就没有继续创新了，老乔死这两年多一直在原地踏步，那就马上被赶超了。
</p>
<p>
	我们的团队坦率地讲，创新能力是过剩的，而技术实现能力是偏弱的，因为人手不够。但是前两天刚开完发布会，人力资源总监说，现在收到的简历品质已经完全不一样了。
</p>
<p>
	（好奇心日报：不用太在意对手？）我们什么时候会关注对手产品呢？学习、观摩、研究，这是一种情况。还有我们做一个产品的交互打不开僵局了，这个时候我们会把小米和苹果拿来看一下是怎么做的。大部分时候是能找到这样一个方向的，其它手机厂商看了也是白看，浪费时间。
</p>
<p>
	（好奇心日报：之后的竞争对手会是谁？）就是苹果。
</p>
<center>
	<img alt="" src="http://blog.0356sh.com/content/uploadfile/201405/7e9a20c7ee4892c242f16fb9526a3cd420140526085334.jpg" width="640" height="232" /> 
</center>
<p>
	来源：好奇心日报
</p>
<p>
	链接：http://qdaily.cn/display/articles/774
</p><div id="related_log" style="font-size:12px"><p><b>相关日志：</b></p><p><a href="http://blog.0356sh.com/china_live.html">当大家都在围观</a></p><p><a href="http://blog.0356sh.com/css_hack_iebug.html">前端中浏览器的兼容性和BUG问题的笔记</a></p></div>]]></description>
	<pubDate>Mon, 26 May 2014 08:48:45 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/laoluo.html</guid>

</item>
<item>
	<title>IIS7多域名绑定同一物理目录，设置不同默认文档的解决方案</title>
	<link>http://blog.0356sh.com/iis7-defaultdocument.html</link>
	<description><![CDATA[<p>
	前两天遇到了IIS7多域名绑定同一物理目录，设置不同的默认文档的问题，因为在一个物理目录下只有一个web.config，并且IIS7把默认文档设置写在这里，导致所有域名的默认文档设置共享，很多人对此束手无策，甚至有人说这是IIS7的bug。
</p>
<p>
	其实IIS7不会比IIS6落后的，这个问题也很好解决，下面是解决方案：
</p>
<p>
	比如我们把www.a.com和www.b.com两个域名都指向c:\wwwroot文件夹
</p>
<p>
	想把www.a.com的默认文档设为目录aaa下的index.htm，www.b.com的默认文档设为目录bbb下的index.htm
</p>
<p>
	1、新建两个站点，一个叫aaa（站点名字自己来起），指向c:\wwwroot文件夹，绑定域名www.a.com；另一个叫bbb，指向c:\wwwroot文件夹，绑定域名www.b.com
</p>
<p>
	2、进入%windir%\system32\inetsrv\config目录（%windir%即windows的安装目录，比如c:\windows）
</p>
<p>
	3、找到applicationHost.config文件，用文本编辑器打开
</p>
<p>
	4、在最后configuration节中加入如下语句
</p>
<p>
<pre class="brush: xml;auto-links: false;"> &lt;location path="aaa"&gt;
         &lt;system.webServer&gt;
            &lt;defaultDocument enabled="true"&gt;
               &lt;files&gt;     
                     &lt;clear/&gt;
                     &lt;add value="aaa/index.htm"/&gt;
               &lt;/files&gt;
            &lt;/defaultDocument&gt;
        &lt;/system.webServer&gt;
    &lt;/location&gt;
    &lt;location path="bbb"&gt;
         &lt;system.webServer&gt;
            &lt;defaultDocument enabled="true"&gt;
               &lt;files&gt;     
                     &lt;clear/&gt;
                     &lt;add value="bbb/index.htm"/&gt;
               &lt;/files&gt;
            &lt;/defaultDocument&gt;
        &lt;/system.webServer&gt;
    &lt;/location&gt;</pre>
</p>
	<p>
		只加需要特别指定默认文档的站点，有几个加几个，无需重启IIS。
	</p>
	<p>
		如以上方式不成功的话，那么可以先直接恢复站点默认的选项，恢复继承的，然后在去设置即可了！
	</p>]]></description>
	<pubDate>Sun, 18 May 2014 06:00:45 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/iis7-defaultdocument.html</guid>

</item>
<item>
	<title>大陆居民如何购买美股和港股</title>
	<link>http://blog.0356sh.com/buy-Scottrade-HKStocks.html</link>
	<description><![CDATA[<p>
	国内资金出海，最受关注的两个投资市场就是港股和美股。对于港股，很多投资者并不陌生，通过香港券商在国内的办事机构或者国内证券公司在香港的分支机构，投资者都可以办理开户，转帐汇款，然后通过交易软件或电话就可以进行买卖操作。那么个人境外投资美股，目前也并非鲜见，不少境外证券服务商都在中国提供了网上交易服务，我们来了解一下他们具体是怎么操作的。
</p>
<p>
	<strong>中国内地居民怎么来投资美股教程</strong>
</p>
<p>
	第一步：没有护照的话先办理一个护照。美股顾名思义是美国市场的股票，咱们内地居民的身份证不能作为相关的证明证件，所以需要办理一个护照。护照办理可以在你所在户籍地（去户籍所在地办理的话，最好通过网上先预约，这样就可以直接到市局公安局去办理，而不用经过村镇派出所——县公安局——市公安局这样繁琐的步骤），也可以在北京等你工作所在地办理，价格一般200多元，从申请到下发一般10来天左右。
</p>
<p>
	第二步：选择一个券商。在中国炒股需要券商，投资美股当然也需要找个靠谱的券商，美股券商大部分都有网站可以进行在线申请开户（注意：这里是申请开户，而不是在网上完成整个开户流程），可惜大部分网站都是英文的。所幸的是，近年来随着中国炒美股一族的逐渐壮大，也有一些券商是支持简体中文的，其中的佼佼者是第一理财FirstradeSecuritiesInc.（这里没有任何做广告的意思，我对比了所有的支持中文操作的美股券商，第一理财不管是交易佣金还是操作便捷方面，都是上乘之选）。然后在券商的网站进行账户申请，这个时候可以把在线聊天的窗口打开，对方会免费进行全程的中文的指导，来完成注册环节。
</p>
<p>
	第三步：给你选定的券商快递资料。很多人会诧异，为什么网上不把所有流程走完呢，还需要快递资料。这是因为快递的资料需要你的签字，而且美国法律规定W-8BEN表格这样的资料也得签字快递。按照券商的提示（不同券商需要的资料可能不一样），把资料快递给指定的地址。有人可能不会给美国发快递，也不知道价格如何，更不知道该选择哪个国际快递公司。按照我的经验，可以到淘宝网或者58同城，搜索联邦或者DHL留学这样的关键词，因为学生快递能便宜1倍左右，也就是能从300元便宜到100多元，而且这些快递公司在北京都有办事处会上门取件（当然，很多时候其实也是小的中介公司代理），会帮忙我们进行地址的填写。然后，大概3——7天不等的时间就可以送达目的的了。当然，不差钱的朋友可以选择全价的快递，一般从北京到纽约也就2天时间。
</p>
<p>
	第四步：给你的美股账户注资。万事俱备，只欠东风。当你把快递资料送出去的时候，你就可以使用国内的银行账户进行跨境汇款了。很多人去百度搜索如何给国外的银行账户打款时，得到的答案大部分是让你去银行柜台填写一个单子，然后进行汇款。但现在都已经是2014年了，大部分的商业银行都支持直接在网上银行跨境汇款，我选择的是中国工商银行的网上汇款（这里也没有任何做广告的意思，工行是常用的商业银行中，跨境汇款最方便手续费最便宜的，而我们经常夸赞的民生银行虽然服务好，但跨境汇款手续费太贵了，工行服务不好但手续费便宜），由于大家都知道的一些原因，现在中国境内公民给美国汇款，一年只有5万美元的额度，钱多的朋友可以和亲戚朋友多借几个身份证就可以了，如果个别土豪想汇款几百万到几千万美元，那么请到外汇管理局去申请吧。
</p>
<p>
	第五步：开始买进股票。这个步骤非常简单，前文提到的第一理财这样的券商支持中文，界面非常友好，总之这个环节小学三年级的小朋友都可以操作买卖股票了，苹果、谷歌、百度、Facebook等优质的股票在A股市场根本买不到，但在美股市场动动鼠标就完成了，而且美股市场没有T+1的限制，在一个小时内我曾经对单股多次进行买进卖出。值得一提的是，美股没卖没有“一股几手”的限制，也就是说你一次可以最少买1股，比如58同城，你花20几美元就可以投资这家企业了，成为58同城的小微股东了。相比之下，香港股市门槛就太高了，以腾讯为例，100股为一手，腾讯的股票单价是500港币左右，也就是说你要投资腾讯，最少得有5万港币。
</p>
<p>
	<strong>中国内地居民投资港股教程</strong>
</p>
<p>
	现在港股开户非常简单，首先办理一本港澳通行证，然后到招商银行开设两地一卡通，其中的香港帐号直接可以办理港股开户，开户商是招商证券香港分公司，资金安全有保证不说，转账汇款也很方便，
</p>
<p>
	关于如何开户有这样几个比较普遍的问题：内地居民可以开通港股账户吗？哪些机构可以开通？开户有没有什么门槛限制？开户是免费的吗？
</p>
<p>
	先来回答以上的问题：内地居民可以投资港股，几乎没有任何限制，很多证券机构为了吸引用户都可以免费开通，资金门槛和A股类似，几千元，几万元都可以玩。
</p>
<p>
	要想开通港股账户，简单来说分以下步骤：①身份证等资料的准备（包括身份证、银行卡、居住证证明三项，身份证和银行卡好说，很多人不明白什么是居住证明，居住证明可以是你的水电费单子、居委会证明、保险对账单子等，当然时间需要3个月内的）。②选择一个证券机构（一般来说，中国银行、招商银行等大型银行都在香港有分公司，这些银行有外汇业务。具体的做法是携带够资料后，去营业厅直接填写相关资料，这些都会有人引导。一般在一周左右可以通过申请，通过邮件、短信、电话等方式告知）。③汇款，开始操作。（到营业厅将人民币换成港币，将港币汇到你在该证券开立的港股账户上，就可以开始进行港股的买卖了）。
</p>]]></description>
	<pubDate>Tue, 06 May 2014 07:53:31 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/buy-Scottrade-HKStocks.html</guid>

</item>
<item>
	<title>努力工作就可以加薪？ too young too simple！</title>
	<link>http://blog.0356sh.com/work-raises.html</link>
	<description><![CDATA[<p>
	升职加薪真的离我们很远?据某机构对70家企业做的一项问卷调查显示，仅有2%的企业近三年员工工资涨幅在5%以下，而涨幅在10%以上的占到了59%。既然如此，为什么还有“涨薪的春天迟迟未到”之叹?问题到底出在哪儿?
</p>
<p>
	<strong>NO1你太普通了</strong>
</p>
<p>
	什么你都能干，但没有一样是你做得特别好的。可能你很认真，但是你真的太普通了。
</p>
<p>
	某求职网的薪资调查曾调查各种职务的薪资水准以及加薪速度，再将这些职务与企业求才数、求职者应聘数做对照，发现一个特别现象：企业求才数大于求职者应聘数时，即人才供不应求时，起薪会高，加薪速度也会快;相反的，求职者应聘数大于企业求才数，即人才供过于求时，起薪会低，加薪速度也会慢。
</p>
<p>
	就业市场太多像你这样的人才了，当你应聘的是人才供过于求的职位时，叙薪与调薪都不会让你满意。因此，你也许天天加班，配合公司做各项任务，但只要不具稀有性，薪水就不会调到让你觉得合理的地步。
</p>
<p>
	<strong>NO2“努力工作”已被职场“抛弃”</strong>
</p>
<p>
	人们常说“爱拼才会赢”，但是在职场，这句话并非百分之百正确。许多时候，工作太拚命，换来的不一定是升迁或加薪，反而是大减分，甚至让你丢了饭碗。
</p>
<p>
	别期望用“苦劳”赢取别人的肯定，通常的结果都是让人失望的。职场专栏作家法诺许·布洛克列出了必须破除的超时工作的三大迷思。
</p>
<p>
	<strong>◎“努力工作”是最该被丢弃的职场建议。</strong>真正有升迁机会的人，不会整天埋首于工作，他们会把时间拿来塑造“公司不能没有他”的形象。他们会跳脱自己的日常工作范围，了解公司的整体运作，观察关键人士并学习，找到志同道合的伙伴建立关系，扩大自己的影响力。
</p>
<p>
	<strong>◎超时工作并不会得到老板的肯定。</strong>老板只会对你更加不放心，担心你是否无法承担现在的工作责任，未来就更不可能将更重大的工作责任交到你手上。
</p>
<p>
	<strong>◎超时工作只会让你失去升迁机会。</strong>不要被工作牵着鼻子走，如果你无法从容应付现在的工作，就很难说服老板，把升迁机会留给你。当然，总会有紧急时刻，必须加班，赶在期限内完成工作，但不该变成常态。
</p>
<p>
	<strong>NO3职务影响你是否会被加薪</strong>
</p>
<p>
	人们往往喜欢随波逐流，认为凡是让人“扎堆儿”的都是好东西。但在职场中如果还报着这种心态，那么你离加薪会越来越远。
</p>
<p>
	一般人削尖脑袋，抢着挤进去的热门职务，它们的共通点是，不必具有专业门槛，也不需要特殊证照，穿戴干净漂亮，坐在办公室吹冷气，打着电脑做事情，变动性小，压力不大。比如文员、行政。这类工作规律性强，基本毫无变动，即使是有专长的人做久了，也会变成普通人才。
</p>
<p>
	相反，从事一些技术性、专业性较强的工作，例如业务员、会计师等职位，能凸显你的稀缺性，并且更容易看到你在工作中做出的突出成绩。这类人才受到老板仰赖，因为担心你异动或被对手挖角，就会主动帮你调薪。
</p>
<p>
	<strong>NO4“职场便利贴”无前途可言</strong>
</p>
<p>
	“职场便利贴”指的是工作上配合度极高、忙于处理例行性事务，但工作效果又时常被老板忽略，升职加薪都无望的小人物。
</p>
<p>
	一些职场新人由于资历浅、工作经验少，常常被要求承担各种各样的杂活。随着时间的推移，虽然逐渐对自己的工作界定有了更深的理解，但“来者不拒”也许已经变成一种应对风格，即使常常要“勉为其难”，也不愿說出“No”字而伤了和气。
</p>
<p>
	还有一种人可能是成长环境和个人性格使然，他们不喜欢与人发生冲突，信守“多一事不如少一事”的处事原则，因此不会拒绝别人提出的要求。
</p>
<p>
	这类型的人在工作中缺乏专注力，对自己的工作安排和计划不夠清晰，因而不能集中精力，高效地完成工作。此外，这类人一般不会思考自身的职场发展，没有较为明确的职业奋斗方向，更容易受他人和环境的影响。因此，一个连主见都没有的职场人，哪个领导会重用呢，更别提升职加薪了。
</p>
<p>
	<strong>NO5“是金子早晚会发光”阻你加薪路</strong>
</p>
<p>
	职场人自然希望工资越高越好，但公司和员工之间很难达到双赢。很多人认为，如果我做好自己的事情，提高了业绩，公司肯定会给我加薪。于是，报着“是金子早晚会发光”的心态，等待着公司的加薪。
</p>
<p>
	也许公司会给你加薪，但是，加薪的幅度不一定会满足你的期望，甚至加薪的时间也没有你期待的早。因此，要求加薪，要主动出击。
</p>
<p>
	但需要注意的是，在向公司提出加薪之前，应该就自己对公司的实际价值有一个正确的估计。要肯定自己不是因为业绩不佳而没有得到加薪的机会，想一想自己出色地完成了哪些项目，在哪些工作方面还能有所提高，以及在未来你还能为公司做出哪些贡献。
</p>
<p>
	要知道，工作上的成功是你获得加薪的基础，你必须要老板知道你是值得加薪的。而且必须是站在公司的角度想，如果公司认为你没有加薪的价值，而你还提出要求，那将会是件很悲剧的事情，如果公司裁人，肯定会“优先”考虑你。
</p><div id="related_log" style="font-size:12px"><p><b>相关日志：</b></p><p><a href="http://blog.0356sh.com/bupacuozhe.html">我什么都怕，唯一不怕的是挫折。</a></p><p><a href="http://blog.0356sh.com/hunrizi.html">周鸿祎：给那些仍旧在公司混日子的人</a></p><p><a href="http://blog.0356sh.com/wherework.html">毕业了去哪里工作，来自一位毕业多年北飘人的经验感悟</a></p><p><a href="http://blog.0356sh.com/fatherlove.html">宁财神：父爱如山</a></p><p><a href="http://blog.0356sh.com/goodxiashu.html">如何做好下属！省却不必要的麻烦</a></p></div>]]></description>
	<pubDate>Mon, 07 Apr 2014 02:32:01 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/work-raises.html</guid>

</item>
<item>
	<title>在php中用$_SERVER['REQUEST_URI']返回index.php</title>
	<link>http://blog.0356sh.com/REQUEST_URI-HTTP_X_REWRITE_URL.html</link>
	<description><![CDATA[<p>
	今天在迁移BLOG时，从Apache放到了IIS环境中，以前用$_SERVER['REQUEST_URI']来判断页面内容显示居然不能用了，结果echo了一下，在IIS服务器中$_SERVER['REQUEST_URI']一直返回的是index.php，后来找到$_SERVER['HTTP_X_REWRITE_URL'] 这个函数(好吧，我承认我水平不行-_-!)在IIS下面居然可以了。
</p>
<p>
	现在来具体研究下$_SERVER['HTTP_X_REWRITE_URL'] 和$_SERVER['REQUEST_URI']的区别<br />
首先要纠正一部分的观点就是IIS+PHP<del>不支持$_SERVER['REQUEST_URI']</del><br />
不是，不支持是PHP Version 版本的问题，php4.4.0不支持 $_SERVER['REQUEST_URI']，php5.2.5则增加了支持；
</p>
<p>
	$_SERVER['REQUEST_URI']常用来获当前URL<br />
例如：http://blog.0356sh.com/index.php?p=3<br />
$_SERVER['REQUEST_URI']获得的就是/index.php?p=3这部分<br />
。<br />
$_SERVER["HTTP_X_REWRITE_URL"]则在IIS下获得的是当前URL,在apache下的值为空
</p>
<p>
	例如：<br />
当前URL:http://blog.0356sh.com/<br />
IIS环境下：<br />
$_SERVER['REQUEST_URI'] = /index.php<br />
$_SERVER["HTTP_X_REWRITE_URL"] =/<br />
apache环境下：<br />
$_SERVER['REQUEST_URI'] = /<br />
$_SERVER["HTTP_X_REWRITE_URL"] =”
</p>
<p>
	当前URL：http://blog.0356sh.com/index.php<br />
IIS环境下：<br />
$_SERVER['REQUEST_URI'] = /index.php<br />
$_SERVER["HTTP_X_REWRITE_URL"] =/index.php<br />
apache环境下：<br />
$_SERVER['REQUEST_URI'] = /index.php<br />
$_SERVER["HTTP_X_REWRITE_URL"] =”
</p>
<p>
	而我需要的就是判断当前URL是否包含/index.php
</p>
<p>
	由此可见，IIS环境下首先域名重定向用$_SERVER["HTTP_X_REWRITE_URL"]代替$_SERVER['REQUEST_URI'],apache环境则相反。
</p><div id="related_log" style="font-size:12px"><p><b>相关日志：</b></p><p><a href="http://blog.0356sh.com/iis-gzip.html">IIS启用Gzip的方法及优缺点分析</a></p></div>]]></description>
	<pubDate>Sun, 30 Mar 2014 06:52:14 +0000</pubDate>
	<author>mazerain</author>
	<guid>http://blog.0356sh.com/REQUEST_URI-HTTP_X_REWRITE_URL.html</guid>

</item></channel>
</rss>