タグ

2013年4月12日のブックマーク (83件)

  • suz-lab.com - suz lab リソースおよび情報

  • suz-lab.com - suz lab リソースおよび情報

  • プログラマメモ2

    眠っている間に体の中で何かが起きている 「眠っている間に体の中で何が起こっているのか 」(amazon) 睡眠大事です。試験前はお酒をひかえましょう。 結果なんぞ スコアは753点でした。ぎりぎりですね。試験結果みると「コンピテンシーを満たしている」を満たしていなくて、「改善が必要」な項目がありました。 アソシエイトな試験は、知識のほうの比重が大きいという認識なのですが、それでこのスコアがよくないでしょうね... 以下の項目が「改善が必要」となりました。 第 3 分野: デプロイ、プロビジョニング、およびオートメーション (採点対象コンテンツの 18%) 第 4 分野: セキュリティとコンプライアンス (採点対象コンテンツの 16%) 学習について この試験のまえに受けたDeveloperが受かったので気が大きくなってしまったような気がします。 期間は大体3週間ぐらいで、skillbuil

    プログラマメモ2
  • ServletとjQueryによる非同期ファイルアップロード - コンピュータクワガタ

    最近色々なところで見かける、ファイルをアップロードする際にプログレスバーを表示する方法を色々調べてみました。 以前調べていた時には、インラインフレームへのサブミットとCommons FileUploadを組み合わせて行う方法しか見つからなかったのですが、今はJavaScript側での仕組みが整って来ました。 ちなみにChromeとFirefoxの最新版でしか確認していません。IEは動きません。 とりあえずコードです。アップロードを受信するサーブレットはいつもどおり、丸パクリの使いまわしです。この部分はサーブレットでなくてもサーバーサイドでファイルのアップロードを受信できればなんでも構いません。 package net.kuwalab.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.s

    ServletとjQueryによる非同期ファイルアップロード - コンピュータクワガタ
  • 軽量サーブレットコンテナ winstone を開発用にサクッと使う - A Memorandum

    winstone とは 軽量サーブレットコンテナで、jarファイルのサイズ自体も非常に小さいです。開発時のJettyの代替として利用できるかと思います。Tiny Java Web Server なども候補に挙がりましたが、ちょっと使いまわしにくいところがあり、今回はwinstoneを紹介します。ダウンロードは以下から。 http://winstone.sourceforge.net/ 通常版の winstone と、軽量版の winstone-lite がありますが、開発時利用では winstone-lite で十分です。通常版では、Apache との連携用にAJP13 がサポートされたり、認証レルムサポートが入っているみたいです。 プロジェクトの作成 プロジェクトページからwinstone-lite-0.9.10.jarをダウンロードしてクラスパスに追加します。winstoneはJSPエ

    軽量サーブレットコンテナ winstone を開発用にサクッと使う - A Memorandum
  • H2を組み込みモードで使うサンプル - A Memorandum

    H2を組み込みモードで使うサンプル。 H2のjarをクラスパスに追加するだけ。 package sample; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class SimpleApp { private String driver = "org.h2.Driver"; private String protocol = "jdbc:h2:"; public static void main(String[]

    H2を組み込みモードで使うサンプル - A Memorandum
  • Guice 最初の一歩 - A Memorandum

    Guiceとは GoogleからリリースされているDIコンテナ XMLレスでDIの定義をコード内での記述で閉じられる 現在2.0がリリースされている http://code.google.com/p/google-guice/ 最初の一歩 Client が DIされた Service を実行する単純なケースの実装 まず Service のインターフェース public interface Service { String execute(); } Service のImpl public class ServiceImpl implements Service { @Override public String execute() { return "Execute!!"; } } Client の実装はコンストラクタインジェクションにてServiceを設定するようにする このときコンスト

    Guice 最初の一歩 - A Memorandum
  • Guice でサーブレット - A Memorandum

    Guiceでサーブレット書いてみる これだけだと、web.xmlのサーブレットマッピングをJavaコードとして記載できるだけだけど、練習 Jetty利用の事前準備 前回の記事と同様、Jettyをインメモリのサーバとして使うので、Jetty起動用のランチャーを作成 Jettyのjarにもクラスパス通す public class JettyLauncher { private static final int PORT = 8080; private static final String WAR_PATH = "WebContent"; private static final String CONTEXT_PATH = "/web"; public static void launch() throws Exception { Server server = new Server(PORT

    Guice でサーブレット - A Memorandum
  • Jetty でインメモリなサーバ作成 - A Memorandum

    Jettyのダウンロードと解凍 現在JettyはEclipse Foundationでホストされている。 http://www.mortbay.org/jetty/からリンクを辿り、Eclipseのサイトから以下をダウンロードして解凍。 jetty-distribution-7.0.0.RC1.zip Eclipseでプロジェクト作成 Eclipseで、新規Javaプロジェクトを作成し、先ほど解凍したlibフォルダ内の以下のファイルをプロジェクトにコピーしてパスを通す。 jetty-continuation-7.0.0.RC1.jar jetty-http-7.0.0.RC1.jar jetty-io-7.0.0.RC1.jar jetty-security-7.0.0.RC1.jar jetty-server-7.0.0.RC1.jar jetty-servlet-7.0.0.RC1.j

    Jetty でインメモリなサーバ作成 - A Memorandum
  • JSON-lib JavaでJSONを簡単に使う - A Memorandum

    JSON(JavaScript Object Notation) JavaScriptにおいて,オブジェクトの定義を行う際に用いられる表記 RFC4627にて規定されている。 XMLより簡素な記述で扱いが楽 JSON-lib JSON-libはJavaからJSON形式を簡単に扱えるライブラリ ダウンロードは以下 http://json-lib.sourceforge.net/ 今回ダウンロードしたファイルは以下 json-lib-2.3-jdk15.jar json-lib-2.3-jdk15-sources.jar この他に以下のライブラリが必要 http://commons.apache.org/からダウンロード jakarta commons-lang 2.4 jakarta commons-beanutils 1.7.0 jakarta commons-collections 3.

    JSON-lib JavaでJSONを簡単に使う - A Memorandum
  • オープンソースライセンスを生成してライセンスを明確にしよう·OSS License Generator MOONGIFT

    OSS License Generatorはオープンソースのライセンスファイルを生成するソフトウェアです。 GitHubが流行るのにつれてソースコードを公開するソフトウェアが増えたのは良いのですが、ライセンスが明記されていないものも数多くなっています。そこで利用をお勧めしたいのがOSS License Generatorです。 インストールしました。 listオプションで作成できるライセンスファイルの一覧が取れます。 例えばMIT Licenseの場合はこのような実行です。 ちゃんとライセンスが生成されました。 ライセンスはファイルを置けばいいものもあれば、Copyright部分を編集しなければならないものもあります。そうしたちょっとした手間の部分を軽減してくれるOSS License Generatorを使ってオープンソース・ソフトウェアとしてきちんと登録するのが良いのではないでしょうか

    オープンソースライセンスを生成してライセンスを明確にしよう·OSS License Generator MOONGIFT
  • appengine ja night #24 が終わりました - スティルハウスの書庫の書庫

    appengine ja night #24がリクルートMTLで開催されました。今回はGoogleでAPAC地域のCloudセールスを統括するCory Frantzmeierがたまたま東京に来ててぜひ皆さんに挨拶したいというので簡単なキーノートをお願いしました。そこで「年内には台湾、香港、シンガポールにApp Engineのデータセンターを設置したい」っていう情報も飛び出してました(正式なところは私もよく分からないのですが...)。これが実現すると、いまよりぐっとレイテンシが短くなるはずで、App Engineエンジニアには嬉しいニュースですね。 今回のおしながきは以下のとおり。 セッション1:「Google Cloud Endpoints & BigQuery」 発表者:Ryo Yamasaki @vierjpさん 資料:こちら セッション2 「Datastoreへのアクセスを楽してMe

    appengine ja night #24 が終わりました - スティルハウスの書庫の書庫
  • RとRubyによるデータ解析入門

    人気の高いオープンソースのツール、RとRubyを使い、生データを処理し、シミュレーションし、仮説を立て、統計的手法を用いて検証する、というデータ解析の基の理解を促します。基が学べるだけでなく、自分のメールボックスや自分の心臓の鼓動など身近な題材を対象としており、データサイエンスの醍醐味を味わうことができる一冊です。日語版ではさまざまな統計分析手法についての入門となる章を追加。こので使っている統計の基礎も学べる構成になっています。プログラマ視点で書かれた書は、ビッグデータを活用するためのスキルを身に付ける必要に迫られた多くの開発者にとっても貴重な情報源となるでしょう。 関連ファイル サンプルコード 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すで

    RとRubyによるデータ解析入門
  • Git flowの活用事例

    ↓のv1.1.0版の方が、より見やすく改善したものになってます! http://www.slideshare.net/matsukaz/git-28304397 社内で開催したGit勉強会の資料。 SVNとの比較や、Gitの内部構造と各コマンドの関係、ブランチやリモートリポジトリとの関係を分かりやすく説明したつもり。 こういう資料に対する投げ銭的なのがどうなるのか気になっていたので、もしよろしければ・・・!15円からできるソーシャルカンパサービスだそうですm(_ _)m http://kampa.me/t/dev

    Git flowの活用事例
  • JUnitのassertThatのいいところ - きしだのHatena

    JUnitでのテストでは、古くは次のように書いてました。 assertEquals("期待値", "実際の値"); で、比較の種類だけassertXxxがあるわけです。 最近だと assertThat("実際の値", is("期待値")); のようにも書けます。 別にどっちでもええやん、とか思ってたのですけど、最近はassertThatのほうを使うようになりました。 というのも、assertEqualsを使おうとすると、補完で結構下まで移動する必要があったのです。 これがassertThatなら、次のようなstatic importにしておけば「as」で補完しても最初にassertThatが出てきます。 import static org.junit.Assert.assertThat; CoreMatchersも次のようにimportしておく必要がありますが、「is」とかは補完するまでも

    JUnitのassertThatのいいところ - きしだのHatena
  • git の運用指針 - Cube Lilac

    ソフトウェア開発に関しては、これまでほぼ一人で完結していた*1ので git の運用方法もかなり適当だったのですが(ただのコミットマシーン状態)、今回、同一プロジェクトに対して複数人でコミットしていく形になっているので、その状態だとやはりまずいなと言う気がしてきました。ググっていると「なるほど」と思う記事もたくさんあったので、それらの記事を元に自分のプロジェクトの「git の運用指針」を情報共有のために記載しておこうと思います。 前提 まず始めに、現在のプロジェクトの状況は下記のようになっています。 開発は 1 人のメインコミッタ(私)と数人のサポートコミッタ(アルバイト等)で行われる メインコミッタはフルタイム、サポートコミッタは週に数時間〜10時間程度の勤務形態 サポートコミッタに対しては、基的に 1 機能(1 チケット)を 1 人で完結するように作業を配分するが、時間的な兼ね合いもあ

    git の運用指針 - Cube Lilac
  • 2013年新学期にRubyを始めるエンジニアが読むべきサイトまとめ

    初心者ぺちぱーがRubyのコードを書くに当たって、大変勉強になったサイト、これから読んでおきたいドキュメントを紹介する。 Index Ruby入門・チュートリアル Ruby reference Ruby 2.0の新機能 Rubyコーディング規約 Ruby関連の情報 Ruby tool Ruby ブログ rbenv & ruby-build Gem Bundler irb pry RDoc YARD RSpec Cucumber SimpleCov ruby-prof Rake Rack Rack対応HTTPサーバー Sinatra Ruby on Rails Rails 4.0の新機能 Ruby入門・チュートリアル Rubyを始めるときに、入り口になるところ。他言語文化圏からの移民の人達は第1章 Ruby言語ミニマムから読み始めると、256倍ぐらい理解が早くなると思う。 第1章 Ruby

    2013年新学期にRubyを始めるエンジニアが読むべきサイトまとめ
  • git reset --hard HEAD を安全にした - 永遠に未完成

    昨日、git reset --hard HEAD してしまって大変なことになった話を書いた。私は普段これを cancel と言う名前に alias して使っている。 [alias] # 中略 cancel = reset --hard HEAD しかし前回のようなことがまたあってはたまらない。人間はミスするものだ。 alias があって実行しやすいのが問題なのだろうか? いや、割とよくする操作*1だし、alias しなくても使うだろう。 てことで、cancel が安全になるようにしてみた。 [alias] # 中略 cancel = !git commit -a -m 'Temporary commit for cancel' && git reset --hard HEAD~ 一旦コミットしてからそのコミットを消す。こうしておけば最悪 git reflog から元に戻せる。特にコミットす

    git reset --hard HEAD を安全にした - 永遠に未完成
  • 2013年版! SonicGardenにおけるherokuでのサービス運用構成 | mah365

    ちょうど去年の今頃、SonicGardenにおけるherokuでのサービス運用構成をご紹介しました。去年の比較して、今ではheroku番運用されているサービスも増えているかと思いますが、実際の構成例はあまり紹介されていないようです。去年ご紹介した内容も少し古くなっていますので、2013年バージョンとして、再度ご紹介したいと思います! 去年からの変更点 去年と比較して大きく変わっている点は、以下の3点ですねー。 バックアップ取得方法の見直し & 監視の導入 Route53愛してる! ログ取得のアドオンをPapertrailに変更 バックアップ取得方法の見直し & 監視の導入 @interuが去年のJAWS-UG in Nagoyaで講演したように、「当にバックアップ取れてるの?」というのは重要な視点ですね! なので、バックアップを取得するところと、監視するところ、セットで構成するように

    2013年版! SonicGardenにおけるherokuでのサービス運用構成 | mah365
  • フォームの入力必須項目のマークアップ | Accessible & Usable

    公開日 : 2013年4月12日 (2020年8月30日 更新) カテゴリー : ユーザビリティ / アクセシビリティ Web サイトのフォームの中には、入力必須の項目があります。大抵の場合、その項目が必須である旨を、ラベル (<label> 要素の中) に盛り込むことが多いでしょう。 <label for="name">お名前 (必須)</label> <input type="text" id="name" name="name" /> 上記のように、<label> 要素の中に「必須」と書かれていれば、たとえばスクリーンリーダーを使いながら [Tab] キ―でフォーカス位置を移動させている場合、フォーム入力要素 (<input> 要素、<textarea> 要素、<select> 要素) にフォーカスが当たるとその入力要素に紐づいたラベルが音声で読み上げられ、ラベルに包含された「必須」

    フォームの入力必須項目のマークアップ | Accessible & Usable
  • 新人Webディレクターがデザイナーと喧嘩しないために読むと参考になるエントリ

    【ディレクターとデザイナーの溝を埋める記事まとめ... / ディレクターはクライアントとデザイナーの間の調整... / Webの世界ではデザイナー経験がなくディレクター...他...全7件 【ディレクターとデザイナーの溝を埋める記事まとめ】 小規模の制作会社だとディレクターとデザイナーが揉めるのはよくあること。お互いがお互いの仕事を知り、リスペクトすることが大切です。すべてはクライアントのため、同じ目標を共有して、成果の出る仕事をしたいものです。 ディレクターはクライアントとデザイナーの間の調整役でもあります。デザイナーにとって何が大変か、クライアントにとって何が重要なのかを把握し、尊重すべきところは尊重し、うまくすり合わせることが大切です。

    新人Webディレクターがデザイナーと喧嘩しないために読むと参考になるエントリ
  • あなたの知らないもうひとつのHTML5フレームワーク『LWF』 | GREE Engineering

    からこんにちは。エンジニアの坂 一樹(@splhack)です。 皆様いかがお過ごしでしょうか。HTML5とともに過ごしてらっしゃいますでしょうか。 てなことで、インターネッツに非常に興味深い検証がありました! ■HTML5フレームワークにおける表示オブジェクトのパフォーマンス検証 - TogetterHTML5開発者必見、最速のJavaScriptライブラリはどれだ!? パフォーマンスの徹底検証 HTML5フレームワーク同士のガチパフォーマンス勝負ですね。 HTML5のフレームワークは、たくさんありますが、やはりパフォーマンスがいいものを選択したいところですね。さらに言えば、アニメーションのオーサリングなんかも、いい感じのツールでさくっと付けられるといいんですが。 おや? 何かがなかまになりたがってますね! ということで、LWFも、勝手になかまにいれてしまいましょう! あ、LWF

    あなたの知らないもうひとつのHTML5フレームワーク『LWF』 | GREE Engineering
  • (いわゆる)標準化をしてはいけない - arclamp

    技術の標準化は品質と見積り精度に寄与する 「企業において技術を(いわゆる)標準化する」というのは技術を固定化することであり、その固定化を受け入れることで効率化が実現されます。 品質向上の典型的手法は同じ方法を繰り返し実践する中で無駄を排除し、漸進的に方法を洗練させていくことです。また、これによってマネジメントで重要な見積り精度も向上させることが可能になります。 なお、見積りが重要なのはウォーターフォールでもアジャイルでも同じです。どんなマネージャーであれ技術を安定化させることは望むべきです。当然の判断でしょう。 このように技術の標準化は品質と見積り精度を向上させるため非常に有効だと思われてきました。 技術の進歩による効率化の方が優れている場合もある ですが「技術の進歩による効率化の方が優れている」場合もあります。というか、現状ではこちらの方が重要であると言って良いでしょう。つまり、技術を固

    (いわゆる)標準化をしてはいけない - arclamp
  • サンプルコードによるPerl入門のコーディングルール - Perl入門ゼミ

    Perl › コーディングルール サンプルコードによるPerl入門は、以下のコーディングルールに従って作成されています。参考にどうぞ。 スタイル インデントはスペースで2 sub parse { my $str = shift; my $tree; ... return $tree; } 1行は79文字以内 1行は79文字以内で書いています。 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa スペース 括弧 () の内側にスペースを入れない my @nums = (2, 4, 5); my %ages = (kimoto => 20, ken => 25); my $total = (2 + 3) + 2; while ($num == 2) { ... } for (my $i

    サンプルコードによるPerl入門のコーディングルール - Perl入門ゼミ
  • NLS_LANG のデフォルト値は AMERICAN_AMERICA.US7ASCII - ablog

    環境変数NLS_LANGを使用したロケールの選択 ロケールとは、システムやプログラムを実行する言語的および文化的な環境のことです。Oracleソフトウェアのロケール動作を指定する最も簡単な方法は、NLS_LANG環境パラメータを設定することです。このパラメータによって、クライアント・アプリケーションとデータベース・サーバーで使用される言語と地域が設定されます。また、クライアントのキャラクタ・セット(クライアント・プログラムによって入力または表示されるデータのキャラクタ・セット)も設定されます。 UNIXプラットフォーム上では、NLS_LANGは環境変数として設定されます。Windowsプラットフォームでは、NLS_LANGはレジストリ内で設定されます。 NLS_LANGパラメータには、3つのコンポーネント、language、territoryおよびcharsetがあります。このパラメータは

    NLS_LANG のデフォルト値は AMERICAN_AMERICA.US7ASCII - ablog
  • 覚えておきたい ORA-エラー - ablog

    暗記は苦手ですが、覚えなきゃ。 ORA-00001: 一意制約(string.string)に反しています 原因: UPDATEまたはINSERT文が重複するキーを挿入しようとしました。DBMS MACモードで構成されたTrusted Oracleでは、異なるレベルに重複するエントリが存在するとこのメッセージが表示される場合があります。 処置: 重複しないように値を変更するか、索引の一意性の制約を取り消してください。 ORA-00060: リソース待機の間にデッドロックが検出されました。 原因: リソース待機の間にトランザクションが相互にデッドロックしました。 処置: トレース・ファイルを参照して、関連するトランザクションとリソースを確認してください。必要に応じて再試行してください。 ORA-00600: 内部エラー・コード, 引数: [string], [string], [string

    覚えておきたい ORA-エラー - ablog
  • 共有ライブラリと mmap(2) - ablog

    Binary Hacks ―ハッカー秘伝のテクニック100選 作者: 高林哲,鵜飼文敏,佐藤祐介,浜地慎一郎,首藤一幸出版社/メーカー: オライリー・ジャパン発売日: 2006/11/14メディア: 単行(ソフトカバー)購入: 23人 クリック: 383回この商品を含むブログ (223件) を見る P.31 共有ライブラリ 共有ライブラリ(shared library)は、共有されるという点で静的ライブラリとは異なります。OSの仮想メモリ管理システムの進歩により、1つのファイルを mmap(2) などを使って、複数のプロセスでメモリを共有して参照できるようになってきました。これを有効活用するようにしたものが共有ライブラリです。 UNIX では、プロセス間で仮想メモリを共有するシステム・コールである mmap() を使用し、共有ライブラリをマップします。 http://homepage3.

    共有ライブラリと mmap(2) - ablog
  • 同期と非同期について考えてみた - ablog

    概念 絵でイメージすると、以前、 初期化パラメータ filesystemio_options の値によってI/Oに関するシステムコールがどのように変化するか - ablog に書いた みたいな感じ。 コマンドでイメージするなら、こんな感じでしょうか。 シェルでジョブをバックグラウンドで実行するのも非同期です。何らかの処理を実行しながら、他の処理を実行することができます。 % find . -name hoge.txt > hoge.log & # find を実行しつつ % pwd # 他のコマンドを実行することができる % jobs -l # 実行状況を確認してみて、終わってるなー % cat hoge.log # find の実行結果を見てみよ わからないことを誰かに聞くときに、答えてもらえるまでじーっと待っているのが同期、「わかったら教えてー」とお願いして、その間他のことをするのが非

    同期と非同期について考えてみた - ablog
  • STATSPACK 関連の資料 - ablog

    Oracle の STATSPACK 関連の資料をリストアップしてみた。レポート内の項目の説明があまりないな。 iSelfSchooling - How to read STATSPACK report - Free Online Oracle Training. とか海外のサイトでは書いてくれてるな。 Oracle9i データベース・パフォーマンス・チューニング・ガイドおよびリファレンス リリース 2(9.2) http://otndnld.oracle.co.jp/document/oracle9i/920/generic/server/J06248-02.pdf 21 Statspackの使用方法 Statspackの概要 StatspackとBSTAT/ESTATの比較 Statspackの動作の動作 Statspackのデータベース領域要件の構成 Statspackのインストール

    STATSPACK 関連の資料 - ablog
  • 割り込みについて調べてみました - ablog

    割り込みについて調べてみたのでメモしておきます。 ほとんどは 詳解 Linuxカーネル 第3版 で調べた内容なので、x86 と Linux よりの内容になっていると思います。 「割り込み」ってなんだろ?(2012/03/04追記) 「割り込み」は何らかの要因によって今やっている仕事をやめ、急遽別の仕事をすること。 仕事中に電話がかかってきて、仕事を中断して電話に出るのは割り込みの概念と同じ。 コンピュータにおいても人間がキーボードをいつ押すかコンピュータにはわからないが、コンピュータがずっとキーボードを監視していたのではほかの処理ができない。何か処理を実行中でもキーボードが押されると割り込んで、キーボードから入力されたデータを受け取って必要な処理を行ってから元の処理を再開する。 このように何かイベントが起こったときにCPUにそのことを知らせ、そのイベントにあった処理をして、その処理が終わる

    割り込みについて調べてみました - ablog
  • iowait について - ablog

    iowait の時間って、I/O要求を出しているプロセスは Disk Sleep しているという理解でいいんだろうか。 ちょっとわからなくなってきた。 linux-2.6/kernel/sched.c /* * Account for idle time. * @cputime: the cpu time spent in idle wait */ void account_idle_time(cputime_t cputime) { struct cpu_usage_stat *cpustat = &kstat_this_cpu.cpustat; cputime64_t cputime64 = cputime_to_cputime64(cputime); struct rq *rq = this_rq(); if (atomic_read(&rq->nr_iowait) > 0) cpu

    iowait について - ablog
  • レスポンスとスループット - ablog

    コンピュータの構成と設計 第4版 下 (Computer Organization and Design: The Hardware/Software Interface, Fourth Edition) 作者: デイビッド・A・パターソン,ジョン・L・ヘネシー,成田光彰出版社/メーカー: 日経BP社発売日: 2011/11/17メディア: 単行購入: 5人 クリック: 14回この商品を含むブログ (8件) を見るP.221 性能の測定基準はいろいろある。巡航速度が最も速い旅客機を選ぶなら、コンコルドとなる。航続距離が最も長いのはDC-8となる。搭乗人員数が最も多いものを選ぶならば、ボーイング747ということになる。 2台の別々のデスクトップ・コンピュータ上で同じプログラムを実行する場合は、先にジョブを終えたデスクトップ・コンピュータの方が速いと言うだろう。しかし、大勢のユーザーからジョ

    レスポンスとスループット - ablog
  • CPUバウンドとI/Oバウンド - ablog

    [Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ) 作者: 伊藤直也,田中慎司出版社/メーカー: 技術評論社発売日: 2010/07/07メディア: 単行(ソフトカバー)購入: 80人 クリック: 1,849回この商品を含むブログ (133件) を見るP.41 一般的に負荷は大きく二つに分類されます。 CPU負荷 I/O負荷 たとえば、大規模な科学計算を行うプログラムがあったとして、そのプログラムはディスクとの入出力(Input/Output、I/O)は行わないが、処理が完了するまでに相当の時間を要するとします。「計算をする」ということからも想像がつくとおり、このプログラムの処理速度はCPUの計算速度に依存しています。これがCPUに負荷をかけるプログラムです。「CPUバウンドなプログラム」とも

    CPUバウンドとI/Oバウンド - ablog
  • Linux で共有メモリはなぜ cached に計上されるのか? - ablog

    Linux で物理メモリに割り当てられた共有メモリは cahced に計上される - ablog という備忘録を先日書いたが、 Linux の共有メモリにはPOSIX共有メモリとSystem V共有メモリがあり、どちらも tmpfs を使っている。 tmpfs はページキャッシュを使うから /proc/meminfo/cached に計上され、当然 vmstat や free でも cached に計上される。 ということのようだ。 Tmpfs is a file system which keeps all files in virtual memory. Everything in tmpfs is temporary in the sense that no files will be created on your hard drive. If you unmount a tmpf

    Linux で共有メモリはなぜ cached に計上されるのか? - ablog
  • iostat の出力結果から特定のデバイスでビジー率が高い行だけ抽出する Perl ワンライナー - ablog

    perl -lane '/^(時間:.*)/ and $t=$1;/^sda/ and $F[13] > 90 and print qq/$t $_/' iostat.log

    iostat の出力結果から特定のデバイスでビジー率が高い行だけ抽出する Perl ワンライナー - ablog
  • top の出力結果を記録したログから buffers の値を抽出してソートする Perl ワンライナー - ablog

    コマンド perl -ne '/^top\s-\s([\d:]+)/ and print $1;/(\d+k)\sbuffers/ and print qq/ $1\n/' top.log|sort -k2 -n sort コマンドも使ってます 出力結果例 01:20:43 31425k 01:20:53 31513k 01:16:40 31567k 01:16:51 31615k

    top の出力結果を記録したログから buffers の値を抽出してソートする Perl ワンライナー - ablog
  • ablog

    YCSB から DynamoDB に結果整合性と強い整合性で負荷をかけてみて、レイテンシを計測してみた。 DynamoDB のテーブルを作成する テーブル名: usertable パーティションキー: firstname (String) キャパシティモード: Provisioned (RCU: 10,000、WCU: 10,000、AutoScaling なし) ~/YCSB/dynamodb/conf/dynamodb.properties 結果整合性では dynamodb.consistentReads を false、強力な整合性では dynamodb.consistentReads を true にして実行。 dynamodb.awsCredentialsFile = dynamodb/conf/AWSCredentials.properties dynamodb.primary

    ablog
  • ハイパー・スレッディングとは - ablog

    ちょっと、ハイパー・スレッディングについて話題になっていたので調べてみた。 プロセッサを支える技術  ??果てしなくスピードを追求する世界 (WEB+DB PRESS plus) 作者: Hisa Ando出版社/メーカー: 技術評論社発売日: 2011/01/06メディア: 単行(ソフトカバー)購入: 22人 クリック: 250回この商品を含むブログ (54件) を見る P.241 なお、Intelプロセッサの「ハイパースレッディング」(Hyper Threading)というのはIntelのマーケティング上の呼称で、NehalemアーキテクチャのプロセッサはSMT方式のマルチスレッドをサポートしています。 P.250 喩えて言うと、マルチスレッドは作業者のヒマな時間を有効に使うために複数の仕事を掛け持ちでやらせるようなもので、掛け持ちの作業のため多少、工具や機械などを増強したというもの

    ハイパー・スレッディングとは - ablog
  • SystemTap で特定のプロセスが発行したシステムコールを表示する - ablog

    スクリプトを用意する targeted.stp probe syscall.* { if ( pid() == target() ) printf("Syscall: %s\n",name) } 実行してみる モニタリングするプロセスを起動する $ ping localhost モニタリングしたいプロセスのPIDを調べる。 $ ps -elf|grep [p]ing 4 S oracle 3198 3169 0 75 0 - 493 416062 00:44 pts/0 00:00:00 ping localhost SystemTap を使ってモニタリングしてみる。 # stap ./targeted.stp -x 3198 Syscall: gettimeofday Syscall: gettimeofday Syscall: sendmsg Syscall: recvmsg Sysc

    SystemTap で特定のプロセスが発行したシステムコールを表示する - ablog
  • SQLトレースに関するメモ - ablog

    SQL> alter session set sql_trace=true; Session altered. SQL> select to_char(sysdate,'yyyymmddhh24miss') from dual; TO_CHAR(SYSDAT -------------- 20121017170716 SQL> exit [oracle@localhost ~]$ cd app/oracle/diag/rdbms/orcl/orcl/trace/ [oracle@localhost trace]$ grep tim orcl_ora_2924.trc|head -1 PARSING IN CURSOR #18872088 len=32 dep=0 uid=346 oct=42 lid=346 tim=1350518824929181 hv=1569151342 ad='ad

    SQLトレースに関するメモ - ablog
  • SQLトレースとstrace - ablog

    [oracle@localhost ~]$ sqlplus neo/zion SQL*Plus: Release 11.2.0.2.0 Production on Wed Oct 17 17:50:41 2012 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> set escape on SQL> select s.sid, s.serial#, p.spid from v$session s, v

    SQLトレースとstrace - ablog
  • システムコールの先を追え - ablog

    SQL*Plus でログインしてサーバープロセスの PID を確認して、 [oracle@localhost ~]$ sqlplus neo/zion SQL> select s.sid, s.serial#, p.spid from v$session s, v$process p where p.addr = s.paddr and s.sid = sys_context('USERENV','SID'); SID SERIAL# SPID ---------- ---------- ------------------------ 29 57 4115crash コマンドをつかって PID 4115 にバックトレースを仕掛け、 [root@localhost ~]# crash crash> set scroll off scroll: off (/usr/bin/less) cra

    システムコールの先を追え - ablog
  • Oracle Database の性能分析手法 - ablog

    メモ。ネタ集め。 性能分析手法 Oracle Wait Interface http://www.ex-em.co.jp/exem_labo/oracle_tips/OWI.pdf Method R http://method-r.com/faq/35-what-is-method-r Oracle Response Time Analysis 10046 trace name context forever: IOUG (Collaborate11) in Florida 4th Response Time Analysis For Oracle Based Systems http://people.cis.ksu.edu/~hankley/d560/Oracle/Notes/Shallahamer%20RT6b.pdf Oracle Performance: Troubleshoot

    Oracle Database の性能分析手法 - ablog
  • Linux 2.6 のランキューはCPUコアごとにある - ablog

    Linux Kernel 2.6 のランキューはCPUコアごとにあると思ったが、調べてみた。 [24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ) 作者: 安井真伸,横川和哉,ひろせまさあき,伊藤直也,田中慎司,勝見祐己出版社/メーカー: 技術評論社発売日: 2008/08/07メディア: 単行(ソフトカバー)購入: 133人 クリック: 2,270回この商品を含むブログ (288件) を見るP.161 cpu_rq()はCPUに紐づいているランキューを取得するマクロです。 ということなので、CPUコアごとにあるようだ。*1 ついでに SytemTap でちょっと遊びながカーネルのソースを覗いてみた。 適当に requeue_task.stp という SystemTap のスクリプトを用意して

    Linux 2.6 のランキューはCPUコアごとにある - ablog
  • 割込みは %sys にはカウントされない - ablog

    Linux ではカーネルモードでCPUが使われるのは、システムコール、割込み、カーネルスレッドの3つだと思うが、割込みは %sys にカウントされない。ハードウェア割込みは %irq、ソフトウェア割込みは %soft にカウントされる。 %irq Show the percentage of time spent by the CPU or CPUs to service hardware interrupts. %soft Show the percentage of time spent by the CPU or CPUs to service software interrupts. mpstat(1): Report processors related statistics - Linux man page

    割込みは %sys にはカウントされない - ablog
  • 性能問題の切り分け方法について考えてみる - ablog

    つれづれなるままに、日ぐらしパソコンに向かひて、心にうつりゆくデータベースの性能問題の切り分け方法をそこはかとなく書き付くれば、あやしうこそ物狂ほしけれ。なエントリ(書きかけ)。一度、脳内をフラッシュしてからまとめるべし。 性能問題による影響 性能問題による影響を以下の2つに分類する。 システム全体が遅い 一部の処理が遅い 性能問題の原因 性能問題の原因を以下の2つに分類する。 交通量が多い 単純に交通量が多くて渋滞している 例)年末年始やお盆の帰省ラッシュやUターンラッシュ 経路の途中で詰まっている 車線減少や通行止めなどで渋滞している 例)年度末の工事による車線減少、飲酒の検問、交通事故による通行止めなどで経路のどこかで詰まっている 切り分け手順の分類 システム全体が遅いケースと一部の処理が遅いケースで切り分け手順は変わる。 切り分けはOSレイヤーとデータベースレイヤーの2つの観点から

    性能問題の切り分け方法について考えてみる - ablog
  • strace と ptrace システムコール - ablog

    strace って ptrace システムコールを使ってて、割込み(例外)も使ってるって書いてたなと思って調べてみた。 Linuxカーネル2.6解読室 作者: 高橋浩和,小田逸郎,山幡為佐久出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/11/18メディア: 単行購入: 14人 クリック: 197回この商品を含むブログ (118件) を見るP. 107 Linux には、プロセスの動作を観察できるシステムコール、ptrace が備わっています。ptraceを簡単に利用できるコマンドとしてstraceがある 詳解 Linuxカーネル 第3版 作者: Daniel P. Bovet,Marco Cesati,高橋浩和,杉田由美子,清水正明,高杉昌督,平松雅巳,安井隆宏出版社/メーカー: オライリー・ジャパン発売日: 2007/02/26メディア: 大型購入: 9人 クリッ

    strace と ptrace システムコール - ablog
  • xargs で標準入力がない場合は何もしない - ablog

    Fさんに オハヨウゴザイマス コマンド結果 | xargsで、 コマンド結果がない場合、xargsにつながないようにするのって どうするんでしたっけ? と聞かれたので調べてみた。 -r 標準入力に空白しか含まれていない場合は、指定したコマンドを実行しない。 通常では、入力が全くない場合でも、コマンドが一回は実行されるのだ。 このオプションは GNU の拡張である。 Man page of XARGS -r オプションでできるみたいなので試してみた。 $ echo|xargs echo foo foo $ echo|xargs -r echo foo できますた。 追記: GNU xargs使うときは -0r デフォですね。OSXのだと -r ないけど。。。 Kazuhiro YOSHIKAWA on Twitter: "GNU xargs使うときは -0r デフォですね。OSXのだと -

    xargs で標準入力がない場合は何もしない - ablog
  • iostat の各行に時刻を入れる - ablog

    iostat はこんな感じになっていて、 Thu Nov 11 00:01:01 2012 r/s w/s Mr/s Mw/s wait actv wsvc_t asvc_t %w %b device 0.0 6.0 0.0 0.0 0.0 0.1 0.0 13.7 0 5 ...... 0.0 12.0 0.0 0.1 0.0 0.2 0.0 11.2 0 9 ...... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 ...... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 ......サービスタイム(asvc_t)でソートしてストレージで1回のI/Oリクエストのレスポンスが遅い時間帯を見たいときとか、時刻がわからなくなって見ずらかったりする。 そんな時は $ perl -i.org -nle '/^(\w.+)$/ and $d=

    iostat の各行に時刻を入れる - ablog
  • 特定の拡張子のファイルの合計サイズを調べる - ablog

    man で調べてみると、 $ man du ... -c, --total produce a grand total -c というオプションがあるらしいので試してみると、 $ du -c *.txt 224 1.txt 20 2.txt 244 total でた。

    特定の拡張子のファイルの合計サイズを調べる - ablog
  • Oracle Database のプロセス、セッション、ロックの状態を表示する SQL スクリプト - ablog

    Oracle DatabaseSQL 実行したら返ってこないとか、誰が接続しているか調べたいとか、ブロックしているセッションがないか調べたいとか、そういうときにまずは一発走らせて状況を確認するための SQL スクリプトを作ってみた。 yoheia/show_proc_ses_lock.sql at master · yoheia/yoheia · GitHub set pagesize 1000 set linesize 300 col ospid for a5 col block for 99999 col sid for 99999 col serial# for 99999 col username for a10 col lmode for 99 col request for 99 col lock_time for a10 col program for a10 col

    Oracle Database のプロセス、セッション、ロックの状態を表示する SQL スクリプト - ablog
  • Oracleデータベースの制御ファイルのみ全損した場合のリカバリ方法を検証してみる - ablog

    [まとめ] 制御ファイルを全損した場合、以下の2つのリカバリ方法がある。 物理バックアップ*1を使ったリカバリ 論理バックアップ*2を使ったリカバリ いずれの方法でも障害発生直前までリカバリできる。つまり、オンラインREDOログの最後のcommit済みREDOエントリまでリカバリすることができる。 物理バックアップからリカバリする場合、リセットログが必要なためインカネーション番号がカウントアップされるが、10g以降であれば LOG_ARCHIVE_FORMAT にリセットログID(%r)を含めておけば、リセットログ後に障害は発生してもリセットログ以前のバックアップとアーカイブログで障害直前の時点までリカバリすることができる。 逆に{9i以前}または{10g以降で LOG_ARCHIVE_FORMAT にリセットログID(%r)を含めていない}場合で、物理バックアップからリカバリしてリセット

    Oracleデータベースの制御ファイルのみ全損した場合のリカバリ方法を検証してみる - ablog
  • SQL のみで全テーブルのレコード数を数える方法 - ablog

    SQL マスターの id:niwanos さんがツイートされてた URL が気になったので見てみると、Oracle ACE の明智重蔵さんが動的にSQLを作成せずに自スキーマの全テーブルのレコード数を数えるSQLを掲載されていた。 select table_name, to_number( extractvalue( xmltype( dbms_xmlgen.getxml('select count(*) c from '||table_name)) ,'/ROWSET/ROW/C')) count from user_tables WHERE TABLE_NAME NOT LIKE 'BIN$%' and (iot_type != 'IOT_OVERFLOW' or iot_type is null) order by table_name; http://www.oracle.co.j

    SQL のみで全テーブルのレコード数を数える方法 - ablog
  • Data Pump で import を停止して、後で再開する - ablog

    インポートを開始する $ nohup impdp system/manager directory=pump_dir exclude=grant dumpfile=scott.dmp remap_schema=scott:smith parallel=4 > scott.log 2>&1 & インポートを停止する ジョブ名を確認する。 $ sqlplus / as sysdba SQL> set linesize 200 SQL> col owner_name for a10 SQL> col job_name for a20 SQL> col operation for a10 SQL> col job_mode for a10 SQL> col state for a12 SQL> col degree for 999 SQL> col attached_sessions for 99

    Data Pump で import を停止して、後で再開する - ablog
  • 制御ファイル障害からのリカバリ手順 - ablog

    Oracle Database で制御ファイルに障害が発生した場合のリカバリ手順をまとめてみた。 以下の方法でリカバリすることができる。 一部の制御ファイルに障害が発生したケース 正常な制御ファイルをコピーする 全ての制御ファイルに障害が発生したケース バックアップ制御ファイルをリストアする 制御ファイルを再作成する また、元の場所に制御ファイルをリストアまたは再作成できない場合は「補足」を参照。 一部の制御ファイルに障害が発生したケース 正常な制御ファイルをコピーする リスナーを停止する。 $ lsnrctl stop インスタンスを停止する。 1つでも制御ファイルが破損したらインスタンスは停止するが、停止していない場合は shutdown abort で停止する。 $ sqlplus / as sysdba SQL> shutdown abort SQL> exit 正常な制御ファイル

    制御ファイル障害からのリカバリ手順 - ablog
  • 肥大した UNDO 表領域を縮小する - ablog

    そのまま縮小しようとすると失敗する。 conn / as sysdba alter database datafile '/export/home/oracle/app/oracle/oradata/orcl/undotbs01.dbf' resize 100M; ERROR at line 1: ORA-03297: file contains used data beyond requested RESIZE value UNDO表領域名とデータファイルのパスを確認する。 col tablespace_name for a10 col file_name for a60 col mb for 999999 select tablespace_name,file_name,bytes/1024/1024 mb from dba_data_files order by tablespace

    肥大した UNDO 表領域を縮小する - ablog
  • オンラインREDOログ障害からのリカバリ手順 - ablog

    REDOログ・グループの一部のメンバが破損したケース 破損したメンバのファイル名を調べる。 破損していても STATUS が INVALID にならない場合がある。その場合、インスタンスを再起動すると INVALID になる。 SQL> select a.group#, a.status group_status, a.archived, b.status member_status, b.member from v$log a, v$logfile b where a.group# = b.group# order by a.group#, b.member; GROUP# GROUP_STATUS MEMBER_ MEMBER ---------- ---------------- ------- --------------------------------------------

    オンラインREDOログ障害からのリカバリ手順 - ablog
  • カーソルが解放されるタイミング (2) - ablog

    カーソルが解放されるタイミング - ablog の続き。 Statement、ResultSet を毎回 close しながら無限ループするプログラムと、Statement、ResultSet を close せずに無限ループするプログラムを実行してみて、前者は永久に実行され、後者はカーソルリークで例外が発生して異常終了することを検証してみた。 [結論] Statement を close すればカーソルリークは発生しない。コネクションプーリングを使わない場合は、Connection を close するとカーソルリークは発生しないが、コネクションプーリングを使う場合は Connection を close しても、Statement を close しないとカーソルリークが発生する。たぶん。 やさしく学ぶ基礎からのJDBC P.137 java.sql.Statementをクローズすると

    カーソルが解放されるタイミング (2) - ablog
  • HP-UX の vmstat の見方 - ablog

    とりあえず、浅いメモ。 # vmstat 1 procs memory page faults cpu r b w avm free re at pi po fr de sr in sy cs us sy id 2 1 0 962500 181391 1444 26 3 0 0 0 1 2953 45666 1270 14 2 83 ... r: 実行待ち行列にあるプロセス。 プロセスには実行可能状態(R)、実行状態(O)、Sleep状態(S)といったステータスがあり、そのうち実行可能状態のプロセス。 実行可能状態はプロセスが実行可能な状態で、OSからプロセスの割り当てを待っている状態。 b: I/O待ちをしているプロセス。 avm: アクティブな仮想メモリ。単位はページ(1ページ: 4096byte) free: 空いている実メモリ。単位はページ(1ページ: 4096byte) pi:

    HP-UX の vmstat の見方 - ablog
  • ファイルがページキャッシュに乗っているかどうかを調べる - ablog

    Linux上で任意のファイルがページキャッシュに乗っているかどうか調べるCで書かれたプログラムを見つけたので、コンパイルして実行してみた。 Linux上のとあるファイルがページキャッシュに乗っているかどうかを調べたいなーと思ってGoogle先生にご相談したところ、こんなコマンドを教えてくれた。 ファイルをメモリにマップして、mincore(2)でページごとにRAMに存在するかどうかをチェックしているらしい。 mmapしても即メモリにロードされるわけではないのかぁ。 Cの部分だけ抜き出して、単体で動かしてみた。 #include <errno.h> /* errno */ #include <fcntl.h> /* fcntl, open */ #include <stdio.h> /* perror, fprintf, stderr, printf */ #include <stdlib.

    ファイルがページキャッシュに乗っているかどうかを調べる - ablog
  • Linux の iostat の出力結果を銀行のATMに例えて説明してみる - ablog

    vmstat の"r"列とマクドナルドのレジカウンター - ablog の iostat 版です。 以前、iostat の見方 - ablog というエントリを書きましたが、 絵で見てわかるOS/ストレージ/ネットワーク~データベースはこう使っている (DB Magazine Selection) 作者: 小田圭二出版社/メーカー: 翔泳社発売日: 2008/04/22メディア: 単行(ソフトカバー)購入: 22人 クリック: 303回この商品を含むブログ (36件) を見るP.176 LIST 1 Linuxのiostat -x 30の出力結果を分析 を元に説明してみます。 $ iostat -x 30 avg-cpu: %user %nice %sys %iowait %idle 15.46 0.23 3.70 45.05 35.55 Device: rrqm/s wrqm/s r/

    Linux の iostat の出力結果を銀行のATMに例えて説明してみる - ablog
  • ORA-30036 string(UNDO表領域'string'内)でセグメントを拡張できません - ablog

    エラーメッセージ ORA-30036: string(UNDO表領域'string'内)でセグメントを拡張できません 原因: 指定したUNDO表領域には、使用可能な領域がこれ以上ありません。 処置: UNDO表領域に領域を追加して、操作を再試行してください。または、アクティブ・トランザクションがコミットされるまで待機してください。 ORA-29250〜ORA-32775 対処 アクティブ・トランザクションを commit or rollback する。 UNDO表領域を拡張する。 既存データファイルを拡張する。 データファイルを追加する。 UNDO表領域を自動拡張するようにする。 関連 表領域を拡張する - ablog UNDO表領域の容量見積 - ablog 自動UNDOチューニングについて - ablog UNDO表領域使用率の警告アラート閾値を変更してみる - ablog Oracl

    ORA-30036 string(UNDO表領域'string'内)でセグメントを拡張できません - ablog
  • Oracle で dump ファイルの中身を確認する - ablog

    「show=y」を指定すると、インポートされずに DDL の内容が標準出力とログに出力される。 $imp system/oracle file=expdat.dmp log=expdat.log fromuser=scott touser=scott ignore=y show=y

    Oracle で dump ファイルの中身を確認する - ablog
  • ps auxw したときに STAT 列に表示される値の意味 - ablog

    STAT列 何の略? カーネル内部のプロセスの状態 説明 R Run TASK_RUNNING 実行可能な状態。CPUが空きさえすれば、いつでも実行可能な状態。 S Sleep TASK_INTERRUPTIBLE 割り込み可能な待ち状態。おもに復帰時間が予測不能な長時間の待ち状態。スリープやユーザからの入力待ちなど。 D Disk Sleep TASK_UNINTERRUPTIBLE 割り込み不可能な待ち状態。おもに短時間で復帰する場合の待ち状態。ディスクの入出力待ち。 T Stopped TASK_STOPPED サスペンドシグナルを送られて実行中断になった状態。リジュームされるまでスケジューリングされない。 Z Zombie TASK_ZOMBIE ゾンビ状態。子プロセスが exit して親プロセスにリープされるまでの状態。 ps のマニュアルを見てみると、 $ cat /etc/i

    ps auxw したときに STAT 列に表示される値の意味 - ablog
  • Apache 経由 Tomcat 行き応答なし - ablog

    現象 ブラウザからWebアプリにアクセスしても応答がない。 /usr/local/tomcat/logs/catalina.out に以下のエラーメッセージが出力されている。 2010-08-27 10:25:56 (TP-Processor3) ... Exception in thread "TP-Processor23" java.lang.OutOfMemoryError: Java heap space 2010-08-27 11:10:33 (TP-Processor3) ... /usr/local/apache2/logs/mod_jk.log に以下のエラーメッセージが出力されている。 [Fri Aug 27 10:21:30 2010][32366:2836394064] [info] ajp_process_callback::jk_ajp_common.c (178

    Apache 経由 Tomcat 行き応答なし - ablog
  • AWRのスナップショット取得とレポート出力方法 - ablog

    スナップショットを取得する。 $ sqlplus system/manager SQL> EXECUTE DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(); レポートを出力する。 $ export NLS_LANG=American_America.JA16EUC $ sqlplus system/manager SQL> @?/rdbms/admin/awrrpt.sql ... Specify the Report Type ~~~~~~~~~~~~~~~~~~~~~~~ Would you like an HTML report, or a plain text report? Enter 'html' for an HTML report, or 'text' for plain text Defaults to 'html Enter valu

    AWRのスナップショット取得とレポート出力方法 - ablog
  • segfault の error_code の意味 - ablog

    メッセージ command[pid]: segfault at address rip fault_address rsp stack_address error error_code 変数 command[pid] ページフォルトが発生したプロセスのコマンド名とプロセスID。 address ページフォルトを発生させた仮想アドレス(リニアアドレス) fault_address ページフォルトを発生させた命令アドレス stack_address ページフォルトを発生した際のスタックポインタ error_code 以下のフラグの組み合わせで表すエラーコード bit0:: フォルトの原因を示すフラグ("0"=ページが見つからなかった "1"=ページプロテクション(保護例外)を検出した) bit1:: 該当メモリへのアクセス種別を示すフラグ("0"=読み込み "1"=書き込み) bit2:: フ

    segfault の error_code の意味 - ablog
  • iostat の見方 - ablog

    出力例 $ iostat -x 30 avg-cpu: %user %nice %system %iowait %steal %idle 0.87 0.01 2.53 0.49 0.00 96.11 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.05 16.03 0.36 13.74 5.77 238.22 17.31 0.15 10.39 0.98 1.38 sda1 0.00 0.00 0.00 0.00 0.00 0.00 15.53 0.00 12.81 11.47 0.00 sda2 0.05 16.03 0.36 13.74 5.77 238.22 17.31 0.15 10.39 0.98 1.38 avg-cpu: %user %nice %syst

    iostat の見方 - ablog
  • シェルスクリプトのエラー処理を見やすく書く - ablog

    bash でシェルスクリプトを書いていて、エラー処理をif文を使って command ... if [ $? -ne 0 ] then echo ... exit 1 fi みたいに書くと、コードが見づらいのでなんとかならないかと思っていたら、 command ... || { echo ... ; exit 1 ; } こういう風に書けるのか。 Perl の「or die」みたい。ってか Perl のほうが新しいと思うけど。 command ... || echo ... ; exit 1 のように書くと exit が実行されないので要注意。って bashクックブック に書かれてました。 例 hoge1.sh #!/bin/bash mkdir log if [ $? -ne 0 ] then echo oops! exit 1 fi echo created directory. ho

    シェルスクリプトのエラー処理を見やすく書く - ablog
  • Oracle で dump を import するときに表領域を変更する方法 - ablog

    開発現場でよくある問題。Oracle の dump を import したいけど、環境によって表領域構成が違って、そのまま import できない。export 元と同じ構成の表領域を作って、import 後に move するとかすればできるけど、ディスク容量が足りないとそれもできない。先に DDL 実行して、セグメントを作成しておいて、ignore=y で import するとかでもできるけど、いずれも手順がめんどう。 Data Pump を使うとサクっとできます。 Oracle Database から DDL 文を生成する SQL スクリプト - ablog みたいなめんどうなことをする必要はありません。 検証ポイント Data Pump で export した dump を import するときに import 先の表領域を変更できること。 dump が複数の表領域内のセグメントを

    Oracle で dump を import するときに表領域を変更する方法 - ablog
  • Oracle のシーケンスの値を確認する SQL - ablog

    SQL> select sequence_name, last_number from user_sequences order by sequence_name; SEQUENCE_NAME LAST_NUMBER ------------------------------ ----------- EMP 100000 DEPT 100000 ... 参考 静的データ・ディクショナリ・ビュー: ALL_NESTED_TABLE_COLS〜DATABASE_PROPERTIES

    Oracle のシーケンスの値を確認する SQL - ablog
  • sar -r でメモリ使用状況を確認する - ablog

    # sar -r 00:00:00 kbmemfree kbmemused %memused kbmemshrd kbbuffers kbcached kbswpfree kbswpused %swpused 00:10:00 220216 3875156 94.62 0 289288 1707500 2024592 72536 3.46 00:20:00 215180 3880192 94.75 0 289312 1707672 2024592 72536 3.46 00:30:00 214552 3880820 94.76 0 289340 1707804 2024592 72536 3.46 kbmemfree: 物理メモリの空き容量 kbmemused: 使用中の物理メモリ量 %memused: 物理メモリ使用率 kbbuffers: カーネル内のバッファとして使用されている物理メ

    sar -r でメモリ使用状況を確認する - ablog
  • STATSPACK レポートの見方 - ablog

    自分用のメモです。ablog 全般に言えることですが、間違いだらけなので参考にしないで下さいw [STATSPACK report for -> Sessions] [概要] スナップショット取得時のセッション数を見ることができる。 平常時のスナップショットを取得しておき、負荷が高いときやレスポンス低下時などに比較する。 想定と大きく違わないか確認する。 [Load Profile] [概要] システムの特性・傾向を見ることができる。 平常時のスナップショットを取得しておき、負荷が高いときやレスポンス低下時などに比較する。 [見方] Redo size: 測定期間中に生成されたREDOログ量(byte)。 Hard parses: Parses に対して割合が高い場合はバインド変数が使われていないSQLが原因の可能性がある。 Logons: ログオン数。接続ユーザ数と比べて多すぎると問題あ

    STATSPACK レポートの見方 - ablog
  • TechCrunch | Startup and Technology News

    Boeing’s Starliner spacecraft has successfully delivered two astronauts to the International Space Station, a key milestone in the aerospace giant’s quest to certify the capsule for regular crewed missions.  Starliner…

    TechCrunch | Startup and Technology News
  • Grailsベストプラクティス(和訳) - sudo -u grails

    This article is Japanese translation of http://groovy.dzone.com/articles/grails-best-practices . DZoneで公開されている Nitin Kumar 氏の記事を和訳したものです。また、「要約」の節を冒頭に移動しています。大元の記事はおそらくこちら。 類似の記事として、Amit Jain 氏がInfoQで公開している記事を uehaj さんが和訳したものもあります。 Grails Best Practices Grailsは、アジャイルに基づいた迅速でインタラクティブな開発フレームワークです。 "設定いらずの規約" convention not configuration を支持しています。 この記事では、Grailsの使いかたと、Grailsを取り巻くベストプラクティスを説明します。 ■要約 G

    Grailsベストプラクティス(和訳) - sudo -u grails
  • ITプロジェクトの失敗はマネージャに起因している。IDCの調査

    調査会社のIDCが、ITプロジェクトの失敗と成功について調査したレポートの概要をプレスリリースとして公開しています。 調査は2012年にニュージーランドで行われたもの。レポートのタイトルは「Project Failure is all about Business Perceptions」(プロジェクトの失敗はすべてビジネス認識にある)。調査では、ITマネージャとそれ以外のマネージャのあいだでITプロジェクトに対する認識の差が広がっていることを指摘しています。そしてこのマネージャ同士の認識の差が、プロジェクトの成功率に影響を与えているとのこと。 プロジェクトを失敗させないために、どのような点に気をつけるべきなのか、ここでは、その主な要因にあげられた6つのポイントを紹介します。 Project Failure is all about Business Perceptions Inadequ

    ITプロジェクトの失敗はマネージャに起因している。IDCの調査
  • brook の実装読んでみた - 健康意識の高まり

    brook という、非同期処理をシーケンシャルに記述できる javascript のフレームワークを最近使う機会があったので、どういう実装になってるのかを読んでみた。 (ちなみに iPhonechromegithub 開いてコードを読んだのですが、 iPhonegithub 上のソースを読む時のベスプラとかあるんですかね・・・?) そもそも brook ってなんぞ?は以下を。 tanabe/Advent-calendar-2011 · GitHub brook どこにあるの?は以下を。 https://github.com/hirokidaichi/brook ※brook は、 Namespace という、javascript に名前空間を提供するライブラリに依存しています。 実装読む前にそもそもどう使うのか たとえば、setTimeout で、1秒毎に挨拶文を変更する

    brook の実装読んでみた - 健康意識の高まり
  • JavaScript でペンと筆圧を扱う : document

    4月11 JavaScript でペンと筆圧を扱う はじめに JavaScript でアプリケーションを作っていると、筆圧を取得したくなることがよくあると思います。 ここでは JavaScript でタッチやペンによる筆圧の取得の仕方について簡単にまとめます。 Wacom ペンタブレットによる筆圧の取得 Wacom のペンタブレットではブラウザにプラグインをインストールすることにより筆圧の取得が可能になります。 最近はタブレットの最新版ドライバをインストールすると一緒にプラグインもインストールされるようです。 タブレットプラグインのバージョンによる API 変更 Wacom のタブレットプラグインでは元々ペンを扱う単体のものでしたが、バージョン 2 からはタッチと統合されたため API が変更されました。 基的には統合であるため、プラグインのオブジェクトに .penAPI を付けるか付け

  • TypeScript0.9alphaをNode+Gruntで使うよ

    Swift is the best programming language you should learn and make your dream app easily. Swift programming is a powerful yet easy-to-learn coding language created by Apple. It's frequently used for developing iOS and macOS applications, as well as tvOS and watchOS apps. While you can use other languages to create Apple apps, Swift is the preferred language, and it's recommended because its code is

  • HTML5開発者必見、最速のJavaScriptライブラリはどれだ!? パフォーマンスの徹底検証 | ICS MEDIA

    HTML5で2次元のインタラクティブコンテンツを制作するには、さまざまなJavaScriptライブラリがあります。どれを選択するべきか迷いどころではないでしょうか? そこで今回はHTML5の各種JavaScriptライブラリについて、パフォーマンスを比較検証してみました。 今回検証したフレームワーク メジャーなJavaScirptライブラリとして次の5種類でテストしました。バージョンは2013年4月10日現在の最新版を使っています。詳しい検証方法は記事の後半にまとめています。 CreateJS (EaselJS 0.6.0) Arctic.js (v0.1.11) enchant.js (v0.6.3-48) Pixi.js (v1.0.0) Processing.js (v1.4.1) 各種JavaScirptライブラリのベンチマーク結果 ※グラフの数値が高いほどパフォーマンスが高いこと

    HTML5開発者必見、最速のJavaScriptライブラリはどれだ!? パフォーマンスの徹底検証 | ICS MEDIA
  • BufferedReaderのIterableなラッパーを書いてみた - ブログなんだよもん

    XMLやらJSONやら構造化テキスト万歳の時代だけど、レガシーなシステムとの連携や何より作成のしやすさでCSVを扱う機会はまだまだ多いですよね。 で、自分が扱うCSVは大抵「Header」「Body」「Footer」に分かれます。このFooterが曲者。 Listにしてしまえば、簡単に判別出来ますが、100万行とか読む感じだとメモリ気にしてBuffredReaderを下記みたいに使うかと思います。 BufferedReader br = new BufferedReader(getFileReader())); for(String line = br.readLine(); line != null; line = br.readLine()){...} ただ、この方法だとHeaderはfor文より先にreadLineすることで簡単にとれますが、Footerはちょっと面倒です。 しかも、

    BufferedReaderのIterableなラッパーを書いてみた - ブログなんだよもん
  • Apacheのレスポンス分析に必要なスクリプトまとめ - ブログなんだよもん

    最近、Apacheのログ解析をすることが多いので、備忘録を兼ねてまとめ。 とりあえず、超便利コマンドはawk, sed, grep, uniq, sortあたり。コレを駆使して色々解析する。そして、これを駆使して解析がツライ時は素直にperlruby, pythonに処理を渡すべきかなぁ。awkが結構なんでもできるので、awkだけでも基的にはいいけれど。 あと、リアルタイム解析じゃなくて前日のログ解析だから基はzgrepやzcatから始まります。 で、ポイントは可能な限りzgrepを使うこと。zcatは一度全部展開するので、トロいし、負荷もでかいです。 apacheのログフォーマットが違うと当然そのまま適用できないので、その辺は適当に変更する感じで。 やっぱ、CSV解析はこの辺がネックですね。全部JSONになれば良いのに... 平均レスポンスタイム アクセスログの末尾がレスポンスタイ

    Apacheのレスポンス分析に必要なスクリプトまとめ - ブログなんだよもん
  • ソフトウェア見積もりに関するメモ - A Memorandum

    良い見積り プロジェクトのコントロールが適切であれば、見積りに対してプラスマイナス10%の正確性を達成することが可能である。(Capers Jones 1998) 良い見積りのアプローチとは、実績値の75%のケースで誤差が25%以内に収まる見積りを提供することである(Conte,Dunsmore,Shen 1986) 見積りの真の目的 見積りにとって重要なことは、完璧なまでに正確であることより、有用な情報を提供することである。正確な見積り、適切なターゲットの設定、適切な計画とコントロールの三拍子が揃って「見積り」に近いプロジェクトの結果が実現できる。 実務的な良い見積りとは プロジェクトの責任者がプロジェクトのターゲットを達成するためのコントロールを行ううえで、適切な意思決定ができる明確な視点を提供するものである。 開発アクティビティにおける見積り誤差 プロジェクトの見積もりは、プロセスの

    ソフトウェア見積もりに関するメモ - A Memorandum