週刊Railsウォッチ(20190910-2/2後編)buildersconと「20年後のソフトウェアテスト」、はてなブックマークがScalaに移行、「詳解PostgreSQL」、Go 1.13ほか

こんにちは、hachi8833です。

  • 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ
  • 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄
  • 毎月第一木曜日に「公開つっつき会」を開催しています: お気軽にご応募ください

今回も第14回公開つっつき会を元にお送りします。ご参加いただいた皆さまありがとうございます!

DB

そーだいさんの「詳解 PostgreSQL」連載

『失敗から学ぶRDBの正しい歩き方』でお馴染みのそーだいさんによるPostgreSQL連載記事です。


つっつきボイス:「PostgreSQLの10や11にも対応していて内容が新しいのがいいなと思って」「Web+DB Press誌の連載なのね😳」

「今回おいでの皆さまの中でPostgreSQLが好きという人は?」「おぉ少ない😅」「PostgreSQL、使ったことまだないですね☺️」「自分はぽすぐれ好きですが今日は少数派…: ちなみにRDBMSは何をお使いですか?」「MySQLです」「NoSQL系とか」「AWSのRDSとかAuroraですがMySQL系ということで😆」「経理系ですがPostgreSQLはちょっとだけ使ったりしてます💰」

参考: Amazon RDS(マネージドリレーショナルデータベース)| AWS
参考: Amazon Aurora(高性能マネージドリレーショナルデータベース)| AWS

「PostgreSQLはデータベースの機能が豊富で、ある程度以上大きく育ったビジネスアプリで性能限界に突き当たったときにデータベースに頑張らせるという道が残されているのがいいところだと思っています😋」「ふむふむ」「MySQLももちろん使っていますけど、MySQLを速くしようとするとテーブル構成とかもMySQL用に作らないといけなくなったりするのが結構大変ですね😅: MySQLに最適化するとすごく速くなるんですが、その分テーブル定義の正規化が崩れたりということもあるので、自分はぽすぐれが好き❤️」「😆」

参考: サイボウズ版 MySQL パフォーマンスチューニングとその結果 - Cybozu Inside Out | サイボウズエンジニアのブログ

「あと、他のRDBMSだと通らないような普通じゃないシンタックスのSQL文がMySQLだと通ったりするんですよ: SELECTしてないカラムでGROUP BYできるとか色々謎が多い🤪」「😲」

参考: MySQLでSELECT句とGROUP BYの非集約カラムが揃ってなくても通るケース - Qiita

クラウド/コンテナ/インフラ/Linux/Serverless

はてなブックマークがScalaに移行


つっつきボイス:「おぉ、はてブがいつの間にかScalaに移行してたんですね🎉」「自分も気づいてなかったんですが、2015年にScalaに移行する宣言して↓完了していたそうです」「はてブもちょっと前にHTTPS対応完了ましたし、頑張ってますよね☺️」「Perlもちょっぴり残ってはいるみたいです」「『ここ数年の大きな課題は、ちょっと改善のために手を加えるだけでも、けっこうな開発工数がかかってしまうことでした』とインタビューで答えているのが切実でした」

参考: Scala - Wikipedia

「記事ははてなの中の人たちへのインタビュー形式になっていて、悔しいけどいつもながらいい記事です😂」「エンジニアHubは予算も付けてかなり頑張ってる感じで、いい記事多いですよね👍」「インタビュー相手のセレクションも毎回うまいなと思いますし😍」

その他クラウド


つっつきボイス:「自分たちはAWS派ですけど、お集まりの皆さんはAWSとかGCPとかAzureとかお使いですか?」「AWSを使い始めたところです☺️」「AWSはこの間みたいな障害が起きるとつらいですけど😭」「自分たちはたまたまAZが別だったので無事でした😋」「おぉそれは運がいい!」

「ああいう障害のときって情報が小出しにされがちですよね😔」「同意ですね、たしかに間違ったことは言ってないんですけど、もう少し情報出してもらえればって思いましたし😢」「かといって自社でホスティングとか今更しませんし🤣」「🤣」

参考: Amazon Elastic Block Store (Amazon EBS) - Amazon Elastic Compute Cloud

「皆さんの中で、自社内にサーバーがある方っています?」「おぉいませんね!」「BPSは今も社内にサーバーラックがありますけど、新しく買う意義はもうないでしょうね😆」「電気代もかかりますし😆」


「ちなみにGCPの中ではBigQueryはよくできていて好きですね❤️」「おぉ😀」「BigQueryはAWSに同等のサービスがありませんし」

参考: BigQuery - アナリティクス データ ウェアハウス  |  BigQuery  |  Google Cloud

つっつき後に見つけたツィートです↓。

JavaScript

スライド: TypeScriptの流儀


