タグ

2014年8月21日のブックマーク (18件)

  • Docker のビルド方法に見る Golang の利点

    以前、Docker をビルドしていて、以下の事実に気づきました。 事実: Docker は自身をビルドするのに Docker を用いてコンテナ内でビルドしている 実際、ソースコード直下に、以下の Dockerfile が置いてあります。中を参照すると、ubuntu のコンテナイメージをベースに、依存するソフトウェアを apt-get したり、git clone で取得したりしています。make コマンドで、依存するソフトウェアをインストールしたコンテナ内で、hack/make.sh を実行し、バイナリを作成します。生成したバイナリをコンテナから取り出してビルド終了となります。 DockerGolang で書かれていますが、その理由の一つに、Golang の優れたポータビリティ (libc が入っている環境であればどこでも動作するバイナリを手軽に生成できること)があります。これにより、

  • 『Cassandraのデータ設計で注意していること』

    Ameba Smart Phone PlatformAPI開発を担当している狭間と申します。今回はAmeba Smart Phone Platformで使用しているCassandraのデータ設計時に気をつけていることを実際に起きた事例を交えてお話したいと思います。 Cassandraのverstionは1.1.5を使用していて、100台構成のクラスタを組んでいます。ピーク帯ではおよそ50000write/sec、40000read/secのリクエストを処理していて、およそ45TBのデータを保持しています。そのような条件下で発生した事例と対処方法を紹介させていただきます。

    『Cassandraのデータ設計で注意していること』
  • 図解 Git

    もし図の表示がおかしかったら、このページの SVGでないバージョンを試して下さい。 SVG の画像処理を中止しています。 (SVG の画像処理を再開) このページのオリジナルは、Mark Lodato さんが執筆した A Visual Git Referenceです。 このページでは、よく使われる git のコマンドを簡潔に図を用いて説明します。 git について少し知識があるなら、このページはその知識を整理するのに役立つかもしれません。このページがどのようにして作られたのか興味があるなら、私のGitHub リポジトリを見て下さい。(日語訳の GitHub リポジトリ) 内容 基的な使い方 凡例 コマンドの詳細 Diff Commit Checkout 分離HEADでの commit Reset Merge Cherry Pick Rebase 技術メモ 基的な使い方 上記4つのコマ

  • ISUCON 夏期講習 2014 を開催しました : ISUCON公式Blog

    こんにちは、櫛井です。 今年も学生限定イベント「ISUCON 夏期講習」を開催いたしましたので、スライドなど共有いたします。 まずは、第一回・第二回のISUCONで出題プログラムを作成し、第三回では優勝したLINE選抜チームのエンジニアより「インフラエンジニア仕事内容とISUCON」についてご紹介し、その後は第三回ISUCONの予選問題に挑戦していただきました。 ある程度さわってみていただいてから「パフォーマンス向上のコツ」という内容で、予選問題攻略の方法について説明がありました。 当日の資料はこちらで公開されています。

    ISUCON 夏期講習 2014 を開催しました : ISUCON公式Blog
  • 「ISUCON 夏期講習 2014」のサーバ環境 AMI を公開しました - blog.nomadscafe.jp

    学生さん限定のイベント「ISUCON 夏期講習」今年もやりました。イベントは、tagomorisからISUCONやWebアプリケーションについての座学を行ったあとに、ISUCON3の予選問題にチャレンジをしてもらいました。またチャレンジをしてもらいながら、どのようにWebアプリケーションのパフォーマンスをあげていったらよいのか、自分の方から説明をしました。今年はスコアをあげることができる参加者が多く、驚きました。 去年と同じようにISUCONの問題にチャレンジする環境としてEC2を使いましたので、そのAMIを公開します。 AMI ID:ami-e796b3e6 AMI Name: isucon_summer_class_2014 Region: Asia Pacific (Tokyo) 「ISUCON 夏期講習 2014」サーバのつくりかた EC2のインスタンスを起動する際に、上記のAMI

  • 個人的によく使うrpmコマンド逆引き | DevelopersIO

    こんにちは。望月です。 RHEL系Linuxでパッケージ管理に使われるrpmコマンドですが、色々とオプションがあって「あれ、何使えばいいんだっけ?」ってのが多くなったので、自分がよく使う物をまとめてみました。新しく出てきたら追記していきたいと思います。 検証は全てAmazon Linux 2014.03で実施しています。 インストール rpmパッケージをインストールする ローカルにあるrpmファイルをインストールします。-i(--install)オプションを利用します。-v(--verbose)と-h(--hash)は、インストールの進行度を表示してくれます。 $ rpm -ivh package-x.y.z.rpm また、リモートのファイルを指定することも可能です。 $ rpm -ivh http://package.example.com/package-x.y.z.rpm rpmパッ

    個人的によく使うrpmコマンド逆引き | DevelopersIO
  • 覚えておきたいbashシェルスクリプトのオプション

    こんにちは。CTOの馬場です。 今回もインフラエンジニア向けにちょっとした情報を紹介します。 今回は「覚えておきたいbashシェルスクリプトのオプション」です。 便利なものを3つ紹介します。 これを覚えておけば、シェルスクリプトとの付き合いが楽になること間違いなし! その1: eオプション まず1つめはeオプションです。 使い方としては bash -e shellscript.sh のように使います。 このオプションの効果ですが、man bashによると -e オプションが与えられた場合、返り値は最後に実行されたコマンドの返り値となるか、あるいはコマンドの一時ファイルでエラーが起きた場合には偽となります。2番目の形式を用いた場合、終了ステータスは再実行されたコマンドの終了ステータスとなります。 とのこと。。。よくわかりませんね。 平たく言うと、シェルスクリプトの一連の動作の中でエラー(ex

    覚えておきたいbashシェルスクリプトのオプション
  • 『約10年、最新版のRailsに追従してきた運用ノウハウをビール片手に聞きましょう!』というイベントで発表してきました - よかろうもん!

    6月末頃、Rails/Rubyのバージョンアップ作業を開始したときに、Railsアプリケーションを長い間運用しているサービスってなかなか聞かないよな〜と思って、Facebookで下記のような投稿をしてみました。 すると、「AWSを活用してる現場リーダーやCIOをお招きしたトークイベント」でパネルディスカッションをさせていただきました のイベントでお世話になった小山田さんがすぐさまトークイベントを持ちかけてくださり、今回、 約10年最新版のRailsに追従してきた運用ノウハウをビール片手に聞きましょう! - Web系な人のキャリアカフェ | Doorkeeper というイベントでお話させて頂くこととなりました。 当日は、社内SNS『SKIP』のサービス開発/運用でやっている取り組みを例に、Rails,RubyなどのバージョンアップからOSのアップデートを実施する際の取り組みについてご紹介させ

    『約10年、最新版のRailsに追従してきた運用ノウハウをビール片手に聞きましょう!』というイベントで発表してきました - よかろうもん!
  • TypeScriptとECMAScript 6 - Qiita

    来たる8/23(土)にLL Diverというイベントでmozaic.fm出張版があって、そこで適当にTypeScriptの何かを話す予定なので、ECMAScript 6の予習をしていきます。 司会のJxck先生は知識量豊富なので予習していかないとボコられて恥を晒して死んじゃうからね! あんどうやすしさんは優しいと思うんだけど!! 参考資料 わかめのECMAScript6のはてブ ECMAScript 6のドラフト(ログ) ECMAScript 6で提案されたもの ECMAScript 6 compatibility table es6-shim ECMAScript6をまるっと学ぶ。重要用語とか、仕様策定の進め方とか、新機能とか。 traceur-compiler入門 ECMAScript6をまるっと学ぶ。はすごい参考になったのでぜひ読むべきそうすべき。 この辺りをガシガシ読んでこの記事を

    TypeScriptとECMAScript 6 - Qiita
  • #mozaicfm REST を聴いての感想 - ぶろぐ。@はてな

    mozaic.fmでRESTの回が企画されているということを、API Meetup #1 のときに yohei さんから直接聞いていたのですが、ついにそれが公開されたので、喜び勇んで聴きました。 mozaic.fm #7 REST 断片的に感想をツイートしたので、そのまとめです。 RESTの何が重要なのか さすがの t_wada さん。アーキテクチャとしてもそうだし、アプリケーションフレームワークも「適切な制約」を設けることで設計のコストが下がる、という話の流れでした。 “Constraints are liberating”「制約は自由をもたらす」は僕が好きな言葉ですが、これを知ったのはDHHのRubyKaigi 2006の講演からです。(初出はどこか別のところなのかも?) RESTの流行 原理主義者的発言をするなら、「REST API」と謳って世に出たWeb APIはただのJSON/X

    #mozaicfm REST を聴いての感想 - ぶろぐ。@はてな
  • エンタープライズで使える!実践から学ぶJavaScript MVCフレームワークの選び方

    エンタープライズで使える!実践から学ぶJavaScript MVCフレームワークの選び方 酒巻瑞穂(html5jエンタープライズ部) 現在エンタープライズシステムの開発現場では、シングルページアプリケーション(SPA: 単一のWebページで構成されているWebアプリケーションのこと)アーキテクチャの採用が模索されるなど、根的な開発パラダイムにおいて大きな変化が起きようとしています(全体的にどのような変化があるかはエキスパートNo59の佐川夫美雄さんの書かれた「JavaからHTML5ヘ。業務システムの開発におけるWeb技術の変化と適応事例」によくまとまっています)。 こうした変化の一部を支えているのが、JavaScriptによるMVCフレームワークです。数あるフレームワークの中で、実際にどのフレームワークを採用するかというのは、開発コストだけではなく学習・運用コストにも関わる、非常に大きな

    エンタープライズで使える!実践から学ぶJavaScript MVCフレームワークの選び方
  • 稼働率99%のシステムは年間で87時間止まり得る - clock-up-blog

    99%という数字の弱さ 「第2回 クラウドデザインパターン勉強会」にて。 JAZUG CDP勉強会第二回クラウドデザインパターン超入門=「コンピューティングの分割、配置」 「オートスケーリング」 SLAが99%など年間87時間は止まって良いもの ここにドキっときました。 確かに。確かにそうなんです。 たとえば1年365日の中で仮に丸3日間、何らかのサービスが止まったとします。 その停止時間の占める割合は 3/365 = 0.8%。つまり稼働率は 99.2%。これでも 99% を切っていないわけです。99% という数字の弱さを再実感しました。 何を今更と言われればそれまでなんですけど。 サービスの稼働率と年間停止許容時間 いくつか表にまとめてみました。 稼働率 年間停止許容時間 (分) (秒) 99% 87.6時間 99.9% 8.8時間 99.99% 0.9時間 52.6分 99.999%

    稼働率99%のシステムは年間で87時間止まり得る - clock-up-blog
  • 最近の Ruby のメモリ管理

    最近の Ruby のメモリ管理 Recent Ruby’s memory management Koichi Sasada ko1@heroku.com K.Sasada: 最近の Ruby のメモリ管理, 2014 Summary •Ruby’s new two GC implementation • RGenGC: Restricted Generational GC • RincGC: Restricted incremental GC K.Sasada: 最近の Ruby のメモリ管理, 2014 Who am I ? Koichi Sasada from Heroku, Inc. •CRuby/MRI committer • Virtual machine (YARV) from Ruby 1.9 • YARV development since 2004/1/1 • Recen

  • ギルドワークスのリモートワークを支える技術 | GuildWorks Blog

    ギルドワークスのリモートワークを支える技術 | GuildWorks Blog
  • MySQL Connector/J (JDBC ドライバ)の罠まとめ - ~saiya/hatenablog

    MySQL JDBC ドライバ(MySQL Connector/J)、JavaMySQL といえばまずコレだが、これまた地味に罠が多い(そして多くの人が踏んで苦しむ)のでまとめてみた。 (2015/03/19) こちら のコメント欄でご指摘ただいた wait_timeout の件について記事修正いたしました。 Summary 以下、いずれもプログラム設計時に理解しておかないと、開発中は大丈夫そうでも実用した途端に苦しまされれてしかも設計から治す羽目になる要注意な罠である: SELECT 結果は全部メモリに載ってしまう (デフォルト設定で) 大量 SELECT する場合は FetchSize, ResultSetType を要設定 利用時には制約があるので、設計段階から考慮しなければならない (後述) idle 時間の「合計で」コネクションが切られる 前回のクエリ処理から一定時間以上経

    MySQL Connector/J (JDBC ドライバ)の罠まとめ - ~saiya/hatenablog
  • vim使いでこれ使わないのは結構損してる - Qiita

    SublimeTextみたいに複数カーソルがあったら便利ですよね? なぜvimでは使わないんですか・・・ なんて便利なんですか・・・。 Installation

    vim使いでこれ使わないのは結構損してる - Qiita
  • インフラの継続的デリバリー - naoyaのはてなダイアリー

    事前に断っておくがここでいう「インフラ」はレイヤ的には OS より上の話。 少し前に GitHub 時代のデプロイ戦略 - naoyaのはてなダイアリー で、GitHub を介したデプロイを実践しているということを紹介した。普段の開発を Pull Request ベースでやっているので、デプロイもまた Pull Request を契機に実行させると色々捗る、という話。 このプラクティスの対象領域をインフラにまで拡大してみました、というのが今回の話。 DNS レコードを Pull Request を merge した契機に自動で更新 AWS を利用している場合、ドメインの管理も Amazon Route 53 を使うといろいろと都合がいい。 Route 53 での DNS レコードの更新はこれまでブラウザから操作していた。これだと誰がいつ作業したかわからないし履歴もトラックしづらい。また変更

    インフラの継続的デリバリー - naoyaのはてなダイアリー
  • Semantic Versioning 2.0.0

    english セマンティック バージョニング 2.0.0 概要 バージョン番号 MAJOR.MINOR.PATCH を前提として、 あなたが互換性のない API の変更を行うときに MAJOR バージョンを、 後方互換性のある方法で機能性を追加したときに MINOR バージョンを、 そして、後方互換性のあるバグ フィックスをしたときに PATCH バージョンを、 インクリメントします。 追加のラベルとして、プレリリースとビルド メタデータが MAJOR.MINOR.PATCH フォーマットへの拡張として利用することができます。 序論 ソフトウェア マネジメントの世界には「依存関係地獄」と呼ばれる非常に恐ろしい場所が存在します。 あなたのシステムがより大きくなるほど、あなたのソフトウェアの中へより多くのパッケージを溶け込ませるほど、いつかこの絶望の底にいるあなた自身に気づく、そんな可能性が