Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails関連

週刊Railsウォッチ(20200512後編)RubyのPStoreライブラリ、Lambda StoreのサーバーレスRedisは有能、Amazon Linux 2のライブパッチほか

こんにちは、hachi8833です。何だか秒読みが始まってますね⏱。ここでプルリク数見えます。

ちなみにコミット数は既に3,424件なんですね😳。

参考: Rails Contributors - #5 Ryuta Kamizono - All time

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

今回のつっつき会は、試験的にZoomで外部ゲストをお迎えして小規模に開催しました。ご参加ありがとうございました!🙇

Ruby

git_curate: gitのブランチ削除支援ツール(Ruby Weeklyより)


同リポジトリより


つっつきボイス:「Rubyで書かれてたのでここに置いてみました」「見たまんまのとおり、ブランチを確認しながら削除できるツール」「upstreamのブランチも消してくれるならよさそう😋」

RubyのPStoreを実用的に使う(Ruby Weeklyより)


つっつきボイス:「PStoreって何のライブラリだろうと思って」「へ〜!PStoreってMarshalのラッパーなんだ😳」「しかもトランザクショナルにやれる: まあどうせファイルに格納するんだからファイルロックを使ってるんでしょうけど😆」「こんなのがあるとは😳」

参考: class PStore (Ruby 2.7.0 リファレンスマニュアル)

# docs.ruby-lang.orgより
require 'pstore'
db = PStore.new("/tmp/foo")
db.transaction do
  p db.roots       # => []
  ary = db["root"] = [1,2,3,4]
  ary[0] = [1,1.5]
end

db.transaction do
  p db["root"]     # => [[1, 1.5], 2, 3, 4]
end

「PStoreはRubyに標準であるのがいいですね❤️」「これがあればSQLite3要らなかったりして😆」「PStoreっていつからあるんでしょう?」「2006年のるびまに載ってる↓ということは、少なくともそのときからあったのかな」「今のRubyなら間違いなく使える😋」「これはいい👍」

参考: 標準添付ライブラリ紹介 【第 9 回】 PStore

「Marshalを生で使うより便利という感じでしょうか?」「Marshalと違ってfetchとかdeleteとかpathみたいなメソッドがあるから、一種のハッシュ型データベースとして使えるんでしょうね😋: 保存先がMarshalというだけで」「あ〜なるほど!」

「こういうライブラリの存在を知っておくと便利なことがあるんですよ😂」「というと?」「ライブラリの追加が禁止されている環境で縛りプレイ的にコードを書かないといけない、なんてことがたまにあったりしますし😇」「😆」「ライブラリの追加禁止とまでいかなくても、gemを追加するとbundlerを動かしたりしないといけなくなってすごく面倒になるなんてこともあります😭」「わかります😭」「そういう環境だとRuby本体だけでやらないといけなくなりますし☺️」

「PStoreいいな〜、よし覚えとこう😍」「もっと評価されるべき」「まあ業務ではそんなに使わないだろうけど作り捨てのスクリプトにはいいかな😋」「ところでPって何なんでしょう?😆」「わがんね😆」「記事のタイトルにあるPracticalだったりして?🤔」


Marshalのlが1個なのか2個なのか毎回忘れそうになります😅。Rubyのは1個ですね(整列する、整理する)。2個のMarshallだと人名地名になります。

悪質なRuby gemを探知する(Ruby Weeklyより)


つっつきボイス:「今度はマリシャスなgem👺」「gem名のアンスコをハイフンに変えてて、かつ悪いコードを飲み込んでるヤツをスキャンしたら結構出てきたそうです😱」「あ〜スクワッティングあるある😆(ウォッチ20200226)」「まあどんな言語にもありますし、オープンソースで自由にアップロードできる以上どうしようもないでしょうね😭」

その他Ruby

つっつきボイス:「Doorkeeperというgemで脆弱性が見つかったそうです」「これは認証用だったかな?」「OAuth2か」「Doorkeeperは使ったことはありませんが、こういうときのためにgemになってるんだから使ってる人はバージョン上げるべきですね☺️」


DB

Rails+PostgreSQLでフルテキスト検索を高速に実行する(Ruby Weeklyより)


つっつきボイス:「貼ってみてから割と普通の記事だったかなと思いつつ😅」「前方一致とか後方一致なら一応インデックス効かせられますけどね☺️」

