プログラミング

手段と目的

だから、DIについて、小難しいこといっても、ほとんどの人はついてこない、理解しない。もっと誰でも理解できるようにメリットを話さないとだめ。 DIを意識させたらキャズムは超えられない - ひがやすを blog (キャズムを超える前に深く潜行した気がするが)…

ちょっと感動

した。というか驚きだ。 趣味で苦しむ VC++ のページ 私がこの歳になっても、運悪く大病を患っても、コンピュータを触り今と同じようにプログラムを書いているだろうか?何度自問しても「無理」という言葉しか出てこない。老いた自分を想像することなど考えも…

C一色

これは直接聞きたかった。 KONAMI、スクエニ、セガ、バンナム、コーエーの大手5社がゲーム開発現場の未来を再び討議 ゲームの開発が仕事なんだから当たり前なのだが、今もこれからもプログラミングを第一義にしているのはちょっと羨ましいな。あと、 …

今更何を

マイクロソフト製品ならびにサービスにおける外来語カタカナ用語末尾の長音表記の変更についてえーと、正しい日本語とか日本人の誇りは置いておいて、ここでは本音を書くよ。そもそも今となっては打鍵数が少ない方が良いし、serverはサーバだしinstallerはイ…

リファクタリングの怖い話

フレームワーク中で使用している、あるオブジェクトを一意に識別するための項目を"id"から"name"に変えることにした。 昔々であればgrepかけて修正する部分を局所化して、と、お決まりの作業なんだが、最近のIDEは便利なリファクタリング機能が標準で付いて…

リストビューとBeep

Windowsのアプリケーションでは、リストビューで行や列をクリックしたり選択するとBeep(Bell?)が鳴動する実装があるが、これが煩くて仕方が無い。Beepは音量調整ができず、止めたくてもレガシデバイスを無効にするしかないからだ。 そもそもGUIが選択された…

ならとでも

Javaに限らないレトリックだが、Java"なら"できます、とJava"でも"できます、の違いは重要だ。※ まるごと Ruby! Vol.1 この本、やはり(Rubyに懐疑的な)Javaプログラマは読むべき。今と後10年を考えると、Javaの最大の長所と短所はやはりC言語の構文を真似た…

習慣の生き物

