<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[99css]]></title><description><![CDATA[99css]]></description><link>https://www.99css.com/</link><image><url>https://www.99css.com/favicon.png</url><title>99css</title><link>https://www.99css.com/</link></image><generator>Ghost 3.21</generator><lastBuildDate>Mon, 08 Sep 2025 11:49:02 GMT</lastBuildDate><atom:link href="https://www.99css.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[读《上瘾》]]></title><description><![CDATA[<p>最近读了《上瘾：让用户养成使用习惯的四大产品逻辑》，还不错，摘录如下：</p><p>用户对某个产品形成使用习惯后，他们对该产品的依赖性就会增强，对价格的敏感度则会降低。</p><p>为了增加用户实施某个行为的可能性，设计人员在设计产品时，应该关注用户最缺乏什么。也就是说，要弄清楚是什么原因阻碍了用户完成这一活动。</p><p>当人们认为自己距离目标越来越近时，完成任务的动机会更强烈。</p><p>事实证明，人们对于社交酬赏以及同伴认同的渴望要远远大于对经济利益的期待。</p><p>利用上瘾模型询问自己关于如何让用户上瘾的五个基本问题：</p><p> 1. 用户真正需要什么？你的产品可以缓解什么样的痛苦？（内部触发）</p><p>2. 你靠什么吸引用户使用你的服务？（外部触发）</p><p> 3. 期待酬赏的时候，用户可采取的最简单的操作行为是什么？如何简化产品使该操作行为更轻松容易？（行动） </p><p>4. 用户是满足于所得酬赏，还是想要更多酬赏？（多变的酬赏） </p><p>5. 用户对你的产品做出了哪些“点滴投入”？这些投入是否有助于加载下一个触发并储存价值，使产品质量在使用过程中获得提升？（投入）</p><p>其酬赏方式：给读者塑造出了一个积极正面的形象，也就是所谓的“谦虚地吹牛”。</p><p>在其成立初期， Twitter发现，只要新用户关注的其他用户人数达到 30，即可达到一个临界点，极大地增加他们今后继续使用网站的可能性。</p>]]></description><link>https://www.99css.com/hooked-review/</link><guid isPermaLink="false">68bec16e871c3e00010ce683</guid><category><![CDATA[书评]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Thu, 21 May 2020 11:30:36 GMT</pubDate><content:encoded><![CDATA[<p>最近读了《上瘾：让用户养成使用习惯的四大产品逻辑》，还不错，摘录如下：</p><p>用户对某个产品形成使用习惯后，他们对该产品的依赖性就会增强，对价格的敏感度则会降低。</p><p>为了增加用户实施某个行为的可能性，设计人员在设计产品时，应该关注用户最缺乏什么。也就是说，要弄清楚是什么原因阻碍了用户完成这一活动。</p><p>当人们认为自己距离目标越来越近时，完成任务的动机会更强烈。</p><p>事实证明，人们对于社交酬赏以及同伴认同的渴望要远远大于对经济利益的期待。</p><p>利用上瘾模型询问自己关于如何让用户上瘾的五个基本问题：</p><p> 1. 用户真正需要什么？你的产品可以缓解什么样的痛苦？（内部触发）</p><p>2. 你靠什么吸引用户使用你的服务？（外部触发）</p><p> 3. 期待酬赏的时候，用户可采取的最简单的操作行为是什么？如何简化产品使该操作行为更轻松容易？（行动） </p><p>4. 用户是满足于所得酬赏，还是想要更多酬赏？（多变的酬赏） </p><p>5. 用户对你的产品做出了哪些“点滴投入”？这些投入是否有助于加载下一个触发并储存价值，使产品质量在使用过程中获得提升？（投入）</p><p>其酬赏方式：给读者塑造出了一个积极正面的形象，也就是所谓的“谦虚地吹牛”。</p><p>在其成立初期， Twitter发现，只要新用户关注的其他用户人数达到 30，即可达到一个临界点，极大地增加他们今后继续使用网站的可能性。</p><p>新技术刚出现的时候，人们往往对其持怀疑态度。所谓积习难改，很少有人具备先见之明，能看到创新技术最终将改变他们的日常生活。不过，采用新技术的用户们已经形成了一些新生行为模式，只要留心这些行为模式，企业家和设计者们就能找到利基使用案例，并将其发展为主流行为模式。</p><p>每当人与技术的互动方式发生巨大变化的时候，就会有大量的绝佳机会等待你去把握。界面更改令各种行为突然之间变得更加轻松容易。随后，当完成一项行为需要付出的努力越来越少时，该技术的应用量就会呈爆炸式激增。</p><p>更改界面会使用户行为发生变化，并带来商机。</p>]]></content:encoded></item><item><title><![CDATA[macOS 下将 U盘格式化为 ext2/3/4 格式]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>有时候我们需要把 U盘格式化为 ext2/3/4，比如挂载在路由器上，那么按照以下流程操作即可：</p>
<h2 id="homebrew">安装 Homebrew</h2>
<pre><code>/usr/bin/ruby -e &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&quot;
</code></pre>
<h2 id="e2fsprogs">安装 e2fsprogs</h2>
<pre><code>brew install e2fsprogs
</code></pre>
<h2 id>找到盘符</h2>
<p>插上 U盘，执行</p>
<pre><code>diskutil list
</code></pre>
<p>在执行结果中找到 U盘盘符，我这里是 <code>/dev/disk2s1</code></p>
<h2 id="uext234">卸载 U盘并将其格式化为 ext2/3/4 格式</h2>
<p>这里是格式化为 <code>ext3</code> 格式，</p>]]></description><link>https://www.99css.com/formatting-usb-disk-as-ext2-3-4-on-mac/</link><guid isPermaLink="false">68bec16e871c3e00010ce682</guid><category><![CDATA[Mac]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Fri, 30 Mar 2018 10:41:39 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>有时候我们需要把 U盘格式化为 ext2/3/4，比如挂载在路由器上，那么按照以下流程操作即可：</p>
<h2 id="homebrew">安装 Homebrew</h2>
<pre><code>/usr/bin/ruby -e &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&quot;
</code></pre>
<h2 id="e2fsprogs">安装 e2fsprogs</h2>
<pre><code>brew install e2fsprogs
</code></pre>
<h2 id>找到盘符</h2>
<p>插上 U盘，执行</p>
<pre><code>diskutil list
</code></pre>
<p>在执行结果中找到 U盘盘符，我这里是 <code>/dev/disk2s1</code></p>
<h2 id="uext234">卸载 U盘并将其格式化为 ext2/3/4 格式</h2>
<p>这里是格式化为 <code>ext3</code> 格式，把 <code>3</code> 改成 <code>2</code> 或 <code>4</code> 就是格式化为 <code>ext2</code> 或 <code>ext4</code></p>
<pre><code>diskutil unmountdisk /dev/disk2s1
sudo $(brew --prefix e2fsprogs)/sbin/mkfs.ext3 /dev/disk2s1
</code></pre>
<p>中间可能会有确认提示，按提示操作即可。格式化完成就能直接拔掉 U盘了</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[读《成为乔布斯》]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>这同样是一本关于乔布斯的传记，与《乔布斯传》不同的是，这本书得到了乔布斯生前同事好友的普遍赞誉，于是激起了我的兴趣。</p>
<p>如同本书的介绍所说：</p>
<blockquote>
<p>这不是关于成功的故事，而是关于成长的故事。</p>
</blockquote>
<p>如果说《乔布斯传》像一部 A片，那么《成为乔布斯》则是一部优秀的三级片，后者会让人有更多的情景感。</p>
<p>在《成为乔布斯》的阅读过程中，当读到乔布斯遭遇挫折时，会令人不想继续读下去，于是强忍着看个一两章就去做别的了；而读到乔布斯在皮克斯事业有所起色，乃至重新返回苹果时，令人欲罢不能，我直至把 iPad 读到完全用完电量而关机才停止。这中间我也会因为种种事件的描写而感动，这些是读《乔布斯传》所没有的体验。</p>
<p>故事情节是相似的，但给读者的体验不同，所以下面我也不再重复剧情了，摘录一些我个人比较喜欢的段落：</p>
<p>盖茨对世界最大的贡献不是微软，不是 MS-DOS 操作系统或 Windows 操作系统，不是上亿人都在使用的 Ofﬁce 办公软件，而是他的那份声明，他率先提出软件本身是有价值的。</p>
<p>皮克斯的电影基本都有一个套路：主人公因为高傲自大而陷入低谷，</p>]]></description><link>https://www.99css.com/becoming-steve-jobs-review/</link><guid isPermaLink="false">68bec16e871c3e00010ce681</guid><category><![CDATA[书评]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Sun, 27 Nov 2016 17:51:15 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>这同样是一本关于乔布斯的传记，与《乔布斯传》不同的是，这本书得到了乔布斯生前同事好友的普遍赞誉，于是激起了我的兴趣。</p>
<p>如同本书的介绍所说：</p>
<blockquote>
<p>这不是关于成功的故事，而是关于成长的故事。</p>
</blockquote>
<p>如果说《乔布斯传》像一部 A片，那么《成为乔布斯》则是一部优秀的三级片，后者会让人有更多的情景感。</p>
<p>在《成为乔布斯》的阅读过程中，当读到乔布斯遭遇挫折时，会令人不想继续读下去，于是强忍着看个一两章就去做别的了；而读到乔布斯在皮克斯事业有所起色，乃至重新返回苹果时，令人欲罢不能，我直至把 iPad 读到完全用完电量而关机才停止。这中间我也会因为种种事件的描写而感动，这些是读《乔布斯传》所没有的体验。</p>
<p>故事情节是相似的，但给读者的体验不同，所以下面我也不再重复剧情了，摘录一些我个人比较喜欢的段落：</p>
<p>盖茨对世界最大的贡献不是微软，不是 MS-DOS 操作系统或 Windows 操作系统，不是上亿人都在使用的 Ofﬁce 办公软件，而是他的那份声明，他率先提出软件本身是有价值的。</p>
<p>皮克斯的电影基本都有一个套路：主人公因为高傲自大而陷入低谷，但他［或她，《勇敢雄心》（Brave）的主人公是女性］逐渐通过善良、勇敢、智慧和创意克服了自身的弱点，得到救赎，最终成为更好的自己。（乔布斯的影射）</p>
<p>很多电脑产业的评论员对 iMac 不屑一顾，因为与竞争对手相比，iMac 在速度和功能上并没有优势，毕竟在过去的 10年里，速度和功能是个人电脑脱颖而出的唯一途径。评论员也不喜欢 iMac 的造型，他们觉得这台蓝色的圆胖机器更像是玩具而不是电脑。但他们都错了。 iMac 离经叛道的造型正传递出史蒂夫希望传递的信号，通过这个产品，苹果再一次巩固了「个人」电脑公司的定位。iMac 不断提醒人们，个人电脑是给「个人」使用的工具，应该突出强化个性。这就是为什么 iMac 大获成功，在问世后的 12个月里，卖出了 200万台，成为苹果公司多年来第一个大卖的产品。（注：这让我想起了前不久新推出的 MacBook Pro，配置提升并不大，是的，这很苹果）</p>
<p>在销售 Power Mac 时，史蒂夫又避免了一个以前犯过的错误。他并没有声称 Power Mac 是唯一一台适合所有企业使用的电脑，也没有扬言要把基于英特尔芯片和 Windows 操作系统的电脑全部逐出市场。相反，他将 Power Mac 的目标客户群锁定在随互联网兴起而创建的新兴小公司：工程、建筑、出版、广告、网页设计等。这些公司愿意容忍甚至非常欣赏「非同凡想」的理念，不像那些大公司，始终心怀恐惧地担忧着互联网可能带来的巨变。</p>
<p>苹果承诺推出消费者可以随心所欲地使用和掌控的软件与硬件，这就是 iTunes 中字母「i」的力量，掌控未来的不是微软，也不是苹果，而是消费者。</p>
<p>我之所以喜欢给史蒂夫干活儿，是因为我们可以一次又一次完成看似无法完成的事。-- 艾迪·库埃</p>
<p>iPod 收到赞誉最多的是随机播放功能，史蒂夫本以为对这个功能感兴趣的人不会很多。所谓的「随机播放」模式让 iPod 变成了个人收音机，只会播放自己下载过的音乐，但却无法预测播放顺序。如果用户的播放列表很长，随机模式能让用户忽然听到已经很久没听的歌曲，帮助用户重新发现音乐的乐趣。</p>
<p>工作是否有意义的唯一标准就是热爱。</p>
<p>我记得和他聊过对公司成功与否的定义，我们都同意成功与否的判断因素不是股价。那是不是销售的电脑数量呢？也不是，如果按销量来算的话，Windows 显然更成功。我们得出的结论是，成功与否主要看我们是否对自己设计、打造的产品感到自豪。我们是否感到自豪呢？我们当然感到自豪，销量数据说明了产品的成功，但我觉得对史蒂夫来说，销量更是一种证明，不是证明「我是对的」或者「我早就告诉你了」，而是验证了史蒂夫的人文信仰。正如史蒂夫所料，只要有足够多的选择，消费者的确能够分辨哪种产品质量更好、更有价值。这一点对苹果来说尤为重要，证明了我们生产的不再是被边缘化的小众产品，而是广受大众喜爱的产品。-- 乔纳森·伊夫</p>
<p>有些技术领袖认为，如果消费者不会使用某些设备，那是因为消费者太笨，但在史蒂夫看来，这些领袖过于傲慢，他说，「如果消费者不会使用那些设备，是因为我们太笨。」</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[读《程序员的呐喊》]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>忘记了这本书是由于什么原因进入了我的想读列表，这次为了凑单就把它买了。作者 Steve Yegge 是从业 20 载的知名程序员，曾供职于亚马逊、Google，经常边喝酒边写吐槽博客，写完发表后就伏案大睡，以致把本打算发表到内网的吐槽不小心发到了外网，从而引起了 Google PR 部门的问候，也算是一朵奇葩了。</p>
<p>这本书总体我给三星（总共五星），里面有不少作者对各种编程语言的看法，我本人没用过那么多也就看看热闹，关于 Google 那一章没有特别打动我的地方也略过，下面摘录一些对我有用的内容：</p>
<h2 id>编程语言里的宗教</h2>
<p>软件工程有自己的政治轴心，一端是保守派，另一端是自由派。他们的价值观、看中的东西、核心理念，乃至动机都是完全对立的。</p>
<p>一个人的软件政治观主要受两股力量支配：</p>
<ol>
<li>之前的编程经历</li>
<li>他们的老师、教授、导师、榜样，还有同事所拥有的软件政治观</li>
</ol>
<p>保守派通常具有清晰统一的价值观，而自由派则比较散漫，仅仅是为了对抗保守主义才联合在一起。</p>
<p>保守和谨慎、厌恶风险是同义词。本质上，保守主义就是风险管理。</p>
<p>自由派的观点常常和年轻、理想主义、</p>]]></description><link>https://www.99css.com/a-programmers-rantings-review/</link><guid isPermaLink="false">68bec16e871c3e00010ce67f</guid><category><![CDATA[书评]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Wed, 13 Jan 2016 16:21:37 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>忘记了这本书是由于什么原因进入了我的想读列表，这次为了凑单就把它买了。作者 Steve Yegge 是从业 20 载的知名程序员，曾供职于亚马逊、Google，经常边喝酒边写吐槽博客，写完发表后就伏案大睡，以致把本打算发表到内网的吐槽不小心发到了外网，从而引起了 Google PR 部门的问候，也算是一朵奇葩了。</p>
<p>这本书总体我给三星（总共五星），里面有不少作者对各种编程语言的看法，我本人没用过那么多也就看看热闹，关于 Google 那一章没有特别打动我的地方也略过，下面摘录一些对我有用的内容：</p>
<h2 id>编程语言里的宗教</h2>
<p>软件工程有自己的政治轴心，一端是保守派，另一端是自由派。他们的价值观、看中的东西、核心理念，乃至动机都是完全对立的。</p>
<p>一个人的软件政治观主要受两股力量支配：</p>
<ol>
<li>之前的编程经历</li>
<li>他们的老师、教授、导师、榜样，还有同事所拥有的软件政治观</li>
</ol>
<p>保守派通常具有清晰统一的价值观，而自由派则比较散漫，仅仅是为了对抗保守主义才联合在一起。</p>
<p>保守和谨慎、厌恶风险是同义词。本质上，保守主义就是风险管理。</p>
<p>自由派的观点常常和年轻、理想主义、天真无邪联系在一起。在软件行业，自由主义主要是为了以最快的速度开发出新功能，同时保证系统的灵活性。当然，保守派也是以此为目标，只不过做法很保守，灵活性和生产力仍然是动机，但不再是主要动机，安全、性能才是最重要的考量。</p>
<p>两派的根本分歧在于：到底在安全上下多大功夫。</p>
<p>保守派更看重：</p>
<ul>
<li>软件发布之前硬尽量修复所有 bug</li>
<li>程序员应回避错误</li>
<li>程序员回避新语法</li>
<li>代码必须通过编译器的安全检查</li>
<li>数据必须遵循事先定义好的格式</li>
<li>公共接口必须严格建模</li>
<li>不允许存在危险和有风险的后门</li>
<li>如果一个组件存在安全疑虑，那它不能发布</li>
<li>代码性能要好</li>
</ul>
<p>自由派：</p>
<ul>
<li>有 bug 没什么大不了，bug 无法避免</li>
<li>为了避免菜鸟犯错就立下一堆规矩，完全是头痛医头 脚痛医脚的做法</li>
<li>没必要让程序员远离新语法，只要有文档，有时间，自然能学会</li>
<li>代码要简练，检测工具无法理解不是把代码写的又臭又长的原因，而是要把检测工具做的更聪明</li>
<li>严格的数据定义会妨碍灵活性，数据未动，代码先行才是正确的做法</li>
<li>公共接口应尽可能简单</li>
<li>系统的灵活性决定了客户是否选择你，至于安全隐患，可以通过日志、监控、审核等手段缓解</li>
<li>企业要敢于冒险</li>
<li>过早优化是万恶之源</li>
</ul>
<p>一支和谐的团队最好由单一人群组成，免得双方不停发生理念冲突。这就像每个地方的驾驶风格都不同，霸道点没关系，大家都一样就行。</p>
<p>注：我和作者都属于自由派</p>
<h2 id>软件需要哲学家</h2>
<p>编程语言都是宗教。任何宗教都会有一位教皇，他是精神领袖，神的代言人，通常是语言设计者。</p>
<p>有权力的宗教组织会分权力层级，编程语言也不例外。离权力中心越近，等级越高。你觉得自己可以通过贡献技术和文档升级，实际这完全只取决于你有多少信徒和粉丝，你的言论有多少人听到而已。</p>
<p>要敢于挑战自己的信仰，质疑是好事。</p>
<h2 id="tldr">TL;DR</h2>
<p>TL;DR 是 Too Long; Didn't Read 的缩写，意为太长、懒得读。最后附上作者自己写的 TL;DR：</p>
<ul>
<li>软件开发的方式多种多样，不存在谁好谁坏。但是它们都互相看不起</li>
<li>好程序员之所以出色是因为熟能生巧</li>
<li>只要你愿意，随时可以学习新语言</li>
<li>如果你想要当经理，那你很可能不会是个好经理</li>
<li>Lisp 很难掌握，但它是唯一能让我继续快乐的语言</li>
<li>Emacs 很难掌握，但却是受益终生的投资</li>
<li>离开舒适区，时不时学点新东西</li>
<li>为自己写点东西，只有这样你才知道那是不是对的</li>
<li>多笑一点，这很健康，也让人感觉良好</li>
<li>记得自嘲，不过不要在公开场合大声自嘲，也不要忘了解释</li>
</ul>
<p>PS: 这篇文章是在 iPad mini 上的 Notes app 里打出来的，还算好用</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[读《必然》]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>首先吐槽一下，纸质书购买渠道被罗辑思维独家垄断，京东、亚马逊等商城都买不到，无法享受折扣，只能全价购买，当然送货速度也慢的一比。说到罗辑思维，2013 年底听过一次罗胖的现场演讲，演讲过程中大家都很冷静，演讲完后大家都挤上舞台找罗胖合影，舞台都被挤得变形下陷，还好没有塌，其场面不亚于明星见面会，而罗胖看起来也很享受其中，再加上越来越浓重的「传销」意味，就粉转路人了，节目还是照看，不过会冷静许多。</p>
<p>一般情况下，我都会优先购买电子书，纸质书一是不能调字体，二是太占地方比较麻烦，这次看豆瓣右侧没有各商城的购买链接，左侧也没有电子版的销售提示，以为没电子版就在罗辑思维下单了，等到收货后才发现多看有电子版，并且《失控+技术元素+必然》合集只卖不到15块（现已涨到80），只能说吃一堑...另外多看也是越做越差了，为了生存搞进来很多网文武侠书还能理解，连最基本的多设备同步书架都不行了；还有杂志的订阅按钮，点了也不会有更新了新一期自动下载，都不知道是产品脑残了还是开发压根没实现这个功能。</p>
<p>严归正传，《必然》是凯文·凯利的新书，也许是（KK）年纪大了，</p>]]></description><link>https://www.99css.com/the-inevitable-review/</link><guid isPermaLink="false">68bec16e871c3e00010ce679</guid><category><![CDATA[书评]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Wed, 06 Jan 2016 06:55:22 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>首先吐槽一下，纸质书购买渠道被罗辑思维独家垄断，京东、亚马逊等商城都买不到，无法享受折扣，只能全价购买，当然送货速度也慢的一比。说到罗辑思维，2013 年底听过一次罗胖的现场演讲，演讲过程中大家都很冷静，演讲完后大家都挤上舞台找罗胖合影，舞台都被挤得变形下陷，还好没有塌，其场面不亚于明星见面会，而罗胖看起来也很享受其中，再加上越来越浓重的「传销」意味，就粉转路人了，节目还是照看，不过会冷静许多。</p>
<p>一般情况下，我都会优先购买电子书，纸质书一是不能调字体，二是太占地方比较麻烦，这次看豆瓣右侧没有各商城的购买链接，左侧也没有电子版的销售提示，以为没电子版就在罗辑思维下单了，等到收货后才发现多看有电子版，并且《失控+技术元素+必然》合集只卖不到15块（现已涨到80），只能说吃一堑...另外多看也是越做越差了，为了生存搞进来很多网文武侠书还能理解，连最基本的多设备同步书架都不行了；还有杂志的订阅按钮，点了也不会有更新了新一期自动下载，都不知道是产品脑残了还是开发压根没实现这个功能。</p>
<p>严归正传，《必然》是凯文·凯利的新书，也许是（KK）年纪大了，这本书没有以前的那么精彩，大部分是老生常谈（也许是我这方面的文字看多了），负能量完毕，以下是正能量：</p>
<h2 id="3">3. 流动</h2>
<p>免费大行其道，怎么让用户掏钱呢？KK 列举了 8 项原生性特征：</p>
<ol>
<li>
<p>即时性（Immediacy）<br>
许多人会在首映式的时候前去电影院花大价钱看那些以后会通过下载和租赁方式变得免费，或者几乎免费的电影。从非常现实的角度来看，他们花钱购买的并不是电影（电影是“免费的”），而是即时看到最新的电影。</p>
</li>
<li>
<p>个性化（Personalization）<br>
个性化要求是创造者与消费者、艺术家与粉丝、生产者与用户之间的不断对话。它是一种典型的原生性，因为它可以交互，是一种对时间的消费。营销人员将这种情况称为“粘性”，因为在这种关系中，双方都对原生资产有所投入，同时也不愿意移情别恋，更不愿意从头再来。这种关系的紧密程度，是无法通过复制粘贴得到的。</p>
</li>
<li>
<p>解释性（Interpretation）<br>
有个老笑话是这么讲的：软件下载免费，用户手册一万美元。</p>
</li>
<li>
<p>可靠性（Authenticity）<br>
你或许能免费获得一个流行的软件应用，但即便你不需要看说明书，你也得考虑这个软件有没有缺陷、是不是恶意程序或者垃圾软件。这种情况下，你会很高兴地为可靠性付钱。这样，你在使用软件时就会自由自在，脑袋里不用为别的事情操心。</p>
</li>
<li>
<p>获取权（Accessibility）<br>
拥有往往是件烦人的事情。从某种程度上讲，iTunes通过云端提供的内容，就是在向你出售获取权。虽然可以从其他地方下载到免费版本，但你还是会为了方便地获取音乐而付费。你花钱购买的不是这些东西，而是简单获取的便利，以及不用再去维护的义务。</p>
</li>
<li>
<p>实体化（Embodiment）<br>
在实体化的最佳案例方面，没有什么能比得上具有切真实体的音乐现场演出。在这种情况里，音乐是免费的，实体演出却是昂贵的。</p>
</li>
</ol>
<p>图书是免费的，但亲身与作者交谈是昂贵的。现场演出巡演、TED现场演讲、电台现场节目，甚至在你面前表演厨艺的厨师，都能展现出那些本可能免费下载到的事物，其实体化付费片段所具有的威力和价值。</p>
<ol start="7">
<li>
<p>可赞助（patronage）<br>
从本质上讲，热心的受众和爱好者希望为创作者买单。爱好者们喜欢奖励，无论对方是艺术家、音乐家、作家、演员，还是其他创造欣赏价值的创造者，因为这能让爱好者们和倾慕的对象建立联系。但他们只在以下几种情况里才会买单：</p>
</li>
<li>
<p>支付方式必须超级简单；</p>
</li>
<li>
<p>支付金额必须合理；</p>
</li>
<li>
<p>可以看到支付后的收益；</p>
</li>
<li>
<p>花出去的钱必须让人感到能让创造者获益。</p>
</li>
<li>
<p>可寻性（Discoverability）<br>
当世界上的图书、歌曲、电影、应用和其他所有事情都以数百万计（其中大部分都是免费的）争夺你的注意力的时候，能被寻找到就具有了价值。而鉴于被创造出来的作品每天都以爆发性的数字增长，能被寻找到就更成了难能之事。爱好者们会用很多方法从百亿千亿的产品中发掘出有价值的作品。他们利用评论、评测和品牌（出版商、厂牌、工作室），而越来越多地则依赖其他爱好者和朋友来推荐好东西。他们也越来越希望为引导买单。</p>
</li>
</ol>
<p>据说《电视指南》赚到的钱，比它提供指南的美国三大电视台赚到的还要多。</p>
<p>你花钱购买的并不是复制品，而是能够找到想要物品的能力。</p>
<h2 id="5">5. 使用</h2>
<p>对事物的占有不再像曾经那样重要，而对事物的使用则比以往更加重要。</p>
<p>云端的一个核心优势在于它变得越来越大，我们的设备就变得越来越小巧轻薄。</p>
<h2 id="6">6. 共享</h2>
<p>每个成功的无政府体系中总会存在一个长老会组织。</p>
<p>蜂巢思维，大量的失控元素与少量自上而下的控制相结合，既愚笨，又足够聪明，可以胜任许多工作。虽然不能解决所有问题，但是是开始解决问题的最佳方式。</p>
<h2 id="10">10. 追踪</h2>
<p>当匿名变成常态时，系统必然失败。充斥匿名者的社群要么自行毁灭，要么从完全匿名变成伪匿名状态。</p>
<h2 id="11">11. 提问</h2>
<p>答案将变的廉价，而问题会更有价值。计算机是无用的，它们只能给你答案。</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[[观点] H5 是个好名字]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>好久没写文章了，以我的性格也并不想参与这些「口水战」，今天我决定挑战下自己，把水搅浑。</p>
<p>在国内，HTML5 被简称为 「H5」，这却引起了一些人的不满，他们绝大部分是开发人员。下面我们来看看简化的优缺点：</p>
<h2 id>优点</h2>
<ol>
<li>便于沟通</li>
</ol>
<p>首先，读起来顺口，而 H T M L 读完舌头都要打结了，你造一群人在会议室里影响唇枪舌战 PK 时这么口吃般的说话多影响气势不？</p>
<p>其次，方便与人交流，从 BOSS 到产品经理、PM、设计师，一提到「H5」，他们脑子里立马能浮现一打微信里的营销页面--没有版权的背景音乐、不知道什么时候能划到头的翻页（有时候你可以试试倒着划），你要知道以前跟他们讲明白前端、后端、PHP、数据库什么的是有多么困难！</p>
<ol start="2">
<li>有利于 HTML5 的普及</li>
</ol>
<p>想想看，等卖面膜的妹纸们都要搞「H5」营销了，乃们离脱单的日子也就不远了</p>
<h2 id>缺点</h2>]]></description><link>https://www.99css.com/why-h5-is-a-good-name/</link><guid isPermaLink="false">68bec16e871c3e00010ce67e</guid><category><![CDATA[HTML]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Tue, 07 Jul 2015 07:31:02 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>好久没写文章了，以我的性格也并不想参与这些「口水战」，今天我决定挑战下自己，把水搅浑。</p>
<p>在国内，HTML5 被简称为 「H5」，这却引起了一些人的不满，他们绝大部分是开发人员。下面我们来看看简化的优缺点：</p>
<h2 id>优点</h2>
<ol>
<li>便于沟通</li>
</ol>
<p>首先，读起来顺口，而 H T M L 读完舌头都要打结了，你造一群人在会议室里影响唇枪舌战 PK 时这么口吃般的说话多影响气势不？</p>
<p>其次，方便与人交流，从 BOSS 到产品经理、PM、设计师，一提到「H5」，他们脑子里立马能浮现一打微信里的营销页面--没有版权的背景音乐、不知道什么时候能划到头的翻页（有时候你可以试试倒着划），你要知道以前跟他们讲明白前端、后端、PHP、数据库什么的是有多么困难！</p>
<ol start="2">
<li>有利于 HTML5 的普及</li>
</ol>
<p>想想看，等卖面膜的妹纸们都要搞「H5」营销了，乃们离脱单的日子也就不远了</p>
<h2 id>缺点</h2>
<p>目前我想到的只有一个，会被一小撮开发人员鄙视，然并卵。为什么你能安心用着「然并卵」却在这里鄙视「H5」？</p>
<h2 id>鄙视的根源</h2>
<p>「H5」进入了他们的「鄙视链」，而「鄙视链」形成的原因是追求「优越感」，奥地利心理学家A·阿德勒认为：</p>
<blockquote>
<p>人的总目标是追求「优越性」，是要摆脱自卑感以求得到优越感。</p>
</blockquote>
<p>现在，知道我为什么写这篇文章了吧。</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[读《新经济，新规则》]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>这是《失控》作者凯文·凯利（简称 KK）于 1998 年出版的一本书，原名译作《网络经济的十种策略》，现在读起来依然震撼，本书没有《失控》那么晦涩难懂，推荐所有网络从业者阅读</p>
<p>下面是我的书摘（纸质书，纯手打）：</p>
<h2 id="1">1. 拥抱集群：去中心化的力量</h2>
<p>当大量功能有限的东西被连接起来的时候，奇迹就会发生</p>
<p>如果说技术成功的标准是让人们对它习以为常，那么最好的长期策略就是去开发那些最终会与我们的生活融为一体的产品和服务</p>
<p>网络经济的游戏规则就是，去发现那些曾经以为太小而被我们忽视的事物，让它们用最合适的方式去拥抱集群</p>
<h2 id="2">2. 回报递增：胜利连着胜利</h2>
<p>网络的价值等于n的平方</p>
<p>一步领先，步步领先</p>
<p>在工业经济中，成功往往会自我设限，它遵循回报递减的原理；在网络经济中，成功是自我增强的，它遵循的是回报递增的原理</p>
<p>垄断某一类产品远远比不上在遍布新技术的网络上寻找更多网络的商机</p>
<p>这些超级赢家会采取一种跨界的方式，当他们完全控制了网络的某一个层面，那么接下来进一步控制去控制其他层面就变得轻而易举了。当我们控制了语音通话的标准，我们就极有可能也会获得传真通信的标准</p>
<p>网络经济最糟糕的情况是赢家通吃（winner-take-all），最好的情况是赢家拿大头（</p>]]></description><link>https://www.99css.com/new-rules-for-the-new-economy/</link><guid isPermaLink="false">68bec16e871c3e00010ce67d</guid><category><![CDATA[书评]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Sat, 27 Jun 2015 16:25:01 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>这是《失控》作者凯文·凯利（简称 KK）于 1998 年出版的一本书，原名译作《网络经济的十种策略》，现在读起来依然震撼，本书没有《失控》那么晦涩难懂，推荐所有网络从业者阅读</p>
<p>下面是我的书摘（纸质书，纯手打）：</p>
<h2 id="1">1. 拥抱集群：去中心化的力量</h2>
<p>当大量功能有限的东西被连接起来的时候，奇迹就会发生</p>
<p>如果说技术成功的标准是让人们对它习以为常，那么最好的长期策略就是去开发那些最终会与我们的生活融为一体的产品和服务</p>
<p>网络经济的游戏规则就是，去发现那些曾经以为太小而被我们忽视的事物，让它们用最合适的方式去拥抱集群</p>
<h2 id="2">2. 回报递增：胜利连着胜利</h2>
<p>网络的价值等于n的平方</p>
<p>一步领先，步步领先</p>
<p>在工业经济中，成功往往会自我设限，它遵循回报递减的原理；在网络经济中，成功是自我增强的，它遵循的是回报递增的原理</p>
<p>垄断某一类产品远远比不上在遍布新技术的网络上寻找更多网络的商机</p>
<p>这些超级赢家会采取一种跨界的方式，当他们完全控制了网络的某一个层面，那么接下来进一步控制去控制其他层面就变得轻而易举了。当我们控制了语音通话的标准，我们就极有可能也会获得传真通信的标准</p>
<p>网络经济最糟糕的情况是赢家通吃（winner-take-all），最好的情况是赢家拿大头（winner-take-most）</p>
<p>受益于回报递增效应，最终生存并下来并垄断整个领域的公司不一定是两者之中更强的那个，只是更幸运的，或者更早进入市场的那一个</p>
<p>追求成为在一个领域中的第一或者最好的，有时有效，但并不是一直都这样。网络世界中竞争的结果并不单纯由竞争者的实力决定，而是由细节决定，甚至包括被正向反馈成倍放大的运气。竞争的命运往往是由路径决定的，一点微小的动作就会导致系统方向性的错误。最终命运不能单单由系统特殊的属性而决定</p>
<p>价值量随着其成员关系的激增而呈现指数级增加，并且这一价值量的增长情况，如同地心引力般源源不断地吸引着更多成员加入</p>
<p>工业时代，要预测一个企业与新事物的未来，只需预测其目前的发展趋势即可</p>
<p>预测电影票房唯一可信的依据是前一周的成绩。上一周票房越高，这周更可能有高票房。这是因为电影口碑好了，才会带来更多的收益。事实是唯一影响结果的变量是前一周的结果，意味电影行业是一个平衡“秩序”和“混乱”的复杂的自适应系统</p>
<h2 id="3">3. 普及，而非稀有：丰富产生的价值</h2>
<p>工业时代的饱和法则：数量的增加会降低事物的价值</p>
<p>在网络经济中，数量越多越充分，价值也越高</p>
<h2 id="4">4. 追随免费之道：唯有慷慨才能在网络中胜出</h2>
<p>不断接近于免费让人感觉好像不要钱</p>
<p>价格不断趋于免费，因此，网络经济里的最佳策略是先人一步推行低价</p>
<p>所有能被复制的东西，无论实体还是虚拟都遵守价格下降曲线，质量提高而价格下降</p>
<p>科技创造需求，然后提供供给</p>
<p>在富足的世界里，唯一稀有的资源是人类的注意力</p>
<p>推出“不完善”的半成品并不是降低成本的绝望表现；当客户比你聪明时，这是完善产品的最明智举动</p>
<p>“定额的”或“包月的”固定价格低价法是貌似免费的一种定价方法</p>
<p>次级市场才是市场。免费卖软件，高价卖说明书</p>
<h2 id="5">5. 优先发展网络：网络繁荣带来成员繁荣</h2>
<p>消费者要不停的做出决策和选择，这种麻烦会持续恶化。标准化这些选择能够帮助</p>
<p>新经济带来的乐趣是下一个版本几乎是免费的。不足之处是，即使出钱让他们升级到新版本，人们都懒得去做驾驭这些相互竞争的海量选择。这就是为什么今天网页上大部分的流行网站都是帮助整理归类，选择最佳网站的元搜索网站</p>
<p>人类擅长的事：处理无规律，不能预见的事情</p>
<p>网络经济所吸收的第一类工作是新世界才有的新型工作：黑客、企业策划、网络管理员和计量分析师。下一步则是吸收借助新工具才能更高效达成最初目标的职业：如房地产经纪人、科学家、保险精算师、批发商和任何需要在座椅上工作的职业。最后，网络经济吸收所有看起来不可能的剩余职业--屠夫、面包师、烛台制作者--直到整个经济都被联网的知识所包围</p>
<p>网络经济中三股伟大的趋势：浩瀚的全球化、知识代替质量、深入和无处不在的网络化</p>
<p>开放迎接网络效应：关系比技术质量更重要。伟大的网络参与者愿意放下自己的标准，采用其他人的标准来发挥网络效应的杠杆效应</p>
<p>最有价值的发明不是那些性能最优越的，而是那些在最广泛客户基础上性能最优越的（性能与普及兼优）</p>
<p>无论另一个标准有多么优越，它都不能替代一个根深蒂固的标准，比如英语</p>
<p>在一些最伟大的成功故事中，公司向前发展都是先掌握一个网络，再利用它根深蒂固的标准来改造一个已经存在的网络。这个过程叫做“内部转化”</p>
<h2 id="6">6. 不要在巅峰逗留：成功之后，回退</h2>
<p>我们所说的生态和谐并不是静止不动的完美，而是一个不断打破平衡又再平衡的过程</p>
<p>一代科技取得成功会产生一个副作用，企业的关注点会缩窄，对拥有新一代技术的竞争者视而不见。产品可能是完美的，但顾客群却越来越小</p>
<p>尽管一个产品可能在完美方面达到顶峰，但一个局外人可能通过改变规则移走整座山</p>
<h2 id="7">7. 从地点到空间：制造巨大的差异</h2>
<p>在价值链中，每个中间环节都会为产品增值</p>
<p>在网络经济中，中介至关重要。网络空间的包容特性--网站数量已经超过一百万--证明网络经济恰恰需要中介。网络技术不但不会遏制中介，反而会促进他们的生成。网络正是中介的摇篮</p>
<p>网络去哪，中介就会跟随到哪。而且，节点越多，中间人就越多</p>
<p>事物不是越做越大，就是趋于个人化</p>
<p>要想建一个购物中心，你首先需要一个社区。社区比商业重要</p>
<h2 id="8">8. 和谐不再，乱流涌现：找寻失衡状态中的持续性</h2>
<p>如果系统保持和谐与平衡状态，那么它最终会停滞或者死亡</p>
<p>运转良好的网络希望达到一个目标，那就是保持永恒的失衡状态</p>
<p>“好莱坞电影式临时工作制”：做电影的实质就是，把一群自由职业者凑到一起，洗几个胶卷，利用影片作为出卖附属权益的广告，插进录像带之后，小组就解散了</p>
<p>最优系统的特点：规矩少，临近混乱。在系统中，成员之间形成足够共识，他们互相约束以至于不会陷入无政府的状态。但是重逢、浪费、不完整信息以及低效率等弊病比比皆是</p>
<h2 id="9">9. 关系技术：始于技术，成于信任</h2>
<p>过去，在信息匮乏的情况下，构建一个复杂组织的最佳方法就是构建层级架构。排位制能够有效弥补即时信息的缺失。无需信息，你只需服从命令</p>
<p>网络游戏的唯一卖点：由一切体验它的人生产。这些热衷打造游戏世界的人可以被看作不计报酬的内容制作者；他们甚至会付钱给你以获得创造的机会。这个世界中充满了客户，他们被给予工具，可以按照自己挑剔的标准来打造他们所喜爱的产品</p>
<p>创造客户想要的，记住客户曾经的偏好，猜想客户的偏好，最终改变客户的偏好</p>
<p>现在的专家都出自最狂热的用户。世界上最懂你的产品与服务的人不一定是你的雇员。他们是你的客户，或者是一个爱好者部落</p>
<p>新技术始于技术，终于信任</p>
<p>技术能在多大程度上增强社交行为将成为衡量其价值的终极标准。依次来看，电话是好技术，电视不是；避孕药是好技术，核能不是</p>
<p>其他条件都相同的情况下，选择能够建立关系的技术。避免任何孤岛式的技术，不管那个孤岛看上去有多棒</p>
<p>把客户想象成员工（ATM）</p>
<p>未来企业的终极形态或许是“虚拟公司”，公司只是小型枢纽，关键业务都实现外包。但是也可能有另一种终极形态，那就是公司完全由客户组成</p>
<h2 id="10">10. 机遇优于效率：与其解决问题，不如需求机遇</h2>
<p>经济财富的源头始自机遇</p>
<p>每一个新发明都意味着更多新发明，而从那些新发明中又会创造出更多新的可能性（垃圾邮件为反垃圾邮件创造了机遇等）</p>
<p>技术不是万灵药。它无法根治社会的弊端与不公。技术只能为我们做一件事，但是一件惊人的事--技术为我们带来更多的机遇</p>
<p>在贝多芬还没有做在钢琴前的时候，世界上或许就有音乐天赋高出他两倍的人，只是当时世界上还没有键盘和管弦乐队。由于技术和知识未能使那些机遇向他敞开，我们永远也无法听到他的音乐。几个世纪之后，充分发展了的音乐技术，为贝多芬成为伟人提供了机遇</p>
<p>一直以来的理念都是，商业就意味着解决问题</p>
<p>创造更多新机遇，比起优化已有的东西，能够使你收货更多</p>
<p>在未来，把下一件事情做对，比把同一件事情做得更好，更有意义的多</p>
<p>浪费时间和低效是发现新事物的途径。网络鼓励低效</p>
<p>对于任何个人、组织或者国家而言，他们要做的关键决定，不在于如何通过重复一件事情来提高生产力，而在于如何协调机会的爆发，选择正确的事情来做</p>
<p>网络经济对人类的力量起了正确的作用。重复、续集、复印和自动化，都趋于免费和效率，而那些创新的、原始的和富有想象力的技术，它们没有一个能够产生效率，但是价值却在攀升</p>
<p>在网络经济中获得成功所需的品质，可以被归结为一点，就是--拥有冲进未知世界的能力</p>
<p>一个决定机会爆发的可能性的方法，就在于探索一个问题：人们能在这个机会的基础之上衍生多少新的技术和交易？</p>
<h2 id>结语 财富无处不在</h2>
<p>网络摒弃僵化封闭的结构、通用方案、中央集权和固定价值。网络提倡多元化、差异化、不明确、不完善、偶然和多重性。这些特性最容易导致混乱和有组织的网络犯罪，并且难以培养共同的价值观</p>
<p>由于网络经济的行政崇尚失衡、分散、不确定、动荡和相对主义，因此在网络的世界里，意义和价值就失去了根基。</p>
<p>由于当今价值和意义的缺失，技术将替代我们做出决定。想象一下技术需要的是什么，我们就可以想象出我们文化的未来之路</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[提交 App 到 App Store 时遇到 The App References Non-Public Selectors 警告]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>使用 Xcode 6.3.1 提交 App 到 App Store 时遇到如图所示错误</p>
<p><img src="http://res.cloudinary.com/for99css/image/upload/v1430641146/admob_slcx3g.png" alt></p>
<p>Google 来一个清除 <code>~/Library/Developer/Xcode/DerivedData</code> 目录的方法，没有用</p>
<p>利用错误提示里面的关键字 <code>setScreenName</code> 也搜索不到错误出处</p>
<p>排查了半天突然想到也许是 AdMob SDK 由 <code>7.1.0</code> 更新到新版本 <code>7.2.1</code> 所致</p>
<p>于是将 <code>podfile</code> 中的 AdMob 指定到上个版本</p>
<pre><code>pod 'Google-Mobile-Ads-SDK', '7.1.0'
</code></pre>
<p>再运行</p>
<pre><code>pod update
</code></pre>
<p>重新 Archive 后提交，</p>]]></description><link>https://www.99css.com/how-to-remove-the-app-references-non-public-selectors-warning/</link><guid isPermaLink="false">68bec16e871c3e00010ce67b</guid><category><![CDATA[AdMob]]></category><category><![CDATA[iOS]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Sun, 03 May 2015 08:41:35 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>使用 Xcode 6.3.1 提交 App 到 App Store 时遇到如图所示错误</p>
<p><img src="http://res.cloudinary.com/for99css/image/upload/v1430641146/admob_slcx3g.png" alt></p>
<p>Google 来一个清除 <code>~/Library/Developer/Xcode/DerivedData</code> 目录的方法，没有用</p>
<p>利用错误提示里面的关键字 <code>setScreenName</code> 也搜索不到错误出处</p>
<p>排查了半天突然想到也许是 AdMob SDK 由 <code>7.1.0</code> 更新到新版本 <code>7.2.1</code> 所致</p>
<p>于是将 <code>podfile</code> 中的 AdMob 指定到上个版本</p>
<pre><code>pod 'Google-Mobile-Ads-SDK', '7.1.0'
</code></pre>
<p>再运行</p>
<pre><code>pod update
</code></pre>
<p>重新 Archive 后提交，错误提示消除</p>
<p>== 注：AdMob SDK 7.2.2 已经修复这个问题 ==</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[善用 Ghost 的 Code Injection 功能]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Ghost 后台有一个 Code Injection 的功能，就是可以用我们自己的代码替换皮肤模板的 <code>{{ghost_head}}</code>  和 <code>{{ghost_foot}}</code> 变量</p>
<p>在默认皮肤中，<code>{{ghost_head}}</code> 位于 <code>&lt;head&gt;</code> 标签末尾，而 <code>{{ghost_foot}}</code> 位于 <code>&lt;body&gt;</code> 标签末尾</p>
<p>由于皮肤经常会升级，所以我们如果自定义了一些东西则每次都要手动修改一遍，非常麻烦，这时我们可以利用 Code Injection 功能来简化这些操作，详见以下代码及注释</p>
<p><code>{{ghost_head}}</code> 代码：</p>
<pre><code>&lt;!-- Nginx 反向代理 Google Fonts 以便国内访问，注意替换为你自己的域名，详见 http://www.</code></pre>]]></description><link>https://www.99css.com/code-injection-of-ghost/</link><guid isPermaLink="false">68bec16e871c3e00010ce67a</guid><category><![CDATA[Ghost]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Fri, 17 Apr 2015 07:11:33 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>Ghost 后台有一个 Code Injection 的功能，就是可以用我们自己的代码替换皮肤模板的 <code>{{ghost_head}}</code>  和 <code>{{ghost_foot}}</code> 变量</p>
<p>在默认皮肤中，<code>{{ghost_head}}</code> 位于 <code>&lt;head&gt;</code> 标签末尾，而 <code>{{ghost_foot}}</code> 位于 <code>&lt;body&gt;</code> 标签末尾</p>
<p>由于皮肤经常会升级，所以我们如果自定义了一些东西则每次都要手动修改一遍，非常麻烦，这时我们可以利用 Code Injection 功能来简化这些操作，详见以下代码及注释</p>
<p><code>{{ghost_head}}</code> 代码：</p>
<pre><code>&lt;!-- Nginx 反向代理 Google Fonts 以便国内访问，注意替换为你自己的域名，详见 http://www.99css.com/google-fonts-chinese-bug-in-safari/ --&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;//fonts.99css.com/css?family=Merriweather:300,700,700italic,300italic|Open+Sans:700,400&quot; /&gt;
&lt;!-- 底部搜索框样式 --&gt;
&lt;style&gt;
#search {text-align:center}
@media only screen and (max-width: 320px) {
    #search-field {width: 80%; margin-bottom: 20px}
}
&lt;/style&gt;
</code></pre>
<p><code>{{ghost_foot}}</code> 代码：</p>
<pre><code>&lt;script&gt;
    $(document).ready(function(){
        // 修复 Google Fonts 中文字体在 Safari 中的显示 Bug http://www.99css.com/google-fonts-chinese-bug-in-safari/
        $('html').attr('lang', 'zh-CN');
        //列表页底部加入搜索框
        $('.pagination:last').after('&lt;form id=&quot;search&quot; onsubmit=&quot;return search()&quot;&gt;&lt;input id=&quot;search-field&quot;&gt; &lt;button type=&quot;submit&quot;&gt;search&lt;/button&gt;&lt;/form&gt;');
        //去除不能访问的 Google Fonts
        $('link[rel=&quot;stylesheet&quot;]').each(function() {
            var href = $(this).attr('href');
            if (href.indexOf(&quot;//fonts.googleapis.com&quot;) == 0) {
                $(this).remove();
            }
        });
        //在文章页面加入 disqus 第三方评论代码
        $('.post-footer').append('&lt;div id=&quot;disqus_thread&quot;&gt;&lt;/div&gt;');
        if ($('.post-footer').length &gt; 0) {
            //注意：此处替换 99css 为你自己的 disqus shortname
            var disqus_shortname = '99css';
            (function() {
                var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
                dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
                (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
            })();
        }
    })
//搜索函数，注意替换 99css.com 为你自己的域名
function search() {
    var q = document.getElementById(&quot;search-field&quot;);
    if (q.value != &quot;&quot;) {
        var url = 'http://www.google.com/search?q=site:99css.com%20' + q.value;
        if (navigator.userAgent.indexOf('iPad') &gt; -1 || navigator.userAgent.indexOf('iPhone') &gt; -1 || navigator.userAgent.indexOf('iPhone') &gt; -1) {
            location.href = url;
        } else {
            window.open(url, &quot;_blank&quot;);
        }
        return false;
    } else {
        return false;
    }
}
&lt;/script&gt;
</code></pre>
<p>此外，<code>{{ghost_foot}}</code> 中还可以加入你自己的网站统计代码等等</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[[UserScript] 改善微信多图文章的阅读体验]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>微信公众账号的文章有个很不爽的地方是图片 lazy load，也就是说鼠标滚动到图片的位置时才会加载图片，阅读体验非常不好，至少会引起以下几个问题：</p>
<ul>
<li>Pocket 保存不到图片</li>
<li>给人感觉速度很慢，虽然用的 100M 光纤</li>
<li>图片加载前后引起的屏幕跳动比较明显</li>
</ul>
<p>有些图片比较多的文章还是比较适合在电脑上查看，于是就写了个脚本改进了一下电脑浏览器端的阅读体验，修复了两处体验：</p>
<ul>
<li>文章标题，默认显示的是公众号的名称，改为真正的文章标题，这样用浏览器扩展分享的时候就能取到正确的标题了。（这里我就不吐槽乃们页面里同一个 id 用了 3 次这种业余的做法了，，，</li>
<li>去除图片 lazy load</li>
</ul>
<p>使用方法如下：</p>
<ol>
<li><a href="http://www.google.cn/intl/zh-CN/chrome/browser/desktop/index.html">Chrome 浏览器</a>安装 <a href="https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo">Tampermonkey</a> 扩展</li>
<li><a href="https://github.com/ytzong/UserScripts/raw/master/preload-images-for-wechat.user.js">点此</a> 安装用户脚本 <a href="https://github.com/ytzong/UserScripts/raw/master/preload-images-for-wechat.user.js">Preload Images for WeChat</a></li>
<li>测试页面 <a href="http://mp.weixin.qq.com/s?__biz=MjM5MTQzNzU2NA==&amp;mid=203911146&amp;idx=3&amp;sn=2c8a2fdd1ea68c1d01887fbfb0fe7b23&amp;scene=2&amp;from=timeline&amp;isappinstalled=0#rd">http://mp.weixin.qq.com/s?__biz=MjM5MTQzNzU2NA==&amp;</a></li></ol>]]></description><link>https://www.99css.com/user-experience-improvement-for-wechat-articles/</link><guid isPermaLink="false">68bec16e871c3e00010ce678</guid><category><![CDATA[UserScript]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Mon, 02 Mar 2015 14:56:23 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>微信公众账号的文章有个很不爽的地方是图片 lazy load，也就是说鼠标滚动到图片的位置时才会加载图片，阅读体验非常不好，至少会引起以下几个问题：</p>
<ul>
<li>Pocket 保存不到图片</li>
<li>给人感觉速度很慢，虽然用的 100M 光纤</li>
<li>图片加载前后引起的屏幕跳动比较明显</li>
</ul>
<p>有些图片比较多的文章还是比较适合在电脑上查看，于是就写了个脚本改进了一下电脑浏览器端的阅读体验，修复了两处体验：</p>
<ul>
<li>文章标题，默认显示的是公众号的名称，改为真正的文章标题，这样用浏览器扩展分享的时候就能取到正确的标题了。（这里我就不吐槽乃们页面里同一个 id 用了 3 次这种业余的做法了，，，</li>
<li>去除图片 lazy load</li>
</ul>
<p>使用方法如下：</p>
<ol>
<li><a href="http://www.google.cn/intl/zh-CN/chrome/browser/desktop/index.html">Chrome 浏览器</a>安装 <a href="https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo">Tampermonkey</a> 扩展</li>
<li><a href="https://github.com/ytzong/UserScripts/raw/master/preload-images-for-wechat.user.js">点此</a> 安装用户脚本 <a href="https://github.com/ytzong/UserScripts/raw/master/preload-images-for-wechat.user.js">Preload Images for WeChat</a></li>
<li>测试页面 <a href="http://mp.weixin.qq.com/s?__biz=MjM5MTQzNzU2NA==&amp;mid=203911146&amp;idx=3&amp;sn=2c8a2fdd1ea68c1d01887fbfb0fe7b23&amp;scene=2&amp;from=timeline&amp;isappinstalled=0#rd">http://mp.weixin.qq.com/s?__biz=MjM5MTQzNzU2NA==&amp;mid=203911146&amp;idx=3&amp;sn=2c8a2fdd1ea68c1d01887fbfb0fe7b23&amp;scene=2&amp;from=timeline&amp;isappinstalled=0#rd</a></li>
</ol>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[AdMob 导致浅色状态栏失效]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>App 中引入了 AdMob 全屏广告，一般会在 AppDelegate 中会对其进行预加载，以便提高广告展示速度</p>
<p>但这会导致浅色状态栏 <code>UIStatusBarStyleLightContent</code> 不起作用，一直显示为黑色</p>
<p>通过设置 TARGETS -&gt; General -&gt; Deployment Info -&gt; Status Bar Style = Light 无法解决</p>
<p>经过反复尝试，解决方法如下：</p>
<p>1、第一个 UIViewController 中加入</p>
<pre><code>- (UIStatusBarStyle)preferredStatusBarStyle {
	return UIStatusBarStyleLightContent;
}
</code></pre>
<p>2、<code>Info.plist</code> 中添加值为 <code>No</code> 的字段 <code>View controller-based status bar appearance</code></p>]]></description><link>https://www.99css.com/how-to-change-uistatusbarstyle/</link><guid isPermaLink="false">68bec16e871c3e00010ce677</guid><category><![CDATA[AdMob]]></category><category><![CDATA[iOS]]></category><category><![CDATA[UIStatusBar]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Sun, 15 Feb 2015 15:46:33 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>App 中引入了 AdMob 全屏广告，一般会在 AppDelegate 中会对其进行预加载，以便提高广告展示速度</p>
<p>但这会导致浅色状态栏 <code>UIStatusBarStyleLightContent</code> 不起作用，一直显示为黑色</p>
<p>通过设置 TARGETS -&gt; General -&gt; Deployment Info -&gt; Status Bar Style = Light 无法解决</p>
<p>经过反复尝试，解决方法如下：</p>
<p>1、第一个 UIViewController 中加入</p>
<pre><code>- (UIStatusBarStyle)preferredStatusBarStyle {
	return UIStatusBarStyleLightContent;
}
</code></pre>
<p>2、<code>Info.plist</code> 中添加值为 <code>No</code> 的字段 <code>View controller-based status bar appearance</code></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Google Fonts 中文字体在 Safari 中的显示 Bug]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="nginxgooglefonts">Nginx 反向代理 Google Fonts 以便国内访问</h2>
<p><a href="https://github.com/TryGhost/Ghost">Ghost</a> 博客系统的默认皮肤使用了 Google Fonts，由于被墙，所以采用了 Nginx 反向代理的方法来让国内访问，fons.99css.com.conf 配置如下：</p>
<pre><code>upstream google {
    server fonts.googleapis.com:80;
}