「フルテキストだと単語ごとに割ってインデックス化するのかな?」「そこはフルテキストがLIKEみたいに文字列の部分一致も含めるバイナリ的な検索なのか、構文解析を伴う自然言語検索なのかによりますけど、この記事ではnatural language searchってあるから後者なんでしょうね」「あそうか😅」「前者と後者はアプローチが別なので☺️」「こんなふうに↓言語を指定してtsvectorも使っているので、自然言語検索でしょう😆」「てっきりLIKEの話なのかなと😆」

-- 同記事より
SELECT
  id,
  title,
  ts_rank(
    to_tsvector('english', title) || to_tsvector('english', description),
    to_tsquery('english', 'ruby & rails')
  ) AS rank
FROM jobs
WHERE
  to_tsvector('english', title) || to_tsvector('english', description) @@
  to_tsquery('english', 'ruby & rails')
ORDER BY rank DESC
LIMIT 3

参考: 8.11. テキスト検索に関する型

「まあ英語だったらこれでいい😆」「楽でいいですね😆、って比較の問題ですけど」「まあ日本語にもそれ用のエンジンありますし」「お〜こんなぽすぐれ拡張があるんですね↓😳」「mecab使ってるのか」「使ったことないからどのぐらい強いかは知りません😆」

参考: tsja: 日本語テキスト全文検索 (PostgreSQL)
参考: MeCab: Yet Another Part-of-Speech and Morphological Analyzer

「これってSennaみたいなヤツなのかしら😆」「せな?」「これですね↓」「あ〜こんなのもあるのか😳」「こっちはmecabプラスn-gramでやってますね」「アイルトン・セナから命名ですって😆」「Senna流行りましたよね😋」「そうですね😋」「知らなかった〜😅」「MySQLでこれをよくビルドしてました☺️」

参考: Senna - Wikipedia

「元記事タイトルのfull text searchは、natural language searchって書いて欲しい😆」「ですよね😆、自分の知ってるfull text searchと違う気がしますし」「この辺は検索専門じゃないのでわかりませんけど、もしかすると大きなくくりがfull text searchで、その中に自然言語検索があったりLIKEのワイルドカード検索があったり正規表現検索があったりするのかも?🤔」

Redis 6.0がリリース(StatusCode Weeklyより)

早くも6.0.1が出ています。

見出しより:

  • クライアント側キャッシュの設計が見直された
  • レプリケーション用RDBファイルが不要になったら削除するモードをサポート
  • ACL GENPASSがHMACベースのSHA256で再実装された
  • レプリケーションプロトコルpsync2が改善された
  • Redisコマンドのタイムアウトが改善された
  • 新コマンドの追加

つっつきボイス:「Redis 6、前から出すとか言ってましたね☺️」

「しょうもないんですけどGAって何の略でしたっけ?」「何だったかな〜?🤔」「これ見るとGeneral Availabilityですって」「あ〜そうだった!」「マイクロソフトがGAって呼んでた気がします」「Zimbraもそうだったかも」「図を見るとRTM->GA->Productionリリース(Gold)ってなってるし」「RTMになったら使っていいんでしょうね?」「RTMならリリースされてますから☺️」「たぶんこの呼称を全部使うことってない気がする😆」「きっとそう😆」

参考: Software release life cycle - Wikipedia

「まあAWSのRedis(ElastiCache)はライセンス的にどうよって思いますけど😆」「そういえばライセンスで揉めてましたね」「自分でRedisサーバー立てて使う分にはいいんですけど😆」

参考: Amazon ElastiCache(インメモリキャッシングシステム)| AWS
参考: Redis、MongoDB、Kafkaらが相次いで商用サービスを制限するライセンス変更。AWSなどクラウドベンダによる「オープンソースのいいとこ取り」に反発 - Publickey

Lambda Storeはスゴい

「Redisといえば、Redisをサーバーレスで使えるサービスがつい最近出てましたよね: そうそうLambda Store↓」「ありゃこんなのが😳」「俺たちが欲しかったものはこれでは?という気持ちになりますね😋」「こっちの方がスゴかったのか😅」

「Lambda Storeのどこがいいかというと、マネージドなRedisで、かつ課金がリクエストベースというところ❤️」「おぉ〜」「ほら、ElastiCacheってインスタンス課金じゃないですか」「あれ結構お金かかりますよね💰」「Redisが欲しいだけなのに、EC2インスタンスと同じぐらいかかるのはなぁ〜って思いますし」「ですよね😆」「その点Lambda Storeは従量課金😋」「これはたしかに俺たちの欲しかったもの!」

