« 2009年03月 | メイン | 2009年05月 »

2009年04月 アーカイブ

2009年04月03日

C++Builder2009でコモンコントロールに追加された新機能の検証

DELPHI 2009 HANDBOOKを読んで、コモンコントロールに多くの機能が追加されたことを知りました。

コモンコントロールの新機能が、Windows VistaとWindows 2000でどのように機能するかを検証しました。

まだ検証していない機能もあります。

Windows XP以降に追加された機能は、当然Windows2000では使えません。
ですが、エラーが発生してアプリケーションが動作しない、
というわけではありませんでした。

そのうちWindows XPでも検証しようと思います。

追記
Windowx XPでも検証しました。

2009年04月07日

Windows 2000にSkype 4.0をインストールすると文字化けする

Windows 2000にSkype 4.0をインストールすると文字化けする。

この問題を解決する方法が「黒翼猫のコンピュータ日記 2nd Edition:Skype 4.0が Windows2000で化けまくる件 - Windows 2000 Blog」で紹介されている。

解決するには「黒翼猫のコンピュータ日記 2nd Edition:Windows2000 文字化け対策 - Windows 2000 Blog」の記事の最後にリンクされている「fontlink.reg」をダウンロードして実行すればよい。

Windowsを再起動すれば、Skypeの文字化けは直っているはずだ。

2009年04月08日

WindowsにAptana PydevでDjangoの開発環境を構築する

先日、Ubuntu 8.0.4にDjangoの開発環境を構築する方法を書きました。

やっぱりWindows上でも開発をしたい、ということで、
今回はWindowsにAptana PydevでDjangoの開発環境を構築する方法です。

  1. Aptana Pydevをインストールする

    MergeDoc Project (Eclipse 日本語化)から安定版のバージョンを選択し、Pleiades All in One PythonのFull All in One(JRE あり)をダウンロードします。

    ダウンロードが完了したら、ダウンロードしたファイルを「c:\user」に展開します。
    展開場所のパスの長さに注意してください。
    MAX_PATHを超えていてもエラーメッセージを表示せず、解凍に失敗する解凍ソフトがあるようです。

    C:\
      ├user\
        ├.metadata.default\
        ├eclipse
        ├python
        └xampp
    
  2. Djangoのインストール

    DjangoのサイトからDjangoをダウンロードします。

    ダウンロードしたDjangoのファイル(Django-1.0.2-final.tar.gz)を展開します。
    コマンドプロンプトを起動し、展開したDjangoのフォルダに移動します。
    次のコマンドを実行してインストールします。

    >C:\user\python\python.exe setup.py install
    

    インストールが完了したら、コマンドプロンプトで「C:\user\python\python.exe」と入力して、Pythonインタラクティブシェルを起動します。

    djangoが正しくインストールできたかを確認します。

    >>> import django
    >>> django.VERSION
    (1, 0, 2, 'final', 0)
    
  3. 環境変数の設定

    インストールが終わったら必要に応じて、コマンドプロンプトから「python.exe」や「django-admin.py」のフルパスを入力しないですむように、環境変数の「Path」に「C:\user\python」と「C:\user\python\Scripts」を追加します。

    ;C:\user\python;C:\user\python\Scripts
    

    私はコマンドプロンプトの代わりにnyacusを使用しているので、nyacusの設定ファイル(_nyaファイル)に次の行を追加しました。

    alias python C:\user\python\python.exe
    alias django-admin C:\user\python\python.exe C:\user\python\Scripts\django-admin.py
    

    パスの設定ができると、コマンドプロンプトで入力するときに、フルパスを入力する必要がなくなります。

    >django-admin --version
    1.0.2 final
    

    Eclipse(C:\user\eclipse\eclipse.exe)のショートカットなども作っておくと便利かもしれません。

ここまでは共通の設定です。

