Ruby 2.1 : 世代別ガベージコレクションが採用されることを受けての議論

4年弱前

年内にリリースされる予定のRuby 2.1で世代別ガベージコレクションが採用されることをうけて、RubyMRIの評価についての議論がされてます。


現行のRuby MRI GCの実装に批判的なGithubのVicent Martiは、 大規模システム向けはJRubyもしくはRubiniusに集約することを主張してます。New RelicのChris Kellyもそのパフォーマンスの遅さを指摘していますが、一方で、Ruby 1.8からRuby 1.9でGCのベンチマークが48%改善していることも明らかにしてます。



「優れたGCエンジニアはOracle VMチームなどに限られている。」


「GCのアルゴリズムは複数あるが、既に本番投入されているプログラミング言語に後から実装するのは相当難易度が高い。」


「であれば、そもそもMRIを諦めて、RubyのコアチームはRubyの言語開発自体に専念すべきでは。...

nginx, syslog-ng & Redisでのリアルタイム分析

4年弱前

nginx, syslog-ng, Redisを利用したピクセルデータのトラッキングでリアルタイム分析をする方法が紹介されてます。A/Bテストの分析などに便利ですね。


他に(リアルタイムではないですが)ピクセルデータをAmazonCloudFrontCDNにホストしMapReduceを実行させログを直接S3にはいた事例、オープンソースで提供されているソリューションhttps://github.com/snowplow/snowplowなども紹介されています。


Realtime pixel tracking with nginx, syslog-ng, and Redis
https://news.ycombinator.com/item?id=6386701

Node.jsで並列非同期処理HTTPリクエスト数制限に対応する

4年弱前

DDoS攻撃対策のために並列リクエスト数を制限しているDNSプロバイダーが存在するが、Node.jsにおいて、並列非同期のバッチが完了するまで次のバッチ処理を待つ機能を利用するとこれに対応することができる。複数のRSSフィードのポーリングなどに応用できます。サンプルコードも紹介されてます。

goworker: Resque/Sidekiqより早いバックグランドワーカー

4年弱前

Goで書かれたバックグランドワーカーです。Resque / Sidekiqよりも早く、軽い。(メモリ使用量は、goworker: 7MB, Sidekiq: 74MB, Resque: 62MB)バックグランドワーカーのためにサーバ(もしくはdyno)台以上使ってる場合にお勧めで、ワーカーライブラリをこれから使う場合は、Resque / Sidekiqからはじめたほうが簡単とのこと。


Show HN: goworker – a faster, Resque-compatible background worker
https://news.ycombinator.com/item?id=6393048

Retina MacBook Proがスタンドバイモードになるのを遅らせる

4年弱前

Retina MacBook Proを1時間ほど放置すると、スタンドバイモードから立ち上がるのに10秒以上かかってしまいますが、



sudo pmset -a standbydelay 14400<- 好きな秒数を設定する



でスタンドバイになる時間を設定することができます。

Airbnb: 日本語サイトを短期間で立上げ

4年弱前

Airbnbは192カ国で展開していて、予約の2/3は海外旅行とのこと。


CEOが日本を訪問することが直前に決まって、急遽日本語サイトを短期間で立ち上げた話しです。40万語の英語のコンテンツを短期に全翻訳するのは不可能なので、直近日間のページ / メールテンプレ参照を参考に優先付けし、スクリーンショットと連動した翻訳管理画面を作成して翻訳作業を完了させた経緯が紹介されてます。


ちなみに、「別荘/個室/自宅やアパートまるごと貸し出します」「ご近所界隈ガイド」「世界一円のカスタマーサポートまで」など、翻訳としては意味わかるけど、もう少しこなれた言い方に変えればよいのにと思う表現満載です。ネイティブスピーカーに翻訳させればよいという話しではなく、マーケティングメッセージのきちんとわかる人がチェックしたほうがよいですよね。自分たちが英語サイトを作るときも気をつけねば。


Launching...

LinkedIn: 分散ストリームプロセッシングフレームワークをオープンソースとして提供

4年弱前

