タグ

2013年9月4日のブックマーク (28件)

  • スケーリング Dropbox

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    スケーリング Dropbox
  • IIJ Research Laboratory

    ネットワークの計測と解析 インターネットの使われ方やネットワークの挙動を把握する事は、ネットワークを運用し、その技術開発を行う ために欠かせません。しかし、観測で得られるデータ量は膨大ですがノイズが多く、また、観測できるのは極めて限られた部分でしかありません。そこで、膨大なデータから意味のある情報を抽出したり、部分的な観測からより一般的な傾向を推測する事が必要となります。... インターネット基盤技術 速くて、安全で、信頼性が高く、使いやすく、など、インターネットサービスへの要求はますます高まっています。これらの要求に応えるために、インターネットの 基盤技術も日々進歩しています。いまやインターネットはつながるだけのサービスではなく、高度で複雑な機能を備えた社会基盤となりました。IIJ技術研究所は、インターネットの基盤として実現が期待される機能を提供するために、さまざまな技術課題に取り組んで

  • Execute Chef Soloと Knife Soloでの ニコニコサーバー構築 (4) ~コツ編~:dwango エンジニア ブロマガ:ドワンゴ研究開発チャンネル(ドワンゴグループのエンジニア) - ニコニコチャンネル:生活

    こんにちは! "ドワンゴ 弁当" で最近少し話題になったドワンゴエンジニア、の氏家です。 どんな人が中で働いてるのか想像しにくい方も多いかもしれませんが、普通の人・オタクな人・ギークな人・家庭持ち・リア充・イケメン、いろんな人が混じってる、楽しい会社だと思っています。 人と同じように 多種多様なサービス・システム・ミドルウェア・デバイス・プログラム言語を駆使してみんながニコニコできるものを産み出そうとがんばっていますので、こういったエンジニアリングに興味がある方は是非コチラからご応募ください!ニコニコ入社一時金制度もやっています。 そしていろいろと長くなってしまいましたが、今回でChef Solo話、完結したいと思います。今回はやってみて気づいた点・はまった点などを詳しく説明しますので、少しでもみなさんの参考になれば幸いです。 roleはjsonで書くべき? それともruby? recip

    Execute Chef Soloと Knife Soloでの ニコニコサーバー構築 (4) ~コツ編~:dwango エンジニア ブロマガ:ドワンゴ研究開発チャンネル(ドワンゴグループのエンジニア) - ニコニコチャンネル:生活
  • (翻訳)英語は私にとって15年にわたって悩みの種です - YAMAGUCHI::weblog

    はじめに Redisの開発者である@antirezが一昨日投稿したブログポストにとても共感したので翻訳しました。 English has been my pain for 15 years - <antirez> 世界一わかりやすい英文法の授業 作者: 関正生出版社/メーカー: 中経出版発売日: 2008/02メディア: 単行購入: 14人 クリック: 99回この商品を含むブログ (31件) を見る 僕が@antirezの文章を翻訳するのは今回が初めてではありません。RedisのドキュメントをまだRedisがバージョン2.0になったばかりの頃に日語訳したのが最初でした。Redisドキュメント日語化をしていた当時は翻訳しながら「ドキュメントが整っているなぁ」と感じたと同時に「独特の英語を使うなあ」という印象を受けました。その当時は彼が英語に苦労していた過去のことなど知らなかったので、こ

    (翻訳)英語は私にとって15年にわたって悩みの種です - YAMAGUCHI::weblog
  • Rubyのエンコーディングその2 - tmtms のメモ

    この前「Rubyのエンコーディング」という記事を書いたのですが、それをネタに 8/25 の NSEG で発表しました。 Rubyのエンコーディング from Masahiro Tomita この中で、エンコーディングが原因で予期しないところで落ちてしまうことが結構あるという話もしたんですが、今回はプログラムが落ちないようにするにはどうすればいいかを考えてみます。 エンコーディングが原因で落ちてしまうのは大体次のパターンのようです。 文字列や正規表現のエンコーディングが異なる 文字列中に不正な文字が含まれている 文字列や正規表現のエンコーディングが異なる 正規表現をリテラルで生成していれば、エンコーディングは敢えて指定しない限りは普通はスクリプトエンコーディングになってると思うので、問題は文字列の方です。 特にファイルから読み込んだ文字列のエンコーディングが何になっているかに注意しましょう。

    Rubyのエンコーディングその2 - tmtms のメモ
  • Ruby 1.9 m17n リファレンス (不完全版) - diary of a madman

    以前書いた記事(Ruby 1.9 の新機能を調べてみた)の m17n がらみの箇所についてコメントやらトラックバックやらをいただいたので、もう少し調べてまとめてみた。 なお、1.9.0 リリース版ではなく、開発版(trunk r14835)で動作を確認している。 コマンドラインオプション -E --encoding "ruby -E エンコーディング名" または "ruby --encoding=エンコーディング名" のように使う。 Encoding.default_external を指定したエンコーディングに変更する。 コマンドラインで指定したスクリプトファイル(または -e で指定したスクリプト)のエンコーディングを変更する。(スクリプト内でマジックコメントによるエンコーディング指定を行なったのと同じ効果だが、マジックコメントで指定がある場合はそちらが優先) -K ruby 1.8

    Ruby 1.9 m17n リファレンス (不完全版) - diary of a madman
  • Ruby 1.9 で標準入力から文字コードを変換する - Qiita

    覚えているうちに脳内メモリを書き出しておく。例えば標準入力が Shift_JIS で出力を UTF-8 にしたい場合は以下のコードで出来る。

    Ruby 1.9 で標準入力から文字コードを変換する - Qiita
  • factory_girl で最低限知っておきたい4つの使い方 - (゚∀゚)o彡 sasata299's blog

    2013年08月22日13:26 Ruby factory_girl で最低限知っておきたい4つの使い方 みなさん、テストを書くときには Fixture Replacement として何を使ってますか?一番メジャーなところだと factory_girl でしょうか。machinist も有名ですね。シンタックスの違いのようなので基的にはどちらでも良さそうです。 参考(stackoverflowMachinist vs FactoryGirl - pros and cons In other words, both are extremely similar, just with a different default syntax. 今回は(僕が factory_girl4.2.0 を使ってるので)factory_girl4.2.0 についての話です。 インストール まずインストールし

  • ActiveRecordの便利機能previous_changes|TechRacho by BPS株式会社

    ActiveRecordには便利なprevious_changesというメソッドがあります。 割と知名度が低いので、ここで使い方をご紹介します。 (08/26追記) はてブでご指摘(?)頂きましたが、正確にはActiveRecordではなくActiveModel::Dirtyの機能です。 まずはchanges previous_changesの前に基のchangesです。 これは、saveする前に変更されたattributeを調べる機能です。 まずはfindした直後です。changed?は当然falseになります。 User.create(name: "Taro") user = User.find(1) user.changed? # => false user.changed [] user.changes # => {} user.changed_attributes # => {

  • Two-factor Authentication

    ProductTwo-factor AuthenticationToday we're adding two-factor authentication to GitHub. When you enable this feature, it adds an additional layer of security to your account. When logging in to GitHub, after providing your… Today we’re adding two-factor authentication to GitHub. When you enable this feature, it adds an additional layer of security to your account. When logging in to GitHub, after

    Two-factor Authentication
  • Ruby on Rails 4.0正式リリースとBootstrapの正しい設定法

    過去記事「Ruby on Rails 4.0RC1とBootstrapの設定」は、リリース候補1でBootstrapが使えなくなったために講じた応急処置的な方法でしたが、その後、Rails 4.0が正式リリースされ、以前の設定法(当はこちらが正統派)でBootstrapが簡単にセットアップできるようになりました。以下、その設定法を手短にまとめてみました。

    Ruby on Rails 4.0正式リリースとBootstrapの正しい設定法
  • Rspec/Capybara/Turnipの入門記事を全力でまとめてみた - 酒と泪とRubyとRailsと

    Rspec/Capybara/Turnipの入門記事を全力でまとめてみた Aug 30th, 2013 Tweet さっき、『 The Rspec Book』を読み終えました。厚めのですが、RspecやCucumber、Webrat、Seleniumなどを活用するためのノウハウ満載で大満足でした! ということで、こので読んだ内容を忘れないようにするためと、その過程でRspec/Capybaraなどのネット資料をあつめたので、まとめるためにこの記事を書きます。もし、間違いを発見した場合や他にもいいリソースがあれば、是非メッセージを願いします! テスト駆動開発(TDD)と振る舞い駆動開発(BDD) テスト駆動開発(TDD)とは、コードを書く際に最初にテストを書き、次にテストが通る最低限のコードを書き、その後にリファクタリングしていく開発手法です。一方で振る舞い駆動開発(BDD)はTDDの発

  • G-WANはなぜ速いのか?をnginxと比べながら検証してみた - blog.nomadscafe.jp

    ツチノコブログのWEBサーバベンチマークツール比較の記事で紹介されていた。WebサーバのG-WAN。この記事によると凄く速いようです。 Intel Xeon E5-2640 (6コア/12スレッド 2.50GHz) を2つというサーバで gwan  334944 req/s nginx 111842 req/s と、速いと言われているnginxの3倍の速度を出しています。 このベンチマーク結果がとても気になったので、なぜG-WANが速いのか、自分でも検証してみました。 結論から言うと以下の2つ。 1) G-WANはデフォルトで物理CPUに合わせた数のスレッドを起動する 2) HTMLファイルも一度読み込んでキャッシュする という事です。 今回はAWSのcc2.8xlarge(E5-2670 8コア/16スレッド 2.60GHz *2)を使ってベンチマークを行いました。OSはAmazon L

  • RDBMSでコネクションプールが必要な理由、わからない。

    Takayuki Shimizukawa @shimizukawa @masa_edw コネクションプールが無い場合、使い終わったコネクションが即解放されない(解放まで多少遅延する)ので実際に使っているコネクションの数より多く存在する。その分メモリを圧迫して効率が悪い。っていう話は聞いたことがあるよ(要出典 2013-09-04 09:27:28 ハイパーむとう @masa_edw @voluntas 現状で必要な状況は理解していますが、なぜそうなるのか理解していないということです。他にもたとえば、bitlyの呼び出しはコネクションプールを使うべきか?なぜ(べき、べきでない)のか?どういう要請でそうなのか?と言う問いに僕は答えられません。 2013-09-04 09:31:22

    RDBMSでコネクションプールが必要な理由、わからない。
  • TCPを使う(サーバ、SO_REUSEADDR):Geekなぺーじ

    前述したTCPサーバ例では、サーバを終了した直後にもう一度サーバを起動しようとすると、bindがエラーで終了することがあります。 ここでは、その問題を回避するためにSO_REUSEADDRを有効にする方法を説明したいと思います。 TIME_WAIT TCPサーバのプログラムを書いていて、TCPサーバを終了して直後にもう一度起動したときに、 bindが「Address already in use」というようなエラーで失敗してしまったとこは無いでしょうか? 「あれ?もうTCPのサーバプロセスは終了しているのに。何故、bind出来ないのだろう?」と思いつつ、 しばらく時間がたってからもう一度実行すると問題なくbindが成功したりします。 この問題はTCP自体の仕組み(仕様)によって引き起こされています。(Linuxソケットの問題ではなく、TCPの仕様です)。 具体的にはTIME_WAIT状態と

  • ダブル・ディスパッチ~ 典型的なオブジェクト指向プログラミング・イディオム ~

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    ダブル・ディスパッチ~ 典型的なオブジェクト指向プログラミング・イディオム ~
  • etckeeperで設定ファイルのバージョン管理を始めよう

    斎藤です。こんにちは。 今日は、etckeeperを用いて、設定ファイルをバージョン管理する方法を説明します。設定ファイルの書き換えで辛い目に遭う前に、どうぞお試しください。 ※CentOS 6.4, Ubuntu 12.04 LTS, etckeepr 1.7を基準に説明します etckeeperとは etckeeperは主に/etc配下をVCS(Version Control Systems)を用いてバージョン管理します。実態は、gitやmercurialのwrapperとなっています。 設定ファイルの書き換えの際に、ファイル名に日付をつけてバックアップしたりする手間を省いたり、誤って書き換えてしまったときのための 保険 として利用する事ができます。 インストール方法 はじめに 先程も述べました通り、etckeeperはVCSのwrapperとして動きます。そのため、インストール時には

    etckeeperで設定ファイルのバージョン管理を始めよう
  • グラフィカルなDiff/マージツール「Meld 1.7.5」リリース | OSDN Magazine

    Meldの開発者は9月1日、GUIでグラフィカルに差分表示やマージを行えるdiffビューア/マージツール「Meld 1.7.5」をリリースした。プロジェクトのWebサイトよりダウンロードできる。 Meldはマルチプラットフォームに対応するマージツール。ファイルやディレクトリの差分を視覚的に表示できるほか、Git、Bazaar、Mercurial、Subversionなどでのマージ操作でも利用できる。2方向のほか3方向での比較もサポートするほか、自動マージモード、リアルタイムアップデートなどの機能もある。踏査環境はWindowsおよびMac OS X、Linux。ライセンスはGPLv2。 Meld 1.7.5は細かな機能強化が中心となる。gconfにおける誤設定の処理を改善し、ファイル比較で現在の行をハイライトするかどうかを設定できるようになった。コミットダイアログにアクセスできるキーボード

    グラフィカルなDiff/マージツール「Meld 1.7.5」リリース | OSDN Magazine
  • Meld

    Meld  Visual diff and merge tool Meld helps you compare files, directories, and version controlled projects. It provides two- and three-way comparison of both files and directories, and has support for many popular version control systems. Meld helps you review code changes and understand patches. It might even help you to figure out what's going on in that merge you keep avoiding. File comparison

    Meld
  • CSSサンプル集

    .play { color: #ffba16; font-family: 'FB Condor Bold', sans-serif; font-size: 100px; letter-spacing: 0.2em; padding: 10px 0; -moz-transform: skew(-25deg) rotate(5deg); -ms-transform: skew(-25deg) rotate(5deg); -webkit-transform: skew(-25deg) rotate(5deg); transform: skew(-25deg) rotate(5deg); text-shadow: 0 1px #ff9b0d, 1px 0 #f79100, 1px 2px #ff9b0d, 2px 1px #f79100, 2px 3px #ff9b0d, 3px 2px #f79

  • Cryptokitを組み込んだプログラムが遅くなった場合の対処方法 - FIELD NOTES: 書を持って街へ出よう

    今まで作ってきたプログラムに暗号ライブラリCryptokitを組み込んだら,プログラムの動作が急に遅くなってしまいました。どうやら,乱数を生成している箇所で数秒〜数十秒の待ちが発生している模様です。 問題が発生した環境は,VMWare Fusion上で稼動しているFedora 14です。 調査 psコマンドでプロセスの状態を確認してみると,random_readという関数で止まっていました。random_readをキーに検索したところ,以下のことがわかりました。 Linuxの乱数は「エントロピープール」を元に乱数を生成する。 エントロピープールが枯渇すると乱数生成時に待ちが発生する(ただし,/dev/randomを使用した場合。/dev/urandomを使用すれば精度は悪くなるが待ちは発生しない)。 エントロピープールの量(ビット数?)は,‘cat /proc/sys/kernel/ran

    Cryptokitを組み込んだプログラムが遅くなった場合の対処方法 - FIELD NOTES: 書を持って街へ出よう
  • 同じようにインストールしたLinuxはどこまで同じなのか(2) : U字路

    2011年12月17日00:15 カテゴリ 同じようにインストールしたLinuxはどこまで同じなのか(2) ほぼ2年前に行おうとして、挫折したもの。 同じようにインストールしたLinuxはどこまで同じなのか(1) まず、今にして思うことは、同一のファイルでもi-node番号が違う。これがfindなどでの順番の違いと関係しているような気がする。 結局、当時の試行で同じ手順でインストール作業を実施しても、全体で見てしまうと違いがごくわずかしか現れないような同一性は確認できないことはわかったので、もっと実効上の差異に焦点を絞って確認してみる。 ということで/etcの内容の差異を確認した。 同一のvCPU,メモリ容量,HDDで構成し、FDDの有無だけ異なるものについて確認した。 aliases.db:バイナリが異なるらしい blkid/blkid.tab:デバイスのDEVNO,TIME,UUID

    同じようにインストールしたLinuxはどこまで同じなのか(2) : U字路
  • ここが大変だよ、JavaのGC/メモリ管理

    Webシステムを安定稼働させるには、考慮しなければならないことは数々存在する。システムの適切なサイジングを行うことも、その1つだ。 今回は、その中でもJavaVMのメモリのサイジング(見積もり)とGC(ガベージ・コレクション)に着目して説明する。 現象の見え方 今回は、以下の問題についての話だ。 メモリサイジングをミスした場合、業務ピーク時のGCの多発や長期化からこの現象に陥る場合がある。CPU利用率が100%に張り付いて性能が出ない場合は、GCが原因かを疑う必要がある。その場合、まずはGCログを参照し、GCの処理時間や発生頻度から1分ごとのGC処理の占有率を確認してみるとよい。 占有率が大きい場合、アプリケーションの処理やメモリのサイジングを見直す必要がある。以降では、GCを考慮したメモリのサイジングについて説明する。 JavaVMのメモリ空間はどうなっているのか 初めに、Cosmine

    ここが大変だよ、JavaのGC/メモリ管理
  • 第4回 3つのGCを使い分けて停止時間を最小にする | gihyo.jp

    3つのGCを使い分けてCPUの使用率をコントロールする 「GCの時間が長くてシステムが反応してくれない……もっと短くならないかな?」 「GCが始まると、CPUが占有されちゃって、ほかのプロセスの動きが重くなるんだよね……」 「GCの停止時間が多少長くなってもいいから、ほかのプロセスへの影響を軽くできないかな?」 JVMを使用しているシステムでは、そんな話を耳にします。GCが起きていることまでは把握できているのですが、それからどうしたら良いのかわからないのです。 GCは、JVMの内部でGCスレッドがCPUに処理されることで行われています。そのため、GCが行われている間はCPUの使用率が増加してしまうのです。 GCをスレッドの観点で見ると、以下の3種類があります。 シリアルGC パラレルGC コンカレントGC これらの違いを把握すれば、CPUの使用率とアプリケーションの停止時間をコントロールす

    第4回 3つのGCを使い分けて停止時間を最小にする | gihyo.jp
  • random - スペシャルファイル (デバイス)の説明 - Linux コマンド集 一覧表

  • Engadget | Technology News & Reviews

    Pick up the 9th-gen iPad with two years of AppleCare+ for only $298

    Engadget | Technology News & Reviews
  • TechCrunch | Startup and Technology News

    An autonomous pod. A solid-state battery-powered sports car. An electric pickup truck. A convertible grand tourer EV with up to 600 miles of range. A “fully connected mobility device” for young urban innovators to be built by Foxconn and priced under $30,000. The next Popemobile. Over the past eight years, famed vehicle designer Henrik Fisker…

    TechCrunch | Startup and Technology News
  • 最近SNSに増殖してきた「◯◯歳起業家 自由な生き方で月◯◯万円を稼いでます☆」は本当に稼げているのか - BAYAREAD ─読書記録と忘備録─

    最近、youtubeやTwitter、様々なサイトのサイドバーの広告でよく見かけるようになった人たちがいます。こういう人たちです。 彼らの多くは20台前半で、”起業家”を自称しています。どうやら彼らは、誰にも縛られない”自由な生き方”をしているのに、毎月数十万円を稼いでいるようです。なんてうらやましい。 たいていの場合はTwitterのプロフィールにリンクが貼られており、クリックすると彼らのHPに飛びます。そのペラページでは、彼らがどうやってその羨ましい生活を手に入れたのか、今に至るまでのサクセスストーリーがこれでもかと書いてあります。 そしてページの下部には情報商材の購入ややメルマガの購読を申し込むフォームがデカデカと掲載されています☆ こういった情報商材やメルマガの販売は、インターネッツの黎明期から存在していました。ヤフオクを使った情報商材販売なんて、すごく活気がありましたねぇ。それ以

    最近SNSに増殖してきた「◯◯歳起業家 自由な生き方で月◯◯万円を稼いでます☆」は本当に稼げているのか - BAYAREAD ─読書記録と忘備録─