DevExpress でコントロールのローカライズの作業が進んでるみたい

ローカライズの作業が進んでるみたい

そういえば、DevExpress からベータのご案内がきてたなーと、検索かけてみたら Twitter のアカウントが出来ていて*1Big in Japanで、いつの間にか DevExpress のローカライズのお話と、公式のお話がいろいろ。

実際業務で使っていて、一番気になる部分の、お客さんが触る実行時のコントロールに対するリソースのローカライズは全部翻訳完了となっているので*2、ほかの部分は絶対必要ってほどでは無いにしろ、いろいろ目出度い。

個人的には XtraGrid のローカライズ作業よりも、Refactor!CodeRush の設定画面はローカライズがされると嬉しいかもしれん。

なんだかんだ言うても

ローカライズされると、いろいろお勧めもしやすくなるし、アレルギーの人がいても安心かな。

あとは、少し日本語のページがあって、デザイン変更時に全部無くなったのを考えると、ホームページの方も日本語になってると、さらにお勧めしやすいなあ。各種コントロールの分だけでも。

IDE Tools

Refactor! はインターフェイスがものすごく独自で、初めは混乱するけれど、使うとすぐに元は取れるので、オススメ。CodeRash もコード書いてる途中にインタラプトされまくるので、初めはかなり混乱するけれども、どうにも気に入らない機能を OFF にしていけば良いし、そのうちどれが VisualStudio の機能だったか馴染みも良い。でも、無印 VisualStudio が使えなくなってる気がするので、ちょっと怖い。

DevExpress社コントロールの日本語リソース

DevExpress WinForms

Refactor!つながりで少し前から WinForms を利用しているのだけれど、毎回日本語リソースの場所を忘れるので、メモ代わりに

http://www.devexpress.com/Support/Center/KB/p/A421.aspx

ところで使い勝手は?

インフラジスティックスの物とはあまり比べたことが無いのでわかんない。細かいところでは、InputManの方が日本人に合う。Gridはお気に入り。

使ってみたいな

30日のトライアル版があります。.NET UI Controls for Developers of Mobile, Desktop, Web & Reporting Applications | www.DevExpress.com に XtraEditors 部分+αのFree版があります。

その他

Refactor!は UI に変な癖があるけれど、良いですよ。また紹介できればと思います。

Teambox つぶやきからタスクに変換

デザインが変わったな−。と思っていたら通常のつぶやきから、タスクに変換できることに気がついた。これって前からあったのかなあ。

アイディアからタスクにする

  • 誰かがアイディアをつぶやく
  • そのスレッドでやりとり
  • それって結構良いんじゃない?
  • そのままタスクに

なんか、育てる感が凄く良い。ぐいぐいと進んでいく。Redmineも相変わらず併用中だけれど、未完了チケット、マイルストーン、ロードマップ、バーンダウンと、進行が決まっていて、作成中のものに関しては、良い感じ。なんとなく、使い分け出来てる、のかなあ。

誰かに伝えたいつぶやきは

@をつかったTwitterと同じ形式でつぶやくと相手にメールがいくよ。

Slackwareソフトウエアパッケージの作り方

ソースからインストールするときもパッケージを作ってから入れたい

てなことを、ずいぶん昔に思ってそのときは、google先生にお尋ねし無事完了だったわけだけれども、遙か昔のことで忘れてもた。

てことで、再度google先生にお伺いを…、たてようにも何で検索したら良いかすら忘却の彼方へ。

MAKEPKG(8)

pkgtool内の makepkg がパッケージ作成ツールでした。

MAKEPKG(8)                                                                                                                                                                MAKEPKG(8)

NAME
       makepkg - make Slackware packages.

SYNOPSIS
       makepkg [ -l, --linkadd y|n ] [ -c, --chown y|n ] packagename

DESCRIPTION
       makepkg  creates a new Slackware compatible package.  The package is constructed using the contents of the current directory and all subdirectories. If symbolic links exist,
       they will be converted to script code to recreate them when the package is installed. This code will be appended to the primary installation script ( install/doinst.sh  )  ,
       or,  if  that script does not exist it will be created with those contents.  The package will be written out to the file packagename which should be the full name, including
       the extension (usually .tgz).

てことで、/var/log/packages にログを残すためにも、自前パッケージを作成してしましましょう。

パッケージを作成する

準備
tar xzvf hoge-0.1.tar.gz
./configure
make
パッケージ作成用作業フォルダにインストー
make DESTDIR=/tmp/hoge-0.1 install
パッケージ作成
cd /tmp/hoge-0.1
makepkg ../hoge-0.1.tgz
インストー
cd /tmp
installpkg hoge-0.1.tgz
cat /var/log/packages/hoge-0.1

まとめ

自前でビルドしたソフトウエアって、ビルドしたディレクトリは残してはいるものの、どれを入れたか忘れちゃうときもあるので、パッケージ作ると後でわかって便利よね−。

