Visual Studio .net theSpoke PremiumのProduct Keyが届いたのでインストールすることにする…ものの, なんだかTroubleに見舞われまくったような気がするので此処に記録を取ることに
何とかなるだろうと思って投機的に書き始めた今日の書き出し
しかしながら何とかなりそうにないので明日サポセンに電話することに
はぁ…
で, その続き
気晴らしに英伝を少しやった後, 再度挑戦
CDドライブを別の奴にしても駄目だったので駄目元でインストール先をデフォルトのままにしてみる
上手くいく
個人的にはGドライブに入れたかったのだが, 入らないものは仕方がない…というか完全にBugだと思うのは私だけでしょうかねぇ
エラーメッセージもCDの中のファイルが壊れているとかそういった感じのものだったのに…
先月の当サイトへの検索語を徹底解析…ってこの前やったばかりだけど
何故か1位は『平方採中法』, 情報は微塵もありませんのに…
2位に『英雄伝説VI 改造』と来るあたり, 世も末なんですなぁ… 因みにこれも情報皆無ですが
先月全体でみる限りだとプログラミング関連と空の軌跡関連が半々で残りがパラパラと言った感じの分布です
未だに74 SeriesのICについて検索にきていたり数学関連できていたりするのは涙ぐましさしか感じられないのですが, 結局この辺も情報はなし
完全に日記サイトに成り下がったこのサイトが提供できる情報なんて微塵もないということで諦めてくださいとしか言いようのない管理人であることに虚しさは覚えても何もする気はないので…
因みに『USB回路』とか『UNIX CPU調査 コマンド』で検索してきた方はCPU実験の最中なんでしょうか? 微妙に気になる…
1周目よりは知識量が多い状態での2周目
簡単なお金稼ぎのアルゴリズムまで覚えてサクサクと進めていたのだが, レシピに穴ができることに気がついて2時間分ぐらいロールバックすることにする
新メニューが出来たりするのってアリなの…
ACM ICPC国内予選が無事に終わったようだ
地下室から8チーム出場と言う前代未聞の事態ながら, プリンタトラブルとかに見舞われなかったのはVoluntaryとして幸いな結果
地下から本戦出場したチームは恐らく1チームだけだが, 彼らには是非頑張ってほしいものである
Cにだいぶ近いものになっているような気がする
これをやるぐらいならC#をやったほうが良いような気がしてみた
VBからなくなってしまった便利な言語機能たち
少しずつIllust Logic PaintをC#に移植しよう計画を進行させてみる
ListControlのItemやラベルのTagにString以外のSystem.Objectのエイリアス, JavaでいうObjectクラスobjectをListBoxとかだとToStringメソッドとかの実装を要求されますが…, DisplayMemberを使っても結局getメソッドの実装になるし利用できるようになったのは結構使えるかもしれないと思った, まぁ, objectから別の何かにCastしないと使い物にならない時点で面倒なことに変わりはないけど…
Javaみたいにオブジェクトの実体の変わりにnullをぶち込むことは出来ないみたいで, それぞれのクラスにあるclass ColorならEmptyフィールドnullに相当する値を表すフィールドを入れる必要があるようだ, ちょっと美しくない気もするが, 試しにColor.Empty.Bとかやってみたら0が一応の値として帰ってきただけでエラーにはならなかったNullPointerExceptionが乱発しないこの仕組みはある意味で便利なのかも
2週目, 現在1章で目下ブレイサークエスト消化中
霜降り霧降り渓谷に今から向かうところ, 大丈夫かな…
相変わらず原価40に対して売値が75, 面倒だが悪くはないサラダサンドを作っては売っている生活
一通り動かしてみる
インストールすれば十分に動くわけで, コンパイル前に型情報の静的な解析もやっているようなので, なるほど確かに送れるんですね
で, 火曜日には何をどう説明すればいいのでしょうかねぇ, Sampleの中に十分楽しめる代物があったのでこいつを使えば十分じゃないかと言う気がしないでもないのですが…
とりあえず明日1日でSampleをもうちょい複雑化していじめてみようとは思いますが, 如何せんネタが微妙な気がするなぁ…
Counter直下のMessageの量が0になった
そのうち院試までのカウントダウンとかやるだろうけど, 表向きはひとまずの休憩と言ったところ
ゆっくり休みたいなぁ…
で, 一応Sampleをそのままやるのもなんなので, ちょっとだけ構造体を弄ってみる
よく分からないがポインタはNGな模様, 当たり前か…
で, その代わりchar *の代用としてstringと指定すると普通に通る模様, ここはニーズがあるからこういう仕様なのだろうと納得
それにしても, 明日は何を話せば良いのだろう…
実行結果発表会 w/ Christopher氏, matsubaさん, 石川先生 @ 石川研のオフィスがある, 大学から歩いて数分の立地, 春日通の信号待ちを除けば最高の立地かもしれない湯島
…とはいっても./configure && make all && make install + αで終わったものを発表するったってなぁ…
湯島まで≠Note PC, 重たいよう…Laptop PCを持ち運ぶ…のは良いが, この暑さなのですっかり汗だくに, 私は熱には弱いのです
こっちはプレゼンとかを用意していたわけではないので, SSHの窓 x 3の画面を投影するだけ, 開始直後にmatsubaさんから何故かExplorerか何かを最大化して背景に置けといわれたので意を汲んで壁紙をなしに設定する, どうせならExplorerの背景も何か絵を貼っておいた方が良かったかもしれない
で, とりあえずベンチマークしてみよという指令
即席でやってみるが, 全然速度が出ない, というよりpingを打つだけでもネットワーク上で時間に相当のばらつきが出る事が見られる, でもPacketは全く落ちていない, 謎…
今まで色々なもののベンチマークをやる羽目になってきたが, 聖狐はこの辺に関して恐ろしいほど他人はそれを技術と呼ぶ運が無いようで, マシな結果が出たことが無いので, 乗り気ではないのですが…
その過程でC++を全然知らないことが露呈する, それで良いのかという突っ込みはこの際置いておいて…ええ, 全然出来ませんとも, = 0とvirtualは復習しておきました
『こんなことも知らなくて良く此処までかけたね』と逆に感心される, 複雑…
で, 次はChristopher氏の発表, OpenSSIといってクラスタをシングルイメージに見せる研究(実装?)の模様
実際にOpenSSIで色々やって遊んでいるうちにProcessのあるマシンで動いているプロセスを別のマシンへお引越しさせることimmigrationをやってみることに
で, 聖狐, Christopher氏, 石川先生が同時にrootでログイン, ある種異様な光景…ワイワイ言いながら適当に弄って… 聖狐がルートマシンを落とす, 再起動はネットワークブートの設定の関係上マシンに直接触らないと出来ないので…仕方ないので発表終了…
本当に申し訳ありませんでした > Christopher氏及び石川先生
実際にやったこと: echo 4 > /proc/(process ID of bash)/goto
最近暑いので食欲減退等の体調不良が確実に体を蝕んでいる模様, 軽く不健康なダイエットが出来そうな勢い
毎年のことなので夏バテには慣れているのだが, だるいものはだるい
早くこっちはこっちで寒いだのなんだのと喚いているのですが…冬が来ないかなぁ…
…と言うほどのものでもないけど
仲間と別れるとき, クォーツは戻ってくるけど武器は持っていかれる
アイテムコンプリートを目指す場合は別れる前に装備を店売り品に変えるか外すかしておかなければいけないのだ
…っていうかVは全部持っていかれたので分かるのですが, IVは自動的に例外: 3章のコンロッド, 1戦のみの参加なので装備を外す暇も無い, 地の上級精霊を見る唯一のチャンス?全てくれたので…
ま, どーでもいい話ですが
その名もMessage Passing Protocol for Master of Web SiteMPPMWS, なんかそのまんまなネーミング, どうせ今考えただけだし
中身はWeb Site管理人同士でのみ利用できる単方向のUnreliableなメッセージング, できることはしょうもないけどやり方が意外と面白く, 思ったより簡単に実装出来たので敢えて紹介
送信者は自サイト上に1つ以上のhtmlファイルを含むとはいえ, 別に第3者に容易に到達出来ない(i.e. リンクが無い)物で十分, パスワードとかかけちゃうと面倒隠しページを設定できることが, 受信者は自サイトのRefererを解析できることが必要条件…とまで言うと相当妖しげな方法だということが容易にわかるでしょう
送信者はMain Messageをhtml等の方法で記述, その末尾に以下のようなコードを挿入します
<form method="絶対条件, POSTだと上手くいかないGET" action="自分自身を指すURI, <base>要素等によって影響を受けうるindex.html"> <p>管理者専用フォーム</p> <p><input type="text" name="分かりやすけりゃなんでも良いMessage"><input type="submit"></p> <p><a href="ここで送信先のアクセス解析に引っかかると思われるURIを指定するhttp://somewhere/">送信</a></p> </form>
あとはこの末尾のフォームでメッセージをおもむろに入力した後に, 一旦submitしてページURIにメッセージをつけた状態で送信のリンクを叩けば運がよければ見つかると言うもの
注意点としてアクセスカウンタの連続取得を防止する機構等相手のアクセスログの記録に残らないといったような障害を避けるため, 送信前には相手方へアクセスしないといった保険をかけたほうが好ましいと言うことと, あまりやりすぎると恐らく相手の怒りを買いうるのであくまでJokeとして楽しむ程度に抑えること
届かなくても仕方ないし, 届いたとしても%エンコードがちゃんとデコードされるかは相手方次第だし, なんだかんだ言ってUnreliableな方法なので届けばネタになる嬉しいかなといった程度のものとして受け取るのが宜しいかと
ちょ~私信: こんなしょうもないリンクに反応してくださって恐縮しています
地下には緑のペンが無かったため, 笹の葉は出現しなかった模様
てっきり午前もだけど午後は何も無いと思ってバイトに行こうとした直前に, 魔の補講があることが発覚, 何故か東京メトロ線190円区間バイト先から18:15までに大学にとんぼ返りする羽目に… 疲れる…
で, そんな状態で75分間も起きていられる筈も無く, 前半を遠のく意識の中で受ける… 後半はちゃんと起きていましたけど
CVの講義は内容は面白いのだけれども, 何故か眠気に苛まれるのよね…
お昼に急遽決定 & 連絡, 湯島まで無駄足を食ってしまった人もいたようです@236, 今日はSignalお話
schedule()との兼ね合い周辺で微妙に混乱しかけたが, それなりに理解出来たと思う
日記を書くだけ書いて, 持って行くのを忘れること
自分の中ではある種の生存報告を兼ねているので微妙な失敗感に襲われる
いくらエディタ側でUSBフラッシュに自動的にコピーを保存するようにしていても, 保存時にUSBを挿していないと当然保存出来ないわけで, 日記を書いた後でさらに英伝VIの攻略メモを見るためにUSBを挿したりなんかしていると, そのことを完全に失念しちゃうのです…
因みに英伝VIは, 現在3章に入ったところです
この時点でゲーム中の階級で『準遊撃士・3級』の賞品, 前回は3章の終わりごろに貰ったような気が… だって終章で加入して奴につけていた気がしたから…死の刃1のクォーツが手に入っているところからして前回とは全然違ってご機嫌です
実は月末発売のサントラCDをオンラインショップですのでクーリングオフが効くいわゆる衝動買いとは違いますが…衝動注文していたり…
なんだか欲しくなっちゃうんですよねぇ…
perlでこんなものを書いてみる
for my $lover (@list) { ... }
英語的に解釈すると『@listは$loverのためにあるんだよ』, でも, Perl的に解釈すると『$loverを@listの中でとっかえひっかえしている』
これぞ現実世界の表と裏を描写しているに違いないとか馬鹿な事を考えて終わった1日
作ってみた
card周りの処理が微妙に未検証だが, きれいに動いてくれているはず
この辺の動作検証はIS2003erには出来ないので放置
ということで, 地下室に眠っていたスイッチをつまりは聖狐をはじめ4年が常駐している島, cse[7-18]がある島入り口から見てホワイトボードの右側にある島に設置する
接続性等の検査は済んでいるので, 従来のスイッチと同様に利用できますが, いかんせん当然スイッチ利用者全員で共有する合計が100Mで, しかも輻輳制御である程度削れる…上流の線が100Mbpsの癖にスイッチ区間が1Gbpsなので, パケットの輻輳が結構起こったりすると思うので, 外部との高速通信とかをしたいのなら上流がしっかりした54Mbps無線の方が逆に速いかもです
主目的は端末サーバやプリンタサーバの利用に供すると言う事で, この辺を勘違いして痛い目を見ないようにお願いします
…と, 自分のところの日記を使ってISerに告知するのは変だろうか?
でも, これが一番下手にB3, B4全員にメールを投げても.forwardの設定ミスでエラーメールがいっぱい飛んでくるだけだしなぁ…効率がいいからなぁ…
地下でB3の間にゲームブームが訪れているようだ
何処からか妖々夢の音が聞こえてきたのでやってみる
そして6面に来て, 最後の耐久66秒間に残機0ノーボムで突入, 最後の1秒で散る… 初めてあれのスペルを取れると思ったのに…
演習IIIの発表資料製作のため, 泊まり明け
しかも朝食を寮で取るためにこの時間まで徹夜, 今から寮に戻って朝食を食べたら, 講義開始まで214でぐっすり睡眠の予定
徹夜の暇つぶしにMaple, 何も良いものは出なかった…
参戦したからにはやっぱりアンテナの監視下に置かなきゃ緊張感というものが… ということで, アンテナ追加なら何時でもやりますよ > 参戦表明な人たち
因みに現時点でAntenna-Candidatesを数箇所捕捉中
…と思ったら, Powered by なつみかん の模様2004erアンテナがいつの間にか完成してたのね, こっちも捕捉
もしかしたらCurrierからリンクをさせていただくかもしれません
5時ごろに作業が終わるものの, 寮で食事を取るために7時まで起きることに, 食事を取って8時, そこから214で講義開始時刻まで就寝
先生が教室にきたときには寝ている聖狐とおきているあめ玉さんしかいなかったために, あめ玉さんが『教室あってますよ』と言うまで空気が凍ったままだったとか, ま, その時には私は熟睡中でしたが…
18時ごろに地下で意識を失い, 1時間半ほど睡眠, 帰る
で, 帰ったら夕食と風呂の後, 日記を書くことも無く就寝, どうやら14時間睡眠した模様…
論文発表はしどろもどろになりながらも一応突破
その後, クロスケーブルを使って機器を接続すればもっといいベンチマークになるかもしれないと言ったのが最後, 実習が1つ増える
課題: CAT-5eのクロスケーブルの自作
ということで, 色々と教わりながら, クロスケーブルなんて物を自作することになる
Christopher氏に至っては, Flatケーブルを使ってクロスケーブルを作るという世界的にもまだ数少ないんじゃないかと言う事例をやることになるし…
ということで, 作ってみました
最後の最後で相当貴重な経験が出来た演習IIIでした
でも, まだそのクロスケーブルを使ってのベンチマークはやってないんだよなぁ…
メモ: ケーブルの線の順番
Connectorのつまみを下にしたときに左から以下の順
[白緑][緑][白橙][青][白青][橙][白茶][茶]
クロスケーブルの場合は橙系と緑系の線を入れ替える(白緑のところに白橙etc)
バイトに行ったあたりから微妙に頭痛が…
帰ってきて補講を受けたり, そこから寮に帰ろうと自転車をこいだりしているうちにもさほどきつくは無いとはいえ頭痛に苛まれつづける
MOTHER 2だと健康状態が悪い時に自転車には乗れないように出来ているのだが, 現実世界ではそのようなことは無い
意識が多少なりとも乱される中での運転だしねそこはかとなく危険だとも思ったし, それでもだからといって倍以上の時間を費やして歩く気には到底なれないなお便利な世界だとも思った
大して久々でもない気もするけど
例によってカーネリア 7巻本の取り逃しで最後の最後に紅蓮の塔と鍾乳洞の攻略を1からやり直し…1時間分ぐらい巻き戻ってやり直す必要性に気付いて止めるのだが…
現在3章, 1回も戦闘不能にならないと言う縛りは意外と何とかなるものだと感じる, 但しこれは3章までの話, 終章に戦闘不能なしでは某少尉戦(とにかく強すぎ, 1周目は負ける形でイベントを進めた)とか, ラスボス(Max HPの90%ぐらいは持ってかれる攻撃)とかどうにもならなさそうな戦いがいくつか待っていそうな気がするので, 1周目では全く使わなかったアースウォールでも検討すべきなのかな, これがあるとだいぶ難易度が変わるという話だそうだから…どうしたものかと…
微妙にセピスが供給過剰気味な今日この頃…
SI-27の卒業アルバムの写真撮影を逃していたことに33時間後の今気がつく
教えてくれた2名の方には本当に申し訳ないです…
携帯は使わないからと言って放置しちゃいけないんだなと思った瞬間
銀行で受験料を振り込む, もういや, これ以外のルートを通る気も無いんだけど後には引けなくなった
で, 400字作文を書く…ために, エディタを作る
解いているとリアルタイムで左下に文字数を表示する代物, 意外と便利
で, ほぼ400字の作文をでっちあげて, あとは出願書類を点検して提出するだけ
書留速達オンリーとは, 宛先: 本郷キャンパスの入試事務局, 提出先郵便局: 本郷郵便局(キャンパスの目の前に鎮座している)郵便局がぼろ儲けなシステムに思えて仕方がないのだが, 仕方が無いのでこのシステムの被害者になろうか…
ToDo
返信用封筒のうち一部に切手を貼り付ける作業が残っている, 郵便局で忘れずにやらねば
終章に突入, 現時点でプレイ時間は27時間, 遅い方なのだろうか, 其処までその代わりにブレイサークエスト全制覇なんかをやっているのですが…無駄な動きはしてないんだけどなぁ…
@ 英伝VI, 2週目
王都グランセルで手に入るスペシャルアイスとやらを取り逃している模様
今からでも戻れるのか, ある程度やり直しを覚悟しなければならないのか…
そんなことを考えていたら現実世界でもアイスが食べたくなった
(追記 @ 07/17)
東街区のデパートの東側の奥まったところにアイス屋さんの屋台がもう1個あるのを発見, 無事にレシピが見つかりました…と書いておかないと万一同じ轍を踏んでしまった人がここにきたときに答えが提供出来ないというのでは哀しいしね…
…ではなくて, 地下室
照明が全て落ちていて, エアコンもOff, 死体も無い, 此処数ヶ月無かった光景
放って置くと31℃になる地下室のクーラーのスイッチを入れるとすぐに設定温度まで下がる, 優秀…というより慢性的な過負荷だったのではという疑惑, いつもは全然涼しくならないのになぁ…
ということで最低限の照明で生活, 最近はこんなことが無かったので微妙な開放感を堪能してました
今回は出来るだけBPを稼ぎつつレシピを全部埋めて戦闘不能及び戦闘逃走を0にすべく努力してみた
結局ラスボス連戦のうち一番激しいところで3度ほど戦闘不能になってしまったものの, それ以外は自分が知る限りではPerfectな結果になったので記念にSSを貼ってみたりする
ついでに50の質問とかにも答えてみたりしたので暇な方はどうぞ
お亡くなりになったっぽい
原因は恐らくケーブル断線, ケーブルは痛めないように気を使ってきたつもりだったが…残念
買ってからそれほど経っていないので, かなり惜しい気がするが, 仕方がないので今度買い変えるとしよう
本体自体の感触は気に入っていたので, また小ぶりなボール式マウスにするとしようか, 光学式よりも個人的にはひざの上よりもテーブルの上でちゃんと動いてくれる方が重要動作範囲が広い気がするので
Visual Studio .NETでemacsの…
他にも[編集]-[詳細]の中にはVS6の頃には無かったそれなりに面白そうなものがチョコチョコと入っている模様
上手く使いこなせば結構便利そうである
個人的にはVB6のようにスペースの使い方までがちがちに揃えてくれる機能もあると嬉しかったんだけど… あれって結構見やすくなるんだよね
故障した使用周期が恐ろしく長いことで一部の寮生の間で有名, 一部以外の寮生は存在すら知らないかもしれない事務用のマシンの分かっている人が多いとは思うが, 分かっている人にとっては作業でも何でもない, 単にケーブルを挿すだけ設置作業を手伝う
その時に修理報告書を読んでみると, こんな記述があった(according to 記憶)
メインボード上の一部のコンデンサが膨らんでいる異常があったため, 容量を測定してみたところ, 定格よりも容量が下がっていました
このためにCPU等に安定した電源供給が出来ずに起動しなくなった模様です
メインボードをコンデンサ対策済みのものに置き換えました
自分のマシンのマザーボード上のコンデンサが膨らんでいたらどうしようかと一瞬考えたが, 確認するのも面倒なので気にしないことにした
こんなことって起こるもんなんだなぁと感慨深げに思ってみたり
因みに輸送に使われた箱はISのTECRA修理依頼時に使う箱とサイズは違うと思うけど同じ型の物でした, 意外なところでこんなものを見た感じ, まぁ, メーカー製のサイズ的にも, 購入当時にしては相当スペックが悪かったということ的にもスリムなマシンだからねぇ…
地下のクラスタの構成マシンSunのBladeあたりを修理に出す時に使う輸送箱はどんなものなのかなぁ… あれの怪物だったりして…
# この先は聖狐のVB6 → C# .NETアプリ移植奮戦記となっております
# 興味が無ければ読まないことをお薦め
どうやら.NET Frameworkには既に画面中にあるものに対して何らかの色のBitwizeな演算をすることで画像を得るペンマスクペンにVBでいうCopy Pen + αに相当するものしかなさそう相当するものが存在しない様子
DrawModeプロパティがPen.Colorプロパティに相当と言うのは酷いんじゃ…
Illust Logic Paintの移植にはどうしても実際は白黒で用意された数字のイメージを任意の背景色と前景色(どちらかは白)で表示する処理類する処理が必要だったので他の解決法を探したところ…
代わりにイメージ転送の際に色変換行列を作ることが出来るようだったので, イメージ転送後にマスクをかけていたので, 転送と同時にマスクをかけるように変更すればOKそうこれを使うように
しかしあまりにも周りがゴテゴテしていて使いづらかったので, 必要レベルのWrapperを書くことにした
以下, そのWrapper
// Imageの白をwc, 黒をbcに線形でマッピングするCGの講義で出て来た4 + 1次の同時座標によるアフィン変換, ただし座標空間じゃなくて色空間なのが哀しいところ, しかも使ってるのは拡大縮小と平行移動だけだし…変換行列を持つImageAttributesを返す private static この辺の機能はあまり普通じゃないのか, デフォルトのネームスペースには入っていてくれないので, 今回は直接指定System.Drawing.Imaging.ImageAttributes ImgAttrByColors(Color wc, Color bc) { System.Drawing.Imaging.ImageAttributes iattr = new System.Drawing.Imaging.ImageAttributes(); System.Drawing.Imaging.このクラス, ヘルプの説明が不十分すぎる, コンストラクタでfloat[] []を取る時に取る行列は列ベクトルのベクトル(つまりMatrix12は[1] [2]要素), 要素の順番はRGBAWの順の模様, いろいろ実際に動かした方が早そうColorMatrix cm = new System.Drawing.Imaging.もうひとつColorMatrix(float[] [])なコンストラクタもあったが, 使いづらいので後から要素を指定することに, せめてfloat[,]だったらなぁ…ColorMatrix(); cm.Matrix00 = (float) (wc.R - bc.R) / 255; cm.Matrix11 = (float) (wc.G - bc.G) / 255; cm.Matrix22 = (float) (wc.B - bc.B) / 255; cm.Matrix33 = 1; cm.Matrix40 = (float) bc.R / 255; cm.Matrix41 = (float) bc.G / 255; cm.Matrix42 = (float) bc.B / 255; cm.Matrix44 = 1; iattr.SetColorMatrix(cm); return iattr; }
あとは, これで得られたImageAttributesを使ってDrawImage(Image, Rectangle, int, int, int, int, ここは何も考えずにGraphicsUnit.Pixelを指定すれば良いだけGraphicsUnit, ImageAttributes)を呼べばいいだけ
個人的にはDrawImage(Image, Rectangle, int, int, int, intの代わり, どうせImage全体を描くし, 拡大縮小する気も毛頭無いので…Point, ImageAttributes)ぐらいで十分なんだけど, ImageAttributesを取ろうとすると流石に平行四辺形変形のついているバージョンは呼びたくないし…このぐらい大きなものしか残っていないのがちょっと哀しい
因みにDrawImage()は30種類のオーバーロードを持つ関数, こんな中途半端なところで終わらせるぐらいなら, もっと増やしてあらゆる可能な組み合わせでいけるようにしてくれとか言いたくなってくる何だかなぁ…
因みにこれを乗っけることで元のプログラムよりもこの部分では恐らく重たくなってしまう予感, まぁこれはフレームワークが違うのだから仕方が無いのその代わり別のところでもう少し高速化努力をして, それで取り返せない部分は諦めると言う意味割り切るしかなさそうだが…
注: 日記スクリプトの関係上一部コメント内でfloat[][]とすべきところをfloat[] []としています, ご了承ください, スクリプト用のタグと被るのでタグの中にはかけないのよね…
VB6と.NETで微妙にMax(imum)の挙動が違う
.NETではLargeChangeの値分だけ水増しした状態でいれてやる必要がある模様
直感的にいい加減に使うのには慣れれば使えるのだが, 必要に応じてFormのResize時などでScrollBarのLargeChangeが変わった時に右端を通り越したスクロールバーのつまみを右端に持っていってあげないと正しい描画が得られないある程度補正を加えてあげる必要があるっぽい
それにしても, LargeChangeが1画面分に統一するのはいいんだけど, 今まで敢えてそれ以外の値に設定していた人はどうなるのでしょうか, 恐ろしく使いづらくなってますが…
参照コードとしてVB6からVB .NETへウィザードを使って自動変換したコードを用意して見ているのだが, .Maxが全部(.Maximum - .LargeChange + 1)に尽く変わっているのは笑える
画面のリフレッシュをするとき, VB6でPaintイベントハンドラを直接呼ぶ代わりにInValidateしてからUpDateという方法を取ると, どうやらPaintイベントハンドラにはこっちが描く前にBackground Colorでわざわざ塗りつぶしてから寄越してくれるみたい, 画面がちらつくからいらないっちゅーねん
で, 解決策
結構邪道かもしれないけど, VB6でやっていたことにさらに近づけているだけともいえそう
Paintイベントハンドラの中身を別のvoid (void)なメソッドに写す, 但し, Graphicsオブジェクトの取得を
Graphics g = e.Graphics;
から
Graphics g = 適宜書き換えてくださいpanel1.CreateGraphics();
とし, 最後に
明示的にCreateしたのでDisposeしなければならない, e.Graphicsの場合は要らないみたいだけど…g.Dispose();
を加える
そして, Paintイベントハンドラにはこのメソッドへの呼び出し文だけを記述する
最後にpanel1.Invalidate();な部分もこのメソッドの呼び出しに置き換える
注意点は背景色での塗りつぶし処理をRedraw時にスキップするので, ちゃんと描かないところは消しておくこと(謎)
もしかしたらPaintイベントハンドラのときはちゃんと与えられたe.Graphicsが存在しているところで別にCreateGraphics()するのに抵抗感が無ければ何の問題も無いと思うのですが, こんなことして本当にいいの? と聖狐は思うので… この辺の回答を求む > 識者 …といっても周囲にはそんなにいなさそうだしなぁ…eの中のGraphicsを使うべきかも知れない, この辺はgの取得と解放を行うWrapperをオーバーロード関数として作るだけ, お手軽もう1段メソッドを噛ませばいいだけだが…
今のところ…
と言った感じ, 出来るのは院試前に現実逃避に完成させるか否か院試前か院試後か… それは神のみぞ知る
ポケモンのリーフグリーンバージョンLG, 衝動買いしました @ 22日
で, それにかかりっきりになること2日半, 一応一通りのイベントを終えて, 環境されあればルビー, サファイアにもポケモンを送れるようになるところまで到達, 後はマゾなレベル上げと進化を繰り返す日々というところまで到達, その間その裏の意味するところは日記など書いている暇が無かった, ビバ駄目人間無意味に日記を断ってみたりしてみました
だからといって特に何も無く
問題もいかにもな点とらせ問題, 時間も50分間既定の半分で済む, それでも『ちょっと手間取ったかな』という感じ
途中退出が開始後40分以降認められることになっていたのでその瞬間に速攻で出る, 退出時間10分間だけってどこかの試験を思い出すのですが…
Illust Logic Paintの.NET版開発で最近目の前に立ちはだかっていた無駄な壁の一つをとりあえず撃破する
それは, InputBox()はVBの言語上の関数であるため, C#で作るには自分でそれに相当するものを作る必要があるということ
仕方がないのでついでにイラロジに特化したバージョンを作ってみる
途中で何度も風呂に入っている間にもう一つ別の実装が思いついてそっちに直すみたいなことを何度もやったので…宗旨替えをしながら作っていったので特にtextBoxNums_TextChanged()の実装が恐ろしくスパゲッティに… 何処から手をつけてリファクタリングして良いのかもわからない微妙な感じに完成する
とりあえず今日分かったのは例外をハンドルするとデバッグ環境では恐ろしく無駄に時間がかかるようになるということ
どうも例外処理はIDEで変なスタブを噛ましているのかIDE上ではとてつもなく遅い模様, 出来たDebug版のEXEを直接つついても全然遅くないのでデバッグ環境側の問題だとは思うのだが, 気持ちが悪いので例外処理は別処理によって回避する
よく考えればVB版でもこの辺のInputBoxから帰ってきた文字列の処理で結構スパゲッティやっていた気もするなぁ… あっちはそれなりには分かる程度にまとまっていたから良いけど…
CGの課題のテクスチャマッピングで, 任意の四角形から長方形への座標変換が必要になって考えてみる
最初はアフィン変換もどきな逆変換を適当に作って, それの逆行列でやればいいかと思っていたが, 微妙に制約数が違う…
ちょっと考えてみると図形がゆがむ分だけ非線形なところが出て来るらしい, 逆変換がアフィン変換じゃなかった模様
仕方がないので逆変換の式を元に方程式を立ててそれを解いた一般解を正変換として使おうかと思ったが, ECCのMathematicaに解かせてみるとa2psで5枚分の出力が…
流石にこれじゃあ全然使い物にならなさそうなので逆変換をアフィン変換で出来る部分と出来ない部分に切り分けて後者だけをMathematicaに解かせることに, 今度はディスプレイにしっかりと収まるきれいな結果, 手計算で検証したものとも矛盾はなかったので, これを採用する事にした
しかしながら実装はC#にする予定なので, 今地下で即やるというわけにはいかないのが問題…
それはいつものことだろうというつっこみは不許可の方向で
暑いと体力の消費がきつくなって結果的にダウンしている時間が長くなる気がする
でもってダウンしている間も暑さで体力は削られていって…
どうにもならない螺旋階段を多分下向きに突っ走っている聖狐でした
昨日のバイト
入退室カードを返し忘れたまま帰りかける
結構な寄り道
デスクトップの上のいくつかの項目を間違えて[Shift]+[DEL]してしまう
4つ中3つは何を消したか気づいてリカバリするなり諦めるなりしたが, のこりが何だったか思い出せない
どうせ大した物じゃないだろうから問題ないのだけど…
リーフグリーン版(以下LG), 同様にファイアレッド版はFRと略すことにします, 間違ってFLとかRGとか書いているのを見て揚げ足を取ってはいけません, これらはファイアリーフとかレッドグリーンの略なんでしょうから…ポケモンのゴージャスリゾートにてこんな要求が来る, うーみゅ…
で, 一番謎なのが執事さん, あなたは何も無いところから現れてアイテムを渡すだけの存在ですか… アイテムは金になるのでゴージャスボールはルビサファでは手に入れるのが面倒だしねありがたく頂いているのですが…
英伝VIのサントラが届く, そういえば注文していたっけ…と存在を忘れかけていた聖狐ですが気にしない
これで曲名と曲の対応がちゃんと取れるようになる…資料集として重要なのです(謎)
さて, 50の質問の曲名を直すか…
それにしても, 聖狐はある意味節操なしというかなんと言うか, 英伝VIサウンドは全体的に好きだったりするのでどれもが捨て難いという優柔不断なことになってしまっています
この前書いたときには網羅的に聴く機会など無かったので結局ゲームの終盤付近の印象が強かった曲をチョイスしてしまった傾向にあったのですが… まぁあの辺の曲が好みの一つの極値であることは否定はしないのですがね…
それにしてもCDを買うたびにWMAプレーヤの類を欲しくなってしまう
結局一時的な物欲で収束してくれるのが唯一の救いなのだが, 欲しいなぁ…
『愛してる ただそれだけで 二人はいつかまた会える』 そんな甘い世の中だったらなぁ…
InputBoxは独自に特化したものを実装したので問題は無いが, もう一つVisualBasic名前空間にあったものがあったことに気がつく
Beep()メソッドの存在
イラロジの確認入力機能においてユーザの視線は画面ではなく元データなので画面表示で知らせることは出来ない音での通知は必須要素なのだが, 音の鳴らし方がいまいちよくわからない, 要調査
オブジェクトブラウザでSound, ImmediateのSubstringだったり, 意外…Media Speak, Beep等で検索してみたが殆どがInternet SDK, つまりはJavaScript on HTMLあたりが無いところを見るとWindows APIを呼ぶことになるのだろうか…
で, 結局APIベースで実装した結果
一応後々の資産になりえるので此処に書き記しておこう
まず,
using 直後のDllImportAttributeが宣言されている名前空間System.Runtime.InteropServices;
を最初に挿入する, 次に
この部分は続くメソッドに与えられる属性クラスを指定する構文, この辺は見慣れないが, この場合はこういうものだ程度に思ってればよさそう[DllImport("名前空間はプラットフォームSDKで該当する関数を調べてそこのライブラリの項目から".lib"を外したもの(or ".dll"にしたもの)を使えばよさそう, VB6のAPIビューアがあればそこから取ってくるのが一番簡単だが, その場合は型情報は別途変換する必要があることに注意, VB6と.NETには型互換性は無いUser32")] private static extern アンマネージコードのBOOLはマネージコードのSystem.Int32にマップされるのでVC#のエイリアスはboolじゃなくてintint MessageBeep(アンマネージコードのUINTをマネージコードにマップしたSystem.UInt32のVC#上のエイリアスuint uType);
をクラス内の適当な場所に挿入する
基本的にはこれで使えるんだけど, もう少し使いやすくするために次のようなラッパーを書く
private static void Beep() {
MessageBeep(Cだと何も気にせずにuintの引数に-1を渡せるのだが, C#ではご法度なのでキャスト, 単にキャストするだけだとまだコンパイラが文句を言うのでuncheckedコンテキストにぶち込む必要が, 誰だよUINTなのに-1を渡すなんて仕様にした奴は… ちなみに-1は標準の警告音という意味unchecked((uint) -1));
}
これでWindows APIのBeep(on Kernel32)とは似ていても別物なので注意, こっちは純粋に指定周波数の音を指定時間鳴らすもの, デフォルトが当然ないのでちと敬遠VBのBeep()とほぼ同じように使えるようになる
複数クラスから使いたければどこか一つのクラスにpublicで宣言しておけばOK, API関数の数があるときは新しくWin32といったクラスを作ることが推奨されているっぽいけど, 流石にBeep1つでクラスを新設する気にはなれなかったのでこの方法で
ところで, プラットフォームSDKドキュメントの中に出てきた定数って何処に実体の一覧があるんだろう…
最悪VB6のAPIビューアで良いんだけど, ちゃんとVS .NETの範囲内で調べる方法を知っておきたいなぁ…
唯一知っている方法は{VS .net}\Vc7\PlatformSDK\Includeの中からSDKドキュメントにある宣言ヘッダファイルを開いて検索するというもの, こんな方法以外に何かいい方法は無いのかなぁ… 直接読めちゃえば問題ないんだけど別言語のファイルだからなぁ… ま, 所詮別言語製のDLLを呼び出している限界といえばそれまでだけど
つーかBeep()ぐらいどこかに用意しておいてください > .NET Framework
(おまけ) 矩形の選択に便利な実装
Rectangle.Union(これらのサイズは1x1にでもしておく(始点Rect), (終点Rect))とやれば位置関係に関わらず始点と終点を対角線とするRectangleが帰ってくる, かなり便利
着メロに丁度よさそうだったのでダウンロードする
さすがに『暗がりがくれた安らぎ』とかが着信音として鳴っても絶対に気付かないと思われるわけで, 好みの曲が着メロとして即相応しい曲になるとは限らないのですが, この曲ならちゃんと反応できそうな気が…
ま, 気付かなかったらごめんなさいという方向で…
こんなことを言っているけど聖狐の嗜好と着メロとしての適性は結構正の相関にある, つまり明るい曲が好きであるということですが…
30日25:00台の出来事ということで…
唐突だが, 私の携帯にはラジオ受信機能なる物がついていたりする
しかしながら, アンテナとなるイヤホンを付けた状態でない限り聴くことが出来なかったりするよく考えたら当たり前で仕方がないんだけど, 外にイヤホン持って行ってまで使う気にはなれない中途半端な代物だったりするわけで, 買った頃に面白半分で聴いていたぐらいで完全に放置していたり
そういうのもなんなので眠れないのをいいことに久々に使ってみることに…
いや, ふつーに駒場の英Iのリスニングテープ用に購入, その用途で使われることはなかった…ラジカセはあるんですが, 使う気にならないというかなんと言うか… 置物化しています
で, 某局でユーロビート特集をやっていたり
意外かも知れませんが実は私, こういうノリの良い曲は結構好きだったりします
ということで聴き入る事約1時間, 逆に目がさえてしまったり
それにしても(聖狐的には)懐かしい名前が結構出てきていたような気が, Folder5なんて恐らくは聖狐が音楽業界にとてつもなく疎いがためにたまたま聞いてなかっただけかもしれませんが何年ぶりに聞いただろう… それにしてもこのユニット名って某日記方面でIcon(プログラミング言語…らしい)とかCOM Objectとかが検索しづらいという話が出ていたので微妙にベクトルをずらしながら遅れながらの参戦(謎)Googleで検索しづらそうだなぁ…とか考えが明後日の方向に飛んでいったりして…
買った人がいたので1杯飲ませていただく
なんというか…微妙…
カルピスの酸味と抹茶の香り & 後味が見事にミスマッチしている感があり, ちょっときつい
しかしながら普通に飲めている人もいらっしゃるようなので, 面白い物好きな皆様は試してはいかがだろうか
某所では飲んでみるように圧力がかかっている方もいらっしゃるようですが…
CD版を買った3年生が出現する
しかしながらインストール先のノートではあまり安定して動作していない模様, スペック不足過ぎの感が否めない
そのうちIS Laptopで試すそうなので, そっちの結果に請うご期待な感じである
さて, 彼はどのような偉業を達成するのだろうか…(誇張)
LHA書庫内に絶対パスや『../』を多用した相対パスを利用して上位フォルダに書き込みを行えるということで騒がれていたりするようだが, 個人的には『何を今更…』な気がする
確かに絶対パス書庫には7~8年前にといっても, Virusとかじゃなくて単純に目的物が変なところに展開されただけ1度引っかかった覚えがあるが, この上位パスに展開できる『仕様』がいまや『セキュリティホール』なんだとか, やな時代だ…
怪しいアーカイブがあったらとりあえずアーカイバに突っ込んで中身を見るぐらいの自衛はやって当然だと思うのですがねぇ… よりによってWinnyの設定ファイルが入っていてCドライブ全体を共有設定されるとかそんな話があったが, 引っ掛ける方も引っかかる方もどっちもどっちだなぁと妙に冷めた視線しか送れない自分が其処に
まぁSFXには簡易インストールスクリプトを組み込むことが出来て, 意図しない設定を書き込まれたりすることがあるので, 実行と同時にTempに展開して終わったら中身を実行…なソフトとかもありますしSFXを気味悪がってアーカイバ経由で展開する癖がついているような聖狐がそんなこといったって実年齢という意味ではなく, 『初心者』さんの対義語として年寄りの戯言といった感じにしか聞こえないのでしょうが, 書庫ファイルを『ちゃんと』扱うぐらいなら, このぐらいの仕様はきっかけ? マニュアル読むとか解説してるサイトを読むとか一旦痛い目にあってみるとか…ちゃんと知っておくべきな気がしてみたり…
ちなみにExploit(!) LZHはDLLを直接叩かなくてもLHMeltingの表示上ファイル名とパス情報は切り離して表示されてるけど格納される場所は一緒だし…リネーム機能で十分簡単に作れたりしますが… まあLHMeltingユーザならこれが本来DLLの動作検証用アプリケーションに過ぎないことを十分知った上でそれでも便利だから使っているのですよね?当たり前すぎて突っ込む気もしませんがねぇ…
問題がある奴らに対抗する為にわざわざ『ディレクトリ付き』かどうか設定できるんだし… まぁ結局はDLLの機能なんだけど
とりあえずこの問題で『対応は?』といったメールでメールボックスをパンクさせられ, 所構わず叩かれまくって, 無効化するパッチを書くために貴重な時間を奪われ…引きずりまわされているDLL/アーカイバ作者の皆様には大変そうだなぁという同情の念を抱いてみたりしているのです
特に個人的にNoahのK.INABAさんはなまじ知っている人ゆえに結構同情…