これからは、プロジェクトごとの設定になります。

  1. Pydevプロジェクトの設定

    Eclipseを起動します。
    ワークスペースは初期値(../workspace)のまま作成します。

    メニューから「ファイル」-「新規」-「Pydevプロジェクト」を選択します。
    プロジェクト名を入力し(ここでは「MyProject」とします)、「完了」ボタンを押します。

    コマンドプロンプトを起動し、プロジェクトを作成したフォルダに移動します。

    >cd C:\user\workspace\MyProject\src\
    

    Djangoのプロジェクトを作成します。

    >django-admin startproject mysite
    

    プロジェクトが作成されたことを確認します。

    >cd mysite
    >python manage.py runserver
    Validating models...
    0 errors found
     
    Django version 1.0.2 final, using settings 'mysite.settings'
    Development server is running at http://127.0.0.1:8000/
    Quit the server with CTRL-BREAK.
    

    ブラウザでhttp://127.0.0.1:8000/にアクセスします。

    It worked!
    Congratulations on your first Django-powered page.
    

    の画面が表示されると成功です。

    Eclipseに戻り、「Pydevパッケージ・エクスプローラ」タブのプロジェクト(MyProject)を右クリックし、「リフレッシュ」を選択します。
    これによって、先ほど作成したDjangoプロジェクトのファイルが反映されます。

     - MyProject
       - src
         - mysite
           + __init__.py
           + manage.py
           + setting.py
           + urls.py
    
  2. PYTHONPATHの設定

    「プロジェクト・ソース・フォルダー」に先ほど作成した「mysite」を追加します。

    まず、メインメニューから「プロジェクト」-「プロパティー」を選択します。
    「PyDev - PYTHONPATH」を選択し、「ソース・フォルダーの追加」ボタンを押します。
    「MyProject/src/mysite」を選択して、「OK」ボタンを押します。

  3. デバッグの設定

    ブレークポイントの機能を使用できるように設定します。

    manage.pyを選択して、メインメニューから「実行」-「デバッグ」を選択します。
    ※ここでは起動されませんが、問題ありません。

    メインメニューの「実行」-「デバッグの構成」を選択します。
    ※一度「実行」-「デバッグ」を選択すると、「デバッグの構成」が表示されます。

    「引数」タブの「プログラムの引数」に「runserver --noreload」と入力します。
    「適用」ボタンを押し、設定を保存します。

    ブレークポイントが動作するか、確認します。
    manage.pyを開きます。
    3行目(import settingsの行)と11行目(execute_manager(settings)の行)にブレークポイントを追加します。

    manage.pyを選択して、メインメニューの「実行」-「デバッグ」を選択します。
    設定したブレークポイントの行で止まることを確認します。

    プログラムを再開します。

    ブラウザでhttp://127.0.0.1:8000/にアクセスします。

    It worked!
    Congratulations on your first Django-powered page.
    

    の画面が表示されると正しく設定ができています。

     Page not found: /
    

    の画面が表示された場合は、1.の「PyDev - PYTHONPATH」の設定が正しくできていません。
    設定を確認してください。

Delphiのインターセプタークラス(フォームに配置したコントロールに対して機能を拡張する方法)

インターセプタークラス(interceptor class)というおもしろいテクニックが、DELPHI 2009 HANDBOOKで紹介されていました。

このテクニックを使うと、フォームに配置したコントロールに対して機能を拡張することができます。

Buttonなどの既存のコントロールをちょっと拡張したい、
拡張したコントロールは、IDEのフォーム上で配置したい、
でも、わざわざIDEに拡張したコントロールをインストールすることはやりたくない、
そんな悩みを解決します。

方法は簡単です。

例えばTButtonを拡張する場合の方法です。

ベースクラスであるTButtonと同じ名前を持つ派生クラスをフォームユニットに作成します。
ベースクラスは完全名(ユニット名.クラス名)で指定します。

// interceptor class
TButton = class (StdCtrls.TButton)
  //なんらかの拡張をします
end;

TFormAnonButton = class(TForm)
  btnInvoke: TButton;  //拡張したTButtonが使用されます
  …

手軽にできますから、ちょっとした拡張にはとても便利です。

インターセプタークラスがフォームユニットではなく、別のユニットにある場合は、注意が必要です。

