月曜日, 2月 23, 2009

g-client

まだまだ、emacsからbloggerへ投稿できないか?と悩んでいます。。。

g-clientってのを発見はしたんですが、
何やら文字コード周りでうまくいかないというようなのを斜め読みしてしまい、
ちょっと躊躇しています。

何かいいものないかなぁ~。。。

日曜日, 2月 22, 2009

初めての確定申告

今日、確定申告に行ってきた。

意外とあっさり終わった。。。

もっと色んな突っ込みがあるんじゃないかと思っていたのに。。。

しかし、「広域申告センター」ってのは楽なもんだと実感

平日に行くしかないのかと思っていただけに非常に助かった。

ついでにアンケートにも「広域申告センターってどうよ?」的な質問があったが、
非常に助かったので続けてほしいと記入しておいた。

まぁ、何はともあれ無事に終わってよかった。。。
修正申告が発生しませんように。。。

木曜日, 2月 12, 2009

javaDBでコードセットUTF8

DB2と違ってUSING CODESETなんて使えるわけではなく、

そうすりゃいいんだ?と思いながらApache Derbyのサイト内検索でderby.ui.codesetというのを発見した。

しかし、このオプションってij起動時に与える拡張パラメータ -Dhogehoge系のパラメータとして準備してやれば良いらしい。

でもって試してみた。

CLASSPATH周りは省略して
java -cp $CLASSPATH -Dderby.ui.territory=ja_JP -Dderby.ui.codeset=UTF8 -Dij.protocol=jdbc:derby: org.apache.derby.tools.ij
で呼び出せばいいみたい。。。

derby.ui.codesetでUTF8にしたらコンソールが文字化けするなんてのがネットに載っていたがそんなこともなくすんなり動いた。

ただし、これで本当にDBのコードセットがUTF8になっているかは動かしてみないことには何とも言えないなぁ~

一応、Derbyのサイト内での説明では-Dderby.ui.territoryは省略すればローカルのロケールになるとか書いてたと思うが、
如何せん、自分の知らないところで色々設定されると細かいところまでわかんなくなってしまうので、
ちょこちょこ細かいところも見ていこうとおもう。

後はjdbc-odbcを使ってA5:SQL経由で動かすことができるか実験だ!

javaDBのメモ

DerbyではなくJavaDBです。 CentOS上でXサーバ無しで色々しようとしていたので
あくまで自分用のメモレベル

リモート端末上でコマンドラインだけでijを動かしてcreateするまで
  1. DERBY_HOMEを設定する(場所は/opt/sun/javadb)
  2. ijを起動(場所は$DERBY_HOME/bin/ij)
  3. ij>connect 'jdbc:derby:~/test;create=true;';
  4. ij>select current date from sysibm.sysdummy1;(DBができてるか確認)
ij上でDBを作るときにダブルクォートではシングルクォートを使わないと実行できない。

これでDBコネクションでのexecute arround methodなパターンの実験ができそうだ。

日曜日, 2月 08, 2009

groovyの正規表現

忘れないようにメモ
こっそり、勉強しているGroovyなんですが

いきなりハマりました。。。

正規表現のオペレータは
==~
間にスペースを入れてしまうと実行できない。。。

スクリプト言語なんですぐに実行できるですが、
何故か一致しない。。。
// これは動く
println "potatoe" ==~ /potatoe/
// 最初にこう書いてハマった。。。
println "potatoe" == ~ /potatoe/
正直、最初はなんで結果がfalseでかえってくるの?と思ってたんですが、
よくよく読んでみると==~でひとつのオペレータなんだそうだ。

hoge == ~ /hoge/
しかし、動いてしまうってのもちょっと怖いなぁ~
hoge == ~だけで評価されてんじゃないのかな?
そうなると残された
/hoge/
はどうなるんだ??行方不明??
しかし、その行方不明になってるぽいものも省略したり、改行したりしてもコンパイルエラーになるようだった。。。

しっかり評価してくれないのにコンパイルを通ってしまうのなんてありなのかな??

木曜日, 1月 29, 2009

alt=json-in-scriptリクエストのjson内のlink[]内容の順番が変わってた。。。

俗にいう"New Blogger"改造(その2)アーカイブのカレンダー化
で紹介させてもらったアーカイブカレンダーなんですが、
さっき、見たらjson内のfeed内の出力順序が変わってた。。。

しっかり調べればorderby=publishedとかで。
出力順を制御できるかも知れないが、

