dice.camp is one of the many independent Mastodon servers you can use to participate in the fediverse.
A Mastodon server for RPG folks to hang out and talk. Not owned by a billionaire.

Administered by:

Server stats:

1.6K
active users

#releasewednesday

0 posts0 participants0 posts today

#ReleaseWednesday — Extracted & extended the LISP-like DSL from an existing #ThingUmbrella example[1] as new small package for better/direct re-use in other projects:

thi.ng/lispy

The core language is kept intentionally minimal, aimed at simple sandboxed data transformations/derivations, small code snippets/expressions in GUIs or config settings. However, the language is very easy to extend/customize with new functions or control flow constructs etc. Currently, the language is interpreted and has the following builtins (see screenshots). There's no macro support so far (and not sure if that's even desired here)...

[1] The original #HowToThing example browser REPL this was extracted from (and which has now been updated to use the new package):

demo.thi.ng/umbrella/lispy-rep

#ThingUmbrella #Lisp #DSL #FunctionalProgramming #REPL

#ReleaseWednesday 🚀 — I wonder how many other FLOSS devs are sitting on code for ~8 years prior to first release... In one of these cases (many others readily available in my stash 🙃), triggered by recent major updates to the thi.ng/vectors library, I've refactored (almost 100% rewritten) and applied the same approach to the new/old package:

thi.ng/tensors

This package provides 1D/2D/3D/4D tensors, supporting different storage implementations (currently still all CPU side only) and an extensible set of polymorphic tensor operations (currently ~45 math ops, incl. matrix-matrix/matrix-vector products, reductions, argmin/max, activation functions etc.). The tensor classes themselves also provide several zero-copy slicing, re-ordering, clipping, extraction functions, most of them type-safe.

The original (private) version was heavily reliant on dynamic code generation, which has now been replaced with higher-order functions to provide various dimension-optimized versions of all operations.

This package is NOT specifically aimed at machine learning, even though it could probably used for some tasks in that realm (likely with extra hand holding). There are many other use cases for this kind of data structure...

Also new in other packages in this release cycle (incl. some code examples):

- docs.thi.ng/umbrella/arrays/fu
- docs.thi.ng/umbrella/bidir-ind
- docs.thi.ng/umbrella/transduce

thi.ng/tensors1D/2D/3D/4D tensors with extensible polymorphic operations and customizable storage

#ReleaseWednesday — I just released a new version (v8.0.0) of thi.ng/vectors, an almost complete rewrite of the package with all of its ~900 vector operations. I've updated the Readme with a section of _potentially_ minor breaking changes, however I expect this to be a seamless upgrade for the vast majority of users...

I've recently written more about the reasons and implications of this update and I'll refer you to those posts instead of repeating them once more (see links below).

Just the top-level changes:

- Replaced dynamic code generation with higher-order templating to be usable with strict content security policies (when deployed online)
- New structure allows for vast majority of functions to have doc strings (and they do now)
- More consistent/less confusing naming for some operations
- Potentially improved tree-shaking and smaller project bundle sizes

Related to this update I've also refactored and fixed some bugs in other packages (e.g. color, geom, matrices). As a result both the color & matrix packages are now also free from dynamic codegen and therefore won't cause any problems with strict CSPs

Should you run into any issues regarding this update, please get in touch (also grateful for any other experience/impact reports... 🙏)

More info in these recent posts/threads:

- mastodon.thi.ng/@toxi/11429644
- mastodon.thi.ng/@toxi/11431965
- mastodon.thi.ng/@toxi/11433601

Happy coding!

thi.ng/vectorsOptimized 2d/3d/4d and arbitrary length vector operations, support for memory mapping/layouts

#ReleaseWednesday Just pushed a new version of thi.ng/block-fs, now with additional multi-command CLI tooling to convert & bundle a local file system tree into a single block-based binary blob (e.g. for bundling assets, or distributing a virtual filesystem as part of a web app, or for snapshot testing, or as bridge for WASM interop etc.)

Also new, the main API now includes a `.readAsObjectURL()` method to wrap files as URLs to binary blobs with associated MIME types, thereby making it trivial to use the virtual filesystem for sourcing stored images and other assets for direct use in the browser...

(Ps. For more context see other recent announcement: mastodon.thi.ng/@toxi/11426498)

Just released a new version of the polyglot data structure & bindings generator for hybrid #WebAssembly, #Zig & #TypeScript apps/interop. Now also supporting externally defined types for which only stubs for alignment & sizing are required, but which otherwise are opaque and can be used as any other type defs in this toolchain (e.g. embedded in structs/unions or as pointers, slices, arrays etc.)

thi.ng/wasm-api-bindgen

thi.ng/wasm-api-bindgenPolyglot bindings code generators for hybrid JS & WebAssembly projects

#ReleaseWednesday 🚀 This week's thi.ng/umbrella releases include:

thi.ng/meta-css — Added a `doc` command to generate Markdown documentation for generated CSS frameworks (also used to document the included base framework as a section of the readme). Added documentation for the hot-reloading `develop` mode/command and updated/extended the included framework rules (now 1000+ classes & parametric CSS templates)

thi.ng/memoize — Added new, faster & more minimal memoization functions specifically for functions with numeric/string args only (most common in my own usage)

thi.ng/rdom-forms & thi.ng/hiccup-html — Added more form element types

thi.ng/text-format — Added more HTML/CSS formatter options, updated ANSI formatter (faster)

Also updated & refactored several example projects to utilize some of these new features...

thi.ng/umbrellathi.ng/umbrella

#ReleaseWednesday This round of releases includes (among others):

- thi.ng/timestep - new package for fixed timestep simulation updates, discussed in previous tweet
- thi.ng/api - added function to simplify typed array initialization from vector data, e.g. super useful for #WebGL / #WASM interop
- thi.ng/scenegraph - added .mapLocalPointToGlobal() to map local point from anywhere in the scene hierarchy to world space (e.g. useful for camera controllers, view matrix creation)

Other small additions/fixes to thi.ng/color, thi.ng/random, thi.ng/vectors and thi.ng/webgl...

Link to changelogs:

github.com/thi-ng/umbrella/blo

Happy coding! 🤩

#ReleaseWednesday Revamped, refactored and expanded an older project over the past few days and brought it under the #ThingUmbrella: thi.ng/units is a new package for extensible SI unit creation, combination, conversion and calculation with unit based quantities. It comes with ~170 predefined units & constants, but these are just basic building blocks for more. Take a look at the (long) readme (excerpts attached here), with various examples to learn more!

(Especially check the section about calculating with quantities...)