キモブロ

Please spy check please, Fucking retard

Sushi鯖壊滅の危機に瀕していたのを直した

なんだか、Sushi鯖の #1~#5, #A~#C の 8 台のサーバーが死亡していた。

原因を調べたが、steamcmd.sh 実行時に、SIGBUS シグナルが発生していたというもの。調べると、このシグナルは存在しないメモリアドレス参照した時とかに発生するものっぽい。

Segmentation Faultとの違いは、wikipediaのこちらのページに記載してあることが参考になった。以下引用する。

以下のような不正なメモリ操作により発生。ハンドラでキャッチできるが、ハンドラから戻った後の動作はシステムに依存する(通常プロセスの終了)。

アドレス境界不正:CPUはデータのサイズによって配置可能なアドレスに制限があることが多い。例えば32bit整数を4バイト境界(4で割り切れるアドレス)以外に置こうとしたなど。
存在しない物理アドレスページフォールトに似ているが物理アドレスに関して発生。
オブジェクト固有エラー:例えば、mmapマッピングされたファイルが切り捨てられたために仮想アドレスに対応する実体が存在しなくなった場合など。

さて、しかしなぜこのシグナルが発生するのか。strace したり、gdb でおっかけてみたりしたけど結局原因はよくわからず。

なんかマシン自体の問題じゃねと思ったので、当該ノードを reboot したら治った。よく考えると今回死んでたのはすべてさくら VPS のノードだった。(それ以外のノードは、別の VPS サービスを利用している。)


そういえば Sushi 鯖の累計利用者数が15万ユーザー(158,840) になっていた。すごい。

iOSのGameCenterで初めて総合1位を取った感想

まぁ先にオチを書いてしまうと、世界でやってる全プレイヤーの人数が30人程度とかなり少ないゲームだったというアレ。まぁでも1位は1位だし、記念に撮影しておいた。やってみるとわかるけどスコア的にもそんなにヒドイものでもない。341点。

