QRコード

QRコードを出力するプログラムを頼まれたので少し調べる。QRコードを出力できるフリーのプログラムはいろいろあるようだ。perlだとGD::Barcode::QRcode が使い易そうだ。このページが参考になる。VisualBasicだとDotNetBarcode が使えるのかな?こちらは、まだ試していない。

PHP ポケットリファレンス

PHPポケットリファレンス購入。なんか、似たような関数を探すのに疲れる。

[改訂版] PHP ポケットリファレンス (Pocket reference) [改訂版] PHP ポケットリファレンス (Pocket reference)
大垣 靖男


Amazonで詳しく見る
by G-Tools

電光掲示板用ActiveXコントロール

秋月電子のLED電光掲示板の表示をVB(VisualBasic)等から自由にコントロールできれば面白かろうと思い ActiveXコントロールを作ってみた。

作ってみると、苦労はしたが、使うのはとても楽で面白い。VisualStudio等でプロパティの値がすぐに見れて、変更できるのも楽しい。

ビットマップやWindowsのフォントを使えるともっと楽しかろうと機能を追加した。VBだとビットマップに画面と同じように描画できるので、それをそのまま電光掲示板にも表示できるようになった。

ここでリリースしようと思ったが、ビットマップや自由なフォントが使えます、でもVBのプログラムが必要です、というのもあんまりな気がしたので、ビットマップや自由なフォントをつかえるアプリも作って提供することにした。

この新しいアプリと古いC++で書いたアプリの両方をメンテするのは手間だなので、新しいアプリに必要な機能をすべて載せて、古い方と置き換えることにした。

ということで、eepromへの書き込み機能をActiveXコントロールとアプリに実装した。でまぁあとはその説明書を書いてと時間がかかったけど、やっとリリースしました。ここにありますので、使える人は使ってやってみてください。ActiveXコントロールの説明はまだできていません。ここのは内容が古いです。

問題があったらこの掲示板で、やさしく報告してください。

C#のアプリは起動が遅い

C#で作ったプログラムの起動は、C++で作ったプログラムと比べてちょっと遅い。一息待たされる。今までは、ずっと開発環境(VisualStudio2008)から起動していたので気が付かなかった。

Javaのアプリと同じわけだけど、ちょっと残念。早くこの辺の話が改善されないだろうか。JavaだったらVMが動きっ放しであればいいと思うのだけど。.NETでも同じような話だと思うのだが。

loggerにprintf

loggerをprintf形式で使いたくてこんなクラスを書いてみた。

import org.apache.log4j.Logger;
public class NLogger {
  private Logger logger;
  protected NLogger(String name) {
    logger = Logger.getLogger(name);
  }
  public static NLogger getLogger(Class c){
    return  new NLogger(c.toString());
  }
  public void debug(String fmt, Object ... args){
    logger.debug(String.format(fmt, args));
  }
}

EclipseでJavaプログラミング

久し振りにEclipse上でJavaのプログラムを書く。VE(VisualEditor)で GUIの部品のクラスを作成。VEの邪魔にならぬよう、そのクラスはあまりいじらず、外側から操作する。

しばらく VisualStudio2008でC#のプログラムを書いていたので、そのスタイルを引き摺っているのが面白い。C#でもそんな感じのクラスを良く書いている。

コードアシストの動作がのろいけど EclipseのほうがVisualStudioより使い易い。SwingのJFileChooserはフレキシブルでいいが、見た目があまり良くない。SWTとか使いたくなる。SWTで作っても良かったんだよな。

ビューティフル・コード届く

金曜日に博多のジュンク堂で購入し、飲み会で忘れて来たビューティフル・コードが宅配便で届く。帰宅後すぐに気が付き、店に電話をし、着払で送ってもらうようにお願いした。ありがとうございます>坐・和民 博多駅前店の店員さん

ビューティフルコード ビューティフルコード
Brian Kernighan Jon Bentley まつもとゆきひろ


Amazonで詳しく見る
by G-Tools

猫でもわかるC#プログラミング

猫でもわかるC#プログラミング (猫でもわかるプログラミングシリーズ)
粂井 康孝


Amazonで詳しく見る
by G-Tools

