※ 「Ruby/Rails界隈ウォッチ」は2016年12月より週刊Railsウォッチにタイトルを改めました。
こんにちは、hachi8833です。
RailsやRuby界隈のニュースをピックアップしながらご紹介します。ニュースソースはそれほど固定しない感じでやっておりますので、Railsと関係ないこともあるかもしれませぬ。
Reddit.com
Microsoft Signature PCなLenovoでLinux動かないorz
いきなりRailsと関係ありませんが、「Microsoft Signature PC」なLenovoマシンがLinuxをインストールできないようになっているという残念なニュース。やり取りの魚拓もあります。
↑Fedoraで何とかしたい場合のUEFI Secure Bootの殺し方はFedora: Disabling UEFI Secure Bootにあるそうです。
RubyFlow
TextrisでSMSメッセージをメール同様に送信
SMSメッセージ送信や電話発信用Ruby gemといえばtwillio/twilio-rubyがstarを900個近く集めており、公式の日本語ドキュメントもあります。今回名乗りを上げているTextrisは、内部でtwillio/twilio-rubyを使いつつも(Twilioのアカウントが必要)、ActionMailerでのメール送信と同様の「Railsらしい方法で」SMSメッセージを送信できるのが売りだということです。Railsの新機能であるActive Jobでのジョブ管理もできるようです。
Brakeman Pro Engineリリース
静的な脆弱性解析ツールであるBrakemanにPro Engine版が登場し、Pro Desktop版の2つに製品を分けたとのことです。オープンソース版との比較リストを見ると、GUI関連の機能は当然ながらDesktop版が最も多く、Pro EngineはCIに組み込む目的でGUI的な機能を省略する代わりにレポート出力機能を充実させているようです。お値段はこちら。
Qiitaに日本語記事がありますが、だいぶ前のものですね。
RabbitMQとHTTPとRailsでマイクロサービス
RailsというよりほとんどRabbitMQの解説ですね。RabbitMQはAMQP(Advanced Message Queuing Protocol)の実装のようです。昔の記事ですが、AMQPによるメッセージングがやや詳しいですね。
Ruby trunk
Module#aliasとModule#alias_methodのバグ
Ruby 2.1では正常だったModule#alias``Module#alias_method
が、Ruby 2.3.1で期待どおり動作しないという報告。
module M
def original ; puts __callee__ ; end
alias_method :aliased, :original
end
class A
include M
end
A.new.original
#⇒ original
A.new.aliased
#⇒ aliased (2.1の場合)
#⇒ original (2.3.1の場合)
既存の#12176と#11964との関連が報告されており、修正はまだの様子。
ところで、このhttps://bugs.ruby-lang.org/を掘ってみるとときどき面白いものが見つかりますね。Wikiの各種ドキュメントにまぎれてRubyistに必要なことというのを見つけました。チケットは英語のみかと思いきや日本語で上がってるのもちらほら。
Hacker News
pardonsnowden.org
「スノーデンに恩赦を」といういかにもHacker Newsで盛り上がりそうなサイト。Steve Wozniakがスノーデンを紛れもない英雄とまで呼んでいるとtickerに表示されてます。
ナードのための音楽理論
個人的にじわっときたのでメモ。「CメジャーとAマイナーって構成音がまったく同じなんだけどどうして両方要るんだ」=>エイリアスだと思えばよろし。
音楽理論は、プログラミングで言えば言語仕様やデザインパターンみたいなもので、理論を完全に理解しても曲を作れるようになるわけではないところがポイントかも。音楽理論は作曲家よりもアレンジャーにとって圧倒的に便利な道具で、作曲は音楽理論を全然知らなくてもできるけど、アレンジやオーケストレーションは理論なしではつらい。
ちなみに世界で最も多く売れたシングル「ホワイトクリスマス」を作曲したIrving Berlinは楽器どころか譜面も読めず、アシスタントが彼の歌を聴き取って譜面に起こしたんだそうで。
Let's Encryptの運営コスト
暗号化なしのHTTP接続への風当たりが強くなる今日このごろ、無料で証明書を発行してくれるLets' Encrypt(注: 日本語サービスもあり)が注目を集めています。yamasitaさんによれば既存の認証局とちゃんと棲み分けできているんだそうです。
そのLet's Encrypt自らが運営コストの内訳を公開しており、2017年の予算はざっくり300万ドル、うち2/3は人件費。費用のほとんどを企業スポンサーからの寄付でまかなっているそうです。
こうまでしてもらった以上、暗号化なしのWebサービスを放置するわけにはいかなくなりました。私の持ってるサービスも早いとこHTTPSに移行しないと。
Mozilla Thimble
Mozilla謹製のWeb版HTML/CSS/JSエディタですが、驚きの完成度にしてデザインも見事。HTML/CSS/JSを学ぶ学生さんはもうこれしかないでしょう。正直、惚れた。
ちなthimbleは「指ぬき」ですね。金属キャップ状の洋風指ぬきに対し、日本の指ぬきは革ベルト風。
Bash Shellの奥義集
Bashの珍しい技をいろいろ紹介しています。今度翻訳してみようかな。
子どもにはシェルの方がいいんじゃないか
話は違いますが、義務教育としてのプログラミング教育はもうシェルの基本機能だけ教えれば十分なのではないかという話題で社内でちょっと盛り上がりました。
たとえば単純なループひとつ取っても、子どもによっては越えられない壁になりえますし、ポインタだの黒魔術だのを無理強いしてプログラミング嫌いの子どもを大量生産しては元も子もありません。自分のやりたいことをただ並べて一気に実行するという最小限の自動化はたぶんいつの時代にも必要になると思いますし、一気に作業が完了するさまはプログラミングの快感の原点でもあります。それに一番近いのはシェル(スクリプト)でしょう。
つまんない罠やバッドノウハウやしがらみを極力排除した、教育用の極小シェルというものがあってもいいのかなと。プロのツールと、誰もが使うツールは同じにしない方がよいように思います。
ただ、そういうのを文科省とかが主導で制定すると絶望的にセンスないものができそう。むしろ子どもをたぶらかす魅了するノウハウを長年に渡って蓄積している玩具メーカー・ゲームメーカーが開発するといいのかも。子ども扱いするのではなく「俺今すげーことやってるぜ」感を演出する感じで。