これは、Leppy Smash (https://itunes.apple.com/us/app/leppy-smash/id973578407?mt=8) というゲーム。ある日突然海外のフレンドから、"チャレンジ" が飛んできて、チャレンジされたからやってみるかーと思っていれてみたゲーム。

ゲームとしては、RADIATION というスマホゲームがすごく近い。自機を左右にタップで操作して、棒をよけるみたいな感じ。画面の動かない SuperHexagon でもある。このゲームの難しさはただひとつ、自機を操作するときに恐ろしいまでの慣性が働くということ。片方の方向に思い切り移動した後だと、その慣性の力によって、逆の方向にタップしても一切動かない、比喩ではなくマジで一切動かない。なので、常にどちらかの方向に押しすぎないことがポイントかもしれない。あとクローバーを積極的に取ったほうが良いです。5点入ります。

いわゆる慣れると無限に続けられるタイプのゲームです。俺はこういうタイプのゲームは余り好きではない。なぜかといえば結局は個々人のもつ、集中力を保持することが出来る秒数、にスコアが収束してしまうからだ。そして人間はだいたい5分程度しか集中力持たないので、だいたいその辺りのスコアになる(仮説)

こういうのは、FlappyBird とかとも似ている気がする。FlappyBird は慣れると無限に続けられる感じのゲームでしたよね。このゲームもそういう感じです。ゲーム自体の難易度は最初から最後まで一定であるので、己の集中力が切れるまでは無限に続けられるのだ。


さて、このゲームにおいてもっとも困難だったのはなにか、それは、自分のランキングを確認するボタンをタップすると、そのときの最後のスコアがGameCenterに送信されてしまうということです。過去最高とかは関係ないのだ。つまり、ゲームスタートして、やっぱちょっとトイレでも行くかってなって、最初の棒にわざぶつかってそのまま何気なくスコアボタン押してしまったら最後、0点でGameCenterのワールドレコードが上書きされて消滅するってことです。悲しい。

実はこの謎仕様のせいで、一度1位のデータを逃しています。写真撮影までしたんだけど翌日あらためてGameCenterをみたら、自分のスコアが0点ってなっててゲーム運営会社の陰謀だと一瞬疑いましたが、この神仕様に気づきました。

私はこのゲームを二度とやることはないですが、一時のコーヒーブレイクになりました。さて、友人にはチャレンジを送り返しておきました。気軽にワールドレコードを取って自分に泊をつけることの出来るゲームです。このゲームのチャレンジは二度と送ってこないでください。ありがとうございました。


てか、下の画像見るとGameCenterのスコアとぜんぜん違うぞ。347点。何もかもむちゃくちゃである

跳ねる忍者 というのをやった

跳ねる忍者というスマホゲームをやった。

Ketchapp というメーカーのゲーム。このゲームは失礼ながらパクリメーカーだと思っていて、(ちがったらすみません) なにかオリジナルのゲームがありそうだ。もしオリジナルのゲームがあったらすみません。

このゲームは、タップしてる間バネが縮んで離すと飛ぶという単純操作で出来るゲーム。特に面白くはないし、これをプレイすることで学べることはない。そして流行りの広告モデルのために実装されているゲームだ。

それは、高難易度ゲームでソーシャルメディアに自慢シェアさせて、リトライしようとするユーザーを誤タップさせて広告をタップさせるというわりと悪質な、そして巧妙なタイプのゲーム。うざいユーザーは広告を除去するために金を払うことで広告が出なくなる、みたいな、現代における病、インフルエンザウイルス、典型的課金形態である。

さて、前置きが長くなったが、このゲームのコツは1段飛ばしすること。実は1段飛ばすとスコアが倍になる。どこに書いてあるんだそんなの。通常1段移動できたら1点なのだが、1段飛ばすと4点もらえる。(実際には2段飛んでるということ) ちなみに2段とばせたら6点もらえるので、さらにおいしい。

結局繰り返しプレイしてくと、この距離ならこのぐらいバネをチャージすればいいなというのがわかってくる。人間はこんなことにも最適化されるのだな、適応出来るのだなというのがわかる。


さて、最近スマホゲームばっかりやってるんだけど日記を余り書いてないのでまた書き始めようかなと思ってる。なんだかネット上での活動を全くしてない、のと、いままでやってたゲームからかなり離れてきてしまっているので、実態のない存在、死人、亡霊のようになってきてしまっている。

日記については書いてないということもなくて、Evernoteにほとんど毎日書いてるんだけどそれはプライベートであって俺しか読むことが出来ない空間なんです。この作業はブラックホールの中心に向かってひたすら宇宙船を飛ばしてるみたいな感じ。

zshでタブ補完するときに謎の死(Segmentation Fault)をする原因を探ってた

なんかたまにzshでタブ補完するときにsegmentation faultして困っていたのだけど、今日原因がわかったのでメモ。いや原因はわかってないけど解決した。


まず俺は普段から ulimit -c unlimited してるので process が segmentation fault したときは同ディレクトリにcore dumpファイルが生成されるのでそのファイルにgdbしてみた。

しかしデバッグ情報のないzshバイナリだったので原因全くわからず。よしデバッグ情報をつけようと思った。デバッグ情報付きでzshコンパイルするときは

$ ./configure --enable-zsh-debug

したら良いらしい。(※ちなみにこの--enable-zsh-debugがしてるのはCFLAGSに -g つけてるだけっぽい)


しかしこのバイナリでもcore dumpさせてgdbしたときにどのソースコード行でエラーが発生してるかがわからない。どうなっとるねん!!!

nmコマンドでこのバイナリのシンボルを見てみるとちゃんと存在してる。デバッグシンボルあるよなぁ、もしかして間違えて最適化オプション(-O 2とか)つけちゃってたっけーと思って Makefile 見てみるもそんな記述はない。

そこでふと echo $SHELL してみたら /bin/zsh ! 新しいバイナリは /usr/local/bin/zsh
そもそもデバッグ情報を付けた zsh 起動中にタブ補完をしてなかったというオチ。最新のバイナリだと治ってた。ヨカッたヨカッた。

親知らずを抜いた

先週の木曜日に親知らずを抜いた。せっかくなので経過をメモ。

自分は右側の親知らずの上下を抜いた。下の親知らずは横向きに生えていて難易度が高いらしく、そして神経が近いから障害が残る可能性があるとのことで、大学病院でやってもらったほうが良い、と言われていたのだけど面倒だったのでそのまま歯医者でやった。

当日

抜いた直後は外傷性の痛みはあったがそれほど痛くはなかった。麻酔が効いているので当然か。抜歯後、脱脂綿?みたいなものを噛まされるのだけどこれをきっちりと噛んで出血を止めておいたほうが良いらしい。30分程度噛み続けるのがベストらしいのだが、自分はうっかり仕事に集中してしまい、2時間ぐらいかんでいた気がする。その時点で出血がほぼ完全に止まった。

当日は食事をできるだけしないようにした。ヨーグルトとか、豆腐とかそういうのだけ食べた記憶がある。術後の創は想像するだけでもゾッとするし、舌で触ることすら怖かった。のでマジで一切何が起きてたかわからない。

2日目-4日目

2日目はそれなりに痛かった。しかし3日目、4日目となるに連れて痛みがどんどん減っていく。このまま治るのか、あっけないなと思っていつもどおりの食事をしていたら、うっかり創を覆っていた白いかさぶたが取れてしまった。ここから痛みが強くなる。

痛みのピークは4日目だった。かさぶたが取れてからは結構強い痛みがある。他のことをする気が起きなくなったり集中力が減る感じがした。しかしまぁでも想像してたよりずっと痛くなかった。

1週間

1週間でほぼ完全に痛みがなくなった。不快感もほぼなし。傷口もほとんどふさがったみたい。順調に行くと1週間程度で痛みは収まるようだ。思っていたよりもあっけなくてびっくりした。運が良かったのかしら。いずれ反対側のも抜こうと思ってるのでそっちもうまくいくといいな。

抜歯後の痛みから開放されたのでいろいろ溜まっていたタスクをこなそうと思います。いろいろ滞っててスマヌー

Sushi鯖運用メンバー募集

とにかく何も決まってないですが、自分一人だともうきつそうだなと思ったので、このままサーバーを腐らせてしまうよりも運用チームをつくろうと思いました。そこでメンバーを募集します。ちなみに何するかとか一切決まってない!アグレッシブ!時期とかも未定です

何するか決まってないのでまずそこから話し合いをする感じです!ちなみに話し合いの場をどこにするかというのすら決まってないのでとりあえずメールかこの記事にコメントください!!

正誤表

なんど計算しても解答と合わないので、出版社にメールで問い合わせてみたら次の版で直してくれるそうだった