みかづきブログ・カスタム

基本的にはちょちょいのほいです。

super経由で親のメソッドを呼び出す 💻

これまで、superの使い道は、 class Child extends Parent { constructor(params) { super(params); } } という感じで、constructor内で実行することだけだと思っていたのですが、 いまさらながら、super.prop および super[expr] 式にて、親のメソッドを呼…

累積レイアウトシフト(CLS)をJavaScriptで計測する 💻

いままで、サーチコンソールで計測していたので、開発中はどうやって計測しようか悩んでいたのですが、JavaScriptで計測できることを知りました。search.google.com new PerformanceObserver((entryList) => { for (const entry of entryList.getEntries()) …

yarnのバージョンを切り替える 💻

yarnpkg.comyarnのバージョンを切り替えたい時は、 yarn set version <version>にて、切り替えられることを知りました。 バージョンを指定することもできますし、 yarn set version stableで、安定版。 yarn set version latestで、最新版。 yarn set version classic</version>…

Next.jsのuseSearchParamsで+が読み取れない ➕

結論 URLエンコードを掛けましょう。 ことの発端 ざっくりこんな感じのコードを書いてまして、valueに渡された文字列を表示しようとしていたときのことです。 page.tsx 'use client'; import { useRouter, useSearchParams } from 'next/navigation'; import…

3Dプリント用のモデルをA-Frameで読み込んでMeta Questのブラウザにてプレビューする 👓

4年ほど前に、Three.js版の記事を書きましたが、今回はA-Frame版です。blog.kimizuka.orgまた、用途が若干変わって、3Dプリント用に作ったモデルを等倍でプレビューするために使ってみました。まずはソースコードを全文載せてしまいます。 <html> <head> <meta charset="UTF-8" /> <title>A-Frame</title> <script src="https://aframe.io/releases/1.6.0/aframe.min.js"></script> </head> <body> </body></html>

Mac用に書き出したElectronアプリがカメラにアクセスできないときの対策 📷

ことの発端 navigator.mediaDevices.getUserMediaを使って、ウェブカメラにアクセスするMacアプリを作っていて、 electron . で起動した際には問題ないのに、electron-packagerを使ってアプリ書き出しすると、カメラの映像が取得できずに困ったので対策を調…

Next.js(14.2.15)のAppRouterでuseSearchParamsを使う際はSuspenseで境界を指定する 💻

公式ドキュメントに書いてある通りなのですが、ほんのりハマったのでメモ。nextjs.org ことの発端 src/app/page.tsx import { ServerComponent } from '@/components/ServerComponent'; export default function Home() { return ( <ServerComponent /> ); } src/components/Sev</servercomponent>…

Next.js(App Router)にAdobe Fonts(Typekit Webフォント)を導入する ✍️

3年半前の記事のアップデート版です。blog.kimizuka.org3年半前の記事には環境を書き忘れたので、今回はしっかり書き残しておこうと思うのですが、Next.js(14.2.13)のApp Routerで検証しました。Adobe FontsをWebフォントとして使おうとすると、 <script> (functio…

WebGL2を使って四角形を描き、ウェブカメラから取得した画像をテクスチャに設定する 🖼️

Three.jsやPIXI.js経由で、間接的にWebGLを使ったことはあるものの、直接操作をしたことがなかったので、めちゃめちゃ基本的なところから触ってみました。 順序としては、 試しに三角形を描く 試しに四角形を描く 四角形にテクスチャを貼る という順序で進め…

Next.js(14.2.12)+ Three.js(r168)で、Meta Quest向けにパススルーのWebVRコンテンツをつくる 🕶️

先日作成したMeta Quest向けのWebVRコンテンツ ですが、Meta Questのパススルーを使い、背景を実写にしてみます。blog.kimizuka.orgかつて、getUserMediaを使って、どうにかQuestのカメラにアクセスできないかを試行錯誤していた時期もあったのですが、パス…

Firebase Cloud MessagingのMessaging.sendAll()をMessaging.sendEach()に書き換える ✉️

blog.kimizuka.org昨年作った、Firebase Cloud Messagingから、最近通知が送られてこないなと思っていたのですが、遅ればせながら、Messaging.sendAll()が廃止されていたことに気が付きました。取り急ぎ動くようにするのであれば、Messaging.sendAll() を Me…

Next.js(14.2.12)+ Three.js(r168)で、Meta Quest向けにWebVRコンテンツをつくる 🕶️

2022年はWebVR、2023年はWebARに関する知見をまとめたりしていましたが、久しぶりにWebVRコンテンツを作ってみました。kimizuka.org内容としては、 目の前にCubeがひとつ浮いている コントローラ(もしくは手)が表示されている コントローラ(もしくは手)…

M5StickC Plus2で取得したGPS座標をCloud Firestoreにデータを保存する 🔥

こちら、下記3つの記事の組み合わせです。blog.kimizuka.org blog.kimizuka.org blog.kimizuka.orgM5StickC Plus2でGPS座標を取得して、Cloud Firestorに送信します。 準備するもの M5StickC Plus2 GPSユニット Arduino Firebaseのアカウント(Blazeプランに…

Cloud Functionsを使ってCloud Firestoreにデータを保存する 🔥

実装手順 ❶ パッケージを用意する yarn add firebase firebase-tools ❷ package.jsonを編集する package.json { "name": "functions-to-firestore", "scripts": { "login": "firebase login", "init": "firebase init", "emulate": "firebase emulators:star…

Next.jsの開発サーバをhttpsで立ち上げる 🔒

nextjs.orgNext.js 13.5から、 next dev --experimental-httpsで、開発サーバをhttpsで立ち上げることができるようになった模様です。めちゃめちゃ便利です。 package.json { "scripts": { "dev": "next dev", "dev:https": "next dev --experimental-https"…