ソフトウェアの最近のブログ記事

お仕事中のAccessのお仕事で、久しぶりにSQLで悩みました。

解決は、お風呂場とベッドの中でのリラックスした熟考と若干の試行錯誤。

時々、こうやって普段使わない部分の頭を使うのが、よいと思います。

Accessみたいに手軽にクエリーを作れて実行できるのは、実に便利。

クエリーをGUIで作れるのはいいのですが、ユニオンクエリーやDISTINCTなんかも対応してくれたら、嬉しいのですが。

まあ、そのためにSQL表示があるわけですが。

SQLを使えば、何でもできる、くらいの自信はあるのですが、問題はパフォーマンスですね。

でもSQLとのつきあいは、そんなに長くない、13年くらいです。

最初に勉強した本は、SRCの「SQLテクニック Q&A」。

付録の、BNFの構文はよく読みました。懐かしいです。

Rubyの本を読んでいて、正規表現の項になった。

そこで見慣れない記法が・・・。

(.*?)"

暫く考えたあげくに、「Perl5 デスクトップリファレンス」の正規表現の項を再読。

分かりました。

「繰り返しサブパターンは可能な最長の文字列にマッチする。ただし、その後に?が続く場合は、最短のマッチングを行う。」

Rubyの例では、「"」が現れるまでの最短のマッチングになります。

分かっていると思っていた正規表現での新しい発見でした。

bootupyourselfwithruby.jpgYugui著 オライリー(2008)

いまさらですが、Rubyの勉強を。

6月に出たばかりの本ですが、Amazonでは在庫切れ。楽天で買いました。

まだ1/3しか読んでいないのですが、これだけ言語がある中、更に新しい言語が必要なのか?、と思って読み始めたのですが、「ええっ!こんな設計ありなの?」と驚くことしきり。

まつもとゆきひろ氏を見直した1冊でした。

頭を硬くしないためにも、新しい言語には挑戦するべきですね!

マッコーネルの本だったか、プロならば、年に一つは新しい言語に挑戦するべき、というのがありましたね。

最近はプロジェクト管理や、ピープルウェアの本が多くて、とても年に一つにはなっていませんが、その精神は大切にしたいと思います。

Railsの本も読もうと思います。

Rubyが好きになりそうです。

とても魅力的な言語です。

ATOK2008

| | コメント(0)
ATOK2008.jpg最近の、日経だったかITMediaだったかの記事。

「最近のMS-IMEは目に余る」。

なんでも、現在は中国で開発されていて、日本のマイクロソフトも手が出せないという。

誤変換に悩まされていた私としては、記事を読んで、迷わずATOK2008を購入。

かしこいかな漢字変換です。

日常使うものは、なるべくストレスなく使えるものを選ぶべきです。

使用許諾契約も、私が一人で使う限り、複数のマシンにインストール可能で、大助かりです。

先日セットアップしたCentOS4.4。

思い立ってyumでupdate。

すると思ったとおり、カーネル・パニックで立ち上がらない。

RedHat7.3のRAID1サーバーと同じです。

GRUBで古いカーネルを選択すれば立ち上がります。

デフォールトのカーネルを古いカーネルにするために、/etc/grub.confを編集。

default=0 を default=1 にする。(1番目をデフォールトとする)

これでOK。

onecare.jpg開発マシンには何台かVistaを入れているのですが、メールやドキュメント作成用のマシンは、未だXP。

VistaのSP1も出たし、そろそろいいかとアップグレード。

朝の6時半に始めたのが、終わったのが午後5時半!

このうち、アップグレードは3時間、外出と食事に1時間、Microsoftのサポートに2時間(このうち1時間は、接続待ち)、残りは、OneCareでネットに接続できなくなって、いろいろ調べていた時間と、動作しなくなったアプリの代替を探していた時間。

結果からいうと、XPからVistaにアップグレードするときには、OneCareの削除と再インストールが必要。

