タグ

ブックマーク / wazanova.jp (27)

  • [その1] Ruby 2.0のガベージコレクタを使いこなす - ワザノバ | wazanova

    http://samsaffron.com/archive/2013/11/22/demystifying-the-ruby-gc Ruby 2.1のガベージコレクタ (GC) については、「RubyPythonの違いからガベージコレクタを理解する [その1] [その2] 」で取り上げましたが、今回は、DiscourseのSam SaffronがまとめているRuby 2.0のGCを利用するにあたっての学びを紹介します。 1) Heaps of heaps MRIはヒープにRVALUEとして知られているオブジェクトをもつ。各ヒープは約16KB。RVALUE構造体は、マシンのアーキテクチャによって異なる量のメモリを消費する。x64マシンでは40 byte、x32マシンではサブアーキテクチャー次第で20 byteから24 byte。RVALUEはマジカルなC構造体で、Rubyの様々なローレベル

    fjwr38
    fjwr38 2015/07/15
  • Uberの急成長とそれを支える技術 - ワザノバ | wazanova

    https://www.youtube.com/watch?v=GHTO2WKDO6I#t=33m43s 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Uberの技術については以前から興味ありましたが、残念ながらその点についてはあまり発信がない会社。今回、@Scale 2014に、CTOのThuan Pham(元VMWare / Westbridge / Doubleclick)とSenior Engineering ManagerのPaul Holden(元Apple)が登壇していたので、その他の情報も調べてまとめてみました。 1) 急成長 急成長という意味では、かつてはGrouponがありましたが、サイトのローカル言語/課金対応さえすれば、後は営業 + サイト運営の体制づくりというオペーレーショ

    fjwr38
    fjwr38 2015/04/22
  • サイト更新終了のお知らせ - ワザノバ | wazanova

    読者のみなさまへ Wazanova News の運営を行ってきた米国法人 Wazanova, Inc. を清算することにともない、当サイトの更新を終了いたします。1 年半にわたりご応援いただき、まことにありがとうございました。 特に、Gittip (Gratipay) を通じて継続的にご寄付いただいた方々に御礼申し上げます。2015年 3月上旬より寄付の受付を終了し、お預かりしたお金は全額 Gittip サイトの運営者に寄付するよう設定してあります。 既存コンテンツは当面の間、従来の URL でも閲覧できます。Jshiike からのご挨拶にもある通り、一部を個人ブログサイトにも移行しており更新も予定されていますので、こちらについてもご愛顧いただければ幸いです。 今後もメンバそれぞれ、IT / ソフトウェアエンジニアの世界に貢献していければと考えております。引き続きどうぞよろしくお願いします

    fjwr38
    fjwr38 2015/03/25
    結構読んでたのに
  • iOSのデバッグを極める - ワザノバ | wazanova

    http://www.objc.io/issue-19/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 objc.ioはベルリンのメンバを中心に、月替りでiOS関連技術の特定のテーマに絞って発信しているブログ。もう既に知名度はかなり高いかと思いますが、毎月ものすごく力の入った特集ゆえに、その分ボリュームも相当で、読むのも大変というか、時間がないから読めてない人もいるかと。今月は#19としてデバッグの話題です。 Peter Steinbergerの「デバッグ : ケーススタディ」では、UIKit上のバグをLLDBで対処した話を紹介。 「デバッガーでのダンス - LLDBのワルツ」において、Ari GrantはLLDBの使い方を詳説してくれています。 「DTrace」はiOSシミュレータでしかまだ利用で

    fjwr38
    fjwr38 2014/12/28
  • Rustを学びシステムレベル言語を理解すること - ワザノバ | wazanova

    https://www.youtube.com/watch?v=ySW6Yk_DerY Rustについては「Rustのあれこれ」で少し触れましたが、Yehuda Katzが、Skylightの一連のブログとGoGaRuCo2014の講演で、「ハイレベル言語のプログラマーがシステムレベルの言語を学ぶチャンス」という観点で紹介しています。 主なポイントとしては、 プログラミング言語の特性は変わることがないとか、プログラミング言語のパフォーマンスと生産性は常にトレードオフであるという考え方は、JavaScriptにおいて、生産性が少し改善されつつ同時にパフォーマンスが大きく向上してきたという事実から、必ずしも正しくはない。 Rustは、セグメンテーション違反が起きないという意味での安全性と、どこにメモリを置くか直接コントロールできる仕様を両方兼ね備える。 Rustを学ぶということは、ハイレベル言

    fjwr38
    fjwr38 2014/10/31
  • Facebook: iOSアプリのアーキテクチャ - ワザノバ | wazanova

    https://www.youtube.com/watch?v=XhXC4SKOGfQ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 39分前 FacebookのiOSチーム、Adam ErnstとAri Grantによる@Sacle 2014での講演。データモデルとビューレイヤの改善の取組みについて紹介してくれてます。 1) データモデル 背景 2年前からHTML5からネイティブに切り替えて一旦大きく改善したが、その後機能を追加するたびにアプリのパフォーマンスが悪化。 ネイティブに移行後、オブジェクトのキャッシュレイヤとしてiOSのCore Dataを使ったのが失敗であった。 Core Dataの役割は「整合性を含むオブジェクトグラフ管理」 Facebook iOSアプリの場合、サーバ側を正のデータとするが、

    fjwr38
    fjwr38 2014/09/17
  • Dockerのメリットと可能性 - ワザノバ | wazanova

    https://www.youtube.com/watch?v=mVN7aTqr550 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Code ClimateのBryan HelmkampのRedDotRuby 2014での講演です。ビデオの前半の30分は、Docker + Rubyアプリのユースケースの場合の、概要/ツール紹介/デモです。ここでは、後半に語られているDockerのバリューについて、まとめてみます。 デリバリーの単位 Rubyエンジニアとして、デリバリーするときの単位という概念が今まではなかった(が、Dockerで実現できた)。かつて、JRubyでしばらく開発していたときがあって、その際は、jarファイルの中身がなんであれ、テストして問題なければ、DevOpsチームに渡すだけ。ある意

    fjwr38
    fjwr38 2014/08/05
  • Gilt: Playフレームワークの活用 - ワザノバ | wazanova

    https://www.youtube.com/watch?v=WliXLG2Yo5k 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約3時間前 GiltにおいてPlayフレームワークをどのように活用しているのか、Giancarlo Silverstrinが紹介してくれています。 単一のRailsアプリからマイクロサービスに切り替える過程で、JVM + Java -> JVM + Scalaと開発基盤を変遷。現在、番環境には、250+サービス。 マイクロサービスへの展開時には、バックエンドのRailsアプリは残すかたちで既存の資産の有効活用。webレイヤでには75+個のアプリ(コード約7万行)がある。リソースとUIテーストを共有したアプリの組み合わせで、Giltのサイトは構成されている。 フラッシュセール(毎

    fjwr38
    fjwr38 2014/07/31
  • Rubyのパフォーマンス計測ツール - ワザノバ | wazanova

    https://www.youtube.com/watch?v=cOaVIeX6qGg 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 42分前 Aaron Quintは、オンライン/オフラインで招待状やお祝いのカードを送るサービスであるPaperless PostのCTOです。GoRuCo 2014で、お薦めのRubyアプリのパフォーマンス計測ツールを紹介してくれてます。 評価の基準としては、 Specificity (Sp): アウトプットの内容がどれだけ詳細か。 Impact (Im): Probe Effectのレベル。計測が意図しないシステムの振る舞いにつながる可能性のある影響度合い。この数値が大きいと番環境では使えない。 Difficulty of Operator Use (Op): ツールのセッ

    fjwr38
    fjwr38 2014/07/22
  • Node.js & Go: スタートアップのテクノロジーの選択 - ワザノバ | wazanova

    https://www.youtube.com/watch?v=Iebb5dXaScE 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 GopherCon 2014における、PoptipのCEOであるKelsey Falterの講演。同社はCNN、ESPN、L’Orealなどメディア & コンシューマグッズ大手に、ソーシャルメディアコンテンツの分析やアンケートのプラットフォームを提供しているNew Yorkのスタートアップです。 最初はNode.jsで開発したが、スタートアップにありがちな大手顧客の対応のためのスケールアップと、平行して資金調達活動を続ける中での時間がないバタバタの状況で、 インスタンスが落ちるとシングルポイント障害点になってしまう。ホストしているサーバの障害やアプリのクラッシュなどが

    fjwr38
    fjwr38 2014/07/22
  • 何でもデバッグできるようになるスキル - ワザノバ | wazanova

    https://www.youtube.com/watch?v=VV7b7fs4VI8 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 パッケージ(apt, yum, gem等)レポジトリのホスティングサービスであるPackageCloudを開発している、James Golickの講演です。 パフォーマンスの高いハイクオリティなソフトウェアをデプロイしたければ、あらゆるレベルでバグ修正ができるようになること。 まず、エピソードとして紹介しているのが、友人の会社のサイトが落ちて、あいにく、その会社のエンジニアが出払ってしまっていて、どうにかしてほしいと助けを求められたときのこと。 ソースコードを見たことない。 システムの構成を知らない。 phpは詳しくない。 SSHでアクセスできる情報だけはある。 とい

    fjwr38
    fjwr38 2014/07/22
  • Node.jsをサーバサイドのUIレイヤに限定するのか? - ワザノバ | wazanova.jp

    http://www.nczonline.net/blog/2013/10/07/node-js-and-the-new-web-front-end/ Nicholas ZakasはYahoo出身で現在Boxに勤めるフロントエンジニアで、JavaScriptに関する複数のオライリーの著者でもあります。彼が自身のブログで、Node.jsをサーバサイドUIレイヤのみで活用することを提言してます。 JavaScriptエンジニアフロントエンドのコントロールはできるが、サーバサイドのUIレイヤはバックエンドエンジニアの領域で、それがフロント(JavaScriptエンジニアとバックエンドエンジニア双方のストレスであった。(参照図1) Node.jsの登場で、サーバサイドのUIレイヤをサーバサイドのビジネスロジックから分離し、フロントエンジニアはブラウザ & サーバのUIレイヤ、バックエンドエン

    fjwr38
    fjwr38 2014/03/24
  • AngularJSとRails4を組み合わせる - ワザノバ | wazanova

    https://shellycloud.com/blog/2013/10/how-to-integrate-angularjs-with-rails-4 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 Railsアプリのホスティングサービスを提供しているShelly Cloudがブログで、フロントでAngularJS、バックエンドでRails 4を採用するときの留意点について、まとめています。使用しているコードサンプルはこちらになります。 1) Building a JSON API in Rails RailsAPIをいちから作ってみる。angularjs-rails-resourceのようなライブラリを使うときは詳細が違ってくるが、考え方は概ね同じ。 Routing namespace :api

  • Githubの組織が成長する過程で変えたことと変えなかったこと - ワザノバ | wazanova

    GithubのZach Holmanが語るGithubの組織戦略です。まず最初に、 Step #1: ロックスターエンジニアを雇う Step #2: ものすごく透明性のある経営をする Step #3: ブログ/ソーシャルメディアなどでテクノノロジーについて発信する Step #4: カンファレンスで会社について話す Step #5: カネに余裕ができる Step #6: 社員を大勢雇う Step #7: 会社のことを話さなくなる Step #8: コミュニティを無視する Step #9: 創業者が株を売って儲ける Step #10: 別の会社をはじめる という事例を挙げて、Githubは組織が成長する中で、このようなパターンに陥らないように、コミュニケーション及び仕事の進め方をどのように進化させてきたかについて紹介してます。 Dunbar's numberとしてよく知られるとおり、人間が良

    fjwr38
    fjwr38 2014/01/17
  • Stack Overflowのアーキテクチャ - ワザノバ | wazanova

    http://www.youtube.com/watch?v=OGi8FT2j8hE1 comment | 0 pointsドイツのハンブルグで開催されたDeveloper Conference 2013で、Stack Overflowのアーキテクチャが紹介されてます。 Stack Overflowのネットワークは、110 Q&Aサイト、430万ユーザ、質問760万件、回答1360万件、月間5億6千万ページビュー サーバ25台: ウェブサーバ11台(内9台でほぼトラフィックさばく)、ロードバランサ1台 (+ 予備1台)、DBノード4台、アプリサーバ3台、検索サーバ3台(Elasticsearch)、Redisサーバ2台(キャッシュ、メッセージング) 毎秒質問が投稿されているので、トップページには都度最新の質問を掲載するように更新はできないが、ユーザの回答パターン、質問閲覧パターン、好みのタ

  • [その2] Rubyプログラマー向けのGo言語の解説 - ワザノバ | wazanova

    http://www.sitepoint.com/go-rubyists-ii/1 comment | 0 pointsその1はこちら。 2回目は、Web.goを解説します。 前回で、Goにおいてどのように抽象化が機能しているかわかってきたと思うので、ウェブフレームワークであるWeb.goをみてみよう。まずそれを実行するためにはGo環境をセットアップする必要がある。まずは、レポジトリ例をクローンすることをお勧めする。webgo-examples/ディレクトリに入れば、自分のシェルで実行できるようになる。 export GOPATH=`pwd` cd src go get github.com/hoisie/web これでWeb.goフレームワークのコピーが入手できるはず。main/hello-world.goファイルを開けると、 package main import ( "github.

    fjwr38
    fjwr38 2014/01/09
  • [その1] Rubyプログラマー向けのGo言語の解説 - ワザノバ | wazanova

    http://www.sitepoint.com/go-rubyists-ii/1 comment | 0 pointsGlenn Goodrichが、Rubyプログラマー向けにGo言語のinterfaceとWeb.goを紹介しています。1回目はまずは、interfaceから。 The Fallacy of Inheritance 継承は些細な修正も実装が面倒になり、コードが複雑になる可能性があります。例えば、Horseクラスと二つのサブクラス、GallopingHorseとSadHorseがあったとします。(その二つはステートの違いだけでなく、まったく性格の違うサブクラスかもしれません。)sadな雰囲気で、gallopをしているhorseがいる場合はどうするか?それぞれのクラスである振る舞いがロックアップされることになるかもしれません。また、type間の関係を考慮しなくてはいけなくなるの

    fjwr38
    fjwr38 2014/01/08
  • RailsとGoのアプリでセッションを共有する - ワザノバ | wazanova

    http://matt.aimonetti.net/posts/2013/11/30/sharing-rails-sessions-with-non-ruby-apps/1 comment | 0 pointsSpliceのFounderのMatt Aimonettiが、Railsアプリとセッションが共有できる仕組みをGoアプリ用に提供しています。他の言語への移植にも利用できるようです。 RailsGoのアプリでセッションを共有、具体的には、認証されたRailsのユーザがGoで書かれたエンドポイントにJavaScript APIでコールすることを試してみた。まとめると、 実現可能。こちらのGoパッケージを参照されたし。 Rails 4.0以降にアップグレードすべし。 Railsセキュリティには批判があるが、最近のソリューションではエキスパートが工夫をこらしている。 RailsはRub

  • Twitter: SPDYでiOSアプリのHTTPリクエストが早くなるポイント - ワザノバ | wazanova

    https://blog.twitter.com/2013/cocoaspdy-spdy-for-ios-os-x1 comment | 0 pointsChromeとFirefoxで利用できるSPDYプロトコルは、HTTP/2.0のベースになりますが、今回TwitterをそれをiOSアプリに提供できるCocoaSPDYをオープンソースで提供しています。こちらとこちらのグラフにあるように、概ね30%スピードアップできるようです。 HTTPをスピードアップするために、SPDYが改善しているポイントは、 TCPコネクションを介して一度に一つのリクエストを送るのではなくて、SPDYは一つのTCPセッションで複数のリクエストを送信し、レスポンスを任意の順番で扱うことができる。 SPDYはリクエストヘッダーおよびレスポンスヘッダーを圧縮できる。ヘッダー同士は、重複するテキストデータがあり、かなり似た

  • Dropbox: MongoDBの書き込みロックへの対応 - ワザノバ | wazanova

    Dropboxのエンジニアブログ。Mailboxは、Dropboxが3月に買収したサービスです。(ちなみにMailboxを初めて使ってみましたが、便利ですね。) MongoDBのデータベースレベルの書き込みロックが起因するユーザが気づくレベルの遅延に対処するために、最も頻繁に更新されるMongoDBコレクション(email関連データ)を独自のクラスタにシャーディングする過程で、データをコピーして確認する仕組みをgeventとpymongoを利用して試行錯誤し解決した経緯を紹介してます。 一連のPythonのスクリプトはオープンソースで提供されてます。 論理データベースレベルのロックが起きるのであれば、そもそもMongoDBを使わなければいいんじゃないのというSQL派の意見もでてます。 No SQL派「MongoDBは古くさいSQJよりとにかく早くて簡単。」 SQL派「データが正確に書き込ま