shakedown.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A community for live music fans with roots in the jam scene. Shakedown Social is run by a team of volunteers (led by @clifff and @sethadam1) and funded by donations.

Administered by:

Server stats:

269
active users

#dsl

1 post1 participant0 posts today
Openfactory Group<p>Dieses Wochenende haben wir eine Website neu überarbeitet - <a href="https://sixsixsix.ch" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">sixsixsix.ch</span><span class="invisible"></span></a> - sofern jemand testen mag, wären wir sehr verbunden. Dann bitte einfach beim Speed profil was reinschreiben wie "Mastodon - nur ein test" oder so. </p><p>Die backend-API ist suboptimal, deswegen gibt er manchmal nicht sofort ne Antwort - fehlerhandling kommt noch. Bin selber ja kein Developer, hab das am Wochenende in ein paar Stunden gehackt. </p><p><a href="https://peering.social/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a> <a href="https://peering.social/tags/FTTH" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FTTH</span></a> <a href="https://peering.social/tags/internetprovider" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>internetprovider</span></a></p><p>edit: aktuell nur CH. DE/AT kommt bald</p>
Openfactory Group<p>We're also <a href="https://peering.social/tags/newhere" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>newhere</span></a></p><p>Who are we? An <a href="https://peering.social/tags/internetprovider" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>internetprovider</span></a> and IT company somewhere between sauna (Finland) and cheese (Switzerland) – offering internet and data center services in DE/AT/CH/LI and in BE/NL SE / FI.</p><p>And you’ll often find our folks at <a href="https://peering.social/tags/RIPE" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RIPE</span></a> events, <a href="https://peering.social/tags/Chaos" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Chaos</span></a> gatherings, and similar meetups.</p><p>We’d say <a href="https://peering.social/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a> <a href="https://peering.social/tags/FTTH" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FTTH</span></a> <a href="https://peering.social/tags/FTTO" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FTTO</span></a> <a href="https://peering.social/tags/BGP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BGP</span></a> <a href="https://peering.social/tags/COLO" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>COLO</span></a> <a href="https://peering.social/tags/Transit" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Transit</span></a> <a href="https://peering.social/tags/5G" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>5G</span></a> <a href="https://peering.social/tags/Peering" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Peering</span></a> are probably the keywords.</p>
Openfactory Group<p>Wir sind auch <a href="https://peering.social/tags/neuhier" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>neuhier</span></a> </p><p>Wer sind wir? Ein <a href="https://peering.social/tags/internetprovider" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>internetprovider</span></a> und IT Unternehmen zwischen Sauna (Finnland) und Käse (Schweiz) - Internet und Rechenzentrumsdienstleistungen in D/A/CH/LI und in BE/NL SE / FI</p><p>Und unsere Leute findet man oft auf <a href="https://peering.social/tags/RIPE" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RIPE</span></a> events, <a href="https://peering.social/tags/Chaos" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Chaos</span></a> Veranstaltungen und ähnlichem. </p><p><a href="https://peering.social/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a> <a href="https://peering.social/tags/FTTH" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FTTH</span></a> <a href="https://peering.social/tags/FTTO" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FTTO</span></a> <a href="https://peering.social/tags/BGP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>BGP</span></a> <a href="https://peering.social/tags/COLO" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>COLO</span></a> <a href="https://peering.social/tags/Transit" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Transit</span></a> <a href="https://peering.social/tags/5G" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>5G</span></a> <a href="https://peering.social/tags/Peering" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Peering</span></a> würden wir sagen sind so die keywords.</p>
Andrzej Wąsowski ☑️ 🟥More self-promo
Andrew Kravchuk<p>This <a href="https://functional.cafe/tags/sharingsaturday" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>sharingsaturday</span></a> I'm excited to share a new build of our <a href="https://functional.cafe/tags/indie" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>indie</span></a> <a href="https://functional.cafe/tags/roguelike" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>roguelike</span></a> Imcaving, since it now features a dialogues mechanics! Implemented as <a href="https://functional.cafe/tags/CommonLisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CommonLisp</span></a> <a href="https://functional.cafe/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a>, it is powerful enough to even provide dialogues with attribute rolls akin to Fallout 1/2/New Vegas.</p><p>We've also ironed out a couple of geometric bugs this week and implemented an interactive cursor indicating the tile that will be interacted upon when clicking a mouse. Moreover, <span class="h-card" translate="no"><a href="https://fosstodon.org/@w96k" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>w96k</span></a></span> continues to work on game's soundtrack.</p><p>Feel free to download the new build at <a href="https://awkravchuk.itch.io/imcaving#download" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">awkravchuk.itch.io/imcaving#do</span><span class="invisible">wnload</span></a> and let us know what you think! 😊</p>
Karsten Schmidt<p><a href="https://mastodon.thi.ng/tags/ReleaseWednesday" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ReleaseWednesday</span></a> — Extracted &amp; extended the LISP-like DSL from an existing <a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> example[1] as new small package for better/direct re-use in other projects:</p><p><a href="https://thi.ng/lispy" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/lispy</span><span class="invisible"></span></a></p><p>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)...</p><p>[1] The original <a href="https://mastodon.thi.ng/tags/HowToThing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HowToThing</span></a> example browser REPL this was extracted from (and which has now been updated to use the new package):</p><p><a href="https://demo.thi.ng/umbrella/lispy-repl/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">demo.thi.ng/umbrella/lispy-rep</span><span class="invisible">l/</span></a><br> <br><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/Lisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Lisp</span></a> <a href="https://mastodon.thi.ng/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a> <a href="https://mastodon.thi.ng/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FunctionalProgramming</span></a> <a href="https://mastodon.thi.ng/tags/REPL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>REPL</span></a></p>
Artyom Bologov<p>Who in the world though it a good idea putting their custom readtables into libraries intended for outside use? I don't want your hash table syntax, I want MINE. Don't pollute the readtable and other aspects of someone else's image if you're providing a library. The library you're making should be portable and clean <a href="https://merveilles.town/tags/CommonLisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CommonLisp</span></a>, not some unreadable <a href="https://merveilles.town/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a> you use in your <a href="https://merveilles.town/tags/REPL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>REPL</span></a>. It's fine in the REPL, but not in libraries. Keep it clean. Simple courtesy.</p><p>Not pointing fingers, but everyone doing that shall be ashamed.</p><p><a href="https://merveilles.town/tags/theRant" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>theRant</span></a></p>
gofollow<p>Wie schön Glasfaser wird verlegt und bei mir als <a href="https://freiburg.social/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a> Kunden heißt es "Es besteht ein Problem mit der DSL-Kabelverbindung bei ca. 28 Metern." Foto vom Bagger folgt ...</p>
Jim Patterson 🇨🇦<p>I've been stuck on <a href="https://mstdn.ca/tags/ipv4" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ipv4</span></a> for years, as the only provider of <a href="https://mstdn.ca/tags/fibre" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>fibre</span></a> (and before that <a href="https://mstdn.ca/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a>) in our neighborhood has been <a href="https://mstdn.ca/tags/Bell" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Bell</span></a> <a href="https://mstdn.ca/tags/Canada" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Canada</span></a>. They've stubbornly refused to "get with the program", though they apparently have in their mobile infrastructure (where the IPV4 number scarcity may actually impact them).<br>I might just subscribe to an <a href="https://mstdn.ca/tags/ipv6" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ipv6</span></a> <a href="https://mstdn.ca/tags/VPN" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>VPN</span></a> - most don't, or actively block <a href="https://mstdn.ca/tags/ipv6" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ipv6</span></a>, but a few do. They start at just a couple of bucks a month.<br><a href="https://www.cloudwards.net/best-ipv6-vpn/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="">cloudwards.net/best-ipv6-vpn/</span><span class="invisible"></span></a></p><p><a href="https://mstdn.ca/tags/ipv6" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ipv6</span></a> <a href="https://mstdn.ca/tags/vpn" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>vpn</span></a> <a href="https://mstdn.ca/tags/bell" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>bell</span></a> <a href="https://mstdn.ca/tags/canada" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>canada</span></a></p>
find you on :butterfedy1: fediverse<p><strong>i wanted to make <a class="hashtag" href="https://wizard.casa/collections/tags/art" rel="nofollow noopener" target="_blank">#art</a> this sunday :AbsolutelyProprietary:</strong></p><p><a class="hashtag" href="https://wizard.casa/collections/tags/fediart" rel="nofollow noopener" target="_blank">#fediart</a> <a class="hashtag" href="https://wizard.casa/collections/tags/absolutelypropietary" rel="nofollow noopener" target="_blank">#absolutelyPropietary</a> <a class="hashtag" href="https://wizard.casa/collections/tags/modems" rel="nofollow noopener" target="_blank">#modems</a> <a class="hashtag" href="https://wizard.casa/collections/tags/dsl" rel="nofollow noopener" target="_blank">#dsl</a> <a class="hashtag" href="https://wizard.casa/collections/tags/malware" rel="nofollow noopener" target="_blank">#malware</a> <a class="hashtag" href="https://wizard.casa/collections/tags/ownwork" rel="nofollow noopener" target="_blank">#ownwork</a> <span class="h-card"><a class="u-url mention" href="https://mastodon.social/@rootcompute" rel="nofollow noopener" target="_blank">@rootcompute</a></span> <span class="h-card"><a class="u-url mention" href="https://shitposter.world/users/mangeurdenuage" rel="nofollow noopener" target="_blank">@mangeurdenuage</a></span> <span class="h-card"><a class="u-url mention" href="https://shitposter.world/users/jeffcliff" rel="nofollow noopener" target="_blank">@jeffcliff</a></span> <span class="h-card"><a class="u-url mention" href="https://hostux.social/@fsf" rel="nofollow noopener" target="_blank">@fsf</a></span> <span class="h-card"><a class="u-url mention" href="https://mastodon.xyz/@rms" rel="nofollow noopener" target="_blank">@rms</a></span></p>
Serge from Babka<p>PyInfra demonstrates a powerful point. With Ansible if you want to feed information to Ansible, you must do through so Yaml. Yaml is fine, but PyInfra simply lets you feed information directly to it without an intermediary file format.</p><p>Why do we complicate our lives with these intermediate formats when they're often unnecessary? Wouldn't pure programming be better for the user?</p><p>I'm looking at you, OpenTofu.</p><p><a href="https://babka.social/tags/PyInfra" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PyInfra</span></a> <a href="https://babka.social/tags/Yaml" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Yaml</span></a> <a href="https://babka.social/tags/Programming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Programming</span></a> <a href="https://babka.social/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a> <a href="https://babka.social/tags/OpenTofu" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OpenTofu</span></a> <a href="https://babka.social/tags/Terraform" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Terraform</span></a></p>
Richard W. Woodley ELBOWS UP 🇨🇦🌹🚴‍♂️📷 🗺️<p>Is there such a thing as a <a href="https://mstdn.ca/tags/tester" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>tester</span></a> for the phone <a href="https://mstdn.ca/tags/cords" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cords</span></a> that connect a <a href="https://mstdn.ca/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a> <a href="https://mstdn.ca/tags/modem" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>modem</span></a> to the phone line.</p>
Karsten Schmidt<p>Updated internal state handling of the <a href="https://thi.ng/parse" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/parse</span><span class="invisible"></span></a> parser generators &amp; DSL to define parsers. Seeing a 1.2 - 1.6x speedup of parsing performance in example projects (see project readme for links), especially for larger inputs...</p><p><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/ReleaseThursday" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ReleaseThursday</span></a> <a href="https://mastodon.thi.ng/tags/Parser" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Parser</span></a> <a href="https://mastodon.thi.ng/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a></p>
Karsten Schmidt<p>Over the past few days I've been working on extending &amp; re-packaging the procedural text generation engine from one of the old examples into a new package and also just wrote/updated documentation for its various features:</p><p>- variable definitions, optionally with multiple value choices <br>- cyclic &amp; recursive variable references/expansion<br>- variable assignments<br>- dynamic, indirect variable lookups (for context specific situations)<br>- optional preset &amp; custom modifiers (i.e. pointfree/concatenative application of modifier sequences)<br>- controlled randomness during var expansion</p><p>The new package is called: <a href="https://thi.ng/proctext" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/proctext</span><span class="invisible"></span></a> (6.5KB incl. all deps) The text format used relies on a simple parser grammar defined and processed via <a href="https://thi.ng/parse" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/parse</span><span class="invisible"></span></a>. The resulting document AST is then interpreted via <a href="https://thi.ng/defmulti" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/defmulti</span><span class="invisible"></span></a></p><p>Please see readme for notes/examples, as well as the refactored example project below. The tool is very useful for complex source code generation, but also could be useful for bots, interactive fiction etc. The generator is stateful and variable state can be optionally retained/re-used over multiple invocations. Making all modifiers async is also providing a lot of flexibility (e.g. loading external data sources, generating secondary/expanded descriptions etc.)</p><p>Demo (incl. 5 examples and can be used as playground):<br><a href="https://demo.thi.ng/umbrella/procedural-text/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">demo.thi.ng/umbrella/procedura</span><span class="invisible">l-text/</span></a></p><p><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/RewriteSystem" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RewriteSystem</span></a> <a href="https://mastodon.thi.ng/tags/ProcGen" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ProcGen</span></a> <a href="https://mastodon.thi.ng/tags/TextGeneration" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TextGeneration</span></a> <a href="https://mastodon.thi.ng/tags/CodeGenerator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CodeGenerator</span></a> <a href="https://mastodon.thi.ng/tags/Parser" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Parser</span></a> <a href="https://mastodon.thi.ng/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a> <a href="https://mastodon.thi.ng/tags/Pointfree" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Pointfree</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a> <a href="https://mastodon.thi.ng/tags/InteractiveFiction" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>InteractiveFiction</span></a></p>
Reinald Kirchner<p>Meine DSL-Fritzbox 7490 kommt in die Jahre. Womit soll ich sie ersetzen? <a href="https://nrw.social/tags/FritzBox" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FritzBox</span></a> <a href="https://nrw.social/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a> <a href="https://nrw.social/tags/router" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>router</span></a> <a href="https://nrw.social/tags/wlan" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>wlan</span></a> <a href="https://nrw.social/tags/mesh" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>mesh</span></a></p>
IT News<p>Jenny’s Daily Drivers: Damn Small Linux 2024 - There was a time when the gulf between a new computer and one a decade or more old... - <a href="https://hackaday.com/2024/03/05/jennys-daily-drivers-damn-small-linux-2024/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">hackaday.com/2024/03/05/jennys</span><span class="invisible">-daily-drivers-damn-small-linux-2024/</span></a> <a href="https://schleuss.online/tags/minimalistdistro" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>minimalistdistro</span></a> <a href="https://schleuss.online/tags/hackadaycolumns" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>hackadaycolumns</span></a> <a href="https://schleuss.online/tags/damnsmalllinux" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>damnsmalllinux</span></a> <a href="https://schleuss.online/tags/computerhacks" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>computerhacks</span></a> <a href="https://schleuss.online/tags/dsl" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>dsl</span></a></p>
Eric Carroll<p>I am considering shifting over from <a href="https://mastodon.acm.org/tags/Rogers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Rogers</span></a> <a href="https://mastodon.acm.org/tags/HFC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HFC</span></a> to <a href="https://mastodon.acm.org/tags/Bell" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Bell</span></a> <a href="https://mastodon.acm.org/tags/XGSPON" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>XGSPON</span></a> </p><p>The <a href="https://mastodon.acm.org/tags/PPPoE" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PPPoE</span></a> <a href="https://mastodon.acm.org/tags/ONT" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ONT</span></a> noise has given me pause.</p><p>I get that <a href="https://mastodon.acm.org/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a> adopted PPPoE because circuit switching underlay (*cough* ATM). It sort of made sense then. Barely.</p><p>But what is the justification for continuing PPPoE on *PON networks? </p><p>It seems like extra equipment scaling cost &amp; complexity to me.</p>
Karsten Schmidt<p>Some previews of recent <a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> updates/additions:</p><p>1) The declarative &amp; fully typed CLI arg parser <a href="https://thi.ng/args" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/args</span><span class="invisible"></span></a> now has a nice `cliApp()` wrapper (also largely declarative), supporting multiple sub-commands (with shared and command-specific args/options), automated usage generation, <a href="https://no-color.org" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">no-color.org</span><span class="invisible"></span></a> support/detection. Still doing more testing with various CLI tools of mine (from which this all has been extracted), but planning to release in next couple of days...</p><p>2) People who've been following the project will know that for years I've been a big fan of Tachyons CSS[1], which is pretty much used for all ~150 examples in the repo. As nice as it is, it's also unmaintained by now and there're various more modern features missing (e.g. grids) and there're also general issues with the overall approach. Switching to Tailwind would mean having to install a whole boatload of additional tooling so is anathema and also doesn't address some of the features I've been wanting to explore: E.g. Generating entire CSS frameworks from a bunch of wildly combinatorial rules, options &amp; lookup tables, keeping literally _everything_ customizable, combinable and purely data-driven (i.e. generated from a JSON file). Similar to Tachyons CSS, these custom generated frameworks are based on standalone CSS utility classes (hence the original particle-inspired naming). However, I'm aiming for a different usage and instead of assigning them directly to an HTML element's `class` attrib, here we can assign them to (nested) CSS selectors to define fully inlined declarations. The additional killer feature is that each of these classes can be prefixed with an arbitrary number of freely defined media queries and thus making it trivial to add additional responsive/accesible features and _without_ requiring megabytes of raw CSS to cover the combinatorial explosion!</p><p>For the past few days I've been trialling this new approach and I very much like where this is going... Take a look at the basic example in the new <a href="https://thi.ng/meta-css" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/meta-css</span><span class="invisible"></span></a> package &amp; readme. I will also write more about this in coming days. All in all, it's another example where code generation and a domain specific language approach is super powerful again... limits of my world and such...</p><p>Also, speaking of bloatware (earlier above), the entire toolchain (incl. CLI &amp; all dependent packages) is a mere 21KB (minified) and it already can do a ton!</p><p><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/CSS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CSS</span></a> <a href="https://mastodon.thi.ng/tags/CLI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CLI</span></a> <a href="https://mastodon.thi.ng/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a> <a href="https://mastodon.thi.ng/tags/CodeGeneration" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CodeGeneration</span></a></p>
Karsten Schmidt<p>"The limits of my language mean the limits of my world" — Wittgenstein</p><p>I keep on thinking (again!) about the importance &amp; potential of dedicated programming languages in (not just my own) generative art/design processes and want to make time to write more about it.</p><p>Example: Creating a custom DSL to describe recursive spatial tree transformations (here only 8 operators) to literally grow complex objects from a _single_ seed shape/box. These objects and their growth visualizations are a few of my fave examples from this 2013/14 research (a project to revisit):</p><p><a href="https://thi.ng/morphogen" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/morphogen</span><span class="invisible"></span></a></p><p>The animations are simply visualizing the resulting object of the partially transformed operator trees by artificially limiting recursion depth (increasing it over time)...</p><p>Ps. The 3.5m tall and 2.4m diameter 3D printed chandelier shown in the last image was generated with the same language &amp; related thi.ng toolchain...</p><p><a href="https://mastodon.thi.ng/tags/GenerativeDesign" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GenerativeDesign</span></a> <a href="https://mastodon.thi.ng/tags/Language" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Language</span></a> <a href="https://mastodon.thi.ng/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a> <a href="https://mastodon.thi.ng/tags/Recursion" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Recursion</span></a> <a href="https://mastodon.thi.ng/tags/Geometry" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Geometry</span></a> <a href="https://mastodon.thi.ng/tags/Biology" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Biology</span></a> <a href="https://mastodon.thi.ng/tags/Morphogenesis" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Morphogenesis</span></a></p>
Karsten Schmidt<p><a href="https://mastodon.thi.ng/tags/HowToThing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HowToThing</span></a> #026 — Shader meta-programming techniques (functional composition, higher-order functions, compile-time evaluation, dynamic code generation etc.) to generate animated plots/graphs of 16 functions (incl. dynamic grid layout generation) within a single WebGL fragment shader.</p><p>Today's key packages:</p><p>- <a href="https://thi.ng/shader-ast" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/shader-ast</span><span class="invisible"></span></a>: DSL to write (fully type-checked) shaders directly in TypeScript and later compile them to GLSL, JS (and other target languages, i.e. there's partial support for Houdini VEX and [very] early stage WGSL...)<br>- <a href="https://thi.ng/shader-ast-stdlib" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/shader-ast-stdlib</span><span class="invisible"></span></a>: Collection of ~220 re-usable shader functions &amp; configurable building blocks (incl. SDFs primitives/ops, raymarching, lighting, matrix ops, etc.)<br>- <a href="https://thi.ng/webgl-shadertoy" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/webgl-shadertoy</span><span class="invisible"></span></a>: Minimal scaffolding for experimenting with fragment shaders (supports both normal GLSL or shader-ast flavors/compilation)</p><p>If you're new to the Shader-AST approach (highly likely!), this example will again introduce a lot of new concepts, hopefully in digestible manner! Please also always consult the package readmes (and other linked examples) for more background info... There're numerous benefits to this approach (incl. targetting different target langs and compositional &amp; optimization aspects which are impossible to achieve (at least not elegantly) via just string concatenation/interpolation of shader code, as is much more commonplace...)</p><p>This example comes fresh off the back of yesterday's new easing function additions (by <span class="h-card" translate="no"><a href="https://mastodon.world/@Yura" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>Yura</span></a></span>), though we're only showing a subset here...</p><p>Demo:<br><a href="https://demo.thi.ng/umbrella/shader-ast-easings/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">demo.thi.ng/umbrella/shader-as</span><span class="invisible">t-easings/</span></a><br>(Check the console to view the generated GLSL shader)</p><p>Source code:<br><a href="https://github.com/thi-ng/umbrella/tree/develop/examples/shader-ast-easings/src/index.ts" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/thi-ng/umbrella/tre</span><span class="invisible">e/develop/examples/shader-ast-easings/src/index.ts</span></a></p><p>If you have any questions about this topic or the packages used here, please reply in thread or use the discussion forum (or issue tracker):</p><p>github.com/thi-ng/umbrella/discussions</p><p><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/WebGL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebGL</span></a> <a href="https://mastodon.thi.ng/tags/Shader" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Shader</span></a> <a href="https://mastodon.thi.ng/tags/GLSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GLSL</span></a> <a href="https://mastodon.thi.ng/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FunctionalProgramming</span></a> <a href="https://mastodon.thi.ng/tags/GraphicsProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GraphicsProgramming</span></a> <a href="https://mastodon.thi.ng/tags/Plot" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Plot</span></a> <a href="https://mastodon.thi.ng/tags/CodeGeneration" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CodeGeneration</span></a> <a href="https://mastodon.thi.ng/tags/DSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DSL</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a> <a href="https://mastodon.thi.ng/tags/Tutorial" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Tutorial</span></a></p>