インターセプタークラスの定義が別のユニットになる場合、そのユニットは、use文で、ベースクラスを定義しているユニットの後ろに列挙されなければならない

DELPHI 2009 HANDBOOK

インターセプタークラスはおそらく古いDelphiでも使えるテクニックだと思います。

2009年04月09日

ScreenTipsPopupを試してみる

DELPHI 2009 HANDBOOKに掲載されていたScreenTipsPopupを試してみた。

Windows Vista

Windows XP

Windows 2000

IDEから簡単に設定でき、ヘルプヒントよりも多くの情報を提供できる。

古いWindows(Windows 2000)でもちゃんと動作する。

地味な機能ではあるが、なかなか使えそうだ。

C++ Builer TipsC++Builder2009でコモンコントロールに追加された新機能の検証にも追加しておきます。

2009年04月14日

WindowsでRuby1.8.7を使ってRuby on Railsをインストールする

One-Click InstallerにRuby 1.8.7がないので、茨の道を進むことになった。

Ruby 1.8.7のインストール

http://www.garbagecollect.jp/ruby/mswin32/ja/」から1.8.7の最新リリース版をダウンロードする。

ダウンロードが完了したら、ファイルを展開し、適当なフォルダに配置する。
ここではC:\ruby-1.8.7-p72-i386-mswinに配置したとする。

環境変数の「Path」を編集して「C:\ruby-1.8.7-p72-i386-mswin\bin」にパスを通す。

RubyGemsのインストール

RubyGems」のページから「rubygems-x.x.x.zip」をダウンロードする。

ダウンロードが完了したら、ファイルを展開する。

コマンドプロンプトから展開したフォルダに移動して、次のコマンドを入力し、RubyGemsをインストールする。

ruby setup.rb

Ruby on Railsのインストール

Porting Libraries to Win32」から「openssl-xxx-mswin32.zip」をダウンロードする。
ダウンロードが完了したら、ファイルを展開し、binフォルダにある「libeay32.dll」と「ssleay32.dll」をruby.exeと同じフォルダ(C:\ruby-1.8.7-p72-i386-mswin\bin)にコピーする。

Porting Libraries to Win32」から「zlib-xxx-mswin32.zip」をダウンロードする。
ダウンロードが完了したら、ファイルを展開し、binフォルダにある「zlib.dll」をruby.exeと同じフォルダ(C:\ruby-1.8.7-p72-i386-mswin\bin)にコピーする。

これで、RubyGemsが使用できるようになる。

次のコマンドを入力し、Ruby on Railsをインストールする。

gem install rails

「msvcr90.dllが見つからない。」というエラーが発生する場合は、「Microsoft Visual C++ 2008 再頒布可能パッケージ」からダウンロードしてインストールする。

Ruby on Railsに必要なファイルのインストール

iconv-1.8.win32.zipをダウンロードして展開する。
libフォルダにある「iconv.dll」をruby.exeと同じフォルダ(C:\ruby-1.8.7-p72-i386-mswin\bin)にコピーする。

これで、rakeがインストールできるようになる。

次のコマンドを入力し、rakeをインストールする。

gem intall rake

Porting Libraries to Win32」から「http://jarp.does.notwork.org/win32/readline-4.3-2-mswin32.zip」をダウンロードする。
libフォルダにある「readline.dll」をruby.exeと同じフォルダ(C:\ruby-1.8.7-p72-i386-mswin\bin)にコピーする。

これで、「ruby script\console」でエラーが発生しなくなる。

2009年04月15日

みんなのPython Webアプリ編

みんなのPython Webアプリ編』は、丁寧な説明でしっかりした内容のWebアプリケーションの入門書です。
とても良い入門書で、対象のプログラム言語がJavaやPHPなど初心者プログラマが多いプログラム言語だったら、もっと人気が出たと思います。

本書の対象読者は、Pythonをかじったことがある、CGIプログラミングが初めての人です。
Pythonが初めての人は『みんなのPython』などの入門書で、Pythonを学んでからの方が良いです。

本書が対象としているPythonのバージョンはPython 2.5以上。
現在、主流のバージョンです。

