ライトニングトーク(5分)

新卒3ヶ月で同期と全社向けAIセミナーを毎月した話とその結果わかったことのご紹介

doskoi64 どすこい

新卒3ヶ月のエンジニア3人で、全社に対してAIセミナーを企画し、開催しました。
具体的には、ノーコードAIアプリ作成プラットフォームであるDifyのハンズオンを企画し開催しました。
主に非エンジニアでも動かせる簡単なハンズオンで、バックオフィスや多くの事業部、オフィス向けに開催しました。
その時の非エンジニア向けのDifyハンズオンの様子、その結果どのような変化が社内に起こったのかを紹介します。
また、それによって考えた社内のAIに関する考え方やその変化を開催側から紹介しようと思います!

1
ライトニングトーク(5分)

フォーム入力で名前や住所に的外れな自動補完をされるのをどうにかしたい!

oguemon_com おぐえもん

会員登録や配達情報設定のように、名前や住所などといった個人情報をフォームにまとめて入力する場面が少なからずありますが、こんなときの強い味方がブラウザに備わっている「自動入力」機能です!
…と声高に叫びたいところですが、いざ使ってみると、変なところに名前が入ったり、電話番号が変に途切れたりと的外れな入力がされてしまい、修正や削除のためにかえって入力の手間がかかってしまうことがよくありませんか?

本LTでは、ブラウザの自動入力機能の仕組みを解説しながら、ユーザー(フォーム入力者)の立場からできることと、開発者(フォーム作成者)の立場からできることを紹介します!

4
はじめて枠🔰 (30分)

データサイエンスをするつもりが、KPI数値算出がなーんできてないぜ!新卒1年目が配属1ヶ月で挑んだサブスクサービスのKPI数値算出タスク

doskoi64 どすこい

社会人8ヶ月目の新人エンジニアどすこいです!プロダクトに配属した後に挑んだ最も大変だったタスクの話です!
僕のいる事業部のプロダクトはサブスクリプションでお客様からお金を支払っていただいているサービスです。
プロダクトのKPIに関わる数値として、新規契約数、更新契約数、解約契約数、有効契約数があります。
しかし、このプロダクトはこれらのKPIの数字を出すロジックが整備されておらず、次のような困難がありました。

  1. 誰も挑んだことがないけど早くほしい情報だった
  2. ビジネスサイドと合意をとった定義がなかった
  3. そもそも正しい値を誰も知らない
  4. データの構造が大幅に変わるデータマイグレーションが同時並行に走っていた
  5. 正しいことを保証するために綿密なテストケースを用意する必要があった
    これらに対して、どのように立ち向かったのか、どのような工夫や対処をしたのかを紹介します。
1
レギュラートーク(30分)

技術同人誌を書こう~アウトプットのススメ~

oyakata2438 おやかた@oyakata2438

技術同人誌を書こう。

アウトプットの一つの形としての「技術同人誌」。
書くことで様々なメリットがあります。自分の知識の整理、コミュニティとのつながり、名刺/ポートフォリオとして。何より楽しい。

技術同人誌に関わるようになって20年以上経ちますが、ネタ切れするどころか様々なアウトプット、つながりを日々生み出してくれています。

そんなアウトプットの効能、始め方をご紹介します。
なんか難しいかも?と思ってませんか?そんなことないですよ。
また、技術同人誌の現物を持って行きます。
技術同人誌という世界を知らなかった人はまずは読む方で飛び込んでみましょう。
読んだことあるという方は、書いてみましょう。ハードルが高い?
いえいえ。さくっと始める方法がいくつもありますね。

ライトニングトーク(5分)

JavaScriptツール群「UnJS」を5分で一気に駆け巡る!

k1tikurisu daiki / きちくりす

UnJSは、独立したJavaScriptライブラリ、ツール、ユーティリティの集まりです。2024年11月現在、63のパッケージが存在します。

このLTでは、UnJSのJavaScriptツールをテンポよく紹介します!
CLIを簡単に構築できる「citty」、どこでも動くWebサーバー「Nitro」、軽量で高速なルーター「radix3」など、Starをたくさん獲得し、すでに様々な場所で使われているツールから、あまり日の目を見ないけど地味に役立つツールまで、一気にお届けします。

聞き終わった瞬間、あなたのJavaScript開発の生産性が向上すること間違いなし!UnJSを5分で体感してください。

2
レギュラートーク(30分)

やりたいスタックは自分で作ればいいじゃん!! 関わったLambdalithのエコシステムを紹介します

渡邉 洋平

このトークではLambda + Monolith = Lambdalithの特徴と、それを加速するエコシステムとして AWS Lambda + Hono + CDKを想定し、私が実際にOSSコントリビュートしたことにより如何に活用しやすくなったかを紹介します。

1
レギュラートーク(30分)

HeatWave MySQL(あるいは HeatWave MySQL on AWS)という選択肢

hmatsu47 hmatsu47(まつ)

近年 PostgreSQL あるいは(MySQL との互換性を持つ)TiDB などにやや押され気味(?)の MySQL。