Teambox

Teambox すごく良い

スレッドフロート型の掲示板とつぶやきと、タスク管理が一個のタイムラインにずらーっと並ぶ。
タスクはストーリー、タスク、といった風合いで名前はひとまとめにタスクとなっているけれども、ガントチャートではストーリーごと。カレンダーではタスクごとといった趣。
残念ながら Basecamp は未体験なので、比較できない。

凄く速い

つぶやいてもあがる。書き込んでもあがるし、タスクもあがる。メールでウォッチしていれば流れが速くて見落とすってこともないし、デフォルトでは全員がウォッチャー。
誰かがアクションを起こせばあがるので、アクティビティも見えやすい。
チケットが並んでいて地道に消していく感じじゃなく、終わったでー、出来たでー、って感じ。BTSじゃないわなあ。

日本語

アレルギー気味の人もいるので。でもタスクなり、チケットのステータスは英語の方が雰囲気出るんだけれどなあ。

Redmine

併用中。

Redmineを食らう

Trac+Subversionなんぞは…。VSSでいきますよ、もちろんすべての文書はエクセルです。ががががが。

Redmine+Mercurialなんぞは…。うちCVSしか使ったこと無いんで、あ、エクセルとがんすけ入ってるでそれで。ががががが。

Redmineインストー

Redmineのインストール — Redmine.JPに書いてある通り。

  1. Ruby
  2. SQLite3
  3. RubyGems
  4. Ruby on Rails (# gem install rails)
  5. sqlite3-ruby (# gem install sqlite3-ruby)

Rubyが初見なので、お作法的なことで悩んだ。RubyGemsってなんだ?。Railsは、Radmineのソースパッケージに入ってた。これって、スクリプト…だから、/usr/local/redmine-1.0.0 -> /usr/local/redmine 的にえいやっと入れてしまえばええんかのぅ。rakeってはじめて知ったわぁRakefileでrakeかぁ。ってところで悩む。もう、みんな Ruby だかららくちんぽんと入れれるものなんかいねぇ。

Ruby

初めてのインストール。tgzから、いつもの呪文で。

> ./configure
> make
> make install
SQLite3

前に入れた。おお勧めパッケージがソース1本で、コンパイル時間がめちゃめちゃかかったのがびっくりした。

RubyGems
ruby setup.rb

で。

Ruby on Rails

Redmineの中に入ってた。この類のものはパッケージ同封がやっぱり良いな。

sqlite3-ruby

gemで取得。

rack

構成にも依るのだろうけれど、gem から。バージョン指定しないとだめだったので、バージョン指定方法も一緒に探した。結局

gem install rack --version '= 1.0.1'

Redmineセットアップ

これも、Redmineのインストール — Redmine.JP通り。

RAILS_ENV=productionがわからなかった。これは、Railsの設定みたい。とりあえずは production で進める。

最後に

特に Ruby 不慣れな点以外は難しいことは無し。使ってなんぼなので、Apache とか考えずにとりあえず、入れきってしまうのが良いかも。

Installerクラスをデバッグする

死んでました。やっと復活。

なんでデバッグする必要が

これは、Configurationのシリアライズが、想像通りにいかなかったから。はじめは素直に Properties.Settings.Default.Save() で期待通りの動作をせず、ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal) でも予想外の動作、何でだろうってことで。

デバッガを起動させる

インストーラクラスってデバッグできへんの?みたいなFAQがMSのサイトにあったので、内容を見てみると

  • System.Diagnostics.Debugger.Launch 使う。
  • MessageBoxデバッグしてみたら。
  • インストーラ ツール (Installutil.exe)使うと良いよ。

まあ、MessageBoxデバッグは、printfデバッグと一緒でまあ、そうとして、デバッガを起動して、プロセスにアタッチっていう方法があったのね。
オーバーライドしたInstallメソッドの先頭で

System.Diagnostics.Debugger.Launch();

してやると無事にデバッガ起動*1

で、実際デバッグしてわかったことは、msiexec.exe からアセンブリが起動されているから、設定ファイルのパスは

アプリケーションデータ\Microsoft_Corporation\DefaultDomain_Path_hogehoge\version\user.config

ってなるってこと。あー。と

実際場所を見てみると、ばっちりSetupプロジェクトのユーザーインターフェイスから入力したデータが、無事にシリアライズされていましたとさ。
かなり以前に作成したセットアップは、実行されているアセンブリのパスに、XMLとしてパースし、App.configを書き換えていたので*2、今回はお作法通りConfigurationでと思ったのが運のつきで、結局 Google 先生に再度お伺いを立てることに。

結局問題は未解決となりました。

*1:何回もデバッグするなら、最後に InstallException を発生させるとインストールに失敗するので楽かも

*2:.Net 2.0 以前