何もいってくれないので、わかりませんよ。

最初は、IEのエラーページのファイル名がdnserrorだったので、DNSが原因と思いました。

こちらでは、ルータのせいで、DNSの設定を明示的にしないとネットに接続できないのです。

それで、TCP/UDPのポート53をOneCareで穴を開けたりしたのですが、効果なし。

ネットで調べても類似の現象はないし、万策尽きて、サポートに電話。

土日もやっていて助かりました。

サポートそのものは丁寧で文句のつけようがなかったのですが、天気のいい日の昼間の時間を返してほしいものです。

uml_visio.jpgUMLを描くツールがないか探していたのですが、リバースエンジニアリングなんていらないから、シンプルなものが欲しい。

どうせなら、前のプロジェクトで使っていたVisioを使えればベスト!

という方にお勧めなのが、Visio用のフリー(寄付金募集中)のUMLステンシル

VisioはStandardだけでも、かなり使えて、お勧めです。

UMLではないのですが、ドキュメント作成ということで、Hot Documentのサンプルも見たのですが、コメントだけではなく、ソースも解析している、と謳っているいるわりには、ファイルの一覧とかメソッドの一覧とか、ソースの行数とか、単に数え上げているだけのように見えますけれど・・・。

JavaDoc

| | コメント(0)

納品物をJavaDocで作っているときに、問題が・・・。

JavaDoc以外のアノテーションの記述で、JavaDocがCrashします。

出来上がったドキュメントは、左側の「すべてのクラス」のフレームが正常に表示されません。

しばらく解決策を探った結果、コマンドプロンプトから、JavaDocを起動するのではなく、Eclipseから作成することで、正常に作成できることが分かりました。

JavaDocのバージョンの違い?

f7_20080327.jpgWindowsのコマンドプロンプトで、Javaをよく起動して試験しているのですが、長いコマンドをタイプするのは面倒。

Linuxのシェルみたいに、直前のコマンドを実行してくれるコマンドがあるはず、とネットで調べると、便利なF7キー。

数個前までの履歴が別ウインドウに表示されて、そこから実行する物を選択できます。

もっと早く調べていれば、少しは時間の節約になったのですけれど・・・。

「手を抜くためにはどんな努力でもする」というふうにならなければいけませんね。

今回のお仕事、開発はWindowsマシンで、動作確認は、3台のLinuxでやっています。

ファイルの転送はFTP。

今までずっとFFFTPを使ってきたのですが、今回使っていて、頻繁に転送が中断します。

「ファイル一覧が取得できなかった」というエラーです。

FAQで見た、フルパスを使わないチェックを入れたのですが、それでも変わらない。

それでとうとう、FTPクライアントを探す羽目になったのですが、見つけたのが「FileZilla」。

全く問題なく動作しました。

今度はこれをメインにするかも・・・。

今回のお仕事で使う分散キャッシュを使うプログラムが、どうにも起動しない。

複数のLinuxマシンでキャッシュを共有します。

マルチキャストで、自動的にキャッシュの在りかを検索するはずなのですが・・・。

先行して調査していたKさんに聞いているうちに、分かったのは、私のところのLANはDNSを運用していないので、ホスト名は何でもいいだろうと、Linuxは全て、localhostにしていました。

これがいけなかった。

ホスト名を別々にしたら、一発で動きました。

DNSがなくても、localhost にしたらいけないのですね・・・。

週末からずっと懸案だった問題が一段落し、このブログを書いています。

思ったのは、夜更かしをするより、睡眠をとって頭をリセットし、朝、問題を考える方が解決しやすい、ということです。

昨日、今日とそれを実感しました。

今回手伝ってくれたMさん、本質的にJavaプログラマなのですが、やはりコードがきれい。

私みたいに、Cから入った人のコードとは違います。

年齢は同じくらいなのに・・・少しうらやましい。

Mさんは、Null Pointer Exception を「ヌルポ」というのですよね。