内容についてですが、まず、Webアプリケーションの仕組みをしっかりと説明しているところが良いです。
「CHAPTER 01 Webアプリケーション概論」でWebの仕組み・HTTPの概要を学び、「CHAPTER 05 HTTPの詳細」でHTTPの詳細を、「CHAPTER 13 Webアプリケーションサーバを使った開発」でWebサーバの仕組みを学びます。
このような土台となる部分をちゃんと学ぶことができることは価値があると思います。

作成するサンプルプログラムは、簡単なCGIプログラムから始まり、MVCモデルへと更新します。
そして、テンプレートエンジン、O/Rマッパー、入力フォームを抽象化したウィジェットの作成へと、 本格的なプログラムになっていきます。

サンプルプログラムがRSSリーダーだけでなく、掲示板やメールフォームなど、よく使われるものを取り上げても良かったかなと思います。

CHAPTER 15では、クロスサイトスクリプティングやSQLインジェクションなど、セキュリティについてもしっかり解説されています。

本書では、WebやHTTPについてもちゃんと学べて、MVCモデル・テンプレートエンジン・O/Rマッパーなど本格的なWebアプリケーションの知識を学ぶことができます。
Webアプリケーションの初心者が学ぶには、とても良い本だと思います。

2009年04月16日

Smooth Controlフリーダウンロード

Delphi 2009、C++Builder 2009、RAD Studio 2009、Embarcadero All-Accessを購入された方は、高機能コントロールセットを無料でダウンロードいただけます。

期間限定!Delphi / C++Builder 2009ユーザー向け Smooth Controlフリーダウンロード

2009年6月30日までの期間限定でです。
とりえあず、ダウンロードはしておいてもいいかと。

製品版と違い、ソースコードは付属していないようです。

Smooth Controlの公式サイトはこちらだと思います。

製品版はSingle developer licenseで75EURのようです。

2009年04月19日

「悪貨は良貨を駆逐する」の正しい意味

「悪貨は良貨を駆逐する」を間違った意味で覚えていたかも。

グレシャムの法則は、「人々が良貨を欲しがるが故に良貨が消えてしまう」という逆説的な状況を表しているのです。これは、グレシャムの法則の今日的な用法(?)である「粗悪品が出回ると良いものが購入(欲求)されなくなる」とは全く異なる論理です。

歴史が教えるマネーの理論

たとえば、金20gを含む1万円金貨と金1gしか含まない1000円金貨があったとします。

この場合、1万円金貨はできるだけ手元に置いておき、1000円金貨を優先的に使いますよね。

そうすると、悪貨である1000円金貨のみが流通するようになり、良貨である1万円金貨は流通しなくなります。

これが「悪貨は良貨を駆逐する」という正しい意味です。

安い中国製品のために質の良い日本製品が売れない、というのは「悪貨は良貨を駆逐する」ではないということです。

2009年04月20日

Ruby on Rails 2.3でDEPRECATION WARNING: protect_from_forgery only takes :only and :except options now. :digest and :secret have no effect. という警告が出るの対策

Ruby on Rails 2.3でDEPRECATION WARNING: protect_from_forgery only takes :only and :except options now. :digest and :secret have no effect. という警告が出る場合の対策です。

Ruby on Rails 2.3から、protect_from_forgeryへの:digest、:secretオプションは非推奨になりました。つけても何も起こりません。

:digest、:secretオプションがあると警告が出ますから、削除しましょう。

Ruby on Rails 2.3でテストを実行すると、undefined method `use_transactional_fixtures='というエラーになるときの対策

Ruby on Rails 2.3でテストを実行すると

./test/unit/../test_helper.rb:23: undefined method `use_transactional_fixtures=' for Test::Unit::TestCase:Class (NoMethodError)

というエラーになるときの対策です。

Ruby on Rails 2.3では、TestCaseクラスをTest::Unit::TestCaseからActiveSupport::TestCaseに変更する必要があります。

RAILS_ROOT/test/test_helper.rbを修正します。

#class Test::Unit::TestCase #Ruby on Rails 2.2以前
class ActiveSupport::TestCase #Ruby on Rails 2.3以降

