32 | <% } %>
33 | <% } %>
--------------------------------------------------------------------------------
/themes/casper/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Yu-Zhi Chen
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | This software is licensed under the MIT License.
2 |
3 | Copyright(c) iojs/iojs-tw and other contributors.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/themes/casper/layout/casper/index.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 | <% page.posts.each(function(post) { %>
4 |
5 |
6 | <%- partial('post/meta', {post: post}) %>
7 |
').appendTo(this.wrap);
62 |
63 | //Load each thumbnail
64 | $.each(obj.group, function (i) {
65 | var el = obj.group[ i ],
66 | href = thumbSource( el );
67 |
68 | if (!href) {
69 | return;
70 | }
71 |
72 | $("").load(function () {
73 | var width = this.width,
74 | height = this.height,
75 | widthRatio, heightRatio, parent;
76 |
77 | if (!that.list || !width || !height) {
78 | return;
79 | }
80 |
81 | //Calculate thumbnail width/height and center it
82 | widthRatio = width / thumbWidth;
83 | heightRatio = height / thumbHeight;
84 |
85 | parent = that.list.children().eq(i).find('a');
86 |
87 | if (widthRatio >= 1 && heightRatio >= 1) {
88 | if (widthRatio > heightRatio) {
89 | width = Math.floor(width / heightRatio);
90 | height = thumbHeight;
91 |
92 | } else {
93 | width = thumbWidth;
94 | height = Math.floor(height / widthRatio);
95 | }
96 | }
97 |
98 | $(this).css({
99 | width : width,
100 | height : height,
101 | top : Math.floor(thumbHeight / 2 - height / 2),
102 | left : Math.floor(thumbWidth / 2 - width / 2)
103 | });
104 |
105 | parent.width(thumbWidth).height(thumbHeight);
106 |
107 | $(this).hide().appendTo(parent).fadeIn(300);
108 |
109 | })
110 | .attr('src', href)
111 | .attr('title', el.title);
112 | });
113 |
114 | //Set initial width
115 | this.width = this.list.children().eq(0).outerWidth(true);
116 |
117 | this.list.width(this.width * (obj.group.length + 1)).css('left', Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5)));
118 | },
119 |
120 | beforeLoad: function (opts, obj) {
121 | //Remove self if gallery do not have at least two items
122 | if (obj.group.length < 2) {
123 | obj.helpers.thumbs = false;
124 |
125 | return;
126 | }
127 |
128 | //Increase bottom margin to give space for thumbs
129 | obj.margin[ opts.position === 'top' ? 0 : 2 ] += ((opts.height) + 15);
130 | },
131 |
132 | afterShow: function (opts, obj) {
133 | //Check if exists and create or update list
134 | if (this.list) {
135 | this.onUpdate(opts, obj);
136 |
137 | } else {
138 | this.init(opts, obj);
139 | }
140 |
141 | //Set active element
142 | this.list.children().removeClass('active').eq(obj.index).addClass('active');
143 | },
144 |
145 | //Center list
146 | onUpdate: function (opts, obj) {
147 | if (this.list) {
148 | this.list.stop(true).animate({
149 | 'left': Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5))
150 | }, 150);
151 | }
152 | },
153 |
154 | beforeClose: function () {
155 | if (this.wrap) {
156 | this.wrap.remove();
157 | }
158 |
159 | this.wrap = null;
160 | this.list = null;
161 | this.width = 0;
162 | }
163 | }
164 |
165 | }(jQuery));
--------------------------------------------------------------------------------
/source/_posts/2015-02-13-weekly.md:
--------------------------------------------------------------------------------
1 | title: io.js 週報 - 2015.02.13
2 | date: 2015-02-14 02:00:00
3 | tags:
4 | categories: iojs 週報
5 | ---
6 |
7 | 29 個語系本地化,1.2.0 釋出 .. 等等。
8 |
9 | ## io.js 已經支援...
10 |
11 | * [Postmark](http://blog.postmarkapp.com/post/110829734198/its-official-were-getting-cozy-with-node-js)
12 | * [node-serialport](https://github.com/voodootikigod/node-serialport/issues/439)
13 | * [Microsoft Azure](http://azure.microsoft.com/en-us/documentation/articles/web-sites-nodejs-iojs/)
14 |
15 | ## io.js 在 Github 的 star 數量已經突破 10,000
16 |
17 | io.js 於 2/13 在 Github 上已經到達 10,000 stars 的目標。若非 JavaScript 背後這個令人驚豔的社群支持,我們是不可能能夠有如此的成績,感謝大家!
18 |
19 |
20 |
21 | ## io.js 1.2.0 釋出
22 |
23 | * **stream:** [簡化的 stream 建構子](https://github.com/iojs/readable-stream/issues/102)
24 | * **dns:** [lookup() 增加'all'的設定,預設值為 false。當此打開此選項之後,呼叫該方法將會回傳一個陣列包含所有該主機名稱的所有位址](https://github.com/iojs/io.js/pull/744)。
25 | * **assert:** deepEqual() 移除 prototype 屬性比對並新增 deepStrictEqual() 方法,功能同 deepEqual(),但在比對 primitives 時使用嚴格相等檢查。
26 | * **tracing:** [當編譯時使用 --with-lttng 會增加 LTTng (Linux Trace Toolkit Next Generation) 的功能](https://github.com/iojs/io.js/pull/702)。
27 | * **docs:** 大量的文件更新以及新增關於錯誤的文件,包含 JavaScript 錯誤、V8 和 io.js 相關錯誤的細節。
28 | * **npm** 升級到 2.5.1
29 | * **libuv** 升級到 1.4.0,請參閱[更新紀錄](https://github.com/libuv/libuv/blob/v1.x/ChangeLog)。
30 | * 增加新的協力者: Aleksey Smolenchuk ([@lxe](https://github.com/lxe)) 和 Shigeki Ohtsu ([@shigeki](https://github.com/shigeki))。
31 |
32 | ## 對國際社群敞開大門
33 |
34 | 請參閱 Medium 上的[原文](https://medium.com/@mikeal/how-io-js-built-a-146-person-27-language-localization-effort-in-one-day-65e5b1c49a62)。
35 |
36 | * 把感興趣的開發者加入到原屬語言的團隊。
37 | * 團隊註冊自己的推特帳號以及其他相關的社交媒體。
38 | * 團隊訂立自己的協作方式,成為“社群組織者”,而非單單“翻譯者”。
39 |
40 | ### 本地化的情況
41 |
42 | * 第一天就有 146 位成員屬名願意協助本地化的工作 (目前已經超過 160 位)。
43 | * 在第一天就有 27 個語系的社群成立 (目前已經到達 29 個)。
44 |
45 | ### 本地化社群
46 |
47 | * [iojs-bn](https://github.com/iojs/iojs-bn) 孟加拉社群
48 | * [iojs-cn](https://github.com/iojs/iojs-cn) 中國社群
49 | * [iojs-cs](https://github.com/iojs/iojs-cs) 捷克社群
50 | * [iojs-da](https://github.com/iojs/iojs-da) 丹麥社群
51 | * [iojs-de](https://github.com/iojs/iojs-de) 德國社群
52 | * [iojs-el](https://github.com/iojs/iojs-el) 希臘社群
53 | * [iojs-es](https://github.com/iojs/iojs-es) 西班牙社群
54 | * [iojs-fa](https://github.com/iojs/iojs-fa) 伊朗社群
55 | * [iojs-fi](https://github.com/iojs/iojs-fi) 芬蘭社群
56 | * [iojs-fr](https://github.com/iojs/iojs-fr) 法國社群
57 | * [iojs-he](https://github.com/iojs/iojs-he) 希伯來社群
58 | * [iojs-hi](https://github.com/iojs/iojs-hi) 北印度社群
59 | * [iojs-hu](https://github.com/iojs/iojs-hu) 匈牙利社群
60 | * [iojs-id](https://github.com/iojs/iojs-id) 印尼社群
61 | * [iojs-it](https://github.com/iojs/iojs-it) 義大利社群
62 | * [iojs-ja](https://github.com/iojs/iojs-ja) 日本社群
63 | * [iojs-ka](https://github.com/iojs/iojs-ka) 喬治亞社群
64 | * [iojs-kr](https://github.com/iojs/iojs-kr) 韓國社群
65 | * [iojs-mk](https://github.com/iojs/iojs-mk) 馬其頓社群
66 | * [iojs-nl](https://github.com/iojs/iojs-nl) 荷蘭社群
67 | * [iojs-no](https://github.com/iojs/iojs-no) 挪威社群
68 | * [iojs-pl](https://github.com/iojs/iojs-pl) 波蘭社群
69 | * [iojs-pt](https://github.com/iojs/iojs-pt) 葡萄牙社群
70 | * [iojs-ro](https://github.com/iojs/iojs-ro) 羅馬尼亞社群
71 | * [iojs-ru](https://github.com/iojs/iojs-ru) 俄羅斯社群
72 | * [iojs-sv](https://github.com/iojs/iojs-sv) 瑞典社群
73 | * [iojs-tr](https://github.com/iojs/iojs-tr) 土耳其社群
74 | * [iojs-tw](https://github.com/iojs/iojs-tw) 台灣社群
75 | * [iojs-uk](https://github.com/iojs/iojs-uk) 烏克蘭社群
76 |
77 | ## io.js 以及 node.js
78 |
79 | 請參閱 Medium 上的[原文](https://medium.com/@iojs/io-js-and-a-node-js-foundation-4e14699fb7be)
80 |
81 | * Joyent 的 CEO,Scott Hammond 表明他希望把 io.js 帶回到 node.js 之中。
82 |
83 | ### io.js 在短短的幾個月...
84 |
85 | * 已經擁有 23 位活躍的核心成員
86 | * 擁有數個工作小組
87 | * 擁有 29 個語系本地化小組
88 | * 比起 node.js 有更多的貢獻者
89 | * 在優秀社群的支援之下,以良好的節奏釋出高品質的軟體
90 |
91 | > 我們很希望把這一切拋在腦後,但是我們也無法輕易犧牲好不容易達到的成果,以及那些讓我們達到現今成果的理念及開放式管理。
92 |
93 | ### 未來
94 |
95 | * 與 node.js 基金會的對話正持續進行中。
96 | * 一旦 node.js 基金會有了雛形,你們將會在 io.js 的 Github 中看到 io.js 是否應該加入的 issue,將會在公開的 TC 會議中討論並投票,一切都遵照我們已經建立起的管理方式。
97 |
98 | > 對社群來說,什麼都不會改變。
99 |
100 | ### 現在我們可以做什麼
101 |
102 | * 貢獻並提交你的 pull requests 到 io.js。
103 | * 加入 [27 個本地化團隊](https://github.com/iojs/website/issues/125)之一。
104 | * 貢獻到 io.js 工作小組 ([streams](https://github.com/iojs/readable-stream), [website](https://github.com/iojs/website), [evangelism](https://github.com/iojs/website/labels/evangelism), [tracing](https://github.com/iojs/tracing-wg), [build](https://github.com/iojs/build), [roadmap](https://github.com/iojs/roadmap)) 之中。
105 | * 持續採用 io.js 在你的應用程式之中。
106 |
107 | 原文:[io.js Week of February 13th 2015](https://medium.com/node-js-javascript/io-js-week-of-february-13th-2015-7846b94074a2),作者:[@iojs](https://medium.com/@iojs),翻譯 [@iojs-tw](https://github.com/iojs/iojs-tw),授權 [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/deed.zh_TW)
108 |
--------------------------------------------------------------------------------
/source/_posts/2015-03-07-io-js-week-of-february-27th.md:
--------------------------------------------------------------------------------
1 | title: "io.js 週報 2015.02.27"
2 | date: 2015-03-07 23:07:40
3 | tags:
4 | categories: iojs 週報
5 | ---
6 |
7 |
8 | _注意:版本 **1.4.0** 已經編譯完成並加上標籤但是尚未釋出。在過程中一個 libuv 的臭蟲被發現所以這次的釋出將被棄置,我們將會提升版本號到 1.4.1 以避免造成混淆。_
9 |
10 | ## 主要更動
11 |
12 | * **process** / **promises**:每當有 `Promise` 被回絕而且沒有在 `Promise` 上附加錯誤處理程式,現在 `process` 會在該輪的事件迴圈內發出一個 `'unhandledRejection'` 事件。而每當 `Promise` 被回絕而且它有附加錯誤處理程式時,現在它會在下一輪事件迴圈發出一個 `'rejectionHandled'` 事件。 [#758](https://github.com/iojs/io.js/pull/758) (Petka Antonov)
13 | * **streams**:現在可以使用正規的 stream 作為 `tls.connect()` 的底層 socket [#926](https://github.com/iojs/io.js/pull/926) (Fedor Indutny)
14 | * **http**:當 `http.ClientRequest` 被客戶端棄置的時候,會發出一個新的 `'abort'` 事件。 [#945](https://github.com/iojs/io.js/pull/945) (Evan Lucas)
15 | * **V8**:升級 V8 版本到 4.1.0.21。包含一個禁止訪問的修補,當禁止之後被解除時應該可以得到細節的資訊。有一個破壞性的 ABI 變更不會在這次的升級之中,可能會在 io.js 合入 V8 4.2 版本的時候加上去。參閱 [#952](https://github.com/iojs/io.js/pull/952) 的討論。
16 | * **npm**:升級 npm 版本到 2.6.0。包含支援新註冊系統和為了 `npm@3` 準備的功能。參閱 [npm CHANGELOG.md](https://github.com/npm/npm/blob/master/CHANGELOG.md#v260-2015-02-12) 以了解細節。總結:
17 | * [#5068](https://github.com/npm/npm/issues/5068) 增加新的登出指令,它對基於 bearer 和 basic 認證的客戶端有幫助。
18 | * [#6565](https://github.com/npm/npm/issues/6565) 提醒 `peerDependency` 的行為改變了並增加了說明文件。
19 | * [#7171](https://github.com/npm/npm/issues/7171) 提醒 `package.json` 中的 `engineStrict` 屬性將會在下一個 npm 主版號移除 (即將到來!)
20 | * **libuv**:升級版本到 1.4.2。參閱 [libuv 變更日誌](https://github.com/libuv/libuv/blob/v1.x/ChangeLog) 以了解修補的細節。
21 |
22 | # ARM 提供 io.js 在 ARMv8 上的支援
23 |
24 | ARM 已經聯繫 io.js 建置工作小組的領導者 Rod Vagg,提供他們對 io.js 專案的支援。 ARM 和他們的硬體合作夥伴已經上了軌道讓 ARMv8 成為可運作的伺服器平台,伺服器端 JavaScript 靈活的特性也讓他們完美契合地運行在新的 ARM 上面。
25 |
26 | 因為 ARMv8 已經被行動設備製造商採用,新版本的 V8 已經有很好的支援。因為 V8 在 Android 中的角色很關鍵,io.js 非常適合去追蹤它的支援情況,更甚至貢獻給 v8 會讓我們與 V8 團隊有新的關係。
27 |
28 | 從 io.js 專案開始的時候,Rod 一直倡導 ARM 對於 io.js、物聯網、愛好者和伺服器使用的角色。我們已經在每次釋出對裝置做 ARMv6 的建置,例如:Raspberry Pi。並且對許多受歡迎的裝置做 ARMv7 的建置 (包括基於 ARM 的雲端平台 Online Labs,也對 io.js 提供幫助)。ARMv8 邏輯繼承這些,但也有令人興奮的潛力來建置伺服器端應用程式,特別是它給予新的 64-bit 支援。
29 |
30 | 建置團隊被獲准使用 Linaro ARMv8 伺服器叢集,正在進行跟 io.js CI 平台的整合,這最終應該能導向正規的 ARMv8 二進位檔釋出。
31 |
32 | # 社群更新
33 |
34 | * [**和解提案**](https://github.com/iojs/io.js/issues/978):io.js 著手開始進行對於 Node.js 基金會的和解草案。目前還是初期草案階段,因此來自社群的意見是非常重要的,請大家踴躍反應。
35 | * **New internal C++ Streams API**:一個全新的 [C++ Streams API] 在這週增加到 io.js 之中,允許你可以將 TLS stream 包裝成另一個 TLS stream。
36 | * **io.js 路徑圖**:[路徑圖](https://github.com/iojs/io.js/blob/v1.x/ROADMAP.md) 是對 io.js 未來的規劃。它描述關於穩定性策略的規劃以及列出 io.js 的當務之急。
37 | * **路徑圖的投影片已經完成等待翻譯**:一系列之於 io.js 路徑圖的投影片已經[完成可以進行翻譯](https://github.com/iojs/roadmap/issues/18)。你覺得你可以向周遭的群體做簡報嗎?留下你的意見,我們會與你協作幫你預備好簡報!
38 | * **Microsoft io.js How-To for Azure Websites**: 微軟 發佈一篇關於他們 Azure 平台的[入門教學](http://azure.microsoft.com/en-us/documentation/articles/web-sites-nodejs-iojs/),描述如何在 Azure 上使用 io.js。
39 | * **Floobits moves to io.js**: 配對編程軟體 Floobits [將他們的平台轉移到 io.js](https://news.floobits.com/2015/02/23/on-moving-to-io.js/),因為對於 Node 過於緩慢的釋出感到挫折,對於可以開始使用 ES6 的新功能而又不需要增加 `--harmony` 的參數,他們也覺得從 0.10.0 到 0.12.0 的改動並不是非常明顯。
40 | * **Anand Mani Sankar's _Node.js vs io.js: Why the fork?!?_**: Anand 寫了一篇很不錯也相當客觀的 [io.js 近期歷史的文章](http://anandmanisankar.com/posts/nodejs-iojs-why-the-fork/#.VO82hE60PVw.twitter),也提及我們希望藉由 io.js 實現什麼。可以幫助哪些沒有參與到社群之中的人可以瞭解目前的狀況。
41 | * **iojs-jp - New io.js Japanese Blog**: iojs-jp 社群建立了[本地化的部落格](http://blog.iojs.jp/),用當地的語言來傳遞 io.js 的消息。如果你感興趣,快去看看吧!
42 | * **iojs-cn - New io.js Chinese Blog**: 類似於 iojs-jp 社群,iojs-cn 社群也成立了[本地化的部落格](http://cn.iojs.org/),用中文來發佈關於 io.js 的文章。如果你對於 iojs-cn 或 iojs 中文新聞感到興趣的話,請不要錯過!
43 | * **[檢閱路徑圖投影片](https://www.youtube.com/watch?v=etI_UD4wXlo)** - 在釋出前對 io.js 路徑圖簡報的檢閱,確保它有符合專案的目標。
44 |
45 | # 對 io.js 的支援增加
46 | * **[Wallby.js](http://wallabyjs.com/)**,一個 JavaScript 的即時測試函式庫,釋出了 1.0 版本並[增加對 io.js 的支援](http://dm.gl/2015/02/23/wallaby-version-one/)!
47 | * **[jsdom](https://github.com/tmpvar/jsdom)**,針對 WHATWG DOM 和 HTML 標準的實作,剛釋出了 [4.0.0 版本](https://github.com/tmpvar/jsdom/blob/master/Changelog.md#400) 並且加入了 io.js 的依賴需求。
48 | * **[give](https://github.com/mmalecki/give)** 的作者[發了一則推文](https://twitter.com/maciejmalecki/status/569629100215816192) 宣布新版的 give 將會增加對 io.js 的支援。Give 是基於 git 的 node.js/io.js 版本控制器。
49 | * **Firebase Realtime Client**,Firebase 官方的 web/node.js 客戶端,[宣布](https://twitter.com/FirebaseRelease/status/570000737343647744) 他們將於 [2.2.1](https://www.firebase.com/docs/web/changelog.html#section-realtime-client) 開始支援 io.js。
50 | * **Semaphore**,提供持續整合服務商,在 [2015/2/24 平台更新](https://semaphoreapp.com/blog/2015/02/17/platform-update-on-february-24th.html?utm_source=twitter&utm_medium=social&utm_content=platform_update_launch&utm_campaign=platformupdate)中[宣布](https://twitter.com/semaphoreapp/status/570987355005431809)將會支援 io.js。
51 |
52 | 原文:[io.js Week of February 27th](https://medium.com/node-js-javascript/io-js-week-of-february-17th-9422a589302a),作者:[@iojs](https://medium.com/@iojs),翻譯 [@iojs-tw](https://github.com/iojs/iojs-tw),授權 [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/deed.zh_TW)
53 |
--------------------------------------------------------------------------------
/source/_drafts/npm-weekly-24.md:
--------------------------------------------------------------------------------
1 | title: "npm 週報 #24 : semver explained, amazing videos, pizza"
2 | date:
3 | tags:
4 | categories: npm 週報
5 | ---
6 |
7 | ## [npm weekly #24: semver explained, amazing videos, pizza](http://blog.npmjs.org/post/126588929320/npm-weekly-24-semver-explained-amazing-videos)
8 |
9 | [Sign up for the weekly](https://www.npmjs.com/npm-weekly) and get this sent to you instead!
10 |
11 | [ in my package.json?")](http://)
12 |
13 | ## who moved my cheese put a caret (^) in my package.json?
14 |
15 | When you execute `npm install` in a clean project directory, package.json specifies the version of each dependency that gets installed. But npm makes it possible to specify a range of accepted versions instead of exact version numbers.
16 |
17 | If this sounds a) awesome and b) worth understanding in detail, we highly recommend [this neat ByteArcher explainer on Semver](http://bytearcher.com/articles/semver-explained-why-theres-a-caret-in-my-package-json/ "Semver explained - why there's a caret (^) in my package.json?").
18 |
19 | ## awesome videos for learning all the things
20 |
21 | The [Cyberwizard Institute](http://cyber.wizard.institute/ "Cyberwizard Institute") is an open, collaborative, and free programming school based out of Oakland’s [Sudo Room hackerspace](http://sudoroom.org/ "Sudo Room | Creative community and hackerspace"). They’ve got [a nice workshop on using npm](https://www.youtube.com/watch?v=B-IRNyMdYD0 "Cyber Wizard Institute: npm and using npm modules - YouTube"), and many many more helpful videos [on their YouTube channel](https://www.youtube.com/channel/UCzDHOdHNitu70iiva25rV7w "Cyber Wizard Institute - YouTube").
22 |
23 | ## two ways to help npm!
24 |
25 | How do you improve upon perfection? One way to find out. Actually, two!:
26 |
27 | ### schedule a usability session
28 |
29 | As part of our ongoing focus on making developers’ lives easier, we need your help participating in [a 30-minute usability session](https://calendly.com/npm/ux "Calendly - Nick Cawthon") with **Nick Cawthon**, our new head of design & UX. Laugh, cry, screenshare — and help us improve our product.
30 |
31 | ### help us test Orgs
32 |
33 | Coming this fall, **Orgs** will streamline the process for delegating permissions, managing roles, and collaborating with your team on publishing and sharing packages. But first, we need a small number of teams to help with testing and feedback. If you and your team would like early access to our newest feature, [sign up here](http://info.npmjs.com/test-orgs?utm_campaign=newsletter20150813 "help us test npm Orgs") to help out.
34 |
35 | ## new humans
36 |
37 | Oh geez, we’re still growing.
38 |
39 | * [Aria Stewart](https://twitter.com/aredridel "Aria Stewart (@aredridel) | Twitter") joins our www team remotely from Boston via PayPal, where she worked extensively on Kraken.
40 | * [Nick Cawthon](https://twitter.com/ncawthon "Nick Cawthon (@ncawthon) | Twitter") joined this week to run design & UX. He laid out his plans [on our blog](http://blog.npmjs.org/post/126455035030/hello-and-lets-talk?utm_campaign=newsletter20150813 "The npm Blog — Hello... and Let’s Talk").
41 | * Back in the day, [Jon Cowperthwait](https://twitter.com/cowperthwait "Cowperthwait (@cowperthwait) | Twitter") worked with CTO Laurie at [awe.sm](https://web.archive.org/web/20140405115445/http://totally.awe.sm/about/#~pl6jScfWfv3hr7 "awe.sm | About awe.sm"); now he’s here to help Kasey market all the things.
42 |
43 | ## looking for work?
44 |
45 | If you’re not doing Node.js in your job, and you’d like to be, get a load of [these companies looking for JavaScript and Node.js developers](https://www.npmjs.com/whoshiring?utm_campaign=newsletter20150813 "Who’s Hiring? | npm"). (_Have companies to add to this list? email [whoshiring@npmjs.com](mailto:whoshiring@npmjs.com)!_)
46 |
47 | ## big numbers are big, cont’d
48 |
49 | Holy wah, a new record: in the last 30 days, [npm users have downloaded over **2 billion packages**](https://twitter.com/seldo/status/631289016101441537 "Laurie Voss on Twitter: "npm users have downloaded over 2 billion packages in the last 30 days: http://t.co/9IWGbwZqNZ""). Also: in the 20 months since npm, Inc. started, the registry got 300% bigger, and registry traffic has grown 1100%.
50 |
51 | ## have an idea for the Weekly?
52 |
53 | We love hearing from you. Just [drop us a note](mailto:jec@npmjs.com) with your suggestions for the Weekly and heads-ups of what’s up.
54 |
55 | [](https://www.npmjs.com/package/dominos)
56 |
57 | ## hungry?
58 |
59 | Of the 173,288 (and counting!) packages on the [npm registry](https://www.npmjs.com/?utm_campaign=newsletter201508113 "npm"), this is possibly the most edible. Here’s a fun package for ordering pizza from Domino’s: [npm: dominos](https://www.npmjs.com/package/dominos "dominos").
60 |
61 | 原文:[npm weekly, #24](http://blog.npmjs.org/post/126588929320/npm-weekly-24-semver-explained-amazing-videos),作者:[@npm](http://blog.npmjs.org/),翻譯 [@iojs-tw](https://github.com/iojs/iojs-tw),授權 [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/deed.zh_TW)
62 |
--------------------------------------------------------------------------------
/source/_drafts/npm-weekly-31.md:
--------------------------------------------------------------------------------
1 | title: "npm 週報 #31 : npm 3 speed fixes, modules demoed in the browser, tossed salad and scrambled eggs"
2 | date:
3 | tags:
4 | categories: npm 週報
5 | ---
6 |
7 | [Sign up for the Weekly](https://www.npmjs.com/npm-weekly?utm_campaign=newsletter20151002 "sign up for the npm Weekly") and get this sent to you instead!
8 |
9 | [](http://osfeels.com "Open Source & Feelings")
10 |
11 | ## npm is at Open Source & Feelings
12 |
13 | It’s a light Weekly this week because a good chunk of our humans are at [Open Source & Feelings](http://osfeels.com "Open Source & Feelings"). If you are, too, we have three requests:
14 |
15 | 1. Say hi. [Isaac](https://twitter.com/izs "lake merrittocracy (@izs) | Twitter"), [Laurie](https://twitter.com/seldo "Laurie Voss (@seldo) | Twitter"), [Aria](https://twitter.com/aredridel "Aria Stewart (@aredridel) | Twitter"), [Ernie](https://twitter.com/ehsalazar "Ernie Salazar (@ehsalazar) | Twitter"), [Forrest](https://twitter.com/othiym23 "Forrest L Norvell (@othiym23) | Twitter"), [Jeff](https://twitter.com/jefflembeck "Jeff Lembeck (@jefflembeck) | Twitter"), [Kat](https://twitter.com/maybekatz "Kat Marchán (@maybekatz) | Twitter"), and [Rebecca](https://twitter.com/ReBeccaOrg "Rebecca v7.3.2-beta1 (@ReBeccaOrg) | Twitter") are around, and make for good conversation.
16 | 2. [](https://partners.npmjs.com/weekly/weekly31/eeeee.jpg "eeeeee")See Isaac speak. **Saturday at 12:30pm**, he’ll present _Non-Violent Communication for Fun, Profit, and Self Defense_:
17 |
18 | > Turn conversations away from blame and antagonism, towards meaningful connection and opportunities for growth and collaboration
19 |
20 | It’s a profoundly important toolkit when collaborating with others in the open source community, because
21 |
22 | > Open source is a social machine, and compassion helps keep the gears from grinding to a halt.
23 |
24 | Check it out.
25 | 3. Show us your laptop. The OSFeels swagbag includes an OSFeels-exclusive Wombat sticker from [Jon Q](https://twitter.com/itsjonq). Stick it on, snap a pic, tweet it with the hashtag **#wombatlove**, and good things will come to you.
26 |
27 | ## npm is getting faster
28 |
29 | It wasn’t much of a secret that the first versions of npm 3 have been … slower than we like. In one typical example, `npm ls` in npm 2 on a MacBook took around 5 seconds; the same command in npm 3 was closer to 00:50.
30 |
31 | Good news, by which we mean great news: in [npm 3.3.6](https://github.com/npm/npm/releases/tag/v3.3.6 "Release v3.3.6 · npm/npm"), we’ve made huge strides at tuning performance to get things sped back up. We found one example of something going from _6 minutes_ down to _14 seconds_. Rebecca [gently suggests](https://github.com/npm/npm/releases/tag/v3.3.6 "Release v3.3.6 · npm/npm"):
32 |
33 | > Performance just got 5 bazillion times better.
34 |
35 | Yooge.
36 |
37 | 3.3.6 is `next` at the moment, and `latest` next week. Let us know how it goes.
38 |
39 | ## npm is part of NewCo Oakland
40 |
41 | [](http://oak.newco.co/schedule-2015/ "NewCo Oakland Festival 2015")
42 |
43 | We plugged this last week, but there are still some tickets available to participate in [NewCo](http://newco.co "Home - NewCo : NewCo")’s first annual Oakland Festival.
44 |
45 | **Thursday, October 8** at **3pm**, we hope you’ll stop by [npm, Inc. World Headquarters and Yak Sanctuary](http://blog.npmjs.org/post/128294648715/npm-weekly-27-noderedis-dependencies-and-the#oakland "oh-oh-oh-Oakland, get down"). Isaac talks work/life balance; you see our digs & snag swag; everyone wins.
46 |
47 | Tickets: [NewCo Oakland](http://oak.newco.co/schedule-2015/ "2015 Schedule - NewCo Oakland : NewCo Oakland"). Use the discount code **HC30OAK** for 30% off.
48 |
49 | ## npm modules are demoed in the browser
50 |
51 | [](https://tonicdev.com "Tonic: a better REPL for node.js")
52 |
53 | If you’ve ever used [JSFiddle](https://jsfiddle.net "Create a new fiddle - JSFiddle") to try out or demonstrate JavaScript snippets online, you’re gonna dig [Tonic](https://tonicdev.com "Tonic: a better REPL for node.js").
54 |
55 | Tonic lets you `require()` any module in npm and run it right in your browser, which comes in handy for blog posts, docs, teaching, or just more easily showing off cool things.
56 |
57 | #### sponsored [[?](http://info.npmjs.com/sponsorship?utm_campaign=newsletter20150924 "sponsor the Weekly")]
58 |
59 | [Hired](http://hired.com/?utm_source=npmjs&utm_medium=newsletter "Hired - Marketplace for Recruiting Startup & Tech Talent") connects developers with over 2,500 vetted tech companies in 13 major tech hubs, probably including yours. Developers on Hired receive an average of 5 interview requests within a week. Looking for a job? [Check them out](http://hired.com/?utm_source=npmjs&utm_medium=newsletter "Hired - Marketplace for Recruiting Startup & Tech Talent").
60 |
61 | 原文:[npm weekly, #31](http://blog.npmjs.org/post/130359991775/npm-weekly-31-npm-3-speed-fixes-modules-demoed),作者:[@npm](http://blog.npmjs.org/),翻譯 [@iojs-tw](https://github.com/iojs/iojs-tw),授權 [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/deed.zh_TW)
62 |
--------------------------------------------------------------------------------
/source/_drafts/npm-weekly-25.md:
--------------------------------------------------------------------------------
1 | title: "npm 週報 #25 : dist-tag, talking to Microsoft, semicolon trolling"
2 | date:
3 | tags:
4 | categories: npm 週報
5 | ---
6 |
7 | ## [npm weekly #25: dist-tag, talking to Microsoft, semicolon trolling](http://blog.npmjs.org/post/127157174356/npm-weekly-25-dist-tag-talking-to-microsoft)
8 |
9 |
10 |
11 | [Sign up for the weekly](https://www.npmjs.com/npm-weekly?utm_campaign=newsletter20150820 "Subscribe to the weekly") and get this sent to you instead!
12 |
13 | [](https://docs.npmjs.com/cli/dist-tag?utm_campaign=newsletter20150820 "dist-tag | npm Documentation")
14 |
15 | ## let’s talk about distribution tags
16 |
17 | You might have noticed that it’s possible to install `npm@latest`, which fetches npm 2.13.5, or `npm@beta`, which fetches npm 3.3.0\. Those tags, `latest` and `beta`, are examples of **distribution tags**, and they’re pretty great.
18 |
19 | Tagging enables multiple streams of development — think “stable” and “canary” — in order to test out changes before they’re widely used by everyone, and lets users decide whether they want to opt in to testing new things or just want your package to work. (Consider using `latest` to mean “the newest we intend most people to use”, not just “the newest.”)
20 |
21 | Add, remove, and enumerate distribution tags with [dist-tag](https://docs.npmjs.com/cli/dist-tag?utm_campaign=newsletter20150820 "dist-tag | npm Documentation").
22 |
23 | (Also on the subject of versions: if you missed it, check out [last week’s explainer on semantic versioning](http://blog.npmjs.org/post/126588929320/npm-weekly-24-semver-explained-amazing-videos?utm_campaign=newsletter20150820 "npm weekly #24: semver explained, amazing videos, pizza").)
24 |
25 | ## let’s improve the Windows development experience
26 |
27 | Over 40% of the developers who use npm’s registry are running Windows — a number which more or less held steady for a year, and now is increasing month over month — so anything that improves the process of Node development on a Windows machine has a major impact.
28 |
29 | The good news is that we have a monthly check-in with [Microsoft’s Visual Studio team](https://channel9.msdn.com/Blogs/Seth-Juarez/Nodejs-Tools-for-Visual-Studio "Node.js Tools for Visual Studio | Seth Juarez | Channel 9") to keep an open line and make things more awesome. The also-good news is that you can help. Do you develop in Windows? What works, what hurts, and what’s on your wish list? Let us know: [tweet](https://twitter.com/intent/follow?screen_name=npmjs "npmbot (@npmjs) | Twitter"), [email](mailto:wombat-cowp@npmjs.com), or reach out through any of the other usual channels.
30 |
31 | ## let’s test npm Orgs
32 |
33 | We have received actual fan mail about our upcoming **Orgs** support for teams and groups, and we hope you’ll love it too. Want to try this out before our release later this fall? [Sign up for the beta](http://info.npmjs.com/test-orgs?utm_campaign=newsletter20150820 "help us test npm Orgs").
34 |
35 | ## let’s help Nick with usability testing
36 |
37 | We’re also still looking for volunteers to participate in a [30-minute usability session](https://calendly.com/npm/ux "Calendly - Nick Cawthon") to shape upcoming improvements to package discovery, registry pages, and managing npm features. This is your chance to influence a tool used over 2 billion times in the last month alone, and score [neat swag](http://shop.npmjs.com?utm_campaign=newsletter20150820 "npm swag store"). Can you lend a hand?
38 |
39 | ## let’s welcome another new human
40 |
41 | [Angela Eichner](http://twitter.com/siliconvallygrl "SiliconVallyGrl (@SiliconVallyGrl) | Twitter") comes to us this week from Loggly to help bring npm to the largest names in technology, finance, and commerce. If you’re looking to support npm for large teams, self-host the npm registry on premise, or talk custom solutions, [get in touch](mailto:angela@npmjs.com).
42 |
43 | ## let’s make these Weeklies better
44 |
45 | What are you working on? Who’s doing inspiring things? What projects could use a hand?
46 |
47 | Drop us a note with your suggestions for the Weekly. Just reply to this email with your ideas.
48 |
49 | ## let’s teach the controversy: standard
50 |
51 | [standard](https://www.npmjs.com/package/standard?utm_campaign=newsletter20150820 "standard") is a module that enforces consistent JavaScript style in your project.
52 |
53 | [semicolons](https://www.npmjs.com/package/semicolons?utm_campaign=newsletter20150820 "semicolon") requires semicolons and will throw an exception if every line does not end with one.
54 |
55 | We absolutely do not recommend attempting to use both of these at the same time.
56 |
57 | #### sponsored
58 |
59 | ## let’s get you a Node job
60 |
61 | [Hired](http://hired.com/?utm_source=npmjs&utm_medium=newsletter "Hired - Marketplace for Recruiting Startup & Tech Talent") connects Node developers with over 2,500 vetted tech companies in 13 major tech hubs, probably including yours. Developers on Hired receive an average of 5 interview requests within a week. Looking for a job? [Check them out](http://hired.com/?utm_source=npmjs&utm_medium=newsletter "Hired - Marketplace for Recruiting Startup & Tech Talent").
62 |
63 | 原文:[npm weekly, #25](http://blog.npmjs.org/post/127157174356/npm-weekly-25-dist-tag-talking-to-microsoft),作者:[@npm](http://blog.npmjs.org/),翻譯 [@iojs-tw](https://github.com/iojs/iojs-tw),授權 [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/deed.zh_TW)
64 |
--------------------------------------------------------------------------------
/source/_posts/2015-02-13-getting-to-know-io-js.md:
--------------------------------------------------------------------------------
1 | title: "初探 io.js"
2 | date: 2015-02-13 21:24:18
3 | tags:
4 | categories: iojs 好文
5 | ---
6 |
7 | 就在上個星期,開始在 Twitter 上面釋出 [io.js](http://iojs.org) 相關訊息,io.js 是一個以 Joyent 手中的 [Node.js](http://nodejs.org/) 為基礎,並且與 npm 相容的 fork 出來的專案。
8 |
9 | ## 為何要 fork Node.js?
10 |
11 | io.js 團隊大部分的成員來自於原本 [Node.js 核心團隊](https://github.com/iojs/io.js/blob/v1.x/README.md#current-project-team-members)。在八月時候成立了一個 [Node Forward] 目標就是嘗試讓社群協助 Node.js 的成長。
12 |
13 | > 透過社群合作力量來影響 Node, JavaScript 以及他的 Ecosystem
14 |
15 | 而以下才是 Node.js 被社群 fork 出來的前情提要的首要指標,
16 |
17 | > 有些問題的決定權只在某些人手上,並沒有被分散下去,但是這些人力是分散在不同的小專案,所以人力是無法滿足這些小專案的快速發展。這些都需要更多貢獻者來達到目標。 Node Forward 就是一個這樣組織,希望讓更多貢獻者可以解決以上問題。
18 |
19 | 最後社群的協助還是不能解決 Node 商業考量目的。基於以上種種理由 io.js 就如此誕生了。
20 |
21 | [Isaac Schlueter](https://twitter.com/izs) Node.js 核心貢獻者之一,提供了很多[背後故事](http://blog.izs.me/post/104685388058/io-js)說明為何要 fork Node.js 的原因。
22 |
23 | 其中一個主要的理由,希望藉由這兩個不同專案 (io.js, Node.js) 未來終究有合併的一天。
24 |
25 |
26 |
27 | ### io.js 新特徵
28 |
29 | 首先 io.js 採用正確的[版本語意 (semver)](http://semver.org/) ,從 1.0.0 開始,這就是最大跟 Node.js 的不同。
30 |
31 | [jQuery blog](http://blog.jquery.com/2014/10/29/jquery-3-0-the-next-generations/) 對於這個部分發表了為什麼版本語意的重要性。
32 |
33 | > 版本語意在版本控管上是一件很重要的事情。在通則上,semver 賦予開發者或者開發工具一個很好的方向,讓大家知道版本更新的指標方法。可以從版本號碼知道目前是 MAJOR, MINOR, PATCH 是有格式軌跡可循,讓大家可以方便參考。在 semver 中,如果 MAJOR 號碼改變,開發者就知道這個版本有可能 API 會改變。
34 |
35 | ### V8 engine 更換
36 |
37 | io.js 更新了 V8 JavaScript engine,更新到 3.31.74.1。最明顯的特徵就是可以完整支援 ES6 特性,並且不需要再加上 `--harmony` 這個指標。
38 |
39 | #### 相容 ES6 特性
40 |
41 | 在 io.js 可以很順暢的執行 ES6 功能,功能如下列表
42 |
43 | * [Block scoping (`let`, `const`)](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-let-and-const-declarations)
44 | * Collections ([`Map`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-map-objects), [`WeakMap`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-constructor-properties-of-the-global-object-weakmap), [`Set`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-set-objects), [`WeakSet`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-constructor-properties-of-the-global-object-weakset))
45 | * [Generators](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generator-function-definitions)
46 | * [Binary and Octal literals](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-literals-numeric-literals)
47 | * [Promises](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-promise-jobs)
48 | * [New String methods](http://www.sitepoint.com/preparing-ecmascript-6-new-string-methods/)
49 | * [Symbols](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ecmascript-language-types-symbol-type)
50 | * [Template strings](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-static-semantics-templatestrings)
51 |
52 | #### 新模組
53 |
54 | io.js 增加幾個實驗性的核心模組
55 |
56 | * [smalloc](https://iojs.org/api/smalloc.html): 讓您透過 allocation/deallocation/copying 存取外部記憶體
57 | * [v8](https://iojs.org/api/v8.html): 暴露 iojs 中 v8 的 events and interfaces。
58 |
59 | 你可以在 [io.js changelog](https://github.com/iojs/io.js/blob/v1.x/CHANGELOG.md) 上看到這些完整列表。
60 |
61 | ### 開始使用 io.js
62 |
63 | 開始使用 io.js 在 Node.js 應用裡面,使用方法跟使用 Node.js 一樣,唯一差異就是執行名稱不一樣了
64 |
65 | Node.js
66 |
67 | ```
68 | $ node app.js
69 | ```
70 |
71 | io.js
72 |
73 | ```
74 | $ iojs app.js
75 | ```
76 |
77 | #### Node 版本管理
78 |
79 | [Node version manager (nvm)](https://github.com/creationix/nvm), 就是一個幫助管理不同 Node.js 版本的工具,現在已經可以支援 io.js ,你可以透過以下的指令,找到 io.js 目前可安裝版本,接著進行安裝 io.js
80 |
81 | ```
82 | $ nvm ls-remote v1
83 | iojs-v1.0.0
84 | iojs-v1.0.1
85 | iojs-v1.0.2
86 | iojs-v1.0.3
87 | ```
88 |
89 | 然後在你的專案中,安裝各別不同的 io.js 版本。
90 |
91 | $ nvm install iojs-v1.0.3
92 |
93 | **Note:** 在本文編寫的時期,本人建議透過 nvm 安裝 io.js。許多早期安裝 io.js 的使用者透過 io.js 的安裝方式還是會影響到 Node.js 原本正常運作。 nvm 可以讓你在不同版本之間運作順暢。
94 |
95 | ### 立刻體驗
96 |
97 | 想要開始嘗試 io.js 的 Atlassian Connect add-on? 你可以快速取得 HipChat add-on 進行運作 io.js 以及相關 ES6 特徵像是 Generators 這些,可以透過以下步驟執行,
98 |
99 | 1. 到[HipChat Add-ons Quick Start guide](https://www.hipchat.com/docs/apiv2/quick_start?utm_source=dac&utm_medium=blog&utm_campaign=getting-to-know-iojs) 根據畫面指示並且取得 add-on ,執行[atlassianlabs/ac-koa-hipchat](https://bitbucket.org/atlassianlabs/ac-koa-hipchat?utm_source=dac&utm_medium=blog&utm_campaign=getting-to-know-iojs) framework
100 |
101 | 2. `vagrant ssh` 設定 vagrant server , 透過指令進行安裝 nvm
102 |
103 | ```
104 | $ curl https://raw.githubusercontent.com/creationix/nvm/v0.23.0/install.sh | bash
105 | ```
106 |
107 | 將著將會安裝 nvm ,安裝結束後需要輸入 `exit` 關閉掉終端機.
108 |
109 | 3. 開啟 `package.json` 並進行修改
110 |
111 | ```
112 | "scripts": {
113 | "web": "iojs web.js",
114 | "web-dev": "nodemon --harmony -e js,json,css,hbs web.js"
115 | },
116 | ```
117 |
118 | 4. 再次執行 `vagrant ssh` 重新開啟服務,並且重新啟動 Node.js 伺服器
119 |
120 | ```
121 | $ cd project && npm start web
122 | ```
123 |
124 | 將會啟動 Koa HipChat add-on 伺服器,你可以透過註冊你的 add-on 在 HipChat room 裡面設定,透過以下網址,
125 |
126 | ```
127 | https://xxxxxxxx.ngrok.com/addon/capabilities
128 | ```
129 |
130 | 如果你輸入 `/hello`,HipChat add-on 將會回應你一個 "HI" ,恭喜,目前已經成功透過 io.js 以及 ES6 相關的使用。
131 |
132 | ### 建議何時開始使用 io.js
133 |
134 | 這應該是最多人會問到的問題,現在就可以開始使用 io.js 了嗎?
135 |
136 | 就是現在,io.js 在本文編寫時期大約為 v1.0.3 ,還是屬於 `Unstable` 階段。像是 nvm 還是會有一些小問題。還沒有太多公司宣布他們開始支援 io.js 。如果你是一個早期使用者,並且開始嘗試一些自己的 add-ons ,並且將發現的 issue 工佈到 io.js issue 列表。 最後現在可能還是有點早切換到 io.js ,但是持續關注它也許接下來 io.js 會成為 JavaScript 伺服器平台流行趨勢。
137 |
138 | ### 補充
139 |
140 | 目前 io.js 已經進入 v1.2.0 版本,並且已經宣告穩定,目前也有許多廠商宣告支援 io.js,所以可以安心服用,如有任何問題,歡迎到 [io.js 官方 issue](https://github.com/iojs/io.js/issues) 進行討論或者 bug 回報
141 |
--------------------------------------------------------------------------------
/source/_drafts/npm-weekly-28.md:
--------------------------------------------------------------------------------
1 | title: "npm 週報 #28 : how to do many things"
2 | date:
3 | tags:
4 | categories: npm 週報
5 | ---
6 |
7 | ## [npm weekly #28: how to do many things](http://blog.npmjs.org/post/128823264455/npm-weekly-28-how-to-do-many-things)
8 |
9 |
10 |
11 | [Sign up for the Weekly](https://www.npmjs.com/npm-weekly?utm_campaign=newsletter20150910 "sign up for the npm Weekly") and get this sent to you instead!
12 |
13 | [](https://www.npmjs.com/?utm_campaign=newsletter20150910)
14 |
15 | ## how to mail selfies to your mom
16 |
17 | 
18 |
19 | Russell at [lob.com](https://lob.com/ "Lob - APIs for Print, Mail, Postcards, Photos, & Letters") wrote an in-depth tutorial that shows how to build an [Express.js](https://www.npmjs.com/package/express "express") app that prints and mails a postcard of any of your Instagram photos. It’s _fantastic_.
20 |
21 | We highly recommend checking out [the tutorial](https://lob.com/blog/building-an-instagram-postcard-app-in-express-js/ "Build an Instagram Postcard App with Express.js + Lob") and [a working demo](http://demos.lob.com/instagram/ "Instagram + Lob Postcards"). a) It’s fun to build something cool, and b) This is the kind of tutorial we hope will proliferate within the npm community. Give it a whirl and let us know how it goes.
22 |
23 | (Our address is 1999 Harrison Street, ste. 1150, Oakland, CA 94612, USA, by the way. Oh, no reason.)
24 |
25 | ## how to spam your Slack
26 |
27 | While you’re in a building mood:
28 |
29 | If you’re an absolute beginner — or just love [unleashing Markovian havoc upon your colleagues](https://twitter.com/maybekatz/status/621116757458030592 "Kat Marchán on Twitter: "Our Loudbot at @npmjs is feeling particularly euphoric today /cc @rod11 http://t.co/BARQ5UAij4"") — don’t miss this from our own [Shivani Negi](https://github.com/imshivs "imshivs (Shivani Negi)"):
30 |
31 | [How to Build A Slackbot + Deploy an App to Heroku for Absolute Beginners](http://blog.npmjs.org/post/128237577345/how-to-build-a-slackbot-deploy-an-app-to-heroku?utm_campaign=newsletter20150910 "The npm Blog — How to Build A Slackbot + Deploy an App to Heroku...") takes you step-by-step through getting Node.js & npm set up in your dev environment, cloning [CJ](https://github.com/ceejbot "ceejbot (C J Silverio)")’s [LOUDBOT](https://github.com/ceejbot/LOUDBOT-SLACK "ceejbot/LOUDBOT-SLACK"), and getting it up on Heroku.
32 |
33 | TRUST US, IT’S COOL.
34 |
35 | ## how to learn something new about npm
36 |
37 | If you somehow forgot to make it to [ToulouseJS](http://toulousejs.francejs.org "Toulouse JS - L'évènement JavaScript du Sud-Ouest") this week, all is not lost. [Matt Winchester](https://github.com/mwinche "mwinche (Matt Winchester)") sends word of his rad talk at [UtahJS](http://conf.utahjs.com "UtahJS Conference - Friday September 25, 2015"):
38 |
39 | > [Why we love the letters n p m](http://conf.utahjs.com/schedule "Schedule :: UtahJS Conference - Friday September 25, 2015"): Ninja parade month? Nixon’s Presidential mistakes? Just what does npm mean? What does it do? Can it benefit front end development? We’ll take a tour of npm’s package making features. From installing to linking to semver, I’ll neatly present machinations that can benefit your development!
40 |
41 | It’s coming up **Friday, September 25**. Tickets are [here](http://www.eventbrite.com/e/utahjs-conference-2015-tickets-18118982364?aff=confsite "UtahJS Conference 2015 Tickets, Salt Lake City | Eventbrite").
42 |
43 | ## how to score an npm tee-shirt
44 |
45 | We’re working on big improvements to package discovery and publishing and managing private modules, so we’re looking for willing guinea pigs to share opinions and feedback. In exchange for participating in a 30-minute usability session, you get the thanks of a grateful wombatariat; also, [free things](http://shop.npmjs.com?utm_campaign=newsletter20150910 "the npm swag store").
46 |
47 | [Sign up here](https://calendly.com/npm/ux "Calendly - Nick Cawthon").
48 |
49 | ## how not to sound like a jerk
50 |
51 | [](http://alexjs.com "Alex - Catch insensitive, inconsiderate writing")
52 |
53 | Odds are none of us intends to exclude or hurt fellow members of the community, but polarizing and gender-favoring language has a way of slipping into what we write. Sometimes it’s a big help to have a second set of eyes that can look things over, notice what we’ve overlooked, and nudge us towards being more considerate and inclusive.
54 |
55 | Check out [alex](http://alexjs.com "Alex - Catch insensitive, inconsiderate writing"), which helps “catch insensitive, inconsiderate writing” by identifying possibly offensive language and suggesting helpful alternatives.
56 |
57 | #### sponsored [[?](http://info.npmjs.com/sponsorship?utm_campaign=newsletter20150910 "sponsor the Weekly")]
58 |
59 | ## how to get a Node job
60 |
61 | [Hired](http://hired.com/?utm_source=npmjs&utm_medium=newsletter "Hired - Marketplace for Recruiting Startup & Tech Talent") connects Node developers with over 2,500 vetted tech companies in 13 major tech hubs, probably including yours. Developers on Hired receive an average of 5 interview requests within a week. Looking for a job? [Check them out](http://hired.com/?utm_source=npmjs&utm_medium=newsletter "Hired - Marketplace for Recruiting Startup & Tech Talent").
62 |
63 | 原文:[npm weekly, #28](http://blog.npmjs.org/post/128823264455/npm-weekly-28-how-to-do-many-things),作者:[@npm](http://blog.npmjs.org/),翻譯 [@iojs-tw](https://github.com/iojs/iojs-tw),授權 [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/deed.zh_TW)
64 |
--------------------------------------------------------------------------------
留言
3 | 4 | <% if(config.disqus_shortname) { %> 5 | 6 | 7 | <% } %> 8 |