MySQL は集計系の複雑なクエリを苦手としていますが、それをカバーする技術として、Oracle Cloud(OCI および on AWS)で HeatWave が提供されています。が、色々なイベントの懇親会で個人的に HeatWave のことを話題に出してみても、残念ながら「知らない」という反応がほとんどでした。

というわけで、本トークでは

  • HeatWave でできること
  • TiDB や Aurora + Redshift(zero-ETL)などとの比較で HeatWave が向いているケース

などについて触れていきます。

レギュラートーク(30分)

ベクトルストア入門

hmatsu47 hmatsu47(まつ)

LLM を使ったチャットシステムの構築には RAG(Retrieval-Augmented Generation:検索拡張生成)が用いられるケースが多く、RAG の内側ではよくベクトルストアが使われています。

ただ、ベクトルストアには RAG 以外の使い道もあります。

本トークでは、ベクトル検索およびベクトルストアでできることについて、RAG 以外を中心に説明します。

  • 情報をベクトルで表現すると嬉しいこと
  • ベクトルの「近さ」をはかる方法
  • ベクトル検索の使い道
  • ベクトルストアの機能
レギュラートーク(30分)

Python型ヒントしゃぶしゃぶ鍋コース。経緯から含めて型ヒントの真髄をお楽しみください!

nikkie

Pythonは動的型付け言語ですが、型を書くこともできます(Python 3.5で追加された型ヒント)。
しかしながら他の言語と比べると、Pythonの型は独特だと思います。

一生懸命型を書いても見るのは型チェッカだけで、処理系は実行時に無視します。
またよく見かける書き方は、実は適切ではありません(発表者はリンタを公開してます)

この発表を通して、ふだんPythonを使っている方には「私もっとうまく型ヒントを書けるな〜」、Pythonを使っていない方には「型の考え方おもしろいな〜」という学びを持ち帰っていただけたら嬉しいです。

持ち帰れるもの

  • Pythonの型ヒントは、実は段階的に導入(3.5,3.6,3.9)
  • 関数の引数の型をlistとしたいあなたへ:イテラブルという概念の紹介
  • 型をdictにしたいあなたへ:TypedDictやdataclassの紹介
レギュラートーク(30分)

コンソール アプリの新規作成から ASP.NET Core Blazor へ

okazuki 大田 一希

ASP.NET Core Blazor のプロジェクトを新規作成すると色々なコードがあってよくわからないまま使っている人も多いと思います。
ここでは、コンソール アプリケーションを新規作成したところから ASP.NET Core Blazor までを解説をしながら変換していきます。ASP.NET Core の基本やミドルウェアなどについての解説もあわせて行います。

レギュラートーク(30分)

GitHub Copilotの君だけのChat相手を作らないか? Copilot Extensionsの紹介(Python実装例を添えて)

nikkie

皆さん、GitHub Copilot使ってますか?
コード補完、便利ですよね。
また、分からないことをCopilot Chatで質問できます。
Chat相手には @vscode や @docker と特定のトピックの専門家も指定できます。
さらに、Chat相手を自分用にカスタマイズして実装できる機能がGitHub Copilot Extensionsです!

私はCopilot Extensionsを11月に知ってから、JavaScriptで書かれたサンプルコードを、手に馴染むPythonで再実装してきました。
発表を聞いた方が、GitHubのAPIを利用した独自のChat相手を手に馴染む言語で作れるよう、得た知見を共有します。

持ち帰れるもの

  • Copilot Extensionsとはなにか、どんなアーキテクチャか
  • Pythonでの実装例
  • 少しのプロンプトエンジニアリング
はじめて枠🔰 (30分)

あなたの配信ワイワイたりていますか?? 配信を盛り上げるAI「waiwai-ai」を作った話

tetsuwo0717 てつを。

新規配信者の課題である「コメントの少なさ」に対し、配信の盛り上げ役となるAI「waiwai-ai」を開発しました。本トークでは、waiwai-aiが視聴者のコメントを生成・投稿する仕組みを支える技術スタックについて解説します。具体的には、Slack APIを通じてコメントを投稿し、Difyを活用して生成AIを動かすアーキテクチャ、さらに音声認識と仮想オーディオデバイスによるリアルタイム字幕生成の実装詳細を紹介します!!

レギュラートーク(30分)

JavaScript の世界にも広がる OpenTelemetry

nissy_dev nissy-dev

JavaScript や TypeScript を主に使っているエンジニアにとって、OpenTelemetry はあまり馴染みのない技術かもしれません。しかし、Next.js が公式にサポートしていたり、最近では Deno もビルトインでの対応を進めているなど、OpenTelemetry は次第に身近な存在になっています。

この発表では、まず OpenTelemetry の概要を説明します。その後、JavaScript におけるOpenTelemetry の対応状況や、Node.js サーバーのモニタリングに OpenTelemetry を活用する方法を紹介します。さらに、Web フロントエンドでの OpenTelemetry の活用方法についても説明し、多くのエンジニアにとって OpenTelemetry がより身近に感じられる内容を目指します。

2
レギュラートーク(30分)

Spring Shellでバッチ処理を作成

web_shogo_nakao shogo.nakao

