Ruby + Gehirn DNS API で幸せになってみる
2012/11/12 からゲヒルンより提供が始まった「Gehirn Web Services」。
「Gehirn RS2」や「Gehirn KVS」(未提供) などの魅力的なサービスが並ぶ中、個人的には「Gehirn DNS」にトキメイていました。
Gehirn DNS は、普通の DNS サービスなんですが、こんなところが違うよ、という。
- 国内のデータセンターが 3 サーバ動いてる!
- BIND のゾーンファイルが移行(もしくはエクスポート)できる!
- API が使える!
という感じです。ちなみに、無料で 2 ドメインまでの管理は無料。その後も月 315 円で、無制限管理できるとのことで、割と魅力的。
僕は 1 ドメインなので余裕で無料ですが、それでなくても良いのかなあと思いました。
と、 Gehirn DNS の紹介はここまでにして、先程も言った「API」について触れたいと思います。
API の意味は説明しなくてもいいと思うので省略しますが、要するに自分のアプリケーションからレコードを弄れる、これは面白いですね。
ということで、 Ruby から Gehirn DNS をイジイジしてみます。
まずは、 REST をイジイジするための gem を導入しておきます。
gem install rest-client
あとは rest-client を require して、 API を叩くだけです。例えば、
puts RestClient.get "https://Token:Secret@cp.gehirn.jp/api/dns/resource/example.com
※ example.com はドメイン名
コレでとりあえずドメインのレコードが出てくるはずです。JSON 形式がデフォルトなので ドメインの後に .xml つければ XML 形式で出力されるので、パースするときなんかに便利です。多分。
レコードを変更したければ、
RestClient.put "https://Token:Secret@cp.gehirn.jp/api/dns/resource/123/456”, Resource: {IPAddress: "IPアドレス"}
※ 123 → ドメインの ID , 456 → レコードの ID
これでレコードが変更されます。
あとは API リファレンスを読むと幸せになれると思います。
僕が個人的に便利かもと思ったのは、 DDNS としての利用。
API を叩けば、 DDNS として利用できるのではないかと思いました。
こちらのコードは github に上げておきます。 ( atpons/gddns )
使い方は clone して設定して、
gddns
と叩くだけ。 cron などと併用すれば良いと思います。
何はともあれ、 Gehirn DNS、遊べると思います。
iTunes で再生中の楽曲のタイトルとアーティストを忠実に喋る saytunes 公開しました
とっさにiTunesで再生中の楽曲のタイトルとアーティストを知りたい時に叩けるスクリプトです。
github にあります。
Growl があるなら…???
というわけで、AppleScript と Ruby です。
が、普通に say コマンドに読ませると、おもしろいことに、きちんと読んでくれないことがあります。面倒くさい。
例えば、「緑間真太郎」だったら、
say コマンド (Kyoko) 「みどりかん しんたろう」
と読んでしまうんですよ。
これだと忠実じゃない…。
ということで、Yahoo! の形態素解析 APIをつかって読み方を取得してみたら、
say (Kyoko) + Yahoo! 形態素解析 API 「みどりましんたろう」
と読んでくれます。
が,しかし、アーティストだと固有名詞っぽいのが多く、「関ジャニ∞」だったりすると、
say (Kyoko)「かんじゃに むげんだい」
say (Kyoko) + Yahoo! 形態素解析 API 「かんじゃにむげんだい」
と、不完全なのです。
そこで、「はてなキーワード」なら、日本のアーティスト等の固有名詞などでもきちんとした読み方があるのではないかと思いはてなキーワードのAPIから取得したいのですが、キーワード毎に取得させないと出てきてくれないので、Yahoo! キーフレーズ抽出 API を利用しました。
say (Kyoko) + Yahoo! キーフレーズ抽出 API + はてなキーワードAPI「かんじゃにえいと」
と、きちんとした読み方を出してくれました。
なお、はてなキーワードでヒットしなかったものは仕方ないので形態素解析APIのみにかけています。
仕組みとか詳細は以下を御覧ください。
Growlを再起動するだけの何かとTwitterに投稿するだけの何かを公開しました
このひと夏後半で2つ、書きました。
Twitter に TL を見ないで呟くだけの悲しいクライアント。
まあ、見たくないとかただ単純に書きたい時があったので作りました。
if 文じゃなくて case-when にしろというツッコミとかその他諸々モロQ。
— たっどさんは風邪をひいてます(NEET)さん (@tadsan) 8月 16, 2012
"#Growlを再起動しました"というツイートにインスピレーションを受けて作りました。
時々Growlがおかしくなるので、叩いて再起動させて、Twitterに再起動の報告をするだけのものですが、もちろんTwitter投稿はなしにもできます。
launchdで自動起動させる案とか考案中です。
Ruby って楽しいですね,楽である。
「たのしい開発 スタートアップRuby」
実は@june29氏の記事で"後輩たちに贈りたい本"というのがあったので、Replyを送ってみたら返事してくださって、「たのしい開発 スタートアップRuby」をくださった。
- 作者: 大場寧子監修,大場光一郎,五十嵐邦明,櫻井達生著
- 出版社/メーカー: 技術評論社
- 発売日: 2012/07/31
- メディア: 単行本(ソフトカバー)
- クリック: 25回
- この商品を含むブログ (3件) を見る
頂いた本なので、感想を書いて感謝したいと思っている(謎
ただのRuby本じゃない
基本的に技術書とか、入門というのは、この言語はこういう特徴で、この言語ではこういうことができるんだよ、というくらいがはじめに書いてあるのが普通だと思う。
それは普通に良いと思うのだけど、"たのしい開発"をするにあたって「理想の開発」だとか、そういう項があるし、こういう本も良いな、と思った。
要するに、初めてRubyを触るんだけれども…という人向けであるということ。
初心者が見るものなのか
初心者の方はもちろん、この本はわかりやすくて、1から載っているから順序良くできる。
でも、今Rubyをやっていて、GitHubもバリバリ使ってて、Railsも触ってて…ておくれという人でももちろん楽しめる,わかる本である。
先ほども書いたようにただのRuby技術本ではないから、Rubyに対して熱意がある人も、これで更にやる気が出てくると思います。
結論(?)
誰でも読めるRuby本。
最後に
今回この本をくださった@june29氏,「たのしい開発 スタートアップRuby」の筆者である方々には感謝です.
(もうちょっと書けよ,といわれそうな気もすr...)