プログラム悪戦苦闘日記

はてなダイアリーからの移行(遺物)

2005-02-01から1ヶ月間の記事一覧

Strutsを使ってみた part2

使いやすいフレームワークの一つに、使いたい機能だけをつまみ食いできる、というのがあると思う。Strutsも使いたい機能だけを使うことにした。全部勉強するのもめんどくさいからね。とりあえず、便利だと思った機能は、 画面遷移の管理 これのためにStruts…

外貨預金って… part2

このネタにpart2があると思わなかったが、まだ書くネタがあった。今どういう訳か仕事上で自分の席の隣のシマにいる人たちが、「外貨預金サポート」とかやっている部署なのである(自分は関係ない)。ここの人たちは、いわゆる普通のお客さんを相手にするサポ…

Strutsをつかってみた

ずっとよく聞くStrutsとは何か、ちとやってみた。なんか宣伝文句が多くてよくわからないものだったが、どうやらWebアプリケーションを開発するためのフレームワークであった。何ができるかというと、 画面遷移の管理 カスタムタグライブラリの提供 Java Bean…

FOX toolkitを導入する

FOX toolkitの入手とセットアップをメモしておく。具体的な使い方はそのうち書くかも…。以下はWindows + VC7.0の場合。 本家 http://www.fox-toolkit.org/ のDownload へ行く fox-1.4.5.zip(NEW STABLE) をダウンロードする(2005/02/20時点) 適当なディレク…

ブラウザ FireFoxってどうよ

いい加減 IE を使うのが嫌になったので、なんかちまたで騒がれているFireFoxとかいうブラウザを使ってみた。良いところはFireFoxのサイトへ行けばいくらでも書いてあるので、悪いところをあげてみた。 重い!とにかく重い! ローカルにあるHTMLファイルをダ…

スレッドデザインパターン - Read-Write Lock -

6章の「Read-Writre Lock」をReadWriteLockインターフェイスを使ってみた。ここで注意したいのが、ReentrantReadWriteLockの均等性ポリシーをfair(コンストラクタの第一引数をtrue)にしておかないと、Readerスレッドの数が多いので、いつまでもWriterスレッ…

Tiger Concurrency Utilities -part3-

ひさびさの更新になってしまった。今回はReadWriteLockの話。 ReadWriteLock インターフェイス 1.概要 「読み」は多数OKでも「書き」はひとりだけ、というときに使うロック。キャッシュなんかによく使われるらしい。操作は、 ReadWriteLock#readLock() で読…

ようやくるびま第5号

1ヶ月お休みして5号がでてました。 http://jp.rubyist.net/magazine/?0005 今回のWin32OLE活用法は ADO の話でした。まだActiveX あったんだ(w

boost::filesystem::path 割り算ができない

C++

boost::filesystem::pathで割り算をするとき、「割る数」に日本語や空白が入っていると例外をスルーしてしまう。 using namespace boost::filesystem; path dir("C:\\", native); string str("ほえほえ"); // ↓ここで例外が出る dir /= str;仕方ないので、こ…

いまさら、フォルダダイアログの出し方 (MFC)

いまさらだが、フォルダダイアログはコモンコントロールにないので自分で作る必要がある。やり方は2つあって、 SHBrowseForFolderをつかったエクスプローラ型 CFileDialogでフォルダも選択できるようにしたもの だ。前者は有名だが、後者はマイナーだ。CFil…

スレッドデザインパターン - Producer-Consumer -

TableクラスをLinkedBlockingQueueで実装した。EaterThreadでは要素を取り出すとき、空の場合は待機してほしいので、poll()ではなくtake()を使った。poll()にすると、要素がないときブロックせずにnullを返してしまう。また、MakerThreadのid_はロックする必…

Tiger Concurrency Utilities -part2-

今回は同期コンテナであるBlockingQueueのはなし。 BlockingQueueインターフェイス 1.概要 「Queue」というくらいだから、java.util.Queueインターフェイスを継承している。 ブロッキングが起こるタイミングは、 キューが空のときに、要素を取り出す キュー…

外貨預金って…

日本の定期預金の利率がアホみたいに低いので外貨預金について調べてみた。 とりあえず知っておくべき用語は、次のものくらいらしい。 TTS: 円 → 外貨 にするときのレート(外貨単位) たとえば 1米$ = 105.0円 TTB: 外貨 → 円 にするときのレート(外貨単位) …

スレッドデザインパターン - Gurded Suspentation

Conditionを使って3章の「Gurded Suspentation」を書いてみた。 このサンプルは、ClientThreadがRequestを出して、ServerThreadがRequestを非同期に処理する、というもの。Requestの一時置き場にRequestQueueを使っている。 ちなみにこのRequestQueueは、実…

スレッドデザインパターン - Single Threaded Execution

Lockインターフェイスを使って、1章の「Single Threaded Execution」を書いてみた。 Main.java package dp.chap01; public class Main { public static void main(String[] args) throws Exception { System.out.println("Testing Gate, hit CTRL+C to exit…

Tiger Concurrency Utilities

まずは同期オブジェクトから。 Lockインターフェイス - ミューテックス 1.sychronizedの違い synchronizedはオブジェクト全体にロックがかかるが、LockはLockオブジェクトにロックがかかる。 2.ロックのしかた ・普通にロックするときは、Lock#lock()を呼ぶ…

JDK1.5.0のスレッドについてメモ

いずれちゃんとまとめるとして、とりあえず列挙しておく。 1.同期オブジェクト ・Lock (ミューテックス) いわゆるミューテックス。Javaはデストラクタがないので、Lock#unlock()をfinally内に書くのはお約束。 WindowsプログラムではCriticalSectionと呼ば…

boost 1.32.0をVC7.0にインストールする

C++

1.実体をダウンロードする 本家 http://www.boost.org の download から boost_1_32.zip をダウンロード 2.コンパイル用にjamをダウンロードする 先と同じ場所からWin用のjam boost-jam-3.1.10-1-ntx86.zip をダウンロード 3.boost_1_32.zipを解凍 以下解凍…