「軽いWebサービスを作るだけなのにElastiCache使うのってどうよって思ってましたし😆」「そんなお金があったら他のことに使いたいし😆」「たかがsmallのインスタンス2台の構成で、わざわざElastiCache立てるのかと😆」「とってもそう思います😆」「AWSのDynamoDBがすっごく使いにくいので、AWSでまともなKVSを使いたいときにRedisが使えたらいいのにって思ってました😆」

「とにかくLambda Storeはいいですね👍」「なるほど〜」「あとはこのサービスがいつまで続いてくれるかかな😆」「😆」「仮にこのサービスが終了したら、Redisの引っ越しというやりたくない作業が発生しますし😅」「Redisの引っ越しはやりたくないですね〜😅: VPCの中に移行するときにやりましたけど」「もうダウンタイムを許容してもらうしかない」「自分のときは6時間止めましたよ😭」「それはしんどそう😆」

「Redisの移行だと、いわゆるbinlogを流していくみたいなやり方はできないんでしたっけ?」「あのときはElastiCacheからElastiCacheへの移行だったんですけど、それ用のツールとかなかったんじゃないかな...」「とにかくRedisは人間が運用するものじゃない🤣」「Redisの運用はやりたくないっすね🤣」

「てなことを考えると、Lambda Storeが仮にシャットダウンしたときにはどうしたらいいのかなって😆」「ちなみにお金払えば1000接続同時とかも従量課金でやれるみたいですね」「あ、もしかするとLambda StoreってAWSのサービスじゃなくてサードパーティがやってるってことですか?」「そうそう、Lambda StoreはAWSの公式じゃないので、仮に将来この会社がなくなったときのことを一応考えちゃいますし🧐」「なるほど、会社名がLambda Storeか↓」


lambda.storeより

ドキュメント見るとLambda Storeは今はAWSでしか使えないって書いてますね」「アカウントはGoogleやGitHubも使えるみたいなのに、なぜAWS限定なんだろう?権限周りが面倒くさいから?🤔」

「今の自分はGCPおじさんなのでGCPにもLambda Store来て欲しいです😆」「たしかに😆: AWSもGCPも『ここにこの機能があればいいのに😭』っていうのがお互いにありますよね」「はい、今なくて困ってます😅」「GCPにもRDS欲しい、とかね😆」「それマジで欲しい😭」「😆」「GCPのCloud SQLはVPCの中で使えないという謎の制約があるんですよ😢」「どちらも一長一短感ある😆」

参考: Amazon RDS(マネージドリレーショナルデータベース)| AWS
参考: Cloud SQL: リレーショナル データベース サービス  |  Google Cloud

その他DB


つっつきボイス:「はてブでバズってました」「笑うしかない😆」「ORMのデフォルトがWHERE文が空でも通っちゃうという😆」「数億件のデータが消えそうになるってそれって😅」「クライテリアにNILとか空のものを渡したときにWHERE文が空になってDELETE from テーブル名になっちゃってて、このライブラリにそれに対する安全機構がなかったのね😇」「ほわっ😅」「ピュアなライブラリならありそうだけど業務で使うライブラリとしてはありえない感じ😆」「し、しびれる〜😅」

「過去にも同じワナ踏んだ人がいるって書いてますね」「こういうのはあったら絶対踏みます🤣」「🤣」「記事の冒頭に、MySQLだと--safe-updatesオプションがあるそうですね」「こういうセーフオプションはそこそこありますね☺️」「DELETEやUPDATEにWHEREが付いてないのは基本的に何かのミスでしょうし」「DELETEはトランザクショナルに戻せるけどTRUNCATEは戻せないとか、いろいろあるんですよね😅」

Gormが本番テーブルの数億件のデータを消そうとした話 - keroxpのScrapbox

gormを本番で使ってる人は全員これを有効にすべき https://godoc.org/github.com/jinzhu/gorm#DB.BlockGlobalUpdate

2020/05/07 12:40

ORM

「Go言語でORMを使うようなリッチなアプリケーションを作るのは時期尚早だったのかななんて思ったり😆」「なぜGoでやろうとしたのか😆」「Goなら静的検査もできるし、やりたいという気持ちはワカル☺️」「単にproductionで使ってた人があんまりいなかったんじゃないかなと想像しますね: Go言語はどちらかというとシンプルでマイクロなサービスのレイヤで使われてて、がっつりデータベース処理みたいなことってそんなに行われてなかったんじゃないかしら☺️」

