kanizaのブログ

コンピュータ、ソフトウェア、映画、音楽関連や家族のことなど、思いついたことを書きます。

プログラミング

アジャイルプラクティス

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣作者: Venkat Subramaniam,Andy Hunt,木下史彦,角谷信太郎出版社/メーカー: オーム社発売日: 2007/12/22メディア: 単行本(ソフトカバー)購入: 35人 クリック: 995回この商品を含むブログ (291…

Cocoa Application Tutorial

Appleが用意しているCocoaのチュートリアルを久々に眺めてみたら、以前とけっこう変わっている。MVC構造により忠実になっているなど、突っ込んだ内容になっている。Core Data版との整合性を保つためもあるかな。Cocoaでの開発手順もだんだんと変わってきてい…

楽しくドキュメントを書く

ウノウラボのyukiさんが「ドキュメントを楽しく楽に書くために」という記事を書いておられる。僕も少し思うところがあるので書いてみる。ここんとこ、シゴトでのドキュメント書きの比重が高まっている。内容は、Javaで書かれたツールの設計についての解説。…

Grailsのお試し

先日正式版1.0がリリースされたGrailsも試してみた。Groovy版のRuby on Railsみたいなもんですな。Grailsを入れれば、あとはMacに入っているJava環境のまま使える。データベースはGrailsが持っているらしい。これもチュートリアルのとおりにgrailsコマンドで…

Ruby on Railsのお試し

Ruby on Railsって、Cocoa勉強会で動かすところを見せてもらったくらいで自分でいじったことないから、体験してみようと思ってやってみた。Mac OS X Leopardにははじめからrailsコマンドが入っているんで、最新版ではなさそうだけどこれで試す。まずはMySQL…

package-info.java

Java 5から、Javadocのパッケージコメントはpackage-info.javaというJavaファイルに書けるようになったのだそうだ。ついこのあいだまで知らなかった。EclipseではNew Java Classで作ろうとするとクラス名が不正だと怒られるので、New Fileで作るとよろしい。…

UML

シゴトで書いたJavaコード群をUMLのクラス図にしたりしている。クラス図を作っていて、Genericsを使った型をどう表記するか知らないのに気付いた。調べたら、ちゃんと型パラメタを持ったクラスの記法があるんですな。型パラメタを右肩に書いて点線で囲むのだ…

Genericsで汎用のオブザーバ管理クラス

電車の中でなんとなく「こーいうクラスあったら便利かも」と思いついたので書いておく。Observerパターンを実装するとき、監視される側(Subject)ではオブザーバインスタンスをコレクションで管理したり、通知のたびにそのコレクションを走査してメソッドを呼…

今年の技術ネタ

1月に「今年の技術ネタは何かなぁ」と書いて、当時はGroovyあたりかと想像していたのだけど、けっきょくGroovyはぜんぜん使わず。それで、いま振り返ってみると jMock 2 が大きかったように思う。前はjMock 1.xを使っていて、2を使いはじめたのは5月ごろ。jM…

Javaレクチャー

昨晩、若い人を相手にJavaの個人レクチャーを実施。Javaの資格のために勉強しているのだそうだ。前にちょっと話をしたときは「Serializableって何?」というようなことを聞かれて簡単に説明した。今回はスレッドっていったい何なのか、あと、内部クラスとか無…

Closeable

JavaのIO系を代表するReader、Writer、InputStream、OutputStreamクラスはそれぞれclose()メソッドを持っている。Java5から、これらのクラスがCloseableインタフェースを実装して、close()はそこで宣言されている。以前はどのclose()もまったく別のclose()だ…

Smalltalkベストプラクティス・パターン

ケント・ベックのSmalltalkベストプラクティス・パターン―シンプル・デザインへの宝石集作者: ケントベック,Kent Beck,梅沢真史,皆川誠,小黒直樹,森島みどり出版社/メーカー: ピアソンエデュケーション発売日: 2003/03メディア: 単行本購入: 7人 クリック: 9…

Java 6のSwingドラッグ&ドロップ

Java 6のSwingではドラッグ&ドロップが大幅に改良されている。 First Class Drag and Drop Support in Mustang たとえばJTreeでのドロップポイントの表示やノードの自動展開など、これまで自前でコードを書いていた機能が実装されている。あのへんははかなり…

Google Collections Library

Apache Commons CollectionsのGoogle版みたいなライブラリ。Genericsにも対応している。Joshua Blochも関わっているようだ。 http://code.google.com/p/google-collections/ FAQによると、Google社内ではいろいろなサービスで既に利用されているとのこと。た…

Java Compiler API

Java 6から実装されたJava Compiler API(javax.tools)を使ってみた。以前はJavaプログラムからコンパイラを使いたくても、javacは配布可能なJREには含まれていなかったから別の方法をとるしかなかった。JavaCompiler、JavaFileSystemManager、JavaFileObject…

みんながプログラミング

僕はもっとたくさんの人(っていうかみんな)がプログラミングした方が良いと思っている。といっても、みんながCやJavaを書くことを望んでいるわけじゃない。プログラミングっていうのは、コンピュータにやらせたいことをあらかじめ定義からまとめて実行させ…

学生さんの質問

とある学生さんに「C言語のプログラミングを勉強したいのでフリーのエディタとコンパイラを教えてほしい」と聞かれたので「WindowsならMeadowとCygwinのgccがいいと思うよ」と答えた。こちらから「なんでC言語なの?」と聞いたら「Cがいちばんのオオモトっぽ…

Cocoa勉強の日々

この数日間、Cocoa中心の暮らしをしてみた。結果、何かできたかというと別に大したものはできなかったわけで、熟練者から見ればしょーもないことで頭を悩ませていたのだろう。ただ、これまでは時間があまりない中で手っ取り早くできそうなことばっかり試して…

NSViewへのオーバーレイ表示

Cocoaについて勉強したメモ。僕はCocoa初級者なので間違ってるかもしれません。 はじめに あるNSView(今回はPDFView)の上に絵を描きたいと思った。カーソルとか、そういう感じでオーバーレイ表示されるやつ。すぐ思いつくのが次のような方法。 サブクラス…

NSArrayControllerにバインディングしたNSTableViewにドラッグ&ドロップ

Cocoaについて勉強したことのメモ。NSTableViewのドラッグ&ドロップ処理は、dataSourceにtableView:acceptDrop:row:dropOperation:などのメソッドで記述できる。NSArrayControllerにバインディングしている場合、NSArrayControllerのサブクラスを作ってさっ…

svn merge

シゴトで、長いことSubversionのbranch上で作業していた大きな変更をtrunkにマージした。branch上で作業を進めているとtrunkとマージする時のことが気になってしまうので早くマージしたかったのだけど、なかなかタイミングがつかめなかった。Subversionは、C…

JGoodies Binding入門

日本語でJGoodies Bindingを扱った記事というのはなかなかないので、ちょっとだけ書いてみる。僕自身の経験と理解をもとにしているので間違えてたらごめんなさい。 JGoodies Bindingって何? JGoodies Bindingは、あるオブジェクトが持つ値(典型的にはJavaBe…

オブジェクト指向のこころ

デザインパターンとともに学ぶオブジェクト指向のこころ (Software patterns series)作者: アラン・シャロウェイ,ジェームズ・R・トロット,村上雅章出版社/メーカー: ピアソン・エデュケーション発売日: 2005/09/16メディア: 大型本購入: 51人 クリック: 615…

妥協ライン

シゴトでしばらく取り組んでいた、ちょっと大きめの変更がひと段落。これまで作ってきたフレームワークの機能を活用して実装できたので気分がよろしい。まぁ、100%満足というか思い通りにならない部分もあるわけだけど、そういう妥協点に関しても、変な依存…

その年の技術ネタ

僕のJavaプログラミング生活にとって、2006年はデータバインディングとPresentation Model、つまりJGoodies Bindingな年だったなぁと思う。使いどころとかを思い知って、既存のコードの多くの部分を改良できたし、新しいコードも納得のいく設計ができた。そ…

整理整理

今日は土曜日なんだよね。シゴトは昨日からだったし、今日もフツーにシゴトだったので土曜日な感じがしなかった。でも職場は人が少なかったなぁ。まだ年が明けてない人が多い。人もいないということで、これまで手をつけようと思ってつけられなかったリファ…

プログラミングの心理学

プログラミングの心理学―または、ハイテクノロジーの人間学 25周年記念版作者: ジェラルド・M.ワインバーグ,木村泉,久野靖,角田博保,白浜律雄出版社/メーカー: 毎日コミュニケーションズ発売日: 2005/02メディア: 単行本購入: 4人 クリック: 54回この商品を…

CallableとかRnnnable

JavaのCallable#call()とかRunnnable#run()とかは処理の抽象化の極致といった感じだよな。会社で部下に「シゴトすれ」と言うような感じ。みんなそれぞれ自分のシゴトを知っている(ことになっている)。同じように「ウチに帰れ」と言えば、従業員はそれぞれ…

java.util.concurrent

昨日の続きでマルチスレッドプログラミング重要ということでJDK5から入った並行処理ユーティリティパッケージjava.util.concurrentについてちょっと調査。ちょっと見えてきた。Executors.newSingleThreadExecutor()で生成したExecutorServiceにCallableをsub…

Swingでのマルチスレッド

JavaのSwingでのマルチスレッドなプログラミングをあれこれやった。僕はマルチスレッドプログラミングの知識が足りないなぁとしみじみ思う。Swingにはシングルスレッドルールというのがあって、GUIコンポーネントはイベントディスパッチスレッドからのみアク…