2023-01-01から1年間の記事一覧

RabbitMQを使って開発言語の異なるアプリケーション間のメッセージ処理を試す

はじめに エンジニアの松原です。これまでの記事( Kafkaその1 Kafkaその2 )でもメッセージキューイングに関するトピックを扱っていましたが、今回は他のメッセージキューイングのサービスのうち、RabbitMQについて取り上げたいと思います。 synamon.hatenabl…

Gitリポジトリから意図しない改行コードを出来る限り排除する

Git

歴史上の都合により、Windowsは改行コードにCRLF、Mac及びLinuxはLFを使用しています。 Linuxやmacプラットフォーム上で動くアプリをWindowsで開発している時、例えば.sh等を書いている時は、ファイル内にCRLFが混入すると、改行コードを誤認識してしまって…

今更だけどYouTube LiveのメッセージをUnityで取得してみる

こんにちは、エンジニアの渡辺(@mochi_neko_7)です。 最近は趣味で専らLLM周辺の技術を触ったりプロトタイプを作ってみたりしていますが、今年のGWはずっと気になっていたAITuber*1を触っていました。 まとまってはいませんがAITuberの詳細が気になる方は…

Generative Agentsを作成するAPIサーバと管理画面をローカルで作って遊んでみた

はじめに こんにちは、エンジニアのクロ(@kro96_xr)です。 先月の頭にGenerative Agentsに関する論文が話題になりましたね。 arxiv.org そして、このGenerative AgentsについてはLangChainで実装例が提供されています。 python.langchain.com この機能をWebA…

Babylon.jsとreact-babylonjsで3Dモデルを描画してみた

こんにちは、フロントエンドエンジニアの堀江(@nandemo_3_)です。 2023年4月21日にBabylon.jsのバージョン6がリリースされ、界隈では話題になっておりますが、メタバース業界にいるフロントエンドエンジニアとしては、キャッチアップしておきたいと思い、B…

RecyclableMemoryStreamを使ったメモリプールのご紹介

こんにちは、エンジニアの庭山です。 Microsoftが公開している Microsoft.IO.RecyclableMemoryStream というC# 用のライブラリの紹介をさせて頂きます。 目次 目次 System.IO.MemoryStreamに特化したプーリング コードの典型例 活用例 メモリ管理方法 スロッ…

LangChainをFastAPI経由でUnityで利用する

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 先日、LangChainというLLMを扱うPythonライブラリをDocker上で動かしてみた話を記事で紹介しました。 synamon.hatenablog.com 今回はその発展として、ローカルDocker上のLangChainを…

TypeScriptでサードパーティー性ライブラリに依存しないように実装を考えてみた

はじめに エンジニアの松原です。最近業務でAWSのLambda(Node.js)を利用した機能を開発しています。素のJavascriptを書いていくのは躊躇われたので、TypeScriptで書いています。 今回はTypeScriptを使ってコードを書いていくうちに、継承やインターフェース…

ftpサーバーにupload/download-artifactsするGitHub Actionを作った

はじめに GitHub ActionsとNASへのアップロード アップロード方法の検討 公式upload-artifactアクションのカスタマイズ フォークしたupload-artifactアクションの実装 自作したActionの感想 GitHub Marketplaceへの公開 まとめ はじめに 株式会社Synamonのエ…

LangChainをLocalのDockerで動かしてみる

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 最近常に話題になっているChatGPTを始めとするLLM(Large Language Model)ですが、APIを利用して単にChat(正確にはChat Completion)をする以外に少し凝ったことをしたいというケ…

React Docsの「You Might Not Need an Effect」をしっかり理解する

こんにちは、フロントエンドエンジニアの堀江(@nandemo_3_)です。 だいぶ時間がたってしましましたが、 Reactのドキュメントが一時、Twitterで話題になりました。 話題となったドキュメントはこちらです。 react.dev タイトル「You Might Not Need an Effe…

Unityに最適化した音声デコードライブラリを自作する上で工夫したこと

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 今回はUnityで音声データをランタイムでデコード/エンコードするライブラリを作った話を紹介します。 先日、OpenAIのChatGPTやWhisperをWebAPIで利用できるようにする話を記事で紹介…

ServerlessFrameworkを使ってChatGPT APIを使ったLineBotを作る