「批判のパラグラフが『開発環境で気づけなかったのか?はい』『テストで気づけなかったのか?はい』...ってスゴい😆」「相当念のこもった記事😆」「『Gormを使ってるコードベースを凍結してGormの削除を決定した』というのも😇」「いや〜実際コードベースがでかければでかいほど怖いですよ😇: 誰かがコードレビューで見逃した瞬間に死ぬというのは💀」

「Go言語で推奨されてないリフレクションをGormで使っているというのもヤバそう」「記事にも書いてますけどORMを実現するには普通はリフレクションが必要になってくるんでどうしようもないですね🧐」「う〜む😅」

参考: リフレクション (情報工学) - Wikipedia

「ちなみにコードジェネレータを使うタイプのORMならリフレクションなしでもいいんですけど、その代わりスキーマ変更のたびにデプロイが必要になる😆」「たしかに」「JavaだとそういうタイプのORMが多くて、スキーマを変更したらORMのクラスを再生成するバッチを実行するとスキーマ情報を拾ってきてJavaのクラスファイルを生成するようになってる」「ふむふむ」「そのタイプだとコード実行時にはスキーマ情報とかが既にバイナリになっているので、動的なスキーマ変更はできない代わりに言語レベルで型検査ができますね😋」

「まあコードジェネレータベースのORMは最近流行らなくなってて、ORMといえば実行時にスキーマ情報を動的に拾ってくるものが一般的になりましたけど: ちなみにPHPだと自分が使ってたPropelとかDoctorineとかはジェネレータでやるタイプでしたね↓☺️」「なるほど〜」「ジェネレーターベースだとデプロイが必要になってORMのメリットが目減りしてしまいますし、最近は動的にスキーマ情報を拾うのが当たり前になってきましたし☺️」

参考: Propel, The Blazing Fast Open-Source PHP 5.5 ORM
参考: Doctrine: PHP Open Source Project

「たしかにデプロイは必要でしょうね」「まあ断定はしきれませんけど、実行されるSQLがセーフなものになっていればスキーマが変更されても一応動くはずだと思うんですけどね☺️: 実際RailsのActive Recordは、スキーマを変更してもスキーママイグレーションの番号さえ合っていれば一応動きますし😆」「うんうん😆」「とにかくORMには実績のあるこなれたライブラリを使いましょうということで☺️」

リモートワーク

全員オンラインで気づいた情報格差


つっつきボイス:「こちらもはてブでバズってました」「やっぱりリモートワークは全員フルリモートでやるのが楽だと思うんですよ: リモートの人と出社してる人が混じって働くと、やっぱりめちゃくちゃやりづらい😭」「あ〜」「オンラインで話す人と現地で話す人がそれぞれいるとどうしても情報格差ができてしまって、マイクの具合とかで実はオンラインの人にだけうまく聞こえてなかったりすると齟齬が生じやすいんですけど、全員オンラインなら聞こえてないときは誰にも聞こえないのですぐわかる😆」「😆」

「サイボウズの社長が言っていることもパンデミックよりずっと前から言われている話で、部分リモートはよくないという説も自分は当時から同意でしたね☺️」「うんうん」「全員フルリモートになる方がコミュニケーション上の齟齬が明らかに起きにくいのはたしか🧐」

「こういう意見をサイボウズの社長という知名度の高い人が発信してくれることで全員フルリモートが促進されそうなのがいいですね👍」「サイボウズは昔から社員が働きやすい環境づくりに取り組んでいますね😋」「これでリモート化を推進するときにサイボウズの社長を引き合いに出せる😆」

「今の職場でも、今後パンデミックが収束して通常の仕事モードに戻ったときに『自分はフルリモートにしたいです』という人が出てきたら、フルリモートメンバーだけのチームを作る方がお互いストレスもたまらなくていいかなって思いますし☺️」「ですね😋」「自分なんかはリモートでも出社してもどっちでも構わないタイプですけど、それはそれで同じタイプの人をまとめてチームを作るとかね」「なるほど」

「ちなみに自分は仕事上のコミュニケーションは、たとえ出社しててもすべてオンライン上でやるべきだと思っているので、出社してオフラインコミュニケーションする意義はそこにいる人と気持ちの上で仲良くなることぐらいしかないと思ってます🤣」「🤣」「込み入った話こそログに残したい派なので😋」


