Microsoft Arc Mouse に変更です

使っていた Microsoft のでっかいマウスのラバー部分がでろでろになってきましたので、マウスを変更しました。

手が大きいのもあって、大きい重いマウスが好みだったりするのですが Microsoft Arc Mouse がなんだかかわいかったので、そちらにしてみました。 真っ向から傾向が違いますが、たまには。 🙂

Microsoft Arc Mouse ブラック ZJA-00017

全く新しい洗練された外観に、優れた携帯性と快適な操作性をあわせ持った、スタイリッシュなレーザー方式マウス

こんなのです。 Ubuntu 9.10 で動作させていますが、特に問題はなさそう。 電池は単四2本で軽い軽い。

IMG_0078

持ち運び用に折りたためます。

IMG_0080

持ち運びポシェットがついててよいですなぁ。 折りたたむと電源が切れるので、PC 起動中もお掃除もできるという特典がもれなくついてまいります(笑)

使い勝手は、最初指の置き場所に困りましたがちょっとしたら慣れました。 ホイールがちょっとかちゃかちゃうるさいかな。 引っかかりがあるホイールなので中ボタンは押しやすいです。  🙂

なお、サイドボタン(戻る)はぼくの手はうまく押せません。 ブラウザアドインとか Opera とかの右左押しで運用対処を(笑)

カラーバリエーションあり。 普通使いも携帯もできるマウスを探している方は要チェックや!

Excel ファイルの操作を Groovy から行う

あちこちの現場で、エクセルファイルから create table をつくったり Bean をつくったりするマクロをみかけます。 ぼくもつくったことありますが、こういうのってワンショットで一回つくったら大抵もう使わないプログラム。

エクセル VBA でつくりますが、ぼくら VBA ってあんまり使わないのですぐ忘れてしまい、あれ文字列の連結 & だっけ?とか、 ; つけてすまったー! とか、たくさんのファイルを処理するとぱかぱかエクセルあがったりしてうーん、とかいろいろ、、、というわけで Java からエクセルを読み込む XLSBeans を試してみました。

実は VBA も RANGE オブジェクトつくって Iterator っぽくまわせたり結構やるなって思う部分もあるのですが、やっぱり書き方的に慣れてない部分も多々あります。 で、Java って思うのですが、ワンショットにしては適当にかけない部分もあり、、ってことで今回は Groovy から XLSBeans を呼び出してみました。 🙂

XLSBeans – Project Amateras

ExcelとJavaBeansをJava 5のアノテーションでマッピングするためのライブラリです。

MYCOMジャーナルに簡単な紹介記事が掲載されています。まずはこちらをご覧いただくとXLSBeansがどのようなものかをご理解いただけるのではないかと思います。

XLSBeans – ExcelをJavaBeanに自動マッピング!

とりあえず、XLSBeans と Groovy を使えるようにしてこんな感じに・・・。

xlsbeans01

Excel をつくります。 OOo で xls 形式にしましたが問題ありませんでした。

たとえば、画面定義。 本物は 100 とか 200行オーダで、もっといろいろ書いているもんですが、とりあえず。 これの struts FormBean をつくるようなイメージで。(あくまでイメージね)

xlsbeans02

で、ソースをかきます。 Groovy なので単一モジュールで、main もなく、がりがりいけます。 試験的に漢字変数とかも使ってみました。 なんかこわい(笑)

import net.java.amateras.xlsbeans.*;
import net.java.amateras.xlsbeans.annotation.*;
 
// エクセルファイルを定義に従って読み込む
sheet = (new XLSBeans()).load(
    new FileInputStream("xls/項目定義.xls")
    , ExcelSheet.class);
 
// 定義からデータ呼んでファイル出力
new File("xls/test.txt").withPrintWriter { w ->
    for(画面項目 in sheet.画面項目行) {
        upper = 画面項目.物理名[0].toUpperCase();
        upper +=
            画面項目.物理名[1..画面項目.物理名.length() - 1]; 
        str = """
            // ${画面項目.論理名}
            private String ${画面項目.物理名};
            
            private String get${upper}() {
                return ${画面項目.物理名};
            }
            private void set${upper}(String str) {
                ${画面項目.物理名} = str;
            }""";
        w.println(str);
    }
}
 
// 以下エクセルの定義
 
@Sheet(name="Sheet1")
class ExcelSheet {
    @HorizontalRecords(tableLabel="画面項目定義"
        , recordClass=画面項目.class)
    public List<画面項目> 画面項目行;
}
 
class 画面項目 {
    @Column(columnName="論理名")
    public String 論理名;
    @Column(columnName="物理名")
    public String 物理名;
    @Column(columnName="タイプ")
    public String タイプ;
    @Column(columnName="長さ")
    public String  長さ;
    @Column(columnName="出力編集")
    public String 出力編集;
}

これを実行するとエクセルを処理して内容を吸い出して整形したテキストファイルができあがります。 サンプルでも JavaDoc くらいつけろですか。 😀

// タイトル
private String title;
 
private String getTitle() {
    return title;
}
private void setTitle(String str) {
    title = str;
}

・・・。 ・・・。 まちがって getter / setter を private にしてしまいました。 まぁサンプルということでご愛敬。。(笑)

さて、最初エクセルを取得する Bean を Groovy のプロパティをつかって public をつけずに定義していたら、うまく値が入りませんでした。 Groovy でも public String hoge; とかするのが正解のようです。

