« 2006年06月 | メイン | 2006年08月 »

2006年07月 アーカイブ

2006年07月02日

千円札は拾うな。

千円札は拾うな。

成長には、変化すること、投資すること、捨てることが重要だ。

これらにはリスクが伴う。

しかし、生きていく以上はリスクから逃れることはできない。

リスクに立ち向かい、決断を下そう。

2006年07月09日

レイコ@チョート校

レイコ@チョート校 アメリカ東部名門プレップスクールの16歳

アメリカ合衆国で三指に入る名門の寄宿制私立高校チョート校に留学した著者の留学体験。

その教育方法が興味深い。

  • 数学

    宿題は、新しい章を読んで、問題を二十問ほど解くこと。

    ところが次の日、数学の授業が始まり、驚いた。先生のミスター・デマーコが教室には行ってくるなり、十二人の生徒が、前の晩の宿題でわからなかった箇所を口々に質問するのだ。

    授業は、わからないところを解決する場だということに、私はこの時、初めて気づく。

授業そのものの考え方が、日本とは違うようだ。

日本の授業のように先生の講演を聴くだけでは、その場だけわかったつもりになってしまう。

疑問、問題意識を持って授業に向かう。 学習効率が大きく変わってくるだろう。

  • 世界史

    必修科目である世界史の宿題は、毎晩、課題の単元を読み、ルーズリーフに自分で要点をまとめ、驚いたことなど「リアクション」を書くこと。授業は、決まった順序では進まない。テキストを読んで疑問に思ったこと、おもしろいと感じたことを誰かが発表し、そこから始まる。

世界史も数学と同じように、興味や疑問、問題意識を持って授業に向かうことを、大切にしているようだ。

  • 英語

    「中には、『なぜシェイクスピアなのか』と疑問に思っている人もいると思う。彼の作品を学ぶわけは、彼の想像力=ストーリーの面と、表現力=書き方の面の両方にあるのだ。読み物としてただ興味深いだけでなく、自分で文章を書くときにもきっと参考になる。」

なぜ学ぶのか。 目的をはっきりさせている。

このほかにも、美術の授業やパリ講和会議のシミュレーション、大統領選なども興味深い。

自分で授業を作ってしまうことも可能だ。寮のプリフェクトの独りジェニーは二学期、メンバー数人と先生を集めて「韓国史」のクラスを開講した。

授業の進め方だけが凄いのではない。学校のあり方そのものが、どうやら違うようだ。

2006年07月15日

BDS2006(BCB)でWinHelpを使う

C++ Builder 6 で作成したプロジェクトを Borland Developer Studio 2006 に更新すると、ヘルプファイルを開けなくなる。

Application->HelpContext() などでヘルプを表示しようとすると、「状況関知型ヘルプがインストールされていません。」というエラーメッセージが表示されるようになった。

原因は、標準のヘルプシステムが WinHelp から HTMLHelp に変更されたため。

Borland Developer Studio 2006 で WinHelp を使用するには、Main フォームに次の行を追加する。

#pragma link "WinHelpViewer"

これで、C++ Builder 6 と同じように WinHelp を使用することができる。

2006年07月16日

BDS2006(C++Builder)からRubyを使う

Borland Developer Studio 2006(C++Builder)からRubyを使ってみます。

箏音の日記 - C++とRubyC#からRubyのコードを実行するテスト を参考にしました。

Rubyをコンパイルする手間を省くために、Ruby-mswin32 から 最新リリース版である ruby-1.8.4-i386-mswin32.zip をダウンロードします。

ダウンロードした ruby-1.8.4-i386-mswin32.zip を展開し、bin\msvcrt-ruby18.dll をC++Builderのプロジェクトを作成するディレクトリにコピーします。

C++Builderを起動し、VCLフォームアプリケーションを作成します。

まず、起動時にDLLを読み込み、終了時に解放します。

Unit1.hに次のコードを追加。

private:
  HINSTANCE hDll;

Unit1.cppに次のコードを追加。

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
  hDll = LoadLibrary("msvcrt-ruby18.dll");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
  if (hDll) FreeLibrary(hDll);
}

DLLが正しく読み込まれていることを確認します。

次は、Rubyプログラムを実行してみます。

Unit1.hに次のコードを追加。

private:
  __declspec(dllexport) void (*ruby_init)(void);
  __declspec(dllexport) unsigned long (*rb_eval_string)(const char*);
  __declspec(dllexport) int (*ruby_cleanup)(int);

Unit1.cppに次のコードを追加。

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
  hDll = LoadLibrary("msvcrt-ruby18.dll");
  if (hDll)
  {
    ruby_init = (void (*)(void))GetProcAddress(hDll,"ruby_init");
    rb_eval_string = (unsigned long (*)(const char*))GetProcAddress(hDll,"rb_eval_string");
    ruby_cleanup = (int (*)(int))GetProcAddress(hDll,"ruby_cleanup");
  }
}

フォームにボタンを追加し、ボタンを押したときのイベントを記述します。