つっつきボイス:「TypeScriptだ☺️」「お集まりの皆さんはTypeScriptって書きます?」「やってみたいんですけどなかなか携わる機会がなくて😆」「自分も少し読んでみた程度でまだ書くところまでは😅」「規模がささやかならTypeScriptまでしなくても素のJSでいいかなという気もするので悩ましいですね」

ついでにTypeScript 3.6がリリースされたそうです。

CSS/HTML/フロントエンド/テスト

20年後のソフトウェアのテスト

これもbuildersconのスライドです。


builderscon.ioより

Buildersconは最後の方しか見られませんでした😭。きりがありませんので、以下のスライドまとめで。

参考: builderscon tokyo 2018 資料まとめ - Qiita


つっつきボイス:「今年のbuildersconは東京電機大学(東京千住キャンパス)でしたか」「人生初の北千住でした😆」「電機大は神田キャンパスの方に通ってました🎓」「すごくピカピカのキャンパスで駅まで行かないとタバコ吸えなくて😇」「今どきはしょうがない☺️」「ピカピカの北千住ってまだイメージできないかも😆」「随分変わってるらしいですよ😋」

参考: 東京電機大学 - Wikipedia

「このセッションも大人気で部屋に入れずでした😭が、割と未来の話というか、今後出現するIoTデバイスをどうテストするかというテーマでした」「テクノロジーも将来になれば変わりますし☺️」

「お〜、BLE(Bluetooth Low Energy)のエミュレーター↓とかあるし」「電波干渉もエミュレーションできるとは😳」「電波干渉の再現は実は昔から行われていますね😎: ものすごく不安定な接続をテストするときとか」

「そうそう、こういう感じの特性になります↓」

参考: Bluetooth Low Energy - Wikipedia
参考: BluMoon: Bluetooth Low Energy Emulation System with Software-Implemented Controller - IEEE Conference Publication

「こういう世界だと、ソフトウェアであっても実質的にハードウェアと密結合するので、そういうものもテストしないといけなくなりますね」「こういう箱に端末を置くだけでいい感じに検証できると↓🤓」

「今の自分たちはソフトウェアのテストしかやってないから関係ありませんけど😆、下のレイヤでどういう障害が起こりうるかというのはある程度知っておかないといけなくなるでしょうね: データを扱うだけならまだしも、何かを物理的に動かすようなものだと人命に関わる可能性もありますし」「未来のテストは大変そう😅」

「自分は以前研究室でまさにこういう感じの小さいデバイスとかを扱ってたんですけど、装置によって調子の良し悪しがバラついてたりとか、フラッシュの書き込みが3回に1回は失敗するなんてことがよくありましたね😆」「😆」「ソフトウェアのせいかと思ったら実は個体差だったとか、あとボタン電池も個体差がかなり大きいんですよ🔋」「自分もいろいろ覚えあります😅」「出力されたりされなかったりとか、もうすべてを疑ってかからないと😇」(以下略)

言語・ツール

Go 1.13がリリース

1つ目に止まったのは、数値リテラル周りの変更の中に、1_000_0000b_1010_01103.1415_9265のように数値にアンダースコアを入れられるようになったことです。


つっつきボイス:「今度のGoはTSL 1.3がデフォルトとは進化してるな〜」

参考: TLS 1.3とは? TLS 1.2との違いと企業が取るべき戦略

「このリテラル記法ってRubyみたいですよね↓?」「このアンスコ記法、自分はあまり使ってないけど割と好きですね❤️」「書きながら自分を疑うときに使ったり😆」「Ruby以外の言語にはないんでしょうか?」「他の言語でも見たことはあったと思うけどあんまりメジャーじゃないかも🤔」

Digit separators: The digits of any number literal may now be separated (grouped) using underscores, such as in 1_000_000, 0b_1010_0110, or 3.1415_9265. An underscore may appear between any two digits or the literal prefix and the first digit.
Changes to the languageより

後で調べると、少なくともPythonにはありました↓。

参考: PEP 515 -- Underscores in Numeric Literals | Python.org

LinkedInが「Isolation Forests」アルゴリズムでやんちゃを検出・防止(Morning Cup Of Codingより)


同記事より


つっつきボイス:「LinkedInがやってるanti abuseの記事です: Isolation Forestというアルゴリズムを初めて見たんですけど、新しすぎて日本語の用語はなさそうでした」「たぶん日本語はないでしょうね😆」「自分も英ママの方が助かります😆」「元論文が2008年だから他にも実装があるかも🤔」「アルゴリズムを理解して適切に使い分けるのが大変」

同社が公開したライブラリはScala言語で書かれています。outlier detectionが「外れ値検出」なんですね。

参考: 異常検知 - Wikipedia

