みなさん、こんにちは!マイクです。今日は2024年11月22日、木曜日ですね!今日も「zenncast」をお聴きいただき、ありがとうございます。さて、今日はZennでトレンドの記事をいくつか紹介しますので、ぜひお楽しみに!
さて、前回ご紹介した記事についてですが、今回はちょっとお休みです。では、早速今日の内容に移りましょう!
今日紹介する記事は全部で5本です。さっそく一つずつ見ていきましょう!
最初の記事は、タイトルが「Cloud Run のログを標準出力に出したらメモリが劇的に節約されてパフォーマンスも良くなった話」です。こちらの記事では、ダイニー社がCloud Runを4年以上利用している中で、ロギングの方法を変更した結果得られたメリットについて紹介しています。
具体的には、これまで`@google-cloud/logging-winston`を使っていたのを、標準出力に出力するように変更したところ、メモリ使用率とCPU使用率が大幅に改善されたとのことです。Cloud Runでは標準出力に書き込むことで自動的にCloud Loggingに記録されるため、この選択がされたわけですね。特に、ランチやディナーのピーク時でも安定性が向上したことがグラフで確認できたそうです。
また、以前はログの記録に3時間以上の遅延があったのが、変更後はその問題が解消されたとのこと。ログを早く出す方法として標準出力への記録が一番パフォーマンスが良いとされ、他の方法も検討されたようです。今では、ダイニー社はこの標準出力によるログ記録を採用して、アプリケーションの安定性やパフォーマンスを向上させているそうです。
次の記事に移ります!タイトルは「【Slidev 超入門】エンジニアだからこそ作れるつよつよスライドの作り方!」です。こちらの記事では、エンジニア向けのプレゼンテーションツール「Slidev」の使い方が詳しく解説されています。
Slidevは、MarkdownとVue.jsを使ってスライドを作成できるライブラリで、特に開発者にフレンドリーな機能が充実しています。Markdown形式でスライドを記述でき、インタラクティブな要素を加えられたり、PDFやPPTX形式でエクスポートできたりするのが特徴です。Gitによるバージョン管理も可能で、デザインの統一性を保ちながらスライドを編集できるのも嬉しいポイントですね。
記事では、Slidevの基本的な使い方や、スライド作成の際のポイントが紹介されています。アニメーション機能を使って、視覚的に魅力的なスライドを作ることもできますし、日本語フォントの設定もサポートされているため、エンジニアにとって非常に使いやすいツールと言えるでしょう。
。.
次の記事に進みますよ!タイトルは「LangGraphにて入力情報が不十分な場合に、ユーザへ追加質問をするAIエージェントを作る方法」です。この内容は、LangGraphを使って、ユーザの入力が不十分な場合に追加質問を行うAIエージェントの実装方法について解説しています。
前回の内容では、特定の質問に答えるエージェントを構築したそうですが、今回は「詳細確認機能」を追加するということです。例えば、ユーザが「明日の天気を教えて?」と尋ねた時に、午前か午後かの情報を確認する仕組みを導入したとのこと。
実装はGoogle Colabで行われ、動的ブレークポイントを設定して再質問する機能が実装されています。具体的には、ユーザの質問が不十分な場合にAIが必要な詳細を引き出すために再質問を行うというものです。このAIエージェントは、ユーザからの入力を受け取り、それに基づいて適切に回答を生成します。
記事では実際のコードも紹介されていて、状態管理にPydanticを使用している点も興味深いですね。次回の展開として、さらに複雑な機能を追加し、Webアプリケーションとして公開する予定があるそうです。
。.
次の記事は「ClineとローカルLLMを用いたNext.jsアプリ開発に挑戦〜Qwen2.5-Coder-32B-Instructを使ってみた(後編)〜」です。この記事では、Qwen2.5-Coder-32B-Instructを使用して、APIやDB機能を備えたNext.jsアプリを開発する過程が紹介されています。
開発環境にはUbuntuとMac Studioが使われ、まずTODOアプリを作成し、その後にランダムな引用を表示する機能を追加したそうです。DB機能の実装では、sqlite3を試みたもののエラーに直面し、最終的にはbetter-sqlite3を使って対応したとのこと。
この開発プロセスを通じて、エラー修正が多くの学びの機会になったそうですが、処理速度が遅く効率が課題になったようです。ローカル環境での開発は機密性が求められる場面では有用ですが、クラウドLLMを使った方が迅速かつ高品質な成果物が得られることも多いそうです。
記事では、開発のプロセスや注意点、ローカルLLMとクラウドLLMの比較、得られた知見について詳しく述べられています。次回は、より自動化されたプロセスやGit管理機能の強化が期待されています。
。.
最後の記事は「利きx64アセンブラ」です。こちらの記事では、x64アセンブラにおける異なるアセンブラが生成するバイト列の違いについて探求しています。対象となるアセンブラはMASM、GAS、NASM、YASMの4種類です。
具体的には、いくつかの命令を用いて各アセンブラの出力バイト列を比較しているとのこと。特に`add eax, ecx`の部分では、オペコードの選択により異なるバイト列が生成されることが確認されたそうです。
また、GASはAT&T形式を使用するため、レジスタの順序や即値の表記が異なる点に注意が必要です。記事では具体的な出力も示されていて、各アセンブラの特性を理解することで、アセンブラの選択やプログラムの最適化に役立つことを伝えています。
それでは、今日はここまで!今日ご紹介した記事をおさらいしますと、
1つ目はCloud Runのログ改善、
2つ目はSlidevの使い方、
3つ目はLangGraphのAIエージェントの実装、
4つ目はNext.jsアプリ開発の挑戦、
そして最後はx64アセンブラのバイト列の違いについてでした。
次回またお会いできるのを楽しみにしています。詳しい内容はショーノートに書いてありますので、ぜひチェックしてくださいね!また、番組の感想も募集していますので、お気軽にお寄せください。それでは、またね!