例によって安定した夢。起きたときの気分も良好。今日は学校でテストがある。今からさっさと範囲を復習してHugeIntライブラリのコードを整理する(結局そっちへいく)。
alpha11。295桁以上の除算を高速化。手元では2の平方根小数点以下2000桁を2秒で計算する。1000桁ならたったの800ミリ秒。貧弱なJavaScriptでもやり方次第では桁違いの計算能力を与えることができる。もはやブラウザ上で1000桁級の巨大整数を瞬時に処理できる。
開発中alpha12にてマチンの公式による円周率計算結果。100桁を500ミリ秒、1001桁(精度997桁)は76秒で計算できた。今までの自己記録は500桁だったので記録更新。ガウス・ルジャンドルもやってるが今のところ上手く計算できていない。
π 1000digits 3 1415926535 8979323846 2643383279 5028841971 6939937510 5820974944 5923078164 0628620899 8628034825 3421170679 8214808651 3282306647 0938446095 5058223172 5359408128 4811174502 8410270193 8521105559 6446229489 5493038196 4428810975 6659334461 2847564823 3786783165 2712019091 4564856692 3460348610 4543266482 1339360726 0249141273 7245870066 0631558817 4881520920 9628292540 9171536436 7892590360 0113305305 4882046652 1384146951 9415116094 3305727036 5759591953 0921861173 8193261179 3105118548 0744623799 6274956735 1885752724 8912279381 8301194912 9833673362 4406566430 8602139494 6395224737 1907021798 6094370277 0539217176 2931767523 8467481846 7669405132 0005681271 4526356082 7785771342 7577896091 7363717872 1468440901 2249534301 4654958537 1050792279 6892589235 4201995611 2129021960 8640344181 5981362977 4771309960 5187072113 4999999837 2978049951 0597317328 1609631859 5024459455 3469083026 4252230825 3344685035 2619311881 7101000313 7838752886 5875332083 8142061717 7669147303 5982534904 2875546873 1159562863 8823537875 9375195778 1857780532 1712268066 1300192787 6611195909 2164202024 (1001digits) --------------------------------- _HugeInt_Version:Ver.0.4 alpha11 _HugeInt_Current:Wed Nov 30 07:00:37 UTC+0900 2005 _HugeInt_UserAgent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322) _HugeInt_Mode:pi DEBUG: HugeInt.pi_Machin TEST DEBUG:input: 1000(4 digits) DEBUG:output: 31415926535897932384...(1001 digits) DEBUG:Cost: 76734ms DEBUG: end
JavaScriptコンソールでCSSのエラーを検出できるのがよさげ。ただそうなると少しサイトを廻るだけで凄まじい数のエラーがでそうだ(IE独自機能が全部エラー判定)。あとなんといっても速い。ファイルを読み込み次第瞬時に描画している。
にしてもSleipnirは強制終了し過ぎだしIEはセキュリティーホールの鬼だし。キツネがここまで高性能になってくるといよいよIEを実験機にしようかと考えてしまう。
Sleipnirが前々から問題ばかり起こして嫌だったのでSleipnir1.66にダウングレードした。新しいのはどうでもいいから安定しているほうがずっと使いやすい。
alpha12、遥かに高速化されたマチンの公式とそれをも上回るガウス・ルジャンドルの公式を実装。半年以上続けたこのふざけたプロジェクトはついに完成を見た(今後も止めるつもりは毛頭ないが)。とりあえずブラウザ上で1000桁級の円周率の計算に成功。
自分で組んだプログラムで計算した円周率はまた違う。SUPER_PIの結果と照合したところ10000桁中9998桁合っていた。この1万桁は13回のループ計算を必要とする(1回130秒)。
\e
ゲームの説明書を読む夢を見た。どんなものかといえばとりあえずCCさくらあたりを想像するのが無難(TV観ないので私自身知らないが、とりあえずカード云々)。
#忘れないうちに夢の内容を書き込んでみる
ニュートン法で平方根を計算しようとした矢先、除算に問題点が…。なんと入力が512桁なのに出力が510桁。明らかに除算がしくじっている様子。最初は平方根の関数が悪いのかと思っていたが、桁数に差が出た時点で除算処理に問題があると確信した。しかもあろうことか問題が起こった除算アルゴリズムは14桁未満の最高速度版だった。
なんとか14桁以下の除算の問題点を修正し、alpha10を公開。巨大整数の平方根を計算できる。ログを見れば分かるように14桁以下のみならず除算全体に致命的なバグを抱えてました。
明日テスト(何
リアルすぎる夢を見た。記憶にはないのでこの夢を見たのは恐らく初めて。何か行事があってそのあともう一つイベントがあるが後者のほうは夢だった(最初の行事のあと疲れて寝てしまった)という2重設定。最初と最後に2回窓の外を見るが、最初に見た巨大な積乱雲は実は2重夢で、最後に見たとき(夢から起きたとき)は午前5時ぐらいの暗い青空であった。そしてそのままPCの電源を入れ掲示板を巡回したあとあの夢の日記でも書くか〜というところで起床。夢の中でやろうとしていた行動を今やっている。
夢はそのときの気分を反映しているような気がする。今日(27-28)見たのは非常に清々しく後味の良い夢だったが、自殺願望まであった昨日(26-27)は思い出したくもない夢だった。後者のほうは積極的に忘れるとして前者で窓から見た積乱雲はなかなか壮観だったので覚えておきたい。
色々日記とかを巡回しているが、Safariのネタがあったので一考。どう考えてもGeckoじゃないSafariブラウザはUAでGeckoを宣言している。単純にUAに「Gecko」を含むブラウザを判定するとキツネたん以外の動物が釣れる。Safariたんを弾くには「Gecko」ではなく「Gecko/」を含むUAを判定することで回避できる。というかMSHTMLのIEとKHTMLのSafariがMozilla互換を宣言しているのが摩訶不思議。下手に一緒にされるよりすぱっと分けてくれたほうが製作者としてはうれしいのだが。
TVでIQテストがあったらしいが、人間の知能を数値化できるという発想自体が怪しい。それにどうしても"視聴率"を要求されるTVのIQテストは正確性に欠ける。"知能指数"として呼ばれているからえらい高貴な認識になるが、客観的に判断すればIQテスト自体は論理パズルを解く能力に過ぎない。相手より高くても論理パズルが解けるか解けないかの差で、知能全般が相手より優れているとは限らない。ついでに調べるとIQ自体は知能の高さじゃなくて知能障害の有無を調べるための方法のようで。
だから朝っぱらから勉強しろ勉強しろと言わないで。嫌々やっても頭には絶対入らないし、暴言でやる気がでたら誰も苦労はしないから。というか常にやる気はある。ただ私の目指す目標は点数という単純数字じゃなくてあくまで学力。暗記してその場で点を稼げるものではなく利用可能な知識資源でなければならない。
#と自分を説得して暗礁に乗り上げるのを防止する。
alpha8の除算の商が何故か負に…。調べてみるとalpha8で余りが未定義の場合にゼロを挿入する処理を加えていた。で、ソースを見ると(下)。
if(Number1_flag==Number2_flag)Result.flag = false; if(Result.Surplus.Val=="")Result.Surplus.Val = "0"; else Result.flag = true;
強調されている部分が余りがないときにゼロを挿入してエラーを回避する処理。しかし挿入する位置が違ってた。正しくは以下のようにする。if構文が続いていたので運よく重大なエラーが起きなかったのだ。
if(Number1_flag==Number2_flag)Result.flag = false; else Result.flag = true; if(Result.Surplus.Val=="")Result.Surplus.Val = "0";
今alpha9を製造中。10進数を2進数に展開するヤツを2〜32進数に展開できるように改造中(遅くてもいいなら別に何百進数でもOK)。細かい部分では、デバッグ表示の引数の順番が気に食わないのを修正するのとMozilla用にプログレスバーを装着中。根幹部分を変更するので一通り作業が終わったらalpha9を公開する。
(19:10)alpha9公開
気分良好
一度に商を14桁ずつ計算する方法が見つかり、除数が293桁以下の除算が高速化。素数判定デモを試してみたが、50桁でも余裕で処理できる。エラトステネスもフェルマーテストもVer.0.3では比較にならないほど速い。特にエラトステネスは判定する桁数が上がっても速度が落ちない。
現在除算は293桁以下で爆速だが、294桁以上でも速くする予定。除数が294桁以上の場合は上から293桁取り出して概算すればよい。
素数判定デモだが、40桁の数のある範囲を検索したところ、1万以上にわたって素数がない部分を捕捉した。この範囲内ではエラトステネスを284回通過したが、そのあとのフェルマーテストは全滅。Ver.0.4 alpha7の除算アルゴリズムが怪しいかもしれないと思いalpha6で実験したところ、alpha7で弾かれた5282628248987597420396505962261283376847がフェルマーテストを通過。除算14桁では特殊な場合に演算ミスが生じることが発覚。
同時計算する商を11桁に落とし問題を解決したalpha8を追加(かなり暫定的)。3桁も落としたので50桁で200ミリ秒程度の速度低下が起こっている。また単に桁数を落として"特殊な事例"の密度を下げただけかもしれない。根本的な問題がある可能性も否定できないので今後調査する予定。
next
IEではカーソルをCSSで独自のものに変更できるが、カーソルをいじられると違和感を感じて落ち着かない。慣れていないが故にカーソル自体を見失うこともしばしば。音楽は人のスピーカーを勝手にいじるんじゃねーよということでProxomitronで全部無効にしてるが、カーソルも無効にしていいかも。他人の腕を使っているようで落着かない。
参照が多い記事の中で気に入らない記事を1件改訂。荒らしについての記事はどう考えてももっと良質な記事がWWW上にあるだろうにと思っているのにかなり参照されている様子。少しはマシにせねば。
前前から問題だと思っていたが、このサイトの全ページでMETAに指定されているページ概要は<meta name="description" xml:lang="ja" content="気ままに" />
となっている。いい加減ページごとに記述する習慣をつけないといけない。少しずつ修正していく。
JavaScriptで何度組んでもこの結果。各数値の偏りは以下の通り。
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
893 | 1421 | 954 | 912 | 926 | 878 | 861 | 910 | 918 | 824 |
1に偏る。これでは擬似乱数としては使えない。何回作り直してもこの結果なので移植の際に手違いが生じた可能性は除外。となればCとJSで違う点、例えばデータ型などを厳密に分析する必要がある。
本当に有限の時間内に終了しちゃったよ…。
#だから三次元はry
勉強しろと説教するのはお願いだからやめてほしい。そんなことを言われても私の中で変わることといえば勉強に対する苦痛と脅迫概念を増幅させ鬱病を進行させるだけでしかない。この文章書いてる時点で自殺方法を考えるなど精神的にかなりやばい。意識を持てといわれても、こうなってしまうとどうにか楽観主義的な考えにもっていかないと一週間ももたない。
早く忘れたい。一ヶ月前も同じようなことになって体調を崩し、その後数週間の学習速度が落ちている。これは「実測データ」として出ていることであり、意識すればするほど重圧がかかりかえって何もできなくなる。
\e
2年前の今日は初めてサイトを立ち上げた日だが、1年は365日5時間48分49秒で365*2日前太陽系における地球の座標はこの位置ではなかったはず。となると地球上において太陽が中途半端な回数だけ昇った回数よりも500回とか1000回とかに祝ったほうがいいんじゃないかと考えるこの頃。だって太陽の周りを一周とか言って厳密に一周してないんですもん。
CODHTMLをVer.0.7にバージョンアップ。今回搭載したHTMLの記号化アルゴリズムは例によって技術的興味で既存の記号化アルゴリズムよりも少ない文字数で記号化できないかと色々やってたときに見つけた。HTMLの圧縮率を前より16.7%上げることができたので、未練が残るCODHTMLに搭載。この際だから計画していた解読妨害工作を積めるだけ積んだ。機能といい生成するソースコードの美しさといい、Ver.0.6では不釣合いだったのでVer.0.7にした。あと使う人間にゃ関係ないけど暗号ソース生成スクリプトも結構美しく書いたつもり。
メインのHTML記号化はやり方次第では圧縮率をさらに上げることができる。含まれる文字によるが今よりもさらに30%圧縮することを目標に開発を続ける。
相互サイトの一つが結構真面目に続けてるようなのでRSSに追加。この年齢における三次元恋愛が有限の時間内に終了するという原則を頭に置きつつに観察中(何。ネットは感情が伝わりにくいとかいう説があるが、行間を読めば口頭より文章のほうがむしろ"はっきり"伝わる。というか口頭でも文章でも人間が書く分には変わらない。
週末ですよ…
今日を以って学校での全友人関係を切断。まぁ元々話が合う人間なんて誰もいないのだけれど。
JavaScriptだけでこの日記をブログ形式で表示できないかなーと考え中。既に日記の全日付はデータベース化されており、そのデータベースを使ってトップページにある月ごとの日記表を自動生成している。そして各日記ファイルのダウンロードもXMLHttpRequestを使えば可能。まぁ技術的には許容範囲内。問題は"設計"。激しく暇だったら作る。
時間が欲しいのでこれくらいで。
凄まじくくだらない理由でOSの配色を青ベースに変えた。理由を書く気はないが、暇があればサイトの代替スタイルにも同じ配色を追加したい。
HugeIntの除算だが、単に採れる商を2倍にしてシフトする桁も2倍にするだけでは動かないことが分かった。1桁ごとに商を求める場合商に0が立っても1桁シフトだったから問題ないが、2桁シフトだと商に0がたった次のループは事実上4桁シフトになる。商が0のときだけ3桁シフトでいけば…などと考えているが、プログラムで実装する前に紙の上でアルゴリズムを検証しないとできなさそう。これ以上PCの前で同じ方法に執着しても終わりそうにないので、一旦除算は中止して巨大剰余や平方根でも実装してみる。除算はその後で速くして剰余が高速化されるのを楽しめばいい…。
だから自鯖は安定していないと…。ま、勝手なんだけどさ。
11月25日でサイト2周年らしい。
JavaScriptのリファレンスを読んでいるとsortメソッドがあった。昔は比較関数が理解できずに使えなかったものだが、久々に読んで納得。利用方法は以下の通り。
function upsort(a,b){return a-b} function downsort(a,b){return b-a} testArray.sort(upsort);//testArrayは昇順にソートされる testArray.sort(downsort);//testArrayは降順にソートされる
sortに比較関数が与えられていないときは辞書式に。比較関数を与えた場合数値比較。
以上。
同じ曲を聴きつづけないと安心できない状態。別に害はないんだが…。
機能は最高でも安定性がクズではサーバーにはならない。普通のマシンをサーバーにするのは"技術的にサーバーとして動作することが可能"というだけであり、実験サーバーとしては使えるが少なくとも実用にはならない。真面目にサーバーにするならサーバー専用のマシンが必要になる。
別にやるのは自由だが、常連が一番やる気なくすのはいきなり観れなくなること。いい例として時間帯指定で公開していたサイトがあったが、当然ながらアクセス数が伸びず一ヶ月も経たずに潰れた。安定して初めてサーバーは存在できる(私がusamimi.infoという高性能な鯖を無視してジオシティーズを使う理由はここにあったりする)。
自鯖をやるならやるで長持ちさせてほしい。
除算について。15桁以上306桁以下では現在てきとーに概算した結果の上位1桁を商に使っているが、実際には15桁程度の商が"採れる"。信用する商を2桁にすれば単純計算で計算速度が2倍になり5桁にすれば5倍になるが、試し掘りした結果をどこまで信用するかによる。ちなみに乗算の計算コストを考慮すれば最大7桁まで利用可能。ただ無闇に信用して誤差が±1を越えると計算ミスが生じ無限ループに突入。
以上。
早起きの問題点は早起きする夢を見ることにある。
昨日は飽きたと書いたがまだまだ。寝ている間も同じ曲をかけつづけた。本来は主題歌のほうがいいのだが、昨日の時点では主題歌のCDは見つからないorz。かなりマイナーな曲のようだ(寧ろマイナーだからこそいいという考えで)。
HTMLとJavaScriptは"簡単"という意見があるそうだ。詳しくは書かないが、少なくとも以下のように考えていたら論外。
問題は"質"を意識していないことにある。どんな言語でも動く/表示されるだけなら素人でも作ることができる。そこで素人とプロを分けるのは質だ。HTMLならValidかinValidか。Cなどなら処理速度とソースコードの美しさ。処理速度が速かろうと、そのスピードを無駄に消費するプログラムはゴミだ。最短ルートをカットし最小限のメモリで処理をこなすプログラムこそが美しい。言語の種類なんてどうでもいい。
とかなんとか。
昔録画した次の日に削除されたインディペンデンス・デイのDVDを借りてきた。宇宙戦争といい侵略モノははまる。観終わったらHugeIntの除算高速化を行う。1000桁の除算に400ミリ秒もかかっていては円周率や平方根の速度が落ちる。また巨大剰余の速度も落ちるので、最終的にフェルマーテストの速度が落ちることになる。
イメージが焼きついた曲名が判明。"Butterfly KODA KUMI"。これが四六時中意識の中でぐるぐる回り続ける。聴いているときは外からの入力のみでいいが、聴いていないときは無意識的に脳内補充を続けている。よってその間脳体力を消費する。もう病気だこれ。
それはそうと「うたまっぷ.com」。Flashで歌詞データの単純コピーを禁止しているようだが、キャッシュに歌詞の生データが残っていては仕方がない。方法さえわかればバカでもコピーが出来てしまう。具体的には、まずURIに引っ付いている曲のIDをFlashのURIにくっつけて呼び出す。さらにFlashがIDつきでPHPを呼び出す。最終的にPHPがFlashに曲の生データを返すというプロセスで歌詞を表示している。そしてこれら一連の動作がサーバーサイドではなくブラウザ上で行われている。即ち、"隠したい"PHPはキャッシュに残る。以前私はFlashを逆アセンブルしてURIを調べたことがあったが、そんなことをしなくても読み込まれているファイルを調べれば一発で歌詞データを見つけることができる。
歌詞コピーしてぇって場合自力でどうぞ。別に書くのに問題はないが面倒なことになりかねない。
#サーバーが403を返すファイルに無理矢理アクセスするのは不正アクセスだが、200を返すファイルに幾らアクセスしようと不正アクセスではない。サーバーがファイルへのアクセスを能動的に許可しているからだ。また、音楽配信系のサイトはJavaScriptやFlashなどでデータをコピーされないように頑張っているが、どんなデータでも展開する前には必ずダウンロードされており、根本的にコピーを防止するなんて不可能だ。そもそもコピーによって成立する世界にコピーされたくないデータを置くなど間違っている。
で、この曲を早速リッピングして元のCDから取り出し、音楽CD用にレート変換した「残酷な天使のテーゼ」を加えてCD-Rに焼いた。これで常に聴ける。
そういえばCDのコピーについてだが、コピーを禁止しようとしている著作権団体は先のことをまったく考えていない。紙なら500年以上保存できるが、デジタルメディアの寿命は長く見積もっても20年程度である。そしてこの少ない保存期間でもデータを確実に保存できるのは情報が劣化しにくいデジタルコピーのおかげであり、コピーを禁止するのはたかが20年で消滅する文明を意味する。管理団体が日夜増えつづける情報をコピーしつづけられるなら話は別だが、そんなことは現実的に不可能なので結局人類全体でコピーしつづける必要がある。
#この考えは情報の権利者なんて考えていません。致死率100%の人間なんざ守るに値しない。ユークリッドは死んでもユークリッドの原論は不滅だ。
alpha5。割る数が306桁以下の除算高速化と、Ver.0.3より4倍速い2進展開を追加。あとインターフェイスを改良。306桁以下で動作する除算はもう少し速くなるはず。
流石に半日同じ曲は飽きた。
長文なんで誤字がないとは言い切れない。
12巻まで全て揃えたので一応目的は達成された(CDを除く)。12巻は完結ではなく途中で終わられた上に、今までの11巻で積み重ねてきたことを一気に突き崩す残酷な展開だったので、全くやすらがない。この点に限り失敗。13巻は今までの刊行日から推測するに2006年5月20日〜2006年6月10日と思われる。
起床したのが遅かった上に今の時間帯(昼下がり)は大嫌い。こんな時間にこんな展開を読むんじゃなかった…。吐き気がする。気分転換を図ろう。
気分転換に残酷な天使のテーゼ。ちなみにエヴァは一度も観たことありません。デイアフターテゥモローの主題歌とかも清々しくて好き。
alpha4に更新。5日以上原因不明の無限ループに悩ませつづけられた除算がやっと解決した。割る数が14桁以下なら超高速だが、15桁以上では今のところ低速。"重大な設計ミス"は基礎関数に.Copy()を追加するだけで解決した。
void(0);
半袖じゃ無謀だった…。朝っぱらから起動するとマシン本体から妙な音か聞こえ、急遽再起動。ハードもメンテもそろそろしなくてはならないし、OSのほうも最近デスクトップが一度壊れたので再セットアップする必要がある。さていつやるかな。
12日ぶりにサイト更新。経過表示にかかるコストがメインの演算以上とか、明らかに間違ってるだろなプログラムの高速化を行った。このプログラムについては数日前から薄々気が付いていたが、実際に経過表示を削ると演算速度が3倍に。全く関係ないプログラムが全体の演算速度を1/3にしてたとか、泣ける。HSP版も同様の処理で2倍程度に高速化。つか、当初は2倍程度の時間差があったHSPとJSは今では50%の差しかない。単純な演算ならダウンロードの必要がないJSのほうが有能。
例によってこれから長々と日記を書こうとしていたが中止。一般に"まとも"なサイト運営者は掲示板の返信及び日記等の文章を記述するのにかなりの時間を割く。このサイトも例外ではなく、今書いているこの内容も1時間かかっている。日記サイトならともかく、情報系サイトの一面も持つこのサイトではこれ以上日記に時間を回せないと判断し中止にした。長文は時間があるときに限る。
以上
明日の気温は3セルシウス度らしい。なんとしても4時起床を狙わねば朝が危ない。
昨日もそうだが、時間がねーとか言いつつ日記にかなりの時間を消費していたりする。まだまだ書きたいところではあるが、更新のほうもやらねばならぬので長文はこれぐらいに留める。
4月ごろの日記を読み返してみると、半年で文章表現力が段違いに上がっていることに気づく。そうでなくとも結構思想が変わっている。というか、サイト開設当初の日記とかもう同一人物が書いたものとは思えない。久々に昔文章を読んでみた感想。
その他色々。
最後の脆弱性は実際に試せる例をつけとく。IEとOperaではステータスバーにはtestなんたらいうURIが表示されるが、実際にはこのサイトのトップページに飛ぶ。
this.class属性 = \e
最終更新6日だからもう10日経つ。いい加減更新せにゃと思いつつもしばらくやってなかったのでどこから手をつければいいのやら。
旧式アルゴリズムすら動かねーという状態。恐らく割られる数と割る数の差を持った変数に問題があるのだろう。旧式でなんとか作って、そのあとでe+307未満の場合に分岐させる。精度限界を超える演算の場合、商に±1の誤差があることを考慮する必要があるから面倒。この誤差の検出に1度でも失敗すればその後の処理が無限ループになる。とりあえず引いてみて、その結果まだ余裕があるならさらに引き、答えがマイナスになったら今度は足す、という処理でいける(はず)。
昨日で終わったはずの人権教育、未だ続く。結局彼らは生徒に自分たちの主張を押し付けているに過ぎない。授業では生徒側も反論を加えるが、教師は「でも〜」「しかし〜」などの接続語のあとにやたら抽象的な問題を持ってきて対抗。最後にオチと称し自身の意見を述べて授業を終わらせた。こんな議論に人権などあるものか。認めない。認めないから感想プリントに問題点を指摘して提出。
そもそもあの考えは任意の単語を最初から差別発言であると定義しているから、どう演繹をしても絶対にひとつの結果にしかたどり着かない。その発言を受ける側の立場、その発言を聞いた第3者の立場には触れているものの、それらの立場の人間が考える事柄を最初から全て確定してしまっている。これでは幾ら相手の立場になっても自分主観の考えにならざるをえない。というかこの際はっきりさせるが、人権侵害してるのは一々生徒の問題に介入し事を大げさにする教職員である。お前らが第3者同士の呼び方を勝手に差別発言と認定して弾圧を加えているのだろと。俺がこう思うからその言葉は使うんじゃない〜というのは、もはや人権侵害以外の何物でもない。
コピープロテクションといってもここまでやるとやってることはスパイウェアと同じ。勝手に人のマシンにプログラムをインストールして問題を引き起こす。幾ら違法コピーを防止するっつってもこれはやり過ぎ。CCCDやエイベックスのこともあるが、コピー防止技術はもとよりその著作権論が信用できなくなってくる。
こんなことをされつづければ、システムは汚れていく。マシン自体の動作は遅くなっていく。
以上。
1年前は授業で新しい考え方を入手することがあったが、今年は特になかった。なんというか、この1年でネットなどから吸収した知識レベルを上回る内容がなかったようだ。というか、大人の子供に対する見方を見事に表現した詩が配られた。"子は親の鏡"というのは、ようは子供は極めてニュートラルな存在で大人の教育次第でなんとでもなるということだ。見方によってはよくもなるし悪くもなる。大人の教育責任とも読めるし、子供の人権否定とも読める。隣に例によってネット批判があったが、ネットの全特徴を拾い出した上で各特徴における長所と短所を考えるべき。リアルの長所とネットの短所を比較してるんじゃ議論にならない。
あなたは 16.45%アニメに汚染されています。
あなたの生活にも少しづつアニメが入り込んでます。
でもまだ大丈夫です。
どうみても普通の人です。
もし、アニメを見ようかなと思っているなら、
止めた方が良いでしょう。
その方が楽しい人生を送ることが出来ると思いますよ。
流石にアニメを見たことがないだけあって常人判定らしいが、媒体が変われば多分重症判定を食らうだろう。
2005/11/15 (Tue) 23:30:24
[題名] : ゲーム質問
[コメント] : Reloadさんの力をもってしても将棋のゲームは作れないものでしょうか
作ってくれと言う要望ではないですがふと気になって。
将棋やオセロの類には前前から興味はあるが、具体的な実装方法は考えていない。また私自身プログラミングはそんなに上手いわけではない。オセロも将棋も駒の移動はできそうだが、対戦プログラムはさっぱり。またネット対戦はサーバーサイドのプログラムをあまりいじったことがないのでさっぱり。多分無理。
将棋ゲームといえば、既に将棋ソフトはプロに近いレベルになってるようだ。
書いてたら遅くなった…
明日は人権デーらしく学校の授業が人権教育に変更されるそうだ。早く帰れるのはうれしいが、私としては定義が曖昧な人権が好きじゃない。何より人権の極限である"殺人"が悪いことなのか哲学的に証明できていない。
ところでその死刑の是非だが、人権を尊重するなら死刑は廃止しなければならない。例えば常識的に国がふざけた法律を作って大量虐殺するのは間違いなく悪いことだ。しかし、実質的に殺人と何も変わらない死刑は法律によって正当化されている。殺人を法律の枠を越えた悪とみるならば、死刑は絶対に否定されなけばならず、これを肯定するなら殺人が法を越えた悪であると言えなくなってしまう。(以上、正しいかどうかは不明だが思考結果)
さて、この式に死刑/戦争は存在するという事実を代入すると、殺人は悪とはいえないという結論が導き出される。とりあえずこれ以上考えると頭が痛くなるのでこの結論を以って終わらせておく。あと、証明に使った"常識的"とは人権が法律の枠を越えた権利であるという常識です。もし自国内に合法的に核ミサイルを撃ち込むことは悪ではないと考えている場合、証明は成り立ちません。悪しからず。
#結局頭が痛くなったので自称"やすらぎ系"を謳う漫画でも読んで適当にやすらぎます。
ブラウザでWindowsアップデードやってる限りセキュリティーはクズだっつーの(ぁ
; //end
8巻まで揃えた(暇人)。いい加減サイト更新せにゃと思いつつ、半日テキストエディターを開いている。プログラムに飽きたら漫画。基本的にそのどっちか。
今日中に完成できなかったが、alpha4にて除算を構築中。一応割る数が14桁以内の場合に限り関数は完成。残る2関数は1.7976931348623157e+307以下の場合とそれ以上の一般にInfinityになってしまう巨大数の場合。完成している14桁以内の関数は現在のVer.0.3より数十倍も高速(2000桁の数を40ミリ秒で処理できる)で、エラトステネスのふるいの実行速度が一気に上がる。それ以外の場合はまだアルゴリズムが確定していない。このまま見つからなければ旧式の方法をとりあえず採用する予定。
値自体は未掲載だが、alpha4にて40000の階乗の計算を達成。20916924222121323633から始まる16万6714桁の巨大整数である。末尾のゼロの個数は9998個あり、計算には1356.375秒かかった。Ver.0.4の階乗アルゴリズムは計算量の増加量が1次関数的なので速度が落ちにくく、頑張れば倍の8万まではいける。一応プログラム上は999万9999までできるように作ったが、何年かかるか分からないのでバカなことをしたい場合は10万以下推奨。
なんかだるいので掲示板閉鎖を検討中。別にあんなもんなくても送信フォームで通信はできるのだし。
WWWCでサイト廻ってたら自宅サーバーに移転した人を発見。私が前に見た自宅サーバーは一週間と持たなかったので、この人も何日持つかなーと色々考え中。一般にレンタルサーバーは容量や使えるファイルの種類、広告の有無などで決める事が多い。自宅サーバーはこれらを全てパスした一見完全無欠の手段に見えるが、実際のところサーバーというのは安定しててなんぼであって高機能でも不安定なサーバーだと長くは持たない。自宅サーバーは自由性では最強だが、安定性は最強に悪いためアクセス数を上げようとしたりCGIなどを使おうとすると負荷が上がりジレンマに陥るだろう。つーかそもそもこういうのは頭が冷めれば自宅サーバーなんてやってられなくなるに違いない。
#というかサーバーログ収集してるとか書かれるとページにアクセスする気が失せる…。
以上。寝る前に宇宙戦争でも観る。
多重人格というと悪いイメージがあるが、これをPC的に言えばデュアルブートに相当し、なんだかカッコよく聞こえる(ネタ)。
遊びもここまでやると少々やりすぎた感じだが、止めるつもりはない。中学時代からの私の趣味の一つが無駄に巨大な計算をすることであるし、スクリプトの開発でJavaScriptのプログラミングがかなり上達した。このライブラリを開発する以前のスクリプトや最初に作った巨大数演算のプログラムを見ると、そこら中に高速化の余地や処理方法の改善点があり正直言って酷い。プログラム言語のスキルは自分で作れば作るほど上達する。量を重ねれば質が上がるといった感じ。
ちゅーか、このVer.0.4の開発でさらにスキルが上がったらしく、サイトのベーススクリプトに無駄があるように感じる。オブジェクト単位でまとまっていない上に大量のグローバル変数によるページ汚染。暇なときに互換問題を含めて書き直したい。ちなみに私が初めてオブジェクト指向なJavaScriptを組んだのはVer.0.4が初めてであり、数日前まではJavaScriptの持つポテンシャルを十分に引き出せない状態だった。もちろん今のスクリプトでさえ完璧とはいえないだろうが、とにかく個々の変数をオブジェクトとして一まとめにする方法を覚えた。
以上。
とりあえずHugeInt Ver.0.3 beta テスト版。
無制限に巨大な数を加算減算でき、正負の数を扱える。尤も、今回凝ったのは演算ではなく演算関数を乗せた土台。
まずnew HugeInt(*****)で****の中の数字部分を解釈し新規にこのライブラリ専用の数値オブジェクトを生成。全計算はこの形式のオブジェクトで行う。単一変数では格納できるデータが数値データのみに絞られいたため、符合を格納する際は数値に付け加えなければならなかった。今回はオブジェクト.flagで符合を読み出せる。オブジェクトには符合以外に必要なだけデータを追加できる。可能なら小数も追加できる。
デモを参照すれば分かるが他にも複数の機能を追加。ランダムな数値を生成するとか、new HugeInt時にインプットする値は数字以外のゴミが入っててもちゃんと認識するとか。バージョン情報の格納も_HugeInt_Version変数のみにして無駄なファイル編集を不要にしてある。
宇宙戦争のDVDを観た。インディペンデンスデイでの主砲発射シーン並この映画前半での破壊/殺戮シーンが気に入っている。公開当初にストーリー性がないとかいう批判もあったようだが、破壊の限りの尽くしたこの映画に於いてストーリーなどというものは不要だろう(微生物オチから考えても)。
巨大数演算Ver.0.3ベータ版であるが、構造が完全に違うのでいっそVer.0.4にすることにした。昼間中考え抜いて、配列を組み合わせて乗算の計算効率を上げる方法を考案。また、除算に関しても有効桁数1桁で概算することによって1回の精度範囲内の除算で商を1桁求める方法を考えついた。
と、この日記の内容が趣味路線にぶっ飛ぶのは少々マズいので、Ver.0.4では巨大数演算のフォルダに専用の日記ページを作成。0.4の開発に関する愚痴や独り文句はそちらで行うことにした。
以上。
体調不良も改善し、巨大数演算配列型の開発を再開。今回バラバラの関数の寄せ集めではなく、全関数をHugeIntオブジェクトの関数として扱う。まずはライブラリ全体の中核作りから始める。入出力やデバッグ表示を全て規格として統一してから本体の演算関数を作る予定。
配列型以前にライブラリの基盤作りに苦戦中。脳内で設計した配列型アルゴリズムを具現化する前にライブラリの基盤をどうにかしないといけない。"またかよ"な感じではあるが、現存の文字列型アルゴリズムを新しいライブラリに移植してみる。これがちゃんと動けば構造上配列型でも正常に動作するという作戦。また、今回の改造で負の数を復活させる。今回最も重視しているのは今まで変数レベルで行ってきたデータの格納を専用のHugeIntオブジェクトで行うことであり、このオブジェクトの目的が何を隠そう符合処理なので、負の数の扱いは是非とも試しておきたい。
var test = new HugeInt("test123456789"); test = [object object object]; test.Val = "123456789" test.flag = "+" test.isHugeInt = true
以上。
宇宙戦争のDVDレンタル開始。まともな話はこれくらいしかない。
掲示板の存在理由について考え中。まずあの掲示板は"閲覧者同士の交流用"には作られておらず、必要とされる全機能を送信フォームだけで担える。また掲示板がなければ管理者が常駐して望まない書き込みを監視する必要もない。機能面と管理者サイドの利便性では送信フォームだけで事足りる。
次に掲示板でなくなることによる損失について。1つ目は書き込んだ瞬間WWWに公開される掲示板と、書き込んでから管理者が書き込みをHTMLとしてWWWに公開するのでは、時間差があること。2つ目は最終的には掲示板同様HTML形式で公開されるものの、書き込みと閲覧が分離した送信フォームでは閲覧者⇔管理者の通信は掲示板と変わらないのに対し、閲覧者⇔閲覧者の通信は掲示板よりやりにくくなる。あとこれは意識的な問題だが、メールに近い送信フォームより掲示板のほうが書き込みやすいということも有りうる。
以上の考察より、閲覧者同士のトラックバック及び質問/回答を優先するのであれば掲示板を存続、掲示板を監視する管理義務を減らしたいなら掲示板を撤去することにする。っつってもここまで書いている以上決めかねているわけだが…。まぁ、私も人間なので管理がめんどくなったら撤去します。そんだけ(考察の意味ない)。
以上。
ネタがないことをネタにしても無駄だと分かりつつネタがないと言ってみる。病院行ったら臨時休業(?)かどうかは分からないが休み。急遽別の病院で診察してもらった。例によって帰りに本屋へ立ち寄り数学の本を一冊と、新しい漫画のタイトルを1つ選択し購入。
暇すぎたので2の22万2222乗を計算。今までの記録が2の10万乗なので記録更新。これで約20分かかったので、2の50万乗には1,2時間かかると考えられる。20万台に乗せたので一応目標は2の100万乗をJavaScriptで計算する程度に設定したい。全ては現在計画段階に過ぎない配列型の完成度によるわけだが…。
他には特になし。最近気力がなくだるいのは風邪のせいなのだろうか。
4時起床。熱力学的に最もエントロピーの低いこの時間が好きだ(その場その場で思いつくてきとーな理由をつけてみる)。頭のエントロピーも低いので昨日では考えられないぐらい冴えている(そもそも昨日は3度寝してコンディションは最悪だった)。ちゅーわけではりきって更新。
昨日更新には書かなかった記事も更新する気が出たので書いておいた。
GIF画像を幾つかPNGに取り替えた。7月23日の日記にサイトの種類別構成比を書いたが、徐々にPNGへの移行を進めた結果、GIFが371枚→216枚と少なくなり、PNGが22枚→104枚にまで増加。今後もこの処理を続け、旧式GIFはさっさと廃止し全てにおいてGIFより優秀であるPNGに乗り換えていく。
サイトの代替スタイルにPinkを追加。代替スタイルセレクトボックスから選べます。つか、ここまでやるともはやサイトの"イメージ"が崩壊する。2,3時間で作った手抜きスタイルなのでバグがないとはいえない。今後改良予定。
トップページの日記にリンクエラーがありました。既に修正。履歴にはないが、隠しページ実践編SIDE.2の難易度が簡単過ぎなので難易度アップ。ただしヒント付きで。
日が昇ってから雨が降ってきた。私は晴れが"良い天気"で雨が"悪い天気"という一元的考え方が嫌い。外出には少々不便ではあるが、私は晴れより風が涼しい雨のほうが好き。11月にクールビスやってるバカですからね。
#とかいいつつのこのこ窓開けてたら雷鳴るわ横殴りの雨降るわで即window.close();
このスタイル気に入った。というか基本的に新しく作ったほうを気に入るわけだが。
風邪を引いた原因:11月なのに暑い暑いと夜窓全開にして半袖シャツで生活している(まぁ年中半袖のバカなんですが)。
トップページの更新には書いていないが2箇所更新してある。更新ネタは思いつくも作成が面倒なこの頃。
もう寝るか…('A`)
わずか半日で風邪引いた。悪化する前に病院へ行き、帰りに本屋へ。英語の参考書と新書を一冊買った。あ、間違っても"もえたん"ではない。一度見てみたがあれは萌えなかった。
昨日考え直すと言っていたCSSとJavaScriptを整理した。両方について単に動的効果だけを出すようなコードを削除し、つぎはぎ部分を修正。
調べてみると、まだclass="t_r"
なんてテキストを右に寄せる物理クラス属性が残ってた。テキストを右寄せにする部分は生のHTMLには存在しないが、JavaScriptが吐き出すHTMLに幾つか記述されている。これともう一つ、pet0.5〜pet1までの横幅を規定するクラス値がある。これは元々Tableレイアウトをやってたときの設定で、現在はどこにも記述されていないが残っていた。一応これらは削除(使われてなかったし)。
昨日のネタに関連して私のリソース内に現在の私の考えと合わないものが出てきたため、後に編集予定。
ページが少々重いので原因模索中。ここより遥かに巨大な外部ファイルをロードしているページで軽いところがあるから、記述方法に問題があると考えてスクリプトとCSSの両方を考え直す。
送信フォームの返信
2005/11/1 (Tue) 20:18:18
[題名] : 普通のページ[コメント] : 普通のページが、復活しています(掲示板だけですが)
http://www.usamimi.info/~tyukyu/
報告ありがとうございます。相互切断の連絡はないのでリンク集に戻しておきました。ついでにゴミ箱に入ってたURIをまとめてチェックしたところ、Ryu's WebSiteも復活していました。
模試がありました。全く、長期記憶の推移を図る模試の前にそれをぶち壊す"テスト勉強"だなんて、理解できない。
代替スタイルの適用方法を変更。URIコマンドを廃止した代わりにページをリロードせずに代替スタイルを読み込めます。Operaは手動で。
昨日10分以上連続で口笛を吹いて口内炎になりかけたぐらいのバカ話しかない。
スタイルシート追加。真っ白な画面に飽きてきたので黒いデザインのスタイルシートを作成。試用リンクをクリックすればOpera以外(document.styleSheetsに対応しているブラウザ)では一時的に代替スタイルシートが働く。そのスタイルをずっと使いつづけたい場合、各ページの右上にある代替スタイルのセレクトボックス(Cookie許可時)から適用できる。