プログラミング

拡張機能でsandboxではなくWASMでeval()してみた

拡張機能のManifest V3ではsandbox環境で安全にeval()を実行できますが、FirefoxではこのAPIがサポートされていません。そこで、ChromeとFirefoxの両環境での単一実装と安全性を考慮してQuickJS(WASM)を利用したeval()を試してみました。

6年前のブラウザ拡張機能をWXTでリニューアルした

Manifest V3 対応について気になっていた今日この頃。 6年間放置していたブラウザ拡張機能を WXT でリニューアルしました。

Goのテンプレートエンジン「templ」が便利(TinyGoでも動くよ)

あらすじ Go で素朴な HTML を返すアプリケーションを動かしたくなり、 Wasm に変換してデプロイすることができる Cloudflare Workers を使うことにしました。 Cloudflare Workers に Go アプリケーションをデプロイする際には、id:f_syumai さんのテンプレ…

はてなブログを「Shiki | 式」でシンタックスハイライトする

本ブログでも使っている、Syntax Highlighter `Shiki` をはてなブログに導入する方法をここに記します。

Computational Themingをどこでも。ここでも。

Computational Themingで遊びたいWebサイト向けに、便利グッズを以前作成したのでご紹介します。

Cloudflare Workersで手軽にRESTful APIを公開する

今回は、OpenAPI Specification から良い感じのドキュメントサイトを提供してくれるサービス bump.sh を見つけたので、RESTful API を用意して試してみます。 ドキュメントサイトがあることで、API が公開されていることがより分かりやすくなるでしょう。 こ…

YouTube の iframe を埋め込んだまま PageSpeed Insights のスコアを改善する

4行で YouTube から提供される動画の埋め込みコードをそのまま使うと PageSpeed Insights のスコアが落ちる。 しかし、lite-youtube-embed などのライブラリでダミー画像を表示しておくと再生するまでは偽物感が残ってしまう。イヤだ! そこで、ページが表示…

React Router v6.4 で v5 から脱出したい

React Router v6 がリリースされてから凡そ半年が立ちました。 そして、v6.4 の足音が近づいてきています。 まだ v5 を利用している方は、これを機にバージョンを上げてみませんか? 上げたくても上げられない もちろん訳あって上げられない場合もあるかと思…

Remix & Cloudflare Pages で KV を触る

作業ログです。 Remix のアプリを Cloudflare Pages にデプロイして KV にアクセスするまでをやってみました。 github.com 結果としては、id:leader22 さんの記事*1と同じところにハマりました。 こちらの記事も参考になるかと思います。 違いはTypeScript用…

cdkで定義したDynamoDBのテーブルをDynamoDBLocalに作る

この記事はPRを含みます cdkを使っている場合のDynamoDBLocalには、どのようにテーブルを作ってますか? 皆さんは、アプリケーションの構成をcdkによって定義している際のローカル開発環境のDynamoDBのテーブル作成はどうしていますか。 LocalStack - A full…

TypeScript: 渡した値が返ることを保証したい

メモです 例えばstyle要素のように、渡せる値が限られているプロパティに動的な値を渡したいとします。 このとき、渡す型を明示しないで戻り値の型を判別可能な関数を用意します。 イメージとしては以下のような型を持つpositionに、indexに応じて動的に値を…

使っているnpmパッケージの名前が変わってた

依存パッケージのアップデートはしていますか? npm-check-updates をコマンドラインから実行したり、自動化するならRenovateを使っているのではないでしょうか。 今回は、4ヶ月もアップデートから取り残されていたパッケージを見つけたお話です。

Vue3でFirabaseログイン

zenn.dev 2年前に書いたVue vuexでfirebaseのログイン保持を、Vue3+Composition APIで書き直したものです。 未だにちょくちょく読まれているようなのですが、流石に2年前のバージョンのチュートリアルは申し訳ないと感じたので書き直すことにしました。 需要…

MacでiBeaconをエミュレート

golang ble ibeacon peripheral advertise macos darwin

Amplify AppSync 自動生成したコードのsubscriptionで引数を利用する。

Amplify AppSync amplify add apiを行った時に、クエリ・ミューテーション・サブスクリプション用のコードを自動生成するか聞かれます。これは、自動生成を行った場合に悩んだ箇所です。 生成もとのschemaが以下 type Subscription { onCreateMessage(roomId…

angular amplify publishで403 forbidden

amplify publishを行なった場合にデプロイが終わり、配信ページを訪れるとforbidden になる。

競プロ golang 複数行文字列を配列で返してテストで使う

複数行文字列をリストにしたい パッケージ化しました

ハードウェア乱数生成

ハードウェア乱数生成でパスワードを生成する

パフォーマンスメトリック

ネットワークのパフォーマンスメトリックを知る

VuePress theme デフォルトをいじる

VuePress theme Noto Sans JPに変更