Spectre 007 を観てきた
James Bond が大好き
ジェームズボンドシリーズがとにかく大好きで、しかもリブート後初のスペクター登場ということで楽しみにしていた。
とりあえず、観た感想としては、これはロジャームーア時代の007クオリティだわ、って感じだった。さすがに、ロジャームーア以降最高の駄作ダイアナザーデイを超えることは無かったけど、クレイグボンドでは最下位の出来。
楽しめたところとダメだろと思ったところが半々くらいで、まあこんなこともあるよね、って感じの普通の007映画。
とりあえず、車のエンジンが唸る音はもっと聞かせて欲しかった。せっかくのアストンマーチンDB10なのだから。
とりあえず、あと1回くらい観に行こうかな
007そのものの大ファンなので。
ほんの少しだけネタバレ感想
あのすげえタフな悪役、ジョーズじゃねえのかよ
serial experiments lain を観た
動機
先週、一連のキルミーベイベー騒動で、AmazonビデオのDL済みコンテンツすらリモートで削除されたという話を聞いた。
デジタルメディアの購入者は作品を所有することができず、ただ観る権利を与えられているだけであり、その権利はいつ剥奪されてもおかしくない。そういうことを改めて再認識すると、いま手元に所有していない作品はいつの日か突然触れることができなくなってもおかしくない、という焦燥が浮かんできた。
なので、せっかくの祝日だから、今まで観たいと思っていたけど観れていなかった作品を観ようと思い、ずっと観たいと思っていた serial experiments lainを観た。
https://youtu.be/Bb1bXNI4mUQ(バンダイチャンネルで公開されている無料の1話目)
Chinachu + Ruboty = 超便利
ruboty-chinachuプラグイン作ったよ
Rubotyという、Rubyで実装されたbotエンジン用のChinachuプラグインを作った
Chinachuは、Nodeで実装されたLinux用の世界一キュートな録画サーバーだが、キュートなだけではなくAPIが完備されていて、プログラマフレンドリーでサイコーな録画サーバーでもある。前に導入用のエントリも書いた。
diffコマンドの exit code って、差分がなければ0、差分が有れば1、失敗したら2なんだね
T/O
タイトルの通り
悲しみ
いま書いてるRubyのコードで、シェルコマンドを実行する必要がある場所は、Open3を介して実行するようにしているんだけど、Open3#capture3メソッドは(というか、Rubyのprocess.cが)exit codeが1の場合、success?メソッドをfalseで返すようにしているらしく、普通のコマンドと挙動が違う
shellコマンドの実行を共通化していると、diffコマンドだけこの特殊な挙動を切り分けなくてはいけなくて辛すぎて泣きそう
diffyとかのライブラリとは違い、ディレクトリ構造の違いを取得したいケースなので、つらい
補足
自分で確認していないけど、チャットでもらった情報だとcmpとdiff3もそうらしい
Gemを初めてRubyGemsにリリースしたよ
作ったもの
何これ
たまにしょうもないもの(たとえば、キルミーベイベー画像ジェネレータとか)を作ってGithubにプッシュするけれど、ライセンスとかもうどうでも良いし好きに使って欲しいけど、ライセンスの表記が無いのも使いたい人が戸惑う。そういうときに最高のライセンスWTFPLがあるのだが、作ったものにいちいちこいつを入れるのもめんどくさい。
そんなときに、コマンド一つでWTFPLのライセンスファイルを生成してくれるGemです。
Usage
$ echo 'gem "wtfpl_init" >> Gemfile
$ bundle install
$ bundle exec wtfpl
これで、wtfplコマンドを実行したディレクトリにLICENSE.mdファイルが作られて、中にはWTFPLのplain text が入っている。
Gemの作り方
RubyGemsのページやDevelopers.IOのブログが参考になります。
RubyGemsのページが王道なのだろうけど、Bundlerが大部分を肩代わりしてくれるので、大事な手順は次の二つだけ
RubyGemsのAPIキーを手に入れる
$ curl -u YOUR_RUBYGEMS_USER https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials
このコマンドで、RubyGemsからGemのパブリッシュに必要なAPIキーを手に入れられる。もちろん、先にRubyGemsに登録しておく必要はあるので、サインアップを忘れずに。
curlでアクセスするときにユーザーネームを渡すので、Basic認証がかかり、パスワードを聞かれる。サインアップしたときのパスワードを入れると、APIキーが降りてきて、それを$HOME/.gems/credentials に保存する
Gemをビルドしてパブリッシュ
BundlerのRakeタスクを使って、Gemをビルド&パブリッシュする
$ bundle exec rake spec
$ bundle exec rake build
$ bundle exec rake release
とりあえずテスト回して、ビルドして、リリース。rake releaseを実行すると、Githubに対象のタグを勝手に打ってくれるらしい。(Rakeタスクを呼んでないからどういう動作になっているのか分からないので、後日読もう)
この二つの手順だけで、GemをRubyGemsにパブリッシュすることが出来る。実際に作ったものが役に立つのかどうかは知らないけれど、変に名前空間を食いつぶすような名前で無ければ、何か作ったら適当にパブリッシュするのが良いんじゃないかと思う。今後は頑張ろう。
dokku-alt の謎2
正確には、dokkuが使っているHeroku buildpacksの謎
Railsのデータベースアダプタとして、mysql2を使っているのに、何故かdokku-altにデプロイすると、mysqlをrequireして起動の時に死ぬ。なんでだ!?
Heroku buildpacks
Herokuにアプリをデプロイすると、自動的にビルドを実行してくれるすごいやつ。オープンソースなので、dokkuも使っている。
で、こいつは恐ろしいことに、Railsアプリをデプロイすると、dokkuのコンテナ単位の設定を元にconfig/database.ymlを書き換える。便利だけど恐ろしい。
Railsの場合、Railsのコンテナに設定しているDATABASE_URLの設定を読み込み、それをURIとしてパースする。その後、スキーマを取得して、そのスキーマをadapterとして設定する。だいたいの場合は、MySQLを使うならDATABASE_URLはこんな感じの設定になると思う。
mysql://user:pass@db.domain.tld/database_name
普通なら別に良いのだが、Railsのadapterはそのまま起動時にrequireされるgem名として使用するので、mysqlの部分がそのままadapterにセットされて、mysql2を使いたいのに使えない状況になる。
解決策は、単にスキーマ部分をmysql2にすれば良い
mysql2://user:pass@db.domain.tld/database_name
良いのだが、非常に気持ち悪い気がする……
dokku-alt の謎
デプロイ出来ない
dokku-alt のサーバーは以前に作ったが、何故かしばらくデプロイしないうちに、デプロイが出来なくなっていた
調べていると、どうもsshでdokkuユーザーに繋げていないことが分かったので、解決策を探す
YAPC::Asia Day2 行ってきたよ
行ってきたよ
毎度おなじみ、ブログを書くまでがYAPCだと骨の髄までたたき込まれたので書くよ。
訂正:所々スピーカーの方の名前を間違えていたので修正しました
YAPC::Asia Day1 行ってきたよ
行ってきたよ
YAPC::Asiaは今年で最終回らしいので、行ってきた。去年も行ったけど。
YAPC::Asiaに参加すると、毎回セッションの最初と最後に「ブログを書け、介錯してやる」と脅しを掛けられる。もっぱら坊主やひげで体格の良いおっさんが多い。怖いから書くことにしよう。
本当は前夜祭にも行きたかったけど、仕事終わらなかったよね。懇親会も参加したかったけど、いつの間にか登録終わってた。
聞いてきたセッション
UbuntuでMySQLの通信をSSL化するときは、証明書のディレクトリが重要らしい
またDBサーバーを移動させる必要が生じたので、以前の経験を元に新しくDBサーバーを作った。
前回はCentOSだったが、こんどはUbuntuのLTSに変えてみたところ、前回と同じ方法ではMySQLのSSL化が有効にならなかったので、メモしておく。
最初は、証明書の権限とか、作り方に問題があるのかと思っていたが、どうにも手詰まりになって検索したところ、次のようなフォーラムを見つけた。
Enabling SSL in MySQL - Ask Ubuntu
どうやら、UbuntuでMySQLのSSL化を有効にするときは、証明書ファイルとかを全部/etc/mysql の下に置かなくてはいけないらしい。
そんな馬鹿なと思ったけど、実際に/etc/mysql-ssl というディレクトリに作っていた証明書を/etc/mysql に移動してみたところ、何度やってもDISABLEだったSSLのステータスが、YESに変わった。
わけがわからんが、忘れないようにメモしておく。
追記
Wordpressから、MYSQL_CLIENT_SSLフラグをオンにしても動かなかった理由も解決した
鍵を作った直後にこれをやろう
ただ、何故かファイルに差分は生まれなかったのだが……謎い