psコマンドをStructの配列として扱うRubyのクラスを適当に書いた
既にそういうgemがありそうだとはわかってて書いた。
このところ、家の録画サーバーが、おそらくハードウェア的な理由で不安定だったので、定期的にプロセスを監視するスクリプトを書く過程でこんな感じのものが必要になり、とりあえずgistにあげておいた。
Forwardableモジュールとかの知見はEffectiveRubyという本から得たものなので、そのうちまとめたい。
とりあえず、ProcessListクラスをnewすると、newした瞬間のps aux をStruct化したものの配列を得ることが出来る。
$ pry
[1] pry(main)> require './ps_test'; ps = ProcessList.new
[2] pry(main)> ps.first.command
=> "/usr/lib/systemd/systemd --switched-root --system --deserialize 23"
Fedora20で動作確認はしたが、他の環境で動くのかどうかは全くわからない。
Raspberry Pi 2 に通電
**
Raspberrypi2
買ったは買ったけど、色々時間がつらくてしばらく放置していたので、3週間越しでやっと通電できた。
NOOBS
raspberrypi.orgのヘルプに従い、NOOBSを使ってRaspbianを導入。なんかよくわからないテンションアゲアゲのおばちゃんが丁寧に説明してくれるので、特につまづく点はなし
Raspbian
ラズパイ用にカスタムされたDebianらしい。だったらとりあえず
sudo aptitude update
sudo aptitude upgrade
まあ当たり前だけど、普通のPCよりかなり遅い
Wi-Fi
無線でつなげれば多分最強な気がして、テキトーにやすかったBuffaloの無線LANアダプタを買ってきた。普通にデバイスとして認識するし、ちゃんと繋がるのも確認した。が、何故かケータイのテザリングのAPは見えるのに、ステルスモードにしてある自宅のルーターのAPには繋げない。追々調べるとしても、とりあえず今は有線接続で我慢。
何をしよう
さあ、このラズパイは何に使おう。とりあえず、会社の人に色々おすすめしてもらったセンサ類を買ってきてつないでみよう。
Homebrewのbundleコマンドが終わっていたことに初めて気づいた
久々にMacをクリーンにして、環境構築
自分の環境構築系は、全部Githubにあげてある。だから、その中においてあるシェルスクリプトをたたくだけで、終わるはずだったのに、恐ろしいメッセージが出た。
Error: Unknown command: budle
ない。マジでか。
最後に環境構築をやったのは、仕事で新しいMacをもらった去年の6月。正確にいつなくなったのかはわからないけれど、その直後のリリースあたりから消えたらしい。
brew bundleが使えなくなったのでとりあえず使えるようにした
なんか、メンテできなくなったらしい。なら仕方ない。
急場をしのぐ
こんなエントリを見つけた
このエントリに書いてあった、BrewfileをShellScriptに変換するスクリプトで、とりあえず一名をとりとめる。しかし、どうしたものか。
代替手段
Ciderというものがあるらしい
brew bundleできなくなったのでciderに乗り換えた
ただ、よく調べていない点と、Pythonが必要になる点が気になって、今のところすぐに置き換えてみるつもりはない。
ただですらHomebrewはRubyで書かれていて、さらにそれを動かすためにPythonとpipが必要となると、それらを管理するシェルスクリプトのメンテがまためんどくさいことになりそうだから。
そのうち本気出して調べてなんとかする。
Windows8のDSPを買って、VirtualBoxにインストールした
Windowsが必要だった理由
もっぱらデスクトップもLinuxをメインで使用しているが、やはりLinuxはマルチメディア環境に弱い。具体的に言うと、Chinachuで録画した地デジのTSファイルを再生するのに、選択肢がほぼVLCしか無い。そして、VLCは高機能ではあるが、お世辞にも良い動画プレイヤーとは言いがたい。フレーム補間とかできないし、TSファイルがなんかの拍子にワンセグ信号が優先のまま保存されても、それを回避する方法がない。
やはり、マルチメディア環境を充実させるなら、Windowsを選ぶしか無い。あと、Mac版のコミケカタログが思ったよりも使えなかったので、Windows版が使いたかったというのもある。
VirtualBoxにWindowsのインストール
Windows8は(もしくは、Windows7からかも知れないが)、DSPのライセンスでもパーツと一緒に買う必要は無く、仮想マシンへのインストールも可能とのこと。一万円の通常版を購入してきて、早速インストールした。
USBデバイスフィルター
ホストのOSはFedora20、仮想化はVirtualBoxを使用。ホスト機はゼロスピンドルなので、光学ドライブが搭載されていないが、USBのブルーレイドライブを接続した。
やや悩んだ点は、初期化直後の仮想マシンで、ホスト機のUSBドライブをどう使用するかよくわからなかったところ。設定のストレージの項目でドライブにセットできるのは、仮想CD/DVDイメージだけのようだったので、色々設定を変えてみた。
その結果、USBという項目で、USBデバイスフィルターを追加することによって、ストレージ項目のCD/DVDドライブに、ホスト機に刺さっているUSBドライブを使えることがわかった。
特に何も問題はなくインストールされる
その後、普通にDVDからブートして、インストール。何一つつまずくポイントはなく、逆に拍子ぬけた。問題なくコミケカタログもインストールされ、普通に動いている。
しいて困っている点を上げるのであれば、ゲストOS側の画面解像度と、ホスト側のウインドウに表示されている解像度が旨く一致しない点だ。だが、色々設定を試していくうちになんとかなるだろう。
今後やること
Windowsを買った理由は、マルチメディア用途だ。だとすれば、仮想マシンではなく物理マシンにインストールするほうが好ましい。年が明けたら、デュアルブート環境を作成しなくてはいけないだろう。
それまでは、仮想マシン上でWindowsを動かすいい機会なので、Vagrant対応したイメージを作ったりしてみようと思う。物理マシンにインストールすると、使えなくなってしまうが、仮想マシン上のWindowsをあれこれするノウハウ自体は仕事でも役立つだろう。
クリスマスに安心して一日中アニメを見るために録画鯖を作る技術
このエントリは、ドワンゴ Advent Calendar 2014 - Qiita の15日目のエントリです。昨日はkokuyouさん、明日はsaitenさんです。
要約
Ansibleを使って、Chinachuがインストールされた録画サーバーを自動でセットアップするPlaybook作りました。
安心してアニメが観たい。
世の中の大抵の人は、安心してアニメが観たいはずです。そして世の中の大抵の人は、普通のテレビと普通のBDレコーダーを使い、安心してテレビを観たり録画しているはずです。よっぽど変なテレビやレコーダーを買わない限り、普通にアニメを観てアニメを録画できる機能が備わっています。安心ですね。
しかし世の中には、宗教的な理由や金銭的な理由で、テレビやレコーダーを買うことを拒む人が居ます。私もその1人です。このエントリでは、訳があってテレビやレコーダーを買えないけれど、クリスマスはどうせ暇だから一日中アニメを観たいという人のために、クリスマスまで安心してアニメを録画し続けることが出来る、録画サーバーの作り方を解説します。
Darsana Tokyo に参加してきた。そして、あまり楽しめなかったという反省。
[caption id=”attachment_191” align=”aligncenter” width=”3199”] darsana[/caption]
私はEnlightedのA8
Ingressの世界的イベント、Darsanaのメインステージが東京に来たから行ってみた
そこそこIngressにハマっているので、これは覚醒者の1人として参加せざるを得ないと思い、引越し後の荷解きもほったらかして朝から日比谷まで行ってきた。事前に、参加者5000人ほどの予想で、世界中でこれまで行ってきたDarsanaの中でも最大規模になると聞いていたからそれなりに楽しみだった。A8だし、戦力としても引けは取らないだろうと思ってウキウキしながら参加。
以外だったのは、Ingressのエージェントたちは、自分が想像していたよりもふた回りほど歳をとっている人が多かった。というか、オッサンとオバサンが大多数。一応自分もオッサンに片足突っ込んだセミオッサンだが、日比谷野外音楽堂に集まっていたのは、ガチなオッサンばかりだった。こんなに年齢層の高いゲームだとは思っていなかったが、リアル課金のガチっぽい感じを鑑みると、まあわからなくもないかなという感じ。
海外から参加のプレイヤーも多くて、特に台湾チームは目立っていた。
ジョン・ハンケのスピーチも楽しめたし、ここまでは良かった。
ブログのDBを、ConoHa VPSに移行した。MySQLとSSLで通信する。
このブログは、さくらVPSの一番小さいインスタンス上で、Nginx+Apache+Wordpress+MySQLの構成で動かしている。
一応、アプリケーションレイヤの部分は、Nginxを挟んでいることもありそこそこ柔軟に動かせたりするのだが、永続レイヤというかMySQLの部分はかなりつらい。今まで何度もサーバーのOSを再インストールして、一番最初の頃に作り上げたカオスな環境を脱しようかと思ったけど、DBの接続先がlocalhostである以上、DBも巻き沿いを食らう。別に止めても誰も困りもしないブログだけど、職業柄かしらないが障害でサイトが停止することにすごい抵抗感があったため、ズルズルとこの構成のまま二年くらい放置してしまった。
半年くらい前、ConoHaというVPSを知った。イメージキャラクターが清楚可愛いのはもちろんのこと、定期的に勉強会やイベントに出ていれば、結構ガバガバな感じのクーポンをもらえることを知った。また、さくらVPSとは少し毛色が違い、どちらかというとさくらクラウドに近い感じの、インスタンスやネットワークの管理をコンパネ上で行える、イケてる? 感じのVPSだった。というか、コンパネがさくらクラウドのそれだった。ConoHaは、そこそこさくらVPSをライバル視してる感があり、価格設定とかもかなり意識されている。とりあえず、一番安い。しかも、クーポンとかも定期的に出ている。半年ほどウォッチしていた感じだと、そこそこ頻繁に障害が発生していたが、ここ数ヶ月は安定しているみたいだった。お名前.comでやらかしたばっかりのGMOグループっていうことは気になったが、Twitterとか見ている感じは、絶望的なセキュリティでもなさそうなので、サーバーを一台借りてDBサーバーとして運用しようと決めた。
お名前.comがヤバそう
夕方ごろに、こんな感じの話が職場でも話題になった。
【速報】お名前.COM が名前とIDを大量に誤送信 パスワード漏洩の心配も!
自分のアカウントは大丈夫かなーと思って軽い気持ちで調べてたら、どうもお名前.comはユーザーのパスワードを平文で保存していることがわかった。パスワードを忘れた時のフローを踏むと、平文でパスワードがブラウザ上に表示されたから。それも、会員IDと秘密の質問、という2つのキーだけで。秘密の質問は推察するしかないとしても、会員IDは連番で、他の人のものを適当に推察できる状態だった。
もっと悪いことに、会員IDを忘れた場合、というフローもあった。なにをするかというと、契約しているドメインを入力すると、秘密の質問だけで会員IDを教えてくれる(もちろん、秘密の質問はパスワードの時のものと同じ)。そればかりではなく、ドメインを入力しただけ(だけ!)で、登録者のメールアドレスの、@よりも先の部分が公開される。加えて、@より後ろは、で表示されているのだが、実際のメールアドレスの文字数と等しい。つまり、9文字であればほぼ間違いなく***はgmail.comということ。
ドメインは公開情報で、自分のこのブログのドメインも、だれでも知れる。それをお名前.comのサイトに打ち込むだけで、俺のメアドが判明してしまう。これはないだろいくらなんでも、ということで、お名前.comからドメインを移管しなきゃいけないと決心した。
ちなみに、会社のチャットでお祭りになってる間にその問題は修正されたらしく、現在はメアドを覗き見たり、秘密の質問だけでパスワードを突破できたりはしないようになっているらしい。ただどちらにせよ、IDが連番であったり、パスワードを平文で保存しているという根本的な部分は変わらない。
お名前.comはGMOの参加のサービスだが、他のGMOサービスも同じような問題を抱えている気がして、GMOに対する警戒感が一気に跳ね上がってしまった。
Vagrant+Virtualboxで作った環境を、どうやって他のホストに移すか?
関係する全ディレクトリを丸々コピーも考えたが、ホストのユーザー名が変わったりとか、環境によって云々とか、そもそもVagrantの内部の動作をよくわかっていない状態でそんなことして大丈夫なのかとか、全く以って不安が尽きない。
色々と調べたところ、どうもpackageコマンドを使って、現在の環境を完全にbox化して、Vagrantfileと一緒にそれを持っていくのが一番手っ取り早く安全っぽいので、そういうスクリプトを書こうと心に決めた。
2014/10/04 今日読んだもの
VPNサーバー構築(OpenVPN)
Vagrantでpublic_networkで作った仮想マシンに一通り設定を流して、ルーターのポートフォワードだけであっさりとVPN完成。非常に楽だけど、得られる効果が抜群ですごい助かる。