SpringBootは、Webアプリケーションフレームワークというのが
一般的な認識だと思いますが、Batch処理を作ることも出来ます。

使うライブラリで一番最初に候補に出てくるのはSpring Batchだと思います。
もちろんSpring Batchでも良いのですが、独特な部分が多く、つまずきポイントが
多いのではないでしょうか?

そこで、少しマイナーですが、Spring Shellというライブラリも存在します。
Spring Shellの使い方について説明します。

1
レギュラートーク(30分)

robocodeで楽しくAI開発

web_shogo_nakao shogo.nakao

Robocode は、対戦型のロボットシミュレーションゲームです。
ロボット(戦車型ロボット)をプログラミングして、他の人が作ったロボットコードと対戦させることが可能です。
ロボットを動作させるフレームワークが用意されているので、ロボットコードの作成に専念することができます。
対戦で勝ち残るために色々と工夫してプログラミングしていくことで、楽しくプログラミングが学習できるようになっています。
当初、プログラミング言語には Java が採用されていましたが、最新版では .NET(C#など)もサポートされていて、JavaScript、Pythonで作ることもできるようです。

こちらをベースにAI開発を楽しく経験してみましょう

ライトニングトーク(5分)

アニメーションライブラリMotion(旧Framer Motion)でタイムラインに基づくアニメーションを実装するには

junpai_code 長尾准誠

最近では、Reactを使ってアニメーションを実装するシーンでは、Motionが人気です。

Webアニメーションの実装では、古くからGSAP(GreenSock Animation Platform)が有名でした。特にタイムラインという形のAPIで動画編集のようにアニメーションの変化を指定できるAPIが人気でした。
しかしながら、GSAPとは違いタイムラインに基づくアニメーションを実装するためのAPIがMotionには提供されていません。

本LTでは、Motionを使用してタイムラインをベースしたアニメーションの実装例を紹介します。

レギュラートーク(30分)

ウェブに動きを取り入れる「Motion」のススメ

mottox2 もっと

ウェブアプリはスマホOSのネイティブアプリと比べて、動きやジェスチャーといった動的な要素が控えめだと思います。しかし、これらの要素を適切に取り入れるだけで、アプリケーションをより直感的で楽しい体験に変えることができます。
モーションの実装というと「難しそう」、「時間がかかりそう」と感じる方も多いかもしれませんが、Motion(旧Framer Motion)を利用することで簡単かつ効率的に実現できます。本セッションでは、具体的な実装例を交えながら、ネイティブアプリに近いインタラクションをウェブで実現する方法を解説します。

レギュラートーク(30分)

Remixのデータ取得・更新パターン徹底比較

junpai_code 長尾准誠

ReactフレームワークのRemixを用いた業務管理アプリケーション開発の実体験をもとに、Remixのデータ取得・更新における複数の実装パターンを比較・解説します。

<Form>useFetcherなどURLに紐付いてデータリクエストを扱う豊富なAPIが特徴ですが、それぞれの特徴と仕様を正しく理解していないと、どのAPIを選択して実装すべきか、実装時にどのようにハンドリングすべきかで混乱してしまいます。
さらに、このトピックに関する情報源も限られているのが現状です。

そこで、それぞれのAPIを用いたRemixアプリケーションの設計パターンを実装例と共に紹介します。
Remixアプリケーションの設計を検討されている方にとって、特に有益なセッションとなるでしょう。

1
レギュラートーク(30分)

法律の脱レガシーに学ぶフロントエンド刷新

oguemon_com おぐえもん

国のルールである「法律」は、一見するとプログラミングとは無縁の存在ですが、法律の姿を複数の視点から捉えてみると、意外にもコンピュータプログラムやシステム開発と共通する興味深い特徴が数多く浮かび上がります。
そのために、システムのプログラムの刷新は、まるで法律を大改正するような注意と配慮が必要になります。

本セッションでは、私が現職で取り組んでいるSaaS製品のフロントエンド刷新プロジェクトの事例と現状を紹介し、一方で「法律の脱レガシー」に近い取り組みの1つである「法律の現代語化」にも触れて両者の共通点を考察。法律の現代語化の一事例の顛末を教訓としてフロントエンド刷新プロジェクトの今後の注意点を探ります。

フロントエンド刷新の進め方や難点を学べるだけでなく、難解なイメージを持たれがちな法律の存在を身近に感じることもできる一粒で二度おいしい発表です!

5
レギュラートーク(30分)

ゼロ・ダウンタイムで進化するFluentd、その実現方法について

watson1978 watson1978

Fluentdは、Rubyで実装されたオープンソースのデータ収集・ログ管理ツールです。多様なデータソースからログを収集・変換し、さまざまな解析システムに送信する機能を備えているアプリです。

一般的なアプリと同様にFluentdのアップグレード作業には一時的な停止が必要で、ログの損失を最小限に抑えるためには深夜や専用のメンテナンス時間を確保するなどの運用上の課題がありました。
ダウンタイムが発生せず、オフィスアワーでアップグレードができたら、快適な睡眠が確保できて素敵だと思いませんか?

このトークでは、ゼロ・ダウンタイムアップグレードを実現するための具体的な技術的手法について紹介します。