2015年12月28日月曜日

Antで複数のmkdirタスクを実行する。

AntのScriptタスクを利用して、ディレクトリのパスをPathConvertで変換した後に、そのディレクトリを作成します。

build.xml
<?xml version="1.0" encoding="UTF-8"?>
 <target name="pathConvertor" description="">
  <pathconvert property="convertedDir">
   <dirset dir=".">
    <patternset id="convdir">
     <include name="**/java/**"/>
     <include name="**/resources/**"/>
    </patternset>
   </dirset>
   <mapper>
    <filtermapper>
     <replacestring from="java" to="replaced"/>
     <replacestring from="resources" to="replaced"/>
    </filtermapper>
   </mapper>
  </pathconvert>
  <script language="javascript"><![CDATA[
   var toDir = project.getProperty("convertedDir");
   var dirs = toDir.split(";");
   var size = dirs.length;
   var mkdir = project.createTask("mkdir");
   for (var i = 0; i < size; i++) {
    var targetDir = dirs[i];
    mkdir.setDir(new java.io.File(targetDir));
    mkdir.perform();
   }
  ]]></script>
 </target>
</project>


実行結果
e:\work\ant>ant pathConvertor
Buildfile: e:\work\ant\build.xml

pathConvertor:
    [mkdir] Created dir: e:\work\ant\dir\replaced
    [mkdir] Created dir: e:\work\ant\path\to\example\replaced
    [mkdir] Created dir: e:\work\ant\src\main\replaced
    [mkdir] Created dir: e:\work\ant\src\test\replaced

BUILD SUCCESSFUL
Total time: 2 seconds
e:\work\ant>tree
フォルダー パスの一覧
ボリューム シリアル番号は 00000200 A0FE:B066 です
E:.
├─dir
│  ├─java
│  ├─replaced
│  └─resources
├─path
│  └─to
│      └─example
│          ├─java
│          └─replaced
└─src
    ├─main
    │  ├─java
    │  ├─replaced
    │  └─resources
    └─test
        ├─java
        ├─replaced
        └─resources


2015年12月27日日曜日

某ブラウザゲームの画面をスッキリさせる。

D/M/Mの右側に出るレコメンドを消します。
div#ntg-recommend {
 display: none;
}
span.slide-trg {
 display: none;
}
div.list-pickupgame {
 display: none;
}

上記をブラウザのユーザースタイルシートとして設定します。

2015年6月28日日曜日

2015年7月(夏)開始アニメ新番組私的録画メモ

新しく始まるアニメの個人的な録画予約のメモ。
チェックしている放送局は在京キー局とBS、AT-X、TOKYO MX、チバテレビ。


曜日 タイトル 初回放送日時 放送局
赤髪の白雪姫 7月6日(月) 24:00 TOKYO MX
To LOVEる-とらぶる-ダークネス 2nd 7月6日(月) 24:30 TOKYO MX
のんのんびより りぴーと 7月6日(月) 26:05 テレビ東京
それが声優! 7月7日(火) 23:00 TOKYO MX
がっこうぐらし 7月9日(木) 23:30 TOKYO MX
アイドルマスター シンデレラガールズ 2nd SEASON 7月17日(金) 24:00 TOKYO MX
監獄学園 プリズンスクール 7月10日(金) 25:05 TOKYO MX
Fate/kaleid liner プリズマイリヤ ツヴァイ ヘルツ! 7月24日(金) 25:40 TOKYO MX
WORKING!!! 7月4日(土) 24:30 TOKYO MX
戦姫絶唱シンフォギアGX 7月4日(土) 25:00 TOKYO MX

WORKING3期、水島努監督の監獄学園に期待しています。

最後に、情報源は以下のサイトです。ありがとうごとうございます。

GIGZAZINE 2015年夏季開始の新作アニメ一覧

2015年4月26日日曜日

fluent-logger-javaについていくつかのこと。

GitHub fluent/fluent-logger-java

バージョンは、0.3.1です。

Fluentdに送信する実装を変更できる。

