Dockerのマウントが重すぎる件


2017年04月10日

まず前置きとして私は使い慣れている Windows 環境が好きで、Mac を試してみたものの馴染めずに戻ってきました。しかし Web 開発、それも主に Ruby と Rails を使って開発しているため Linux 環境は欠かせません。そのため常に仮想環境が必要となりますが、エディタはやはり Windows 上で、それも IntelliJ IDEA を使いたいという思いがあります。

そんな私の最近ローカル仮想環境は Docker で構築しています。ただ、Docker を上手に使っているかと聞かれるとそんなことはなくて、普通の VM のように SSH だの DB だのあれこれ一つのコンテナに詰め込んでしまっているので、むしろ Docker 使いの方からは怒られるような使い方をしてしまっている気がします(汗

ただし最近この環境の重さ・遅さに辟易としてきました。何が重いかというと、Docker でホストのフォルダをマウントしているのですが、その読み込みがとてつもなく遅いときがあるのです。ファイル数も影響しているのか、以前は気にならなかったのですが、最近悪化している気がしていました。

これはどうも Docker というよりもそれを動かしている VirtualBox の shared folder 機能に問題があるみたいです。確かに以前 VirtualBox 単体で使用していた際も重いと感じたことはありました。またこれはホスト OS が Windows か Mac かという点は関係なく重いそうです。それと Docker のフォーラムで結構長いやりとりがされていますが、同じ VM というジャンルでも VMware でもそういう現象が報告されています(人によって程度に違いはあるみたいですが)。

そんな重さに嫌気が差したため、Docker のマウントを捨てて以前も使っていた SSHFS に変更してみたところ、すこぶる快適になりましたヽ(´ー`)ノ いやぁ、あんなに読み込みが遅かったのが嘘みたいにサクサク動いてくれます。

ただこの SSHFS が万能かというと、そうとは言い切れません。ソースコードは Git で管理しているのですが、ホスト側から管理できなくなりました。正確に書くと、以前はホスト OS である Windows の環境下に SourceTree を使って管理していたのですが、今回 Docker 下にファイルを置くことになったため、どうも不具合が発生して取り扱えません。

IntelliJ IDEA にも Git 機能はあるのですが、これも正常に動作しません。むしろ index.lock ファイルを生成したままでロックされてしまうため(SourceTree でも同じ現象が発生しました)、使わないように設定を変更した方が無難です。というわけでソースコードの管理は Docker 上でコンソールで Git コマンドを叩いて対応しています。私は以前もコンソールから叩いていたので思い出せば楽勝でした、助かった(´ー`;

という感じに完璧ではないですが、私はこの方法で最近は開発しています。ありがたい事に Windows で Docker を使うためのwin-sshfsdokan(dokany)の開発が再開(?)されているため、Win10(64bit)環境でもきちんと動いてくれています。Docker を使う人だけじゃなく、VirtualBox や VMware 等を使っていて、共有フォルダの挙動の重さに困っている人も試してみると良いかもしれません。

GRAPH APIのユーザIDからFacebookユーザへのリンク


2017年03月21日

最近プログラミングに関する投稿をしてなかったので、軽めの内容ですが自分のための備忘録として。

Rails でアプリを作ってて、ログインを Omniauth を使って Facebook と連携させるようにしていたのですが、この時受け取るユーザ ID から Facebook 上のユーザのページって見れないのかなって調べてみました。結論としては可能ですが、GRAPH API v2 以降仕様が変わったみたいですね。

基本的にhttps://www.facebook.com/4(これはマーク・ザッカーバーグさん)のように、global な ID が各自に振られているのですが、このユーザ ID は API からは取得できません。以前はこの値を API で使用していたようですが、v2 からは各アプリ毎に振られている模様です。

それじゃどうすれば良いのかと言うと、https://www.facebook.com/app_scoped_user_id/ユーザID/ の「ユーザ ID」の部分を置換することでユーザのページへのリンクとなります。

数ヶ月前にも一度調べたんですけど使っていなかったら忘れていて、また調べるのに時間かかったため書きました…最近こういうこと多いな…。しかしこれ、キーワードとしては何が良いのでしょうか? 国内の記事もあまり引っかからなくて(無いわけではない)。

デンカレ4thライブに行ってきました


2017年03月20日

1st ライブは開催を知らなかったため参加できませんでしたが(黒箱と白箱は後で購入)、2nd から参戦し始めたためこれが 3 回目ですね。昨日の電気式華憐音楽集団のライブに行ってきました。今回も大満足させてもらいました、余韻に浸りつつ感想とか書いてみます。

今回は Carnaval The Abyss の曲が中心なのかな、最初は Phantasmagory かなと思っていたら、いきなり B.M.S.からの expiate sin で、参戦出来なかった 1st の再現に感動。一体何度 Gig Grimoire を聞いたことか、そしてそこにいたかったと思ったことか。

続いて Nekulaholic まで来るかと思ったらさすがにそこまではやりませんでしたね(笑) でもその後に演奏があったので嬉しかった。ところで電波部分ってあんなに長いバージョンあったんですか、知りませんでした。あのままもしかして続くのかと思っていたら途中でブチ切れの流れは笑いました。

今回 Carnaval The Abyss で歌われなかったのって Silver Orbit と The woman でしょうかね? The woman は結構叫ぶところあってライブで映えるかなと思ってたけど残念。それと 2nd の時から思っているのですが、どうか Unbind もお願いします m(_ _)m 今のところ全ライブで皆勤賞は Vampire, Distorted Pain, Raison d’etre, Sudden Death R99, I pray ですかね?

今回から参加の弐式さん、準備期間1ヶ月の中であれだけ弾けるの凄かったですね。代わりに電気さんがあまり参加していなかったのが気になったり。他のお仕事が忙しかったのだろうか。

それとまだ出てない 3rd のライブアルバム待ってるけど、出るのだろうか。今回も新旧入り乱れていろんな曲があったので、是非 CD 音源で残して欲しいですね。

最近のお仕事


2017年02月26日

たまには仕事の話でもしてみようかなと思います。というか宣伝ですね、今までリリース前だったので全然書けなかったのですが、ようやくリリースしたので。

去年からArtistGuildというサービスを黙々と作っていました。サービス内容としてはアーティストとパトロン(支援者)を結びつけることを目標としたもので、私はこのサービスのほぼ全体を一人で実装してます。まったく 0 からのスタートというわけではなく予めベースとなる DB の設計があったり、一部のフロントエンドのコーディングを外注したりした部分があります。とはいえほぼほぼ全て手がけているので、何かバグがあったりした場合は大体私がやらかしたことになりますね(苦笑)

そんな感じで自社サービスを作っていますが受託開発も受けていますので、お仕事の依頼がありましたら会社のHPのフォームからお問い合わせください。私個人としても受けているので、そちらは Twitter からどうぞ。

mt x JINS SCREENを買ってみました


2017年01月29日

私は視力は悪くないので、以前はまったくメガネをかけていませんでした。しかし 2011 年頃はかなりハードワークをしていて、眼精疲労と思われる、ピントが合わなかったり肩こりが酷いといった各種症状に悩まされていました。そんな時に JINS PC(後に SCREEN に改名)が発売され、予約をしてまで購入。各種症状が緩和されて、本当に助かりました(プラシーボ効果も多少含まれてるかもしれませんが)。

その後クリアレンズタイプの発売時も発売と同時に購入したりと JINS PC を使ってきましたが、mt x JINS なるキャンペーン(?)をやっているのを店頭で見かけて、思わず買ってしまいました。JINS SCREEN のパッケージタイプで弱点とされていたテンプルの部分が、シリコン(?)ではなく他のフレーム箇所と同じくプラスチックになっています。

これは結構ありがたいです。過去に一度、シリコン部分が割れて中から接着剤っぽいものがにじみ出てきてお店で交換してもらったこともあったので、この箇所には不満を持っていました(ちなみに交換は無料で行ってもらえました)。これは限定販売ではなく通常のパッケージタイプにも是非とも反映して欲しいですね。

ただ少し残念なのは、若干通常版よりお値段が高いということです。それでもカスタマイズタイプでフレームを別に購入するよりは基本的には安く済むはずなので、JINS SCREEN を使ってみたいけどそこまでお金をかけたくない方は検討の価値があるのではないでしょうか? 11 月頃にはもう発売していたみたいですし、オンラインでは売り切れの種類も出ているのであまり長くは売ってないかもしれません。
https://www.jins.com/jp/Products/Detail/number/FPC-16A-964/

ちなみに女性用と書かれていますが、模様が入っているのは内側なので普通にかけていれば男性でも問題ないと思います。当方は三十路過ぎの少し顔がでかいおっさんですが、問題なく使ってます()

ドラゴンボール ゼノバース2でトロコン達成しました


2016年12月11日

先月の発売日から遊び続けてたドラゴンボール ゼノバース 2 ですが、ようやくトロフィーをコンプリートしました。期間にして 1 ヶ月とちょっとですね。プレイ時間はきちんと計測していなかったので正確にはわかりませんが、100 時間はいってないはず。ただ、攻略以外でも遊んでたので 7,80 時間ぐらいはかかったかも? 一通り遊び終わったということで、軽くレビューでも書いてみます。

前作は遊んでいなかったのですが、PS3 のレイジングブラスト 2 を持っていたので似たようなものなのかな?と思っていたところ、全然違いましたw レイブラ 2 は基本的にバトルしか無かったのに対して、こちらは箱庭有りストーリー有りとちょっと豪華に感じました。ただし使えるキャラクターは少なめな印象。これでも前作よりは増えているようです。まぁ多すぎても使いこなせないんですけどね、というかストーリー進めてると自分で作ったキャラしか使わないです。

バトルの操作とかはチュートリアルが用意されているので、NPC 相手に闘うにはそれで十分です。ただしオンライン対戦しようと思うと次元が変わります。気力管理が超重要、ブレイクされるとコンボから究極技くらいます。

遊んでてトロコンを一回諦めかけたのは、このオンラインのレベルの違いからでした。オンライントロフィーの「よっしゃーーっ!!!」と「長い長い闘いの歴史のなかでも 2 番目に強かった…」は厳しかった。最初は負け続けたのですが、エンドレスバトルで他人のプレイをじっくり見ていたのと、運良くイベントで天下一武道会がやってて対戦相手に事欠くことが無かったので学習しました。天下一武道会だと勝敗のカウントされないんですけどね。

トロフィーで難関だったのは上記オンライン対戦のトロフィーだけでしたね。あとは基本的に時間がかかる系のものでした。PQ の後半の方も難しかったのは難しかったのですが、全部オフラインソロプレイで攻略できました。EM も最後の方はデスビーム打ってれば倒せます。たまに不運が重なって事故りましたが、数こなせば行けるはず。レベル MAX と能力調整、技を揃えれば大丈夫。

ゼノバース2

最後に取得したトロフィーは全キャラクター開放の「オレは貴様を倒す者だッ!!」でした。ゼノバース 2 のトロフィー取得時のスクショって真っ暗なのが多いですが、最後は狙って神龍に写ってもらいました。

5 点満点で点数を付けるとしたら 4 点ぐらいでしょうか。前作をやっていなくても単純に楽しめました。各週末にイベントも開催してくれているので、遊ぶならプレイ人口も多い今ですね。ドラゴンボール好きで、アクションも苦としていないならば買いだと思います。

マイナス要因はロード時間の長さがちょっと気になったのと、PQ でなかなか狙ったアイテムが落ちてこないのが面倒な点です。Z 評価もらったら選択できるとかだとありがたかった。それとレイブラ 2 では BGM がアニメのものだったのに対して今作はオリジナルなのがちょっと寂しい。悪い音楽ではないんですけど、やっぱり基本はキャラゲーなのでオリジナルに近いほうが嬉しいです。

これでプラチナトロフィーは 29 個目。次はちょっと出遅れましたが FFXV ですかね。あ、それと余談ですがこれで遊んでる途中に PS4 Pro を購入しました。PS4 でも PS4 Pro でもきちんと動作しました。鈍感なので参考になるか微妙ですが、体感的に特に違いはありませんでした(笑)

Railsでのboolean型の命名


2016年11月19日

かれこれ 4 年近く Ruby と Rails を触っているのですが、それでもいまだに初歩的なことで「これ、どうしよう?」と悩んだり、「以前はこうしたけど、今回はどうしよう?」という問題にぶつかる日々です。

先日再びぶつかったのがタイトルのとおり、boolean 型の値を保持するカラムの命名です。この手の問題は命名規約と既存のテーブルの板挟みに合うことがよくありますが、今回は新プロジェクトだったことと、Rails での boolean 型に関しては命名規約が見当たらなかったので余計に悩みました。

候補として挙がるのは 2 案ですね。例として削除フラグ(論理削除は筋悪という議論は置いておきます)を作ろうとした場合

1. deleted
2. is_deleted

この 2 つの間で悩みます。PHP をやってた頃は delete_flag みたいな名前をつけているのを見かけましたが、Ruby 界隈ではあまり見ない気がします。それと海外の文献を見ててもあまり見かけない気がしますが、私の観測範囲はそんなに広くないので偏見かもしれません。

話を戻して、1 番か 2 番かで悩んでいるわけですが、今回参考にしたのは Stack Overflow の回答でした。公式ドキュメントとかじゃないのかってツッコミは勘弁して下さい、見つけられなかったのです…。
convention - rails boolean fields: is_foo or just foo? - Stack Overflow
http://stackoverflow.com/questions/3112078/rails-boolean-fields-is-foo-or-just-foo

Rails で even?, nil?, empty?, blank?といった使われ方をしているのに対して is で始まるのは is_a?ぐらいしか思い浮かばない、だからis_を取り除いた方が良いのではないだろうかというコメントが支持されていますね。Ruby では変数の後ろに?を付けると true false の判定が行われるので、それもこのシンプルさの手助けをしています。

というわけで私はひとまず 1 番の deleted を採用しました。とはいえ正解・不正解を見つけたわけではないのであくまで主観です。それに変数名によっては変更せざるを得ないので(例:public 等の予約語)、高度の柔軟性を維持しつつ臨機応変に対処する必要がありそうです。

システム更新しました


2016年10月30日

長いこと更新していませんでしたが、その間まったく何もやっていなかったわけではなく裏側をごっそり更新したりしてました。Ubuntu12.04 で動いていたのを 16.04 に更新したり、Rails4 で動いてたのを Rails5 に更新したり。決して PSVR 購入したから遊んでいて時間が取れなかったとか、気づいたらプラチナトロフィーが 27 個になってたとかで、ブログに書くネタが無かったわけではありません。

今日ようやく諸々の更新が終わったので、今後はちびちびと更新をしていきたいと思います。ついでにこのサイトのデザインも変更したいと思っていますが、今週ドラゴンボール ゼノバース 2 が発売されてしまうのでそれもまたいつになることやら(苦笑)

Windows 10 Anniversary Updateとfoobar2000


2016年08月09日

先日リリースされた Windows 10 Anniversary Update がうちの Surface Book に入りました。アップデートにそれなりに時間がかかりましたが、特に問題なく完了。仕事にも使ってるので、クラッシュなんてしちゃったら結構面倒なことになってただけに一安心です。

パッと見た感じあまり変更は無いようですが、スタートメニューの表示が微妙に変わってるんですねこれ。設定で元に戻るんでしょうかね、普段あまり使ってないから特に不便ではないですが。それと個人的には「設定」より「コントロールパネル」の方をいまだに多用してます。

それで表題の件ですが、基本問題ないと思ってたのですが foobar2000 の再生で若干問題が発生しました。今まで問題なく再生できてたのに、更新してから再生中にたまにちょっと途切れるんですよね。途切れるというか、止まるというか。ブチッって止まって、その後すぐにまた同じ所から再生が進むという。

最初は再生環境(USB-DAC)やドライバの問題かと思ったのですが、それなら止まるんじゃなくて音飛びするような気もするし、試しにブラウザで YouTube を見てても特に問題なく再生できてたので、これは foobar2000 の問題なんだろうな、と。

そこで確か設定でバッファをいじる項目があったはずと思い出して調べてみたところ、Playback > Output に Buffer length の設定が。多分デフォルトのままと思われる 1000ms 設定になってたので試しに倍の 2000ms にしてみたところ、今のところ問題は解消しました。

それにしても何が原因だったんでしょうかね、リソースの割り振り方が変わったりしたんでしょうか?OS レベルの知識を持ってないので詳しいことはわかりません(苦笑)

6年前のデスクトップにWindows10を入れてみた


2016年07月24日

2010 年が 6 年前というのが結構ショックですが、その年に買ったデスクトップが Windows7 のままだったので、期限も迫っていることだしということで Windows10 にアップグレードしてみました。マシンスペックは以下の通り。

CPUCore i5 750
メモリDDR3 20GB
グラボRADEON HD5750
ブートディスクHDD

BTO で購入したんですけど、それからカスタマイズしたのはメモリだけで、それ以外は 6 年間手を加えてません。

結果としては、今のところ特に問題なく動いてくれています、なかなか優秀ですね。Windows10 は既に Surface Book で使用しているので、特に問題なく使えています。Windows7 から移行すると多少違和感はあるかと思いますが、基本的な使い方はあまり変わらずに利用できるのではないかと。

加えて Windows10 にして高速スタートアップという機能が追加されたようで(正確には Windows8 から)、おかげで通常時は起動時間がいくぶんか早くなりました。

全ての PC で同じく何も障害なく更新できるかはわかりませんが、とりあえず 6 年前の PC でも大丈夫でした、というレポートです。もう今週で無償更新の期限が来てしまうので、まだの人で迷ってる人はとりあえずバックアップとってからやってみることをおすすめします。