ä¸æåã¯ãä½ãèããã« ipcMain 㨠ipcRenderer ã§ããåããè¡ãªã£ã¦ããã®ã§ãããæè¿ã¯ contextBridge ãæãã®ãã»ãªãªã¼ã¨ãªã£ã¦ã¾ããwww.electronjs.org ã¬ã³ãã©ã¼ããã»ã¹ â ã¡ã¤ã³ããã»ã¹ ä¾ã¨ãã¦ãã¬ã³ãã©ã¼ããã»ã¹ããã¢ããªã®çµäºãè¡ãªâ¦
ã«ã注éè¦ç´ ã®åå¨ã¯ç¥ã£ã¦ãã¾ãããããã£ãã使ã£ããã¨ããªãã£ãã®ã§ãä»æ§ã調ã¹ã¦ã¿ã¾ãããdeveloper.mozilla.org DEMO ã½ã¼ã¹ã³ã¼ã index.html <ruby> åå¡ <rp>(</rp> <rt>ãã¿ã¥ã</rt> <rp>)</rp> å²é« <rp>(</rp> <rt>ãµã¿ãã</rt> <rp>)</rp> </ruby> ãã¡ãã® æ¡å¼µ ã§èªã¿ä¸ãæã®æåã確èªãã¦ã¿ã¾ããããrtâ¦
åºæ¬çã«border-radiusãç辺ã®ååãæå®ããã°OKã§ãããå¤æ°ã使ããªãã¨ããã¿ã³ã®ãµã¤ãºãå¤æ´ã«ãªããã³ã«åè¨å®ãå¿ è¦ã¨ãªãã¾ãã ãããªã¨ãã border-radius: 9999px; ãã border-radius: 100vmax; ãªã©ãborder-radiusã«å¤§ããªå¤ãå ¥ããã°ãã¿â¦
CodeCommitã®ãªãã¸ããªãSourcetreeã§ç®¡çããã¾ã§ã®æé ãã¡ã¢ãã¦ããã¾ãã ⶠGit èªè¨¼æ å ±ã使ç¨ã㦠HTTPS ã¦ã¼ã¶ã¼ã®ã»ããã¢ãããè¡ã docs.aws.amazon.comã¾ãã¯å ¬å¼ã®ã¦ã¼ã¶ã¼ã¬ã¤ãã«å¾ã£ã¦ãªãã¸ããªããã¼ã«ã«ã«ã¯ãã¼ã³ãã¾ãã â· Sourcetreeâ¦
support.microsoft.comä¸æåã¯ãªãã©ã¤ã³ã§ã»ããã¢ãããããã¨ã§ç°¡åã«ãã¼ã«ã«ã¢ã«ã¦ã³ããä½æãããã¨ãã§ããã®ã§ãããã¤ãå æ¥ã»ããã¢ããããéãä¸çç¸ã§ãããªãã£ãã®ã§ãæé ãã¡ã¢ãã¦ããã¾ãã ç°å¢ ããã¤ã¹: Surface Go4 OS: Windows 11â¦
developer.mozilla.orgãªãã¨ãç¾ä»£çãªãã©ã¦ã¶ã¼ã®å¤ãã¯ãã°ã¤ã³æ¬ã«ããã autocomplete="off" ã«å¯¾å¿ãã¦ããªãããã§ãã ç¾ä»£çãªãã©ã¦ã¶ã¼ã§ã¯ããã¹ã¯ã¼ããä¸æ¬ç®¡çããæ©è½ãå®è£ ããã¦ãã¾ããã¦ã¼ã¶ã¼ãã¦ã§ããµã¤ãã§ã¦ã¼ã¶ã¼åã¨ãã¹ã¯ã¼ãâ¦
å°å ¥æ¹æ³ XCodeã®ã³ãã³ãã©ã¤ã³ãã¼ã«ãã¤ã³ã¹ãã¼ã« xcode-select --install Homebrewãã¤ã³ã¹ãã¼ã« /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"å ¬å¼ãµã¤ãã«ã¤ã³ã¹ãã¼ã«ã³ãã³ããè¨è¼ããã¦ãâ¦
www.npmjs.comZIG SIMããéããã¦ããå¤ã¯ãZIG indicatorã§ç¢ºèªãããã¨ããã§ãããæ®å¿µãªããOSCãåãåããã¨ã¯ã§ããªãã®ã§ãNode.jsãæ¸ãã¦ããããã£ã¨ã¿ã¼ããã«ä¸ã§ç¢ºèªãã¾ããzig-project.com ã½ã¼ã¹ã³ã¼ã package.json { "name": "osc-develâ¦
serialport.ioArduinoã®Serial Monitorã使ã£ã¦ãè¯ãã®ã§ãããå人çã«ã¯ãããã£ã¨Node.jsãæ¸ãã¦ãã¿ã¼ããã«ä¸ã§ç¢ºèªãããã¨ãå¤ãã§ããwww.arduino.cc åä¿¡ ã½ã¼ã¹ã³ã¼ã package.json { "name": "serial-develop", "version": "1.0.0", "main": "iâ¦
ãã¾ã¾ã§ãMediaDevices.getUserMediaã§åå¾ã§ããã¹ããªã¼ã ã¯ã²ã¨ã¤ã ããã¨æãè¾¼ãã§ãã¾ããããã²ãããªãã¨ããè¤æ°åå¾ã§ãããã¨ãç¥ãã¾ããã ãªã®ã§ããã£ãããMediaDevices.getUserMediaã使ã£ã¦ãPCã«æ¥ç¶ãã¦ããã«ã¡ã©ã®æ åãè¤æ°åæã«è¡¨â¦
developer.mozilla.orgPicture-in-Picture APIã使ã£ã¦ãVideoè¦ç´ ããã¯ãã£ã¼ã¤ã³ãã¯ãã£ã§åçãã¦ã¿ã¾ããã iOS Safariï¼18.2ï¼ãAndroid Chromeï¼131.0.6778.135ï¼ã§ãåä½ã確èªæ¸ã¿ã§ãã ã½ã¼ã¹ã³ã¼ã <html> <head> <style> video { display: block; width: 640px; }</style></head></html>â¦
www.electronjs.orgä¾ãã°ãåç»ãåçããã¢ããªãå¶ä½ããã¨ããªã©ãé·æéå ¥åããªãã¦ãPCãã¹ãªã¼ãã¢ã¼ãã«å ¥ãããªãããã«ãããå ´åãããã¾ãã ãããªã¨ãã¯ãelectron.powerSaveBlockerã使ãã°ãã¹ãªã¼ãã¢ã¼ãã«å ¥ããã¨ãé²ããã¨ãã§ãã¾ãâ¦
docs.dndkit.comNext.jsã¨dnd-kitãçµã¿åããã¦ãã©ãã°ï¼ããããã§ä¸¦ã³æ¿ãå¯è½ãªãªã¹ããå®è£ ãã¾ããã DEMO https://develop.kimizuka.org/dnd-kit-sortable/ ã½ã¼ã¹ã³ã¼ã package.json { "name": "dnd-kit-sortable", "version": "0.1.0", "private"â¦
SpeechSynthesisUtteranceã使ç¨ãã let number = 0; setInterval(() => { const utterThis = new SpeechSynthesisUtterance(); utterThis.text = String(++number); speechSynthesis.speak(utterThis); }, 1000); ãããªæãã§ãæ°åãèªã¿ä¸ããWebãµã¤ãâ¦
æè¿ã¯ããã£ã±ãNext.jsã使ã£ã¦Webãµã¤ããå¶ä½ããããElectronã¨çµã¿åããã¦Macã¢ããªãå¶ä½ããããã¦ãã¾ãã ãã©ã¤ãã®Webãµã¤ãã§ãããNext.jsãéçãµã¤ãã¸ã§ãã¬ã¼ã¿ã¨ãã¦ä½¿ã£ã¦ããã®ã§ããããã©ã¤ãã®ãµã¤ãã§ããã°ãNext.jsãReactãä¸â¦
ãã¤ãéãã npx create-next-app .ã§ãNext.jsã®ããã¸ã§ã¯ããä½æãã npm run devã§ãéçºãµã¼ããèµ·åããã¨ãããå·¦ä¸ã«è¬ã®ã¢ã¤ã³ã³ã表示ãããããã«ãªã£ã¦ãã¾ããã .nextjs-toastã¨ããã¯ã©ã¹åãæ¯ããã¦ãã¾ãããªãã ããã¯ãã¨æãã¾ãããâ¦
é常Macã«ã¤ã¤ãã³ãç¹ãã å ´åãé³æºã¯ã¤ã¤ãã³ããåçããã¾ãã ããããMacã«ã¯ããã©ã«ãã¢ããªã¨ãã¦ãAudio MIDI è¨å®ããå ¥ã£ã¦ããããªã¼ãã£ãªã®ã¤ã³ã¢ã¦ãã好ããªããã«ã«ã¹ã¿ãã¤ãºã§ãã¾ããsupport.apple.comããã¦ãAudio MIDI è¨å®ã¨WebAuâ¦
çµè« å¤ãã®å ´åãrequestAnimationFrameã®FPSã¯ãã£ã¹ãã¬ã¤ã®ãªãã¬ãã·ã¥ã¬ã¼ãã«ä¾åãã¾ããdeveloper.mozilla.orgãããããã£ã¹ãã¬ã¤ã«ä¾åããã«FPSã®æ大å¤ãè¨å®ãããå ´åã const fps = 60; let lastRenderTime = 0; function render(now) { coâ¦
ããã¾ã§ãsuperã®ä½¿ãéã¯ã class Child extends Parent { constructor(params) { super(params); } } ã¨ããæãã§ãconstructorå ã§å®è¡ãããã¨ã ãã ã¨æã£ã¦ããã®ã§ããã ãã¾ãããªãããsuper.prop ããã³ super[expr] å¼ã«ã¦ã親ã®ã¡ã½ãããå¼â¦
ãã¾ã¾ã§ããµã¼ãã³ã³ã½ã¼ã«ã§è¨æ¸¬ãã¦ããã®ã§ãéçºä¸ã¯ã©ããã£ã¦è¨æ¸¬ããããæ©ãã§ããã®ã§ãããJavaScriptã§è¨æ¸¬ã§ãããã¨ãç¥ãã¾ãããsearch.google.com new PerformanceObserver((entryList) => { for (const entry of entryList.getEntries()) â¦
yarnpkg.comyarnã®ãã¼ã¸ã§ã³ãåãæ¿ãããæã¯ã yarn set version <version>ã«ã¦ãåãæ¿ãããããã¨ãç¥ãã¾ããã ãã¼ã¸ã§ã³ãæå®ãããã¨ãã§ãã¾ããã yarn set version stableã§ãå®å®çã yarn set version latestã§ãææ°çã yarn set version classic</version>â¦
çµè« URLã¨ã³ã³ã¼ããæãã¾ãããã ãã¨ã®çºç«¯ ãã£ãããããªæãã®ã³ã¼ããæ¸ãã¦ã¾ãã¦ãvalueã«æ¸¡ãããæååã表示ãããã¨ãã¦ããã¨ãã®ãã¨ã§ãã page.tsx 'use client'; import { useRouter, useSearchParams } from 'next/navigation'; importâ¦
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ã使ã£ã¦ã¢ããªæ¸ãåºãããã¨ãã«ã¡ã©ã®æ åãåå¾ã§ããã«å°ã£ãã®ã§å¯¾çã調â¦
å ¬å¼ããã¥ã¡ã³ãã«æ¸ãã¦ããéããªã®ã§ãããã»ãã®ãããã£ãã®ã§ã¡ã¢ãnextjs.org ãã¨ã®çºç«¯ src/app/page.tsx import { ServerComponent } from '@/components/ServerComponent'; export default function Home() { return ( <ServerComponent /> ); } src/components/Sev</servercomponent>â¦
3å¹´ååã®è¨äºã®ã¢ãããã¼ãçã§ããblog.kimizuka.org3å¹´ååã®è¨äºã«ã¯ç°å¢ãæ¸ãå¿ããã®ã§ãä»åã¯ãã£ããæ¸ãæ®ãã¦ãããã¨æãã®ã§ãããNext.jsï¼14.2.13ï¼ã®App Routerã§æ¤è¨¼ãã¾ãããAdobe FontsãWebãã©ã³ãã¨ãã¦ä½¿ããã¨ããã¨ã <script> (functioâ¦
Three.jsãPIXI.jsçµç±ã§ãéæ¥çã«WebGLã使ã£ããã¨ã¯ãããã®ã®ãç´æ¥æä½ããããã¨ããªãã£ãã®ã§ããã¡ããã¡ãåºæ¬çãªã¨ãããã触ã£ã¦ã¿ã¾ããã é åºã¨ãã¦ã¯ã 試ãã«ä¸è§å½¢ãæã 試ãã«åè§å½¢ãæã åè§å½¢ã«ãã¯ã¹ãã£ãè²¼ã ã¨ããé åºã§é²ãâ¦
å æ¥ä½æããMeta Queståãã®WebVRã³ã³ãã³ã ã§ãããMeta Questã®ãã¹ã¹ã«ã¼ã使ããèæ¯ãå®åã«ãã¦ã¿ã¾ããblog.kimizuka.orgãã¤ã¦ãgetUserMediaã使ã£ã¦ãã©ãã«ãQuestã®ã«ã¡ã©ã«ã¢ã¯ã»ã¹ã§ããªããã試è¡é¯èª¤ãã¦ããææããã£ãã®ã§ããããã¹â¦
blog.kimizuka.orgæ¨å¹´ä½ã£ããFirebase Cloud Messagingãããæè¿éç¥ãéããã¦ããªããªã¨æã£ã¦ããã®ã§ãããé ãã°ããªãããMessaging.sendAll()ãå»æ¢ããã¦ãããã¨ã«æ°ãä»ãã¾ãããåãæ¥ãåãããã«ããã®ã§ããã°ãMessaging.sendAll() ã Meâ¦
2022å¹´ã¯WebVRã2023å¹´ã¯WebARã«é¢ããç¥è¦ãã¾ã¨ããããã¦ãã¾ããããä¹ ãã¶ãã«WebVRã³ã³ãã³ããä½ã£ã¦ã¿ã¾ãããkimizuka.orgå 容ã¨ãã¦ã¯ã ç®ã®åã«Cubeãã²ã¨ã¤æµ®ãã¦ãã ã³ã³ããã¼ã©ï¼ãããã¯æï¼ã表示ããã¦ãã ã³ã³ããã¼ã©ï¼ãããã¯æï¼â¦