RAILS_ROOT/test/unit/にある*.test.rbもすべて修正します。

#class SampleTest < Test::Unit::TestCase #Ruby on Rails 2.2以前
class SampleTest < ActiveSupport::TestCase #Ruby on Rails 2.3以降

Ruby on Rails 2.0で、ActionController::TestCaseのsetupにバグがあったため、Ruby on Rails 1.2と同じようにFunctionalTestにもTest::Unit::TestCaseを使っているケースがあります。
ActionController::TestCaseのsetupにバグは、Ruby on Rails 2.1で修正されているようですから、ActionController::TestCaseを使うようにします。

RAILS_ROOT/test/functional/にある*.test.rbもすべて修正します。

#class SampleTest < Test::Unit::TestCase #Ruby on Rails 2.2以前
class SampleTest < ActionController::TestCase #Ruby on Rails 2.3以降

2009年04月23日

ActiveRecordの設定をDRYにするDrySQLライブラリ

実践 Rails -強力なWebアプリケーションをすばやく構築するテクニック』にDrySQLというライブラリが紹介されていた。

DrySQLを使うと、スキーマ情報を元にテーブルのリレーションシップや検証ルールを自動的に設定してくれる。

たとえば、従来は次のように設定する必要があった。
(DrySQLのサイトの例より)

class Employee < ActiveRecord::Base
  set_table_name "EMP123"
  set_primary_key "EMP_REF_ID"
  belongs_to :department, :foreign_key=>'DEP_NAME'
  has_many :projects, :foreign_key=>'PROJECT_NAME'
  has_one :location
  has_many :whatevers, :through=>projects
  validates_length_of :NAME, :allow_nil=>true, :maximum=>20
  validates_numericality_of :EMP_REF_ID, :allow_nil=>false, only_integer=>true
end

DrySQLを使うと、次のように簡略化できる。
残りの設定は、DrySQLが自動的に設定してくれるのだ。

class Employee < ActiveRecord::Base
  set_table_name "EMP123"
end

これで、テーブルの設計を変更したときに、ソースコードを修正する必要がなくなる。

Ruby on Railsで複数のデータベースを使用する方法

実践 Rails -強力なWebアプリケーションをすばやく構築するテクニック』に紹介されていたRuby on Railsで複数のデータベースを使用する方法。

database.ymlファイルに複数のデータベース環境を指定する。

legary:
  adapter: mysql
  database: my_db
  username: user
  password: pass
  host: legary_host

new:
  adapter: mysql
  database: my_db
  username: user
  password: pass
  host: new_host

ActiveRecordのクラス定義で、接続するデータベースを指定する。

class LegacyClient < ActiveRecord::Base
  establish_connection "legary"
end

class Client < ActiveRecord::Base
  establish_connection "new"
end

以上だ。

2009年04月24日

ActiveRecordでオブジェクトを作成しないSelect

ActiveRecordでオブジェクトを作成しないSelect。
オーバーヘッドが少ないので、オブジェクトが必要ない場合はパフォーマンスが向上する。

select_value は最初の一件を返す。
値は文字列で返される。

>> ActiveRecord::Base.connection.select_value('SELECT zip_code FROM addresses')
=> "1000000"

select_valuesは配列で返す。
値は文字列で返される。

>> ActiveRecord::Base.connection.select_values('SELECT zip_code FROM addresses LIMIT 3')
=> ["1000000", "1020072", "1020082"]

実践 Rails -強力なWebアプリケーションをすばやく構築するテクニック』に紹介されていた方法。
メソッドを一つ追加して、select_valuesを使いやすくする。

class << ActiveRecord::Base
  def select_values(sql)
    connection.select_values(sanitize_sql(sql))
  end
end

