投稿

8月, 2014の投稿を表示しています

プロバイダーを変えた。

イメージ
スピードテスト 20世紀の終わりくらい、初めて一人暮らしをする時に、家に「フレッツISDN」を引いた。 当時はまだ定額インターネット回線などはなく、NTTのテレホーダイを使い、23時から翌8時までの固定料金制度でネット接続をしていた時代で、ちょっと高いがISDN機器を使ってフレッツISDNにすると24時間テレホーダイになり、専用線みたいな使い方をする事が出来た。 なぜ24時間接続が必要かというと、自宅サーバーを運用するためだった。 自宅サーバーにするためには固定IPアドレスが必要だが、DDNSとかは使いたくなかったので、当時では珍しく固定IPアドレスを付与してくれる「インターリンク」というプロバイダと契約した。 それから25年ほど、何回か引っ越しなどもしたがインターリンクを使い続けてきたが、いろんな動画配信サービスを見るようになり、一ヶ月のデータ転送量で警告が来るようになった。 これはインターリンクの上流が行っているらしく、インターリンクではどうしようもないということだった (インターリンクは安さがウリなので、そういう縛りがあるんだと理解することにした)。 ある程度の転送量を越えると、次月は速度制限がかかるということなので、そうなると仕事も出来なくなるのでプロバイダを変えることにした。 あちこちで話を聞いてみると、ベストエフォートで1Gbpsのサービスと、10Gbpsのサービスをしている「enひかり」というのが良いらしいという噂を聞いた。 いろいろ調べてみたところ、よさそうなので1Gbpsのほうで契約してみた。 IPv4と、IPv6が選べるが、自前で用意しているDNSがIPv6にまだ移行出来ていないため、IPv4の契約にした。 うちのマンションは、ラストワンマイルがVDSLなので、そのままだとベストエフォートで100Mbpsまでしか出ないので、1Gbpsの契約をしても宝の持ち腐れになってしまうということで、FTTHに交換して貰うことにした(工事費用21,000円くらい)。 今日、工事が終わり新しいプロバイダで接続し、速度計測をした結果がこれ。 これで、ちょっとは快適なインターネット生活が出来るかな?

JavaScriptでゲームパッド

イメージ
もともとは「 GamePad API 」として W3C が制定しているものだが、なぜか ブラウザー 毎に実装がマチマチで、これまた ブラウザー 毎に処理を分けないといけない。 そして、2014年現在は、Chrome37と、Firefox31でしか ゲームパッド は使用出来ない( Safari と IE では未実装)。 なので、実行しているブラウザを自動判別し、 Chrome と Firefox の両方でほぼ同じデータの取れるものだけを配列で返すライブラリを作ってみた。   両方のブラウザでほぼ同じデータが取れるものは下記になる。   ボタン1〜4に関しては各 ゲームパッド によって違いはあるが、ボタンが4つあればボタン1〜4になっていると思われる。 ボタン5と6は、人差し指で押すボタンが返ってくる。 垂直軸と水平軸は−1、0、1の3つの値を返す。 さらに、 Xbox360 コントローラーでは2つのアナログスティックの値を−1〜1の範囲で返すようにしている。 しかし、アナログスティック1の値は垂直軸、水平軸の値とリンクしているので、アナログスティック1の値が振り切る(1、もしくは-1になる)と、 十字キー を押したのと同じ状態になる。 Xbox360 ではボタンは16個あるのだが、 ファミコン もどきコントローラーと Xbox360 コントローラーで同じような値を返すのがボタン1〜6までなので、このライブラリではボタン6までしか値を返さない。 Xbox360 コントローラーでは 十字キー の値はボタンとして返ってくるのだが、ライブラリのほうで水平軸、垂直軸の値として返るように違いを吸収している。   ライブラリは github にあるので、普通にクローンすると使えるようになる。   digitarhythm/gamepadprocedure · GitHub   ファイル自体は CoffeeScript なので使用する時は コンパイル してご使用ください。   コンパイル したファイル「 gamepadprocedure.js 」を読み込むと、「 gamepadProcedure() 」という関数が使用出来るようになるので、ゲームなどのループ処理内でこれを呼ぶことで ゲームパッド の状態が配列として返ってくる。 Safari や IE の場合は空の配列が返される。  

enforce(enchant game framework)でシューティングゲーム

以前、Scratchで「 Return to the earth 」というゲームを作ったことがある。 Scratch2.0の新機能を確認するために作ったゲームなんだが、最初に作ろうと思った面を最後まで作りきれなかった。 そこで、enchant.jsを使ったゲーム フレームワーク 「enforce」でこれをちゃんと作ってみようと思う。 そして、 Chrome アプリストアに有料で出してウハウハしよう(なんつって)。 とりあえず ひな形 を作ってみた。 カーソルキーの左右でシリンダーが移動して、「z」キーで弾を発射。以上(笑)   Chrome 、 Safari 、ハイエンドの Android 端末の Chrome 、iOS8.0以上の Safari で動くと思います。 スマホ などのタッチデバイスでは自機(シリンダー)を動かして弾を撃つことは出来ませんが :-P