うごく生ゴミプログラマの備忘録

うごく生ゴミ 〜再臨〜

Java EE で アプリケーション起動時になんか処理するやり方

まず javax.servlet-api を追加

mavenを使用している場合、pom.xmlに以下を追加

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

あとはServletContextListenerを実装したクラスを追加する。 例では、起動時にアプリケーションの名前とバージョンを設定から引っ張ってきて表示している。

@WebListener
public class InitListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent arg0) {

        System.out.println( " == Application start == " );
        System.out.println( Config.getInstance().getAppName() );
        System.out.println( Config.getInstance().getVersion() );
        System.out.println( " ======================= " );
    }


    @Override
    public void contextDestroyed(ServletContextEvent arg0) {

        // do nothing
    }

}

Mac OS X で X509形式の公開鍵と、PKCS8形式の秘密鍵を生成する手順

忘れないようにX509形式の公開鍵とPKCS8形式の秘密鍵生成手順をメモっとく

ssh-keygen Generating public/private rsa key pair.

どこにファイルを作るか聞いてくる。ここではカレントディレクトリに test という名前のファイルで作成するように指定している。 Enter file in which to save the key (/Users/Jun/.ssh/id_rsa): ./test

パスフレーズを聞いてくる。同じパスフレーズを2回入力する。 Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in ./test. Your public key has been saved in ./test.pub.

次に X509形式の公開鍵を生成する openssl rsa -pubout -in test -out test.x509

パスフレーズを入力 Enter pass phrase for gonzo: writing RSA key

X509形式の公開鍵が test.X509 に出力されているはず

次に PKCS8形式の秘密鍵を生成する openssl pkcs8 -in test -out test.p8 -topk8 -nocrypt

パスフレーズを入力 Enter pass phrase for gonzo:

PKCS8形式の秘密鍵が test.p8 に出力されているはず。

おわり。

JavaScriptでプライベートなメンバ変数を作る方法メモ

はじめに普通にオブジェクト(ここでは type, name 属性を持った Catオブジェクト)を作る

    function Cat (type, name) {
        this.type = type;
        this.name = name;
    }

    var tama = new Cat('ペルシャ', 'タマ');
    alert(tama.type);   // ペルシャが表示される。
    tama.type = '雑種'; // typeを変更できてしまう。
    alert(tama.type);   // 雑種が表示される。血統書付きのペルシャ猫が雑種呼ばわりとはあんまりだ。

タマが雑種呼ばわりされないために、Catクラスを↓のように書き換えてみる。

    function Cat (type, name) {

        // これから猫種を調べるときはこのメソッドを使うこととする。
        this.getType = function () {
            return type;
        };

        this.getName = function () {
            return name;  
        };
    }

    var tama = new Cat('ペルシャ', 'タマ');
    alert(tama.getType());  // ペルシャが表示される。
    tama.type = '雑種';
    alert(tama.getType());  // 上のコード実行後もペルシャが表示される。

JavaScriptでSingletonパターン(browserify + Backbone.js)

JavaScriptでのSingletonパターン実装方法の備忘録です。 browserify使用している環境で、Backbone.Modelを継承したオブジェクトをSingletonにしています。 getInstance()メソッドでオブジェクトを取得します。

module.exports = (function() {
    'use strict';
    var Backbone = require('backbone');

    /**
    * インスタンス保持用変数
    */
    var instance = null;


    var Singleton = Backbone.Model.extend({
        //...
    });

    return {

        /**
        * インスタンス取得パブリックメソッド
        * @returns {Singleton}
        */
        getInstance: function() {
            if( !instance ) {
                instance = new Singleton();
            }
            return instance;
        }
    };
}());

間違っている箇所、もっと良い方法があったら教えてください。