はじめに こんにちは、エンジニアのクロ(@kro96_xr)です。 最近、5年くらい前にQiitaで書いた記事にちょこちょこいいねをいただくんですよね。 qiita.com なぜ今更この記事を見てもらえているんだろうと考えていたところ、ChatGPT APIを用いたLineBotの作成…

雰囲気でDocker Composeを触っている状態から脱するために調べたこと(2023)

エンジニアの岡村です。 自分はサーバーがメインではなく、あまり業務でガッツリ触るわけでもないのですが、最近それなりに活用するようになってきました。しかし、ネット上の日本語情報を読んでいるだけではこれの書き方が正しいのかよく分からない、と悩む…

OpenAIが公開したChatGPTとWhisperのAPIをUnityでサクッと触れるようにした

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 つい先日の2023/03/01、OpenAIがChatGPTとWhisperの新しいAPIを公開して話題になりましたね。 利用料金も1/10程度になり、気軽に利用しやすくなりました。 これらはWeb APIとして公…

package.jsonのリリースバージョンをGitHub Actionsで更新する

こんにちは、フロントエンドエンジニアの堀江(@nandemo_3_)です。 フロントエンドチームの業務改善の観点から、以前からissueに上がっていた本件を調査、対応しましたので備忘録として紹介いたします。 背景 フロントエンドチームが開発、運用しているSYNM…

C#からC/C++のネイティブプラグインを使用するときに注意すること

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 本記事では、Unity/C#からC/C++で作られたネイティブプラグインを呼び出す、いわゆるC# Bridgeなどを作成する際に知っておくべきこと、注意すべきことを紹介します。 ネイティブプラ…

Kinesis Data Firehose+S3を使ったログ基盤をTerraformで構築する

はじめに こんにちは、エンジニアのクロ(@kro96_xr)です。 今回はサーバレスなログ基盤を構築、検証してみたため、その内容について書きたいと思います。 検証を実施した背景 弊社はSYNMNというアプリを提供していますが、将来的にアプリ内でのユーザー行動…

Unityのアプリ上でWebAssemblyを動かしてみる

WebAssemblyのランタイムのWasmtimeをUnityにネイティブプラグインとして組み込み、Editor上で動作確認ができました。 その過程で得られたWasm周辺の知見を紹介します。

Unity 2021.3.0f1でQuest開発している時に遭遇したUIが消える不具合について

エンジニアの岡村です。 先週うぃすきーさんから障害対処の記事が出ていたので、自分も重大度としては低いですが、社内開発中に発生した不具合と、それが解決するまでの過程を作業記録として書いてみることにしました。何かの参考になれば幸いです。 結論 Un…

Firebase AuthenticationでのサインインがiOS16.1でできなくなった際の障害対応記録

経緯 うぃすきー(@whisky_shusuky)です。 2022年10月頃にiOS16.1においてfirebase authenticationのリダイレクトを使ったサインインができない事象が発生しました。 github.com 発生直後のアプリリリースでは、 OS側のアップデートが原因である 他のデバイス…

ウェブサイトのユーザー行動分析のための仕組みについて考察する(1)

はじめに エンジニアの松原です。一時期ホームページなどでアクセスログやユーザーの行動履歴を収集、解析するためにGoogle Analyticsを活用することが流行っていましたが、私自身は実際は裏側で動いている仕組み自体を知らないまま使っていました。 以前日…

ChatGPTを使ってOpenAPIの定義を作成してモックサーバを立てる

こんにちは、エンジニアの黒岩(@kro96_xr)です。 はじめに ChatGPT、流行ってますね。 openai.com VSCodeの拡張を使ってコードレビューをしたり qiita.com SQLを書いてもらったり ChatGPT、SQLを書くのに使えるな。細かいテーブル定義を教えなくてもいい感じ…

Enhanced Scroller × MVPパターン × UniRxを使ってUnityで高機能なScrollerをいい感じに実装する

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 現在Synamonが開発しているサービスのSYNMNでは、2DUI(uGUI)のScrollerの実装にはUnity標準のScrollRectではなく、有料アセットのEnhanced Scrollerを使用しています。*1 Scroller…

GitHub Actionsを使ってアプリを開発するときのワークフロー記述の個人的ベストプラクティス

皆さん、あけましておめでとうございます! エンジニアの岡村です。 今年もSynamon's Engineer blogでは皆様の開発の参考になることを願って情報を発信していきます! GitHub Actions GITHUB_STEP_SUMMARYに、後から確認出来るようにワークフローのパラメー…