覚え書き:このドメインのセキュア化の件

久しぶりにwiki更新関係ないエントリ。
このブログを置いてるドメインをhttps化するって宿題を思い出して、先ほどからサーバ仕様などいろいろ調べた結果、今回も断念。
まず、独自SSL(Let’s Encryptを想定)の利用は不可。共用サーバの下から二番目に安いプランだから仕方ないか。
でも「共用SSL」つーのがあって、無料でいけるらしいことがわかってちょっと上がる。サクラさんの証明書なら何の文句もない。
しかし、以下の点がネックとなり断念。

  1. 当社では、独自ドメイン名での共有SSL運用を推奨していません。
    共有SSLでデータを暗号化 – レンタルサーバーはさくらインターネット

  2. モバイル環境には対応していません。
    同上

  3. SSLのみのアクセス許可(HTTPアクセスの制限)や、mod_rewriteによるURLの書き換えはできません。
    SSL利用時の注意点 – さくらのサポート情報

1と2は詳細不明(調べてない)。2は意味も良くわからないけど、そう書いてあるならそうなんだろうと。
一番痛いのは3。微々たるものだけどこのドメインにも毎日来てくれてる人はいるので、それをhttpとhttpsアクセスに分散させるのは困る。
別のドメインでのhttps化で、google様も推奨している301リダイレクトで上手くhttpsアクセスに流し込めたので、それができないのではhttps化の意味がない。
google検索とかの結果表示もみっともないことになる可能性が高い。Search consoleでhttpsに一本化しても、実際のアクセスには当分httpが使われるだろうから。

以上、近い将来再度取り掛かるだろうhttps化のための覚え書き。
次のサーバ更新までにVPSとかにサーバ引っ越ししちゃうのが一番いいのかもと考え中。
あ、昨日付でwiki更新来てる!

Sphereについて

Sphere

前のエントリで予定を書いていたやつです。昨日公開しました。アプリそのものと同じく需要あるか分からないけど、以下製作過程まとめです。

1)製作期間

2015年12月9日開始なので約一ヶ月。最初に公開したアプリとConfig画面(=処理)はほぼ共通なのでその部分は端折れた。
球体の3D座標はこのページを熟読して、サンプルからコピペしたコードで生成w
数学的素養がほとんど(まったく)無いからすごく助かった。
今初めて確認したけど(オイ)高専の公式ページだったのか。小坂先生本当にありがとうございました。サンプルコードすごく読みやすかったです。ここで言ってても意味ないな。

2)嵌ったところ

 webでThree.js使ってこのブログのヘッダーみたいなの作ったときは、最終的にシェーダー言語使うことを諦めてすべてThree.jsにお任せで処理を記述してるから自覚してるとおりページが糞重い。
ヘッダーの球体なんか色違いの面の数だけ球体を生成して各面の部分だけ表示させてるという体たらく。
そんで今回AndroidのopenGLで球体つくるにあたって、シェーダー言語使って無駄な描画をしないで多面球体を作りたかった。
結果を言えば道半ばで、面はそれぞれ一つのオブジェクトとして生成してる。どうしても座標を共有した状態で各面の色を変えるのは出来なかった。
つまり、小坂先生のコードで生成した(一つの)球体座標から、各面=四角形(台形)=三角形×2の座標をセットで切り出してるということ。ようするに面の数だけドローコール打ってるw やっぱり処理が糞重いw

 そしてもっとも嵌ったのは今回もマッハバンド。おかげで4日間試行錯誤して(=ググりまくって)、シャドウアクネだとかピーターパニングだとかopenGLのシャドーイングの定石みたいなのは色々勉強できたけど、結局あきらめた。
確かに視体積の適切な設定=near/far間を描画に必要最低限な長さに設定すると球体上部の細かなノイズは無くなった。
けど球体下部のノイズは残ったまま。AmbientLightの生成する影とpointLightの生成する影がコンフリクト起こしてるような感触はつかめたんだけど解決には至らず。
趣味のプログラミングで諦めるってどうなのとは自分でも思うけど、あきらめた最大の理由はこのアプリで採用してるOpenGL20の制約が結構あることが分かったから。
今回シャドウマッピングでRGBA値(=ColorBuffer)にZ値入れてるとかは、GL30だとデプスバッファが使えるから無用な処理らしい。
デプスバッファ使えたほうが当然精度は高いと思いGL30で書き換えるかと思ったけどGL30対応はAndroid4.3以上、フル規格は5.0からだということで今回は見送ったのです。対応機種減りすぎるからね。
結局カリングして球体裏面だけ描画して、そのあと表面だけ描画、さらにその間で地面の平面も描画してるからトータルで3回×面数ドローコールwwwそりゃ1秒に2回GC走るってw

 次点で嵌ったのは球体の脈動。リズムに乗ってるようにしたかったけど「リアルタイムBPM解析」は処理が重過ぎる。色々実装は試した。でも処理量がでかすぎて書いてる途中で躊躇するレベルw で、結局一定周波数以下の低音拾ってるだけww これは別の「リアルタイムBPM解析アプリ」でも作って試してから実装しようと結論。

「嵌ったところ」なんて書いてて全然解決していないw openGL30対応とかリアルタイムBPM解析とか色々課題はあるけど、今後このアプリいじるとしたらGCの軽減が最優先だなぁ。

3)その他

 今回ピンチイン/アウト処理を実現するのにGestureDetector初めて触ったんだけど、何これ便利! 実装も簡単だし、何よりGC走りまくってるのに遅延も無くスムーズに動く。前のアプリでonTouch直接いじってたのがうその様だ。
 最後の最後、公開用のスクショにも苦労。前のアプリのようにエミュでスクショ撮ろうとしたんだけど、無茶苦茶ノイズが出る。マッハバンドというレベルではなくて球体崩壊w
仕方がないので実機をつないで撮った。実機でもADMでスクショ撮れるのは知らなかった。実機でスクショとるのと違いpngで撮れるので画質もまずまず。
でもその結果タブレットのスクショは撮れず、「タブレット非対応」になってしまった。安いタブ買うかなー。
 エミュが使えないので困るのはAndroid 6.0(Marshmallow)でpermisson周りの挙動確認ができないということも一つ。前のエントリに書いたとおり。

4)まとめ

 まさに「自分向けのメモ」w 取り留め無く書き散らかしたけど、何ヵ月後かの自分が哀れみの目で見返せるレベルに達していると嬉しい。
あ、それと数少ないこのブログの読者の方でインストールしたよって奇特な方が居たら、どこでも良いのでダメ出しお待ちしてます。

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???
変更したらちゃんと反映。くそ。