- 開発
週刊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もちょっぴり残ってはいるみたいです」「『ここ数年の大きな課題は、ちょっと改善のために手を加えるだけでも、けっこうな開発工数がかかってしまうことでした』とインタビューで答えているのが切実でした」
「記事ははてなの中の人たちへのインタビュー形式になっていて、悔しいけどいつもながらいい記事です😂」「エンジニアHubは予算も付けてかなり頑張ってる感じで、いい記事多いですよね👍」「インタビュー相手のセレクションも毎回うまいなと思いますし😍」
⚓その他クラウド
ITエンジニア界隈、今までAWSしか使っていなかった人達がGCPも使い始めたので、理由を聴いたら、マルチクラウド化して耐障害性を上げたい、GCPはMLOpsに向いているなどと様々な理由が挙げられたんだけど、全員の意見をまとめると、AWSは遊び飽きたのでGCPでも遊んでみたいのが一番の理由だった
— しんのもの@ボリビア (@nepinepimate3) September 3, 2019
つっつきボイス:「自分たちは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
つっつき後に見つけたツィートです↓。
Learn how your organization can accelerate time-to-insight and unlock innovation with #Google Cloud. Discover how top enterprises are using #BigQuery to transform their business operations and improve customer experiences. pic.twitter.com/AAz8xDKuGK
— Daniel Leite (@_DanielLeite) September 9, 2019
⚓JavaScript
⚓スライド: TypeScriptの流儀
つっつきボイス:「TypeScriptだ☺️」「お集まりの皆さんはTypeScriptって書きます?」「やってみたいんですけどなかなか携わる機会がなくて😆」「自分も少し読んでみた程度でまだ書くところまでは😅」「規模がささやかならTypeScriptまでしなくても素のJSでいいかなという気もするので悩ましいですね」
ついでにTypeScript 3.6がリリースされたそうです。
⚓CSS/HTML/フロントエンド/テスト
⚓20年後のソフトウェアのテスト
これもbuildersconのスライドです。
- イベント: builderscon tokyo 2019
この後の「20年後のソフトウェアテストの話をしよう」の発表資料をSpeakerdeckに上げました。14:10@100周年ホールBです。 #builderscon #bc100bhttps://t.co/dj4ObHQnDK
— Tsubasa Yumura 湯村 翼 (@yumu19) August 31, 2019
Buildersconは最後の方しか見られませんでした😭。きりがありませんので、以下のスライドまとめで。
参考: builderscon tokyo 2018 資料まとめ - Qiita
つっつきボイス:「今年のbuildersconは東京電機大学(東京千住キャンパス)でしたか」「人生初の北千住でした😆」「電機大は神田キャンパスの方に通ってました🎓」「すごくピカピカのキャンパスで駅まで行かないとタバコ吸えなくて😇」「今どきはしょうがない☺️」「ピカピカの北千住ってまだイメージできないかも😆」「随分変わってるらしいですよ😋」
「このセッションも大人気で部屋に入れずでした😭が、割と未来の話というか、今後出現する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_000
や0b_1010_0110
や3.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
, or3.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つの種類について解説します
⚓その他言語
言語の複雑さと実装の複雑さは区別しよう。言語の複雑さは認知を基礎に比較しよう。
— Yukihiro Matsumoto (@yukihiro_matz) September 3, 2019
つっつきボイス:「お、これもどこかで話題になってたような?」「単品のツイートで見かけたので文脈がわかってませんが😅、Rubyは『楽に書けるように言語側が複雑になっている』みたいなことをMatzが以前言っていたのを思い出したので」「そうそう、Rubyは人間がシンプルに書ける分、内部のパーサーはすごいことになってますし」
⚓その他
⚓macOSの公証でてんてこ舞い
つっつきボイス:「社内アプリチームがこのニュースでざわついていたので」「最近のMacもどんどん不便になりつつある感じしますね...自分が使ってるプログラムがどんどん動かなくなりそう😇」「マカー受難😆」「大学みたいなアカデミックなところが出している古いMacアプリが動かなくなりそうで心配です😭」
⚓BoseのARサングラス
参考: Boseが「聴くARメガネ」発表。音の拡張現実プラットフォームを推進 - Engadget 日本版
つっつきボイス:「このBoseのARメガネをこの夏偶然体験する機会があって、米国の親戚がドヤ顔でちょっと使わせてくれたんですが、なかなか強烈な体験でした😍」「へぇ〜?」「耳の穴には何も突っ込んでないのに、ほぼ自分にしか音楽が聞こえなくて、サウンドも高品質で♬、何やら他にもセンサー内蔵らしくて」「骨伝導とか?」「骨伝導は使ってないようでした」「そういえばOculus Quest↓なんかも自分にしか聞こえないような超指向性のサウンドだったりするらしいですね」
- サイト: Oculus Quest
参考: Oculus Go、Oculus Quest、Oculus Rift S、3機種を比較!どれを買うべき? - Rentio PRESS[レンティオプレス]
「BoseのAR、かなり欲しくなっちゃったんですけど2〜3万ぐらいするらしくて😅」「HoloLensだと何十万もするぐらいだから、それなら全然安いと思いますし😋」
参考: Microsoft HoloLens 2発表、3500ドル。視野角から画素密度、視線+ハンドトラッキングまで徹底改良 #MWC19 - Engadget 日本版
⚓Railsガイドのロゴがリニューアル
こちらはつっつきの後の情報です。
そうそう!Railsガイド(@RailsGuidesJP )のロゴが可愛くなったの🥺✨
👇記事書いた🙋♀️💖https://t.co/PJw3gQA3Jp pic.twitter.com/vIBNDxX04N
— Yuppy 🔛 Rails💎 (@Yuppyhappytoyou) September 9, 2019
⚓番外
⚓小さな工夫
なるほど。だった12°で変わるものなんだな。 / 他56件のコメント https://t.co/QVhwGJYXhO “横断歩道「斜め」にしたら事故減少か 横断中の歩行者が見つけやすくなる納得の理屈 | 乗りものニュース” (187 users) https://t.co/CvEDJJ4WRo
— あの日見たVim pluginの名前を僕達はまだ知らない。 (@tkmkg8m) September 4, 2019
参考: 画像ギャラリー | 横断歩道「斜め」にしたら事故減少か 横断中の歩行者が見つけやすくなる納得の理屈 | 乗りものニュース
つっつきボイス:「上のリンク先の図が見やすいと思います」「視界を広く取らなくても歩行者が見えると」「こういう道路交通関連の分野は学問として昔からあるから、そういう研究があったりしそう」「記事にも『交通工学の専門家』ってありますし」「渋滞学を思い出しました」「こういう工夫で事故を減らせるならいいですね😋」
参考: 交通工学 - Wikipedia
参考: 渋滞学の観点から、スムーズな社会の動きを生み出す〜西成活裕・東京大学教授 | Top Researchers
後編は以上です。
バックナンバー(2019年度第3四半期)
週刊Railsウォッチ(20190909-1/2前編)Rails 6のキャッシュバージョニング、Rubyのキーワード引数周りが変わる、Faker 2がリリースほか
- 20190902 Ruby 2.6.4セキュリティ修正リリース、スライド「All About Ruby in 2019」、Shrine gem 3.0に入る新機能ほか
- 20190826 6-0-stableの更新を見てみる、『Morning Cup of Coding』ニュースレター、Rails TutorialがRails 6対応に動き出すほか
- 20190821-2/2後編 11のgemにバックドア、ruby-jp Slackがとてもアツい、Fullstaq Rubyでチューンアップ、HTTPサービス監視chaoほか
- 20190819-1/2前編 祝: Rails 6がついにリリース、RailsガイドもRails 6に対応、Arelはpublicだったかほか
- 20190806-2/2後編 RSpec CopのLeakyConstantDeclaration、serveoでゼロコンフィグ公開、RuboCopのPerformance/RegexpMatch改修ほか
- 20190805-1/2前編 Rails 6のActive Recordは速くなった、Windows WSL2+VSCodeでのRails開発、Martin Fowler記事ほか
- 20190730-2/2後編 Docker 19.03の新機能に注目、ngrokはスゴい、redis-namespaceほか
- 20190729-1/2前編 Rails 6のリリースは近そう?、Evil MartiansのRails+Docker記事、Railsパフォーマンス測定ほか
- 20190723-2/2後編 Rails 6 rc2がリリース、「MySQLパフォーマンスチューニングTips」が超便利、Aurora Serverlessほか
- 20190722-1/2前編 Rails 6エラー画面の改良点、Dateを四捨五入できるtime_calc、Rackミドルウェアのデザインパターンほか
- 20190717-2/2後編 NFSのよさとは、Linuxカーネル5.2リリース、Puppeteerでメモリリーク検出ほか
- 20190709-2/2後編 strong_password v0.0.7がハイジャックされていた、TerraformとCloudFormation、CSSの設計ミスリストほか
- 20190708-1/2前編 ActiveRecord::FixtureSetがめちゃ強くなってた、MacだとRubyが遅い理由、Puma 4登場ほか
- 20190701 RMagickのメモリ使用量が劇的に改善、インスタンス変数の定義順で速度が変わる?、GitLab CIランナーをローカルで回すほか
今週の主なニュースソース
ソースの表記されていない項目は独自ルート(TwitterやはてブやRSSなど)です。