虎の穴ラボ技術ブログ

虎の穴ラボ株式会社所属のエンジニアが書く技術ブログです

MENU

【JavaScript】Deno についてのLT会 toranoana.deno #16 を開催しました【TypeScript】

皆さんこんにちは、虎の穴ラボのY.Fです。

2024年 5月 15日 (水) に Deno についてのLT会 『toranoana.deno #16』を開催しました。

yumenosora.connpass.com

イベント紹介

虎の穴ラボで、Deno の勉強会を開催する意図や、会社の案内をさせていただいています。

資料はこちらです。

speakerdeck.com

配信はアーカイブで視聴することも可能です。

www.youtube.com

開催概要

時間 内容 発表者
19:30〜19:35 虎の穴ラボについて 虎の穴ラボ 藤原
19:35〜19:50 Deno Queue を使ってOGP画像の遅延作成をやってみる 虎の穴ラボ 奥谷
19:50〜20:05 DenoでIMEユーザー辞書を統一的に出力するツールを作った WhyKさん
20:05〜20:20 Supabase Edge Functions で最近追加された AI 機能を使ってみた 4geruさん
20:20〜20:35 RenovateでDenoの依存ライブラリをアップデートしてみた Omochiceさん
20:35〜20:40 閉会の挨拶
20:40 終了予定

LT レポート

各LTの内容についてレポートします。

Deno Queue を使ってOGP画像の遅延作成をやってみる 虎の穴ラボ 奥谷

speakerdeck.com

Deno Queuesを使ってバックグラウンドでの画像変換を行った発表です。

Deno Queuesは、Deno KVを利用したメッセージキューサービスです。Deno自体に組み込まれているため、サードパーティライブラリなど不要で使えます。

今回の発表では、このDeno Queuesを利用して、一般的には時間や負荷がかかる画像変換処理をDenoで実施するといった内容が紹介されました。

  • ベースはDeno + Fresh
  • インフラはDeno Deploy
  • 画像処理にはsatori+svg2png-wasmを使ってSVGから画像を生成

よく必要とされる処理のパターンだと思います。画像処理に限らず、重い処理をバックグラウンドで実行したいなど興味があれば是非見てみてください!

DenoでIMEユーザー辞書を統一的に出力するツールを作った WhyKさん

www.docswell.com

各IME間での、ユーザー辞書におけるテキスト形式のバラツキを考慮しつつ、各IMEに適した辞書ファイルを出力するといった発表です。

発表のモチベーションとしては、

  • IMEのフォーマットが統一されていない
    • 特に品詞が統一されていない
  • チームやグループで大量の造語が必要な場合など、誤字が増えたりするので統一的なユーザー辞書を設定することで変換の時点で介入したい

といったものがあるということでした。

上記の問題を解決するために、ライブラリが豊富で、環境がすでに整っているDenoを利用したといった内容でした。

DenoはCLIにもできるし、シングルバイナリなどへのビルドも可能なので、こういったツールでの利用もかなり有用そうだなーと思いました。

Supabase Edge Functions で最近追加された AI 機能を使ってみた 4geruさん

speakerdeck.com

最近良く話に聞くSupabaseについての発表でした。

SupabaseはFirebaseの代替を謳っているサービスです。Postgresのデータベース、認証、エッジコンピューティングなどの機能を兼ね備えています。 2024/04に一般提供(GA)になりました。

今回の発表では上記のSupabaseに組み込まれたAI機能をDenoから使ってみた発表になります。

  • LlamaをベースにしたAI機能
  • ChatGPTのようなチャット機能
  • Embedding APIが提供されているので類似検索がしやすい
  • 簡単なコーディングで上記AI機能が利用可能

感想としては、DenoのSupabaseライブラリからそのまま利用できるようだったので、かなり簡単に使えそうだな〜と思いました。 OpenAIのAPIなど利用する場合、経験上ある程度の実装が必要なので、比べるとかなり簡単そうでした。

RenovateでDenoの依存ライブラリをアップデートしてみた Omochiceさん

www.docswell.com

Deno依存関係の自動でアップデートしてくれる仕組みを作った発表になります。

世の中に色々依存関係の自動アップデートの仕組みはあるものの、Denoに対応しているものは多くありません。 この発表では、Renovateという依存関係管理ツールを使い、Denoの各パッケージのアップデート管理をしてみたといった内容になります。 

  • deno.landやjsr:、npm:、deno.jsoncのimport-mapに関する依存関係アップデート
  • 問題点としては、stdライブラリの書式が変わったので対応できていない点や、lockファイルに対応しきれていない点、jsrの情報が足りていない点など

まず、Dependabotは使ったことがありましたが、他にも色々あるのを知ることができました。

依存関係は手間がかかると放置されがちなのに、セキュリティリスクは高くなったりするので、自分もより良い方法を見つけたいなと思いました。

まとめ

今回は、LT4枠での開催となりました。
Deno単独の話にとどまらず、外部サービスのDenoからの利用や、Denoの依存関係管理など、開発環境周辺の話もありました。

今回でもう16回(0回目含めると17回目)になります。最近はだいぶ実利用例なども見受けられる気がしてきています。 今後も継続して開催していきますので、色々な発表があるといいなーと思います!

LT枠は大募集です。是非、よろしくお願いします。

採用情報

虎の穴では一緒に働く仲間を募集中です!

この記事を読んで、興味を持っていただけた方はぜひ弊社の採用情報をご覧下さい。

カジュアル面談やエンジニア向けイベントも随時開催中です。ぜひチェックしてみてください。 toranoana-lab.co.jp