タグ

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

  • socket.io が提供してくれているものは何か - from scratch

    現在開発中のシステムにリアルタイムな処理があり、そこで socket.io を使おうかなと思ってて、そういう折にタイムリーにもこの辺りの記事がタイムラインで出てきたのでメモ代わりに自分の意見を残しておく。 blog.jxck.io qiita.com socket.io が提供してくれているもの 「ブラウザとサーバ間のプロトコル」という観点で見ると socket.io は WebSocket を基として繋がらなかった時に XHR Long Polling や polling といった形式の代替手段を提供してくれるもの、という位置づけ。 一方で「ライブラリ」という観点で見ると socket.io はリアルタイムアプリケーションを作る際に必要になる処理をまとめて実装し、クライアントとサーバ間での EventEmitter として抽象化してくれているもの、という風になる。 もう少し噛み砕いて言

    socket.io が提供してくれているものは何か - from scratch
    kasumani
    kasumani 2016/08/27
    socket.io が提供してくれているものは何か 現在開発中のシステムにリアルタイムな処理があり、そこで socket.io を使おうかなと思ってて、そういう折にタイムリーにもこの辺りの記事がタイムラインで出てきたのでメモ代わ
  • 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
    kasumani
    kasumani 2015/01/01
    JavaScriptの科目 なんかブログのお蔵入り記事を見返してたら色々出てきたので見切りでリリースしておく。 Tags: feedly, ifttt, recently read, saved for later from Pocket January 01, 2015 at 01:50AM via IFTTT
  • io.jsについて知っていること - from scratch

    今、Node.jsに起きてることを語る上で、io.jsは避けて通れない話題でしょう。 今回のNode.js アドベントカレンダー 2014の締めを飾るために、このio.jsについて僕が知っている限りの事をまとめて書くことにします。 io.jsを知り、今後"Node"がどうなっていくのかを皆で一緒に考えていきましょう。 またこの一連のio.jsのfork騒動はOSSという特殊なプロジェクトをどう進めていくのがハッピーなのかを知る一つの教材だと思います。 OSSに関わっている皆さん、今回も長いですが、最後まで読んでもらえると幸いです。 io.js とは何か Node.jsのForkです。次のNode.jsの安定版になる、v0.12をForkしています。「アイ・オー ジェイエス」と読みます。名前の由来は木星にある四番目に大きな衛星の名前から取られました。*1 Nodeを使っている人のことをnod

    io.jsについて知っていること - from scratch
    kasumani
    kasumani 2014/12/25
    io.jsについて知っていること Nodeを使っている人のことをnodersと呼びますが、io.jsを使っている人のことはionians(アイオニアンズ)と呼ぶそうです。 一番大きな違いはプロジェクトの取り組み方ですね。io. Tags: feedly, ifttt, recentl
  • 文字認識ライブラリ okrabyte を使ってS3にPUTされた画像をAWS Lambdaで文字認識する - from scratch

    このエントリはAWS Lambda Advent Calendar 2014 - Qiitaの(当は9日目の)記事です。 (ちょっとAWS Lambdaのアカウント取得に手間取ってしまって遅刻してしまいました。。すいません。。) AWS Lambda とは AWS LambdaAmazonが作った新サービスであり、S3の変更やDynamoDBの変更をフックしてNode.jsの関数を実行するという仕組みになっています。これを使うと、例えばデータが変更された後にPush Notificationを出したり、S3にアップロードされた画像のサムネイル画像を作成したりといったことが可能になります。 今回はこのAWS Lambdaを使ってS3でPUTされた画像から文字認識をしてみようという試みです。文字認識した結果をDynamoDBとかに置いて検索に利用すれば、画像内に書かれた文字で検索できるよう

    kasumani
    kasumani 2014/12/22
    文字認識ライブラリ okrabyte を使ってS3にPUTされた画像をAWS Lambdaで文字認識する AWS LambdaはAmazonが作った新サービスであり、S3の変更やDynamoDBの変更をフックしてNode. Tags: feedly, ifttt, recently read, saved for later from Pocket December 22, 201
  • 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
    kasumani
    kasumani 2014/12/21
    WebRTCをcordovaから使えるようにする PhoneRTCの紹介 シグナリングサーバーを作る PhoneRTCのAPIであるcallを実行すると、PhoneRTCはP2Pの接続を確立しようとします。それにはシグナリングサーバーが必要です。シグナリングサーバー
  • EcmaScript6 + power-assert でテストを書く - from scratch

    この記事はJavaScript Advent Calendar 2014の15日目の記事です。 さてさて、EcmaScript6に対する機運が高まっている中で、ES6の新機能の紹介記事が出てきておりますが、ES6が使えるブラウザはまだ浸透しておらず、使おうとするならばTraceur Compilerや6to5といったトランスパイラを利用せざるを得ないというのが現状です。 これらのトランスパイラも実際のプロダクトで使おうとするとまだそこまで実績がないし、いきなり番で使うという訳にいかない人達が多いかと思っています。 ただし、ES6には慣れておきたい、、、ES6の新機能(let, template-string, arrow function, generator, promise, etc...)を使ってみたい、、、 ならばせめてテストだけでもES6で書こうじゃないか、いずれES6が来た時

    EcmaScript6 + power-assert でテストを書く - from scratch
    kasumani
    kasumani 2014/12/16
    EcmaScript6 + power-assert でテストを書く この記事はJavaScript Advent Calendar 2014の15日目の記事です。 さてさて、EcmaScript6に対する機運が高まっている中で、ES6の新機能の紹介記事が出てきておりますが、ES6が使えるブラウザはまだ
  • Yet Another JSON な json5をgolangでparseできる奴を作った - from scratch

    このエントリは Go Advent Calendar 2014 の記事です。 さて、僕はJSONSchemaで疲弊してたんですが、主に疲弊してた理由としてはJSONの表現力不足(ケツカンマ許さない、コメントかけない等)とJSONSchema Validatorで不正な値があった時の情報量の少なさでして、JSONの表現力不足に関しては皆さんYAML使ったりして色々解決してるとは思います。 そこで自分もYAMLではなく、JSON5使って解決しようと考えてgolangで実装してみました。 JSON5の詳細に関してはこちらのエントリを参考にされると良いかと思います。 普通にjson5をインストールする インストールは簡単。 $ brew tap yosuke-furukawa/json5 $ brew install json5そんで、こんな感じのjson5ファイルを用意して、 // This i

    Yet Another JSON な json5をgolangでparseできる奴を作った - from scratch
    kasumani
    kasumani 2014/12/03
    Yet Another JSON な json5をgolangでparseできる奴を作った このエントリは Go Advent Calendar 2014 の記事です。 さて、僕はJSONSchemaで疲弊してたんですが、主に疲弊してた理由としてはJSONの表現力不足(ケツカンマ許さない、コメントか
  • Stream今昔物語 - from scratch

    この記事は Node.js Advent Calendar 2014 の 1日目の記事です。 こんにちは、代表です。 Stream大好きなみんなのためにStreamの過去と現在、そして未来についてお話するよ!! Streamを何故使うのかっていう話と歴史的な話をします!! Streamとは データの流れを扱うための抽象化されたモジュールです。もうみんな耳にタコかもしれませんが、Streamを使うとデータの流れを綺麗に書くことができます。ちなみに今に始まった概念ではなくて、C++にもC#にもStreamがありますし、Java8の新機能にもStreamがあります。「データを扱うときの抽象化された流れ」を指す広義のStreamという意味では今日の言語ではだいたい実装されています。 Node.jsでは、以下のリンクが参考になるでしょう。 Node.js の Stream API で「データの流れ」

    Stream今昔物語 - from scratch
    kasumani
    kasumani 2014/12/02
    Stream今昔物語 Stream大好きなみんなのためにStreamの過去と現在、そして未来についてお話するよ!! Streamを何故使うのかっていう話と歴史的な話をします!! Tags: from Pocket December 02, 2014 at 08:14PM via IFTTT
  • 【翻訳】リッチな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
    kasumani
    kasumani 2014/11/15
    【翻訳】リッチなWebアプリケーションのための7つの原則 この話はGuillermo Rauch氏が書いた7 Principles of Rich Web Applications | という記事の翻訳です。許可を得て翻訳しています。 Tags: from Pocket November 27, 2014 at 11:47AM via IFTTT
  • Node.jsで同期的にコマンドを実行できるようにする execsyncs を作った。 - from scratch

    Node.jsでshellのコマンドを実行する場合は以下のようにする必要がありました。 var exec = require('child_process').exec, child; //child_process.exec関数を利用する child = exec('cat *.js bad_file | wc -l', // exec関数は非同期関数なのでcallbackを取り、そこでstdout, stderrを取る function (error, stdout, stderr) { console.log('stdout: ' + stdout); console.log('stderr: ' + stderr); if (error !== null) { console.log('exec error: ' + error); } }); Node.js の v0.11では同

    Node.jsで同期的にコマンドを実行できるようにする execsyncs を作った。 - from scratch
    kasumani
    kasumani 2014/07/27
    Node.jsで同期的にコマンドを実行できるようにする execsyncs を作った。 Node.js の v0.11では同期的にコマンドを実行するexecSyncと呼ばれるメソッドがcoreモジュールから提供される事になっています。 こうやって書きたいんです
  • Farewell Node.js (翻訳) - from scratch

    「visionmedia、Node.js辞めるってよ」って事で、今回はこの話の翻訳ですね。 Farewell Node.js — Code adventures — Medium 最近のnode.jsはホントTJ Fontaine のリーダー就任から始まってNode.jsでできたエディタであるAtomがreleaseされたり、gemのモジュール数をnpmのモジュール数が抜いたり、socket.io v1.0が出たりと色々あるんですが、今回の話は飛び抜けて衝撃的だったなぁと思ってます。 一応知らない方のためにvisionmediaについて説明しておくと、以下のモジュールは全てvisionmedia製です。 express (Web Applicaiton Framework) mocha (Testing Framework) jade (hamlライクなtemplate engine) s

    Farewell Node.js (翻訳) - from scratch
    kasumani
    kasumani 2014/07/07
    Farewell Node.js (翻訳) 最近のnode.jsはホントTJ Fontaine のリーダー就任から始まってNode.jsでできたエディタであるAtomがreleaseされたり、gemのモジュール数をnpmのモジュール数が抜いたり、socket.io v1. Tags: feedly, ifttt, recently read, saved f
  • 大阪のNode.js勉強会でNode.jsのセキュリティについての話してきた #npp02 - from scratch

    大阪Node学園に行ってきました。 かねてから雰囲気を知りたいと思っていた大阪Node学園に行ってきました。 行く前から今回の勉強会はすごく人数が少ない、という事だったので、役に立つ話(セキュリティの話)とぶっちゃけ話(心の闇)の両方をしようと思って行ってきました。 建前と音の話 建前と音というタイトルで話してきました。 建前編はセキュリティに関する話がメインで、そんなにNode.js関係ないんですがProductionで動かすなら知っておいてまぁ損はないです。 音編は音というかセキュリティに関するぶっちゃけ話なので言えない事が多く、削除してしまいました。 大阪Node学園の発表内容 「Node を稼働させる」 by @kumatch 資料 : Nodeを稼働させる from kumatch kumatch Node.jsを番環境で起動させるには、っていうことで、プロセスをデーモ

    大阪のNode.js勉強会でNode.jsのセキュリティについての話してきた #npp02 - from scratch
    kasumani
    kasumani 2014/06/19
    大阪のNode.js勉強会でNode.jsのセキュリティについての話してきた #npp02 かねてから雰囲気を知りたいと思っていた大阪Node学園に行ってきました。 Tags: feedly, ifttt, recently read, saved for later from Pocket June 19, 2014 at 01:58PM via IFTTT
  • npmのあまり知られてない機能 10選 - from scratch

    なんか最近Twitterとか職場でも「npmの機能でそんなのあったんだ」って言われること多いので、説明していきます。 ちなみにタイトルにとりあえず10選って書いたけど、あんまりたくさん思いついてないのに、10選って書いてしまったので最後の方は微妙かもしれません。 1. npm installは npm i でも同じことができる まぁ単純なショートカットですね。isntallとかtypoしてても空気読んでくれるんですが、短いほうがいいよねってことで。 # npm installって書くのも $ npm install socket.io #npm i って書くのも同じ $ npm i socket.io # ちなみに --saveは -S, --save-devは -D にできる $ npm i socket.io -S $ npm i mocha -Dショートカット小ネタ。 2. npm

    npmのあまり知られてない機能 10選 - from scratch
    kasumani
    kasumani 2014/06/14
    npmのあまり知られてない機能 10選 なんか最近Twitterとか職場でも「npmの機能でそんなのあったんだ」って言われること多いので、説明していきます。 Tags: feedly, ifttt, recently read, saved for later from Pocket June 14, 2014 at 07:45PM via IFTTT
  • 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

    kasumani
    kasumani 2014/05/30
    Socket.IO 1.0の紹介 (翻訳) Socket.IO 1.0がリリースアウトされました。Socket.IO v1.0が出るといわれてから一年半以上経過しましたが、やっと出ました。Node.jsに関わる方であれば一度はお世話になっていると思います。今回はSocket.IO
  • 「エンジニアのためのデータ可視化 実践入門」を読みました - from scratch

    エンジニアのための データ可視化[実践]入門 ~D3.jsによるWebの可視化 (Software Design plus) 作者: 森藤大地,あんちべ出版社/メーカー: 技術評論社発売日: 2014/02/20メディア: 単行(ソフトカバー)この商品を含むブログ (4件) を見る 読みきりました。はぁー学生の時にこの読みたかった... このには以下の3点の要素があります。 データ可視化に関しての入門 D3.jsの入門 D3.jsによる可視化の実践 これらのどれかに興味があれば読んだほうがいいです。それぞれ紹介していきます。 データ可視化に関しての入門 可視化は表現方法の一つであり、コミュニケーションを円滑にするためのツールです。そして各グラフ一つとっても来の使い方があり、間違った使い方をすると円滑になりにくいです。 一つ僕が大学生時代に誤用していたグラフの例を紹介します。 pre

    「エンジニアのためのデータ可視化 実践入門」を読みました - from scratch
    kasumani
    kasumani 2014/05/20
    「エンジニアのためのデータ可視化 実践入門」を読みました 可視化は表現方法の一つであり、コミュニケーションを円滑にするためのツールです。そして各グラフ一つとっても本来の使い方があり、間違った使い方をす
  • 「チーム開発に役立つ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
    kasumani
    kasumani 2014/05/12
    「チーム開発に役立つstubcell」ってタイトルでCodeGrid 2周年パーティでLTしてきた。 スターをつけました CodeGrid 2周年パーティでLTしてきました。 2周年おめでとうございます!! TL;DR stubcellというjsonを返すことに特化したstub
  • 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
    kasumani
    kasumani 2014/05/06
    LevelDB入門 (基本編) さて、今回は比較的新しいデータストアであるLevelDBについてまとめてみました。 LevelDBは1年ほど前からNode. Tags: from Pocket May 06, 2014 at 12:48AM via IFTTT
  • Unix Philosophy と Node.jsのモジュールの作り方 - from scratch

    The Art of UNIX Programming 作者: Eric S.Raymond,長尾高弘出版社/メーカー: アスキー発売日: 2007/06/19メディア: 大型購入: 4人 クリック: 91回この商品を含むブログ (62件) を見る TL;DR Unix Philosophyにおいては、「一つのことをうまくやり、協調する仕組みを持つ」という事が大事 Node.jsのモジュールにおいても同じで、「一つのことをうまくやる、Stream APIで協調する」と良い 「一つのことをうまくやる」にはどうするのが良いのか、ということで substack のモジュール実装例 Simple と Easyの違い ちょっと今回長くて文字が多いので、最初と最後にまとめを用意しました。時間がない方はこれを読むだけでもいいかと。 Unix Philosophy さてさて、Unix Philosoph

    Unix Philosophy と Node.jsのモジュールの作り方 - from scratch
    kasumani
    kasumani 2014/04/22
    Unix Philosophy と Node.jsのモジュールの作り方 ソフトウェアにおける普遍的な哲学の一つで、「一つのことをうまくやれ」と略される事が多いです。wikipediaからの説明を借りると Tags: feedly, ifttt, recently read, saved for later from Pocket
  • Docker Node Testerを使ってNode.jsをバージョン毎にテストする #葉桜js - from scratch

    昨日は 葉桜js でした。 今回は客層からかテストとセキュリティの話が多かった。t_wada, malaさんの影響は大きい。 #葉桜JS— Yosuke FURUKAWA (@yosuke_furukawa) April 14, 2014 僕のLT t_wadaさんが来るということでテストっぽい話をしたくて、Docker Node Testerの話をしました。 Node.js v0.12 に関して このブログで Node.js v0.12で変わることについて色々と紹介してきました。NANの話もそうですし、traicing apiとかsync child_processもそうです。 Node.js v0.12では他にもコアモジュールに色々とバグ修正やエンハンスが加わっています。 コアチームが互換性に配慮しているとはいえ、影響を受けてしまい、自分のモジュールが動かなくなることは考えられます。

    Docker Node Testerを使ってNode.jsをバージョン毎にテストする #葉桜js - from scratch
    kasumani
    kasumani 2014/04/15
    Docker Node Testerを使ってNode.jsをバージョン毎にテストする #葉桜js このブログで Node.js v0.12で変わることについて色々と紹介してきました。NANの話もそうですし、traicing apiとかsync child_processもそうです。 Node.js v0. Tags: feedly, iftt
  • node.jsのnative addonを作るときはNANを使おう。 - from scratch

    さて、 Node.js v0.12 で変わることの一つとして、native addonを作る時に後方互換性を壊す変更が加えられています。 これにより、v0.10でnative addonを作っているモジュール達は、ほとんど動かなくなってしまうことが考えられます。 V8側がこの後方互換性を壊す変更をしているため、V8に追従しているNode.js側としてはこのbreaking changesを受けざるを得なかったんだと思います。*1 どれくらい変更されてるのかは node.js の native addon で Hello World モジュールを作る方法が載っているのでそれをまずは参考にします。 // これまでの v0.10ではこう書いてた。 #include <node.h> #include <v8.h> using namespace v8; Handle<Value> Method(

    node.jsのnative addonを作るときはNANを使おう。 - from scratch
    kasumani
    kasumani 2014/04/08
    node.jsのnative addonを作るときはNANを使おう。 さて、 Node.js v0.12 で変わることの一つとして、native addonを作る時に後方互換性を壊す変更が加えられています。 これにより、v0. Tags: feedly, ifttt, recently read, saved for later from Pocket Apri