LinkedInのエンジニアブログで、分散ストリームプロセッシングフレームワークであるApach Samzaをオープンソース化したことを紹介してます。


  • LinkedInのリアルタイムアーキテクチャはKafkaに支えられ、アクティビティデータ、運営KPI、サービスコールのトレース、ログデータ、アプリのメッセージなどの取得に利用されている。

  • Samzaが実現しているストリームプロセッシングによるアウトプットの取得はバッチよりもかなり短い処理が期待できるが、ハードウェアの障害や分割/分散された環境で実現することは大きなチャレンジであった。

  • Hadoopに例えると、KafkaはHDFS、SamzaはMapReduceの役割を果たす。

  • SamzaはHadoopのYARNフレームワークの上に構築されている。YARNは、Samzaプロセッシングの分散処理をマシン間の共有クラスタにまたがり実行し、...

Dropbox経由でウェブサイトのホスティング

4年弱前

「SEE DEMO」から紹介ビデオを立ち上がります。HTML/CSSファイルをDropboxフォルダにあげると開発環境/本番にアップしてくれるホスティングサービスです。


「Githubでやればいいだろう」という声もありますが、非エンジニアの人にとってはDropboxで手軽にできるのはよいと思います。「ビジネスモデルはどうするの?」というのは確かにそうで、容量で課金するにもDropboxの課金とかぶりますし、どうするんでしょうね?好調なDropboxに買収されるのを狙っているのか?イヤ、おそらくそれほどすごい技術でもないのかな。とすると事業として出口がないサービス?


Dropbox-Hosted Websites
https://news.ycombinator.com/item?id=6387242

シンプルにレスポンシブデザイン化した事例

4年弱前

Hashrocket.comをリニューアルしたときのレスポンシブデザイン化について紹介してます。


  • 横幅1200px / 高さ320pxをベースにどの画面サイズにも対応する

  • Retinaディスプレイのために二つ画像用意したのは、ブラウザでリサイズされずシャープに表現したいヘッダーロゴなど主要ロゴだけ。それ以外は実際の画像サイズが適度に小さな表示がされるようにwidth設定するだけで、Retinaディスプレイでも問題ないことを確認済。

  • Backgroundの横幅は高さの90%に設定し、適宜変化させる

  • スライドショーはCycle2を採用

#デザイン #ui #ux #レスポンシブデザイン

Couchbase: JSON Anywhereでモバイル開発を効率化

4年弱前

CouchbaseのFounderの一人のJ. Chris Andersonがブログで、モバイル向けの新製品JSON Anywhereについてふれています。複数のバージョンが混在するモバイルサービスにJSONでフレキシブルに対応できること、異なるデバイス / バックエンドDBとの同期が飛躍的に簡単になることを導入の利点としてあげてます。簡単なto doアプリをつくるのに200行ほどのRailsのコードが必要なところをJSON Anywhereでは33行のJavaScriptで書けるとのこと。


バックエンドを気にしなくてもすむ世の中になっていくのがありがたいですね。

RSpec: コントローラのテストでのエラー回避

4年弱前


Failure/Error: get :index ActionController::UrlGenerationError: No route matches {:action=>"index", :controller=>"engine_name/controller_name"}



ルート/コントローラ/マウントを正しくセットしてもルートを見つけられない上記のようなエラーがでるとき、その回避策として、Railsエンジンのspec/supportディレクトリに、get/post/put/deleteメソッドをモンキーパッチするファイルを置くことを紹介してます。

Web Workers/AngularJS/Firebaseでクライアント側に実装したゲームAI

4年弱前

Web Workers/ AngularJS /Firebaseを利用してクライアント側に実装したコネクト フォー(四目並べゲーム)が紹介されてます。UI / AIともにソースを参照できます。


「JavaScript (with HTML5 & V8) は、UIだけでなくAIのような計算タスクもこなせることをみせるためのデモ」ですので、必ずしもAIプレイヤーの強さを自慢するものではないようですが、まだ数十回しか負けてないということはかなり強いかと。私も連敗しました。。


Show HN: pure client-side Connect Four AI with Web Workers, AngularJS, Firebase
https://news.ycombinator.com/item?id=6384713