タグ

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

  • Node.js の原罪 - from scratch

    Intro ちょうどタコピーの原罪が流行ってるのでこのタイトルにしたけど結構気に入ってる。 d.potato4d.me この話を読んでの感想とここまで大きくなった Node.js の振り返りをしようと思う。 どんなプログラミング言語であってもみんなから使ってもらって開発者をハッピーにしたいと思ってる。ただ最初は良かったと思ってた機能がなんか古臭くなったり、他にクールな機能を持ったものが登場したことによって徐々に飽きられていき、最終的に他の言語に乗り換えられる。 まぁどんな言語も同じだと思う。C言語だって生まれた当初はすごくクールでみんなをハッピーにしてた。今丁度「戦うプログラマー」を読んでるが、C++が出てきて、周りのエンジニアC++ を使おうとするシーンが出てくる。そこで、「あんなの使って何が良いんだ、Cで十分だろ」とWindows NT 開発リーダーのデーブカトラーが言ってたりする

    Node.js の原罪 - from scratch
    Nyoho
    Nyoho 2022/04/08
    年表が載っていてとてもよかった。「2022年 | 現代へ。この記事書くの大変でした。」ありがとうございました。
  • npm, yarn による zero install 戦略 - from scratch

    jsconf.eu 2019 に行ってきました。 特に npm や yarn の今後の話とそもそも Registry をどうしていくか、の話があったのでお知らせします。 そもそも Registry をどうしていくかについては次のエントリで話します。 tink: A Next Generation Package Manager npm の次のコマンドラインツールである tink が紹介されていました。 github.com presentation: github.com video: www.youtube.com そもそも npm の仕組み ローカル依存ファイルを読む (package.json, package-lock.json, shrinkwrap.json) 存在しないパッケージのメタデータをfetchする 木構造を計算して、実行する(npm v3 以降だとflattenする

    npm, yarn による zero install 戦略 - from scratch
    Nyoho
    Nyoho 2019/06/10
    おおついにあのすぐ数百メガになるnode_modules/から解放されるのか! (tink, yarn v2)
  • npm v5 がリリースされた - from scratch

    npm v5 The npm Blog — v5.0.0 npm に v5 がやっとリリースされました。この npm v5 は既に明日リリース予定の Node v8 にバンドルされる予定です。 かいつまんで、機能を紹介します。 Notable Changes package-lock.json!!! faster than npm v4 no more --save option Offline mode sha512 support package-lock.json!!! npm v4 まで問題だった npm-shrinkwrap の問題 を解消するための新しい lock ファイルが生まれました。 shrinkwrap は依存ライブラリを固定するための機能です。npm v4 までは shrinkwrap で固定していましたが、新しく npm v5 になってからはshrinkwrap は

    npm v5 がリリースされた - from scratch
    Nyoho
    Nyoho 2017/05/31
  • ソフトウェア例え話、格言、小噺 - from scratch

    2016年になってから色んなソフトウェアエンジニアの人と話してきて、その中で3人から聞いた例え話、格言、小噺が面白かったので、僕の中だけで留めておかずに開放しておく。 息継ぎをするには『まず息を吐く』という例え話 水泳で息継ぎをするなら『まず息を吐きなさい』と教わるらしい。これは息を吐かずにどこかで息を貯めてしまうと、ちゃんと息を吸えないという事を意味してる。息を吐くと苦しくなって顔は絶対に水面に出る。 これと同じことがソフトウェアの学習にも言える。 つまりまずアウトプットする、なんでも良い。作ったものをGitHubに公開するとか、発表するとか、ブログやQiitaに書くとか。ちゃんとアウトプットしたものはフィードバックがあり、そのフィードバックを受ける(PRやissue, 質問, マサカリ etc)、どんどん吐き出していくと吸わないとネタがなくなるので、吸い込むためにまたインプットする。

    ソフトウェア例え話、格言、小噺 - from scratch
    Nyoho
    Nyoho 2017/01/01
    いい話だった。
  • リクルートテクノロジーズのフロントエンド開発 2016 - from scratch

    前書き このエントリーは Recruit Engineers Advent Calendar の 1日目の記事です。 www.adventar.org リクルートテクノロジーズのフロントエンド開発 リクルートテクノロジーズではいくつもの並行するタスクが走っていて、プラットフォーム基盤と呼ばれる基盤技術開発とインフラソリューションと呼ばれるインフラ開発、後はアプリケーション開発支援などのタスクが存在します。 アプリケーション開発支援の中でもウェブフロントエンド開発は目下のところ重要タスクとされており、色んなやり方をトライアルしています。 基的には、 React Redux Node.js という組み合わせでフロントエンド開発をしています。 主には以前 ubb.jp というイベントで発表したこの資料に記載されている内容でやっていますが、諸々補足します。 リッチなウェブアプリケーションを作るた

    リクルートテクノロジーズのフロントエンド開発 2016 - from scratch
  • 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
    Nyoho
    Nyoho 2016/08/28
  • io.js がリリースされました - from scratch

    さてさて、io.js ver.1.0.0, 1.0.1 が無事アメリカ時間の1/13日に予告通りリリースされました。 リリースから数日経過して、現在はv1.0.3が出ています。 ある程度v1.0が安定してきた今、実際にNode.jsとどう違うのかを解説したいと思います。 Node.jsと機能的に違う所はどこか 前回の記事のio.jsについて知っていること - from scratchでも触れたんですが、一番大きな違いはv8が新しくなり、ES6の機能が増えました。 詳しくは公式のES6に関するページを読んでもらうとして、かいつまんで書いていきます。 ES6の機能に"shipping", "staged", "in_progress"の3段階のラベルがつくようになりました。 これはES6の機能の安定度合いを示していて、 "shipping" > "staged" > "in_progress"

    io.js がリリースされました - from scratch
    Nyoho
    Nyoho 2015/01/25
  • 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
  • 【翻訳】リッチな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
    Nyoho
    Nyoho 2014/11/15
    無限スクロール便利だけど確かに戻るボタンで戻ったときにスクロール位置が保存されてなくて最初からになるのよくないもんねえ。他にも多視点で面白い。
  • ES6+カジュアルトークを開催しました #es6_casual - from scratch

    ES6+カジュアルトークを開催しました。 Ustreamはこちらです。 Ustream.tv: ユーザー dena_tech: DeNA Technology Seminar #ES6+カジュアルトーク, Recorded on 2014/10/29. コンピュータ 僕はES6を追い始めたのが遅くて、ちゃんと追うようになったらもっと前に追っている人がたくさんいたので、その人達を呼んでカジュアルトークをしつつ、ガチで学べる会を開催しました。 全体的に発表レベル高くて濃い話が聞けたと思っています。 TL;DR ちょっとES6使ってみよっかなーな人はrunstantがオススメです。 Node.jsの次のバージョンではarrow_functionがharmony付きで使えるようになります。Symbol, for-of, Collections, Object.observe, Promiseがデフ

    ES6+カジュアルトークを開催しました #es6_casual - from scratch
    Nyoho
    Nyoho 2014/11/05
  • 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
  • herokuでNode.jsを使ってchatアプリ その3(MongoDBを利用して、メッセージを永続化) - from scratch

    さてさて、第三弾です。 今回はMongoDBを利用して、メッセージの永続化にまで挑戦してみました。 Yosuke Chat test MongoDB自体の勉強から入ったのですが、MongoDBはすごく簡単で良いですね。 特にNode.jsとの相性が良いです。ライブラリも豊富ですし、割とドキュメントも揃っています。 今回はherokuのaddonであるmongoHQを利用します。 まずはadd-onを実行するための下記のコマンド実行してください。 $ heroku addons:add mongohq:freeこれであなたのherokuアプリケーションから利用できるようになります。 ※add-onを有効にするためには、herokuのユーザー検証が必要になります。 ユーザー検証にはクレジットカード番号等も必要になりますが、100MBの範囲で利用する分には無料です。 Node.jsとmongoD

    herokuでNode.jsを使ってchatアプリ その3(MongoDBを利用して、メッセージを永続化) - from scratch
  • Yet Another JSONなJSON5の紹介とそれのjsxバインドを作ったこと - from scratch

    さて、JSON5についての紹介です、みんなjsonを使って色んなリソースを表現すると思いますが、jsonって色々と不便ですよね。 よく挙げられるjsonの不満: ケツカンマが使えない コメントが入れられない keyに必ずquoteが必要 などなど。 この手の話はよくあるんですが、これは仕様で決まってしまっていることなのでどうしようもないです。 この手の話が出る度に色んな解決策があります。jsonじゃなくてyaml使おうとか、csonいいよ、とか、jsonでparseできなかったらevalしてjavascriptオブジェクトにしちゃおうとか。 んで、もう一つの解決策として、JSON5っていうYet AnotherなJSON形式があるわけです。 これ使うと普通のJSONはJSONとしても読み込めるし、上にある、コメントやケツカンマ、ダブルクオートの問題も解決されます。どうしてもコメント入れたい

    Yet Another JSONなJSON5の紹介とそれのjsxバインドを作ったこと - from scratch
  • Maintainable Gruntfile.js - from scratch

    さてさて、前回の続きです。 オレはgruntのエコシステムに乗って楽をしたい、でもGruntfile.jsが長くなりすぎて辛い、grunt taskが時間がかかりすぎて辛い、という話は話で分かります。また、それに対する色んな解決策もあります。 最近出た、HTML5Rocksで紹介されてたやり方もあるし、いくつか先人の知恵もあるので、解決していきましょう。 Gruntfile.jsが長くなりすぎて辛い時 https://github.com/firstandthird/load-grunt-configを使いましょう。 いろんなtipsを見てきましたが、このライブラリが一番分かりやすく、かつGruntfile.jsをメンテナブルに保つことができます。 load-grunt-configには3つの機能があります。 grunt pluginの自動ロード機能 grunt configのファイル分割

    Maintainable Gruntfile.js - from scratch
    Nyoho
    Nyoho 2014/02/23
    こ、このbefore/afterぐらいだと五十歩百歩って言うんじゃ……って言ったら怒られるかもしれんのう^^
  • オレ的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
    Nyoho
    Nyoho 2014/02/19
  • Go弱の会でgo vs node.jsのパフォーマンスベンチを取った話をしてきた。 #gojaku - from scratch

    Go弱の会に行ってきました。今回はnitrous.ioの話、revelの話、Dartの話がありました。 僕も少しだけしゃべったので、その話を含めてやったことをまとめます。 僕が話した内容 Go弱っぽく、Webアプリを作成し、そのベンチマークを取ってみました。 作ったアプリ angularjs と goweb(RestFul server) と mgo (mongo driver) でツイッターっぽいアプリを作ってみました。 Goweb製(heroku) : http://goweb-angular.herokuapp.com/app/#/ githubはここでアップしてます。 GitHub : https://github.com/yosuke-furukawa/goweb-sample ちなみに比較対象のkoa製の方もherokuにアップされてます。 Koa製 (heroku): htt

    Go弱の会でgo vs node.jsのパフォーマンスベンチを取った話をしてきた。 #gojaku - from scratch
  • Docker + Jenkins + travis.yml parser 作って Travis っぽいものを作った話 - from scratch

    年末にDocker触ってて、これをうまく活かせば、副作用を無視した使い捨てのテスト環境が作れるんじゃねーかな、という意識が高まったのですが、手を付けられずにうにゃうにゃしてました。 そうこうする内に yahooのデベロッパーの方からJenkins with Dockerというタイトルの発表があり、ほぼ僕のやりたい事のベースができていたので、これをforkして、travis.yml parserや若干のバグフィックスを入れてもう少しだけTravisに近づけてみました。 ちなみにこれは 社内 Immutable Infrastructure ハッカソンした時の成果物です。 Immutable Infrastructure Hackathon at :D を開催したら、configspec の敷居が高いのでコミッタになっていました - sonots:blog 今回の成果物に関して、詳しくはここを

    Docker + Jenkins + travis.yml parser 作って Travis っぽいものを作った話 - from scratch
  • 1