以下は記事とは別に見つけたIsolation Forestのスライドです。

後で調べると、昨年軽く取り上げた異常検知ナイトでもIsolation Forestが言及されていました↓。

参考: 異常検知ナイトで講演してきました | Preferred Research

「そういえば、最近だと機械学習方面でアンサンブル学習っていうやり方があるらしくて、1個のモデルだけで学習させるんじゃなくて複数のモデルをいいとこ取り的に組み合わせるんだとか」「複数のモデル全部に同じデータを学習させて、いいスコアが出たモデルを適宜選択するみたいなヤツですね☺️」「データセットのでかさにもよるでしょうけど、計算資源はもう豊富にあるという前提で😆」

参考: 機械学習上級者は皆使ってる?!アンサンブル学習の仕組みと3つの種類について解説します

その他言語


つっつきボイス:「お、これもどこかで話題になってたような?」「単品のツイートで見かけたので文脈がわかってませんが😅、Rubyは『楽に書けるように言語側が複雑になっている』みたいなことをMatzが以前言っていたのを思い出したので」「そうそう、Rubyは人間がシンプルに書ける分、内部のパーサーはすごいことになってますし」

その他

macOSの公証でてんてこ舞い


つっつきボイス:「社内アプリチームがこのニュースでざわついていたので」「最近のMacもどんどん不便になりつつある感じしますね…自分が使ってるプログラムがどんどん動かなくなりそう😇」「マカー受難😆」「大学みたいなアカデミックなところが出している古いMacアプリが動かなくなりそうで心配です😭」

iOS 13における必須対応について

BoseのARサングラス

参考: Boseが「聴くARメガネ」発表。音の拡張現実プラットフォームを推進 - Engadget 日本版


つっつきボイス:「このBoseのARメガネをこの夏偶然体験する機会があって、米国の親戚がドヤ顔でちょっと使わせてくれたんですが、なかなか強烈な体験でした😍」「へぇ〜?」「耳の穴には何も突っ込んでないのに、ほぼ自分にしか音楽が聞こえなくて、サウンドも高品質で♬、何やら他にもセンサー内蔵らしくて」「骨伝導とか?」「骨伝導は使ってないようでした」「そういえばOculus Quest↓なんかも自分にしか聞こえないような超指向性のサウンドだったりするらしいですね」

参考: Oculus Go、Oculus Quest、Oculus Rift S、3機種を比較!どれを買うべき? - Rentio PRESS[レンティオプレス]

「BoseのAR、かなり欲しくなっちゃったんですけど2〜3万ぐらいするらしくて😅」「HoloLensだと何十万もするぐらいだから、それなら全然安いと思いますし😋」

参考: Microsoft HoloLens 2発表、3500ドル。視野角から画素密度、視線+ハンドトラッキングまで徹底改良 #MWC19 - Engadget 日本版

Railsガイドのロゴがリニューアル

こちらはつっつきの後の情報です。

番外

小さな工夫

参考: 画像ギャラリー | 横断歩道「斜め」にしたら事故減少か 横断中の歩行者が見つけやすくなる納得の理屈 | 乗りものニュース

つっつきボイス:「上のリンク先の図が見やすいと思います」「視界を広く取らなくても歩行者が見えると」「こういう道路交通関連の分野は学問として昔からあるから、そういう研究があったりしそう」「記事にも『交通工学の専門家』ってありますし」「渋滞学を思い出しました」「こういう工夫で事故を減らせるならいいですね😋」

参考: 交通工学 - Wikipedia
参考: 渋滞学の観点から、スムーズな社会の動きを生み出す〜西成活裕・東京大学教授 | Top Researchers


後編は以上です。

バックナンバー(2019年度第3四半期)

週刊Railsウォッチ(20190909-1/2前編)Rails 6のキャッシュバージョニング、Rubyのキーワード引数周りが変わる、Faker 2がリリースほか

今週の主なニュースソース

ソースの表記されていない項目は独自ルート(TwitterやはてブやRSSなど)です。

Morning Cup Of Coding

morningcupofcoding_banner_captured

デザインも頼めるシステム開発会社をお探しならBPS株式会社までどうぞ 開発エンジニア積極採用中です! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

hachi8833

Twitter: @hachi8833、GitHub: @hachi8833 コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。 これまでにRuby on Rails チュートリアル第2版の監修および半分程度を翻訳、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れて更新翻訳中。 かと思うと、正規表現の粋を尽くした日本語エラーチェックサービス enno.jpを運営。 実は最近Go言語が好きで、Goで書かれたRubyライクなGoby言語のメンテナーでもある。 仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。

hachi8833の書いた記事

夏のTechRachoフェア2019

週刊Railsウォッチ

インフラ

ActiveSupport探訪シリーズ