Node.jsのES Modulesサポートの現状確認と備え

この話を今日のNode学園で話すので、ご興味あればどうぞ。 nodejs.connpass.com (今日いくつか加筆修正しました) ECMAScript 2015で待望のES Modules(ESM)の仕様が策定されたものの実装がなかなか進まない、という話を1年前に発表した。 その後、ブラウ…

thank-you-starsで利用しているnpmパッケージに気軽にスターを送る

先週、こういうツイートを見て、 OSSを使っているなら、GitHubのリポジトリにそっとスターをつけると開発者のキャリアにわりと直接的に貢献できるのでお薦めです。少額の寄付より効果があるかも— Taro L. Saito (@taroleo) 2017年8月15日 共感したのでサクッ…

CircleCI 2.0 GAリリース: 続Node.jsマルチバージョンビルド

CircleCI 2.0 GA が無事リリースされたので、betaが取れるのを待ってた方は是非どうぞ。 今の所は爆速だったbeta時代と遜色ない速度で動いてる。 circleci.com 1.0やTravis CIと比較してのCircleCI 2.0のメリットは前回記事に書いたのでご参照ください。 Cir…

CircleCI 2.0 でNode.jsのマルチバージョンビルド

追記 2017/07/11 CircleCI 2.0 GAがリリースされたので、curlではなく標準機能Workflowsを使ったバージョンを紹介する記事を書いたので、こちらをご参照ください。 CircleCI 2.0 GAリリース: 続Node.jsマルチバージョンビルド - teppeis blog 追記終わり。 C…

npm install scriptの脆弱性とオープンソースと信頼

先日アナウンスされた脆弱性とその周辺について、とりとめなく。 The npm Blog — Package install scripts vulnerability Vulnerability Note VU#319816 脆弱性の概要 VU#319816 によれば、今回問題になっているのはnpmの以下の性質を利用するとnpmパッケー…

ES2016の追加機能が決定、あるいはES7言うな問題

今年6月に公開予定の ECMAScript 2016 (ES7) で追加される機能が以下の2つに決定した。 Array.prototype.includes Exponentiation Operator 今後は3月1日にスペックのスナップショットが切られ、6月の公開に向けた作業が始まる。 あれ、ES7ってそれだけなの…

npm initでauthorやlicenseなどの初期値を指定する

JavaScript Advent Calendar 2015の2日目。小ネタです。 npm initするときにauthorとかlicenseとか毎回同じこと入力するの面倒だったりしません?実はいくつかの項目は初期値を設定できるのだけど、ググってもあまり日本語情報が無いようなので共有。 設定方…

『よもだそば(日本橋)』カレー Advent Calendar 2015 1日目

カレー Advent Calendar 2015(あと3人募集中!)の1日目です。 2013年は家の近所のカレー屋を紹介したのですが、今年は会社の近くの行きつけである『よもだそば』を紹介します。

npm v2のインストールは`npm i -g npm@latest-2`

タイトルで言い切った感のある小ネタ。 最新のnpm v3は基本素晴らしいのだけど、主にnode_modulesがフラットになったなどのbreaking changesによって一部のパッケージがまだ非対応だったり、自分のプロジェクトで固めたshrinkwrap.jsonからは対応前の古いパ…

Spring Boot 1.2/1.3でhot swapping的なこと

唐突にJavaの話。Spring Bootで変更を動的に反映する場合(いわゆるhot swappingとかhot deploy)はSpring Loadedを使えって出てくるのだけど、なんか動いたり動かなかったりしてなんでなんだろうと小一時間調べたメモ。Spring Boot + Maven + IntelliJ IDEA…

明日の次世代Webカンファレンスでjs_nextやります

イベントの趣旨はconnpassを見てもらうとして、自分は11:10から js_next というセッションでオーナーをやります。 メンツは@t_wadaさん、@constellationさん、@vvakameさんという盤石の布陣。 このセッションでは、JavaScriptの未来はどうなっていくのか、ブ…

YAPCで『Effective ES6』について発表してきた

8/21-22に開催されたYAPC::Asia Tokyo 2015で "Effective ES6" というタイトルで発表した。 今回、自分にとっては最初で最後のYAPCだったけど、YAPCの面白さは特定分野に留まらないWeb系エンジニアが一堂に会するところだと感じた。 例えばHTTP/2ってWeb全般…

Node学園でES6について話した

Node学園 16時限目 ES2015発行記念でES6について話しました。 Run through ES6 (ES6総ざらい) Everything is Iterator (IteratorについてのLT) 本編の充実度もさることながら、無法地帯と化した懇親会でFilip Pizloの業績を烈火のごとく語るConstさんと…

WEB+DB PRESS Vol.87にES6特集書いた&YAPCにES6のトーク応募した

3行でまとめ 今週中にもES6が正式公開される予定 => 6/17に公開されました! 6/24発売のWEB+DB PRESS Vol.87にES6特集を書いたので読んでください! YAPCにEffective ES6というトークを応募したので、はてブ&Tweetお願いします!

ES6 ModulesはHTTP/2によってconcat無しで使えるようになるのか

