≒ wikipediaデータ利用でハマった件

twitterデータを使って色々するサイトというかサーバは組めて、その経緯を残しておこうと思ったんだけど、この2~3日サーバ自体が不安定ですぐ落ちる。それを直してからまとめるとします。

そんでつぎにwikipediaデータで色々するサイト作ろうとしてるんだけど、まずはローカルのというかサーバでもなく手元のwindowsノートのMySQLに全データ突っ込もうとして四苦八苦。

mwdumper.jarでやるのが良さそうなのでまずは挑戦。やっぱりjavaが好き。

で、2時間ぐらいで終了。DBの中身は空w なんか初っぱなにERROR吐いてるのはわかってたんだけど、無視してた。というか処理止まらないし。このページを参考にcharcter-set指定。

java -jar mwdumper.jar –format=sql:1.5 jawiki-latest-pages-articles.xml.bz2 | mysql -u フガフガ -pホゲホゲ –default-character-set=utf8 wikidb

中身入った。けど色々見てみると何かおかしい。SELECT COUNT(*) FROM text でレコード数見てみると413000しかない。元データは1853286pagesあったのに。

ケツに >aaa.txt 2>&1  付けて処理を記録。ものすごい勢いで流れてっちゃうからね。

途中でエラー吐いてMySQLが終わってるらしい。「ERROR 1366 (HY000) at line 4241」

このページを参考にSTRICTモードを外す。my.iniで指定したんだけど上手くいかず。

mysql> SET @@GLOBAL.sql_mode=”; ってmysql内で設定する。ここで「なぜ指定が効かないのか」を追究していれば次のはまりは無かったのに…

で 結果)1853286pages count(*):1853286

無駄にDBがでかいので必要な部分だけ抜き出して別テーブルへ。
で、ERROR 1206 (HY000): The total number of locks exceeds the lock table size
ググった結果の対処法は「innodb_buffer_pool_sizeを増やす」一生懸命 C:\Program Files\MySQL\MySQL Server 5.6\my.iniを
変更しても反映されず。諦めてJAVAでなんか書くかと思ったが、最後にもう一度my.iniがどっかに隠れてないか検索。
見たことないのが出てきた→C:\ProgramData\MySQL\MySQL Server 5.6\my.ini???
変更したらちゃんと反映。くそ。

≒ canvasの練習

少し時間が取れるようになって趣味のコーディング再開した。 一年半ほどの浦島状態で、Javaアプレットが使えなくなったのが残念で仕方ない。

言うててもしょうがないのでcanvas練習開始。 既製のアプレットの書き換えもしたいんだけど、教科書(HTML5 Canvas)の例題をやってるうちに脱線。 以下備忘。

相変わらずブラウザごとの挙動に苦労しながら最初のデモが出来たんだけど、レンジを最大にするとほとんどの場合固まる。

「クソ-。シングルスレッドはこれだから!アプレット復活の方法無いかなー」って思ってたんだけど、使えないUI設置してるのが問題だと思って、クリックでボールを一つずつ増やすように変更。 これだと300個くらいまで無問題。

一気に何十回もfor回したら固まるのは当たり前か。こういうのをプログラミングの工夫っていうのか(棚上げ:自分のコーディング能力)。 …でもやっぱりアプレットではこんな苦労しなかったと思ってしまうw

diffColors

次は自宅サーバ再開してtomcat走らせて遊ぼう。twitterデータのビジュアライズもやりかけで止まったままだし。やっぱりJavaを触りたい。

≒ 未解決)aタグのonclick動作不良の件

動物園ログ置き場(改)

検索結果が「no record」だとdivMainのaタグの動作が不良(onclickが死んで、hrefしか活きてない状態=大きい画像の差し替え動作が死ぬ)。

なのでjavascript:void(0)とか、#bodyTopとか色々やったんだけど、onclick属性はページ再読み込みしないと生返らず。つまり未解決。
とりあえず、「no record」アラート出したあとinit()呼び出すことで応急処置。

aタグをspanタグに換えるって対処法もあるみたいだけど、何かW3C先生を騙すだけの対処法だし(href属性指定しないで良くなるだけでしょ?)、文法表現上?は後退するだけなような気がするからパスw

対症療法じゃなくて、根本的な解決方法を見つけたいな。