タグ

ブックマーク / developer.cybozu.co.jp (11)

  • 恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。将来の夢は川口浩探検隊に入ることです。 先日、弊社のアプリケーションサーバーで大量にメモリを消費するという現象に遭遇しました。アクセス頻度の低いサーバーがメモリを大量消費するという謎深いものでした。 発生当初の状況はこんな感じです。 アプリケーションサーバーでは Jetty が稼働 現象が発生した JVM は 5GB 程度のメモリを消費しており、明らかに通常ではない量のメモリを消費している 複数台のサーバーで発生していたが、全てで発生したわけではない。 また、発生したサーバーはいずれもアクセス頻度が少ないサーバーだった。 ヒープ、パーマネント、スタック ひとまず、JVM でトラブルが発生した時は何はともあれヒープダンプとスレッドダンプを見るに限ります。各種情報の取得をインフラ部隊へ依頼し、得られたヒープを解析すると、

    恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Kazuho@Cybozu Labs: (Twitter の XSS 脆弱性に関連して) 構造化テキストの正しいエスケープ手法について

    昨日の Twitter の XSS 騒ぎは、まだ皆さんの記憶に新しいことと思います。いい機会なので、ツイートのような構造化テキストのエスケープ手法について触れておきたいと思います。 Twitter のメッセージは、単なる平文(プレインテキスト)ではなく、「@英数字」のような他のユーザーへの言及と「http://〜」のような URL を自動的にハイパーリンク化する構造化テキストです。 このような複数のルールをもつ構造化テキストを HTML 化する際には、どのようなコードを書けばいいのでしょう? まず「@〜」をリンク化してから、URL をリンク化すればいいのでしょうか? それだと、@〜 のをリンク化した A HREF タグの中の URL がさらにリンク化されていまいますね。 では、URL をリンク化してから @〜 をリンク化すればいいのでしょうか? それだと、@ を含む URL があった場合に

  • Kazuho@Cybozu Labs: REST におけるトランザクションについて (Re: Web を支える技術)

    といいつつ、ひとつだけ理解できないというか、納得できないところが。トランザクションのところがなんだかRESTっぽくないのがすごく気になる Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESSプラスシリーズ)(山 陽平) - ただのにっき(2010-04-23) 「Web を支える技術」は自分もとてもいいだと思う (教科書としてすばらしいし復習用としても読みやすいのでイイ) のですが、トランザクションの所だけは分かりづらいなと感じました。その原因は、atomic transaction で解決できる課題を例として使っているという点と、トランザクションと更新クエリのレイヤ分割がされていない、という2つの点によるものではないでしょうか。 HTTP 上でトランザクションを表現する必要があるケースのほとんどは、atomic transaction ではなく

    hatanaoki
    hatanaoki 2010/04/24
  • ロイター通信が「AP通信がそんなにリンクや引用されるのが嫌なら、ブロガーはロイターの記事にリンクするといいよ」宣言 | 秋元@サイボウズラボ・プログラマー・ブログ

    ロイター通信が「AP通信がそんなにリンクや引用されるのが嫌なら、ブロガーはロイターの記事にリンクするといいよ」宣言 AP通信が今年の6月に、非商用の記事引用でも、5単語で$7.5(商用なら12.5ドル)の支払いをブロガーに要求したことから、英語圏ではニュースの引用やリンクとフェアユースについての議論が続いているようです。 引用に当たってはAPと利用契約を結ぶこととなるが、その中には「記事の中でAPや記者を批判してはならない。違反した場合は解約もありうる」」という条件があり、ニュース記事の短文引用は公正な利用であるとした公正利用(Fair use)権を無視したものだという批判が出ている。 米国:AP、引用語数で課金|STI Updates|情報管理Web それに対して、ライバルの通信社であるトムソンロイターズ・メディアの社長クリス・アハーン(Chris Ahearn)さんが、公式ブログに登場

  • Kazuho@Cybozu Labs: MySQL のボトルネックを統計的に監視・解析する方法

    MySQL のチューニング、と言った場合には、サーバーパラメータの調整や EXPLAIN コマンドを利用したクエリ実行計画の最適化が話題に上ることが多いです。しかし、発行する全ての SQL について、いちいち EXPLAIN コマンドを使って確認していては、いくら時間があってもたりません。チューニングを効率的に進めるには、まず、ボトルネックとなっている SQL クエリを特定し、次にその最適化を行うべきです。 ではどのようにして、ボトルネックを特定するのか。MySQL Conference & Expo 2009 のキーノートにおいて Mark Callaghan 氏は、Google では SHOW PROCESSLIST コマンドを使った統計的アプローチを使っていると述べていらっしゃいます (参照: MySQLConf 09: Mark Callaghan, "This is Not a

  • 秋元@サイボウズラボ・プログラマー・ブログ: 管理画面用のフリーテンプレートが公開されている

    ブログやエンドユーザ向けページのデザインテンプレートは多いけど、管理画面用でフリーでいいのはあまりない、と主張する作者による、自由に使える(言及やリンクも不要。できればブログ読んでね、だそうだ)管理画面デザインテンプレートというのがWebResourceDepotというブログで配布されていて、del.icio.us/popularに出ていた。 開くとこんな感じ。アイコンは、これもフリーアイコンとして有名なfamfamfamを使っている。 これを使った管理画面をWebアプリケーションフレームワークのAdminジェネレータで生成するようにすれば、バックエンド側の画面作成は手間が減るだろう。 via del.icio.us/popular この記事は移転前の古いURLで公開された時のものですブックマークが新旧で分散している場合があります。移転前は現在とは文体が違い「である」調です。(参考)記事の

  • S5を進化させたHTMLプレゼンテーションツールS5 Reloaded | 秋元@サイボウズラボ・プログラマー・ブログ

    via del.icio.us/popular S5 Reloaded HTMLCSSJavascriptだけでプレゼンテーションを作るS5というツールがあって、できるプレゼンテーションファイルも軽量だし、テキストエディタ派の自分としては好んで使っている。 S5にscript.aculo.usというエフェクト系のJavascriptライブラリを適用したのがpresentacularで、プレゼンテーションの各要素に視覚的な効果を簡単に追加できる。 presentacularについてはこのブログをはじめた2005年に紹介していた。HTMLのclassを追加するだけで動くプレゼンテーションが作れるところがいい。 今回あらたに、S5をベースに別の人が作ったS5 Reloadedは、最近登場したいろいろなJavascriptライブラリを組み込むなどして、S5を積極的に改造したHTMLプレゼンテー

    S5を進化させたHTMLプレゼンテーションツールS5 Reloaded | 秋元@サイボウズラボ・プログラマー・ブログ
  • 秋元@サイボウズラボ・プログラマー・ブログ Flashによる、とても情報量の多い周期表

    via digg この周期表、とにかくどこを触っても動く。 特定の元素をクリックすると、元素のいろいろな詳細情報が中央上部のボックスに表示される 「希土類」とか「非金属」といった名前を選ぶと、そのグループに属する元素が強調される。 また、温度のバーをスライドさせると、その温度で各元素が液体なのか固体なのか、といった情報が反映される。西暦のバーをスライドさせると、元素が発見された年が表示され、人類がある年に把握していた元素の一覧がわかったりもする。 正直、ぱっと見わからないスライダーも多い。 かなり「やりすぎ」感があって、かえって中高生とかには使えなさそうにも思えるけど、ビックリ箱のようなこの情報過多は、なんとなくクリックしていくことで新しい知識を得る、という目的にはいいのかもしれない。 [関連] 周期表 + Googleイメージ検索 マッシュアップ Ajax周期表 実物を使った周期表 周期

    秋元@サイボウズラボ・プログラマー・ブログ Flashによる、とても情報量の多い周期表
  • 秋元@サイボウズラボ・プログラマー・ブログ 色で書くプログラミング言語Piet

    Piet は、色の変化でインストラクションを表す、スタック言語だ。 プログラミング言語といえばまずこれだろう。言語作者人による、”Hello, World”。 コードの実行は左上から開始され、同じ色で塗られた領域のピクセル数が数値に、次の領域での色相と明度の変化がインストラクションになる。 また、次の実行方向を制御するための黒色と、何も行なわない(NOP)白色もある。 その他のサンプルプログラムはこちら。”Hello, World”をいろんな人が違うやり方でコーディング(ペインティング?)しているけど、中にはハノイの塔やフィボナッチ数列を求めるプログラムもある。よくやるなあ。 そして、この言語の発想の基となり、言語名の出自でもある、Piet Mondrianの作品っぽく見える”Hello, World”も。 この人は、Esoteric Programming Languages(秘伝的プ

    秋元@サイボウズラボ・プログラマー・ブログ 色で書くプログラミング言語Piet
  • ページ中の画像群で遊ぶJavascript | 秋元@サイボウズラボ・プログラマー・ブログ

    via digg ロシアからのJavascriptネタ。 Google Imageの検索結果など、画像がたくさんあるページで、アドレスバーに以下のJavascriptをペーストして実行すると、おもしろい効果が出る。 javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i<DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setI

  • SSE (Simple Sharing Extensions)発表 – 次世代 RSS となれるか? | 秋元@サイボウズラボ・プログラマー・ブログ

    via TechCrunch SSE (Simple Sharing Extensions) とは、一方向の通知を実現する RSS に対して、最低限の拡張によって双方向の同期を実現するもの、ということらしい。 マイクロソフトの CTO 、Ray Ozzie が自身のブログでこの SSE 発表について解説している。 このブログ記事によれば、SSE によって、家族間でスケジュールのアップデートを共有することができるようになるという。その際に、プライベートなスケジュール、共有スケジュール、公開されたスケジュールをそれぞれ適切な公開レベルのまま扱うことができる。スケジュールは一例で、アドレス帳の中の共有エントリなどについても同様に、個人アドレス帳アプリケーションの中から共有されているアドレスを更新すると、その更新が共有相手側にも伝えられてシンクロナイズするようなアプリが作れるという。 「あの」マイ

  • 1