VBA で処理すると座標系でやってしまいがちで、これが結構数えたり面倒だったりするもんですが、XLSBeans を使うとオートで Bean にマッピングしてくれるので大変便利です。 エクセルのあちこちの位置に置いてみたりしてみましたが、うまく検索して場所を探してくれるようです。

Groovy から呼ぶと、public static void main() いらなかったり、ヒアドキュメント + GString のうめこみ変数とか、ファイルのオープンクローズとか不要とか、文字列操作とかいろいろ楽かもですね。 ぼくは慣れてないので、まだまだ簡単にかく方法あると思います。

てなわけで、Eclipse にプロジェクトひとつ準備しておくと何かのおりに使えるかもしれません。 🙂

Ecipse PDT 3.5 + xampp + xdebug を使った PHP デバッグ

たまに WordPress の不具合などでご質問をうけるも、初見のプラグインとかもすぐ直しちゃって「なんでそんなにすぐ分かるの?」と聞かれることありますが、タネを明かせばプログラムのおかしそうなところにデバッグブレイクひっかけて動作を見ているからです。 え?この軟弱もの? いいのいいの(笑)

プログラミングの難しい部分の一つは動作が一瞬で終わることにあると思います。 普通は机上というか頭の中で考えて、ここの if はこーだから、ここに入って、値はこーなるはず、、なんてやるわけですが、面倒なときはコンピュータに評価させた様子を1行ずつみていく。 これがデバッガの役目です。

てなわけで、現在の xampp 最新版 1.7.3 と Eclipse PDT を使ったデバッガの設定方法の紹介です。 前書いたのは設定方法が古くなってしまっていますが、とりあえず操作方法などもあるので併せてどうぞ。 🙂

hiromasa.docs o) – Eclipse PDT + XAMPP で WordPress の開発環境をつくる (3)

Eclipse PDT と XAMPP に入っている xdebug モジュールを利用すると、実行中のプログラムを任意の位置で停止させ、ソースコードとあわせて1行ずつ動作させるステップ実行や、変数の値の監視や書き換えが行えるウォッチなどのいわゆるデバッグ機能を使うことができるようになります。

まず、xampp の PHP に xdebug というモジュールを読ませる必要があります。 現在の xampp-1.7.3 のベーシックパッケージ(lite版には入ってないようです)には xdebug が同梱されているようです。 キウイ!

昔、Vista で xdebug 動作させると Apache ごとおちるという問題がありました。 今回は Windows 7 と xdebug-2.0.6 でやっていますが大丈夫そうです。

というわけで、php.ini にそれを読ませる設定をしてあげます。

C:\Develop\xampp-win32-1.7.3\php\php.ini

xampp インストールディレクトリの php\php.ini を開きまして、

zend_extension = "C:\Develop\xampp-win32-1.7.3\php\ext\php_xdebug.dll"
xdebug.remote_enable = 1

zend_extention の php_xdebug.dll のコメントを解除。 xdebug.remote_enable = 0 の行があるので、コメントを解除した上で 0 を 1 にします。

これで、準備完了。 Apache を xampp コントロールパネルから再起動して phpinfo をみて xdebug があればOKです。

xdebug01

次は Eclipse PDT の設定。

WordPress などの PHP プロジェクトを開いた上で、実行 –> デバッグの構成。

xdebug05

左ペイン、PHP Web ページを選択し、ペイン上アイコンで新規作成。 で、ここがポイント。

xdebug04

ファイルと書いてあるところに、WP の index.php を指定。 そして、URL の部分をそのファイルをブラウザでみたときの URL と完全一致させます。 デフォルト localhost になっていますが、もしブラウザ http://127.0.0.1/ でアクセスしているときは、PHP Server 欄の構成で localhost を 127.0.0.1 に変更してください。

実ファイルの場所と、ブラウザでの URL の対応を完全に設定するところがキモです。 あっていないとブレイクしてくれません。

でもってできたら、ウインドウ->ビュー->その他 あたりから「デバッグ」というビューを表示しておきます。 デバッグ中であるとここにデバッグスレッドの様子がでますので、開始、停止ができます。

xdebug03

準備ができたら、ソースコードのブレイクしたい位置にブレイクポイントをはります。 詳しくは前述の昔の記事をみてみてください。 で、実行構成からデバッグボタンをおせばブレイクするハズです。

xdebug02

あとは、F5、F6、F8 での行すすめや、ウォッチでの変数閲覧などをたのしんでいただければ。 🙂

管理画面などのプログラムなどログインを伴うときは、セッションの関係でうまくブレイクできないときがあります。 このときは以下の記事を参考に URL をいじってデバッグセッションつけてあげてください。

hiromasa.another o)» Blog Archive » wp-jrelated 1.52 リリース (関連取得不具合修正)

動きしか見てないですが、たぶん WP の認証によりデバッグセッションの cookie がきえてしまうのがとまらない原因です。 なので GET でつけてあげて再設定すればこの後は何もしなくてもとまるようになります。 :-)

この辺 Java のリモートデバッガに比べればおもちゃっぽい部分もありますが、それでも十分実用になっていると思います。

というわけで、

power source » WP ローカル環境の構築 – XAMPP+Eclipse PDT

今回インストールした XAMPP Windows版 1.7.3 には Xdebug 2.0.6-dev が入ってるので、このまま使えそう。。?

たぶん、いけそう! 🙂