wasmを使ってOpenCVをブラウザ上で動かすこの記事では、OpenCVとそれを呼び出すコードをC++で記述し、Emscriptenを用いてwasmに変換することでブラウザ上からOpenCVの機能を利用するサンプルを紹介します。
goのローカル開発環境でもo11yスタックを活用したい近年、ソフトウェア開発におけるObservability(観測性)の重要性がますます高まっています。通常、本番環境にモニタリング環境を導入しますが、ローカル開発でも同じ環境を簡単に起動できることが理想的です。この記事では、ローカル環境でo11yスタックを迅速に立ち上げ、実際に使用できるサンプルを通じて、その手法とメリットを詳しく解説します。
xk6でk6にカスタム関数を追加するk6はjavascriptでシナリオが書ける負荷試験ツールですが、es6のみしかサポートしていないため、cryptoをはじめとした複雑な処理を呼び出すことができません。k6は実のところ拡張性が高くつくられており、xk6というビルドツールを使うことで、独自のモジュールを追加したk6を簡単にビルドすることができます。本記事では、xk6を使ってk6にカスタム関数を追加する方法を紹介します。
CosmosのAppHash不整合をデバッグするCosmosSDKで作成したブロックチェーンの、非決定的な処理によるConsensusErrorを解決する1手法をまとめたので紹介します。
Goプログラムのトレースを取ってGrafanaCloudで可視化するGoでAPIサーバーを構築していると、「エラーログがでたけどこのログはどのリクエストに紐づいているんだっけ?」となることが多々あります。traceは主に処理時間の内訳や呼び出しの依存関係を示してくれますが、スパンのコンテキストにいろんな値を保持しておき、それをエラーログと結びつけることでデバッグに便利に使えます。また、自身でtraceやlogの記録・可視化を行う環境を構築することは面倒ですが、GrafanaCloudの無料枠を使うとこれが快適に行えるので今回はこれを活用します。
apacheのログをpromtailでメトリクス化するwebアクセスのHTTPステータスがどうなっているか、レスポンスタイムがどれくらいかを可視化したいですよね。promtailを使うとログを転送すると同時にログ内容を解析してメトリクス化ができるので、その機能を使ってこれを実現してみました。
apacheでリバースプロキシするとmisskeyが連合できなかったmisskeyインスタンスを建て、apacheをリバースプロキシとして利用したときに ProxyPreserveHost 設定がなかったため連合がうまくいかなかったトラブルレポートです。
github+awsでhelmレポジトリを構築する個人でk8sを活用し始めると、個人用のhelmレポジトリが欲しくなると思います(私は欲しくなりました)。helmレポジトリはwebサーバとしてのホストが必要なので少々めんどうなのですが、私はgithubでコードを管理し、アーティファクトをs3+cloudfrontで配布する方法を取ったので紹介します。
新テーマと振り返りご挨拶
もう1月も半ばとなってしまい今更感もありますが、あけましておめでとうございます。 昨年も多くのご縁があり、大変お世話になりました。何卒今年もよろしくお願いいたします。
NeosVR最大ケモノコミュニティ「ケモノhub」を支える技術この記事はNeosVR Advent Calendar2022 15日目の記事です。
3枚目が作られていたのでうっかり甘えて登録してしまいましたが、実際この記事はNeosVR本体の内容が殆どなく、サーバー運用の話が99%の特殊な記事となっているので賞味番外編です。 「こういうのもあるんですね」という気持ち流し読みしていただけたら幸いです。
コンポーネントの値を外から操作したい!RefIDオフセットの世界この記事はNeosVR Advent Calendar2022 15日目の記事です。
NeosVRで任意のアイテムのコンポーネントを取得したり、その中のフィールドにアクセスしたい!そう思ったこと、一度はありますよね。
NeosVRでは、一般的な方法でではslot(Unityで言うGameObjectのこと)にアタッチされているコンポーネントの一覧やそれぞれの参照、 そして、そのコンポーネント内のフィールドにアクセスするためには、事前に自らLogiXツールチップを使ってインターフェイスノードを出したり、インスペクターから ReferenceProxyを介してドラッグアンドドロップしておく必要があります。
大抵の場合はこれで十分ではあるのですが、アバターを自動でカスタマイズしたり、外からインポートしたアイテムなどを一括で大量に編集したいなどのユースケースにおいてはこれができないと不便です。
…なのですが、実は、“RefID"を駆使するとこれが可能になります。
DiscordBotをk8sにデプロイするチュートリアル最近勉強も兼ねておうちサーバーにKubernetesを構築したのですが、 おうちkubernetesクラスタあるある「特にデプロイするものがない」が当たり前のように発動してしまいました。 せっかくなら自分でアプリケーションを作ってデプロイ、したいですよね(というかその勉強も目的のうちの1つなのだった。)
最近偶然Discordbotを作ってk8sに上げる機会ががあったのでついでにチュートリアルとして記事にまとめておくことにしました。 極力複雑なことを省いて、ひとまず動く状態まで持っていくというコンセプトになります。
[C++]wsl上からwindows向けにmakeするwslではexeがexecutableとしてマークされており、通常バイナリと同様の手順で起動することができます。
当然linuxのsyscallが使えるわけではないので、起動すると言ってもホスト側で起動してくれるだけですが、これは絶妙に便利な機能ですね。
参考
たとえば、clip.exeがpbcopyと同じノリで使えるのもこれのおかげです。
ConcourseCIでもパラメーターつきビルドがしたいConcourseCI、見た目が良くて、何よりジョブがいい感じに可視化されるので、「何をやってるのか」がひと目でわかっていいんですよね。ドキュメント性があるというか。
Discordのslash commandでSQSにメッセージを送る誰得??? ちょっとニッチすぎてこんなこと検索するひとおるか…? という感じですが備忘録備忘録
Discordの普通のbotはソケットをつなぐ必要があるので、サーバーレス化できないのですがslashcommandは"Interaction Endpoint"というHTTPでおしゃべりするエンドポイントを用意するだけで作れちゃうので、AWS Lambdaで安く運用できるという文脈があります。
ConcourseCI+VaultでおうちCI環境構築(今回はいつも以上に備忘録味が強くて雑です。ごめんね!)
おうち用にタスクランナー欲しくなること、ありますよね…
大体タスクランナーといえば老舗だとJenkins、最近だとgithubActionsのself-hosted runnerが激アツですが、 ConcourseCIというのも存在していることを最近知りました。
Terraform-provider-esxi + cloud-initでおうちもIaCIaCいいですよね。
なのでこの記事ではTerraform-provider-esxiを使って、おうちESXIをTerraformで管理してVMを立ち上げ、cloud-initを活用してTeleportを自動セットアップします。 子ノードを作成して接続まで一応するのですが、Teleportはノードの接続にinviteトークンを発行する必要があり、そこだけ自動化できていません。(今後の課題)
Dockerでお手軽にTeleportを試すTeleportとは
teleportは一言で説明するのが難しいのですが、次世代の踏み台サーバーのようなアプリケーションです。 IDとパスワードだけの認証だけではなく、二要素認証に加えてGithubでのサインインなど様々な認証方法を取って、 ユーザーにsshを始めその他のwebアプリケーション、Kubernetes、Database、Remotedesktopへのアクセスを許可することができます。
GithubActions + TerraformでAWS開発この記事ではGithubActionsでTerraformを使って、AWS環境をコードで管理するチュートリアルです。 GithubActionsに実装されたOIDC認証を用いて、トークンなしにロールを割り当て、AWS Lambda + API Gatewayのエンドポイントを作成します。
Reactをelectronでチョッパヤでアプリ化する本記事ではいかにチョッパヤでアプリ化するかというところに焦点を当てるので、開発時の便利さ(live reloadなど)は省きます。この辺をいい感じに設定する記事も後日執筆予定です。
MMC22に参加しましたNeosVRには"Metaverse Maker Competition"というイベントが毎年開催されています。
このイベントはNeosVRで、ワールドやツール、ゲームやアートなどのコンテンツを1ヶ月で作って競い合うという、いわば長めのハッカソンみたいなイベントです。 全部で9つのカテゴリーが存在し、それぞれで優勝作品1つと、1~2個の佳作が選ばれます。 賞金が総額30万ドル(仮想通貨で、大会開始前のレートの換算)もある大規模なイベントで、今年は438名の参加、197作品の応募がありました。
[URP]Unityシェーダーレシピ集はじめに
最近ゲームをチマチマ作るにあたり、シェーダーのカスタマイズを施す機会が増えてきました。 シェーダーのカスタマイズって既存のもののライティングを微調整したり、最後に効果を付け足したりする程度なのでサクッと済ませたいのですが、 「あの効果ってどうやって作るんだっけ…」って手が止まりがちだったので即刻導入できるようにコードの断片集を作りました。
Spotifyのプレイリストをスプレッドシートに同期するSpotifyのプレイリストをテキストで欲しいな~と思ったのでスプレッドシートへの同期をGASで組みました。 あと、追加のメリットとしてはSpotifyアプリ上では見えないBPMやキーなどの情報も一覧にできるところがあります。
Unity URPで選択的アウトラインをつけるUnityのScriptable Render Pipelineの機能を使い、キャラクターなどのオブジェクト選択の際に用いられがちな、一番外側のアウトラインを効率的に描画する方法について紹介します。
スプレッドシートをjsonとして出力するボタンを作るはじめに
こんにちは。ととがんまです。 最近はこんな感じのゲームを作り始めました。
自分のVRMモデルがモクモクと作業してるところ見守るタイプの疑似拡大再生産箱庭ゲームができそう pic.twitter.com/wpCyMnAaWj
— ととがんま (@totegamma) May 8, 2021
このゲームを作るに当たり、こんな感じでアイテムや設置物等の情報をスプレッドシートで練っていました。
Github ActionsでAWS Lambdaにdeployする2023/01/16 記事中でGithubActions用にシークレットを発行していましたが、GithubActionsがOIDCに対応したことによりこれが不要になりました。これについて追記を行っています。
AWS Lambdaを監視してDiscordに通知するAWS Lambdaは非常に手軽なのですが、その手軽さ故監視が疎かになりがちですよね。今回はCloudWatchアラームを使ってLambdaの失敗を通知してみるようにしたのでその紹介です
pythonでのCコンパイラ作成に役立つライブラリメモこの記事では僕がスタックマシン用にC言語のコンパイラを作ったときに使ってみたフロントエンドのライブラリのメモ書きを残してます。あくまでも「手っ取り早く動かしたい」って人向けなので「きちんと自分で実装して理解を深めたい」っていう人向けではないです
golangでdynamoDBを叩くバイトでgolangでdynamodbを叩くlambdaを書く機会があったので、そのときに調べたことを軽くメモしています。 goはほんと触りたてなので、あたまわるコードや誤りが存分に含まれている可能性高いです。
Blender: パイメニューでメッシュ選択モードを選択emulate numpadオプションを使っていると、1, 2, 3キーでメッシュ選択モードが切り替えられなくなりますよね。個人的にはパイメニューでサクッとどれか1つに切り替えられるようにしたかったので、プラグインを作ってみた共有です
macでfaviconを作る(ローカルで)favicon、定期的に作るタイミングこそくるものの、そんな頻繁に作るものでもないので作り方忘れちゃうんですよね。もう人生で何回もググってる気がするのでいい加減メモしておこうと思います。
ユーロラックマウントのユニバーサル基板を作ったせっかくモジュール式のシンセなのだから、もっと気軽にモジュールを試作して使ってみたいですよね。そこでモジュールサイズのユニバーサル基板を独自発注してみました
モジュラーシンセ自作の基本情報まとめ自分がモジュラーシンセを自作するときに調べたことや、その情報源を自分用のメモとしてここにまとめます。 独自の調査になるので、間違いがあるかもしれません。また、これからも追記・修正をしていく予定です。
HUGOで固定ページを作成するロクにドキュメントを読んでいなかったので、このサイトでは今まで意味不明な方法で固定ページを作成していましたが、 今回セクションごとのパラメータをつける方法を調べた副産物で正しい方法(?)が分かったのでメモします。
HUGOで隠しコンテンツを配信するメインストリームに乗せる記事とは別に雑な記事もブログに載せたいこと、ありますよね(私はあります)。なので、HUGOでそのような記事の「見え方」を操作する方法を紹介します
HUGOをtwitterCardに対応させるTwitterに限らず、最近の様々なSNSではリンクを共有したときにリッチな表示をしてくれますよね。 このサイトもその表示に対応したので、その方法をメモしておきます。
Trello Cover Maker を作りました僕は普段Trelloでタスク管理をしているのですが、項目が増えすぎると横が長くなりすぎちゃうんですよね。 なので、一つのリストに見出し用のカードをいくつか追加して使っています。
HUGOで個人サイトを作成・ホストする個人でブログサイトを作り公開する方法は複数ありますが、最近はサーバーレスアーキテクチャが流行っているので できればそれを使ってみたいですよね。そこで注目しているのがHugo+AWSの組み合わせです。この記事では、Hugoの使い方・カスタマイズの仕方と AWSを用いてホストする方法までを解説します。
万能makefileができるまで「makeを使うと開発が非常に楽になる」というのは雰囲気でなんとなく分かりますが、 どういう問題をどう解決してくれるのかがイマイチ分からないので手をつけにくいですよね。
この記事ではmakefileの基本の書き方から、C/C++のコードを 依存関係を考慮して効率よくビルドできる makefileがどうできるのかを解説します。
みんなのととがんま(随時更新)