2008-12-01から1ヶ月間の記事一覧

Java VMでのPHP

PHPをJava VMで動かしたいと思ったので、いろいろ調べてみた。 Java VM用のPHPとしては、現状でCaucho QuercusとPROJECT ZEROのP8があるようだ。 どちらもPHP5.2をターゲットにしているみたい。 P8 ここで、PROJECT ZEROのP8の方は、WebSpere sMeshの一部み…

注文の多いグラフィックエディタ

jQueryを勉強中。 やっぱ最初に作るのはグラフィックエディタだろJKということで、ドット絵エディタを作ってみた。 ただ作っても面白くないので、使えるのは16色まで、しかも横8ドットにつき2色までという、知ってる人は知ってる制約を付け加えてみました。 …

文字列リテラルの比較の書き方が決着

Java7からは if (s?.equals("リテラル")){ ... } と書けばいい

クラウドとデータベース

クラウドは単なるバズワードではありません。 クラウドがバズワードというのは確かで、具体的な定義もなくどんどん意味が適当になっていて、とりあえずサーバー複数で処理すればクラウドということになっていったりするんだと思います。 けれど、単なるバズ…

劇速SSD

前のエントリ「ハードディスクもオンボードになるのかな?そうするとプログラムモデルも変わる。」で そうすると、SATAとかケチくさいこと言わず、大量にどっさりと転送できるようになったりするんじゃなかろうか。 などと書いてたら、PCI Expressでどっさり…

RDBMSの時代の終わりが見えてきた

クラウドと一緒にやってきたもの 最近、クラウドが流行ってます。 GoogleのMapResuceから始まって、MicrosoftのAzureまで、大手のクラウド製品が出揃った感じ。 で、そこで、こんなクラウド製品が出ましたというときに、必ずといっていいほどそのクラウド用…

ハードディスクもオンボードになるのかな?そうするとプログラムモデルも変わる。

ハードディスクじゃなくてSSDですけどね。 そのあたりは、有機ELディスプレイを液晶ディスプレイと言っちゃう感じ。 ハードディスク/SSDをまとめたパソコン内臓ストレージの呼び名って、なんかいいのありますかね? まあ、それはともかく。 もう少しするとSS…

情報技術を構成する3要素の関係

情報技術を構成するのは、計算理論、それを実現するハードウェア、そしてそれらを作り使う人です。 それら3者の関係を考えてみました。 計算論は、どういう計算が可能か、計算をどのように行うかという理論です。 ハードウェアは、物理的に計算を行う装置で…

実用を考えると、文字列リテラルとの比較は文字列リテラルが先のほうが見やすい

もう落ち着いた話題だけど、SwingWorkerのサンプル書いて思い出した。 文字列リテラルの比較の話だけど、"リテラル".equals(s)よりもs.equals("リテラル")のほうが見やすいとか意味を反映しているとかあった。 けど、実際にJavaで文字列リテラルの比較などと…

SwingWorkerでスレッドからGUI操作

EventQueue#invokeLaterなどを使えということなのですが、実際の処理をいちいちinvokeLaterすると処理の記述が分断して大変みにくくなります。記述の美しさよりも処理の安全さ、とはいえ、これはあんまり。 ということで、Java SE 6からはSwingWorkerという…

正しいスレッドプログラム

ここまでスレッドのサンプルを書いてきたのですが、主にプログラムがみにくくなるとか、めんどいとか、動くからえぇやんという理由で、やるべきことをやってないところがあります。 スレッドからのSwing操作とwaitの処理です。 Swingはシングルスレッドモデ…

higayasuoを本気にさせると恐ろしい

このランキングを見て欲しい。 http://tophatenar.com/tag/java ここでid:higayasuoは5位にランクされているが、これ、ちょっと前まで20位あたりだったのだ。 このまえ一緒に飲んだときに、このランキングの話になって、id:higayasuoが「なんでJavaカテゴリ…

なんも考えずに"リテラル".equals(s)と書け

"".equals(stringVariable) は改悪だろうについて。 まず、空文字との比較は場合による。というか、空文字との比較なら s != null && s.isEmpty() か s == null || s.isEmpty() などと書くほうがいい。 あと、件の問題は改悪とは言わないまでも、問題文だけ…

Lock/Conditionのサンプル

追記:「見せかけの起動」に対応しました。2008/12/6 http://d.hatena.ne.jp/nowokay/20081206#1228542137 wait/notifyでスレッド間の同期を行ったのですが、wait/notifyは対象オブジェクトでsynchronizedする必要がありました。 ということは、逆にいうとsy…

wait/notify/interruptのサンプル

追記:「スプリアスウェイクアップ」に対応しました。2008/12/6 http://d.hatena.ne.jp/nowokay/20081206#1228542137 ここまで、いろいろなロックを扱ったのですが、スレッド間での実行の制御も必要になります。 Javaでは、スレッド間の実行の制御にwait/not…

殺伐としたプログラム

@daichan4649に「殺伐としたプログラムしか見ていないのでいつも癒されます」と言われたのだけど、「殺伐としたプログラム」ってどんなのだろう? こうですか?わかりません >< lockしたらunlockしません。早い者勝ち ソースはこれ