2013年4月28日日曜日

AD 情報取得のための Java プログラム

前回は AD 認証を行うサンプルを紹介しましたが、今回は AD から情報を取り出すサンプルを紹介します。AD にはいろいろな情報がありますが、今回はユーザの名前、アカウントID、メールアドレスを抽出するプログラムを紹介します。 import java.util.Hashtable; import javax.naming.Context; import javax.naming.NamingEnumeration; import javax.naming.NamingException; import javax.naming.AuthenticationException; import javax.naming.directory.Attribute; import javax.naming.directory.Attributes; import javax.naming.directory.InitialDirContext; import javax.naming.directory.SearchResult; import javax.naming.directory.SearchControls; /**  * JNDI の LDAP インタフェースを用いて...

2013年4月16日火曜日

AD認証の Java プログラム

AD認証のJavaプログラムを書く機会があったので、紹介。 import java.util.Hashtable; import javax.naming.Context; import javax.naming.NamingException; import javax.naming.AuthenticationException; import javax.naming.directory.InitialDirContext; /**  * JNDI の LDAP インタフェースを用いて AD認証を実行  *  * 引数1:AD 接続先 URL  * 引数2:AD のドメイン名  * 引数3:ユーザID  * 引数4:パスワード  */ public class adauth {     public static void main(String args[]) {         Hashtable env = new Hashtable();         // Contextファクトリ  ...

2013年4月14日日曜日

多忙なSEのためのTODO管理

みなさんはTODO管理をどのように実施しているでしょうか。手帳やノートを活用している人も多いと思いますが、最近はスマートフォンでTODO管理ができるアプリも増えていますので、それらを活用している人も多いと思います。 私は iPhone を使っていますが、AppStore にはすごくたくさんのTODO管理アプリがあります。日々多忙なSEにとって、どのようなアプリが最適なのか考察してみたいと思います。 完全に個人的な解釈ですが、TODO管理には2つのパターンがあると考えています。 ①それ単独で完結するタスクのTODO管理 ②プロジェクト単位にまとめられたタスクのTODO管理 例えば、「作業表作成」や「○○会議資料作成」といった単発のタスクは①、○○プロジェクトに関する「技術調査」、「PJ計画書作成」、「要員調達」といったタスクは②に当てはまります。 もしあなたがPMや上級SEでなく、プロジェクトに組み込まれた1担当者の立場であるなら、①のTODO管理ができていれば十分と思われます。なぜならそういう立場であれば、通常は1つのプロジェクトに専任することが多く、またプロジェクトに関わる様々なタスクは、PMや上級SEが運営するPJ管理の中で指示されることになるからです。 もしあなたがPMや上級SEであり、プロジェクトの様々なタスクを整理して実施するだけでなく、同時に複数のプロジェクトの管理もしなければならない立場であるなら、①と②の両方のTODO管理が必要になるでしょう。 そしてTODO管理のアプリに関しても、①のみの管理のために最適なアプリと、①と②の両方の管理のために最適なアプリがあると思います。 今回は①のみの管理のために使える(と個人的に思っている)iPhoneアプリを紹介したいと思いますが、その前にアプリ選定の前提条件を説明します。 すべてのTODO管理を...

2013年4月13日土曜日

Apache の KeepAliveTimeout の設定

Apache を利用している Web システムが、突然レスポンスが返ってこなくなる、あるいは異常に遅い、こんなトラブルに遭遇した経験はないでしょうか? ・サーバが死んでいるわけではない。 ・サーバ負荷が高いわけでもない。 ・ブラウザでアクセスしたときは、レスポンスがなかなか返ってこない。 このようなレスポンス遅延の症状が出たとき、考えられる原因はいくつかあるのですが、可能性が高い原因として Apache の KeepAliveTimeout の設定があります。 KeepAliveTimeout は、1つのクライアント(ブラウザ)が、コネクションを占有できる時間を設定します。通常ブラウザが Web ページにアクセスしたときは、HTML ページをロードした後、そこから参照される CSS や画像等のファイルを次々と読み込むことになります。このとき、最初の HTML ページをロードする際に使用していたコネクションを解放せず、その後のファイルの読み込みにもそのコネクションを利用したほうがはるかに効率的です(なぜならネットワーク処理において、コネクションの確立が一番コストのかかる処理だからです)。このため、KeepAliveTimeout の設定は、1ページの読み込みにかかる時間+α程度の時間を設定するのが定石です。 ところが、Apache...