残念ながら時間がないんで、
対応方法だけ。。。
コールバックで呼び出すfunction cReadArchiveの中身をいじります。
22行目をvar link = entry.link[4].href;に変更します。
元はlist[0].hrefが投稿内容だったんですが、今はコメントのURLになってます。。。
function cReadArchive(root){
// Check for Leap Years
  if (((calYear % 4 == 0) && (calYear % 100 != 0)) || (calYear % 400 == 0)) {
      fill[2] = '29';
   }
  else {
      fill[2] = '28';
   }
    closeStatus();
    document.getElementById('lastRow').style.display = 'none';
    calDis = document.getElementById('calendarDisplay');
    var feed = root.feed;
    var total = feed.openSearch$totalResults.$t;
    var entries = feed.entry || [];
    var fillDate = new Array();
    var fillTitles = new Array();
    fillTitles.length = 32;
    var ul = document.createElement('ul');
    ul.id = 'calendarUl';
    for (var i = 0; i < feed.entry.length; ++i) {
      var entry = feed.entry[i];
      var link = entry.link[4].href;
      var title = entry.title.$t;
      var author = entry.author[0].name.$t;
      var date = entry.published.$t;
      var summary = entry.summary.$t;
      isPublished = date.split('T')[0].split('-')[2];
      if(isPublished.charAt(0) == '0'){
         isPublished = isPublished.substring(1);
         }
      fillDate.push(isPublished);
      if (fillTitles[isPublished]){
          fillTitles[isPublished] = fillTitles[isPublished] + ' | ' + title;
          }
      else {
          fillTitles[isPublished] = title;
          }
      li = document.createElement('li');
      li.style.listType = 'none';
      li.innerHTML = ''+title+'';
      ul.appendChild(li);

      }
   calDis.appendChild(ul);
   var val1 = parseInt(calDay, 10)
   var valxx = parseInt(calMonth, 10);
   var val2 = valxx - 1;
   var val3 = parseInt(calYear, 10);
   var firstCalDay = new Date(val3,val2,1);
   var val0 = firstCalDay.getDay();
   startIndex = val0 + 1;
  var dayCount = 1;
  for (x =1; x < 38; x++){
      var cell = document.getElementById('cell'+x);
      if( x < startIndex){
          cell.innerHTML = ' ';
          cell.className = 'firstCell';
         }
      if( x >= startIndex){
          cell.innerHTML = dayCount;
          cell.className = 'filledCell';
          for(p = 0; p < fillDate.length; p++){
              if(dayCount == fillDate[p]){
                  if(fillDate[p].length == 1){
                     fillURL = '0'+fillDate[p];
                     }
                  else {
                     fillURL = fillDate[p];
                     }
                  cell.className = 'highlightCell';
                  cell.innerHTML = '<a href="/search?updated-max='+calYear+'-'+callmth+'-'+fillURL+'T23%3A59%3A59'+timeOffset+'&updated-min='+calYear+'-'+callmth+'-'+fillURL+'T00%3A00%3A00'+timeOffset+'" title="'+fillTitles[fillDate[p]].replace(/"/g,'\'')+'">'+dayCount+'</a>';
                 }
              }
          if( dayCount > fill[valxx]){
             cell.innerHTML = ' ';
             cell.className = 'emptyCell';  
             }
          dayCount++;  
         }
      }
    visTotal = parseInt(startIndex) + parseInt(fill[valxx]) -1;
    if(visTotal >35){
        document.getElementById('lastRow').style.display = '';
       }
  }

CentOSにDB2 v9.5 Express-C+NLpackをコマンドでインストール

忘れないようにメモ
とりあえず、IBMから
  • db2exc_950_LNX_x86.tar.gz
  • db2_v95_linuxia32_nlpack.tar.gz
をダウンロードしてくる
  1. ユーザーを作成
  2. db2icrtでインスタンスを作成
  3. db2set DB2COMM=tcpip
  4. db2set DB2DAS00 DB2COMM=tcpip
  5. iptableでポートを開けとく
  6. db2start
とりあえず、この状態でdb2コマンドを打つと動いてくれる
ただし、DBはまだ作ってないのでconnectなんてすればエラーが。。。

ここまでは、ネットを探せば見つかるんですが、

問題は言語パック(nlpack)の適用方法で、
僕の環境はX Windowを入れてないので解凍したディレクトリにあるdb2setupを実行しても
DISPLAY 変数が正しく設定されていません。 DISPLAY 変数が正しく設定されていて、指定されたディスプレイのウィンドウがオープンできるように許可が正しく設定されているかどうか確認してから、コマンドを再実行してください。
てな具合に叱られる。。。
まぁ、そりゃそうだな

とりあえず、gettingstartを呼んでみるとサイレントインストールモードがあることを発見!
# ./db2setup -r 応答ファイル これで良いらしい。

問題は、応答ファイルはどんなものなのか?

nlpack/db2/linux/samples/db2nlpack.rsp

の内容をいじるだけでOKでした。

あとは CREATE TOOLS CATALOG スキーマ名 データベース指定 でツールカタログ表を作成して

CREATE DATABASE hogehoge ・・・

まですれば後はご自由にってな感じだね
カレンダーがシンメトリーちっくな模様になった♪

failed to read qemu headerのときのメモ

かなり久々。。。 忘れないようにここに書きこんでおく。 ちょっとした手違いで libvirtでイメージを起動しようとすると failed to read qemu header なんておっしゃられて起動しない。。。 vmwareserverを使って...