新卒3ヶ月のエンジニア3人で、全社に対してAIセミナーを企画し、開催しました。
具体的には、ノーコードAIアプリ作成プラットフォームであるDifyのハンズオンを企画し開催しました。
主に非エンジニアでも動かせる簡単なハンズオンで、バックオフィスや多くの事業部、オフィス向けに開催しました。
その時の非エンジニア向けのDifyハンズオンの様子、その結果どのような変化が社内に起こったのかを紹介します。
また、それによって考えた社内のAIに関する考え方やその変化を開催側から紹介しようと思います!
会員登録や配達情報設定のように、名前や住所などといった個人情報をフォームにまとめて入力する場面が少なからずありますが、こんなときの強い味方がブラウザに備わっている「自動入力」機能です!
…と声高に叫びたいところですが、いざ使ってみると、変なところに名前が入ったり、電話番号が変に途切れたりと的外れな入力がされてしまい、修正や削除のためにかえって入力の手間がかかってしまうことがよくありませんか?
本LTでは、ブラウザの自動入力機能の仕組みを解説しながら、ユーザー(フォーム入力者)の立場からできることと、開発者(フォーム作成者)の立場からできることを紹介します!
社会人8ヶ月目の新人エンジニアどすこいです!プロダクトに配属した後に挑んだ最も大変だったタスクの話です!
僕のいる事業部のプロダクトはサブスクリプションでお客様からお金を支払っていただいているサービスです。
プロダクトのKPIに関わる数値として、新規契約数、更新契約数、解約契約数、有効契約数があります。
しかし、このプロダクトはこれらのKPIの数字を出すロジックが整備されておらず、次のような困難がありました。
技術同人誌を書こう。
アウトプットの一つの形としての「技術同人誌」。
書くことで様々なメリットがあります。自分の知識の整理、コミュニティとのつながり、名刺/ポートフォリオとして。何より楽しい。
技術同人誌に関わるようになって20年以上経ちますが、ネタ切れするどころか様々なアウトプット、つながりを日々生み出してくれています。
そんなアウトプットの効能、始め方をご紹介します。
なんか難しいかも?と思ってませんか?そんなことないですよ。
また、技術同人誌の現物を持って行きます。
技術同人誌という世界を知らなかった人はまずは読む方で飛び込んでみましょう。
読んだことあるという方は、書いてみましょう。ハードルが高い?
いえいえ。さくっと始める方法がいくつもありますね。
UnJSは、独立したJavaScriptライブラリ、ツール、ユーティリティの集まりです。2024年11月現在、63のパッケージが存在します。
このLTでは、UnJSのJavaScriptツールをテンポよく紹介します!
CLIを簡単に構築できる「citty」、どこでも動くWebサーバー「Nitro」、軽量で高速なルーター「radix3」など、Starをたくさん獲得し、すでに様々な場所で使われているツールから、あまり日の目を見ないけど地味に役立つツールまで、一気にお届けします。
聞き終わった瞬間、あなたのJavaScript開発の生産性が向上すること間違いなし!UnJSを5分で体感してください。
このトークではLambda + Monolith = Lambdalithの特徴と、それを加速するエコシステムとして AWS Lambda + Hono + CDKを想定し、私が実際にOSSコントリビュートしたことにより如何に活用しやすくなったかを紹介します。
近年 PostgreSQL あるいは(MySQL との互換性を持つ)TiDB などにやや押され気味(?)の MySQL。
MySQL は集計系の複雑なクエリを苦手としていますが、それをカバーする技術として、Oracle Cloud(OCI および on AWS)で HeatWave が提供されています。が、色々なイベントの懇親会で個人的に HeatWave のことを話題に出してみても、残念ながら「知らない」という反応がほとんどでした。
というわけで、本トークでは
などについて触れていきます。
Pythonは動的型付け言語ですが、型を書くこともできます(Python 3.5で追加された型ヒント)。
しかしながら他の言語と比べると、Pythonの型は独特だと思います。
一生懸命型を書いても見るのは型チェッカだけで、処理系は実行時に無視します。
またよく見かける書き方は、実は適切ではありません(発表者はリンタを公開してます)
この発表を通して、ふだんPythonを使っている方には「私もっとうまく型ヒントを書けるな〜」、Pythonを使っていない方には「型の考え方おもしろいな〜」という学びを持ち帰っていただけたら嬉しいです。
持ち帰れるもの
ASP.NET Core Blazor のプロジェクトを新規作成すると色々なコードがあってよくわからないまま使っている人も多いと思います。
ここでは、コンソール アプリケーションを新規作成したところから ASP.NET Core Blazor までを解説をしながら変換していきます。ASP.NET Core の基本やミドルウェアなどについての解説もあわせて行います。
皆さん、GitHub Copilot使ってますか?
コード補完、便利ですよね。
また、分からないことをCopilot Chatで質問できます。
Chat相手には @vscode や @docker と特定のトピックの専門家も指定できます。
さらに、Chat相手を自分用にカスタマイズして実装できる機能がGitHub Copilot Extensionsです!
私はCopilot Extensionsを11月に知ってから、JavaScriptで書かれたサンプルコードを、手に馴染むPythonで再実装してきました。
発表を聞いた方が、GitHubのAPIを利用した独自のChat相手を手に馴染む言語で作れるよう、得た知見を共有します。
持ち帰れるもの
新規配信者の課題である「コメントの少なさ」に対し、配信の盛り上げ役となるAI「waiwai-ai」を開発しました。本トークでは、waiwai-aiが視聴者のコメントを生成・投稿する仕組みを支える技術スタックについて解説します。具体的には、Slack APIを通じてコメントを投稿し、Difyを活用して生成AIを動かすアーキテクチャ、さらに音声認識と仮想オーディオデバイスによるリアルタイム字幕生成の実装詳細を紹介します!!
JavaScript や TypeScript を主に使っているエンジニアにとって、OpenTelemetry はあまり馴染みのない技術かもしれません。しかし、Next.js が公式にサポートしていたり、最近では Deno もビルトインでの対応を進めているなど、OpenTelemetry は次第に身近な存在になっています。
この発表では、まず OpenTelemetry の概要を説明します。その後、JavaScript におけるOpenTelemetry の対応状況や、Node.js サーバーのモニタリングに OpenTelemetry を活用する方法を紹介します。さらに、Web フロントエンドでの OpenTelemetry の活用方法についても説明し、多くのエンジニアにとって OpenTelemetry がより身近に感じられる内容を目指します。
SpringBootは、Webアプリケーションフレームワークというのが
一般的な認識だと思いますが、Batch処理を作ることも出来ます。
使うライブラリで一番最初に候補に出てくるのはSpring Batchだと思います。
もちろんSpring Batchでも良いのですが、独特な部分が多く、つまずきポイントが
多いのではないでしょうか?
そこで、少しマイナーですが、Spring Shellというライブラリも存在します。
Spring Shellの使い方について説明します。
Robocode は、対戦型のロボットシミュレーションゲームです。
ロボット(戦車型ロボット)をプログラミングして、他の人が作ったロボットコードと対戦させることが可能です。
ロボットを動作させるフレームワークが用意されているので、ロボットコードの作成に専念することができます。
対戦で勝ち残るために色々と工夫してプログラミングしていくことで、楽しくプログラミングが学習できるようになっています。
当初、プログラミング言語には Java が採用されていましたが、最新版では .NET(C#など)もサポートされていて、JavaScript、Pythonで作ることもできるようです。
こちらをベースにAI開発を楽しく経験してみましょう
最近では、Reactを使ってアニメーションを実装するシーンでは、Motionが人気です。
Webアニメーションの実装では、古くからGSAP(GreenSock Animation Platform)が有名でした。特にタイムラインという形のAPIで動画編集のようにアニメーションの変化を指定できるAPIが人気でした。
しかしながら、GSAPとは違いタイムラインに基づくアニメーションを実装するためのAPIがMotionには提供されていません。
本LTでは、Motionを使用してタイムラインをベースしたアニメーションの実装例を紹介します。
ウェブアプリはスマホOSのネイティブアプリと比べて、動きやジェスチャーといった動的な要素が控えめだと思います。しかし、これらの要素を適切に取り入れるだけで、アプリケーションをより直感的で楽しい体験に変えることができます。
モーションの実装というと「難しそう」、「時間がかかりそう」と感じる方も多いかもしれませんが、Motion(旧Framer Motion)を利用することで簡単かつ効率的に実現できます。本セッションでは、具体的な実装例を交えながら、ネイティブアプリに近いインタラクションをウェブで実現する方法を解説します。
ReactフレームワークのRemixを用いた業務管理アプリケーション開発の実体験をもとに、Remixのデータ取得・更新における複数の実装パターンを比較・解説します。
<Form>
やuseFetcher
などURLに紐付いてデータリクエストを扱う豊富なAPIが特徴ですが、それぞれの特徴と仕様を正しく理解していないと、どのAPIを選択して実装すべきか、実装時にどのようにハンドリングすべきかで混乱してしまいます。
さらに、このトピックに関する情報源も限られているのが現状です。
そこで、それぞれのAPIを用いたRemixアプリケーションの設計パターンを実装例と共に紹介します。
Remixアプリケーションの設計を検討されている方にとって、特に有益なセッションとなるでしょう。
国のルールである「法律」は、一見するとプログラミングとは無縁の存在ですが、法律の姿を複数の視点から捉えてみると、意外にもコンピュータプログラムやシステム開発と共通する興味深い特徴が数多く浮かび上がります。
そのために、システムのプログラムの刷新は、まるで法律を大改正するような注意と配慮が必要になります。
本セッションでは、私が現職で取り組んでいるSaaS製品のフロントエンド刷新プロジェクトの事例と現状を紹介し、一方で「法律の脱レガシー」に近い取り組みの1つである「法律の現代語化」にも触れて両者の共通点を考察。法律の現代語化の一事例の顛末を教訓としてフロントエンド刷新プロジェクトの今後の注意点を探ります。
フロントエンド刷新の進め方や難点を学べるだけでなく、難解なイメージを持たれがちな法律の存在を身近に感じることもできる一粒で二度おいしい発表です!
Fluentdは、Rubyで実装されたオープンソースのデータ収集・ログ管理ツールです。多様なデータソースからログを収集・変換し、さまざまな解析システムに送信する機能を備えているアプリです。
一般的なアプリと同様にFluentdのアップグレード作業には一時的な停止が必要で、ログの損失を最小限に抑えるためには深夜や専用のメンテナンス時間を確保するなどの運用上の課題がありました。
ダウンタイムが発生せず、オフィスアワーでアップグレードができたら、快適な睡眠が確保できて素敵だと思いませんか?
このトークでは、ゼロ・ダウンタイムアップグレードを実現するための具体的な技術的手法について紹介します。