漫画として普通に面白いので購入しました。́∀`)ファイブの最新刊も残り1冊でしたが買えました。北米で行われているE3。そのSCEカンファレンスの中でFF14が発表されました。(白々しいとか言うな!!)次世代MMO「Rapture」の正体がナンバリングタイトルだったわけですね。オンラインです!!日本時間の深夜あたり(?)にスクエニカンファレンスがあってその中でもうちょっと詳細な事を言うみたいです。久しぶりにわくわくしました。「女装少年アンソロジー」って漫画なんです。FFCCのサントラと一緒に買ったせいでサントラも4週間待ちなわけですよ。(1週間くらい後に分離されてCDだけ送られてきましたけど)まぁ悲劇はここから始まるわけでして。私のamazonのお勧めリストがこの一冊のためにいっきに腐女子モードに突入です。前までは普通のコミックや技術書がぎっしりと並んで居たんですよ。確かにamazonのレコメンドエンジンは正確しすぎてマンネリ化してくるんですよね。意外性が無くなってくると言うかカオス理論が入っていないというか。別に1冊くらい変なの買ったからって影響ないと思っていたんです。それなのに、上位は↓こんなんばっかり。́・ω・)ちなみに「少年メイド」は作者の趣味が大爆発しているだけで、ふつーの健全な漫画で結構面白かったです。23:35日記2009前期うん。専門的な事は専門家に任せた方が良いと思いました。́・ω・)とか言ったら「そば屋のカレーが美味しい事もある」と言われました。23:59日記2009前期本amazonで本やサントラを20数点ほど買いました(ノ∀`)すんドめがDVDにもなっていて面白そうだったので全巻購入してみた。面白い(・∀・)以下amazonのレビューより転載。転校生の女の子は、カワイイ女の子。席はオタク系クラブに所属する、影の薄い主人公の隣に。ここまではベタですが、この子がクラブに入部し、冴えない主人公の側を付きまとう。主人公の心の中が、まるですべて分かっているかのような言葉で彼を操り、虜にしていく。6巻まで読みましたが、鼻血とお風呂場でのアザになる速度から推測するに、この女の子は白血病か何かなんでしょうね。(実際に白血病だったら鼻血よりも歯茎とかから血が出るんだと思いますが・・)。́・ω・)↑なんか6巻が小さい絵が無くて商品追加できなかった。仕事頑張ってるからという事で貰いました(・∀・)左は4枚のカードと、右は500円のWEBマネー。13:17日記2009前期本なんか天気がすごかった。朝から雷鳴っていたし。雨はどしゃ降りだったし。木曜日は7時頃に出社。夜の2時頃に寝ようかなと思ったら家のMySQLが止まってまして、リカバリーしてたら寝れなくなってそのまま出社パターンです。インデックス1GB)だったのでそんなの時間はかかりませんでした。7時台の山手線は空いてますね。会社の清掃時間帯だったので、騒がしくて集中できなかったです。9時頃に出社するのが良いみたい。このくらいの時間だと人も少なくて静かで集中できて良い感じです。朝の2時間は夕方の4時間分に相当するくらいです(`・ω・)アザゼルさんの最新刊買えました。́・ω・)アマゾンと言えばコンテンツマッチ型のアフィリエイトを左に置いてみたのですが、全然マッチングしていない気がします。英語の本がいっぱい出てくるのはおそらくコードを掲載しているからだと思うのですが、えっちな事書いていないのにアダルト系の本が出てくるのはどうしてでしょうか・・。Oracleちょっと釣りみたいなタイトルです。LOBに関してはOracleが分厚いPDFファイルを用意しているので、そちらを参照して理解するのが良いと思います。今回はCLOBへアクセスする速度が速くなるわけではなく、いかにCLOBへアクセスさせないようにする方法です。アクセス速度自体はchunkのサイズとか気にすれば良いと思います。そもそもなぜCLOBを使うのか?これはVARCHAR2が4000バイトまでのため、AL32UTF8のデータベースの場合、日本語は最大4バイト消費します。(マニュアルによると、4バイトのUTF8は内部で6バイト使うみたいな事が書いてありましたので、ちょっと検証する必要はありそうです。)ちなみに全角文字が2バイトという神話はSJISやEUC(一部3バイトですが)の時代の話です。UTF8では半角カナや漢字は3バイト、一部の漢字は4バイト使います。CLOBに入れるデータは常に4000バイト以上とは限りません。4000バイトで収まる場合はVARCHAR2のカラムに入れて収まらない場合はCLOBのデータに入れれば良いと思います。1000バイトの文字列であればCLOBに入れる必要は無いわけです。今回はぱぱっと対応する策(松竹梅で言う梅コース)でどれほど効果があるか確認してみました。COMMENT_TEXTがCLOBの列です。梅コースのためVARCHAR2の列はありません。LENGTH関数はCLOBに対しては文字数を返します。(LENGTHBはCLOBには適用できません)。2000で判定しています。(サロゲート文字については未検証)。TO_CHARでVARCHAR2に変換しています。DIARY_COMMENT上記のSQLを実行すると1014レコード帰ってきます。全部CLOBとして取得する場合は3120msかかりますが、上記のSQLでは125ms程度になりました。※CLOBとしては2レコードしかありませんでしたものによりますが、4000バイト以上使う割合が少ないものではこういうやり方もありなのではないかと思います。最速はおそらくVARCHAR2(4000)の列をいくつか作って分割するという方法とかあると思います。設計が美しくないですけど。作業用BGMとしてニコニコのメドレーを聴くことが多いのですが、最近は同じ系統のものしかなくて若干飽き気味です。いうかランキング上位の半分は同じジャンルでなんだかなーと思います。サントラを買おうと思って未だに買えていないわけですが(そういえばスコアも買ってないな・・)、ニコニコにもYouTubeにも音楽だけのものは無かったので、YouTubeからひっぱってきました。作曲は谷岡久美さんです。EOTのボスラッシュというクエストなんですが、ボス用の音楽が2種類入っていたので引っ張ってきました。ゼルダや聖剣伝説が好きだった人は楽しめると思います。あとはファイナルファンタジーつながりで。FF13の曲がものすごく(・∀・)イイ!!と好評らしいです。トレイラーにも使われていた曲ですよね。作曲は浜渦正志さんです。FF13通常戦闘曲あとは北欧系の曲。21:34日記2009前期HDDレコーダーに取りためた番組を消化してました。いうわけでお正月番組見てました(ノ∀`)で、当然CMも昔のやつが流れているわけでして、地デジのCMも(ryそういえば007見ていないなー。そのCMをYouTubeで見つけました。ボンド役の人も、人相がやばいでしょ!どう見てもプレイボーイではなく殺し屋の顔です!さてさて、もうちょっと近所のレンタルが安くなってくれればいいんですが、都内のレンタル料高すぎでしょう。́・ω・`)あと、みなみけを録画していたのでそれを全部見ました。次はソウルイーターを見ないと・・・。23:13日記2009前期本アザゼルさん3巻を買いに行ったのですが、入荷していませんでした。Σ(゚д゚lll)ガーン個人的にアザゼルさんは最近のヒットです。下品ですが面白いです(・∀・)というわけでクレイモアの最新刊を購入。クレイモアのゲームがDSで出るみたいですが、FFCCのようなアクションRPGかタクティクスオウガのようなシミュレーションRPGで出してくれないかなー・・。ついでにデッドマンワンダーランドの最新刊も購入。́・ω・)なんだろう、この危機感が感じられない雰囲気は。漠然とした不安ではなくて、項目を列挙できるんです。それなのに、なんで大丈夫だと思っているのかが分からなくて・・・。本当にやりたいなら今のうちに各セクションにネゴっておかないといけないのでは。やりたいやりたいしか情報が無くて企画の大筋すら共有されていなければ、何もできんよ。これ本当に出来るのかな?と思っているなら、最初のテストに入れてテストするもんじゃないの。なんで後回しにして大丈夫と思っているのかがわからない。私だけで完結できるようなものは、私のレイヤーでどうとでも出来るけどそうでないものにはもっと危機感を持って欲しい。あと、危ない項目だなと思ってピックアップしてるのに、大項目の中にまた入れちゃうって何。落ち葉の中から危険なものを拾い上げてるのに、それを確認して新しい袋に入れるわけではなくて、また落ち葉の中に戻すっていうのは、どうなのかなー。となりのブースの列がプランナーの(たぶん)偉い人が集まっているエリアなんですが、みんな自主的に動いて問題解決してるけど、普通はあぁあるべきだと思うんです。(内情知らないので外から見た感じだけですが)。最近、工程の順番が逆になっていて自主的に動いているのがバカらしくなってくるというか、虚しくなってくる。問題提起してもそれから進展はしないので、もう提起するのも面倒になる。(それが私の明確な責務の1つなら実務時間減らして注力しますけど)どうやったらもっと危機感もって貰えるのかな。考えると私の心の余裕が無くなってくる。(最近また偏頭痛出てきたし)私の最近の楽しみは、セブンイレブンのほっけを食べることくらいだ。こんな私を救ってくれる奇特な方は、私の愚痴を聞くか、面白いゲーム(360かDS)かDVD(ブルーレイ)を紹介するか、履歴書を会社に送ってください。́・ω・)というわけで色々と調べているのですが、一応構成とかスキーマとかはだいたい決まりました。独自フィルタも追加できたので、ちょこちょことメモを残していこうかなと思います。今苦労しているのは、要件がちょっとめちゃくちゃなのでスキーマの設計が定まらないというか、DynamicFieldをバリバリ使わないと対応ができない事です。DynamicFieldは@Fieldアノテーションを有効活用できないので困ってます。́・ω・)MultiCoreの機能を使ってきっちりスキーマ定義を分けようかなー。SolarisSolaris10にLua-5.1.4をインストールしてみます。事前にgcc4をインストールしないと警告がいっぱい出ます。gcc4のインストールは別の記事に書いてあるのでそちらを参照。INSTALL_TOP=/usr/local無事にビルドできました。・・・Luaはパッケージがあるのでpkgaddで入れれば良いと思います。SolarisLua5.1.4をSolaris10の素のままでビルドしようとすると警告が沢山でるのでgcc-4.4.0をインストールしてみます。configuration」といった感じのものでgcc4からサポートされたやつみたいです。staticな関数をライブラリの外に出す/出さないを指定できるgcc拡張のようです。gcc4.1以降はlibgmpとlibmpfrが必要との事なので、これらを事前にビルドします。libgmpをwgetで取得してgtarで展開します。その後以下の手順でビルド。installちなみに、--buildオプションを指定しないとビルドに失敗しました。「core2-pc-solaris2.10」と認識されていたのが原因のようです。こちらのページを参考にさせていただきました。次にlibmpfrをビルドします。こちらもwgetで取得してgtarで展開します。その後以下の手順でビルド。installこれでgccをビルドする準備が整いました。その前に、LD_LIBRARY_PATHに/usr/local/gcc4/libを入れておかないとlibgccのコンパイルでこけます。gcc-core-4.4.0.tar.gzとgcc-g++-4.4.0.tar.gzを取得してgtarで展開します。install一応確認。(GCC)そして環境変数のPATHにも/usr/local/gcc4/binを入れます。Luaのビルドは別の記事で。MySQL知り合いよりMySQLの使い方がひどいんですって話があって、その中でLIMITの話があったのでこういう事なのかなーと推測してみた。その話によるとなんでもかんでもLIMITをつけている。みたいな事をいろんなところでやっているという事でした。ROWみたいなおまじないでつけてるんじゃないのかなーと思いつつ、実際に実行計画をとってみました。テーブルを専用に用意するのは面倒なので、家のテーブルから適当にデータが入っているやつをチョイス。sec)これにSQLを発行してみる。sec)おや?rowsがひどいことになってます。(件数が上のCOUNTと違うのはオンラインで稼働中のテーブルなので・・)。これではLIMITをつけない場合と同じですね。Stopのような実行計画になると思っていました。MySQLのリファレンスによると、色々かかれていますね。BYをINDEXをつけている列につけてみました。sec)rowsが1件になりました。́・ω・)意味というか、それで要件を満たせるユースケースってどんなのがあるかなーと。要求された行数をクライアントに送信すると、クエリが中止されます(SQL_CALC_FOUND_ROWSを使用していない場合)。あるので、この場合は1件フェッチした場合にクエリが中断されるんだと思います。それを確認してみました。実際にEXPLAINじゃなくて実行してみた。データの中身は見せられないので切り取り。いうことはやっぱり中断はされているっぽいですね。MySQLってOracleのように何バイト読み込んだかみたいなものって見れないのかな・・。いいお勉強になりました。これくらいじゃ目くじら立てる原因にはならなそうなので他の要因がありそうです(まぁ積もりにつもった様々なイライラだと思いますがw)。テーブルの全データをメモリに載せようとしちゃうのかな。実行計画上は全件スキャンするようになっているし。RPATHxxxxには実行ファイルを指定。TyrantSolaris10でTCとTTが動作するようになってからというもの、最新版をずっと試していなかったので久しぶりにビルドしてみました。ちなみに会社にもインストールしていますが、会社ではLua拡張も組み込んでいます。社内用に構文や機能が追加してあるLua拡張版があるのですが、私は標準のままのLuaを使っています。今回はLuaをサポートしない場合のビルドメモ。Luaを組み込んでビルドします。他の記事にLuaにビルドの記事がありますので、Luaについてはそちらを参照。install無事にビルドできました。01:55日記2009前期開発http://www.atmarkit.co.jp/fjava/rensai4/webjousiki08/webjousiki08_3.html@ITってSI業界だと結構参考にされるサイトだと思うのですが(違っていたらごめんなさい)、こういうコードを鵜呑みのにして業務システムが作られていると思うとぞっとします。・PreparedStatement/ResultSetをCloseしていないConnectionをCloseした段階でPreparedStatementもCloseされるって?コネクションプールをしている場合も同じ事が言えますか?PreparedStatementCacheをしている場合も同じ事が言えますか?「データベースに接続したら後始末は確実に」という記事を参照しろと書いてあるにもかかわらず、掲載されているコードは参照してかつ参考しているとは思えない。・while(rs.next())の部分これWhileである必要ないですよね。Whileで回すって事はIdはユニークではないのでしょうか。Count==1の時のみ処理しています。何がしたいのか意味がわかりません。こんな冗長で分かりづらいコード書かないでIfで良いのでは。満点じゃなくて最高点を。いう話ではなくて・・・。昔のゲームはうそんこ物理でそれっぽく見せていました。物理演算を馬鹿正直に計算してもハードウェアの処理性能が追いつかない事と、物理法則を忠実に再現してもそれが単純で面白いとイコールではなかったからです。(と勝手に思ってみる)話はちょっと変わって、検索エンジンのスコアリングや統計学的に基づいたランキング情報を生成する場合、算数ではなく数学に基づいた計算をします。スコアリングの計算では、TF(出現頻度)やIDF(逆出現頻度)が良い例だと思います。関連を計算する場合も沢山の計算方法があります。これも目的によると思いますが、算数レベルで考えた数式で良い場合もあれば、それでは最適解を得られない場合もあります。何が言いたいかと言うと、こういう場合はこうして、こういう場合はこうしてって算数を組み合わせるのも一つのやり方だと思いますが、「どんな状態のもののスコアを高くしたいか」という要件さえあれば、その手法の最適解は餅屋が考えますよっと。統計学や数値解析、グラフ学とかそういうのがバリバリ分かってるなら数式を提示されても納得がいきますが・・。00:53日記2009前期いろいろな会社の人と話をする機会が以前よりも増えています。話を聴いても隣の芝生が全然青く見えないのです。その話や仕事がつまらないというわけではなく、実際面白そうだなぁーと思います。羨ましいとまでは思わなくて・・。「面白そうな事やってるなぁ、自分もやろうっと。」って感じで「いいなぁ、自分もその会社行きたいなぁ」とは思わない自分が居ます。現状に満足しているというわけではなく、やろうと思えば何でも出来る環境が目の前にあるってだけかもしれません。突拍子な事をやるとさすがに何枚ものフィルタが入って抑止力が働くんですがねw抑止力が働くまでは好きに出来るとも言う。Struts2前の記事でIncludeクラスのエンコード設定がおかしいため、JspTemplateEngineで文字化けが発生する問題を取り上げましたが、今回はそれを回避するコードを書いてみました。IncludeクラスのInstanceを1回作成し、setDefaultEncodingを実行すればstaticなフィールドにデフォルトエンコードが設定されるのでContextListenerの中でそういったコードを書きます。ContextListenerの中でDispatcherへListenerを追加します。そのListenerの中で初期化処理を行います。いう風にするのかと言うと、Struts2のコントローラーはFilterで実装されています。ContextListenerで直接初期化処理を書いてしまうと、Filterの初期化よりも前に実行されてしまい、Struts2の初期化処理が行われていない状態で実行されてしまう事になるからです。13:39日記2009前期めもめも。いうか、仕事の半分くらいは他の人から見えていないだけでだいたいそういうもんじゃないですか。やることやった上で好きなことやってるんです。いっぱいの時は面白そうな事には手が回っていないのです。何か決めるとき「じゃぁそれで!」と結構適当な感じに見えているのかもしれませんが、実は結構調べていたりします。大筋OKならそれで良いじゃないと思うわけです。どんな方法も例外はあるので、そんな所に時間をかけていると何も決まらなくて・・。例外を考えないって訳ではないですよ。あとは、「とりあえずやってみて、ダメだったら(問題が発生したら)その時考えます」と言うときもあります。方法変えたときや新しい事をやるときには、だいたいメールに書いていたりします。発生もしない問題考えてもしょーがないもん!というと適当すぎるので、発生しうる問題は当然予想します。予想出来る事は対応策も考える事が出来るので問題にはあまりなりません。Bプラン、Cプランと他の方法も考えてあるのでDEADENDにはならないようにしています。Aプランやりましょう。ちなみに↑のように一言メールに書いておくと、反対される確率は一気に下がります。あとは、権限的に自分しか出来ない事を誰でもできるようにしてしまう。サーバの権限ないから自分にはできません・・。