投稿日 2010年5月24日 月曜日 カテゴリ ソフトウェア開発, 読書 投稿者 syojiコメントは受け付けていません。 
オープンソースソフトウェアの育て方
プロジェクトが失敗に終わる可能性は非常に高く、 おそらく90–95%くらい

「オープンソースソフトウェアの育て方」という書籍があります。副題にフリーソフトウェアプロジェクトを成功させるコツとあるように、著者がオープンソースプロジェクトでの経験を元に実例を交えて説明されています。バージョン管理システムで有名なSubversionプロジェクトでの実際の経験から書かれています。 実践的な内容なので、ぜひソフトウェアエンジニアの方には読んで欲しい内容です。 (技術的な側面よりもオープンソースプロジェクトをうまく運営するための考え方やプロジェクト運営方法についての説明が多くなっています。)

さらに、うれしいことにウェブで全文を公開しているためだれでも読むことが出来ます(当然、日本語で)300ページにもなる専門的でためになる文書を公開された作者の方と翻訳者の方に感謝しなければいけません。

本の内容で特にビジネスアプリケーション開発の困難な点と共通する部分が多く(同じソフト開発なので当たり前ですが)さらに多くの課題に対処するための方法も参考になります。 「3. 技術的な問題」で紹介されているツールとその運用方法は、ビジネスアプリケーションの現場でも十分有効に使えるので、新入社員などに読ませるのも良いと思います。紹介されているツール群は若干古いですが、どのようなツールを、どのような場面で、どのように使っているのかを知る上でとても分かりやすいです。

また、「6.コミュニケーション」などは自分たちの開発でも学ぶべきコトが多いと思った部分で、読んでおくべき章だと思います。

ソフトウェアエンジニアに求められる能力として、はじめに思いついたことは、「文章を作成する力」です。コミュニケーション能力や提案力、プログラミング能力などよく言われる能力も必要であると思いますが、自分の考えを正確に正しく伝えるための書く力はインターネットが仕事に欠かせないツールになったことで重要であると考えています。

そのためには書く(まとめる)内容以前に考える力が重要になってきますが。。。

http://subversion.tigris.org/
投稿日 2010年5月6日 木曜日 カテゴリ ZABBIX, ツール 投稿者 sugimotoコメント(0) » 

tt_graphic

sugimotoです。

Webサービスの運用ではサーバーやサービスの監視が欠かせないと思います。 オープングルーヴでも突然のサーバー停止や、サービス停止、定期処理の失敗などに備え、監視システムを使って障害発生時にはメール通知するようにしています。

GW中に出かける途中で、監視システムとして運用しているZABBIXから警告メールが飛んできました。

パソコンを持たずに出かけていて、長距離バスに乗っていたんですが、iPhoneにインストールしていたTouchTermを使いました。

TouchTermはiPhoneアプリとして動作するSSHターミナルです。 アプリケーション内で作成したSSHキーのパブリックキーをあらかじめサーバーにおいておくことで、サーバーにSSH経由でログインすることができます。

iPhoneの画面とキーでも十分にサーバー上のログや状況の確認が可能で、問題の箇所をすぐに特定、対応することができました。

iPhoneの画面とキーを使っての操作のため、長時間操作や大きな設定変更は難しいですが、緊急時の一時的な対応には十分使えるツールです。

ソフトウェアエンジニアのためのバグトラッキングシステム : Ciklone

ソフトウェアエンジニアのためのバグトラッキングシステム

ソフトウェアエンジニアのためのバグトラッキングシステム

投稿日 2010年3月16日 火曜日 カテゴリ Wiki, プロジェクト管理 投稿者 syojiコメントは受け付けていません。 

社内での仕事術 #1

社内での仕事術について紹介したいと思います。 ソフトウェア開発は一つ一つの案件をプロジェクトとしてすすめるため、はじめにプロジェクトチームを作ります。

プロジェクトチームは提案内容や得意分野により主担当がかわります。 プロジェクトでは複数のメンバーが集まって仕事をすることになるため、情報共有はとても重要。

オープングルーヴではどのようにしているのか、ツールを使った情報共有#1として「Wikiを仕事で使う」について書きたいと思います。

Wikiとは「ウィキ」と言いますが、ウェブブラウザを使ってページの作成・編集ができるコンテンツサービスです。一人でメモ書きとして利用している方もいると思いますが、けっこう書込のためにページを開く。という動作が面倒になりがちということはあると思います。

弊社で利用する場合は、複数のメンバーでプロジェクトを進める上でガリガリ書き込みます。これはあるルールを決めているためですが、そのルールのおかげでWikiがなくてはならいツールになっています。

ルール : プロジェクトの成果物(中間成果物)はWikiで一元管理

Wikiのメリット

  • 会議をしながら議事録(画面を見ながらみんなで確認)
  • 顧客向けの議事録
  • 顧客との打合せで出来る議事録はWikiをPDF化やメールで共有
  • 設計書(技術メモ、検討メモ)、技術方式に対する他チームのコメント
  • 開発環境構築メモなど、開発に関わる情報源
  • 世代管理機能、ページ単位で履歴を確認し、追加された・削除されたがカラー表示される(下図)
Wikiによる備忘録・ルール

Wikiによる備忘録・ルール

Wikiの世代管理(履歴)

Wikiの世代管理(履歴)

などなど、メールでも同様のことはできますが、プロジェクトのポータルとして利用でき、大切な文書が埋もれない・・・(メールは探すのが大変) プロジェクトメンバーで使うことで、ガリガリ更新され、すぐにWikiが必須の情報共有ツールになりました。

