Concepts and tools of logging in Java. Javaにおけるログ出力の考え方と道具について説明. CC Attribution Licenseの元に公開します.Read less
![Javaのログ出力: 道具と考え方](https://cdn-ak-scissors.b.st-hatena.com/image/square/82f188789773c0fc2d954a06b0bf3255c65bcacc/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fconceptsandtoolsoflogginginjava-151014081951-lva1-app6892-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
ISUCON5の予選に参加して、圧倒的な差で負けたので、 この悔しさをバネに復習して、自分の力にしたいと思う。 今回のファイトではアプリの修正が特に重要であったように思う。 そこでアプリの修正に焦点を当てて、「こうすればよかった」を追っていき、自分のものとして習得したい。 とはいえ、本番とまったく同じ状況を作ることはできないので、ローカル環境でベンチマークを走らせて、簡易に得点を見ていくことにする。 ISUCON5の予選で使われたアプリのコードとベンチマークのコード、gce用のイメージはすでに公開されているのでこちらを使う。 isucon.net なお、極力アプリの修正に集中するため、nginx.confやmy.cnfはいじらない。unicornのworker数すらいじらない。 インフラはせいぜいテーブルにインデックスを貼る程度とする。 これは、ISUCON予選本番で、やたらインフラに時間
ConsulはDNSインターフェースを通してノードとサービスの死活監視の状況を提供することができる e.g. ロードバランスのためラウンドロビンしているノード群を問い合わせ結果として提供するとき、問い合わせ結果からダウンしたノード・サービスを動的に外す DNSをどのようにインターフェースとして利用しているか、を見ていく過程で、DNSについて学ぶことができる www.consul.io localhostでConsulサーバが動いていて、ノードルックアップを行う場合、例えばfoo.node.consulの名前解決を行う際は$ dig @127.0.0.1 -p 8600 foo.node.consul ANYのように行う DNSサフィックスがOSの設定によって自動的に付加されることを防ぐためにFQDNはピリオドで終端するので、DNSサフィックスが不要な場合、digで問い合わせする際にピリオド
最近、データベース(MySQL)を勉強していて、「NULL値とは何か?」という課題に遭遇しました。 今までもちょっとプログラミングをかじっていた経験から、なんとなーくこんなもんだろう、という くらいには分かっていたつもりでしたが、いざ人に説明してみようとするとこれができない^^; というわけで改めてNULLについて考えてみたわけです。 1.0と空文字列とNULL〜第1ステップ〜 0…値が0 値が0とは?? 空文字列…値が無い 値が"無い"?!(ないわけじゃないだろう…) NULL…値が不明(未定義ということ?) 値がわからない"こと"なのか? …とまぁうろ覚えどころかわけわからない状態だった第1ステップ。 2.0と空文字列とNULL〜第2ステップ〜 0 整数型の数値。(0.0などと書けば浮動小数点型) 空文字同様値なので大きさがある。 "0"という大きさを表している。 空文字列 文字列型と
スマホなどの携帯端末のGPS機能によって、個人の居場所(ある時刻における滞在位置情報)を容易にアプリ提供業者が収集できます。そして、個人の居場所情報は様々なビジネスで有用な情報です。多数の業者が使いたい情報であり、収集した業者から第3の業者への転売も起こりえます。 しかし、このような情報を含む個人データのデータベース自体が転売されるとなると、悪用される危険がつきまといます。 データベース自体を転売するのではなく、データベースへの質問をさせ、統計情報を回答する使い方が安全で使いやすいかもしれません。データベース自体が時々刻々と変化しています からなおさらです。 そこでこのスライドでは、多数の人の滞在場所情報のデータベース質問への答えに雑音を加算してプライバシーを保護する差分プライバシー技術について最近の論文を紹介します。 膨大な滞在情報データベースを直接扱うのではなく、適宜、階層的に分割を繰
ご存知の通り、ApacheのVirtualHost(以下vhost)、所謂、Webサーバの仮想ホストは単一のApacheで複数のホストを処理しています。そのため、複数のvhostを含めたCPU使用量といったリソース使用量をグラフ化することは簡単なのですが、vhost単位となると各vhostへのリクエスト単位でのリソースを計測しておかないとグラフ化することはできません。そういう意味でvhost単位でリソース使用量をグラフ化しようとすると一気に敷居が上がってしまいます。 また、uid毎に実行プロセスを分離しておけば、pacctといったプロセスアカウンティング機能でuidのカウントはできますが、リアルタイムの計測(秒とか分のオーダー)にはコストが高かったり、vhostで提供しているコンテンツによっては、Apache権限で配信されているものもある(静的コンテンツ)ため、正確に計測することは難しくな
最近Pythonを使って、特定のmicroRNAが結合するSeed配列をmRNAの配列中から探索して、さらに種間保存性や配列の特徴を解析するスクリプトを思いつくままに書いたのですが、 実行してみて、そのスクリプトがやたら遅いことに気づきました(-_-;) 「1つのmiRNA vs すべてのmRNA」のペアで3時間以上かかる…。すべてのmiRNAとすべてのmRNAの組み合わせを実行したら、いったい計算に何ヶ月かかるんだろうってレベルです。 スクリプトはこちら。 github.com そこで、スクリプトのどの部分が計算上ボトルネックになっているか調べてみることにしました。POSTDに掲載されていたPythonにおけるコードプロファイリングのお話があったので早速試してみました。 postd.cc 上記の記事でも説明されているように、 PythonにはcProfile (pythonのcProfi
HDDケースにSX900を入れて接続。 SSDがまっさらでドライブレターも割り当てていませんので、「コンピューター」を覗いてもSSDのドライブは表示されません。 その場合、「スタートメニュー」→「コンピューター」を右クリック→「管理」。 「記憶域」→「ディスクの管理」で初期化されていない不明な領域があれば、それが接続しているSX900です。見えているなら認識はOK。 初期化してドライブレターを割り当てる事もできます。でもどうせクローンを作成する過程で自動的に初期化する事になりますので、このまま未割り当てのままで構いません。 HDDからSSDへデータをコピー ※必ず作業前にディスク全体のバックアップをとっておく事。 今回は移行元のHDDが256GB、移行先のSSDが128GBと引っ越し先のディスクの容量の方が小さくなっています。この場合EaseUS Partition Master Free
はじめに こんにちは。Gopherファンクラブ会員番号3番です。去る、10月11日にdots.さん主催の「Goオールスターズ」で登壇してGoでのpackage managementについて話してきました。 Goオールスターズ - dots. [ドッツ] ツイートのまとめや他の登壇者の方の資料はこちらです。 Goオールスターズ - Togetterまとめ Goだけでモバイルアプリを作ろう Goオールスターズ - 考える人、コードを書く人 過去に自作したGoプロダクトの紹介 - Goオールスターズ Goオールスターズで登壇してきました | おそらくはそれさえも平凡な日々 資料 資料はこちらです。 大体の流れはこんな感じです。 当面はGo本体では当面は「ソースコードの明示性」「下位互換性」を保つためにgoツールでパッケージのバージョン管理をすることはしない 代わりにGo1.5ではven
ISUCON は Go で参戦しているんだけど、複数のチームが Python で予選通過したらしいので、応援のために Tips を公開していこうと思う。 目次 CPython の GC について 統計情報を出力する 第一世代GCの間隔を調整する Out of Band GC 循環参照を見つけて対処する CPython の GC について CPython のGCは参照カウント+循環参照コレクタだ。そして参照カウント方式は(幾つかの欠点はあるものの)Webアプリのボトルネックになったりはしにくい。 なのでGCチューニングの基本は次のようになる。 循環参照を避ける 循環参照コレクタの呼び出しタイミングを制御する 循環参照コレクタは、生きているオブジェクトの数がある程度増えると第一世代が実行され、第一世代が一定回数実行されると第二世代が、第二世代が一定回数実行されると第三世代が実行される。 各世代
プログラミングにはレベルの低い・高いがある。ここでいうレベルとはCPUとかストレージデバイスといった生のハードウェアに近いかという意味である。レベルが低いほど生のハードウェアを意識しなければならない。カーネルは低レベルなソフトウェアの代表である。高尚かどうかと混同されることを嫌ってか、低レイヤ・高レイヤという言い方も良くする。私はあえて混同させたくてレベルという単語を使用している。 私は元々低レベルのプログラミングの方が計算機を操ってる感があって好きだった。しかし、しばらく離れてJavaとかPythonとか高レベルなことをやっていたが、ふと低レベルのところを再び触りたくなったので、 ハッカーのたのしみ Binary Hacks Cプログラミング高速化研究班 等を読み返しながら勉強している。低レベルはちょこちょこっとチューニングするだけで演算が高速化していき、ハッカー感が得られるので楽しい。
最新版はこちら: https://speakerdeck.com/yutannihilation/ggplot2zai-ru-men
契約事務手数料3300円無料キャンペーン実施中!1GBプランは月額770円、5GBプランは月額990円から利用可能!ドコモ回線/au回線/ソフトバンク回線が選べるSIMカード/eSIMどちらも契約可能基本データ容量で選ぶ「マイピタ」、通信速度で選ぶ「マイそく」が選べる※SIMカード発行手数料/eSIMプロファイル発行料440円は必要 ※お試し200MBコース、マイそくスーパーライトを申し込みの場合は適用対象外 HDD/SSDから新しいSSDに交換・換装するのは思っているよりも簡単購入した直後はサクサク動作していたパソコンも長年使っていると、 ソフトウェアやWindowsの起動に時間がかかる、終了も遅い容量の大きいファイルを開くときに読み込みに時間がかかる使っているとよくフリーズするとにかく使ってるとイライラするといった問題が発生してきます。 メモリ容量が不足しているのが原因で動作が遅いので
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く