Omotesando.rb#94にオンライン参加しました!

2月1日にOmotesando.rb #94に参加しました!
【オフライン開催】Omotesando.rb #94 - connpass
都合で今回は初のオンライン参加をしました。
参加しての感想・自分で調べたことを記録しています。
間違い等ありましたらコメントいただけたら幸いです。

会場提供:MEDLEY様 Layzieさん

医療ヘルスケアの未来を作るサービスを提供。
人材プラットフォーム事業(ジョブメドレーなど)
医療プラットフォーム事業(電子カルテやオンライン診療支援システム、患者向けオンライン医療事典など)
システムの8割くらいRailsで、残りはNode、Goとか。
エンジニア募集中とのことです!

ふぁくとさん (@faktfakt)

Rails+OracleDBにおけるboolean型カラムの初期設定でハマったこと」

t/fではなくてboolean型のtrue/falseにしたいが、なかなか難しかったというお話でした。
Railsのデフォルトがt/fでOracleのデフォルトがY/Nになっているようで、
そのズレが原因のような気がするとおっしゃっていました。
私はRDBMSではPostgreSQLSQLiteしか触ったことがないため、OracleDatabase自体をあまりよく分かっていませんが、
「元々これだったのでなぜその技術が選定されたのか分からない」というお話しも出ていて、
そのへんは難しいのだなぁと感じました。

Yuji Tさん (@yujittttttt)

正式なタイトルを全文メモできませんでした…すみません。
神奈川県公立高等学校入学者選抜インターネット出願システムの不具合(メールが受信できない問題)に関するお話でした。
DKIMの設定がされていなくてDKIM認証が失敗してしまっている、とのことでした。
LT内で紹介されていた記事:出願システム不具合の原因、DKIM 未設定& DMARC 検疫か | カナガク
DKIM:送信メールの改ざんやなりすましを防ぐ技術。
出願システム不具合の原因、DKIM 未設定& DMARC 検疫か | カナガク
知らない単語もたくさん出てきましたが、メールが送信されてから受信されるまでどのような認証を通っているのかの流れがなんとなく分かった気がしました。
SPF/DKIM/DMARCとは?意味・定義 | ITトレンド用語 | ドコモビジネス | NTTコミュニケーションズ
GMailも今月から1日5000件以上メールを送信する場合は規制が入ったりする(要件を満たす必要がある)そうで、
年々メールを送ることが難しくなってきている、メールを送るのはやめた方が良い、という意見もあるとのことです。
そんな現状を全く知らなかったので、もっとITのニュースをとりこむようにしようと思いました。

ShintaniTeppeiさん (@euglena1215)

「習うより慣れる Ruby AST」