ファクトリークラス内が下記のようになっています。
org.fluentd.logger.FluentLoggerFactory#getLogger(String, String, int, int, int, Reconnector)
        Properties props = System.getProperties();
        if (!props.containsKey(Config.FLUENT_SENDER_CLASS)) {
            // create default sender object
            sender = new RawSocketSender(host, port, timeout, bufferCapacity, reconnector);
        } else {
            String senderClassName = props.getProperty(Config.FLUENT_SENDER_CLASS);
            try {
                sender = createSenderInstance(senderClassName, new Object[] { host, port, timeout, bufferCapacity });
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }

そこで、org.fluentd.logger.sender.Senderインターフェースを実装したクラスを以下のように設定することで、
デフォルトのorg.fluentd.logger.sender.RawSocketSenderから変更できます。
System.setProperty(Config.FLUENT_SENDER_CLASS, "com.example.HogeSender")
他にも、org.fluentd.logger.sender.NullSenderというクラスは、空振りする動作をします。
諸事情でFluentdにログを送信できない場合、このクラスに切り替えるようなロジックを実装するといった利用が考えられます。

再接続方法を変更できる。

デフォルトの実装は、
org.fluentd.logger.sender.ExponentialDelayReconnector
指数関数的に遅延しながら再接続を試みる物のようです。
これとは別に、org.fluentd.logger.sender.Reconnectorインターフェースを実装することで、
独自の動作を実装できます。
以下のメソッドを利用することで、独自の動作をさせることができます。
org.fluentd.loggerFluentLogger#getLogger(String, String, int, int, int, Reconnector)

2015年4月25日土曜日

JUnit3を利用するDBUnitで、ExcelのXLSX形式に対応する。

諸般の事情で、JUnit4系にできないので、
主なライブラリ構成は以下の通りになりました。
  • JUnit3.8.2
  • DBUnit2.4.9
  • POI3.7

下記に記載がある通り、対応します。
JUnit - ふなWiki - xlsx をデータとして利用する

DBUnitでXLSXを扱うように変更する場合、POIの公式に記載してある通りに対応すればOKです。
Apache POI - Upgrading to POI 3.5, including converting existing HSSF Usermodel code to SS Usermodel (for XSSF and HSSF)

自前で対応した後、DBUnitが正式に対応したので、以下をパッチすれば良いと思います。
試してはいないですが、パッと見た感じだと私が対応した内容と同じ感じでした。
dbUnit / Git / Commit [c6a6ba] Apache POI liblary version up from "3.2-FINAL" to "3.11".


ついでに、読み込んだExcelの日時がズレてしまう問題に対応します。

以下のブログに言及がありますが、独自でXLSX対応しちゃうついでに、こちらもコードを直しちゃいます。
山下寛人オフィシャルブログ - DBUnit Excelロード時の時刻データ

対応する箇所は、以下の通りです。
org.dbunit.dataset.excel.XlsTable

    protected Object getDateValue(Cell cell) 
    {
        logger.debug("getDateValue(cell={}) - start", cell);
        
        double numericValue = cell.getNumericCellValue();
        Date date = DateUtil.getJavaDate(numericValue);
        // Add the timezone offset again because it was subtracted automatically by Apache-POI (we need UTC)
        long tzOffset = TimeZone.getDefault().getOffset(date.getTime());// この行をコメントアウトする。
        date = new Date(date.getTime() + tzOffset);                     // この行をコメントアウトする。
        return new Long(date.getTime());
        
        //TODO use a calendar for XLS Date objects when it is supported better by POI
//        HSSFCellStyle style = cell.getCellStyle();
//        HSSFDataFormatter formatter = new HSSFDataFormatter();
//        Format f = formatter.createFormat(cell);
//      String formatted = fomatter.formatCellValue(cell);
//System.out.println("###"+formatted);
//        Date dateValue = cell.getDateCellValue();
    }

とりあえず、これで問題なくテストできています。

2015年3月22日日曜日

2015年4月(春)開始アニメ新番組私的録画メモ

新しく始まるアニメの個人的な録画予約のメモ。
チェックしている放送局は在京キー局とBS、AT-X、TOKYO MX、チバテレビ。


曜日 タイトル 初回放送日時 放送局
SHOW BY ROCK!! 4月5日(日) 22:00 TOKYO MX
山田くんと7人の魔女 4月12日(日) 23:30 TOKYO MX
グリザイアの迷宮 4月12日(日) 26:35 TOKYO MX
ハロー!!きんいろモザイク 4月6日(月) 24:00 TOKYO MX
高宮なすのです! 4月6日(月) 25:08 TOKYO MX
てーきゅう 4期 4月6日(月) 25:35 TOKYO MX
響け!ユーフォニアム 4月7日(火) 24:30 TOKYO MX
えとたま 4月9日(木) 23:00 TOKYO MX
放課後のプレアデス 4月9日(木) 24:00 TOKYO MX
やはり俺の青春ラブコメはまちがっている。続 4月2日(木) 25:46 TBS
レーカン! 4月2日(木) 26:16 TBS
ニセコイ: 4月10日(金) 23:30 TOKYO MX
長門有希ちゃんの消失 4月3日(金) 25:40 TOKYO MX
Fate/stay night [Unlimited Blade Works] 2ndシーズン 4月4日(土) 24:00 TOKYO MX

Fate/stay night 2期、響け!ユーフォニアムに期待しています。

最後に、情報源は以下のサイトです。ありがとうごとうございます。

GIGZAZINE 2015年春季開始の新作アニメ一覧

楽描喜堂