//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  if (!hDll)
  {
    Application->MessageBox("msvcrt-ruby18.dll が見つかりませんでした。",
                            "DLL エラー",
                            MB_ICONSTOP | MB_OK);
    return;
  }
  //Rubyインタプリタの初期化
  ruby_init();
  //スクリプトの実行
  rb_eval_string("File.open('a.txt', 'w' ) { |f| f.puts 'success' }");
  //Rubyインタプリタのクリーンアップ
  ruby_cleanup(0);
}

実行してみましょう。 ボタンを押すとsuccessと記述されたa.txtが作成されると成功。

次に、スクリプトをファイルから読み込んで実行します。

Unit1.hに次のコードを追加。

private:
  __declspec(dllexport) void (*ruby_init_loadpath)(void);
  __declspec(dllexport) void (*rb_load)(unsigned long, int);
  __declspec(dllexport) unsigned long (*rb_str_new2)(const char*);

Unit1.cppに次のコードを追加。

__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
  hDll = LoadLibrary("msvcrt-ruby18.dll");
  (中略)
  ruby_init_loadpath = (void (*)(void))GetProcAddress(hDll,"ruby_init_loadpath");
  rb_load = (void (*)(unsigned long, int))GetProcAddress(hDll,"rb_load");
  rb_str_new2 = (unsigned long (*)(const char*))GetProcAddress(hDll,"rb_str_new2");

フォームにもう一つボタンを作成し、ボタンを押したときのイベントを記述します。

//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  if (!hDll)
  {
    Application->MessageBox("msvcrt-ruby18.dll が見つかりませんでした。",
                            "DLL エラー",
                            MB_ICONSTOP | MB_OK);
    return;
  }

  //Rubyインタプリタの初期化
  ruby_init();
  ruby_init_loadpath();
  // スクリプトをファイルから読み込んで実行
  rb_load(rb_str_new2("test.rb"), 0);
  //Rubyインタプリタのクリーンアップ
  ruby_cleanup(0);
}

test.rbファイルはこう書いてみました。

File.open('b.txt', 'w' ) { |f|
  f.puts 'success'
}

実行してみましょう。 ボタンを押すとsuccessと記述されたb.txtが作成されると成功。

続く

2006年07月22日

JDeveloper9.0.4.0 で JUnit を使う方法

インストール方法

  1. JDeveloper Old Versions Archives から、JUnit Extension for Oracle9i JDeveloper (Version 9.0.4.1.1)のリンクを選択する

  2. jdev9040_JUnit.zipをダウンロードする (OTNのアカウントが必要になります。)

  3. ダウンロードしたファイルを展開し、jarファイルを jdev\lib\ext にコピーする

  4. JDeveloperを再起動する

使用方法

  1. テストするクラスのソースファイルを選択する。

  2. メニューから「新規,,,」→「General」→「Unit Tests(JUnit)」

2006年07月23日

Javaのソースコードを整形する

Javaのソースコードを整形するソフトを探した。

最初に試したのが、Jindent

しかし、無料ではない上に、日本語が文字化けした。
文字化けに関しては設定があるのかもしれない。

次に試したのが、Artistic Style

Java以外にもC, C++, C#に対応している。
日本語も問題なかった。

修正するのはインデントだけのようで、大きな変更が行われないので、安心して使用できる。

xyzzyでプログラミング/整形 にxyzzyから Artistic Style を使う方法を発見。

AStyle.exeをPATHの通ったディレクトリにおいて、

C-x #
# astyle -j

で、バッファ全体のソースコードが整形される。

日本語訳のホームページを発見。これは便利。

2006年07月29日

色彩検定3級

色彩検定(正式名称は『文部科学省後援 ファッションコーディネート色彩能力検定』)3級の合格通知が届きました。

これから受験する人の参考になるかもしれないので、私の勉強方法を紹介します。

まずは、公式テキストから。

試験問題は、公式テキストの中から出題されるようです。

まったく同じ写真が使われるので、公式テキストに目を通しておくだけで、点数が稼げます。

予想問題集などよりも、よっぽど確実です。

この問題集、年度別なのが辛い。

3級受験者にとって、1級や2級の問題は必要ないんですよ。 級別にしてちょっと安くして欲しいです。

とはいえ、試験勉強に欠かせないのも事実。 試験勉強は、この過去問題集を中心に行いました。

最初は友人から借りていたのですが、改訂版が出版されていることを知り購入しました。

公式テキストを読んでも全然覚えられませんので、この本で覚えました。

試験対策のテクニックも参考になります。「ド・リ・ル・チュウ・タイ・ホ」とか。

ただし、品質に問題があります。(改訂前の方がよかった。) 怪しい日本語、色の再現性、明らかな記述ミス(83ページと200ページのPCCSとマンセルの対応が違う)など。

そうはいっても、重宝した本でした。

暗記だけでは合格できないこの試験。 色を見分ける力が欠かせません。

そこで、この配色カードを使いました。

カードを切り、色別やトーン別に分けたりして、練習しました。

About 2006年07月

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

前のアーカイブは2006年06月です。

次のアーカイブは2006年08月です。

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

Powered by
Movable Type 3.35