プログラマ ずんべ の日記

zunbe

プログラマ ずんべ の日記
プログラマ ずんべ の日記

探し物は見つかりましたか? サイト内検索を試してください。


[ 1  2  3  4  5  6  7  8  9 ] [] [最後>>

2009/10/29

【ソフトウェア】iPhone 3G

iPhone 3G

先日購入した(契約した・・・と言うべきか)iPhone。
なかなかおもしろい。

先日TOMOKIと行った京都ツアーも、iPhone アプリ「Geocaching」をインストールして持って行ったのだが、とても便利だった。

 プログラマ ずんべ の日記:iPhone 3G プログラマ ずんべ の日記:iPhone 3G
 プログラマ ずんべ の日記:iPhone 3G プログラマ ずんべ の日記:iPhone 3G

今までは、キャッシュの詳細情報や地図などを紙に印刷したり、GPS機器(と言っても、ずんべが使っているのは今は既に生産中止になっているCLIEだけど・・・)に地図情報や座標情報を転送したりと、出かける前の事前準備がけっこう大変だったのだが、このアプリがあれば、そんな事前準備なしに、ほとんどの情報をすぐに参照できる。
いやいや、便利だ。

ただ、不満な点もある。
このアプリには、直接座標を入力してターゲットの位置を指定する機能が無い。
マルチキャッシュを攻略するときに、その場で座標を入力して場所を確認したい場合が多いのだが、それができない。
もっとも、これまで使っていたCLIEでもできなかったので、これまでの使い勝手から後退してしまったわけではないのだけれど、この機能は欲しかった。

でも、全体的にはマル。
いいですな、iPhone + このアプリ。

あと、BrightKite にも登録して、iPhone アプリをインストールしてみた。

 プログラマ ずんべ の日記:iPhone 3G

最近、ジオキャッシャーの皆さんは、これで情報交換をしているらしい。
この BrightKite というSNSは、今までぜんぜん知らなかったけど、ジオキャッシャー周りでは、ここ数ヶ月で利用者がぐっと増えたのかな。
ずんべも参加させて頂いたので、情報交換をさせていただこうかと。
情報交換と言っても、ずんべは「なんちゃって ジオキャッシャー」なので、情報を頂くばっかりだと思うケド・・・。
ジオキャッシャーの皆様、よろしくお願い致します。m(__)m

なにわともあれ、久しぶりに面白いアイテムをゲットした。
がんばって使っていこう。

■2009/10/30 追記

「直接座標を入力してターゲットの位置を指定する機能が無い」件について、ひらぽんさんから「できるよ」とご指南が。
「キャッシュへ移動」の画面で、左端の旗をタップすると、ウェイポイントの座標を入力する事ができる。

 プログラマ ずんべ の日記:iPhone 3G プログラマ ずんべ の日記:iPhone 3G
 プログラマ ずんべ の日記:iPhone 3G プログラマ ずんべ の日記:iPhone 3G
 プログラマ ずんべ の日記:iPhone 3G

おぉ、すばらしい。
ウェイポイントが設定できた。
ちゃんと勉強しないといけませんな。



このエピソードはいかがでしたか?

投稿者 zunbe : 2009/10/29 08:00:00 | コメント (0) | トラックバック (0)

2009/09/16

【ソフトウェア】Gavotte Ramdisk 1.0.4096.2

Gavotte Ramdisk 1.0.4096.2

会社の開発用に使っているPCを新しくして、OSを Windows XP にした。
これまでは、Windows 2000 を開発用に使っていたのだが、今頃になって、ようやく XP。
正直言うと、開発用としてのOSは 2000 でまったくもって必要十分で、最新の 7 も、Vista も、XP も、それらを使用しなければならないという必要性は、未だにぜんぜん感じない。
ただ、Windows 2000 では、IE は IE6 まなでしかサポートされていないので、IE6 サーポートの打ち切りが進んでいる昨今の情勢から見て、開発用PCがIE6までしか使えないのはちょっと不便なので、やむなくという感じで(^^;、XP に変更した。

PCも新しいものに変え、メモリも4GBを搭載。
が・・・恥ずかしいことに、32ビットOSは、3.2GB以上のメモリをOSが認識できないということを最近まで知らなかった。(^^;
32ビットなんだから、そりゃ、そうだよな・・・と思うのだが、0.8GBのメモリを遊ばしておくのはもったいない。

で、何かいい方法はないかな、と探していたところ、こんなソフトを発見した。

 Gavotte Ramdisk 1.0.4096.2

これは、OSの管理領域外のメモリをRAMディスクとして利用するためのドライバ。
ちと怪しいかなぁ・・・と思いながらも、テスト機でちょこちょこ試してみると、既存のDLLを置き換えてしまう訳でもなく、姑息な事をやっているわけでもなさそうなので、使ってみることにする。

Gavotte Ramdisk のパッケージを解凍し、インストール。
さてさて、RAMディスクはできたかな。

タスクマネージャでメモリの使用状況を確認してみる。

Gavotte Ramdisk 導入前はこんな感じ。

 プログラマ ずんべ の日記:Gavotte Ramdisk
 Gavotte Ramdisk 導入前

Gavotte Ramdisk 導入後はこんな感じ。

 プログラマ ずんべ の日記:Gavotte Ramdisk
 Gavotte Ramdisk 導入後

物理メモリの利用可能量は減っていない。
しかし、ちゃんとRAMディスクはできている。

 プログラマ ずんべ の日記:Gavotte Ramdisk
 RAMディスク

ス・バ・ラ・シ・イ。

環境変数 TEMP、TMP の設定を変更して、作成されたRAMディスクに向け、IEのテンポラリのパスなどもRAMディスクに向ける。
快適だ。

ただ、RAMディスクをNTFSでフォーマットして使用したかったのだけれど、これがうまくいかない。
何でだろう?
まぁ、とりあえず FAT32 で問題はないので、このまま使って、おいおい調べることにしよう。



このエピソードはいかがでしたか?

投稿者 zunbe : 2009/09/16 10:00:00 | コメント (0) | トラックバック (0)

2009/03/18

【ソフトウェア】SQLite 3.6.10

SQLite 3.6.10

久しぶりのソフトウェアねた。
仕事で作成中のソフトウェアで、ガリガリと検索や更新を行うわけはないし、さほど複雑なデータ構造を扱うわけではないが、データ量はそこそこあるのでSQLで検索したい、というものがあり、SQLite を使ってみる事にした。

 SQLite

開発は Linux 上で行っていたのだが、コンパイル、インストールとも、すんなり成功。
いい感じだ。

ただ、開発時に問題が浮上。
SQLite は、トランザクションを開始すると、データベースそのものがロックされてしまう。
更新中のテーブルとは関係ないテーブルへのアクセスもロックされてしまうし、INSERT、UPDATE、DELETE だけでなく、SELECT などの単純な問い合せもロックされてしまう。
つまり、トランザクションを開始すると、他からのアクセスを完全に受け付けなくなってしまう。
タイムアウト時間を長くして、トランザクションの処理が完了するまで後追いの処理を待たせれば問題はないのだが、今回作成しているソフトウェアでは、20万件弱のレコードを一気に投入する処理があるので、後追いの処理を待たせ続けるわけにはいかない。

仕方がないので、トランザクションを使わずに、自動コミットがオンの状態で1件づつ書き込んでいくようにプログラムを変更してみた。
すると...処理が遅い。とても遅い。
20万件弱のレコードの投入に何十分もかかる。
どうも、SQLite は、INSERT や UPDATE を連続してを実行するのは苦手なようだ。

自動コミットがオンの状態で1件づつ処理すれば、データベースがロックされてしまう問題は解消できるが、20万件弱のレコードの投入に何十分もかかってしまうのはいただけない。どうするか。
ロックも回避できて、かつ、実用上、問題とならない速度を出すには...折衷案的な実装であるが、1000件くらいづつの単位でトランザクションとコミットを繰り返し、全件をブロック単位で書き込むようにしてみた。
うん、成功。
劇的に速度があがった。

開発環境での動作確認が終わり、実機上に移してみる。
そこで、また新たな問題が。
実機は Solaris 8 なのだが、普通にコンパイルして実行してみると、バスエラーが発生し、コアダンプして落ちてしまう。
ぐぉ...。
何が問題だ?

gcc の問題か?
gcc をアップグレードしてみる。
バスエラー。(T_T)

逆に、ダウングレードしてみる。
やっぱりバスエラー。(T_T)(T_T)
むー。
コンパイラの問題ではなさそうだ。

SQLite の FAQ を探ってみる。
あった。

 Ticket 3553: Bus error with 32bit build on Solaris SPARC

ん~、どうも、構造体のアライメントの変化によって、正しく構造体のメンバにアクセスできず、バスエラーになるらしい。
パッチも準備されている。が、今回使用しているバージョンは、3.6.10 なのだが、このパッチは3.6.6.2 用。
当然、3.6.10 には適用済みだよなぁ...。
パッチをダウンロードして、当該ファイルと目視で付き合せてみると、確かにパッチは適用された状態になっていて、問題は解消されているように見える。
どうも、問題はここではない。

じゃぁというので、ダメ元で、アライメントで問題が起きているという事は、おそらくコンパイラが構造体のパッキングを最適化しようとしておかしな事になっているのではないかと推測。
試しに、Makefile を編集して gcc の最適化オプションである -O2 を削除してコンパイルしてみる。
実行してみると、おぉ、バスエラーは発生しない。
これなら、とりあえず問題はなさそうだ。

が...最適化なしでコンパイルしたものを使うのはちょっとヤダなぁ。
前述の資料によれば、3.6.6.2 では、バスエラーの問題は解消されている事になっているので、試しに 3.6.6.2 をコンパイルしてみる。
実行してみると、おぉ、バスエラーは発生しない。
きちんと問題は解消されているようだ。

では、ひとつ上の 3.6.7 をコンパイルしてみる。
バスエラー。(T_T)
むぅ...。

3.6.6.2 で解消したはずのアライメントの問題が、3.6.7 にメジャーアップしたときに、新しく作成したソースの部分で再発した感じだろうか。
それとも、3.6.7 からは、Solaris 8 の対応が切られてしまったのだろうか。

で、結局、最適化なしでコンパイルする 3.6.10 を使うか、最適化ありでコンパイルする 3.6.6.2 を使うかの選択になった。
迷ったのだが、動作実績がより多いであろう、3.6.6.2 の方を選択する事にした。
開発環境上と実機上の SQLite を 3.6.6.2 にダウングレードし、動作確認。
一件落着。
はふぅ、苦労した。



このエピソードはいかがでしたか?

投稿者 zunbe : 2009/03/18 10:00:00 | コメント (0) | トラックバック (0)

2009/02/10

【ソフトウェア】PageBute(MovableType 静的ページ用ページ割プラグイン)

PageBute(MovableType 静的ページ用ページ割プラグイン)

MovableType は、最新のバージョンでも、なぜかページを分割して(改ページして)出力する機能が標準機能として実装されていない。
エントリ数が10個や20個なら、改ページがなくても別に問題はないのだが、ごりごりと日記を書いていると、すぐにエントリ数が何百件になってしまい、日付アーカイブやカテゴリ・アーカイブが長大な1ページになってしまう。
とてもではないがさくっと表示できないので、実は最近まで、このブログでも、カテゴリ・アーカイブのリンクを削除していた。

WEBでいろいろ検索すると、PHPを利用してページ分割をする方法がよく紹介されているのだが、そこまでするのはめんどくさい。
なんか、簡単にできるツールはないものかと調べていたら...あった!

 MovableType 静的ページ用ページ割プラグイン:PageBute

このプラグインは、日付アーカイブや、カテゴリ・アーカイブのテンプレートにタグを記述しておくと、タグの指示に従って、ページ分割をして静的ファイルを出力してくれる。
もちろん、「先頭ページ」「前ページ」「次ページ」「最後ページ」などのリンクも記述できる。

これだよ、これだよ、ずんべが求めていたのは。

さっそく組み込んでみる。

 ■カテゴリ・アーカイブ
  お出かけしよう
  アクアリウム

 ■日付アーカイブ
  2009年2月
  2009年1月

おぉ、ちゃんと分割できた。
いい感じ。(^^)

ただ、ちょっと不満もある。
もう少し細かくコントロールしようとして、たとえば、現在ページの番号を表示させるとか、最大ページ番号を表示させるとか、といった事ができない。
「先頭ページ」「前ページ」「次ページ」「最後ページ」などが表示される場合とされない場合などをコントロールしようと、<MTIf></MTIf>などで囲ってみても、どうにも思った通りに条件判断が動いてくれない。
ずんべの指定方法がいけないのかもしれないが、このあたりの細かいコントロールはイマイチな感じ。

でも、全体的にはマル!!



このエピソードはいかがでしたか?

投稿者 zunbe : 2009/02/10 10:48:08 | コメント (2) | トラックバック (0)

2009/01/15

【ソフトウェア】トラックバックSPAM防止プラグイン

トラックバックSPAM防止プラグイン

昨年、MovableType を 3.17 から 4.22 にアップグレードしたのだが、アップグレードしてから、なぜかトラックバック・スパムを大量に受け付けてしまうようになってしまって困っていた。
何かいいスパム対策はないかと思っていたのだが、このブログが置かれているサーバの環境は、インターネットからLAN内に入ったときに、リバース・プロキシを経由してサーバに接続されてくる都合上、標準のプラグインで実装されているような、IPアドレスでスパムかどうかを判定する事ができずに、うまくスパムを排除できないので何かいい方法はないかといろいろ探っていたのだが...こんなプラグインを発見した。

 トラックバックSPAM防止プラグイン

このプラグインは、いわゆるブラック・リストのデータベースを参照してスパムかどうかを判定するのではなく、トラックバックの送信元となっているURLのページを参照して、自身のブログへのリンクがあるかどうかで判定しているらしい。
なるほど、そもそもトラックバックとは、「あなたのブログについて言及しています」というものであるはずだから、「トラックバック元には自身のブログへのリンクがあるはずだ」という判定か。
これはいいアイデアだ。

さっそくダウンロードして MovableType に組み込んでみた。
今のところ、トラックバックは問題なく排除されているようだ。
このプラグイン、なかなかいいな。(^^)



このエピソードはいかがでしたか?

投稿者 zunbe : 2009/01/15 18:33:31 | コメント (0) | トラックバック (0)



[ 1  2  3  4  5  6  7  8  9 ] [] [最後>>