アーカイブ

Archive for 2007年8月

MySQLの文字コード管理

MySQLのテーブル管理用にphpMyAdminを導入してみたのですが、このblogと某所の掲示板のレコードが文字化けしています。
最初はphpMyAdminの問題かと思ったのですが、よくよくテーブル情報を確認すると、文字コードがlatain1になっていました。
実はlatain1のテーブルにutf8のデータが入った状態になっていて、Wordpressと某所の掲示板はMySQL接続時に文字コードを指定していなかったために、偶然動いていた状態でした。
以前NeoOfficeから接続した時にJDBC接続で文字化けが起こり、ODBC接続で正常に接続できた事があったのですが、あれもたぶん、勘違いを突き進んでいたと思われます。
ヘボすぎるorz

試行錯誤の末、テーブルを文字コードにbinaryを指定してダンプしておき、データベースを文字コードにutf8を指定して作り直してから、ダンプしたファイルを文字コードにbinaryを指定してインポートし直す事で正常な状態になりました。

これでphpMyAdminは文字化けを起こさなくなりましたが、今度はWordpressと某所の掲示板が文字化けを起こしました。
幸いWordpress2.2以降には文字コードを指定する設定があり、掲示板のスクリプトも接続後にSET NAMES文を投げるように修正する事で文字化けが収まりました。