私はJavaでオブザーバを実装する場合、Observable/Observerではなくイベントリスナを使う。 イベントリスナのパターンを既存のクラスに追加するには1. イベントリスナ・インタフェースを作成 public interface IHogeListener extends EventListener { void h…

ETL Tool

基本的に「プログラミング・レス」を標榜、推進するツールなので、最初は「ケッ」とか思ったが、いろいろと調べていくと中々に実用的なツールであることが判ってきた。(ESBとかいう物よりもずっと実用的だ)ETL Toolを極簡単に説明すると 様々なデータソース…

言語が思考を規定する

業界で最初にこの言葉を知ったのは、オブジェクト指向と国民性か何かの記事で、日本語は英語に比べてロジカルな表現やメタな表現が苦手である、云々だったと思う。 残念ながら出自は忘れたが、そんな国民の中の一人がRubyのようなオブジェクト指向でロジカル…

待ち受け中のソケット

JavaでもC#でも良いが、仮にJavaだと仮定して、口をあけてメッセージを持ち受けているスレッドのソケットに対して、同期した処理を実施したい場合はどうすれば良いだろう。 class ReceiveThread extends Thread { Socket sc; public ReceiveThread(Socket sc…

ピッケル本

プログラミングRuby 第2版 言語編/Dave Thomas, Chad Fowler, Andy Hunt, 田和 勝(訳), まつもと ゆきひろ(訳) 読了。面白かった。言語の解説本はリファレンスが目的だったりするため、一度目の読みで面白かったというのは記憶にあまり無いのだが、そういう…

ソケット偉大なり

.NET(Win32)ならWM_COPYDATAを使うことで比較的簡単にアプリケーション間通信が可能だったが、Javaではさすがに他の仮想マシン下のウインドウに同メッセージを放り込む事もできないので、同様のことをソケットの実装で組んだ。実際にソケットで組んでみると…

キメラ

以前に書いたことがあるが、Rubyの勉強を始めるに当たり、Javaを多少使えるからといってJRubyから始めることをしないで良かった。 キメラな言語系は元々の原型を理解してから使うべきであり、流行に煽られて初学者が使うものではないんじゃないか。。偶々JRu…

現在のJavaの問題

は、なんといっても最新のJava6をきちんと解説する書籍や情報が少ないことではないだろうか。Javaは過去に二度のブーム(黎明期(インターネット期)とサーバサイド期)を経験し、その間に大量の書籍が発行され、ネット上にも情報が公開されたが、Java2SDKバージ…

JISX3010 6.5.15 条件演算子

return exp ? A : B 日記上では散々"三項演算子"と書いていたが、これは"条件演算子"が正しいらしい。(というか、少なくともJIS Cではそう明記されている)書籍かPDFを購入しないと駄目だと思っていたんだが、PDFを閲覧するだけなら無料なんだな。 JISC 日本…

TDD

思うところがあって何か書きたかったんだが、上手くまとまらない。とにかく、ドキュメントにしろテストにしろ、どうも我々は目的と手段を履き違えてしまいがちだ、ということ。ソフトウェアが正しく動くかどうかを証明するのがテストであって、「テストのた…

ロベールのC++教室

ロベールのC++入門講座 / ロベール周りから評判が聞こえてくるので、野次馬的に購入した。 C++の本は何年ぶりかなので、楽しみだ。

コードを書く奴がコードを支配しよう

負の面だけを書いても解決しない。今回はプログラマとしてSIerのフレームワークに少しでも対抗する策を書いておこうと思う。例えば、Strutsベースのフレームワークの場合であれば、URLに対するトランスミッションとアクション、それに付随するバリデーション…

RESTとROAのベストプラクティス

RESTful Webサービス/Leonard Richardson (著), Sam Ruby (著), 山本 陽平 (監修), 株式会社クイープ (翻訳) 順不同で読み進めている。どの章も興味深いが8章の内容が特に素晴らしい。この辺、リソースとトランザクションの設計に関する実践的な解説は中々お…

解消されないメモリ不足

仕事用PCのは1GBの物理メモリを搭載しているが、最近これが全く足りないと感じてしまう。当時、開発用PCに1GBものメモリを奢ったときは「これで暫くはメモリ不足には悩まされないだろう」と高を括っていたものだが、今やVisual StudioとEclipseを起動してし…

3年越し

で今年こそ行けると思ったデブサミだが、駄目そうだ。3年位行けてないので今年こそと思ったのだがなぁ。

'("'")

C.16. The Named Character Reference ' - HTML Compatibility Guidelines文字参照にはアポストロフィ(')も追加されていたんだな。恥をかいてしまった。

RMIで公開されたオブジェクトが破棄される時を知る

先日書いたエントリRMIでいいじゃないかは、たくさんのブックマーク登録を頂いたようでちょっとびっくりしている。 これは温故知新ということもあろうが、それよりもRMIの最新の仕様に関して、私も含めて知らなかった開発者が多いことの証明でもあったのでは…

RMIでいいじゃないか

ここで何度も採り上げてきた話題として、複数のクライアントアプリケーション間でオブジェクトを共有するという要件があった。C#では.NET Remotingで書いていた機能をJavaでどう実現するかというのが肝だった。以前には同様にRMIで実装するつもりでいたが、…

界面と表層

まず1つは、異なる界面をリファレンスのフラットな空間に配置していることが問題に見える。これはパッケージの使い方の問題だ。そこで、界面を分離する。 Javaのメタプログラミング - L'eclat des jours 丁度今、私自身がSwingを俯瞰していることもあり、激…

使ってみて判ること

C#とJavaは似たような物だと思っていたが、実際にそれぞれを使ってソフトウェアを書くことをある程度経験してみると、似ていると思っていた両者はかなり違いがあることが判る。そして、その違いを実感できるのは両方を実際に使ったからこそだ。こればかりは…

Attach API (アプリケーションのインスタンス数を制御するには-その4)

同名のエントリではJavaアプリケーションのインスタンス数を管理、制御するための方法を紹介し、その後はファイルチャネルの部分ロッキング機能を利用した「システムセマフォもどき」により機能を実現することができた。 その後、前エントリのコメントでskさ…

PseudoFileSemaphore (アプリケーションのインスタンス数を制御するには-その3)

菊池さん、AWAWAさん、囚人さんらのアドバイスから以下の要件が導き出された。 ロックファイルを作るが、後始末として削除できなくても「そんなの関係ねぇ」 Java NIOのFileChannelのロックメカニズムを利用する この場合はセマフォを使うべき ということでF…

これが本当の蛇足

修正したが、最初から色気出して引数付きのtryAcquireメソッドなんて含まなければ(笑