ちょうどつっつきの後でサイボウズの社長がNHKに出演していましたね❤️。

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

Amazon Linux 2にライブパッチ適用機能(Publickeyより)


つっつきボイス:「クラウドはさっきLambda Storeのイイ話が出たのでこの辺は流していただいてもOKです😆」「そうそう、Linux自体はけっこう前にカーネルにライブパッチを当てられるようになっていたんですよ」「へぇ〜😳」「それをAmazon Linux 2でもできるようにしたということでしょうか?」「ライブパッチをyumで配信できるようにしたということでしょうね☺️」「あ〜そういうことでしたか😳」

参考: 【 yum 】コマンド(基礎編)――ソフトウェア(パッケージ)をインストールする/アンインストールする:Linux基本コマンドTips(42) - @IT

「オンラインのカーネルパッチ機能自体はここ数年のLinuxには既に入っているはず」「やった覚えがなかった😅」「その辺はディストリビューションによって違っていて、ディストリビューションのコマンドでアップグレードするときにライブパッチを使うかどうかはディストリビューションに委ねられていたと思います☺️」「なるほど〜」

参考: Linux-4.0のライブパッチ機能を試してみる - Qiita

「今回のニュースはAmazon Linuxがライブパッチをメインストリームに流し始めるぞというプレビュー機能を出したということですね」「あ、プレビューですか😆」「AWSがライブパッチを実装したのでもなければ、Linuxに新たにライブパッチが実装されたのでもないと😆」

「でもライブパッチ当てるの、怖いと思いません?🤣」「怖いです〜🤣」「です〜🤣」「まあどこにパッチを当てるかにもよると思うんですけど」「カーネルのバージョンとinitrd(RAMディスク)のバージョンが合わなくなって起動しなくなるとか、一番めんどくさいあるある🤣」「ひえ〜😅」

参考: initrd - Wikipedia

「なおライブパッチという概念自体は随分前からあって、リソースをちゃんと管理できていれば本来ライブパッチ自体はそんなに怖いものではないです🧐」「ふむふむ」「やり方も確立してますし、メインフレームだと普通にやってますし☺️」

「ライブパッチで怖いのは次に再起動したときでしょうね: 何かのミスでゴミが残ったりして二度と立ち上がらなくなるとか🤣」「🤣」「今回AWSがライブパッチを始めるということは、少なくともAWS側で検証したライブパッチを当ててくれると思います☺️」「そうであって欲しいです🙏」「そりゃそうしますよ😆」

「まあライブパッチだけではカバーできない修正も今後出てくると思いますけど☺️」「ありそう😆」「CPUのレジスタをいじるような修正とかドライバのレイヤに近い部分の修正は難しいものもあるかも: まあ今のLinuxはモジュール化が進んでいるのでたいていのものはライブパッチが効くと思いますけど🧐」

WSL 2リリース間近


つっつきボイス:「WSL 2、リリースされたのかと思ったらまだだったという😆」「上の見出しに釣られました😆」

参考: Windows 10 May 2020 Updateは5月28日に一般公開か? | ソフトアンテナブログ

「ところで今回のパンデミックの件で個人的に最もありがたいのは、開発環境をノートPCから完全にデスクトップPCに移せたこと🎉」「そういえばやってましたね」「それはもうめちゃくちゃ速くなりましたよ🚀」「Windowsはそれができるからいいですね😭」「MacもProタワーあるじゃないですか😆」「いっぱいチーズが削れますヨ😆」「お餅も焼ける😆」

JavaScript

スナック「jQuery」


つっつきボイス:「文章としては名文ですね😆」「ようやる😆」「まあjQueryは古いみたいなのを書く気持ちはワカルけど、ビジネス上の判断としてはjQueryやれるエンジニアの方がReactより断然見つけやすいよって思いますし🤣」「🤣」「もちろんjQueryやれるといってもいろんなレベルの人がいますけど😆」「システムづくりで、守らないといけないものと守らなくてもいいものの違いは大事にした方がいいんじゃないかと思います☺️」

「たとえばフォーム含めて2ページぐらいしかないようなサービスサイトの構築なのに、そこでjQuery禁止してReactでやると決めちゃったりしたら、今後もそのランディングページの修正が永遠に追いかけてくるじゃないですか😆」「😆」「でもそれって意外に大事で、jQueryみたいに十分普及してエンジニアも見つけやすいフレームワークにしておけばキレイに手離れしてくれるじゃないですか😋」「平成のエンジニアでもやれるようにしておくのが大事😆」

