タグ

ブックマーク / thinkit.co.jp (54)

  • [ThinkIT] 第1回:postgresql.confによるチューニング(1) (2/2)

    PostgreSQLの設定ファイルであるpostgresql.confには性能に関する項目がいくつかあります。まずはこれらについて見直しましょう。 shared_buffersには、PostgreSQLのデータベースエンジン(バックエンド)が使用する共有メモリ上のバッファ領域を指定します。shared_buffersは大きすぎても小さすぎても性能が低下します。初期状態ではinitdbの自動設定機能により、1000程度に設定されていると思いますが、できれば8000〜10000程度まで引き上げた方がよいでしょう。これ以上の値を指定すると、バッファ管理のオーバーヘッドにより逆に性能が低下します。 shared_buffersを大きくするとpostmasterが立ち上がらないことがあります。その場合はOSの共有メモリ領域を拡張します。共有メモリの拡張方法の詳細は、PostgreSQLマニュアルの「

  • UMLの手軽で有効な利用方法

    gayou
    gayou 2010/09/07
  • プロジェクト・リーダーの心得

    プロジェクト管理の基を言葉で説明することは、実はそれほど難しくありません。PMBOK(Project Management Body of Knowledge)やCMM(Capability Maturity Model)のようなベスト・プラクティス集を参照すれば、理屈を理解することは可能だと考えます。ただ、理屈を理解したとしても、実際にいざ実践となった場合に、途端に難しくなるのが現実です。 連載の第1回では、若手のプロジェクト・リーダーを対象に、筆者が現場で培った、リーダーとして実践すべき心得について解説します。 筆者が考えるプロジェクト管理の要素とは、(1)プロジェクトの方向付け、(2)資源の最適配分、(3)人の動かし方、の3つです。以下では、それぞれについて細かく説明します。 (1)プロジェクトの方向付け 「プロジェクトの方向付け」とは、簡単に言うと"戦略"です。 プロジェクトのゴ

  • サーバー仮想化でI/Oの問題が顕在化

    ここ数年で、サーバー機の性能は、著しく向上しました。さらに、仮想化技術の進歩によって、1台のサーバー機の上で多数の仮想サーバーが稼働するようになりました。一方、サーバー環境のこうした変化によって、複数の仮想サーバーがI/O(データの入出力)を共有することによる、さまざまな課題が顕在化してきました。 連載では、3回にわたって、仮想サーバー環境におけるI/Oの問題と、その解決策であるI/Oの仮想化について解説します。具体的には、(第1回)サーバー仮想化におけるI/Oの問題と、I/O仮想化が誕生した背景、(第2回)従来の物理I/OとI/O仮想化の違い、(第3回)Xsigo Systemsが提唱する、仮想I/Oによるクラウド型データ・センターの姿、について解説します。 ITシステムの歴史 まずは、ITシステムが現在のサーバー仮想化環境に至った背景をおさらいします。 1980年代は、メインフレーム

    gayou
    gayou 2010/07/05
    あとで読む
  • PHPUnitによるテスト:応用編

    PHPUnitでのテスト応用編 これまで、PHPUnitのフレームワークを利用したテスト・プログラムの書き方や、コンソールから phpunitコマンドを実行してテストする方法を説明してきました。今回は、PHPUnitをより有効に活用する方法について紹介したいと思います。 具体的には、下記の3つの方法を順に説明します。 (1)NetBeans IDEを使った単体テスト (2)Xdebugを使ったコード・カバレージの測定 (3)Selenium RCを使ったブラウザ・テストの自動化 NetBeans IDEを使った単体テスト 「NetBeans IDE」は、マルチ言語、マルチプラットフォームの統合開発環境(IDE)です。米Sun Microsystemsとオープンソースのコミュニティによって開発されており、無償で利用することができます。もともとはJavaの開発環境だったの ですが、次第に他の言

    gayou
    gayou 2010/06/02
    ユニットテスト
  • 外部モジュールとの連携

    テスト・クラスの拡張 今回は、データベースへのアクセスが必要なテストや、未実装のモジュールを補完してテストするなど、外部モジュールとの連携が必要な場合に役立つテスト方法について紹介します。 まず、データベースのテストに入る前に、PHPUnitのテスト・クラスについて振り返ってみます。 これまで作成したテスト・ケースは、すべてPHPUnit_Framework_TestCaseクラスを継承していました。このクラスはPHPUnitの基底テスト・クラスになります。テスト・ケースを実装するには、setUp()メソッドとtearDown()メソッドをオーバー・ライドします。その中でテスト開始前の初期化と、終了後のクリーン・アップ処理を行います。そして、テスト項目ごとにテスト・メソッドにアサーションを定義しました。 このようにテスト・ケースを実装していくにうちに、共通の処理をまとめたり、新たな機能を追

    gayou
    gayou 2010/06/02
    ユニットテスト
  • 「はやく作る」と「しっかり作る」のバランス

    再利用性と生産性の異なるベクトル 開発の現場の人と「再利用性」の話をすると、目を輝かせる人とそうでない人の2種類に大別される気がします。 前者は、基盤を作るのが好きな人で、いつかは自分でもフレームワークを、と思っています。目に見えないところにこだわる派ですね。後者はむしろアプリケーションの実装に興味のある人で、どれだけ便利なソフトウエアを開発したかとか、ユーザー要求に応えたかというところにこだわります。 ソフトウエアの開発にはどちらも重要なのですが、両者の考え方には大きな違いがあります。 ソフトウエアの再利用性を高めるには、設計したソフトウエアが、現在の要求以外のケースにも対応できる汎用性を備えていることが必要です。「その場限り」の設計では、融通が利きませんから、再利用性も落ちてしまいます。 一方、現在の要求に集中することを優先するのであれば、想定外の余計な可能性を考えるのは、むしろ無駄で

    「はやく作る」と「しっかり作る」のバランス
    gayou
    gayou 2010/05/24
  • 簡易ブラウザの作成(その1)

    はじめに こんにちは。タオソフトウェアの谷口と申します。 昨今急速に注目を集めているアンドロイド(Android)。 稿では、そんなアンドロイド上で動くアプリケーションを書いてみようと考えている方に向けて、アンドロイド・プログラミングの第一歩についてお伝えしたいと思っています。 前回は、「Hello Android」という文字を表示するだけでした。今回はもう少し実用的なアプリケーションを作成してみましょう。 標準で用意されている部品を使って、画面の作り方やメニューの制御、画面間でのデータの受け渡し方などについて説明していきます。 題材は、比較的簡単に作成できて動作をイメージしやすい、簡易Webブラウザにしてみました。 WebView 前回の「Hello Android」のソース・コードを振り返ってみましょう。 HelloAndroid.javaを確認してみてください。以下のようなコードが

  • PHPUnitの概要と導入

    PHPUnitとそのメリット 連載では、PHPPHP: Hypertext Preprocessor)で実装されたプログラムの単体テストをテスト・ツール「PHPUnit」を使って行う方法について、基から実践的な利用方法までを4回にわたって紹介します。 ユニット・テスト(単体テスト)とは、プログラムの構成要素であるクラスや関数などの単位で動作を確認するためのテストです。PHPUnitを利用することで、単体テストの手順をPHPプログラムとして作成し、コマンド・ラインなどからバッチ処理的に実行することが可能になります。 PHPプログラムのテストと言えば、もっぱら人手でブラウザを操作して画面遷移を確認したり、フォームに値を入力して実行結果を目で確認したりすることが一般的だと思います。しかし、開発時に何度も同じようにページを開いて、同じようにテスト・データを入力し、結果が正しいことをすべて手動

    PHPUnitの概要と導入
    gayou
    gayou 2010/05/19
  • iPhoneアプリとデータベースサーバの連携

    iPhoneでデータをダウンロード iPhoneのプログラムについては、今回と次回に分けて解説をしましょう。残念ながら、スクラッチから作る手順を解説すると多大なページを必要としますので、 XcodeやInterface Builderについての使い方については説明しません。たくさんの解説書がありますので、そちらを参考にしてください。 稿では、ダウンロードしたサンプルのプロジェクトが存在する前提で解説をします。プロジェクトは、iPhone SDK 3.2で作成をしていますが、 プログラム自体はもっと古いSDKでも稼働できると思います。 プロジェクトの中にあるClassesグループに、RentalDB.m/RentalDB.hというソースのセットで、RentalDBクラスの定義が行われています。 このクラスに、サーバーからデータを取って来たり、あるいはデータをサーバーに送るという処理をまとめ

  • 既存システムをモバイル化するポイント

    gayou
    gayou 2010/05/19
  • 解像度の異なる端末に対応する

    Androidの画面開発 前回、Xperiaの登場によって、今後は端末に依存しないアプリ開発が求められると述べました。今回からはより具体的に、端末に依存しないアプリ開発の方法について解説していきます。 最初に取り上げるのは「表示」、特に画面の解像度が異なる端末に対応する手法です。 手法の解説にサンプルを用意したので、こちらからダウンロードしてください。ファイルはzipで圧縮してあり、展開するとEclipseのプロジェクトになります。Androidの開発プラグインをインストールしたEclipseからインポートしてください。 サンプル"ResourceTest"プロジェクトのsrc以下は、コードを格納しているディレクトリです。また、res以下が、リソースを格納しているディレクトリです。res_sample以下は、筆者が作成したディレクトリで、Android開発には必要がありません。今回の説

  • [Think IT] サーバが重いってどういうこと? (1/3)

    サーバが重いってどういうこと? 著者:ウノウ  尾藤 正人   2007/10/4 2007年10月の連載ランキング1位(一覧を見る) サーバ管理者だけではなく誰でも一度は経験したことがある「サーバが重い」という現象。一言で「重い」というのは簡単ですが、重いというのは具体的にどういうことなのでしょうか。 ここでいう重い・軽いは単一のベクトルで判断できるような簡単な代物ではなく、様々な要素によって発生する現象です。処理が重いからといって闇雲にハードウェアを増強するのは賢いやり方とはいえません。例えば、メモリ不足が高負荷の原因なのに、CPUを高速なものに変えても効果はほとんどないでしょう。 このような無駄な投資を避けるためにも、負荷の原因を特定して素早く対応策を講じるのはサーバ管理者にとって重要なスキルになります。記事ではサーバ負荷の特定の仕方と対策の仕方について、簡単な概要を説明します。

    gayou
    gayou 2010/05/18
  • [ThinkIT] 第1回:Webブラウザを使ったテストツールSeleniumとは (1/3)

    この連載は、WebアプリケーションのテストツールであるSelenium(セレニウム)についてサンプルを用いながら概要と基的な使い方を解説していきます。連載第1回の今回は、Seleniumの概要について紹介します。 Seleniumとは、Webブラウザを使ってWebアプリケーションをテストするツールです。この「Webブラウザを使って」というのが非常に大きなポイントで、人が手でWebブラウザを操作する代わりにSeleniumがWebブラウザを操作してくれるのです。 そして単純に操作するだけでなく、例えばエラーメッセージが正しく表示されているかといった検証も行うことができます。つまり、今まで人手を必要としていたWebブラウザを使った試験が自動化できるものなのです。そのため数百項目もあるテストも、クリック1回で実施できます。 より重要なことは「自動化することによって試験を繰返し実施できる」こと

    gayou
    gayou 2008/12/11
    テストツール