皆さん、GitHub Copilot使ってますか?
コード補完、便利ですよね。
また、分からないことをCopilot Chatで質問できます。
Chat相手には @vscode や @docker と特定のトピックの専門家も指定できます。
さらに、Chat相手を自分用にカスタマイズして実装できる機能がGitHub Copilot Extensionsです!
私はCopilot Extensionsを11月に知ってから、JavaScriptで書かれたサンプルコードを、手に馴染むPythonで再実装してきました。
発表を聞いた方が、GitHubのAPIを利用した独自のChat相手を手に馴染む言語で作れるよう、得た知見を共有します。
持ち帰れるもの
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開発を楽しく経験してみましょう
ウェブアプリはスマホOSのネイティブアプリと比べて、動きやジェスチャーといった動的な要素が控えめだと思います。しかし、これらの要素を適切に取り入れるだけで、アプリケーションをより直感的で楽しい体験に変えることができます。
モーションの実装というと「難しそう」、「時間がかかりそう」と感じる方も多いかもしれませんが、Motion(旧Framer Motion)を利用することで簡単かつ効率的に実現できます。本セッションでは、具体的な実装例を交えながら、ネイティブアプリに近いインタラクションをウェブで実現する方法を解説します。
ReactフレームワークのRemixを用いた業務管理アプリケーション開発の実体験をもとに、Remixのデータ取得・更新における複数の実装パターンを比較・解説します。
<Form>
やuseFetcher
などURLに紐付いてデータリクエストを扱う豊富なAPIが特徴ですが、それぞれの特徴と仕様を正しく理解していないと、どのAPIを選択して実装すべきか、実装時にどのようにハンドリングすべきかで混乱してしまいます。
さらに、このトピックに関する情報源も限られているのが現状です。
そこで、それぞれのAPIを用いたRemixアプリケーションの設計パターンを実装例と共に紹介します。
Remixアプリケーションの設計を検討されている方にとって、特に有益なセッションとなるでしょう。
国のルールである「法律」は、一見するとプログラミングとは無縁の存在ですが、法律の姿を複数の視点から捉えてみると、意外にもコンピュータプログラムやシステム開発と共通する興味深い特徴が数多く浮かび上がります。
そのために、システムのプログラムの刷新は、まるで法律を大改正するような注意と配慮が必要になります。
本セッションでは、私が現職で取り組んでいるSaaS製品のフロントエンド刷新プロジェクトの事例と現状を紹介し、一方で「法律の脱レガシー」に近い取り組みの1つである「法律の現代語化」にも触れて両者の共通点を考察。法律の現代語化の一事例の顛末を教訓としてフロントエンド刷新プロジェクトの今後の注意点を探ります。
フロントエンド刷新の進め方や難点を学べるだけでなく、難解なイメージを持たれがちな法律の存在を身近に感じることもできる一粒で二度おいしい発表です!
Fluentdは、Rubyで実装されたオープンソースのデータ収集・ログ管理ツールです。多様なデータソースからログを収集・変換し、さまざまな解析システムに送信する機能を備えているアプリです。
一般的なアプリと同様にFluentdのアップグレード作業には一時的な停止が必要で、ログの損失を最小限に抑えるためには深夜や専用のメンテナンス時間を確保するなどの運用上の課題がありました。
ダウンタイムが発生せず、オフィスアワーでアップグレードができたら、快適な睡眠が確保できて素敵だと思いませんか?
このトークでは、ゼロ・ダウンタイムアップグレードを実現するための具体的な技術的手法について紹介します。
シンガポール本社企業のCOOとして働く室長〈Microsoft Regional Director(2020-)/Microsoft MVP for Business Applications(2015-)〉が、バラバラ殺データ事件に遭遇する確率は、どうやらかなり高いようです。
本セッションでは、オートモーティブ業界の国内外で散見される課題を題材に、より少ない労力で、より多くの事を達成する【Do more with less】ことの重要性と、その一つの解決策になり得るMicrosoft CopilotとMicrosoft Business Applications について、デモンストレーションを交え解説致します。
富山での教員時代の原体験をもとに、富山で開発した個人開発サービス『席替えメーカー』についてお話します。
『席替えメーカー』は、学校の業務を改善し、教員の負担を軽減することを目的として開発したWebサービスです。
2021年3月にリリースしてから、累計ユーザー数は50万人を突破し、今では日本中の教員の方が使ってくださるサービスに成長しました。
本セッションでは『席替えメーカー』の紹介だけでなく、サービスをリリースするまでの開発の過程や、実際にターゲットとしていた教員の方にサービスを認知してもらうために行ったマーケティング施策など、複数の観点でお話します。
ただサービスを開発するだけでなく、実際に多くの方に使ってもらえるようなサービスに育てたいという想いを持った方のお役に立てるようなセッションにしたいと思います。
Azure AI Servicesの背後にあるAI Platformの仕組みをシンプルに解説します。データ処理からモデルの構築・デプロイまで、Azureが提供するAI基盤の全体像を探りながら紹介します。データの収集と前処理において、データパイプラインの構築方法を解説します。また機械学習モデルの構築とトレーニングでは、モデルの開発、ハイパーパラメータのチューニング、モデルの評価方法について紹介します。さらに、モデルのデプロイと運用では、スケーラブルなデプロイ方法を紹介します。
RailsとAmazon Auroraの接続における、DBのフェイルオーバー発生時の接続の問題とその解決策について話します。 具体的にはRailsのコネクション管理、様々なgemの使用の検討やクラウド側での運用による回避策の検討、そして最終的に選定したRDS Proxyの導入について詳しく解説します。
このセッションを通じて、トラブル発生時でもアプリケーションを正常に稼働し続けられるための技術選定や運用コストの比較を、アプリケーション側とクラウド側の両方の視点で伝えます。また、RailsアプリケーションとAuroraの接続に関する実務的な知見を共有し、技術的な課題の解決に向けた一助となることを目指します。
JSONのユニークな利用例として自作言語「ExprML」の開発について紹介します。
ExprMLは「JSONで式を記述」「他言語に組み込み可能」をコンセプトとした自作言語です。「汎用データ記述フォーマットJSON」と「JSONの型・制約を規定するJSON Schema」を活用することで次の開発上の利点を実現します。
発表では上記解説の他に以下のデモを実施します。
サービスを作る上で、維持費と収益を獲得できるかどうかは、非常に重要な要素です。
StripeのDeveloper Relationsとしてユーザーや社内のプロジェクトに関わった経験と、
前職や個人開発におけるマネタイズに関する経験と想いを元に、ウェブサービスを開発する際のマネタイズ手法や料金モデル、そしてリリース後に発生しがちな請求管理に関するアレコレを紹介します。
トピックの例
・初期フェーズで決済・サブスクリプション機能の開発をやるべきか否か?
・開発工数と売上は比例しない話
・本当にあった、サブスクリプション請求管理で頭が痛くなる話
GitHub Copilotをはじめとする生成AIツールの登場により、コード上でのインタラクティブなサポートや、組織のコードベースを活用した開発が可能になった今、開発者には「生成AIとのコラボレーションを強化できるコードベース」を育てることが求められます。
このセッションでは、DevOpsの歴史を振り返り、IaC(Infrastructure as Code)など「X as Code」の概念がどのように生まれ、インフラやパイプライン、構成管理のコード化が開発プロセスをどう変えたのかを概観します。そして、GitOpsという新たな開発文化の可能性を探り、生成AI時代に適したコードベースの構成や運用のための技術プラクティス、組織的な課題についてお話します。
プログラミング言語にはドキュメンテーションの仕組みがあります。Rubyには標準添付ライブラリとしてRDocというツールと記法が存在しますが、広く使われているのは標準ではないYARDというツール及び記法であるなどエコシステムが統一されていません。
そこで私は今、標準添付であるRDocに各種ツールを統合するための基盤整備を行っています。具体的にはRDocに拡張機能の仕組みを導入することで、将来的なドキュメンテーションへの要求にRDocのみで応えられるようになることを目指します。このプロジェクトは2024年度Rubyアソシエーション開発助成にも採択されています。
このトークではRDoc拡張機能基盤プロジェクトの概要とこれまでの進捗を説明し、さらにRubyにおける「たのしいドキュメンテーション」という最終目標に関連したいくつかの計画についてお話できればと思います。
2021年にGartne社が提唱したCloud Native Application Protection Platforms(以下CNAPP)はそれ以降、多くのベンダーによってクラウドセキュリティ、クラウドネイティブセキュリティ向けに開発されたセキュリティ機能を多く取り込むようになりました。サイロ化されていた機能が一つのプラットフォームで活用できるようになることで優れた相関効果を期待することができます。仮想マシンインスタンスや仮想ネットワーク、コンテナやサーバーレス、CI/CDパイプライン向けに留まらず、昨年からは生成AI向けセキュリティ機能も有するベンダーが登場してきました。
本公演では、クラウドベンダー・サードパーティベンダーのCNAPPが有するセキュリティ機能の紹介と企業利用における導入・運用課題について解説したいとおもいます。
サイバー攻撃への対策として、近年はEDRやXDRのような攻撃検知製品が企業環境で盛んに導入されています。日々進歩するサイバー攻撃技術に対策するべく、Windows OS自体にも様々なセキュリティ機能が導入されており、EDRやXDRのような攻撃検知製品でもそれらの機能を攻撃検知に活用しています。本講演では、こうしたWindows OS自体に組み込まれているセキュリティ機能を中心に、EDRやXDRの機能の実装を支えている技術について実演を交えて解説します。
Amazon Aurora(以下Aurora) MySQL 5.xの標準サポートが10月で終了し、Postgreも12.xが来年2月末で標準サポートが終了するなど、Auroraのバージョンアップ対応を迫られている方も多いと思います。
しかしAuroraバージョンアップについて「どんな手法があるのか」「それぞれどんな特徴(メリット・デメリット)があるのか」が分からない、という方も多いのではないかと思います。
そこでこのセッションでは、Auroraバージョンアップの手法として用いられる
・ インプレースアップグレード
・ Blue/Greenデプロイ
・ クラスタークローン
について、その特徴(メリット・デメリット)やユースケースなどを紹介したいと思います。
またMySQL5.7→8.xにおいて仕様が大きく変わった文字コードの挙動について、パラメータグループを交えて解説したいと思います。
昨今のメジャーなプログラミング言語では、 map
や filter
, flatMap
といった高階関数が当たり前のように標準実装されています。
しかしながら、SNS上ではこういった高階関数を使ったコードは可読性が低いとか読み辛いといった声もしばしば目にします。
このセッションでは、高階関数を使ったコードにおいて読みやすくなるケースと読みにくくなるケースについて紹介し、なぜ読みにくく感じるのか読みやすくするためにはどのようにすれば良いのか、を紹介したいと思います。