タグ

ブックマーク / yosuke-furukawa.hatenablog.com (21)

  • Node.js における Promise を使った例外処理 - from scratch

    さて、 Node.js のエラーハンドリングは難しいと言われてますが、 2016年現在、つまりNodeの v4 とか v6 が主流になり、 Promise が基的な処理として採用されている状況ではどうでしょうか。ちょっと考えてみます。 一応これの補足です。 qiita.com TL;DR 未だに難しい。ただし、 Promise で改善されている。async-await や zone まで来たらかなり楽になる。 あと、 unhandledRejection が uncaughtException よりも酷いことにならないので、大分マシになっている。 Node.js のエラーハンドリングの難しさ まず JavaScript には同期と非同期のエラーハンドリングのやり方があります。前者は所謂 try-catch による方法、後者は callback を使って第一引数で実現する方法や emit(

    Node.js における Promise を使った例外処理 - from scratch
  • Node.js v6.0 (Current) がリリースされました。 - from scratch

    さて、とうとう皆さん待望の Node.js v6.0 がリリースされました!次のLTS候補です。LTSになるのは2016年の10月からの予定です。v6 の LTS 期間は明示化されてないですが、ルールに照らし合わせれば、LTSになってから 2年半がサポート期間なので、おそらく 2019年4月まではサポートされます。 Node v6.0.0 (Current) | Node.js Node.js v6.0 の主な変更点 ES2015 support の改善 module load性能の改善 Buffer API の new Buffer() コンストラクタの廃止 (セキュリティ上の理由から) ES2015 support の改善 やっぱりこれが一番大きな変化ですね。 node.green を見てもらえればわかるかもしれませんが、 ES2015 のサポートがこれまでは 58% だったのが 96

    Node.js v6.0 (Current) がリリースされました。 - from scratch
  • JavaScriptの文化とleftpadの話とpadStartについて - from scratch

    無駄にラノベみたいに長いタイトル書いちゃったんですが、まぁやっぱり一言くらいは残しておくかと思ったので書きます。長いのでまとめだけでも見てもらえると良いかもしれません。 leftpadの話はかなり大事になっていて、Node.js界隈を中心としてその他のOSSをやっている全体的に話が波及しています。幾つかの記事を読みました。今回はJSの文化歴史についてちょっとずつ書いていこうかなと思います。 の虫: npmからkikとその他諸々が消されたまとめ 江添さんの話はすごくよくまとまっていて、ネタも含めた上で一番面白い話になっていました、ここで言われている下記の疑問に答えていこうと思います。 もっと憂うべきパッケージがある。isArrayだ。このパッケージは一日88万回もダウンロードされていて、2016年2月だけの一ヶ月間に1800万回もダウンロードされていて、72個ものNPMパッケージが依存し

    JavaScriptの文化とleftpadの話とpadStartについて - from scratch
  • Go弱の会でgolangデビューしてきた。 #gojaku - from scratch

    やっとgolangデビューしました。 とは言っても、一回Google Developers Daysで一回入門して、なんか書いたことはあったんですが、その時以来、全く書いてなくて、再入門した形になります。 せっかくなので、Go弱の会でやったことをまとめます。 Go install Goのインストールから始まりました。 当はgoenvとか使うといい感じに入れられるのかもしれないんですが、まずはスタンダードなインストールをする事に。 公式サイトからインストールするかbrewを使うか。 一応、brewを使って入れてみました。 $ brew install gogo 1.1が入らない!とか思ったらbrew updateのし忘れだった事は秘密、忘れないようにしましょう。 $ brew update $ brew install go 忘れずに、GOROOT、GOPATHを設定。 以下のexpo

    Go弱の会でgolangデビューしてきた。 #gojaku - from scratch
  • 2015年のふりかえり - from scratch

    さて、もう一個の記事です。 当この一年は振り返っておかないともったいない一年だったので振り返っておきます。 もう2016年になっちゃったけどスルーします。僕が認めるまで2015年です。 考えてみると、Node.js日ユーザーグループ代表になって2年目です。当初あげていた目標である、海外に向けての意見発信であったり、国際カンファレンスでの発表経験だったり、YAPCやCROSSでの講演と当に色々経験させてもらいました。 1月 ◆ CROSS 2015 で講演(OSSという枠でパネルディスカッション) 2015.cross-party.com ◆ io.js 出たばかりで issue 追ったり PR 出したりしてました。 当初の目的は io.js と Node.js の混乱を少なくとも国内だけは抑えられるようにしようと思っていました。 2月 ◆ 東京Node学園祭で io.js について発

    2015年のふりかえり - from scratch
  • electron を学べる workshopper である electronica を作ってみました。 - from scratch

    ちょっと最近Fallout4でサンクチュアリを開発するのに忙しすぎてOSS界隈の仕事サボってしまっていたので、31日にして書かないといけない記事が2つほど残っていることに気づきました。 なので、一個をこの場で投下しておきます。 手短に言うと、electronicaというworkshopperを作りました。 github.com $ npm install electronica -g $ electronicaで起動します。最初はHello Electron から始まり、最終的に小さなブラウザを作るくらいまでの事をやります。 残念ながら、verifyは動かないので、終わったたら自己判断で次のexerciseをやらないといけないので、まだNodeSchoolで使えるまでは行かないのですが、暇な冬休みにやってみてください。 僕はこの冬休みにはverifyがちゃんと動くようにします。 では次の記

    electron を学べる workshopper である electronica を作ってみました。 - from scratch
  • JavaScriptの科目 - from scratch

    なんかブログのお蔵入り記事を見返してたら色々出てきたので見切りでリリースしておく。 今読むとなんか合わない気もするし、まぁお酒の中での与太話程度に見ておいてください。 これの話してたのは2月くらいなので一年位経過してる。。 JavaScript の科目 先日、牛角.jsという名の飲み会で、@mootohさんと@bad_at_mathさんと牛角で飲み会でした。 その飲み会で出た話題を一つ。 元々はこの話で、 バベルの塔へ向けたフロントエンド開発者の咆哮について。気持ちはよくわかる。 https://t.co/QaabnJeEVw— juske the badatmath (@bad_at_math) February 3, 2014 フロントエンジニアが持つべきスキルセットが多すぎる!!ということをHNのスレで話し合っててすごく面白く、それを肴に飲み会してました。 んで、そこから話は飛び火し

    JavaScriptの科目 - from scratch
  • WebRTCをcordovaから使えるようにする PhoneRTCの紹介 - from scratch

    このエントリはWebRTC Advent Calendar 2014 - Qiitaの20日目の記事です。 最初に断っておきますと、PhoneRTC使って何か作ってみようとしたんですが、ちょっと自分の実力及ばず、少ない期間でそこまではできなかったので簡単な紹介です。実際に何か作れたらまた紹介します。 PhoneRTC さてさて、WebRTCは注目されている技術ではありますが、実際に使おうとすると、Safariではまだ使えなかったりします。 WebRTCが使えるブラウザ一覧 ここをなんとかするためには、PhoneRTCを初めとするWeemoとかそういったプラグインを使ってネイティブアプリにしてしまうという方法があります。 PhoneRTCはCordova plugin の一つで、cordova使っているWebViewアプリならWebRTCが使えるようにしようというプロジェクトです。 Inst

    WebRTCをcordovaから使えるようにする PhoneRTCの紹介 - from scratch
  • 【翻訳】リッチなWebアプリケーションのための7つの原則 - from scratch

    はじめに この話はGuillermo Rauch氏が書いたhttp://rauchg.com/2014/7-principles-of-rich-web-applications/ という記事の翻訳です。許可を得て翻訳しています。 ここ最近Web業界を賑わしているSingle Page Applicationの必要性、HTTP2/SPDYといった技術、リアクティブプログラミングやIsomorphicデザインという考え方について包括的にまとめたすごく良い記事になっております。 最初に断っておきますが、ものすごく長いです。各セクションがわかれているので時間がない方はセクションごとに書かれたtl;DRとまとめを読むだけでも参考になるかと思います。 ちなみに明日のNode学園祭には、記事を記述したGuillermo Rauch氏が見えるので、そこで詳しく聞いてみるのもいいのではないでしょうか。

    【翻訳】リッチなWebアプリケーションのための7つの原則 - from scratch
  • WebRTCについての話を社内勉強会でしてきた - from scratch

    ずっと興味はあったし、追っていたんですが手は出せていなかったWebRTCについてやっと学ぶことが出来ました。 ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化 作者: Ilya Grigorik,和田祐一郎,株式会社プログラミングシステム社出版社/メーカー: オライリージャパン発売日: 2014/05/16メディア: 大型この商品を含むブログ (2件) を見る ハイパフォーマンスブラウザネットワーキングという(以下、HPBN)がありまして、会社の中で輪読会していました。みんなで一つの章を担当しながら話すというスタイルでやっていました。 そこで僕が紹介したWebRTCの話です。 基的にWebRTCの中でやっていることを深く説明した資料になっています。 HPBNの資料だけで分からなかったところはWebRTCミートアップの資料や先人た

    WebRTCについての話を社内勉強会でしてきた - from scratch
  • JSオジサン #3 で colo について話してきた。 - from scratch

    coloについては、前にこのブログでも触れたんですが、今回のためにcoloをブラウザ対応させました。 <script type='text/javascript' src="./colo/colo.js"></script> <script type='text/javascript'> colog(colo.red("colo colo")); colog(colo.cyan.bold("colo colo")); colog(colo.green.underline("colo colo")); colog(colo.magenta.italic.bold("colo colo")); colog(colo.grey.bold.italic.underline("colo colo")); </script> bower対応させたので、 $ bower install colo でも入

    JSオジサン #3 で colo について話してきた。 - from scratch
  • Go lang勉強会でgo-socket.ioの話してきた - from scratch

    さて、先日HDE社様で行われたGo lang勉強会に誘われたので最近の興味にあるgo-socket.ioの話をしてきました。 発表資料 go-socket.ioのベンチマークに使ったサーバーとクライアント yosuke-furukawa/go-socket.io-test · GitHub go-socket.ioの感想 golangでwebアプリ作ろうとすると、websocket実装はあるんですが、websocket使えない端末や環境では自前でfallbackする必要があり、若干面倒でした。socket.io相当のものがあればもう少し幅が広がると思ったので使って評価してみたその感想と性能評価の結果です。 性能に関してはまだまだNode.jsの実装の方が歴史が長いだけあって高速だし安定してました。 というわけで、まだ出来上がったばかりという感は否めなくて、これを使ってリアルタイムなアプリを

    Go lang勉強会でgo-socket.ioの話してきた - from scratch
  • 天下一altjs武闘会に jsx 枠で出場してきた。(わかめ本の書評付き) - from scratch

    TypeScriptリファレンス Ver.1.0対応 作者: わかめまさひろ,井上章,丸山弘詩出版社/メーカー: インプレスジャパン発売日: 2014/05/16メディア: 単行(ソフトカバー)この商品を含むブログ (2件) を見る 仕事ではJSXでライブラリとか作るおじさんをやっているんですが、その時の自分の信条として、必ずJavaScriptから呼べるようにもするっていう事を守ってやってきた結果、jsx-linkerとかバインディングの書き方をある程度心がけるといい感じにJavaScriptとJSXの垣根を取っ払えるなと思っていたので、そのノウハウ紹介でした。 JSXの特徴とか wasabizとか gfxが話してくれるだろうし、不要かなと思ってたんですが、急遽一人で発表になってしまったので、 jsx 特徴でググってる— Yosuke FURUKAWA (@yosuke_furukaw

    天下一altjs武闘会に jsx 枠で出場してきた。(わかめ本の書評付き) - from scratch
  • Socket.IO 1.0の紹介 (翻訳) - from scratch

    Socket.IO 1.0がリリースアウトされました。Socket.IO v1.0が出るといわれてから一年半以上経過しましたが、やっと出ました。Node.jsに関わる方であれば一度はお世話になっていると思います。今回はSocket.IO 1.0の紹介を作者であるGuillermo Rauchがしているので、それを日語で翻訳して紹介します。 TL;DR 翻訳していたらすごく面白かったのですが、文字だらけですごく長くなってしまったので、最初と最後にまとめを載せました。興味があれば全部目を通してみてください。 モジュール分割が進み、新しくEngine.IOが作られています。これはSocket.IOのトランスポート層のプロトコルを調律する役割を担っているライブラリです。 Engine.IOが行っている処理の一つで、最初に接続できる可能性が高いXHRやJSONPで確立し、websocketにupg

  • Yeoman入門(第二部、generatorを作る) - from scratch

    さて、Yeoman入門の第二部です。このエントリはシリーズ物なので、第一部を見ていない方は第一部も参考にしてください。 Yeoman入門(第一部、yoを使う) - from scratch 第一部を軽くおさらいすると、yoは雛形作成をしてくれるツールでした。 そのyoの雛形作成機能を使えば、手間を掛けずに基盤が作れるという利点がある、という説明をしました。 今回の話は、そのyoの雛形を作成する方法を紹介します。 ここではその雛形を作成する機能のことを generator と呼びます。 generatorを作る。 既存のgeneratorを参考にして作る方法とgenerator-boilerplateを使う方法、generator-generatorを使う方法の3種類があります。ただ、どれも仕組みは同じなので全ては説明しません、generator-generatorを使う方法を中心に説明しま

    Yeoman入門(第二部、generatorを作る) - from scratch
  • 「チーム開発に役立つstubcell」ってタイトルでCodeGrid 2周年パーティでLTしてきた。 - from scratch

    CodeGrid 2周年パーティでLTしてきました。 2周年おめでとうございます!! TL;DR stubcellというjsonを返すことに特化したstubサーバーを作りました 内部的にjson5を使うことで定義ファイルにコメントを書くことができ、開発者間のコミュニケーションの補助になる grunt, gulpからstubサーバーを使うことができるため、フロントエンドタスクランナーと相性が良い 発表資料 stubcell 概要 いわゆるJSONを返すことに特化したstubサーバーです。 チームで開発する時に、APIサーバー、クライアントサイド、websocketサーバーといった感じに複数の役割を複数の人数で請け負って同時並行開発することが多く、APIのエンドポイントがなくてもクライアントサイドやwebsocketでも開発できるようにするためにstubcellを作りました*1。 また複数人で

    「チーム開発に役立つstubcell」ってタイトルでCodeGrid 2周年パーティでLTしてきた。 - from scratch
  • LevelDB入門 (基本編) - from scratch

    さて、今回は比較的新しいデータストアであるLevelDBについてまとめてみました。 LevelDBは1年ほど前からNode.js界隈ではブームが来ていて、理由がよくわかっていなかったんですが、まとめている内に分かるかなと思ってまとめました。今回はNode.js無関係でLevelDBの基礎的なことだけ調査した結果をまとめてみました。 Node.jsで使ってみる話は後に回します。 LevelDBとは? key-value型のデータストアの一つです。 Googleの研究者である、Jeff DeanとSanjey Ghemawatが開発し、2011年に公表されました。C++で書かれており、多くのプログラミング言語でbindingsが書かれています。もちろん、JavaScript/Node.jsでも書かれています。 LevelDBGoogle のBigTableをベースにしたアーキテクチャを持

    LevelDB入門 (基本編) - from scratch
  • 東京Node学園 12時限目を開催しました。 #tng12 - from scratch

    さてさて、先週水曜日に東京Node学園 12時限目を開催しました。 DeNA様からスシの供給(ハッシュタグを付けて再送) #tng12 pic.twitter.com/QC9bTX49a2— S治 えすじ(ティア108-F70b) (@esuji) April 24, 2014 こんな感じで寿司の話ばかり目立ってますが、かなり寿司で喜んでいただいたみたいで恐縮です。 Node-v0.12の新機能について by @jovi0608 Node-v0.12の新機能について from shigeki_ohtsu Node v0.12の新機能として、主にstream3の話とPromise/Object.observe/WeakSet, WeakMapの話でした。当はもっとたくさんの話をしてもらいたかったんですが、時間の都合で途中までになってしまいました。 実際、Node v0.12の機能がここまで

    東京Node学園 12時限目を開催しました。 #tng12 - from scratch
  • 東京Node学園 11時限目を開催しました。 - from scratch

    東京Node学園の11時限目を開催しました。 新代表に就任してから最初のNode学園ということで結構ハラハラ・ドキドキしてたんですが、 スタッフの皆さんと手伝ってくれた方々のおかげで滞り無く進行することができました。 ありがとうございました。 トゥギャってくれた方がいて、大変ありがたかったです。 東京Node学園 11時限目 - Togetterまとめ イベントの様子はそこ見ても分かるかもしれません。 さてさて、東京Node学園のレポート書いていきます。 「これからのNodeの話をしよう」 by @yosuke_furukawa 内容としては、Node.jsのnews、Node v0.12で変わること、最近のライブラリ、東京Node学園の今後を話しました。 Node v0.12のtracing apiやexecSyncのデモ、koaやPrimusに関して、「知らなかった」とか、「楽しそう!

    東京Node学園 11時限目を開催しました。 - from scratch
  • オレ的Gruntに対する最新の気持ち - from scratch

    Gruntについて最新の気持ち ::ハブろぐ 上記のブログエントリを読んで非常に今自分が感じていることと共通点を感じました。 Gruntに対する最新の気持ちでは2つの問題提起がされてました。 1. Gruntfile.jsが長すぎる(700行とか) 2. そもそも全部gruntでやらなきゃいけないのか 1.に関しては色んな解決手段があります、ブログの筆者も解決されているようですし、この件に関しては次回のMaintainable Gruntfile.jsで触れます。 最初は2.に関しての、全部gruntでやらなきゃいけないんだっけ、という疑問に関してです。 僕も同じ思いをしてたので、同調してブログを書きます。 gruntについて 言わずと知れたタスクランナーですね、gruntを使うとjavascriptのminifyやmeta cssのコンパイルといったフロントエンドにありがちな作業を自動化

    オレ的Gruntに対する最新の気持ち - from scratch