「逆にこれから技術を勉強する人にjQueryを勧めようとは思いませんし☺️」「そうですね〜」「そういう人はどうしてもjQueryを触らないといけなくなったときに勉強すればいいと思います🧐」

CSS/HTML/フロントエンド/テスト/デザイン

well-known URI


つっつきボイス:「well-known URIという言葉を初めて見ました」「あ、200を絶対返さないwell-known URIを定義しようという話か😳」「仕様はまだ全然ドラフト段階だそうです」

.well-known/ってたしかLet's Encryptで認証かけたときに必ず作られるディレクトリですね」「へぇ〜」「HTTP通信が必ず通ることを確認できたから証明書あげます、みたいな感じの」「それってACMEのHTTPでやるときだけですか?DNSでやるときも必要ですか?」「えっとDNSではたぶん要らなかったと思います、acme-challenge送ったときだけだったかな」「over HTTPとover DNSとあるんですけど、over HTTPの場合は所定のURIに所定のファイルが存在することを要求されたりしますね🧐」「それです」

参考: チャレンジのタイプ - Let's Encrypt - フリーな SSL/TLS 証明書
参考: Let's Encrypt を支える ACME プロトコル - Block Rockin’ Codes

「なるほど、Facebookの.well-known/をChrome DevToolsで見てみるとステータスコード301でリダイレクトしてる↓: リダイレクト先はFacebookのセキュリティページ」「これにステータスコード200を返しちゃうサイトがあるから、それ以外のステータスコードを決めようぜという話なのかな🤔」

「200がいけない理由が今ひとつよくわからない😆」「仕様の意図が見えない😆」「.well-known/change-passwordって、アカウントの種類が複数あるようなサイトなんていくらでもあるんだし、この仕様でキレイにchange-passwordやれるんだろうか?🤔」「う〜ん🤔」

「こっちの記事↓で言ってるacme-challengeの方ならとてもよくワカル😆」「わかりますね😆」

参考: RFC 8307 WebSocketにおけるWell-Known URIの標準化 - ASnoKaze blog


「ところでこの記事に『日和見暗号』って言葉があるけど、これ技術用語?😆」「opportunisticを日和見と訳したんでしょうね」「へ〜、http://でも暗号化する仕組みですって😳」「『暗号化できなければ平文通信で我慢する』って😆」「我慢とは😆」「要するにフォールバックすると」「こうやって無理やり日本語を当てると元の意味がさらにわかりにくくなったりしがち😆」「何にでも訳語を当てるのは日本の伝統芸です😆」

参考: 日和見暗号化とは - Weblio辞書

言語・ツール

GitHubとVSCodeのブラウザIDE


つっつきボイス:「社内Slackでも話題になったGitHub Codespaces、これってVS OnlineがWeb IDEとしてGitHubで動くってことですよね」「あ、そういうことか😅」「だからVS Onlineと同時にリリースされたんだと思います☺️」

「ほら、GitHubは今やマイクロソフトですから😆」「そうだった!😆」「思い出した😆」「そう思えば当然の流れでしょうね☺️」「JetBrains IDEがGitHubに乗るんだったらGitHubに移行してもいいかな〜😆」「😆」

参考: ASCII.jp:マイクロソフトによる買収から1年、GitHubのユーザー数は800万人増

git-secrets: リポジトリへの鍵コミット防止


つっつきボイス:「AWSが出しているgit-secretsは割と前からあった気がしますね」「だったと思います」「自分のコードをスキャンして鍵が含まれてないかをチェックしたり、フック仕掛けておけば間違って鍵をコミットするのを防いだりできるヤツ🧐」「入れといた方がいいツール😋」

「この種のツールってWindows環境だとGit for Windowsでちゃんとフックが動くのかなって気になりますね😆」「😆」「しかもJetBrains IDEからGitにコミットするのがうまくいかなかったりするとWSL 2のシェルでgitコマンドを使ったりとか試行錯誤することが多くて、つい面倒になっちゃう😆」「😆」

「やはり純粋にLinux環境で開発するのがいいのかなって思ったり」「Macに戻ったらいいのでは?😆」「いや〜今からだと面倒ですし、Macで4Kモニター2台を60Hzで接続するのってきつくないですか?😆」「まあそれは😅」「Macbook Proでも無理だからチーズ削れるMacにするぐらいしかなさそう😆」

