1. ソーシャルゲーム スケールアウトの歴史 gussan@Drecom Co., Ltd. Copyright © Drecom Co., Ltd. 12年2月20日月曜日
9. 9 最適化について 「細かい効率のことは忘れて、時間の 97% について考え よう。時期尚早な最適化は諸悪の根源だ。それでも残り 3% についても機会を逃すべきではない」 - Donald E. Knuth 「プログラム最適化の第一法則 : 最適化するな。 プログラム最適化の第二法則 ( 上級者限定 ): まだするな。 」 - Michael A. Jackson 11. 11 最適化の対象 主に Intel の Haswell マイクロアーキテクチャ以降を対象 多くのテクニックは他のプロセッサにも応用できます ベース マイクロアーキテクチャ プロセスルール 登場年 Nehalem Nehalem 45nm 2008 〃 Westmere 32nm 2010 Sandy Bridge Sandy Bridge 32nm 2011 〃 Ivy Bridge 22nm 2012 Hasw
1. これからはじめる インフラエンジニア 2012/12/17 知的ヘンタイ六番勝負 第三戦 外道父@GedowFather Copyright © DRECOM Co., Ltd All Rights Reserved. 1 2. わ言そ 興 イ な かわん 味 ン に っれな が フ ? とんこ な ラ るでと い に わも ! ? な ん て Copyright © DRECOM Co., Ltd All Rights Reserved. 2
This post will talk about a new library in Go 1.7, the context library, and when or how to correctly use it. Required reading to start is the introductory post that talks a bit about the library and generally how it is used. You can read documentation for the context library on tip.golang.org. How to integrate Context into your APIThe most important thing to remember when integrating Context into
良くあるダメなエラーメッセージ エラーが起きたときは、以下のようにエラーメッセージをどこかしらに出力すると思います。 $c->log->error('something wrong!'); ただ、このエラーメッセージって、実際に発生したときには意味がわからないことが多いのです。 $c->log->error('error!'); 本気でこういう「error!」とだけ吐くメッセージだと、エラーが起きたことしか伝わってきません。程度の差はあれ意味のわからないエラーメッセージはこの世にあふれているかと思います。 機械的なエラー情報 そういうわけで、たいていは Exception クラスや Logger クラスで多くの補助が受けられるようになっていると思います。 発生時刻 発生場所 stack trace 変数の状態 ただ、このような機械的な情報だけだと、結局、運用上は対応が難しい場面ってのが多か
HeartRails Tech Blog ハートレイルズのエンジニア、デザイナーによるブログです。 ウェブサービス、スマホアプリ、IoT デバイスの開発に関連する技術的な情報を発信していきます。 この記事は、そろそろ一般向けにサービスリリースしてみようかなと考えているエンジニア向けに書きました。 説明に Rails を用いていますが、考え方自体は Web アプリ一般に応用可能です。 結論 「cache publicに設計しよう」 出来るだけ多くのページを cache public にしましょう。 砲撃の来るページは cache public に出来るはずです。 この説明だけで意味の分かった方には以下の記事は読む価値はありません。時間を有意義につかってください。ごきげんよう。 砲撃に耐えよう サービスリリースして、バグもなく順調に事が運び、運が良ければバズったり、どこぞの大手メディアに取り上
Web APIを開発していると、HTTPのヘッダについてRFCにおける規約を確認しなきゃいけない場面がたまにあるので、今回調べたことをまとめた。 HTTP/1.1のRFC HTTP/1.1のRFCといえば、長らくRFC2616であったが、2014年にRFC7230〜7239が発行され、2616は廃止された。 RFC2616 ハイパーテキスト転送プロトコル -- HTTP/1.1 RFC7230〜RFC2739 HTTP/1.1 — RFC 7230 〜 7235 — 日本語訳 両者の変更点については、RFC 723xの付録に記述されているので参照のこと。Content-MD5が廃止されたり、ちょいちょい面白い。文章としても723xの方が分かりやすくなっているので、一度目を通しておくことをお勧めする。 HTTP/1.1 が更新された | The Long Wait あたらしいHTTPの話をし
Vimはシングルスレッドである。何かが動いてる間は他のことはできない。 一方、vimには各種言語のインターフェースが付いてる。RubyやPerlやPythonからVimが操作できる。 で、これらの言語では大体スレッドが使える。ならば、これらの中でスレッド作ればVimでも非同期行けるんじゃね?ってのが今回のお話。 早速やってみた。Pythonはまともに触ったことないので変なところがあるかも知れない。突っ込み歓迎。 ちなみに試した環境は、Fedora 9 + Vim 7.2 + Python 2.5.1。 python << EOP import vim import thread import time def run(): for i in range(10): time.sleep(1) vim.command("echo " + str(i)) thread.start_new_thr
ツイート 前回はPythonインタフェースの基本を紹介しましたが、今回はもう少し突っ込んだ内容について紹介しようかと思います。 変数のコンテキスト VimScriptからPythonを起動するとき、Pythonは呼ばれたVimScriptのコンテキストで実行されます。なので、以下の例のようにしてVimScriptとPython間で変数をやりとりすることができます。 " VimScript let s:hoge = "s:hoge" function Hoge(hoge) let hoge = "l:hoge" python <<EOM print vim.eval('s:hoge') # s:hogeと表示 print vim.eval('a:hoge') # a:hogeと表示 print vim.eval('hoge') # l:hogeと表示 vim.command('let s:h
どうも、ご無沙汰してます有末です。 Pythonistaならpyenvだよねーってことで当初からバリバリ使わせていただいているのですが、最近djangoのプロジェクトを書く際に困ったのでまとめておきます。 具体的にはpyenvでPytho 3をインストールし、pyenv-virtualenvを用いて仮想環境を構築し、その仮想環境に django をインストールしただけでは jedi-vim の補完が効かないという問題です。 いくつかの要因が複合して複雑に成っていたので、ひとつずつメモしていきます。 忙しい人のための簡易書 普段からpyenvとpyenv-virtualenvを使用していてjedi-vimでdjangoの補完が効かなくて困っている。 とにかく補完を効かせたい。 戯言なんてどうでもいいという人は下記を~/.vimrcに記載してください。 " ~/.pyenv/shimsを$PA
VimのPythonインターフェースのパスの設定がうまくいってないと、Pythonを使うプラグイン、例えばjedi-vimを使って補完がうまく行かなかったり、vim-geeknoteを使った時、 function Vim_GeeknoteToggle の処理中にエラーが検出されました: 行 4: Traceback (most recent call last): File "<string>", line 1, in <module> File "/Users/tmsanrinsha/.vim/bundle/vim-geeknote/plugin/vim_geeknote.py", line 4, in <module> from explorer import Explorer File "/Users/tmsanrinsha/.vim/bundle/vim-geeknote/plug
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く