« 2009年01月 | メイン | 2009年05月 »

2009年03月 アーカイブ

2009年03月01日

メールアーカイブツール

  • Active! vault(トランスウエア)
  • Barracuda Message Archiver(バラクーダネットワークスジャパン)
  • GUARDIANWALL(キヤノンITソリューションズ)
  • HDE Mail Filter(HDE)
  • MailBase(サイバーソリューションズ)
  • Mimosa NearPoint for Microsoft Exchange Server(Mimosa Systems)
  • Mirapoint RazorSafe(ミラポイントジャパン)
  • SAVVY/MailRetriever(ジップインフォブリッジ)
  • Symantec Enterprise Vault(シマンテック)
  • WISE Audit(エアー)

  • 2009年03月02日

    スパム対策ソフトウェア(サーバ製品)

  • Active! hunter(トランスウエア)
  • CA Secure Content Manager(日本CA)
  • Cloudmark(Cloudmark)
  • InterScan Messaging Security Suite(トレンドマイクロ)
  • InterScan Messaging Security Virtual Appliance(トレンドマイクロ)
  • Mailstream Manager(センドメール)
  • McAfee Email and Web Security Virtual Appliance(マカフィー)
  • MIMEsweeper for SMTP(クリアスウィフト)
  • PureMessage(ソフォス)
  • SpamAssassin(オープンソース)
  • Symantec Mail Security for SMTP(シマンテック)
  • Symantec Mail Security for Domino(シマンテック)
  • Symantec Mail Security for Microsoft Exchange(シマンテック)
  • Symantec Brightmail Gateway Virtual Edition(シマンテック)

  • 2009年03月03日

    スパム対策アプライアンス(ハードウェア一体)

  • Barracuda Spam Firewall(バラクーダネットワークス)
  • IronPort(アイアンポートシステムズ)
  • MailGates(サイバーソリューションズ)
  • マトリックススキャン APEX(アイマトリックス)
  • McAfee Email and Web Security(マカフィー)
  • MIMEsweeper Email Appliance(クリアスウィフト)
  • Mirapoint RazorGate(ミラポイントジャパン)
  • Proofpoint Messaging Security Gateway(日本プルーフポイント)
  • Proventia Network Mail Security System(日本アイ・ビー・エム)
  • Secure Mail/IronMail(セキュアコンピューティングジャパン)
  • SonicWALL Email Security(SonicWALL)
  • Sophos Email Appliance(ソフォス)
  • Symantec MailSecurity 8100 Series(シマンテック)
  • Symantec Brightmail 8300/MailSecurity 8200/8300 Series(シマンテック)

  • 2009年03月04日

    実際に発行されたSQL

    Oracle のJDBCの場合、デバッグ用のドライバを使えばトレースが取れる。
    %ORACLE_HOME%\jdbc\lib\ojdbc14_g.jar を %CLASSPATH% に通して、実行時に
    java -Doracle.jdbc.LogFile=true -Doracle.jdbc.LogFile=./oracle.log application
    で、とすればカレントのoracle.logにトレースされる↓

    続きを読む "実際に発行されたSQL" »

    2009年03月05日

    MySQL Migration Toolkit その4

     なぜか、Windows XP Professional で、MySQL Migration Toolkit の 最初のステップ java loader をパスしない。なお、XPの場合「Windows ファイアウォール」のブロック解除を促される。
     Windows 2003 server では動作確認できている。
    java の version は 1.6.0_11。
     根本的な解決ではないものの MySQLMigrationTool.exe にはオプションがあり
    cd "C:\Program Files\MySQL\MySQL Tools for 5.0"
    MySQLMigrationTool.exe -debug
    で最初のステップを進められる。

    続きを読む "MySQL Migration Toolkit その4" »

    2009年03月06日

    OracleからMySQLへの移行

     マイグレーションには、MySQL Migration Toolkit でいけることを確認済み。ただし、全く同じテーブル構造で、全自動でなくINSERTのSQL文を生成させテキストエディタで手修正することが前提。
     Lua と呼ばれるスクリプトでマイグレーションを制御できるが、どこまで可能か・記述方法の調査は断念。
     業務で稼動している既存システムを切り替える為 停止できる期間は制限付き、人の手作業によるミスのリスクがある。さらにスキーマの設計を見直すための移行フェーズを予定しているため

    oracle(スキーマA)
      ↓MySQL Migration Toolkit
    MySQL(スキーマA)
      ↓?
    MySQL(スキーマX)

    は保険としておき、一気に新しいスキーマへ変換する際の java バッチアプリを検討。

    oracle(スキーマA)
      ↓java バッチアプリ
    MySQL(スキーマX)

    2009年03月07日

    O/Rマッピングツール

    全ての型やデータによる振る舞いをコーディングするのは、規則性が高くできればツールなどで自動的に正確なコードを生成させたい。

    ●Java標準のO/Rマッピング機能「Java Persistence API」
    http://itpro.nikkeibp.co.jp/article/COLUMN/20060627/241918/?ST=develop&P=1
    ●Javaオブジェクトをデータベースへマッピング - Mr. Persister 3.0.1
    http://journal.mycom.co.jp/news/2005/09/08/013.html
    ●Castorでデータバインディングに挑戦
    http://www.atmarkit.co.jp/fxml/rensai2/xmltool03/01.html
    ●Hibernateで理解するO/Rマッピング★重量級
    http://www.atmarkit.co.jp/fjava/rensai3/ormap01/ormap01.html
    ●DbUtils、Persist、Butterfly Persistence
    http://d.hatena.ne.jp/Kishi/20081212/1229076102
    ●Cayenne★★★★
    http://www.atmarkit.co.jp/fjava/products/cayenne/cayenne_1.html
    ●O/RマッピングをサポートするEclipseプラグイン「CROSSFIRE O/R」
    http://codezine.jp/a/article/aid/339.aspx
    ●activeobjects★★
    https://activeobjects.dev.java.net/

    2009年03月08日

    activeobjects(アクティブオブジェクト)

    現時点で最も簡単で比較的後発のO/Rマッピングツール。
    https://activeobjects.dev.java.net/
    javaの「アノテーション」を理解できれば、XML設定ファイルやGUI開発ツールEclipseにも依存しない。

    確かに簡単。getter,setterメソッドを定義したinterfaceを作成してclasspathにactiveobjects-0.8.2.jarをとおすだけ。
    主キーがないテーブルのマッピングは厄介?複合キーのテーブルを扱えない。
    大きなデータ列を含むテーブルは工夫しないと大量のハッシュマップメモリを消費する(out of memoryで停止)。
    動作遅い。

    続きを読む "activeobjects(アクティブオブジェクト)" »

    2009年03月09日

    Cayenne(カイエン)

    Modelerと呼ばれる設定ツールでマッピングすると各テーブルを操作するための基底クラスのコードやXML設定ファイルを自動生成する。
    http://www.atmarkit.co.jp/fjava/products/cayenne/cayenne_1.html

    activeobjects よりは軽快に動作する。基底クラスのコードやXML設定ファイルのカスタマイズも比較的容易。
    行を操作する場合は絞込みを工夫しないと大量のメモリを消費する(out of memoryで停止)。

    いろいろ勉強になったところで、自分でコーディングしたほうが確実で早いと判断に。

    2009年03月10日

    非接触型ICカード

    ■先払い(チャージ)式電子マネーカード
    Edy (電子マネー)
    nanaco (ナナコ:セブン-イレブン)
    モバイルWAON(モバイルワオン:イオングループ)
    ■後払い(クレジット)式電子マネーカード
    QUICPay(クイックペイ)
    VisaTouch(ビザタッチ)
    Smartplus(スマートプラス)
    ■交通機関系ICカード
    Suica (スイカ:JR東日本)
    PASMO (パスモ:関東の鉄道・バス交通機関)
    ICOCA (イコカ:JR西日本)
    PiTaPa (ピタパ:関西の鉄道・バス交通機関)
    TOICA (トイカ:JR東海)
    ■航空チケット、マイレージカード
    全日空のANAマイレージクラブカード・ANAカード
    日本航空のJALカード・JMBカード
    ■会員証・ポイントカード
    club ap (am/pm)
    KARUWAZA CLUB (サークルKサンクス)
    ヨドバシカメラ(ゴールドポイントカード)
    ビックカメラ(ビックポイントカード)
    マツモトキヨシ(現金ポイントカード等)

    2009年03月11日

    Migration 先のMySQLテーブル情報

    STATUS;
    DESC tableName;
    DESC tableName fieldName;
    テーブル クリエイト 命令もある
    SHOW CREATE TABLE tableName;

    MySQL Server version: 5.0.27-standard

    2009年03月12日

    テーブル定義書の自動生成

    MySQL の DESC 命令で、テーブル定義設計書を ethna で出力。当然MySQL依存。
    class APPID_TABLEManager extends Ethna_AppManager{
        function &getMeta( $column=null ){
            $ethnadb =& $this->backend->getDB();
            $peardb  =& $ethnadb->db;
            $statment = "DESC tableName {$column}";
            $resultSet = $peardb->getAll( $statment, null, DB_FETCHMODE_ASSOC );
            if( PEAR::isError( $resultSet ) ){
                $message = $resultSet->getCode().':'.$resultSet->getMessage();
                Ethna::raiseWarning( $message );
            }
            return $resultSet;
        }
    }
    あとは、view で、
        $manager =& $this->backend->getManager( 'tableName' );
        $this->action_form->setApp( 'tableName', $manager->getMeta() );
    とすれば、template で
    <table border=1>
        <caption>tableName</caption>
        <tr>
            <th>項番</th>
            <th>列名</th>
            <th>データ型</th>
            <th>制約</th>
        </tr>
    {foreach from=$app.tableName item=p key=c name=x}
        <tr>
            <td align=right>{$c}</td>
            <td align=left>{$p.Field}</td>
            <td align=left>{$p.Type}</td>
            <td align=left>
                {if 'PRI'==$p.Key}PRIMARY KEY{/if}
                {if 'auto_increment'==$p.Extra}AUTO_INCREMENT{/if}
                {if 'NO'==$p.Null}NOT NULL{else} {/if}
                {if ''!=$p.Default}DEFAULT {$p.Default}{else} {/if}
            </td>
        </tr>
    {/foreach}
    <table>
    かなりベタ。

    2009年03月13日

    テーブル定義書の自動生成 その2

     列名を日本語表記する。WEBをデータベースのフロントエンドとすると、機械的に全部の列をフォーム定義することがほとんど。列とフォーム要素は1対1として action の継承元で
    class APPID_ActionForm extends Ethna_ActionForm{
        var $form_template = array(
            'fieldName'    => array(
                'name'     => '列に対するWEBでの表示名',
                'required' => false,
                'form_type'=> FORM_TYPE_RADIO,
                'type'     => VAR_TYPE_INT,
                'option'   => array(
                    '1'=>'A',
                    '2'=>'B',
                ),
            ),
                ~
        );
    }
    という具合。さらに、view の継承元で
    class APPID_ViewClass extends Ethna_ViewClass{
        function _setDefault(&$renderer){
            $smarty->assign_by_ref( 'formDef', $this->action_form->getDef() );
        }
    }
    とすれば、template で↓

    続きを読む "テーブル定義書の自動生成 その2" »

    2009年03月14日

    テーブル定義書の自動生成 その3

     仕様書が無くソースコードだけが残るのが最悪。せめて最終的なソースコードを元に仕様書のベースを生成したい。
    ethna にはない description 要素を追加。
    APPID_ActionForm extends Ethna_ActionForm{
        var $form_template = array(
            'fieldName'    => array(
                'name'     => '列に対するWEBでの表示名',
                'required' => false,
                'form_type'=> FORM_TYPE_RADIO,
                'type'     => VAR_TYPE_INT,
                'option'   => array(
                    '1'=>'A',
                    '2'=>'B',
                ),
                'description'=>    array(
                    '2択',
                    'コードで格納 etc...',
                ),
            ),
                ~
        );
    }
    このままでは「プラグインがない」とワーニング。
    app/plugin/APPID_Plugin_Validator_Description.php を作成。
    class APPID_Plugin_Validator_Description extends Ethna_Plugin_Validator{
        var $accept_array = true;
    
        function &validate( $name, $var, $params ){
            return $this->ok();    ///    説明なのでなにもしない
        /// return $this->error('エラーだよ', E_APP_FORM_INVALIDVALUE);
        }
    }
    例えば↓このように出力すればそのままエクセルに貼り付けて・・・

    続きを読む "テーブル定義書の自動生成 その3" »

    2009年03月15日

    テーブル定義書の自動生成 その4

    完成例


























































    項番 列名 属性名 データ型 制約 カラム説明
    0 cd cd int(10) PRIMARY KEY AUTO_INCREMENT NOT NULL  
    1 ID id varchar(128) NOT NULL
    UNIQUE INDEX
    2 パスワード pass varchar(128) NOT NULL
    MD5
    3 クラス class int(1) DEFAULT 0
    1:A
    2:B
    2択
    コードで格納 etc...
    4 更新日時 xcreate datetime    
    5 作成日時 xupdate datetime    

    2009年03月16日

    phpのforeach

    うっかり更新対象の連想配列をforeachで回して更新されなかったことはないだろうか。
    foreach( $hairetu as $v ){
       $v = '更新データ';
    }
    の、$v はコピーなので $v にいくら代入しても 実体の$hairetu には反映されない。正解は↓
    foreach( $hairetu as $k => $v ){
       $hairetu[$k] = '更新データ';
    }
    か、あるいは php5 以降であれば 参照を明示的に指定できる
    foreach( $hairetu as &$v ){
       $v = '更新データ';
    }

    2009年03月17日

    ethna の getObjectPropList

    データベース 商品テーブル






    CD(primary key)NAMEPRICE
    aaapple\200
    bbgrape\100
    ccorange\150

    PEAR::DB の DB_FETCHMODE_ASSOCモードで取得すると













    0



    CDNAMEPRICE
    aaapple\200

    1



    CDNAMEPRICE
    bbgrape\100

    2



    CDNAMEPRICE
    ccorange\150


    ethna の class APPID_RanksManager extends Ethna_AppManager のメソッド getObjectPropList() で取得すると

    続きを読む "ethna の getObjectPropList" »

    2009年03月18日

    ethna の getObjectPropList その2

    データベース 商品テーブルから、主キーCDで価格を引き当てたい場合、
    キー
    aa\200
    bb\100
    cc\150
    のような連想配列 $price[] を新たに作り出すところ、前回のgetObjectPropListで取得したデータ構造を使ってメモリを節約する。
    $row = $this->getObjectPropList( '商品テーブル'
    ,   $select // SELECT
    ,   $where  // WHERE
    ,   $order  // ORDER BY
    ,   $offset // OFFSET
    ,   $limit  // LIMIT
    );
    foreach( $row[1] as $k => $v )
      $row[2][$v['CD']] =& $row[1][$k]['PRICE'];
    とすると $row は↓

    続きを読む "ethna の getObjectPropList その2" »

    2009年03月19日

    ethna の getObjectPropList その3

    マジックナンバー2はちょっと・・・という場合
    foreach( $row[1] as $k => $v )
      $row['CD'][$v['CD']] =& $row[1][$k]['PRICE'];
    
    イメージは

    続きを読む "ethna の getObjectPropList その3" »

    2009年03月20日

    ethna の getObjectPropList その4

    実際にはたくさんのテーブルがあり、アドレッシングは複雑になるものの
    foreach( $row[1] as $k => $v )
    	$row[2][$v['CD']] =& $row[1][$k];
    
    とすると、記述を統一できる。$row は、

    続きを読む "ethna の getObjectPropList その4" »

    2009年03月21日

    アップロード ファイル名のチェック その2

    なぜか
    「フォーム定義 」
    http://ethna.jp/ethna-document-dev_guide-form.html
    に「フォーム値の自動検証を行う(プラグイン編) 」
    http://ethna.jp/ethna-document-dev_guide-form-validate_with_plugin.html
    へのリンクがない。以前作成した file の拡張子チェックは、バリデータプラグインがセオリーのようです↓

    続きを読む "アップロード ファイル名のチェック その2" »

    2009年03月22日

    ethnaでviewテーブルを扱う

    Ethna 2.5.0-preview3 +PHP 5.2.6 + MySQL Server 5.1.30
    では
    $object = $this->backend->getObject( 'viewname', 'cd', 123 );
    $object->isValid()
    の振る舞いがおかしい。引き当てていながら false となる。
    MySQL の view のつもりでgoogle検索しても ethna の view に関するドキュメントばかり・・・

    続きを読む "ethnaでviewテーブルを扱う" »

    2009年03月23日

    分析/設計フェーズの開発支援ツール

    AmaterasERD/UML
    ArgoUML
    Borland Together
    BOUML
    CA ERwin Data Modeler(AllFusion ERwin Data Modeler)
    CA Gen(AllFusion Gen)
    CodeGearシリーズ(RAD Studioなど、旧Delphi/Borland Developer Studioなど)
    Cumulate Draw
    Data-INTIMATE
    DesignSaver
    Dynamic Draw
    EclipseUML(Free Edition、Studioなど)
    Elapiz(Konesa)
    Enterprise Architect
    ER/Studio
    IBM Rationalシリーズ(Data Architect、Software Architect、Software Modelerなど)
    Interstage Studio(Interstage Apworks)
    JUDE(Biz、Professional、Communityなど)
    Microsoft Office Visio
    Microsoft Visual Studio
    Mind-Designer
    OpenMeisterEnterprise
    SI Object Browserシリーズ(AP、ERなど)
    SystemDirectorシリーズ(Application Modeler UML Editorなど)
    Telelogic TAU
    TER-MINE
    XEAD
    Xupper II

    2009年03月24日

    プログラミングフェーズの開発支援ツール

    ActiveBasic
    ACUCOBOL-GT
    Adobe ColdFusion
    BCC Developer
    C++Builder(Borland C++Builder)
    CA Gen(AllFusion Gen)
    COBOL2002ファミリー
    CodeGearシリーズ(RAD Studio、旧Borland Developer Studioなど)
    CPad
    Delphi
    DevPartnerシリーズ(Studio、Java Editionなど)
    Eclipse
    gcc Developer Station 2000
    IBM Enterprise COBOL
    IBM Rationalシリーズ(Application Developerなど)
    IBM WebSphere Studio
    Interstage Studio(Interstage Apworks)
    JBuilder
    MyEclipse
    Micro Focus Net Express/Server Express
    Microsoft Visual Studioシリーズ
    NetCOBOL
    Oracle JDeveloper
    Oracle Workshop for Weblogic Platform(BEA Workshop for WebLogic Platform)
    PL/SQL Developer
    PowerBuilder
    SI Object Browserシリーズ(AP、ERなど)
    Sun Java Studio/Sun Studio
    SystemDirectorシリーズ(Enterpriseなど)
    Turboシリーズ

    2009年03月25日

    プログラミングフェーズの開発支援ツール

    ActiveBasic
    ACUCOBOL-GT
    Adobe ColdFusion
    BCC Developer
    C++Builder(Borland C++Builder)
    CA Gen(AllFusion Gen)
    COBOL2002ファミリー
    CodeGearシリーズ(RAD Studio、旧Borland Developer Studioなど)
    CPad
    Delphi
    DevPartnerシリーズ(Studio、Java Editionなど)
    Eclipse
    gcc Developer Station 2000
    IBM Enterprise COBOL
    IBM Rationalシリーズ(Application Developerなど)
    IBM WebSphere Studio
    Interstage Studio(Interstage Apworks)
    JBuilder
    MyEclipse
    Micro Focus Net Express/Server Express
    Microsoft Visual Studioシリーズ
    NetCOBOL
    Oracle JDeveloper
    Oracle Workshop for Weblogic Platform(BEA Workshop for WebLogic Platform)
    PL/SQL Developer
    PowerBuilder
    SI Object Browserシリーズ(AP、ERなど)
    Sun Java Studio/Sun Studio
    SystemDirectorシリーズ(Enterpriseなど)
    Turboシリーズ
    Visual Windows for BC++
    Web Performer
    Zend Studio

    2009年03月26日

    テストフェーズの開発支援ツール

    Agitator
    Assam WebBench
    Borland Silkperformer
    CA Gen(AllFusion Gen)
    Checkstyle
    clover
    Cobertura
    DevPartnerシリーズ
    e-Load
    EMMA
    E-SUP AP Test/Web
    e-Tester
    FindBugs
    IBM Rationalシリーズ
    Jameleon
    JCoverage
    JMeter
    HP BTO Softwareシリーズ(旧Mercuryシリーズなど)
    Microsoft Application Center Test
    Microsoft Visual Studioシリーズ
    Parasoft シリーズ (C++ test、Jtestなど)
    PL/SQL Developer
    QALoad
    SADEE 2
    Selenium
    SIMPLIA JFシリーズ
    SI Object Browserシリーズ
    Solex
    SystemDirectorシリーズ(Enterpriseなど)
    TestPartner
    WebLOAD
    WebSPARK
    xUnit(JUnit、CUnit、VBUnit、NUnitなど)

    2009年03月27日

    変更/構成変更フェーズの開発支援ツール

    CVS
    Borland StarTeam
    IBM Rationalシリーズ(ClearCase、ClearQuestなど)
    mantis
    Microsoft Visual Studioシリーズ(Team Foundation Server、Visual SourceSafeなど)
    Serena PVCS Professional Suite(PVCS Version Manager)
    SourceForge Enterprise Edition
    Subclipse
    Subversion
    Telelogicシリーズ(Change、SYNERGYなど)
    TortoiseCVS/SVN

    2009年03月28日

    プロジェクト管理フェーズで開発支援ツール

    Artemis 7
    Compass standard
    GanttProject
    IBM Rationalシリーズ(Portfolio Managerなど)
    JIRA
    M1 for Windows
    Microsoft Office Project(MS Project)
    Microsoft Visual Studioシリーズ
    Oracle Project Collaboration
    PJMS AxisWave
    ProcessDirector
    Project Keeper
    Select Process Director
    Serena PVCS
    SourceForge Enterprise Edition
    Streber
    trac
    TUTOS
    xDTS
    アリエル・エアワン・プロジェクトA

    About 2009年03月

    2009年03月にブログ「Remix.asia」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

    前のアーカイブは2009年01月です。

    次のアーカイブは2009年05月です。

    他にも多くのエントリーがあります。メインページアーカイブページも見てください。