デメリットは…

しかし、良い面ばかりではないです。新しく加わったメンバーなどにとっては使ったことがないツールのため、慣れるまで大変かも知れません。 「Wikiを知らない人や初めて使う人にとって慣れ親しんだインターフェースではない。」ということです。ファイル名がない、特殊なフォーマット・・・

Wikiを仕事で使いたい人へ セキュアで、1プロジェクト無料のcikloneを評価してください。
投稿日 2010年2月22日 月曜日 カテゴリ FastCGI, IIS 投稿者 omaeコメントは受け付けていません。 

こんにちわ。omae です。

さて、前回では IIS7 + FastCGI で PHP 5.3 を実行できるようにしました。

少し試しているうちに php のプロセス自体は 4 つまで増えるようになっている…ということに気づきました。 また当然ながらこの設定を変更する方法が用意されており、一つは %WINDIR%\system32\inetsrv\appcmd コマンドを用いるもので、もう一つは IIS マネージャから行うものです。

ここでは IIS マネージャから行う方法をやってみます。

手順

1. IIS 7.0 Administration Pack をインストール

Administration Pack : The Official Microsoft IIS Site からインストーラをダウンロードします。右のほうに Or, download x86 / x64 のような表記があるので実行環境に合ったものをダウンロードします。

ダウンロードしたらその MSI を実行してインストールします。

2. IIS マネージャを起動

IIS マネージャを起動すると FastCGI Settings アイコンが増えているのが確認出来ると思います。

3. FastCGI Settings を開く

FastCGI Settings アイコンを開くと設定されている FastCGI アプリケーションの一覧が表示されます。 一覧から設定したいアプリケーションのところで double click すると設定が変更出来るようになっています。

主に変更するのは MaxInstances (FastCGI ワーカープロセスの数) と InstanceMaxRequests (各ワーカープロセスの最大のリクエスト処理数。この値に到達するまでプロセスが再利用される) だと思います。

それ以外の設定の詳細は IIS 7.0 コンフィギュレーション リファレンス – FastCGI アプリケーション <application> に解説がありますので、これを確認しつつ必要であれば設定を行います。

参考

ソフトウェアエンジニアのためのバグトラッキングシステム : Ciklone

ソフトウェアエンジニアのためのバグトラッキングシステム

ソフトウェアエンジニアのためのバグトラッキングシステム

投稿日 2010年2月22日 月曜日 カテゴリ FastCGI, IIS, PHP 投稿者 omaeコメントは受け付けていません。 

こんにちわ。omae です。

今回は IIS 7 で PHP 5.3 を実行する環境が必要になったのでその手順を残しておきたいと思います。

作業しようとしてから気づいたのですが PHP 5.3 から isapi モジュールが廃止されていました。PHP 5.2 以前までは isapi モジュールで環境を作成していたのですが、廃止されてしまったものはしょうがありません。IIS 7 からは FastCGI が正式に対応しているので、こちらで設定することにします。

手順

1. PHP 5.3.1 をインストール

PHP For Windows: Binaries and sources Releases より今回は VC6 x86 Thread Safe (ZIP) を使うことにしました。この zip ファイルを C:\php に展開します。

ここでコマンドプロンプトを起動して C:\php\php-cgi.exe -h が実行できることを確認しておきます。実行すると以下のようなエラーが上がる場合は php.ini から extension=php_mssql.dll をコメントアウトします。SQL Server に接続する予定があるなら ntwdblib.dll を準備します。

無事に実行出来た場合:

C:\>C:\php\php-cgi.exe -h
Usage: php [-q] [-h] [-s] [-v] [-i] [-f <file>]
       php <file> [args...]
  -a               Run interactively
  -b <address:port>|<port> Bind Path for external FASTCGI Server mode
  -C               Do not chdir to the script's directory
  -c <path>|<file> Look for php.ini file in this directory
  -n               No php.ini file will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse <file>.  Implies `-q'
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -q               Quiet-mode.  Suppress HTTP Header output.
  -s               Display colour syntax highlighted source.
  -v               Version number
  -w               Display source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.
  -T <count>       Measure execution time of script repeated <count> times.

2. IIS で FastCGI が使えるように設定します

サーバーマネージャを起動して「Web サーバー (IIS)」の機能に「CGI」がインストール済みになっていることを確認します。 インストールされていない場合は「役割サービスの追加」からインストールします。

3. php.ini に fastcgi のための設定を行う

php.ini を開いて次の設定に変更します。

fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo = 1
cgi.force_redirect = 0

4. IIS マネージャから PHP のハンドラを設定する

a. IIS マネージャを起動し、ハンドラマッピングを開きます。

b. 「モジュールハンドラの追加」を選択し、以下の要領で *.php に対して fastcgi による php の実行を設定します。

5. phpinfo.php にアクセスして確認

C:\inetpub\wwwroot\phpinfo.php などに <?php phpinfo(); と書いたファイルを用意して、このファイルにブラウザからアクセスしてみます。

無事に phpinfo() が参照できれば、設定は完了です。

ついでにタスクマネージャを起動して FastCGI なので php-cgi.exe プロセスがいるか確認してみましょう。

ちゃんといますね。

参考

ソフトウェアエンジニアのためのバグトラッキングシステム : Ciklone

ソフトウェアエンジニアのためのバグトラッキングシステム

ソフトウェアエンジニアのためのバグトラッキングシステム

« 前ページへ次ページへ »