AST:Abstract Syntax Tree(抽象構文木
RubyAST:Rubyのプログラムを意味のあるかたまりごと(トークン)でツリー構造に変換したもの
ソースコードはあくまで文字列なので、文字列を解釈可能なものに変換する必要がある
Rubocop:RubyプログラムをRubyASTに変換して、あらかじめ用意しておいた違反しているツリー構造と一致しているかどうかをパターンマッチして警告を出している

RubocopはRubyのコードをASTという形に変換して解析していることを初めて知りました!
スライドにたくさんの例を示してくださったおかげで、ASTがどういうものなのかなんとなく分かった気がしました。

RubyプログラムがどんなASTになるのか、逆にASTがどんなRubyプログラムにマッチするのか確認できるツールを作成されたとのことでした!
ツール:rubocop-ast.wasm
ブログ記事:rubocop-ast.wasm を作った - カレーの恩返し

RuboCopの解析をもう少し調べてみましたが、難しかったです…。
RubyのコードをParserというgemでASTに変換して解析している、というだけ分かりました。
もう少し学習を進めてから再度学んでみたいと思いました。
RuboCop Under a Microscope - Speaker Deck

なぜASTを調べたのかとの問いに、RuboCopのカスタムルールを作りたくて、とおっしゃっていました。
カスタムルールの作り方の記事が結構あったので自分用に残しておきます。
Rubocop でカスタムルールを作る - Money Forward Developers Blog
RuboCopの新しいルールを追加する方法(Custom Copの作り方) - アジャイルSEの憂鬱
[Rails基礎] RuboCop カスタムCopのつくり方

maki O/O/さん (@makiOo1o)

「独学・業務未経験者の学習方法」


以前の自己紹介で就活されていることは知っていましたが、独学で学習されていたのは知らず驚きました!
そしてやったこと一覧が山盛りで興味深く聞かせていただきました。

質問をレベル分けする、というのは質問が苦手な私もすぐできるしやってみようと思いました。
ロジックを考える際、自分も少し紙に書いてやっている部分が少しあるのですが、
makiさんがやってらっしゃる紙プログラミングのように丁寧ではないので、
もっと深掘りすることでロジックを説明する力がつくのかな、と感じました。

今後の学習で使えるヒントがたくさんあったので、実践していきたいです!

小林悟史(noel)さん (@free_world21)

Ruby/Railsの勉強会のおかげでブルーモ証券起業した」


以前にLTをしたことがきっかけで証券会社のシステムをRailsで作ったというお話でした!
LTの資料をSpeakerDeckにあげて、そのリンクをLinkedInに載せていたところ、XのDMでお声がかかったとのことでした。
そのきっかけになったLTはこちら↓
金融機関の(システムの)作り方 - Speaker Deck

話を聞いていて初学者の私は、ただただ「すごい〜!」と驚くばかりでした。
Railsってやろうと思えば証券会社のシステムも作れるのか!なんでもできるんだな!」と思いました。 (なんでもかはわかりませんが)
Railsの勉強をしていくのがさらに楽しみになりましたし、LTをすることで自分の将来の幅が広がっていくことも聞けて良かったです!

ryosk7さん (@ryosk7)

「技術書典からバックレなくて良かった話」


技術書典15でRubyとNFTを題材にした本を出されたそうです!
スライドの「お前なにやってたん期間」に笑いました。笑
限られた10日程の期間の中でのスケジュールがすごかったです。

その限られた期間の中で勉強されたという言語が、知らないものだったので調べました。
SOLIDITY:Ethereum(ブロックチェーン技術が備わったプラットフォーム)のブロックチェーン上で動作するプログラム(コントラクト)を記述することができるプログラミング言語
Solidityとは?基本文法や実装方法まで実例を用いて詳しく解説|Udemy メディア
Solidityはどのような開発言語?特徴・習得難易度・市場価値をご紹介|フォスターフリーランス
Solidity とは何か? 開発環境を構築する! #初心者 - Qiita
Hardhat:Ethereumの開発環境でのスマートコントラストの環境開発ツール HardHat: 導入方法
Hardhatの公式ドキュメントを読み解いてみた #Blockchain - Qiita

また、インプットとアウトプットが両方できた、とおっしゃっていたのも印象的でした。
執筆、というとアウトプットのイメージが強かったのですが、執筆に向けて新言語を勉強したり今までの技術を再度確認したりすることでインプットもできるのだなと思いました。

kaibaさん

「動かして完全に理解するSidekiq」


非同期処理の詳しくの図がわかりやすかったです!
コードをお借りして再現できるかやってみようとしましたが、そもそもRedisを起動するためにDockerが必要なのを忘れていました…。
パーフェクトRuby on Railsを読んでいて、ActiveJobの非同期処理でSidekiq実行するというときにRedis環境のためにDockerが必要でそこで立ち止まったのを思い出しました…。
Dockerの知識がほぼないので、もう少し学習を進めて再度チャレンジしようと思います。
LTのデモで実際にキューの中のジョブを実行している様子を並列と縦列で見て、なるほど〜と思いました!


まとめ

初めてのオンライン参加でしたが、しっかりLTをきくことができました。
LTも技術の話から多種多様でとても面白かったです!
また現地参加して、いろんな方とお話ししてみたいと思いました!
ありがとうございました!