Home

Webdev

Unicode Javascript Viz Notes Websites Cloudflare Css Descriptions Devops Generators Google Misc Ml React Tutorials Js Html Modeling

Don't Look! I'm changing!

URL Copied

Code_JS

What is now active spacenavd running in user mode Socket: ~/run/spnav.sock FreeCAD: /usr/bin/freecad (APT build) Linked against system libspnav Snap/AppImage removed

ok it is gone. now can we reinstall the good one? Yes. Install the repository build (the one that worked with spacenavd). 1️⃣ Install FreeCAD (APT version) sudo apt update sudo apt install freecad 2️⃣ Verify it is the APT binary which freecad Expected: /usr/bin/freecad 3️⃣ Ensure spacenavd is running (user mode) pgrep -a spacenavd ls -l /run/spnav.sock If not running: mkdir -p ~/run spaceavd -d & disown 4️⃣ Launch FreeCAD using your socke SPNAV_SOCKET=$HOME/run/spnav.sockfreecad If SpaceMouse works, make it permanent: Add this line to ~/.profile: export SPNAVSOCKET=$HOME/run/spnav.sock Log out / log in. You will now have: System FreeCAD (APT) User-mode spacenavd No Snap version interfering what happened what wasthe difference? You had three different bilds Source Binary Path Linkd to libspnav? SpaceMouse Snap 1.0.2 /snap/bin/frecad ❌ No ❌ No AppImage 1.0.2 (conda) sandalone bundle ❌ No ❌ No APT 0.20.2 /usr/bin/freead βœ… Yes βœ… Yes Why the Snap / AppImagefailed 1️⃣ Snap sandbox isolation Snap apps cannot access: /dev/input/event* custom UNIX sockets (/run/spnav.sock) spacenavd socket was invisible to Snap. Result: no daemon connection. 2️⃣ Conda AppImage build Built against its own bundled libraries. Did not include or link libspnav. grep inside the AppImage showed no spnav symbols. Result: FreeCAD never attempted to connect. 3️⃣ APT version worked because: It is compiled against system libspnav. It respects SPNAV_SOCKET. It can talk to your user-mode spacenavd. No sandbox isolation. Root Cause Summary SpaceMouse support requires: FreeCAD β†’ libspnav β†’ spacenad β†’ /dev/input/eventX Snap/AppImage broke that chain. APT preserved it. If you want 1.0.x with SpaceMouse You would need: A non-Snap, non-conda build Compiled with libspnav enabled Installed from source or proper PPA What you observed was not random β€” it was packaging differences.

prediction gradients at different levels for singular weekly moves.

https://pragmatic-code.hashnode.dev/why-you-probably-dont-need-a-rest-api

https://jamesrmeyer.com/otherstuff/easy-footnotes-for-web-pages

https://shkspr.mobi/blog/2025/09/drunk-css/

https://wok.oblomov.eu/tecnologia/google-killing-open-web-2/

https://lwn.net/Articles/631631/

https://developer.chrome.com/blog/entry-exit-animations

https://bernsteinbear.com/isdt/

https://nerdy.dev/open-and-close-transitions-for-the-details-element

https://zoo.js.org/?arch=amd64

https://howbrowserswork.com/

https://news.ycombinator.com/item?id=46416945

Using Hinge as a Command & Control Server https://mattwie.se/hinge-command-control-c2

https://wet-boew.github.io/v4.0-ci/demos/footnotes/footnotes-en.html

https://arpitbhayani.me/blogs/clock-sync-nightmare/

https://developer.mozilla.org/en-US/docs/Web/API/URL_Pattern_API

https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-diagrams

https://news.ycombinator.com/item?id=46254794

https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback

https://pomb.us/build-your-own-react/

A popover on top of a modal dialog should be interactable https://github.com/whatwg/html/issues/9936

web vitals extension arr.at(-1) deep copy = immutiable = JSON.parse(JSON.stringify(obj)) == structuredClone(obj) import maps alllow you to define a bunch of js modules at once (front end) view transition api animation timeline - experimental

cosnt grouped by = Object.groupBy([{},{},{}], fn) toSorted -> keeps initial arr immutable

  1. function fn(){ console.log(arguements) } The arguments object contains all the parameters passed to the function but is not available in arrow functions....
  2. In arrow functions, 'this' does not have its own binding but instead retains the value of this from the enclosing lexical context.
  3. object destructuring: assign to variables values extracted from a nested object const x=today.min and const y=today.max === const {today: {min: x,max: y } } = {today: { min: 10, max: 30} }
  4. url.searchParams.append(key, params[key]),

document.currentScript window.top data.color ||= "#745DDE";

const screenSizeQuery = window.matchMedia("(min-width: 550px)"); screenSizeQuery.addEventListener("change", handleScreenSizeChange);

window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", e => { localStorage.setItem("theme", e.matches ? "dark" : "light")

Click here to copy