その他

病歴を自動通知


つっつきボイス:「あぁ、こういう病歴の自動通知って人によってはかなり大事なんですよね」「ですね」「たとえば何万人にひとりみたいなレアな病気を持っている人だと、普通の人なら大丈夫な薬でもアレルギー反応とかを引き起こして危険なことになるんですけど、そういう人が突然倒れたりするとその情報を知りようがなくなる可能性があるんですよ」「たしかに!」「そういう情報はこういうところに入れるべきだと思います🚑」

「もちろん超デリケートな個人情報の塊なので、誰でもアクセスできるようにする必要はまったくありませんし」「この情報をAppleが握るということ?」「それを含めた問題提起ということでしょうね☺️」


「そういえば、空港でスーツケースのロックに使う、税関の職員しか開けられないロックがあるじゃないですか」「そんなのがあるんですか?😳」「これこれ、TSAロック↓: 今どき海外旅行用に売ってるスーツケースはこれですよ」「へぇ〜😳」「税関しか開けられないという前提になってるヤツ😆」「最近海外旅行してなくて知らなかった😭」

参考: TSAロック - Wikipedia

「TSAロックなら職員が開けることも、その後またロックすることもできますし、TSAロックが使われていない場合は職員が鍵をぶっ壊して開ける権限も持ってるんですよ」「よくある話ですよね😆」「だからぶっ壊されないためにTSAロック付きのスーツケースを買うわけです💵」

「で、さっきの病歴通知は発想としてはこのTSAロックに似ていて、救急スタッフだけが読める鍵を用意するとかそういう感じになるんでしょうね」「誰でも読めるのはちょっと😅」「本来は国がやることなのかなぁ🤔」「国を信用できるかどうかですけど😆」

参考: 【注意】スーツケースなどに使われる「TSAロック」のマスターキー情報が流出 誰でも“合鍵”作成可能な状態に - ねとらぼ -- 2017年の記事


「もしかするとAppleは次に保険業を始めたりして🤣」「ああっ😆」「メディカル情報を持ってたらそういう発想になるかも😆」

「最近の自動車保険は、指定のドライブレコーダーを取り付けさせて、安全運転していると保険料が下がるなんてこともやってますし」「え〜そんなのも!😳」「リスクが高いものには保険料を上げて、リスクの低いものは保険料を下げるのが保険なんですけど、もしかすると本来の保険の意味から外れてるんじゃないかなと思うことはありますね☺️」「まあたしかに」「でも一般の人は『自分は安全運転してるんだから安くしてくれ』って思いますし」「ほんとだ、ドライブレコーダー特約の保険って結構あるんですね↓」「試験運用としては割と前からありますし、タクシーなんかは昔からやってますね🧐」「ふ〜む」

参考: 自動車保険の「ドライブレコーダー特約」はどんな特約? - 自動車保険一括見積もり

「今後それと似たようなトラッキングが医療保険でも起きたらちょっとアレかなと思いました☺️」「紙一重😅」「約款でそれを明示してその分安くするというのはありそうですけど: イヤなら他に乗り換えると」「なるほどね〜」

最近の電子工作


つっつきボイス:「最近のはんだ付け事情がちょっと新鮮だったので」「まあ今はキットがいろいろありますし😋」「ロジックボードのパターンを自分で起こすとかまずなさそう😆」「エッチング液に漬けたりとか」「最近なら中国で全部やってくれますヨ😆」

「高校生の頃に自分で基板作ったときは、エッチングの廃液(有害)の処理がものすごく面倒でした😅」「たしかに面倒😆」「自宅で処理できなくて、基板作ってる工場を電話帳で見つけて処理してもらったりとか😭」

「『基板を収めるケースが高い』、これホントそう」「ケースとスイッチとつまみが高いです💰」「今なら3Dプリンタでやると安いですよ〜😋」「ある程度の量を作るなら3Dプリンタを買う方が安いですし」(以下家庭用3Dプリンタ談義が延々)

番外

目からうろこ


後編は以上です。

バックナンバー(2020年度第2四半期)

週刊Railsウォッチ(20200511前編)Rails 6.0.3リリース、rails newに–masterオプションが追加、system specとfeature specの違いほか

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

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

Ruby Weekly

Hacklines

Hacklines

StatusCode Weekly

statuscode_weekly_banner

Publickey

publickey_banner_captured


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。