HTTP2 時代のサーバサイドアーキテクチャフィードバック - Togetterまとめ のあたりで話していたことのまとめ。 補足 タイトルで「ES6 Modulesってconcatしないと動かないの?」と一部に誤解を与えてしまったようなので補足。ES6 Modulesがブラウザにネイテ…

いまどきの.travis.yml

いまさら感もあるのだけど、あまり知られていないようなのでTravis CIの高速化+αなtipsを書いておく。 先にNode.js向けの完成形の.travis.ymlはこちら。 language: node_js node_js: - "0.12" - "4" - "6" sudo: false cache: directories: - node_modules T…

BabelとTraceurでES6末尾再帰最適化を試す

ちょっと前にBabelに末尾再帰最適化が入って話題になったけど、同じくTraceurにもv0.0.85で最適化が入ったので試してみた。

grunt-parallelize v1.1.0リリースおよび零細OSSの継続性について

2015/03/29 10:30 フォークについて末尾に追記 gruntタスクのファイルリストを分割して並列実行するgruntプラグイン、grunt-parallelizeを前に作った。 タスクを並列超速化するgrunt-parallelizeを紹介するよ - teppeis blog そこそこ使われてるっぽいのだけ…

GitHub上のnpmパッケージ名をリンクに変えるChrome拡張GitHub Linkerで捗る

GitHub上のソースコードでrequire('morgan')とか書いてあって、このパッケージってなんだっけ?って "npm + morgan" でググってnpmのサイトかGitHubリポジトリを探すことってよくある。 ありすぎるので、自動リンク化するChrome拡張書こうかなと思って先行実…

io.js用に書いたパッケージはnpmでどう扱うか問題

東京Node学園 15時限目に参加したときにふと思った疑問について。 Node.jsと非互換なAPI使ったとき、npmにあげていいの?package.jsonのengineとかで書けるのか #tng15— teppeis (@teppeis) 2015, 2月 10

typescript-simpleの高速化と最近のTypeScript Compiler API周辺動向

ES6 compat tableのTypeScriptコードのビルド時間を300秒から2秒に短縮した話と、最近のCompiler APIの動きの紹介。

TypeScript Compiler Service APIでシンプルなコンパイラを書いた

TypeScript 1.4が出てCompiler Service APIのドキュメントが出てきた。 Using the Compiler API · Microsoft/TypeScript Wiki · GitHub よーし触ってみようと思ったのだけど、APIがファイルを前提にしていて、ちょっとしたTypeScriptコード片を文字列で渡し…

おまえは今まで実行したassertの回数を覚えているのか?あるいは新しいアサーションユーティリティのご提案

JavaScript Advent Calendar 2014 11日目。 いきなり要約: Promiseや非同期テストのアサーションを簡単確実に書けるようになるesplanというライブラリのPoCを作った話。 Promiseや非同期のテストは難しい 詳しくはJavaScript Promiseの本: Chapter.3 Promise…

TypeScriptの注目の型関連issue

TypeScript Advent Calendarの4日目。 TypeScriptのロードマップを見てもES6対応以外は "Investigate top-rated feature requests" とか書いてあるぐらいで、GitHub Issuesのコメントのやりとりを見ていても割りと流動的に良い提案があったら取り入れる感じ…

ES6テンプレートリテラルをテンプレート関数化する

V8にES6テンプレートリテラルが入ったらしいということで、 テンプレートリテラルが実装された - JS.next 先に入っているFirefox 34(現beta)で遊んでみた。

そろそろCSP Lv.2 nonceやろう

tl;dr CSP Lv.2のnonceを使うと意外と簡単にCSPの恩恵を受けれるよ Firefoxはunsafe-inlineとの挙動がおかしいので注意 サンプル実装としてExpressで簡単にnonce対応できるconnectプラグインを書いた(デモあり) Violation Reportもブラウザによって細かい…

3分で分かるFacebook Flow

というか3分ぐらいの情報しかまだ出てきてないんだけど。 先月の@Scale 2014で発表されたFacebookのFlowについて、おそらく唯一のオフィシャルな情報であるこの発表動画を見て分かったことを紹介(ざっと見ただけなので間違ってたらごめんなさい)。

Mac/iOS Safariでバックスラッシュを円記号として表示する方法

css

Unicodeではバックスラッシュ*1と定義されているU+005Cだが、歴史的な背景によりMS系日本語フォントでは円記号が割り当てられているのはよく知られた話。 ところがMac/iOSに載っているヒラギノ角ゴシック等ではU+005Cはバックスラッシュとして表示されるし、…

TypeScriptで複数ファイル構成する2つの方法

TypeScriptで複数ファイル構成のプロジェクトを扱う方法について書いてみる。日本語の入門記事や試してみました系の記事で勘違いされてることがたまに見受けられるので、整理してみる。 公式のModules in TypeScriptを既に読んでおられるような御仁は回れ右…

TypeScriptの宣言空間とその不満

最近TypeScriptの型を触っていてハマったあたりのまとめ。だいたい仕様書に書いてあるとおりなので、すでに仕様書を読破している諸兄にはこの記事は必要ないです。 宣言空間 (declaration space) とは 宣言空間というのは、同一宣言空間で同じ名前が複数存在…