Current status: Updating the https://thi.ng/geom readme to give a better overview of the full extensive API, ahead of the v8 release (soon)... Attached are screenshots of three sections of the readme showing:
list of 32 shape types (both 2D and 3D)
list of 54 polymorphic functions/operations to manipulate/convert/analyze shapes & shape hierarchies
list of additional 40 shape creation functions
Still to come: Documenting the bundled preset implementations of:
vertex convolution kernels (3)
curve subdivision strategies (8)
polygon/polyline to bezier conversion strategies (3)
polygon tessellators (9)
(...and how most of these can be combined & applied iteratively. Some of the recent/existing examples are already hinting at the potential...)
Added a convolution kernel filtering operator for polygons/polylines to https://thi.ng/geom, incl. some useful preset kernels: box filter, triangle, gaussian, all with configurable size...
The image shows effects of various kernel sizes & iterations. Unlike with subdivision smoothing, here each version has the exact same number of vertices, only their positions are impacted: orange = box, magenta = triangle, blue = gaussian
(For now the operator is only implemented for polygons (also w/ holes) & polylines, but can be extended to other shape types...)
Es scheint so, als müsste ich mich bei der TypeScript Entwicklung auf @deno_land konzentrieren. Sicherlich, noch mit JSR genutzt, mittlerweile ein Ersatz für @nodejs professionell.
»Deno 1.44 lernt den Umgang mit privaten npm-Registries:
Das Minor Release kann mit privaten npm-Registries sowie gRPC-Verbindungen umgehen und erhöht nochmals die Kompatibilität mit Node.js.«
pro tip: learning this the hard way, if you're trying to fix linter issues based on ouput with #python or #typescript start fixing from the bottom of the output because if you start on the top then all of your changes will effect the downstream line number references.
Added a new[1] configurable curve subdivision kernel for https://thi.ng/geom to (iteratively) subdivide polygons/polylines with displacement, allowing for super compact code, infinite variation, and beautiful results like shown...
[1] Actually been using this approach since 2010, initially for 3D mesh subdivisions (3rd image)
Good intro to using #TypeScript in the form of JSDoc tags: https://alexharri.com/blog/jsdoc-as-an-alternative-typescript-syntax - I've been using this recently in one small-ish project (#Bluesky thread reader) and I think I like it. I can run a typecheck when I want, but I don't need a build phase, don't need to install the npm package on the server, it's still just JS that a browser can open as is.
So many new and improved features (+ new shape types) coming to https://thi.ng/geom (more about those soon) — for now a new tiny example to show point classification (inside/boundary/outside) for polygons:
We are excited about React Compiler, aren't we? I just remembered that my first OSS library in JavaScript was a JS-to-JS compiler! Funny how things come around.
🤓 This is gonna be a extremely nerdy toot, but my most favorite piece of code I ever wrote is a small TypeScript library complete with unit tests that makes it super simple to filter a list of domain names by various criteria.
🦾 Functional TypeScript #1: Algebraic Data Types | Injuly
"In functional programming, algebraic types are so ubiquitous that you would be hard pressed to find a language that doesn't support them. Strangely though, nothing about them demands that a language be functional by paradigm. That imperative languages have avoided ADTs for decades seems almost an accident."
After an 8-year break from web development, I evaluated modern tech stacks to build my personal projects in 2024. This post chronicles my journey in selecting the perfect combination of backend, frontend, database, and hosting.
I have some bittersweet news -- I decided to leave Deno. Going to be joining a really cool company, continuing to work in Rust.
Deno was a great place to work, full of really smart folks. I got to work on some great projects: rewriting the HTTP server to nearly 2x throughput, some major refactoring of the event loop and timers to make them an order of magnitude faster, working on rebuilding the V8 -> Rust interface to make it as fast as humanly possible...
... while also improving the developer experience with better errors.
Too many fun projects to count!
I still think #Deno is the best choice for server-side JS and #typescript, robust command-line tools and many other places. It's so much better than everything else.
Looking forward to announcing the new role in the near future and continuing to work in the high-performance #Rust arena. 🚀