タグ

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

  • 規模の大きい本番システムをGo言語で書き直した感想 - ワザノバ | wazanova.jp

    http://matt-welsh.blogspot.com.au/2013/08/rewriting-large-production-system-in-go.html Go言語の4周年をテーマにしたgolang.orgのブログで紹介されていた、GoogleのMobile Web Performanceチームに所属するMatt Welshのブログです。大規模な番システムの作り直しにGo言語を採用した経験を語っています。 1) 背景 C++のオリジナルのコードベースは問題なく作動していたが、何年も複数の目的の違うプロジェクトで共有されていたため、スピーディーに改修するのが難しくなっていた。(何のシステムなのか具体的に書いてないのは残念。。) イメージフォーマットをトランスコードするライブラリはC++で完璧に動作していたので、そのまま残し、それ以外を全てGo言語で書き直した。 元のコード

  • Yelp: iOSアプリに組み込むweb viewをネイティブっぽく表現する - ワザノバ | wazanova.jp

    http://engineeringblog.yelp.com/2013/11/whoa-that-embedded-web-view-looks-hot-in-your-ios-app.html Yelpがエンジニアブログで、ネイティブのユーザビリティを崩さずにweb viewをネイティブアプリに組み込む工夫を紹介しています。 Yelpのモバイルトラフィックは、2013年の第3四半期平均で月間1,100万ユニークデバイス iOSにおいてアプリにウェブを組み込む一般的な手法は、UIWebViewをつくって、それにURLを渡すことだが、それだと、読み込み中のままコンテンツがすぐに表示できない事態に陥ることになる。 1) ネイティブっぽいページ遷移を実現する まず、前提として、UIWebViewはURLのリクエストを読み込もうとするとき、そのdelegate(通常はcontroller)を呼び

    yuiseki
    yuiseki 2013/11/12
  • iOS: 地図にデータを効率よく表示する - ワザノバ | wazanova.jp

    http://robots.thoughtbot.com/how-to-handle-large-amounts-of-data-on-maps/ thoughtbotのTheodore Calmesが、87,000件のホテルのデータ (位置/名称/電話番号)を効率よく表示するように工夫した事例を紹介しています。再検索させることなく、ユーザが地図をズームとパン(拡大縮小 & 移動)するのに合わせてデータを更新し、ユーザが自由にデータを閲覧できるようにしてます。[参考地図] コードはGithubで公開されています。 1) データ構造 画面上に全てのアノテーションを表示するのでなく、ユーザが画面を操作したときに適宜表示するため、ある一定の範囲を効率よく検索で絞り込めるかどうかが重要。ポイントでインデックスするのでなく、四分木を利用してエリアでインデックスすると検索範囲を減らすことができる。 2

    yuiseki
    yuiseki 2013/11/05
  • 歴史上の有名な開発プロジェクトからまなぶべきこと [Airbnb Tech Talk] - ワザノバ | wazanova.jp

    http://www.youtube.com/watch?v=sKTreDM4y-g&list=PLECD54527EBCE4021&index=23  AirbnbのTech Talkで、New RelicのVP, EngineeringのBjorn Freeman-Bensonが飛行機/ミサイル/ロケットの開発の歴史から現代のソフトウェア開発が学ぶべき教訓をまとめてます。 スピーディに繰り返すことの大切さ Dr. Paul Maccreadyは人力飛行機開発コンテストにおいて、競合が軽量な機体を時間をかけて作った(よってテスト飛行に失敗するとやり直しに相当時間がかかる)のに対して、「ポイントはどうすれば軽量化できるかあるのではなく、成功するために何が問題なのかがわかってないのが問題だ。」と看破し、最も作り直しが早くできる機体作成に注力し、テスト飛行の回数を上げることで、規定の距離を飛ぶ

    yuiseki
    yuiseki 2013/11/03
  • WebRTC: サーバのない世界でwebをつくり直す [Realtime Conf. 2013Real] - ワザノバ | wazanova.jp

    [Video] http://2013.realtimeconf.com/video/ [Slide] https://speakerdeck.com/feross/webrtc-data-black-magic しかし、23歳にして既にこのレジュメにあるようなアウトプットを連発しているFeross Aboukhadijehはすごいですね。その彼が、Realtime Conf. 2013で、WebRTCの現状と自らの新しいプロジェクトについて語っています。 1) 概要 Video/音声/データをブラウザ間のpeer-to-peerで直接やりとりできる プラグインのインストールは不要 WebSocketスタイルのシンプルなAPI 2) 利用事例 リアルタイムチャット、ファイルシェア、遅延のないマルチプレーヤー対戦型ゲーム、分散DB、ダークweb?(p-to-pコミュニティ)、CDN Mozi

  • Groupon: 単一のRailsアプリから複数のNode.jsアプリへの移行 - ワザノバ | wazanova.jp

    https://engineering.groupon.com/2013/misc/i-tier-dismantling-the-monoliths/ Grouponのビジネス自体はかつての盛り上がりはないですが、シンプルなRailsアプリが、事業の成長 & グローバル化に従って、アーキテクチャを変えていった過程をエンジニアブログで紹介してるので、参考になればと。 1) まとめ Grouponは、Railsのシングルコードベースを独立した20個のNode.jsアプリにアーキテクチャを変更した。 ページの読み込み時間が概ね50%改善。これはテクノロジーの効果とコードの書き直しでwebページが軽くなったのとの相乗効果。 同じトラッフィクに対してハードウェアが削減できた。 チーム間の依存関係が少なくなったので、新機能リリースのペースが早くなった 同じ機能を複数の国にそれぞれ導入するような冗長さが

    yuiseki
    yuiseki 2013/10/31
  • Rails: Concurrencyで遭遇する問題と解決策 [RMR 2013] - ワザノバ | wazanova.jp

    [Video] http://www.youtube.com/watch?v=TV5LEjN6d1U [Slide] http://203.softover.com/concur/rency/#/ Eugene KalenkovichがRocky Mountain Ruby 2013で、Concurrencyをテーマに講演しています。ユーモアがある楽しいプレゼンなので是非ビデオ(36分)を見てください。英語はなまりがきつくて聞き取りづらいですが、以下のメモ & スライドをざっと確認してから見ると内容はわかりやすいかと。 シングルスレッドでも、トラフィックが少なくても、Concurrencyを正しく理解していないとRailsではシアトルのモノレール事故のようになる可能性はある。 Concurrencyの問題がでるのは、開発中ではなくて、番環境でサービスを開始した後。複数のプロセスが同じデー

    yuiseki
    yuiseki 2013/10/31
  • AngularJSで苦労したポイントの事例 - ワザノバ | wazanova.jp

    http://lhorie.blogspot.ca/2013/09/things-that-suck-in-angularjs.html AngularJSの盛り上がりは何回か取り上げてきた(このポストの最後にリンクあります。)ので、今日は、改善すべき点を指摘しているブログとその議論を紹介します。 (New frameworks) are great at getting you to about 80% of what you need REALLY fast. The next 10% takes some investigation but its doable. But that last 10%,……You’re working for the framework rather than it working for you. というコメントがあるように、まだ苦労するところはある

    yuiseki
    yuiseki 2013/10/30
  • RubyとPythonの違いからガベージコレクタを理解する - ワザノバ | wazanova.jp

    http://patshaughnessy.net/2013/10/24/visualizing-garbage-collection-in-ruby-and-python Pat Shaughnessyが、ブタペストで開催されたRUPY2013でのプレゼンの前半を自らのブログで紹介しています。 ガベージコレクタは、「ゴミを集める」という行為だけでなく、「新しいオブジェクトのためにメモリをあてがう。」「不要なオブジェクトを見つける」「不要なオブジェクトからメモリを取り戻す。」という、人間の心臓が血液を浄化するような働きをしている。 この簡単なコードサンプルを見ると、RubyPythonの記述はよく似ているが、それぞれの言語の内部でのインプリの仕組みは違う。 1) Rubyのメモリ Rubyは、コードが実行される前に、数千のオブジェクトを先につくり、それをリンクされたfree listに置

    yuiseki
    yuiseki 2013/10/29
  • CIについてのおさらい - ワザノバ | wazanova.jp

    CIについては、 CIに興味がある会社は多いが、 バックアップをとってない バックアップをとっていても手順書がない システム監視してない 退職者がでても番用のパスワードを変えてない サーバ設定管理をしてない システムをスケールさせる段取りがついてない サーバ交換の手順が決まってない など、まともなシステム運用環境が用意されてない事例が散見される。最初からHerokuやPaaSに任せている会社であればよいが、そうでなければ基的なことの整備は大切。まずは、Ansible / Puppet / Chef / SaltStackなどでの設定管理から手をつけてみればよいのでは。 という意見もあるようですが、「CIとは何か?」については、やはりThoughtWorksのサイトが一番簡潔によくまとまってるようです。 Integrate at least daily コードを1日数回共有のreposi

    yuiseki
    yuiseki 2013/10/19
  • D言語とGo言語 - ワザノバ | wazanova.jp

    http://forum.dlang.org/thread/l37h5s$2gd8$1@digitalmars.com FacebookでD言語が採用されたというニュースですが、この内容では番サービスに投入されたのか、社内ツールで採用されたのかよくわかりません。「AppleがObjective C、GoogleGo、MozillaがRustを担いでいるのに対抗して、FacebookもDを採用することで、C/C++後継争いに参戦。」というコメントもありましたが、単に元のC++のコードがヒドすぎたから替えただけという可能性もあります。Facebookのエンジニアブログで正式に発表されるのを待ちたいと思います。 D言語 [参考: D言語基礎文法最速マスター] のクリエーターのWalter Brightは、5月のdconfで方針を語ってます。 1) 簡単に読み理解できるコード 正しいコードが正

  • AngularJSの設計思想 [Google I/O 2013] - ワザノバ | wazanova.jp

    [Video] https://www.youtube.com/watch?v=HCR7i5F5L8c AngularJSのHype (盛り上がり感)があるようなので、GoogleのMisko HeveryとBrad GreenがGoogle I/O 2013でAngularJSの設計思想について語っているのを紹介します。 アプリ開発は、雛形構文(ボイラープレート)を利用しながらデータをブラウザとDBの間でやりとりさせるのが中心で、気づいてみると同じ雛形構文を書く作業をかなり繰り返している。コードを書いてる時間よりもコードを読んでいる方に時間がとられることも多い。この雛形構文を使った作業を極力減らして、アプリに付加価値をもたらすコーディング作業だけを抽出したいと思った。 コーディング作業が効率的になる構造が欲しかった。 フレームワークにテストを組み込むが、フレームワーク自身をきっちりテスト

    yuiseki
    yuiseki 2013/10/15
  • Google検索のようにデータ分析ができるようになる [Meteor Tech Talks] - ワザノバ | wazanova.jp

    [Video] https://www.youtube.com/watch?v=Oy6WuKAr8B4 ベルギーの開発者Dirk Stevents (Wondergraphs) がMeteorを使って、Google検索のようにデータ分析ができる新サービス (Interview) のデモを披露してます。 手元のデータを素早くアップロードし、検索画面に分析したい切り口のキーワードを入れると、複数の美しいグラフが検索結果として表示され、それを適宜画面上で加工することができるという仕組みです。デモの範囲ではどれだけ実用性のあるレベルまできているのかわからないですが、正式にローンチできるレベルまでくれば、データ分析 & 加工 & 資料作成作業が相当楽しくなりますね。 アプリの開発をずいぶんやってきたが、今までやってきた、例えば、Backbone.js, Less, Puppet, Nginex, A

    yuiseki
    yuiseki 2013/10/13
  • MongoDBの$150M調達で色々考えさせられたこと - ワザノバ | wazanova.jp

    http://www.bloomberg.com/news/2013-10-04/mongodb-becomes-king-of-nyc-startups-with-1-2-billion-valuation.html 10genが社名もMongoDBに変えてたことは知りませんでした。さて、同社が$1.2BのValuation (企業価値)で$150M調達ということですが、昨年、Githubが$750Mのvaluationで$100M調達したのに続き、オープンソースがベースになってる会社で大型資金調達が成功する事例が続いてますね。  MongoDBはHacker Newsで取り上げられる度に驚くほどネガティブコメントを集めてるのですが、今回も例にもれず、この資金調達のニュースには219件のコメントがつき、トップに掲載されてる(おそらく掲載順ロジックはUpvoteの数なので、一番人気のコメン

    yuiseki
    yuiseki 2013/10/08
  • Issac Schlueterが語るNode.js v1.0へのロードマップ - ワザノバ | wazanova.jp

    http://www.youtube.com/watch?v=82hJbjqbIt4 Node.jsのコアチームのリーダであるIssac SchlueterがSan FranciscoのMeetupで、Node.js v1.0にむけての現状アップデートをシェアしてます。 Stream2のステータス 相当リファクタリングした 99%後方互換性 npmの計画 githubログイン、githubレポジトリとの統合 レコメンデーションエンジン モジュールランキング: CPAN Kwaliteeっぽいものにしたい Node.jsは成長した APIが壊れるなんて過去のこと。我々は大人になった。 今動くコードは来年も動く Node.jsがたった4年半でここまで成熟するとは皆思わなかったはず。 だからNode.jsコアは小さなサイズをキープしたい Node  v0.12 TLS (Transport La

    yuiseki
    yuiseki 2013/10/03
  • FacebookはAndroid版をどのようにテストしているか [GTAC 2013] - ワザノバ | wazanova.jp

    [Video] http://www.youtube.com/watch?v=HUE_yrd8tl0 [Slide] http://goo.gl/278b4 FacebookのSimon StewartがGTAC (Google Test Automation Conference ) 2013でAndroid版の開発 & テストインフラについて紹介しています。 モバイルへの注力を急速に進めている。 既に社内にAndroidチームというものは存在しない。各サービスの開発チームがモバイルファーストを当然のものとして取り込んでいる。Android開発のコードコミット数は急増。 スライド4枚目のグラフでは確かに急増してます。残念ながらグラフに数字軸の表示がないので、元々のコミット数が少なすぎただけという可能性もありますが。ただし、スマホ開発メンバの増員は買収だけでなく、既存のPHPエンジニアを職

    yuiseki
    yuiseki 2013/10/03
  • できるエンジニアだけで組織をつくる - ワザノバ | wazanova.jp

    http://www.slideshare.net/bcantrill/surge2013 上記のスライドは、JoyentのSVP, EngineeringであるBryan Cantrillがエンジニア組織のあるべき姿ついてまとめたものです。BryanはSun Microsystems出身で、同社がOracleに買収されたのを受けて、2010年にJoyentに移ったという経歴。Joyentはクラウドサービスの会社ですが、Node.jsのスポンサー企業として知られ、Node.jsの中心人物であるIssac Schlueterなどフルタイムでオープンソース開発に従事する社員がいます。昨年、Greylock, Intel CapitalなどからSeries Dラウンドで$85Mの資金を調達してますので、投資家からは上場を期待されていると思われます。 彼の意見としては、 [モチベーションをあげるポ

    yuiseki
    yuiseki 2013/10/03
  • スケール可能なTwitterの負荷テストの仕組み [GTAC 2013] - ワザノバ | wazanova.jp

    [Video] http://www.youtube.com/watch?v=99RABfKNfcY [Slide] http://goo.gl/9VY2b TwitterのJames Waldropが、オープンソースのロードジェネレータライブラリlagoと、スケールが可能な負荷テストの仕組みについてGTAC (Google Test Automation Conference) 2013で語ってます。Twitterには番トラフィックの一部を利用したテストもありますが、講演ではテスト環境でのロードジェネレータを話題にしてます。 FacebookからTwitter転職し、lagoをつくった理由は、 ありあわせのツールをもってきて使ってもだめで、エンジニアであれば何か開発しないと他のエンジニアから尊敬されない。 Scalaで書いてみたかった。 既存のロードジェネレータはどれも役に立たない

  • GoogleのCIとテスト自動化の取り組み [GTAC 2013] - ワザノバ | wazanova.jp

    [Video] http://www.youtube.com/watch?v=nyOHJ4GR4iU [Slide] http://goo.gl/76Ggf Google Test Automation Conference 2013のキーノートスピーチで、GoogleのAri Shamashが同社のCIツール & 自動化されたテストプロセスを紹介しています。 [最初の前置きが13分。GoogleのCIの紹介の内容ではないので割愛。お話としては面白いのでVideo見てみてください。] エンジニア1,5000+人が5,000プロジェクトにアサインされている 1億行のコード。50%が毎月更新。 1日当たり5,500+件がサブミッションされ、1億件以上のテストケースが実行されている。 Googleのクラウドテストシステムは多機能。ビルド作成、特定のターゲットをテストでき、テストカバレッジ計算、依

  • Goプログラミング: Rob Pike and Andrew Gerrand [The Changelog] - ワザノバ | wazanova.jp

    [Podcast] http://5by5.tv/changelog/100 GoogleのRob PikeとAndrew GerrandがThe Changelog PodcastGoプログラミングについてインタビューを受けてます。 Goは3年半前に最初にリリース。Cのようなローレベル言語とRubyPythonのようなスクリプト言語と中間の位置づけ。C++のようい何でも機能があるものではなく、シンプルであることがコアバリューで一貫性がある言語。 使ってもらうとどれだけ生産的で早いが実感できる。先日のプロジェクトで全部のテストプログラミングが8ミリ秒で実行できた。プログラマにとって効率的だが、コンピュータにとっても効率的。 Rubyのように同じことをあらゆる書き方で実現できるのではなく、一つではなくてもある程度決まった書き方でロジカルに解決するのが、プログラマー間での共通の理解、コード

    yuiseki
    yuiseki 2013/09/22