C#のことをJavaモドキと呼んでいても、詳細がわからないので本屋に適当な本を探しに行く。(予想通り?)良さそうな本は無かったが猫でもわかるC#を発見。そうだ、これがあった。これならWebで読める。

とりあえずC#のデリゲートが気持ち悪い。JavaみたいにListenerを使ってもらいたい。anonymous inner classは使えるのかな?

C#でメソッドへの引数の参照渡しができて、複数の値を戻せるのは嬉しい。

C#に手を出す

電光掲示板ActiveX用サンプルプログラムを作成中。文字列の処理をする必要があるので、Visual BasicよりJavaライクなC#の方が文法が軽くて良いんじゃないと、初めてC#に手を出す。

Visual Studioの力を借りて書いて行く。コントロールは .Net FrameworkでVisualBasicと共通だし、ほとんどJavaだし, 問題なし。

現時点で感じているJavaと比べたC#の特長は、Windowsべったりであること。このためコントロール類も豊富だし、動作も速い気がする。また機能拡張が易きに流れてきれいでない面も多々ありそうな気がする。

.netの RegexとMatchを使って簡単なパーザのようなものを書く。Regexにはmatch( string, int) という文字列の途中から一致させるメソッドがあって便利だ。JavaのMatcherにもあったっけと調べたら、find( int) というメソッドがあった。知らんかった。途中から一致させる場合、正規表現で先頭と一致させるには”^”ではなく”\G”を使うらしい。

elisp プログラミング

やさしいEmacs‐Lisp講座 やさしいEmacs‐Lisp講座
広瀬 雄二

カットシステム 1999-01
売り上げランキング : 343216

Amazonで詳しく見る by G-Tools

ホームページ作成支援用にWindowsのプログラムを作成した。コマンドラインから起動して、ペーストバッファに画像があれば適当なファイルにpng型式で書き込むというもの。指定があれば、サムネイルファイルも書き込む。

このプログラムをEmacs(Meadow)から起動し、カーソル位置に画像を呼び出す適当な文字列<img src="..."> とかを挿入するelisp(Emacs Lisp)のプログラムを作成。これで、キー一発で画像を張り込める。

elispプログラミングは不馴れだが、やさしい Emacs-Lisp講座 を読みなおしたり、使いそうな関数を書き出たりして、だいぶ楽にプログラムできるようになった。

こんな感じ

emacs + make + gdb

久し振りに emacs + make + gdbで コーディング+デバッグ。VisualStudioにも随分慣れたと思ったが、emacs + makeの方が何倍も効率が良い。

ビューティフルコード

4月23日発売予定の書籍、ビューティフルコード。672ページで3,990円。思っていたより厚い本のようだ。じっくり読んでみたい。4月11日発売予定のハイパーフォーマンスWebサイトも面白そう。

VBな日々

VisualBasicのプログラムで、ウィンドウリサイズ時の部品のサイズと位置調整を一部手作業(Resizeハンドラ)で行なっていたのだが、うまく行かないケースが発生。

こんなことを手作業でやる事自体が変。レイアウトマネージャの仕事だ。もしかして、VB.NETにもレイアウトマネージャがあるかもと、ツールボックスのコンテナの中を探すと、FlowLayoutPanelとTableLayoutPanelという聞いたような名前のものがある。TableLayoutPanelはきっとGridBagLayoutに違いない。使ってみるとそのとおり、まったく同じ感覚で使うことができた。

VisualStudioでレイアウトマネージャが使えるとは …VEと違いが無くなって来る …まぁ、めでたい。.NET FrameforkはJavaを参考にしているようで、Javaの知識がかなり通用する。

VisualBasicプログラミング

VisualBasicでコーディング中。なかなかVisualBasicには慣れないが、以前よりは効率よく書けている気がする。タブやらツリーやらリストやらのコントロールを貼り付けたウィンドウを簡単に動かせるのは便利。

簡単といってもオブジェクトがあってイベントが飛び、名前空間をインポートして自分でクラスも定義できるという世界なので、どこがBasicかとも思うが、文法自体には何十年か前に憶えたBasicの文法が確かに残っている。簡易言語の正統ということか。

JavaっぽくC++ (3)

C++で初めて try/catch/throw を使う。あたりまえだが、ちゃんと動いた。