AquaSKK 4.2 RC1

リリースしました。

http://sourceforge.jp/projects/aquaskk/releases/

▽追加・改善された機能
・最新の Xcode に対応

▽不具合修正
・skkserv で「localhost 以外からの接続を拒否する」が保存されない
Eclipse で文字種切り替え時にゴミが挿入される

2ch を見てはいるのですが、忍法使えずコメントできない状況が続いています。もう 2ch は無理だ。。。

かな規則を変更してもすぐに反映されないという不具合を見かけたのですが、こちらでは再現できていません。100% 再現するような条件がわかれば、ぜひ教えてください。

その他不具合情報についても、引き続きよろしくお願いします。

AquaSKK 4.2 beta 3

リリースしました。Mac OS 10.7 以降のみサポートしています。

http://sourceforge.jp/projects/aquaskk/releases/

▽追加・改善された機能
Java アプリケーションで文字種切り替え時にゴミが挿入される
・skkserv 辞書の堅牢性向上

▽不具合修正
・最新の SDK に合わせてビルド設定を更新
・各種コンパイル警告への対応
・TSM 版互換の入力メニューでTISInputSourceIDが全て同じになっている(チケット #22894)
・「ゎ」をトグルカナ変換しても「ヮ」にならない(チケット #29914)

今回は大分ブランクがあったので、リリース手順をすっかり忘れていました。これで大きな不具合が出なければ、RC を用意せずにリリースしてもいいかと思っています。その後はどうしようかと悩み中。

github に移行して引退、というのもありかなぁとか思ってます。

libc++ の品質

期日前投票を済まし、この週末は AquaSKK のβ版をリリースすべく鋭意努力していたのですが、断念しました。

結論から書くと、libc++ を使おうとしてめげました。あともう少しのところまで行ったんですけどねぇ。

ひとまず、やった作業のメモです。

  1. xcode のバージョンアップ
  2. 不具合修正:EUC-JP の全角円マークを UTF-8 に変換すると、半角バックスラッシュになる(どこかの blog でみかけました)
  3. 不具合修正:数値変換ができない(AquaSKK スレ #176 さんどうもです!)
  4. 不具合修正:skkserv 外部辞書の堅牢性向上
  5. 不具合修正:Java アプリで文字種切り替え文字が挿入される
  6. コンパイラを clang++ に変更(-std=c++11)
  7. ライブラリを libc++ に変更(-stdlib=libc++)
  8. 静的解析の実行と指摘事項の潰し込み
  9. 単体テストの実施

libc++ で遭遇した問題は以下の二つ。

  • istringstream から int を読めない("1+2" みたいな時に 1 を読めない)
  • 再起的な map を宣言できない(class A の中で、map を持てない)

一つ目のほうは libc++ のリポジトリを確認しておおよその目安はつけました。strtoll_l を呼び出した後、戻された endptr が文字列終端と一致していない場合にエラーとしている箇所が怪しいなぁと。数値だけが連続している場合は問題ないけど、それ以外のケースが考慮されていないんじゃないかという気がします。

二つ目のほうは時間切れでまだ未着手です。個人的には、特に問題ないコードだと思っていたのですが、map の value クラスが未定義でエラーになってしまいました。まあ、言われてみればその通りなので、ポインタにして逃げを打てばいいのですが、本当にそういう対応でいいのだろうかと立ち止まり、libc++ の map を調べてみるつもりです。

libc++ はまだまだ歴史が浅いから、気長につきあうしかないですね。

ただ、現実的なこともあるので、当面の間は libstdc++ をリンクする方向で進めていこうと思います。先進的な c++11 標準ライブラリの恩恵を受けるのは、もう少し先の話になりそうです。

というわけで、年内のリリースはちょっと無理かもしれませんが、もうしばらくお待ちくださいませ。

リハビリ状況

久々にチケットが登録されたので調べてみました。

https://sourceforge.jp/ticket/browse.php?group_id=1813&tid=29914

現象は「▽しーくゎーさー」をトグル変換すると「シークゎーサー」になるというもの。
再現性 100% です。

原因は、Gauche から移植した jconv ライブラリの変換テーブルに「ゎ」のエントリがなかったからでした。手元では修正して動作確認済みです。報告してくれた方、ありがとうございました。

それから、2chAquaSKK スレの >>173 さんに返信*1

そもそも AquaSKK のエラーハンドリングが貧弱な点については見直しますが、ひとまず↓の対応で直ったりするでしょうか?

http://d.hatena.ne.jp/u1tnk/20110510/1305044639

今月中にβ版を出せればいいなと思っていますが、コードを眺めてみると一体誰が書いたんだ、これは!という感じもあったりするので、微妙なところです。

*1:久々に書き込みしようと思ったらアク禁で、しかも、忍者修行中とかで代行スレにも書けないドイヒーな状態。トホホ......

後悔駆動開発と夏山登山

毎度毎度のことながら、ご無沙汰してます。

日頃贔屓にしている日記やブログの更新が止まると、その主がこの世から消えてしまった、あるいは何らかのトラブルに巻き込まれたのでは? という自分勝手でネガティブな妄想を展開させることがあるのですが、同じようなことをしている自分をよくよく点検してみれば、存外平和で満ち足りた生活を送っているわけで、所詮日記やブログはその人のごくわずかな断面を垣間見せる覗き穴に過ぎないのだなと思いつつ、やはり何もないよりはあったほうが良い、なによりその人が生きている証となり、同じように不安を膨らませている人を安堵させることができるかもしれないから、という理由で久々にキーボードに向かった次第です。

そこのあなたも是非!

AquaSKK のことなど

まずは記憶を呼び戻すところから始めます。Google App Engine で開発中だった SKK 共有辞書の構想は頓挫しているので、Google Drive を利用する方式で考え直してみようかと。当然、Web アプリを動かせないので、うまいことデータの保存方法を考えないといけないですね。

今のところは漠然と、追加削除された単語情報を月ごとに保存しておいて、クライアントからは必要なデータだけダウンロードしてパッチする、みたいなやり方がシンプルでいいかなと思ってます。古くなったやつはどこかで削除する必要があるかもしれませんが。

あとは、Java アプリでのサポートを改善するコードを実験的に書いていたような記憶が朧げにあるので、そのあたりもちょっと見直そうかと思っています。

以前ほどは忙しくないはずなので、少しは時間も取れるはず、だといいのですが。

生活のことなど

一周忌が終わり、喪が開けました。母のいない生活にも慣れ、父もさほど落ち込まずにいるので、一段落したかな、といったところです。実家の近くに引っ越したので、週末は一緒に夕飯を食べてのんびりと団欒しています。

いつも「今日は何が食べたい?」と聞くと「何でもいい」と答えるのですが、いざ作り始めると横からいろいろ口を出してきます。もともと凝り性なのに加えて母の闘病中から必然的に調理担当になったので、今ではなかなかの腕前。良く研いだ菜っ切り包丁でにんじんを刻む姿が思いのほか小さく、老いたな、と思うことが多くなりました。

娘はすっかり大きくなり、幼稚園の年中組に通いはじめています。誰に似たのか負けず嫌いな性格で、しょっちゅう友達を泣かせているようです。そういえば最近友人達と飲みに行った時のこと、「今の子供達って将来どんな仕事につくのかね」ということが話題になり、一同シーンとなってしまったことを思い出しました。

まあ、考えても仕方のないことかもしれませんが、その場にいた全員が、今より良くなっているというイメージを持てなかったのは、問題がありますね。ネガティブ集団なのだろうか......

仕事のことなど

昨年から従事していたプロジェクトは今も継続中ですが、私は一足先に卒業することになりました。残ったメンバーに聞くと今でも激務が続いており、混沌の度合いも深まっているようです。まあ、いわゆるデスマーチですね。

私の担当は要件定義、基本設計、詳細設計、その他雑用各種でした。ただ、その品質はどうだったのかと問われると深く俯かざるを得ません。いろいろと言いたいことはあります。でも、単純にプログラマが迷わずストレートにコーディングできる設計かという観点で見れば、おそらく落第でしょう。

このあたりは、また回を改めて書くとして、とにもかくにも、悔いの残るプロジェクトでした。

今は長らく遠ざかっていたコードの現場に戻り、C#ガリガリ書き飛ばしています。前回の悔しさをバネにまるで仇を討つかのようなこの突進力は我ながら驚くほどで、後悔駆動開発と名づけても良いのではないかと思うほどです。全然格好良くないですが。

SQL 変数のバインドに無名クラスとリフレクション使うと楽チンだなぁとか、Team Foundation Server はタスクも管理できて楽チンだなぁとか、久々の Visual Studio は「んーな、たりーことやってられっかよぉぅ!」と半グレ化したおじいちゃんにも優しい快適仕様になっています。IT 業界の高齢化対策にも逃げずに真正面から取り組み、開発効率も素晴しい。

このあたりについてもいつか、書いてみたいですね。

夏休みの宿題など

いい大人になったというのに、夏休みの時期になるとなぜか世界文学を読みたくなります。別に休みがあるわけでもないのに、何か一冊読破しようという気になってしまうのは夏のせいかしら。

ロシアやドイツの文豪を読むのは、ある意味苦行のようなものなのですが、なかでも骨が折れるのがトーマス・マン魔の山です。

魔の山〈上〉 (岩波文庫)

魔の山〈上〉 (岩波文庫)

魔の山〈下〉 (岩波文庫)

魔の山〈下〉 (岩波文庫)

前に読んだのは何年前のことやら。今年は上巻を読破し、下巻に突入。時代背景や宗教観を知らないとすっかり置いてけぼりを喰うのですが、年を経るごとに段々と内容の理解度が向上しているような気がします。

いつか登場人物のセリフを諳じて悦に入りたいものです ;-)

仕事漬けの日々

ご無沙汰してます。

AquaSKK のメンテを再開すると言いつつ何も進展がなくて、本当にごめんなさい。自分でも想定外だったのですが、いまだに高稼動が続いており、リラックスできるのは日曜日だけという有様です。まさかここまでモーレツサラリーマンの素質があるとは思いませんでした。8 月からこのかた、ほぼ毎日のように繰り返されているタイムラインを追ってみたいと思います。

6:00 起床

余裕があれば朝刊を読みます。シャワーを浴びて髭を剃り、朝食を摂ります。

7:00 家を出る

自転車で最寄り駅まで 10 分ほど。最近めっきり寒くなってきました。

8:50 出社

今朝のニュースなどをささっと確認。仕事の準備など。

9:00 各種確認

メールの確認と返信を済ませます。あとは、打ち合わせの予定や各メンバーの進捗状況把握など。

9:30 朝会

リーダーを集めた朝会。昨日の実績と今日の予定、問題点の把握と共有、各種調整など。

10:00 〜 12:00 各メンバーのサポート

各メンバーからの質問を受け付けたり、止まっていた課題を蹴り直したり、進捗を確認したりといった各種巡回作業が中心。

12:00 〜 13:00 お昼

愛妻弁当を食べたあと、天気が良ければ最寄り駅まで散歩に行きます。キレイなおねーさんで目の保養をしたり、裏路地をブラブラしてみたり、おやつを買ってみたり。

13:00 〜 17:30 お仕事

打ち合わせ中心の仕事をこなします。自分の抱えているタスクはほとんどできないことが多いです。

17:30 〜 18:00 実績確認

各メンバーの今日の進捗を確認します。問題点を把握して共有したり、打ち合わせをセッティングしたり。

18:00 〜 18:30 軽い夕飯

近所のコンビニでお握りやサンドウィッチなどを購入してモソモソ食べます。コロッケやおでんの日も。

18:30 〜 22:00 お仕事

ようやく自分のタスクをこなす時間。しかし、割り込み多数あり、頭の回転もそろそろ限界か...

23:30 頃帰宅

軽いつまみを肴に晩酌したあと、お風呂に入ります。奥さんに子供の様子を聞いてみたり、予約録画したテレビ番組をいくつか見たり。

24:30 就寝

おやすみなさい。


土曜日もだいたい 7.5h は出社してるので、36協定に抵触してることは間違いないですね。まあでも、そうでもしないとなかなか進まない状況なので、せめてスケジュールさえ伸びてくれたらなぁと願いながら邁進する日々です。

相変わらずコードは一行も書いてませんが、そんな中でも腐らずに仕事を続けている自分のことを、ようやく適応力が培われてきたのかもしれないな、と見直しているところです。

まだ若かった頃には、環境が整ってないと「こんなんじゃ仕事できない」と今にして思えば赤面もののセリフを吐いていたものでしたが、今ではどんなところでもそれなりにやっていける自信がつきました。目の前のことに集中すると、本質的な問題が何なのかわかってくるっていうんでしょうか。

瑣末な問題というのは結局のところ、仲間内でジョークを飛ばし「まあ仕方ないさ」で片付けられる程度のことなのです。そんなことに目くじらを立てる暇があったら、本当の問題にきちんと向き合うほうが有益です。でもそれは難しい。本当の問題は手強いから、解決できる保証などないのです。だから怖気付く。逃げたくなる。

でもいざ覚悟を決めてやってみると、いつも以上に充実しているのを実感します。気分が晴れ晴れとして、笑顔も増えてくる。不思議なものです。

AquaSKK にも解決すべき問題があるのですが、今しばらくは(うーんと、具体的には、来年の夏頃までかなぁと思うのですが...)、仕事中毒になっていると思います。

それまでに状況が改善すれば、速やかにメンテを再開しますので、申し訳ないのですが、よろしくお願いします。ああ、これからシャツにアイロンをかけねば...

近況報告

ご無沙汰してます。

先週末は母の四十九日の法要でした。

食事が取れなくなり、立ち上がることも困難になり、一つずつ、できたことができなくなっていく中、「最近眠れないの」とこぼした母。毎週末の見舞いが、どこか「今日も生きている」という確認作業のようなものに変質していくのを、母も気付いていたのだろうと思います。最期の一点に向かっていく逃げ場のない毎日を、どんな気持ちで過ごしていたのかと思うと、今でもやり切れません。

意識のあるうちに、ちゃんと感謝の気持ちを伝えられれば良かったのですが、叶いませんでした。いつか必ずそういう日が来るとわかっていながら、どこか現実を受け入れたくないと目を背けていたからですね。

告別式の翌々日から、某建材メーカーのシステム再構築という大仕事に関わることになり、連日の深夜残業が当たり前という状況が続いています。担当しているのは要件定義の詰めの部分。既存システム群を統合・最適化するにはどうしたら良いかと顧客と打ち合わせる日々。C++ 成分は皆無でも、久々に鳥肌が立つようなやりがいのある仕事、というところが救いでしょうか。

AquaSKK のほうは Lion でも問題なく動いているようなので、今のところ緊急リリースの予定はありません。ただ、そろそろ溜ったバックログを消化していきたいので、リハビリがてらゆるゆると動き出します。

というわけで、AquaSKK のメンテも再開します。今後ともよろしくお願いします。