4.2.8リリース、SHA-1コリジョンアタック、便利なハッシュ変換ツールほか|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社エンジニアの「?」を「!」に。4.2.8リリース、SHA-1コリジョンアタック、便利なハッシュ変換ツールほかhachi8833&シェアツイートブックマークLINEこんにちは、hachi8833です。今週は公式サイト以外からの情報も少し多めにしようかと思いましたが、4.2.8リリース記事を優先しました。collisionSlackでbabaさんの書き込みから第一報を知りました。早くも日本語ニュースが出ていますので、詳しくはそちらをどうぞ。(googleblog.com)」では、PDFをドロップするだけでSHA-1コリジョン問題を手軽にチェックできるhttps://shattered.it/サイトが大賑わいになっています。問題の要点がよくまとまっていて助かります。https://shattered.it/より同サイトにはお試し用のPDFも2つ置かれています。files.)」とあります。Encryptでした。同サイトによると、署名/ファイル整合性チェック/ファイル識別にSHA-1を使っている以下のようなアプリケーションにはこの問題の影響を受ける可能性が潜んでいるかもしれないとのことです。https://emn178.github.io/online-tools/index.html上述のSHA-1問題に関連してBPSアプリチームのu-ichiさんが見つけました。今週の⭐を進呈いたしましたので先にご紹介します。思いつく限りのハッシュ/CRCチェックサム/HTMLエンコードをブラウザ上で変換できます。https://emn178.github.io/online-tools/index.htmlよりおまけにその場で結果を確認できるシンタックスハイライトまであります。何も足さない・何も引かないを体現したような、徹底的に素朴なデザインです。Tools」とあまりにそっけなさすぎるのでググりにくいぐらいでしょうか。これに私が普段から愛用している万能変換Webツールhttp://r12a.github.io/apps/conversion/と合わせれば、たいていの文字コード変換処理はこなせそうです(海外ツールなのでShift_JISやEUC関連などはご勘弁を)。released!先週rc2だったのが正式にリリースされました。2.4で修正されたDateTime#to_time(#12189)に伴う修正が中心です。4.2.7アプリにはすとんとインストールできました。Readme記載の変更点のみ以下にまとめます。Railsウォッチでも既出のものがちらほら見当たりますね。普段から追い続けているとだんだん見えてくるのがうれしいです。gem「before_configurationなんてフックがあったんだ!」「before_initializeってのもあるけどどう違うんだ?」と一同の間で驚きがありました。起動時に環境変数などのチェックをしたい場合にはこのような起動のごく初期段階で呼ばれるフックが必要になりそうですね。このあたりの初期化フックについてはRailsガイドの初期化プロセスに詳しく載っています(日本語版が追いついていないので英語版にリンクしました)。上のフックに関連して、Railsの起動時の環境変数周りを制御できるfigaroというgemも見つけました。development/test/productionごとに切り替えたい定数がある場合によさそうです。Herokuでの利用が想定されていますが、他でも使えます。修正ActiveSupport::TimeWithZoneとDateTimeの#getlocalと#getutcが常にTimeのインスタンスを返すようになったActiveSupport::TimeWithZoneがDateTimeを返していたためにto_timeで呼び出しスタックが深くなりすぎてエラーになる可能性があった問題が修正されました。2.4以降では、to_timeレシーバのタイムゾーンを変更しないようにするためにローカルシステムのタイムゾーンに変換するようになりました。この設定オプションはデフォルトではfalseに設定されるので、従来のRailsアプリを4.2.8にアップグレードしても設定を変更するまでは直接の影響はありません。ActiveSupport::TimeZoneに追加3aa26cfで行われたタイムゾーン関連の修正によってシリアライズのYAMLフォーマットの日付文字列がUTCに変更されます。これを一時的に取り消したい場合のためのinit_withが導入されました。従来の#inはmethod_missing経由でTime#sinceに渡されていましたが、Time#sinceがサマータイムに対応していなかったので、サマータイムに対応できるActiveSupport::TimeWithZone#sinceをエイリアスしました。composed_ofについて一同でリリースノートをチェックしていて、このActiveRecordのcomposed_ofというメソッドにkazzさんが熱い視線を注いでいました。composed_ofについてはいつか別記事で追ってみたいと思います。name.ここからはいつもどおり、今後のRailsでの更新情報です。ActionMailer::Base#instrument_nameはActionController::Base#instrument_nameはキャッシュ後に頻繁に使われることが多いので、呼ばれるたびにStringを#newするのをやめてfreezeしたそうです。修正はピンポイントです。primary_keys()@kamipoさんの#27997の続きです。8.4から利用できるようになったgenerate_subscriptsを使って最大64%まで高速化されたそうです。engineに再度修正が行われました。b6ffb5eで行われた別の修正でnamespaced_pathがStringの一部として扱われるようになったので、#27550ではnamespaced_pathがArrayを返していたのをStringで返すように変更しました。indexesこれも@kamipoさんのお仕事です。indexって何かと思ったらPostgreSQL固有の機能だったんですね。テーブルの他のカラムから算出したスカラー値をインデックスで使えるというものです。indexをサポートしていないそうです。databaseMySQLにRAMディスクを導入してみたところCIのビルドが32%速くなったそうです。短いのですぐ読めます。SDKの元記事RSpecを使ってテスト駆動開発という記事です。前書きは飛ばしてよいと思います。この記事をきっかけに以下を見つけました。resources.k1LoW/awspecは数少ないAWS向けのRSpecテストgemです。LinuxMicrosoftの公式記事です。Linuxサービス上で動かす方法の解説です。Railsとは書いてありませんが、Rubyが動くならRailsも動きそうです。他でも読める内容ですが、韓国語のRails記事が珍しかったので目に止まりました。Google翻訳は便利ですね。Google翻訳の日本語<=>韓国語翻訳はかなりすごいGoogle翻訳の日本語<=>韓国語翻訳は、日<=>英翻訳が話題になるよりずっと前からかなり質の高い訳文を生成できます。それより前は日<=>韓機械翻訳は内部で英語を経由していたようなふしがありましたが、7、8年ほど前から中間言語を経由しないネイティブになったように思えました。マジで、マニュアルレベルだったら日<=>韓機械翻訳は下訳として使えてしまうほどです。両言語は語順が同じで、敬語の概念もかなり似ているので、機械翻訳が効きやすいのかもしれません。Scriptという名称のJavaScriptでやるのが定番でしたが、Pythonでもできるんですね。Algorithmsよりこの種の他サイト同様、デザインも見せ方も秀逸ですね。動画や文章による解説のほかにクイズや練習問題もあり、質疑応答も受け付けています。Dartmouth大学と提携して作成された本格的な内容です。PapersAwesome系の中ではかなり頑張ってる感じです。機械学習系の研究は新しいアルゴリズムがたった1年で陳腐化したりするぐらい異常に足が速いらしいので、こういうメモ書きでもありがたいのだと思います。外野から見ていると、機械学習系の研究者はスプリントレースの速度でマラソンしながら宝探ししているようなデスレースっぽい世界でしのぎを削っているような塩梅ですね。知力の他に頑健な基礎体力もないとやっていけないかもです。Trendingなどでちょくちょく見かける「Awesome」で始まるタイトルは日本で言うまとめサイト的な情報ですが、思ったほどいい情報でもなかったり、あっという間に古びてしまうことが多いので、Railsウォッチの情報収集ではたいていスルーしていました。Awesomeは英語圏だと割りとバズらせやすい安易な言葉になりつつあるような気がします。おまけWebチームのtazuさんがGitHubで上のAwesomeタグを表示する方法を見つけました↓。2017年2月22日StackOverflowとGitHubでの人気をそれぞれ縦横に配置しています。JavaScript以外にもRubyやPythonやC#やObjective-Cがトップ群にいます。Conferenceでの@matzの基調講演でも取り上げられていたそうです。http://opalrb.org/より玉虫色のルビーがシンボルマークになっていて、このソフトウェアの性質と位置づけをうまく表していると思います。record既に日本語でも報じられていますのでご存じの方も多いと思います。最近のNASAの発表は「今夜重大な発表があります」という前フリがつくことがやけに多いのですが、予算削減と戦うための手段なのかなと思ってしまいました。DemoBPS社内でもたちまち流行しました。手書きのネコ画像がみるみるグロい謎のリアル画像に変化しました。WebチームのebiさんがふとW3CのCSSバリデータにwww.w3c.orgをかけてみたところ、以下の結果が得られました。自サイトの正規化が間に合わないほどCSSの仕様改定が激しいという一面もありそうですね。文句を言うのは簡単ですが、これほどの規模の仕様のメンテがどれだけハードかを想像してしまいます。W3Cのバリデータサービスを激しく使うと数時間ほど外部IPアドレス単位でアクセスできなくなることがあるので、みなさんもそおっと使ってあげてください。面白半分のアクセスを増やさないため、この項ではあえてW3Cとバリデータにリンクを張っていません。週刊Railsウォッチ(20160913)MySQLの脆弱性ほか今週の主なニュースソースソースの表記されていない項目は独自ルート(TwitterやRSSなど)です。コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。チュートリアル第2版の監修および半分程度を翻訳、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れて更新翻訳中。enno.jpを運営。実は最近Go言語が好きで、Goで書かれたRubyライクなGoby言語のメンテナーでもある。仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。Storageを使ってはいけない(翻訳)#Tags#会社紹介#自社サービス#勉強会#Rails#PHP#デザイン#実績#週刊RailsウオッチCONTACTお気軽にご相談ください。(翻訳)CONTACTTechRachoでは、パートナーシップをご検討いただける方からのご連絡をお待ちしております。お気軽にご意見・ご相談ください。