土俵に来た ので、自分用のメモを残しておきます。
オープニング
- 3 年ぶりのオフライン開催
- 今日は他の部屋で別のイベント ( 新卒説明会、学会 ) をやっているので、お静かに
- CoC 遵守
- 困ったら yapc-kyoto-2020-core@googlegroups.com へ
PHP8によるデザインパターン入門 / 遠藤太徳さん
- GoF
- 歴史
- 起源 A Pattern Language 建築の本
- Using Pattern Languages for Object-Oriented Programs 論文
- Gang of For / Erich Gamma, Richard Helm, Ralph Johnson, John Vlissile
- Design Pattern 書籍
- 完全なプログラムが生成できるとは主張していない ( 建築の方は完全な建物ができるらしい )
- 生成、構造、振舞のパターン
- PHP5, PHP7, PHP8
- Singleton
- まとめ
- なぜデザインパターンを学ぶのか
- 手段は本質よりも早く廃れる
インシデントレスポンスを自動化で支援する - Slack Bot で人機一体なセキュリティ対策を実現する - SEASON2 / 伊藤洋也 さん
- インシデント: 機密性、完全性、可用性
- インシデントあるある
- ログが流れる
- Slack のスレッドでやると、みんなが気が付かない
- 人を適切に呼び出せない(気が引ける、誰を?)
- 発生と完了を伝えられない
- フローが不明確、マニュアルが無視される
- いつ、どこのチャネルで対応されたか不明
- 再発防止ができない(サマリがなくてようわからん)
- ポストモーテムやりたい
- インシデントのアウトプット
- 企業のテックブログ(障害や訓練)
- CloudNative Inc, mercari, モノタロウ, STORES, RAKUS, Ubie, Sreake など
- 情報誌、カンファレンス
- システム障害対応の教科書
- Incident Response Conference, LEARNING FROM INCIDENTS Conference
- SaaS
- BLAMELESS, rootly, jeli, incident.io, Waroom, Datadog, PagerDuty, Graphana Incident
- 企業のテックブログ(障害や訓練)
- @sssbot GMOペパボさんの内製
- 準備 -初動-> 対応 -普及-> 事後分析 -解決->
- 発生、検知アラート、対応、復旧、解決
- ユーザ、組織の両方に影響がある。
- インシデントマネジメントの時間を短縮 Time is Money
- 初動
- 対応中
- タイムキーパーが 15 分毎に現れる
- 復旧の通知まで担当する
- 事後分析
- postmortem のドキュメントを作ってくれる
- pin したメッセージからタイムラインを自動生成
- ダッシュボードから一覧可能
- /archive し、通知
- 準備
- 年一回以上訓練・演習している
- 実装、設計
- RoR + slack-ruby-client
- プライベートクラウド k8s
- ChatGPT も Celelry + Fast API
- Brent Chapman さんのプラクティスを参考に
- チャンネル運用、コミュニケーション(スクリーンショットやリンクの多用)、組織
- 参考書:
- SRE 本
- システム障害対応の教科書
- INCIDENT MANAGEMENT FOR OPERATIONS (消防士の経験から)
- CSIRT*, 経営層への情報共有
- 課題
- 事後分析のプロセスが重く、後回しに
- 再発防止策まで至らない
- ChatGPT にサマリを作らせる
- AI + インシデントマネジメントの相性は良さそう
- 解決方法の提案までやってくれれば・・・
チーム開発における様々なボトルネックの整理 / id:stefafafan さん
- 改善サイクルが回っていない ( 効率の悪い仕事の仕方が続いている )
- アジャイルを取り入れる
- Incremental, Iterative: 少しずつ着実に進める
- Scrum ソフトウェア開発以外にも使える
- 開発速度が遅い
- Four Keys: デプロイ頻度、変更のリードタイム、変更障害率、サービス復元時間
- すべての指標を満たす必要がある
- Extreme Programming: 小さい単位(レビューも楽)、ペアプロ、テスト
- DevOps: インフラ要件をプロジェクトで管理, CI/CD, Infrastructure as Code, オーナーシップ
- チーム内の連携
- HRT ( 謙虚、尊敬、信頼 ) の欠如: コードレビューが辛い、発言できない
- チームの自己組織化:
- エラスティックリーダーシップ: サバイバル、学習、自己組織化
- チーム外との連携
- Team Topologies: 他のチームとの関わりを図に
- リリースなどで他のチームの許可が必要など
- Team Topologies: 他のチームとの関わりを図に
- ボトルネックの整理
- スコープによる整理
- エンジニア、デザイナー。企画~リリース。同部署、会社。
- カテゴリ別の整理
- テクニカル、プロセス、人間関係
- マトリクス化する
- エンジニア+デジアナー✕テクニカル
- App エンジニア + SRE ✕プロセス
- 会社のエンジニア組織✕メンバーの成長
- スコープによる整理
- まとめ
- チーム開発のボトルネック
- スコープ✕カテゴリで分類し、どこから手を付けるか考える
NOT A HOTEL - AI コンシェルジュ 「Kevin」 の開発秘話 / codehex さん
- zendesk の話から急遽変更して chat GPT の話
- HOT A HOTEL: 別荘兼ホテル。家を相互利用できる世界に
- Kevin: chat bot。 お客様に 24 時間対応する
- 「テスラを使いたい」
- CS 対応の勤務時間の制限
- AI ができること
- 情報の提案
- 料理や清掃のオペレーション
- Sunshine Conversation
- Dialogflow CX
- CS (Zendesk) と GPT を切り分ける
- 雑談などは GPT
- GCP 上の AI 開発プラットフォーム
- 会話のコンテキストを保持できる。構造化されたデータに変更
- 後続の処理は、会話のコンテキストを引き継げる
- GPT-3.5, GPT-4, LangChain
- OpenAI の API (Chat Completion)
- 安い、速い
- Dialogflow CX で拾えない部分(雑談、観光地の情報提供)
- OpenAI の API (Chat Completion)
- LangChain
- LLM (Large Language Model) との組み合わせ
- ReAct: 推論 + 行動。 Thought, Act, Obs
- zero-shot-react-description
- ほとんど成功しない、遅い。 2.5 分
- サポートに問い合わせてもまともに返ってこない
- Document Question Answering
- google の検索結果は使えなかったからはずした
- DB の類似検索に絞る
- ドキュメントの内容を OpenAI に要約させる
- エラーはなくなった。レスポンスは 50s 。 DB に登録された内容なら回答可能
- Map Reduce アルゴリズム
- 並列のはずが直列で・・・
- 件数を減らせばいいという結論(直列なので)
- 30sec くらいで返せるように
- 今後の展望
- Dialogflow CX: フローが複雑なので整理
- GPT: データを増やす(現状 4000 件 )
- OpenAI が遅い問題→キャッシュ
- このために Python を勉強した
- スライドの構成は ChatGPT にお願いした
try { Support Engineer } catch($e) { joy, pride, and prospect } / Kensuke Nagae さん
- 「ソフトウェアエンジニアからサポートエンジニアにジョブチェンジしてみた」
- サポートエンジニアの情報が少ない、 Perl プログラマの平均年齢が高い
サポートエンジニア
- 自社製品。技術的な問い合わせ
- 製品について、トラブル対応、開発チームへ
- ドキュメント、(まれに)機能開発や修正
問い合わせ対応が 8 割。うち、トラブル対応が 7 割
- 「書く」より「読む」
- ドキュメント(公開、社内)、過去の事例、ソースコード
- 面白いところ
- しんどさ
- 顧客対応については自明なので割愛
- reactive ( 問題が起きてから対応 )。予防できない。マイナスから始まり、 0 で終わる
- 作れない: 開発の優先順位に手を出せない。お客様の希望に添えない
- 小さい締切 ( 初期応答時間 ) : 毎日、小さなプレッシャー。難しい問い合わせが複数積まれたとき
- 向いてる人
- 問題解決が好き: トラブルシューティングだけでなく、疑問を解決する
- 意思疎通(社交的である必要はない): 意思疎通により問題を浮き彫りにし、解決に導く
- 締切のプレッシャーに強い: 障害対応になると燃える ( 短期集中 )、逆に締め切りを無視する胆力
ネコトーストラボ杯争奪 東西対抗 LTマッチ
「これが3年ぶりのドラですよ」
開幕LT / ネコトーストラボさん
- 光る棒がノベルティに入ってます
- バトルからマッチに
- Try Catch == 東西マッチ
- NEW: Nekotoastlab East West
- Try Catch == お題なし
if (New lt match)
: Perl は LT フレンドリー- 綱引きのイメージ
- Try Catch == 勝敗どっち
GraphQL やるなら DataLoader を使おう / gari8 さん
- GraphQL サーバサイドへクエリ。型
- N+1 問題が発生
- JOIN で解決しようとしたが。必要のないときも JOIN
- スロークエリとコードの可読性の低下
- Dataloader バッチ処理
- 親タイプの処理→子タイプからKeyを集積 (dataloaderのお仕事)→Keyに基づいて処理
Slack からクロネコで送ろう / こたまご a.k.a. ひなたん さん
- 「 Perl は小さい頃にちょっと」
- 社員間で宅急便
- 住所がわからん。営業所止め
- Slack で宅急便。ヤマトさんと
- ワークスペース単位で申込み可
- Slack 3秒ルール→非同期処理 (Django + Celery, Redis, TiDB)
- 月額費用はただ。ヤマトさんより安い
AstroNvimを使おう! / _ybrliiu さん
- vim: キーボードで操作が完結、作業が高速、プラグイン
- 学習コストは高い、環境構築が大変
- Neovim: vim 派生。 luaでも書ける
- AstroNvim: Neovim のもろもろをまとめたパッケージ
- セットアップが簡単、ヘルプが充実
- :Lspinstall
- F7 でターミナル表示
- 放置するとヘルプが出る
- ゴーン
Perl初心者が社内Perlエンジニアのレビューを受けてみて / minto さん
- 社内で利用。移動があると便利
- 明日のゴミを Slack に通知する bot
- 鎌倉市のゴミ情報をパース
use lib
use lib/....pm
ではなく-Ilib
を- 配列のから判定は
$#x < 0
ではなく@x == 0
で - サブルーチンの返り値はスカラ(
%x
ではなく\%x
) - サブルーチン引数を
@_
を使わない shift
ではなくmy (undef, $x) =
Masahiro Honma さん
スポンサーブース担当レベル1からの足跡 / honchang さん
- 入社3日目で RubyKaigi
- 伊勢神宮をイメージして鳥居を
- 社名をたくさんつけた
- ノベルティ全部持ってった(統一性がない)
- ぼっち: ノベルティを取りに、ホテルでミーティング、結婚式(!)
- 次からはシフトを
自然言語処理とWebアプリ・文字コード / Shunsuke Tsuchiya さん
- 文字化け: 文字コードを別の文字コードとして読み込んだ結果
- MS 製品は Shift_JIS ・・・
- 旧字体と新字体: 桜と櫻、国と國
- 検索できない、 unique にできない、機械学習への影響
- 濁点の文字数の判定: Unicode の結合文字
- 文字列が壊れていたら文字コードを確認、文字列の見た目に騙されない
Railsエンジニアがフロントエンド分離に挑戦してみた / mikikun14 さん
- フロントエンドをやることになった
- React, Vue は触ったことがあった
- 課題を早くこなすことにフォーカス、すぐ助けてもらう、雑でも速く
- 意思決定の理由を理解するように
- 理解できないことを放置しない。質問できる雰囲気を。プライドが邪魔にならないよう
- 自己紹介でハードルを下げておく
Something NEW / myfinder さん
yapcramen を忘れずに
- 会社を作った
- Eric Sink マイクロISV
- 4 期目、黒字
- 数の暴力との戦い
- 一人
- オートスケールは無意味
- クローズドソースプロダクト
- ソースコードが開示されてないので、補完が効かない
- AST 操作
- ChatGPT で解決できそうなお仕事を募集中
Something New / arthur-1 さん
- 新卒1年目が顔を売るためにやったこと 100 連発
- 出社エントリ
- 深夜バスで出社
- ツッコミどころ
- 社員に喧嘩を売る
- 先輩の腕をつかんで二次会へ
- 二日酔いの直し方 飲めば1日酔いになる
- Slack 投稿数 40/日 ジョーク、反応、業務連絡は 20%
- 思っていることを社内エントリに
- いろいろな会に顔を出す
- 細かいネタ
- 他人と会話、柔軟な働き方「忙しそうなので代わりにやりましょか?」
- 夢を語る
- ユーザからの問い合わせに反応
- CREs との協業のチャンス
TypeScript + Express + Prisma + Node.js API開発 / 秋田 尚輝 さん
- Perl について「飛ばします」
- TypeScript 静的型付け
- Prisma: ORM
- Express「飛ばします」
- レイヤードアーキテクチャ。個々のコード量を抑えられる。開発しやすい
- コーディング技術も大事だが、設計者の意図を汲むこと
- ChatGPT + GItHub Copilot があればコーディング技術は・・・
- 難しいことを簡単に。開発速度を上げる
結果発表
- 西MVP: honchangさん
- 東MVP: 秋田さん
- 賞品: 和菓子通販品
- 勝利チームは西チーム
- 賞品: ネコの足形グラス
明日は 9 時からオープニングです。 (9 時前に来ること! )