むしろ一昨日参ります。
WebObjects屋さん的には予想通りコレと言った話題もなく、平穏無事と言った印象ですねぇ。もちろん個別のWebObjectsセッションで何か発表された(る)かも知れませんが、NDAでしょうから表に出てくる事もないでしょう。
まぁ、私としてはそれでもOKなんですけどね、「別にここから進化しなくても保守だけしてくれればいいやぁ」みたいな。流石にソレも無しだとちょっと嫌だけど、Appleがそう決断しちゃったら仕方がないかなと。使える間使って後は他のに乗り換えるかなと。
実際、私はWebObjectsが「使える」と思っているからやっている訳で、それよりも「使える」と思うものと出会えば普通に乗り換えるし、Appleが儲からないから止めると言ってもそれはそれで受け入れちゃう。
と言いつつも、WebObjectsで仕事ができるだけで幸せを感じるんすよねー。がー
たぐ - mac
(0)
WebObjectsの実行速度ってどうなんでしょう。やっている事を考えると「そこそこかな」と思うのですけど、決して速くはないと言われています。だからというわけではありませんが、私も一応最適化の真似事をしています(←実際はスピードというより、エレガントかどうかの方が重要だったりしますけど)。
最適化の道はそれはもう奥が深く、突き詰めるとif文はコストがどうのこうのというところまで行くらしいのですが、もちろん私はそんな事知ったこっちゃない、と言うかよくわかりません。ですので、「単純に無駄な処理はさせなきゃいいじゃん」と心がけています。そしてもう一つ、フェッチの回数をできるだけ少なくする様に。
WebObjectsで行える色々な処理のうち、重い(←つまり時間がかかる)のはデータベースからデータを引っぱり出したりするフェッチだと言われています。と言うのも、HDDへアクセスするからなのです。HDDは大容量である事、通電していなくても記録を残せる事と引換えにデータを出し入れするのが遅くなってしまう作りになっているのです。そしてほとんどのRDBMSはHDDにデータを格納する事が普通ですから、結果的にフェッチが重い処理となってしまいます。
しかしフェッチをする事からは避けられません、ほとんどのWebObjectsアプリケーションはRDBMS内のデータにこそ用があります。逆にRDBMSとの連携を考えないならばWebObjectsを利用するメリットはかなり目減りしてしまうでしょう(←それほどWebObjectsのRDBMSと連携する仕組みは強力なのですから)。
そんなわけで、フェッチの回数を減らす事はパフォーマンスの面からもかなり影響が大きいです。これはマシンスペックが貧弱であればあるほど顕著で、以前PowerBookG4/550MHz/DVD-ROM(←近年稀に見る負け組マシン)で考えなしに作ったアプリを最適化した時には、「うぉ、やってみるものだな」とめずらしく素直に感動しました。
フェッチの回数を少なくするには色々な方法があると思うのですが、二つ例を上げてみます。
ある一定間のデータを連続的ににフェッチをかける様な場合(←一ヶ月分のデータを日別に表示するとか)は、その一定間のデータをまとめて一発でフェッチし、それをオンメモリで絞り込む様にすると良いです。一度データをメモリに読み込むので、あまりに大量のデータの場合や、内蔵メモリが足りていないとswapが発生したりして元の木阿弥になる可能性もありますが、かなり効きます。
もう一つ、WebObjectsはリレーションも簡単かつ柔軟に扱えたりしますが、たどるともれなくフェッチが付いてくるのでその扱いに注意が必要な場合もあります。関連するオブジェクトの存在が保証されていない場合(←うちの個別の記事の下の方にあったりなかったりする過去ログへのリンクがそうなのだけど)、ある時だけフェッチを行うと無駄がなさそう。でも、あるかないか確認するためにもフェッチしないといけないんですよね、コレが。
あるかないかわからないからフェッチする。て事は予めわかっていればいいわけで、「だったらそれ用のフラグでも立てるか」と、元モデルの方にカラムを一つ追加して関連するオブジェクトの有無を持たせる事で対処しています。そこを参照してフェッチするかどうか判断するわけです(←あまり美しくないですけど、他には思いついてませんですから)。
関連するオブジェクトを追加・削除する時に少し注意が必要ですけど(←ないのに有判定とかなると無意味になるので)、これで無駄なくフェッチをかける事ができる様になります。効果の程は状況に寄りまくりなので微妙かも知れません。
これだけスペックが向上したら不要という意見もあるかも知れませんが、無駄なモノは無駄ですし、EOAdaptorDebugEnabled=true 等とした実行ログを見ても“精神衛生上非常によろしい”というのも大きいですわ、私にとっては。
たぐ - webobjects
(0)
(0)
任天堂ニュースリリース
あ〜、ディスクシステム〜、懐かしい〜、書き換えとか〜。
「新・鬼ヶ島」と「ファミコン探偵倶楽部」は2本まとめてなのでお得ね。
たぐ - game
(0)
車でのお出かけのお供もiPodですが、雨、もしくは著しく気分がのらない日以外の日課でありますお散歩のお供もiPodでございます。私のiPodは旧世代モノでありまして、最初の20GBのモノであります。つまりですね、厚くて重いのでございます。
一応デカい(←容量が)のも持っているのでお散歩用に軽くて小さいヤツがあってもいい。あって然るべき。むしろ何故ないのですか。ない事こそおかしい。
などという免罪符がグイグイと背中を……。耐えるけど(←コレだっ。ていう色がないのも幸いしてるな)。
(0)
「メガドライブプレイTV」を9月9日発売決定(GAME Watch)
ソフトじゃなくハードで出すならカセットささる様にして欲しいし、「ぷよぷよ」つけるならもう一つコントローラいるでしょ。
たぐ - game
(0)
小規模のオンラインショップなサイトを引き継いで修正したり保守したりみたいな仕事をしています。当初の要望を満たす修正や作業は終了いたしまして一段落。
椅子をリプレース。あれこれセッティングを試してみましたが、矢張りしっくりこず肩とか背中とか痛いです。1万5000円くらいの椅子じゃ駄目ですか。リープとかアーロンとかいかないと駄目ですか。買えるか、あんなの。ふん ……欲しいよ〜、欲しいさ〜。
そう言えば、iPod miniを買うとして(←買うとしてて)、今あるiPodと同時(もしくは交互)に接続なんかしちゃったりしても、ちゃんと個別のモノと認識していい感じにsyncしてくれたりなんかしちゃってくれるのだろうか。4GBなのでiPod mini用プレイリストとか拵えて、それとsyncしちゃいたいよねぇ、20GBの方は丸ごとsyncだけどさ。できるよね、流石に。
たぐ - たくぅさん
(0)
某WebObjects本をやっと読了したので(←二ヶ月かかってんし)、このアプリの書き直し作業に入る予定。は未定。
追加したい機能とか思い浮かばないので、純粋に内部的な変更になります。若干最適化されるかな。
ドンキーコンガ2は、エキスパ金のDKマーク全付けまで後3曲。てやっていない人には何の事だかわからない。
前作での修行が効いているのか今作は難易度が下がっているのか、ハードまではほぼ一発で金のDKマークが付きました。エキスパは……、励んでいます。
なんとなく純正Apple Mouseを引っ張りだして使ってみてたりして。
純正Apple Keyboard(JIS)の“return”キーは、真ん中辺りを叩かないと引っかかってしまって上手く押せない。そして私は適当に叩いているのでよく引っ掛ける。つぅ事で、何か良さげな(←主に価格的に)キーボードは無いモノかと。いっそUS配列にしたろうかと。
ちなみに、私がコンピュータ始めた時には既にMacにもJISキーボード付属でしたけれど、同時に触り出していた各UNIXな機械の方がUS配列だったので「どっちでもいいかなぁ」とか思う人。当時は座る端末に合わせて普通に打ち分けができてたっけ。今はどっぷりJIS慣れしてまして、“英数”キーとか“かな”キーとか使いまくってますが。あら、じゃー、JIS配列じゃないとダメかも。
たぐ - たくぅさん
(0)
何も梅雨が明けたからってそんなに急に暑くならなくても……。と毎年言っている様な気がする。
どうしてWOComponentにvalueForBinding()はあるのにtakeValueForBinding()がないのだろう。setValueForBinding()があるので困りはしないけど、なんか気持ち悪い。
つか、WOComponentでさえも“お初にお目にかかります”的メソッドがちらほらな自分に(略)。
輸入盤のCDはお値段がアレでCCCD率も低いのでわりと簡単に買ってしまう。邦盤はお値段がアレな上にCCCD率も高いので事前に調べたり何だり面倒であーくそもー……。そういう事だぞ。
コンガ2はエキスパ金DKマーク全付けまで後一曲。が、その一曲がっ。
バリアブルでいいのでSTOKKEの椅子も欲しい(←欲しいモノばっかりやな)。バランス取ってみてー。
たぐ - たくぅさん
(0)
ついにエキスパ金のDKマーク全付け達成。めでたい、頑張った、俺。
ちなみに最後まで残った曲は「ゼルダの伝説」で、片方だけ叩く時にも両方叩けば実はOKなインチキをちょっと利用。
たぐ - game
(0)
大した事はやっていないのだけれど、わりと全体に及んでいるのでどこかしらバグが入っちゃったかも知れない。あ、むしろ合わせて改修をかけてしまった、掲示板の方が可能性が高いか。
エラー表示にあたっちゃった人、ごめんなさい。
(0)
あまりの暑さに午前10時からエアコン投入(←長時間空調の効いた部屋にいると体が嫌がるので、普段は午後まで入れない方向なのよね)。
窓からのぞく雲も夏してます。
たぐ - 長崎
(0)
画像ファイルをアップロードして縮小、何て事をテスト。
調べまくって何とか縮小させる事ができた辺りで、Dockに“com.webobjects._bootstrap.WOBootstrap”なんてモノが処理中に登場する様になってちょっと驚愕。
どうしてよいものかわからなかったし大きな問題はないと思う事にして、とりあえず放置し続けていると、今度はその縮小画像をNSDataへ持って行く方法がわからず、あれこれやった後に「もういいや」とディスクに保存する方向で。
一通り目処がたった時点で、「このサイトのどこに使うのよ」と冷静に判断……。そのうち役に立つさ、きっとそうさ。ふ
一応WebObjectsの開発言語はJavaですから、私もJavaプログラマて事になるのかもしれないですが、本当にWeb系の事しかやっていなくて、そもそも“思い込みWebデザイナー”からスタートしている様な輩ですから、基本というか土壌というかそういうのがなくて、今回の様にちょっとコンピュータ的な処理をさせようとすると途端にオタオタします。Web系以外のプログラミングの経験なんて思い出そうとしても……、いっこうに思い出さない。Excelのマクロだって作った事ありゃしません(←Excel自体使っていないけど)。
そんなヤツでも何とかココまでやって来れたのは、始めた時期が良かったのだろうなぁ。田舎に住んでいる事もあって周りにやっている人がほとんど居なかったからね。いろいろ相談を受ける様な所にもいたので、ちょっと天狗ってたかも(笑い)。
そんなわけで「ご職業は何を」と聞かれたら、「見た目じゃない方のWeb屋です」とかずっと言っているのですけど、これはこれで通じないのよね、業界外の人には。やっぱプログラ(略)。
たぐ - たくぅさん
(0)
OpenBaseにCUI、openisqlコマンド辺りから新規データベースが作れないものかと、helpをのぞいてみるもそれらしき記述なし。ならばと、ググってみるもめぼしい記事が見つからず。むきになってcreate database〜とか、createdb〜とか打ってみるもハズレっぽい。も、もうしかしてもしかしますか。
iPod mini!とか言っている間に新しいiPodが。初号デザインがお気に入りの身としては、現行の独立している4ボタンが許せなかったりしたのですけども、今度のは良いですねぇ。
CATVで「ER 緊急救命室」をズダダダとやっているので、適当に流しっぱなしにしてみる。今更ながら面白い。全部観てやろうかしらん」とか思うものの、「10年分か、んーんーんー」と。Xファイルは毎年付き合いながら観たから大丈夫だったけどね、途中からヤケだったけど。……あ、最後のシーズン観てないや。
て言うか、レンタルすら利用してないな最近。観るヒマが、あるハズなのに。
たぐ - たくぅさん
(0)
RDBMSにOpenBaseを使用している引き継いだ某WebObjectsアプリに、“画像をアップロードしてデータベースに格納してしまおう”機能を付けようと作業を進めていたところ問題発覚。もうちょっと足掻いてダメだったら他の手使います。
問題はデータベースエンコーディングが「ISO2022JP JAPANESE」に設定されている事で、この設定でobject型を使ってデータを格納するとEOFからアクセスできないみたい。そのまま一旦データベースを止めて、エンコードを「EUC JAPANESE」か「SHIFTJIS JAPANESE」にするとアクセスできる様になるので間違いないと思う。既存のデータが文字化けするので使えないけど。
どうしてEOFさんは上手い事やってくれませんか。そしてどうして前任者様はよりによってJISなんてモノを選択しますか。
たぐ - webobjects
(0)
(0)
掲示板の方でのご協力も踏まえますと、どうやらMac OS X 10.2との組み合わせだと問題なさそうです。で、奇しくも某WOアプリの稼働環境もMac OS X Server v10.2だったりするので、このまま強行突破してやろうかなと。
て事で、動作確認用に残しておいたPowerBook上の10.2環境で開発を引き継ごうと思ったら、今度はそのプロジェクトファイルが既にXcode向けにコンバートされていて、しかもいくつか修正を施した後であった事を思い出す。「一応確認」と、再度10.2の方で開いてビルドしてみるとエラーがごろごろと出て断念。
幸い10.3と組み合わせていても、問題のObject型のカラムにデータを入れずNullにしておく限りは普通にアクセスできているので、その状態を保ちつつ10.3上で開発・ビルド、10.2上でデータを入れて動作確認。ふぅ
10.2と10.3じゃ、OS以外にWebObjects自体やJavaVMのバージョンまで違うので一概にどこがどうとは言えないのですが、ちょっと辛い状況ですねぇ。
たぐ - たくぅさん
(0)
任天堂公式
正式名称発表。
そのままでしたな。あと、エッジを効かせたシャープな印象のデザインに変更されてるですが、カラーの発表はまだの模様。
えー、敢えて“ゲームボーイ”ブランドを外してきた事は任天堂の本気度の現れかと思いますが、「株主とか小売から云々」とか言われそうでーす。
たぐ - game
(0)
ユーザー置き去りの著作権攻防戦(asahi.com:ネット最前線)
まぁ、なんつうか、結局この手の協会だレーベルだ何だが守りたい金の出所は消費者なわけで、その消費者に不利益を被らせていればいつかは背を向かれかねないわね。
(0)
SEGA AGES 2500シリーズ Vol.16 バーチャファイター2(SEGA公式)
どうせ一度遊んでしみじみした後は放置すると思うが、懐かし過ぎるので買っちゃう。
たぐ - game
(0)