業界用語でしょうか?

それで思い出したのが、オーケストラでヴァイオリンを弾いている弟がチャイコフスキーのことを「チャイコ」と言っていたこと。

なにか笑ってしまいました。

週末は、Microsoftに振り回されて、大きく時間をロス!

その1・・・Outlookからのメール送信が、例の0x8004210Bのエラーでできない。(それもできる時もある)
ネットで検索して、Microsoftの技術情報からプロファイルの再作成もやってみたのですが、それでもだめ。
驚いたことに、同じ宛先で、別のNote PCのOutlookから送ろうとしても同じエラー。

これはメールサーバーに違いないと、ホスティング会社に問い合わせると、ログではサーバーまで到達していない。
結局、月曜の朝に、どういうわけか送信出来るようになっていた。

その2・・・ネットラジオのログをAccessで読み込んでいます。1年以上使っているのですが、日曜に読込みプログラムでエラーが。
Insertのところで、「データベース''を開くことができません。アプリケーションで認識できないデータベースであるか、またはファイルが破損しています。」

どうにも原因が分からなくて、もしやと思って、データベースを修復すると、エラーが消えた・・・。

その3・・・お仕事で使うメッセージング・ツールがエラーが出て、どうにもWindows上で動かない。これもよくある、「Microsoft.VC80.CRT」のエラー。イベントログを見たり、ネットを検索して分かったことは、Visual Studio VC++2005ランタイムのSP1が必要だということ。

どれも3時間以上かかっていますよね。

私の週末を返してくれー!

error20080218.JPGいつからか、事務用のWindows XPをシャットダウンすると、「ズン」という耳障りな音とともに、一瞬、「DLLの初期化に失敗しました」、というエラーメッセージが出ます。

消えるのが早すぎて、誰が出しているのか判別できなかったのですが、デジカメで記録。

見ると「vsjitdebugger.exe」。

とすると問題は2つあって、シャットダウン時に何らかのエラーが起こっていることと、VisualStudioの起動に失敗していることです。

常駐プログラムを疑ったのですが、最終的にたどり着いたのは、掲題の「Canon Camera Access Library 8」というサービス。

これを「手動」とすることで、出なくなりました。

カメラの画像の取り込みにも影響ないみたいなので、何に使っていたのかいまいち分からないのですが、結果オーライということで。

どうやってたどり着いたかは、聞かないでください。結構、偶然と行き当たりばったりの要素がありますから・・・。

パフォーマンスが重要視される大規模システムのリサーチをしています。

トレーディングや、携帯のサイトなどのシステムですが、驚いたことに、このようなシステムでは、もうJ2EEではない。

分散キャッシュを使った、イン・メモリーな処理になるのですが、いくつかのメーカーが、このようなグリッド製品を出しています。

GigaSpaces、Tangosol (現在はOracle)、Gemstone、Terracottaなどです。

この文献が、参考になります。

GigaSpacesとGemFireについては、評価版をダウンロードして、動作させてみました。プアーなマシンの上ですが。

このようなソフトのアーキテクチャには、層すらないのです。カルチャー・ショックですね。

層は複雑さや、ロードをシェアするために必須と思っていたのですが・・・。

それから、イン・メモリのデータ・ストアも、かなり衝撃ですね。

前述の文献では、「メモリ内に保存されたデータの依存関係が、ディスク上では損なわれることがあり、数秒もしくは数分、数時間にわたってデータを保存するには、結局のところハッシュマップやJavaSpaceが最も良い方法だということです。データの元の形を保ったまま、普通は保存しておける (恐らくオブジェクトかXML) のに、なぜこれをリレーショナル構造にマップし直さなくてはならないのでしょう。」と述べています。

大変勉強になります。

リサーチの機会を与えてくださったMさんに感謝です。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちソフトウェアカテゴリに属しているものが含まれています。

前のカテゴリはインターネットです。

次のカテゴリはフードです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.0