sql = %(SELECT id FROM people WHERE last_name = ?)
last_name = %(O'Reilly)
Person.select_values [sql, last_name] #=> ["12", "42"]

2009年04月25日

パフォーマンスのため、RMagickを使わずImageMagickを使う

37signalsのBascampは、イメージのサイズをこの方法で変更している。わざわざRMagickをインストールするのではなく、ImageMagickに渡すのである。

def thumbnail(temp, target)
  system(
    "/usr/local/bin/convert #{escape(temp)} -resize 48x48! #{escape(target)}"
  )
end

実践 Rails -強力なWebアプリケーションをすばやく構築するテクニック

確かに、下手にRMagickを使うよりも、素直にImageMagickに任せた方がいい場合も多そうだ。

そもそも株式会社とは

そもそも株式会社とは』を読みました。

この本は、難しい内容を一般人に理解できるように、とてもわかりやすく説明しています。
著者は岩田 規久男氏です。といえばわかりますね。

株主は次の権利を持ちます。

  • 取締役の選任・解任といった会社の方向を決定づける権利
  • 会社が解散するときに残余財産の分配を受ける権利

このことから「会社は株主のものである」といえます。

しかし、そのような見解に対して、次のような反論があります。

  • 株主丸取り論
  • 経営者が株価を気にするようになると、現場や人を大切にしなくなる

このような反論が誤解であり、株主主権に対するいわれなき恐怖に過ぎません。

ということを、わかりやすく説明しています。

専門知識を持たない初心者でも安心して読めます。

2009年04月26日

WindowsでHaskellを使うための準備

WindowsでHaskellを使うための準備

  1. GHCのインストール

    1. http://www.haskell.org/ghc/download.htmlからCurrent Stable ReleaseのWindows用Binary Packagesをダウンロードします。
    2. ダウンロードしたファイルを実行して、ウィザードの指示に従ってインストールします。
  2. 開発環境の設定

    1. 環境変数PATHにGHCのパスを追加します。
    2. xyzzyにhaskell-modeをインストールします。
      haskell-modeは次の2つが見つかりました。

      haskell-mode改Haskell mode for xyzzy Ver 0.1.2を改良したもの。
      オリジナルのHaskell mode for xyzzyもその後にバージョンアップしているので、どちらが優れているかわかりません。
      haskell-mode改を試しました。

      1. haskell-mode改からhs-mode.zipをダウンロードします。
      2. ダウンロードしたファイルを展開します。
      3. etcフォルダとsite-lispフォルダにあるファイルをxyzzyのフォルダにコピーします。
      4. xyzzy/site-lisp/siteinit.lに次の行を追加します。
        ;; haskell-mode
        (push '("\.hs$" . editor::hs-mode) auto-mode-alist)
        (autoload 'editor::hs-mode "hs-mode" t)
      5. ダンプファイルを更新します。

2009年04月28日

EurekaLog導入レポート

EurekaLogの導入レポートです。

EurekaLogとは

EurekaLogは、Delphi/C++Builder用のバグ発見・報告ツールです。
自作のソフトウェアにを組み込むことで、予期せぬエラーに対して詳細な情報を得ることができます。

Windowsのエラー報告ダイアログのようなエラーの報告を送信する機能もあり、 ソフトウェアの利用者からメールなどを使ってバグ報告を受け取ることができます。

そして、開発環境に統合されたEurekaLog Viewerによって、受け取ったバグ報告からエラーの発生したソースコードの行を知ることができ、問題解決が格段にはかどります。

EurekaLog(その1) - 不意に起こる例外に対処する」「EurekaLog(その2) - メモリリーク検出とIndyとの関係」も参考になります。

購入する前に

購入する前にEurekaLogのサイトにあるDownloadsのページのデモアプリケーションとVideo Tutorialsの動画で、EurekaLogのおおよそのイメージをつかみました。

デモアプリケーションではエラー報告ダイアログが英語表記だったのが気になりましたが、Video Tutorialsの動画で表示文字を編集できることがわかり、安心しました。

Delphi 2009 でEurekaLogを使う」のレビューもとても参考になりました。

体験版

Downloadsのページから30日間使える体験版(Trial versions)がダウンロードできます。
体験版で、私が持っているC++Builderでちゃんと動作することを確認できました。
また日本語の表示なども確認しました。

購入

EurekaLogBuy nowのページから、購入申し込みができます。

申し込みフォームは複数言語に対応していて、日本語にも対応しています。
ただし、日本語を入力することはできないようでした。

購入後、製品版をダウンロードするためのIDとパスワードがメールで送られてきます。

インストール

インストールは、インストーラを実行するだけ。
インストーラは良くできていて、複数バージョンのC++Builderがインストールされている場合、インストーラが自動的に見つけてくれて、それぞれのバージョンに対してインストールしてくれます。

使い勝手

IDEに統合されるので、とても使いやすくなっています。
Video Tutorialsの動画を見た後なら、迷うことはないと思います。

EurekaLogの使い方

EurekaLogを使うには、IDEのメインメニューから「プロジェクト」-「EurekaLog Options」を選択して、EurekaLogを有効にします。
あとはプロジェクトを再構築するだけです。

本当にEurekaLogが有効になっているか心配な場合は、次のコードで確認できます。

#ifdef EUREKALOG
  Application->MessageBox(L"Compiled with EurekaLog.", L"EurekaLog");
#endif

エラーの報告

エラーの報告方法は、メール・HTTP・FTTPS・FTP・バグ管理システムの方法があります。

メールを使う方法は、ウィルス対策ソフトで問題が発生する可能性を考慮して、使用するのは控えました。

HTTP・HTTPSでは、Basic認証も扱えます。
エラー報告をHTTPで送信し、PHPを使ってメール送信するようにしました。

バグ管理システムは、BugZilla・FogBugz・Mantisに対応しています。
私が使用しているMantisにも対応しているのが嬉しいです。
MantisはPHPで作られており、安価なレンタルサーバでも使用することができ、導入も簡単で、必要十分な機能を備えています。
Mantisへのエラー報告は、これから試したい機能です。

エラーの報告方法についてはもっと試行錯誤して、ベストな方法を考えたいと思います。

エラー報告画面

エラー報告画面のメッセージをどうしようかと思い、最初はWindowsのエラー報告画面を参考にしようと考えました。

エラー報告画面

この問題を Microsoft に報告してください。

弊社では、この報告を製品の改善に役立てるとともに匿名の機密情報として扱います。

あらためて見ると、このメッセージを見て報告したいとは思いません。 Microsoftは本当に報告してもらいたいのか、疑問を感じます。

エラー報告画面は自分で考えることにしました。

エラー発生場所の発見

エラー報告が届いたら、EurekaLog Viewerでエラーログを表示します。

Call Stackをダブルクリックすると、ソースコードのエラーが発生した該当行にカーソルが移動します。

使いやすくて、好感が持てます。

総評

とても多機能で高性能なツールです。 使い方もわかりやすく、すぐに使うことができました。

それなりの金額です($99(US))が、それだけの価値があると思います。

追記

2009年7月23日 「EurekaLog導入後」の記事を公開しました。

2009年04月30日

無印良品のたためるスーツケース(キャリーバッグ)

日経デザインの2009年5月におもしろいスーツケースが紹介されていました。
無印良品のたためるスーツケース「タタメル二輪キャリー」です。

旅行や出張にスーツケースは欠かせない存在です。
でずが、スーツケースは使用時間よりも保管時間の方がずっと長くなります。
日本の住宅事情では、限られた空間の中でスーツケースの収納場所は問題でした。

そこで無印良品の「タタメル二輪キャリーです。
この「タタメル二輪キャリーはたたむことができるのです。
コンパクトにたためますから、保管するスペースの問題が見事に解決。

muji_suitcase01.jpg muji_suitcase02.jpg muji_suitcase03.jpg

日経デザインのアンケートのコメントには、

「旅行に行く際にたたんだ状態で出かけ、帰りにお土産を入れて帰れる」

という、おもしろい使い方も。

工夫次第で、いろいろと便利な使い方がありそうです。

たためるスーツケースというアイディアはすばらしい。
あとは、サイズや色をもっと増やしてもらいたいです。

About 2009年04月

2009年04月にブログ「山本隆の開発日誌」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

前のアーカイブは2009年03月です。

次のアーカイブは2009年05月です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35