MySQL 4.0がリリースされた頃に、日本語のトラブルを色々耳にしたのですが、ようやく理解できたご様子(^_^;;

広告
カテゴリー:開発

PocketDL-0.2をリリース

PocketDL-0.1のフィールドテストを踏まえて、何点か改良したPocketDL-0.2をリリースします。
キャッシュの導入によって、データが変更されていない時の起動時間が改善しています。計測データは僕の環境で、Library Media Data.xmlが5.1 MBあり、609アイテムを含んでいます。

PocketDL-0.1 PocketDL-0.2初回 PocketDL-0.2次回以降
起動時間 20秒 21秒 11秒

フォーカスの移動はメニューから行き先のコントロールを選択する方法を止めて、Tabキーを押した時と同じように、順送りでコントロールのフォーカスを移動するようにしました。
カラム幅を最適化するメニューも追加しました。常時自動的に最適化させようかと思いましたが、思ったよりも処理時間がかかるので止めました。

変更点

  • キャッシュを作成する事で、データファイルに変更が無い時の読み込み時間を短縮。
  • アイテムのカラム幅を、省略表示が起きないように自動調節するメニューを追加。
  • フォーカスメニューで遷移先のコントロールを指定させる代わりに、タブ文字相当のフォーカスの順送りを行うように変更。

pocketdl-20070825.zip

TODO

  • アイコンの追加
  • アイテムを選択した後の詳細表示
カテゴリー:開発 タグ:

PocketDL-0.1反省会

近場の書店にフィールドテストに行きました。続き物のコミック新刊確保が主なミッションです。

絞り込み重要
これは実装して正解でした。タイトル発見までの時間が違いすぎます。閲覧性に欠けるという指摘を頂いていたんですが、正鵠だったようです。僕は、書店でキーボードやペンを取り出す事は抵抗があったので、文字入力の必要な機能はアレかと思っていたんですが、W-ZERO3[es]を縦のまま操作できるなら無問題でした。

ソートも絞り込みと併用すると使える
続き物で10巻を超えると、タイトル順のソートが巻の発刊順序と一致しなくなります。例えば下記のような感じです。

ARIA 1
ARIA 10
ARIA 11
ARIA 2
ARIA 3
ARIA 4
ARIA 5
ARIA 6
ARIA 7
ARIA 8
ARIA 9

また別の問題として、Amazonのデータの揺れもあります。

ARIA (4)
ARIA 1
ARIA 2
ARIA 3

こういったケースでは、絞り込みしつつ購入日でソートすると良い感じに並びます。もちろん、順番に買っていればの話ですが。

カラム幅の調整
タイトル名が長い時にカラムをはみ出してしまう事があります。デフォルトの幅を広げても良いんですが、それをやると他のカラムが割を食うか、横スクロールを招きます。カラム幅の調整操作はペンを使っても難しいので、あまりユーザにさせたくありません。データ読み込み後に、自動調整とかした方が良いかもしれません。

フォーカスの移動
画面のタップは極力避けたいので、開発初期はカーソルでの移動を考えてました。ただカーソルはリスト内の移動にも使うので、微妙にしっくり来なくてメニューに頼るようになりました。ただメニューだと、ステップが多くて今イチな感じです。ここはもう少しなんとかしたい所。

起動が遅い
.NET Frameworkなので限界はあるのですが、それでも遅いです。原因は蔵書が増えた時に、Delicious Libraryのデータファイルが大きくなる事です。一番良い対応は、MissingSyncのプラグインを書いてデータを前処理してしまう事ですが、大仕事になりますよね。とりあえずは、キャッシュする事を考えようかと思います。

カテゴリー:開発 タグ:

PocketDL-0.1をリリース

僕のDelicious Libraryの書籍の入力冊数は500冊ぐらいなのですが、アイテムをタイトル順にソートするように修正した時点で、なんとか実用になっていました。たまに最近買った本を確認したい時もあって、購入日によるソートが欲しいと思う事もあったんですが。

そんな訳で長期放置だったのですが、クラリスワークスの終了にショックを受けてモチベーションが回復しました(^_^;;

PocketDL-0.1をリリースします。

pocketdl_20070817.png

変更点

  • 指定した列でアイテムをソートする機能を追加。
  • タイトルかクリエータに特定の文字列を含むアイテムに絞り込む機能を追加。
  • データファイル読み込み時のエラー処理を改善。
  • インストーラを用意。

絞り込み用のフィールドが増えたので、フォーカス移動用のメニューも追加しました。ソートする列の指定も含めて、すべての操作がキーボートでできるように配慮してあります。W-ZERO3[es]であれば、キーボード格納時のダイアルキーだけでも操作できるはずです。

pocketdl-20070817.zip

TODO

  • アイコンの追加
  • アイテムを選択した後の詳細表示
カテゴリー:開発 タグ:

さよならクラリスワークス

もう何年もメンテナンスモードに見えたので、いずれこんな日が来る事は判っていたのですが、実際に終了と聞くとショックです。

「アプール・ワークス死亡」

僕が職業プログラマになる事を決心したのは、学生時代にクラリスワークスを使って感動した事でした。いつかこんなアプリケーションを書いてみたいと、無謀な夢も見ました。今も遠い夢ですけど。

カテゴリー:デスクトップ, 開発

時のオカリナをダウンロード

世間は夢幻の砂時計が盛り上がっているみたいですが、バーチャルコンソールで時のオカリナをダウンロードしました。ゲームキューブ同様にニンテンドー64も良く知らないので、wktkです(^_^;;

プレイ開始直後は、タクトやトワプリとのグラフィックの落差が気になりましたが、程なく慣れました。良く考えるとプレステと同時期のゲームなので、リアルタイムでプレイしていれば感動のグラフィックだったのかもしれません。

プレイ自体はスルスル進みました。トワプリの時は絶望的に詰まって、攻略サイトを覗くか否か苦悩した事が数回あったのですが。慣れというか、ゼルダ脳が進行しているだけかもしれませんけど。

後の二作品と比較すると、ストーリーというか展開が唐突ではない所が良いかもしれません。

カテゴリー:文化

Mighty Mouseの分解修理

普段使っている無線マウスの電池を切らしてしまったので古い有線マウスを漁ってみたら、Mighty Mouseが出てきました。

このマウスは嫌いではなかったのですが、スクロールボールのゴミ詰りに対処できなくて使わなくなってしまいました。一応掃除方法があるのですが、だんだん復活しなくなります。さらにサラダ油を入れるとか信じ難い掃除方法もありますが、そちらも効果が無くなっていきます。

とっくに保証期間切れなので、分解掃除に取り組む事にしました。手順はこちらを参考にしました。

無事ローラーに付着していた大量のゴミを除去して組み立て直したのですが、上方向のスクロールが復活しません。下方向は直ったのですが。そこで再度分解して、部品を良く観察してみました。

まずローラーは4本ありますが、これは上下左右それぞれに対応しています。例えば横方向に回した場合、対面にある2本のローラーが同時が回転するのではなく、回した方向側の一本のローラーだけが回ります。

そこでボールとローラーのユニットだけを組み立てた状態でボールを回転させた所、上方向に回した時だけローラーが回らない事に気がつきました。ローラーのゴミは除去してあったので他の理由を探したのですが、良く観るとローラーの先に付いている磁石部分が、回転を検出する電極に接触しています。電極が、ローラー側に傾いてしまっているようでした。この傾きを直してユニットを組み立て直すと、無事にボールの上方向の回転でローラーが回るようになりました。

Mighty Mouseの分解掃除を行う場合は、ボールとローラーのユニットを組み立てた所でテストする事をお勧めします。マウス全体を組み立てなくても、この時点でボールによるスクロールが復活しているか判断できるからです。

カテゴリー:ハードウェア