upstream gstatic {
    server fonts.gstatic.com:80;
}

server {
    listen 80;

    server_name fonts.99css.com;
    valid_referers server_name *.99css.com 99css.com; # 限制引用的域名。如果你想要做公益服务，</code></pre>]]></description><link>https://www.99css.com/chinese-g-fonts-bug-in-safari/</link><guid isPermaLink="false">68bec16e871c3e00010ce676</guid><category><![CDATA[Bug]]></category><category><![CDATA[HTML]]></category><category><![CDATA[Ghost]]></category><category><![CDATA[Google Fonts]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Tue, 10 Feb 2015 05:24:24 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="nginxgooglefonts">Nginx 反向代理 Google Fonts 以便国内访问</h2>
<p><a href="https://github.com/TryGhost/Ghost">Ghost</a> 博客系统的默认皮肤使用了 Google Fonts，由于被墙，所以采用了 Nginx 反向代理的方法来让国内访问，fons.99css.com.conf 配置如下：</p>
<pre><code>upstream google {
    server fonts.googleapis.com:80;
}

upstream gstatic {
    server fonts.gstatic.com:80;
}

server {
    listen 80;

    server_name fonts.99css.com;
    valid_referers server_name *.99css.com 99css.com; # 限制引用的域名。如果你想要做公益服务，可以将此行和下方的#if ($invalid_referer) {...}去掉。
    if ($invalid_referer) {
        return 404;
    }

    location /css {
        sub_filter 'fonts.gstatic.com' 'fonts.99css.com';
        sub_filter_once off;
        sub_filter_types text/css;
        proxy_pass_header Server;
        proxy_set_header Host fonts.googleapis.com;
        proxy_set_header Accept-Encoding '';
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://google;

        expires 7d;
        add_header Pragma public;
        access_log off;
    }

    location / {
        proxy_pass_header Server;
        proxy_set_header Host fonts.gstatic.com;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://gstatic;
    }
}
</code></pre>
<p>之后头部调用时改为自己的域名即可</p>
<pre><code>&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;//fonts.99css.com/css?family=Merriweather:300,700,700italic,300italic|Open+Sans:700,400&quot; /&gt;
</code></pre>
<h2 id="bug">中文字体显示 Bug</h2>
<p>刚说完苹果的坏话，报应就来了，刚才<a href="https://www.99css.com/why-apple-software-sucks/">这篇文章</a>在 Safari 中不堪入目</p>
<p><img src="http://res.cloudinary.com/for99css/image/upload/v1423545060/safari-bug_rtbyep.png" alt></p>
<p>Blockquote 中的斜体中文像 SJ 后的丁丁一样，怎么重振雄风呢？</p>
<p>解决方法就是指定页面语言为中文</p>
<pre><code>&lt;html&gt;
</code></pre>
<p>改为</p>
<pre><code>&lt;html lang=&quot;zh-CN&quot;&gt;
</code></pre>
<p>在 Ghost 目录中，找到这个文件 <code>/content/themes/casper/defaults.hbs</code> 进行上述修改，之后重启 Ghost 即可，正常显示如下：<br>
<img src="http://res.cloudinary.com/for99css/image/upload/v1423545060/safari_kwi5hv.png" alt></p>
<p>参考链接：</p>
<ul>
<li><a href="https://hjc.im/google-fonts-reverse-proxy/">https://hjc.im/google-fonts-reverse-proxy/</a></li>
<li><a href="http://www.keakon.net/2010/12/02/%E8%A7%A3%E5%86%B3Opera%E5%92%8CSafari%E4%B8%8B%E9%9A%BE%E7%9C%8B%E7%9A%84%E4%B8%AD%E6%96%87%E6%98%BE%E7%A4%BA%E9%97%AE%E9%A2%98">http://www.keakon.net/2010/12/02/解决Opera和Safari下难看的中文显示问题</a></li>
</ul>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[为什么苹果的软件质量在下降？]]></title><description><![CDATA[<!--kg-card-begin: markdown--><blockquote>
<p>第一个最客观的原因，就是Jobs走了。他是一个苛刻到极致，追求完美的人。</p>
</blockquote>
<blockquote>
<p>第二，中国市场现在是爆炸式的扩张，以前也许只用考虑推特，脸书，领英，youtube 等。现在呢，为了迎合中国的上帝（还是最有分量的上帝）各种 新浪微博，腾讯微博，126，163，youku,土豆，各种CHINA feature 往里面塞，完了自己还看不懂，不知道为什么搜索栏要加入百度，不知道为什么要加入中国农历。很多美帝的工程师并不知道自己要加进去的功能在中国是怎么使用的，以至于姓跟名是反的，各种逻辑性的bug,步子跨的大会扯着蛋这句话是有道理的。期待越来越多的中国工程师加入 Apple,这需要一个过程。</p>
</blockquote>
<blockquote>
<p>第三，我们 QA 的人手严重不足，还要分散到 OS，iOS,以及各种其他的chinese feature function.就我2014年做过的，Siri , Maps, 词库，输入法等等等等，全部是为了</p></blockquote>]]></description><link>https://www.99css.com/why-apple-software-sucks/</link><guid isPermaLink="false">68bec16e871c3e00010ce675</guid><category><![CDATA[Apple]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Tue, 10 Feb 2015 04:24:10 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><blockquote>
<p>第一个最客观的原因，就是Jobs走了。他是一个苛刻到极致，追求完美的人。</p>
</blockquote>
<blockquote>
<p>第二，中国市场现在是爆炸式的扩张，以前也许只用考虑推特，脸书，领英，youtube 等。现在呢，为了迎合中国的上帝（还是最有分量的上帝）各种 新浪微博，腾讯微博，126，163，youku,土豆，各种CHINA feature 往里面塞，完了自己还看不懂，不知道为什么搜索栏要加入百度，不知道为什么要加入中国农历。很多美帝的工程师并不知道自己要加进去的功能在中国是怎么使用的，以至于姓跟名是反的，各种逻辑性的bug,步子跨的大会扯着蛋这句话是有道理的。期待越来越多的中国工程师加入 Apple,这需要一个过程。</p>
</blockquote>
<blockquote>
<p>第三，我们 QA 的人手严重不足，还要分散到 OS，iOS,以及各种其他的chinese feature function.就我2014年做过的，Siri , Maps, 词库，输入法等等等等，全部是为了 Chinese 新增的功能，这些以前从未有过的功能，在QA中很难把所有的BUG都一次性找出来，只能靠用户的反馈，很多bug，只有在实际使用中才可能碰到，我们模拟一次二次没问题可能就pass了，因为没有那么多的时间去关注，这也是Yosemite Bug 非常多的原因之一。时间紧，项目多，那自然QA质量就下去了，这点来说，QA 应该给用户道歉。</p>
</blockquote>
<blockquote>
<p>最后，任何一个新的尝试（例如 handoff）都是从无到有的过程，还请各位用户多点包容，多点谅解，多些建议。</p>
</blockquote>
<p>引自<a href="http://www.zhihu.com/question/28089347/answer/39345530">知乎</a>某匿名人士的回答，此人为苹果 QA）</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[如何快速编辑 Ghost Blog 的文章]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>对于习惯了 Wordpress 的 Blogger 来说，<a href="https://github.com/TryGhost/Ghost">Ghost</a> 有一个比较麻烦的地方是修改文章「不太方便」：</p>
<p>在 Wordpress 中，如果管理员是在登录态，那么浏览正文时顶部会出现编辑文章的链接，而 Ghost 博客则没有这个入口，并且后台加载文章列表是 Ajax 无限滚动的方式，再加上没有搜索功能，所以对旧文章的编辑则异常麻烦。</p>
<p>于是就在 Github 上提了个 <a href="https://github.com/TryGhost/Ghost/issues/4857">issue</a>，最终得到答案如下：</p>
<blockquote>
<p>Post: <a href="http://www.your-domain.com/post-name">http://www.your-domain.com/post-name</a><br>
Edit: <a href="http://www.your-domain.com/post-name/edit">http://www.your-domain.com/post-name/edit</a></p>
</blockquote>
<!--kg-card-end: markdown-->]]></description><link>https://www.99css.com/how-to-edit-posts-in-ghost/</link><guid isPermaLink="false">68bec16e871c3e00010ce673</guid><category><![CDATA[Ghost]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Tue, 27 Jan 2015 16:22:35 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>对于习惯了 Wordpress 的 Blogger 来说，<a href="https://github.com/TryGhost/Ghost">Ghost</a> 有一个比较麻烦的地方是修改文章「不太方便」：</p>
<p>在 Wordpress 中，如果管理员是在登录态，那么浏览正文时顶部会出现编辑文章的链接，而 Ghost 博客则没有这个入口，并且后台加载文章列表是 Ajax 无限滚动的方式，再加上没有搜索功能，所以对旧文章的编辑则异常麻烦。</p>
<p>于是就在 Github 上提了个 <a href="https://github.com/TryGhost/Ghost/issues/4857">issue</a>，最终得到答案如下：</p>
<blockquote>
<p>Post: <a href="http://www.your-domain.com/post-name">http://www.your-domain.com/post-name</a><br>
Edit: <a href="http://www.your-domain.com/post-name/edit">http://www.your-domain.com/post-name/edit</a></p>
</blockquote>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[卖光了？Linode 日本东京机房抢购方法]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><mark>最近有些朋友反应登陆 <a href="https://www.99css.com/go/ln">Linode</a> 后 Location 选项没有 Tokyo, JP，到 Account → Account Settings 中把 <code>Hypervisor</code> 的值改为 <code>Xen</code> 即可</mark></p>
<p>这段时间，<a href="https://www.99css.com/go/ln">Linode</a> 东京机房的 VPS 很难买到，越难买就会越想买（和雷总耍猴的原理相似），哪怕是屯着，于是就写了一个脚本来刷</p>
<h2 id="linodetokyojp">Linode Tokyo, JP 节点的优势</h2>
<ul>
<li>大牌运营商，不用担心跑路，口碑一流</li>
<li>连接大陆速度快，北美访问速度也不算慢</li>
<li>流量充足，最低套餐每月有 2TB 流量，建几个小网站加上看视频绰绰有余</li>
<li>按小时付费，用的不爽了删掉，费用可以留着日后用</li>
<li>拥有 iOS 客户端，iPhone/iPad 也能管理 <a href="https://itunes.apple.com/app/linode-manager/id352861751?mt=8">https://itunes.</a></li></ul>]]></description><link>https://www.99css.com/how-to-buy-linode-tokyo/</link><guid isPermaLink="false">68bec16e871c3e00010ce672</guid><category><![CDATA[VPS]]></category><category><![CDATA[Linode]]></category><category><![CDATA[UserScript]]></category><dc:creator><![CDATA[ytzong]]></dc:creator><pubDate>Mon, 26 Jan 2015 17:42:14 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><mark>最近有些朋友反应登陆 <a href="https://www.99css.com/go/ln">Linode</a> 后 Location 选项没有 Tokyo, JP，到 Account → Account Settings 中把 <code>Hypervisor</code> 的值改为 <code>Xen</code> 即可</mark></p>
<p>这段时间，<a href="https://www.99css.com/go/ln">Linode</a> 东京机房的 VPS 很难买到，越难买就会越想买（和雷总耍猴的原理相似），哪怕是屯着，于是就写了一个脚本来刷</p>
<h2 id="linodetokyojp">Linode Tokyo, JP 节点的优势</h2>
<ul>
<li>大牌运营商，不用担心跑路，口碑一流</li>
<li>连接大陆速度快，北美访问速度也不算慢</li>
<li>流量充足，最低套餐每月有 2TB 流量，建几个小网站加上看视频绰绰有余</li>
<li>按小时付费，用的不爽了删掉，费用可以留着日后用</li>
<li>拥有 iOS 客户端，iPhone/iPad 也能管理 <a href="https://itunes.apple.com/app/linode-manager/id352861751?mt=8">https://itunes.apple.com/app/linode-manager/id352861751?mt=8</a></li>
<li>日本 IP，可以访问某些限制日本访问的网站，测试站点🔞 <a href="http://www.dmm.co.jp/">http://www.dmm.co.jp/</a></li>
</ul>
<h2 id="linodetokyojp">Linode Tokyo, JP 购买脚本</h2>
<ol>
<li>首先，要<a href="https://www.99css.com/go/ln">注册一个 Linode 账号</a></li>
<li><a href="http://www.google.cn/intl/zh-CN/chrome/browser/desktop/index.html">Chrome 浏览器</a>安装 <a href="https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo">Tampermonkey</a> 扩展</li>
<li><a href="https://github.com/ytzong/UserScripts/raw/master/buy-linode-tokyo.user.js">点此</a> 安装用户脚本 <a href="https://github.com/ytzong/UserScripts/raw/master/buy-linode-tokyo.user.js">Buy Linode Tokyo</a></li>
<li>登陆 <a href="https://www.99css.com/go/ln">Linode</a> 后进入这个页面 <a href="https://manager.linode.com/linodes/add">https://manager.linode.com/linodes/add</a> ，脚本就会自动刷新直到购买到为止，最终停留在 Dashboard 页面，注：默认为 <strong>Tokyo, JP 节点的 Linode 1024 方案</strong>，如果要购买其他方案，请自行修改脚本</li>
</ol>
<p>经测试，一般几分钟内即可刷到，如果很久都刷不到，或者触发这个错误：</p>
<blockquote>
<h3 id="accessviolation">Access violation</h3>
</blockquote>
<p>I'm sorry, but you've triggered our Cross-Site Request Forgery (CSRF) prevention measure.</p>
<p>建议过几个小时再试一下，抢到的几率还是蛮大的</p>
<h2 id="vps">检查 VPS 是否正常</h2>
<p>首先，好不容易刷到的 <a href="https://www.99css.com/go/ln">Linode</a> 东京节点 IP 很大的几率是被墙过的；其次，VPS 创建过程中会遇到无法创建磁盘等错误，导致无法启动系统。这个时候就赶快 Revome 掉重新刷。</p>
<p>那么，如果检测呢？</p>
<ol>
<li>上一步买到后会进入 Linode Manager 页面 <a href="https://manager.linode.com/linodes">https://manager.linode.com/linodes</a>，这里是产品列表，点击右侧 Options 列中的 Dashboard 进入管理面板，中间有一栏是 IP 地址，后面第 4 步会用到</li>
<li>点击 Rebuild 选择操作系统、设置 root 密码等</li>
<li>点击 <strong>Boot</strong> 按钮开机，这点很重要，切记</li>
<li>等待下面 Host Job Queue 中所有的操作都 Success（如果中途出现不能创建磁盘等错误，回到第一步点 Options 列中的 Remove，删掉重买，重复上述步骤）</li>
<li>打开终端（Mac）或 CMD (Windows) 输入</li>
</ol>
<p><code>ping xxx.xxx.xxx.xxx</code></p>
<p>进行验证，其中 <code>xxx.xxx.xxx.xxx</code> 替换为机子的 IP，如果提示超时之类错误，说明 IP 被墙了，这时回到第一步点 Options 列中的 Remove 吧，删掉重买，重复上述步骤，直到买到 IP 能 ping 通的为止</p>
<p>注：每次建立及删除会花费 0.02 刀（约合人民币 0.12 元）</p>
<h2 id="onemorething">One more thing...</h2>
<p><a href="https://www.99css.com/go/ln">Linode</a> 有篇很好的官方文档 <a href="https://www.linode.com/docs/websites/hosting-a-website/">Hosting a Website</a>，中间介绍了一些比较实用的建站姿势，比如 PHP、MYSQL 优化之类，可以顺便瞧瞧</p>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>