<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom"><channel>
    <title>kr1sp1n.net</title>
    <description>Updates from kr1sp1n.net</description>
    <atom:link href="http://kr1sp1n.net/rss.xml" rel="self" type="application/rss+xml" />
    <link>http://kr1sp1n.net</link>
    <ttl>1800</ttl>
    <lastBuildDate>Mon, 14 Sep 2026 08:11:18 GMT</lastBuildDate>
    <pubDate>Mon, 14 Sep 2026 08:11:18 GMT</pubDate>
  
    <item>
      <title>ascii ukulele tabs</title>
      <description><![CDATA[<h1>ascii ukulele tabs</h1><br/><pre>c<br/><br/>  C <br/>0003<br/>----<br/>||||<br/>||||<br/>|||3<br/>||||<br/><br/><br/> Dm   <br/>2210<br/>----<br/>||1|  <br/>23||<br/>||||<br/>||||<br/><br/><br/> Em <br/>0432<br/>----<br/>||||<br/>|||1<br/>||2|  <br/>|3||<br/><br/>  F <br/>2010<br/>----<br/>||1|<br/>2|||<br/>||||<br/>||||<br/><br/></pre><br/><br/>More to come.<br/>]]></description>
      <link>http://kr1sp1n.net/snippets/ascii_ukulele_tabs</link>
      <guid>http://kr1sp1n.net/snippets/ascii_ukulele_tabs</guid>
      <pubDate>Sun, 29 Jan 2023 00:00:00 GMT</pubDate>
      <atom:link href="http://kr1sp1n.net/snippets/ascii_ukulele_tabs" hreflang="en"/>
    </item>
    
    <item>
      <title>uxn live reload</title>
      <description><![CDATA[<h1>uxn live reload</h1><br/>I read about <a href="http://kr1sp1n.nethttps://merveilles.town/@neauoire/108919487191038785" target='_blank'>native live rom assembly/loading</a>.<br/>I tried to make it work but no success until I asked about it in the <a href="http://kr1sp1n.nethttps://llllllll.co/t/uxn-virtual-computer/46103/378?u=kr1sp1n" target='_blank'>uxn forum</a>.<br/><br/>It was not only the correct `.drifblim` format:<br/><br/><pre>bash<br/>00000000  2e 2e 2f 73 72 63 2f 75  78 6e 74 61 6c 2f 68 65  |../src/uxntal/he|<br/>00000010  6c 6c 6f 2e 74 61 6c 00  00 00 00 00 00 00 00 00  |llo.tal.........|<br/>00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|<br/>00000030  2e 2f 74 65 73 74 2e 72  6f 6d 00 00 00 00 00 00  |./test.rom......|<br/>00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|<br/>*<br/>00000060  01                                                |.|<br/></pre><br/><br/>I needed to rename `drifblim.rom` to `launcher.rom`.<br/>Then I executed `uxnemu launcher.rom`.<br/>So whenever I change the tal file I just press F4 inside the uxnemu window<br/>and it will assemble and load again.<br/><br/>]]></description>
      <link>http://kr1sp1n.net/snippets/uxn_live_reload</link>
      <guid>http://kr1sp1n.net/snippets/uxn_live_reload</guid>
      <pubDate>Fri, 02 Dec 2022 00:00:00 GMT</pubDate>
      <atom:link href="http://kr1sp1n.net/snippets/uxn_live_reload" hreflang="en"/>
    </item>
    
    <item>
      <title>links</title>
      <description><![CDATA[<h2>blog</h2><ul><li><a href="http://kr1sp1n.nethttps://100r.co/" target='_blank'>https://100r.co/</a> - Hundred Rabbits is an artist collective that documents low-tech solutions with the hope of building a more resilient future.</li><li><a href="http://kr1sp1n.nethttps://82mhz.net/" target='_blank'>https://82mhz.net/</a> - Andreas writes about tech, music, retro, books.</li><li><a href="http://kr1sp1n.nethttps://alexschroeder.ch/" target='_blank'>https://alexschroeder.ch/</a> - A diary about the stuff Alex Schroeder reads and does.</li><li><a href="http://kr1sp1n.nethttps://bleeptrack.de/" target='_blank'>https://bleeptrack.de/</a> - A freelancing creative technologist, and loves generative stuff of all sorts.</li><li><a href="http://kr1sp1n.nethttps://blinry.org/" target='_blank'>https://blinry.org/</a> - A programmer and designer doing a lot of visual and interactive things.</li><li><a href="http://kr1sp1n.nethttps://blog.donswelt.de/" target='_blank'>https://blog.donswelt.de/</a> - An indie game developer, musician and author (in German).</li><li><a href="http://kr1sp1n.nethttps://dopieralski.pl/" target='_blank'>https://dopieralski.pl/</a> - A nice blog of Radomir Dopieralski sharing technical and political views.</li><li><a href="http://kr1sp1n.nethttps://dubroy.com/blog/" target='_blank'>https://dubroy.com/blog/</a> - An independent software engineer and researcher</li><li><a href="http://kr1sp1n.nethttps://mspr0.de/" target='_blank'>https://mspr0.de/</a> - Michael Seemann writes books and talks about the crisis of institutions in times of digital loss of control.</li><li><a href="http://kr1sp1n.nethttps://nightfall.city/shore/m15o/" target='_blank'>https://nightfall.city/shore/m15o/</a> - Chilling by the shore.</li><li><a href="http://kr1sp1n.nethttps://ratfactor.com/" target='_blank'>https://ratfactor.com/</a> - Computer programming of all kinds, art, books, music.</li><li><a href="http://kr1sp1n.nethttps://solar.lowtechmagazine.com/" target='_blank'>https://solar.lowtechmagazine.com/</a> - A solar powered website by Kris De Decker with focus on low-tech solutions and high-tech problems.</li><li><a href="http://kr1sp1n.nethttps://wiki.xxiivv.com/" target='_blank'>https://wiki.xxiivv.com/</a> - Wiki of devine lu linvega, hundred rabbits and merveilles.</li></ul><h2>journalism</h2><ul><li><a href="http://kr1sp1n.nethttps://berlinergazette.de/" target='_blank'>https://berlinergazette.de/</a> - An independent and non-commercial online journal.</li></ul><h2>music</h2><ul><li><a href="http://kr1sp1n.nethttps://musicforprogramming.net/" target='_blank'>https://musicforprogramming.net/</a></li></ul><h2>podcast</h2><ul><li><a href="http://kr1sp1n.nethttps://cre.fm/" target='_blank'>CRE: Technik, Kultur, Gesellschaft</a> (in German)</li></ul><h2>protocol</h2><ul><li><a href="http://kr1sp1n.nethttps://geminiprotocol.net/" target='_blank'>https://geminiprotocol.net/</a></li><li><a href="http://kr1sp1n.nethttps://willowprotocol.org/" target='_blank'>https://willowprotocol.org/</a></li></ul><h2>software</h2><ul><li><a href="http://kr1sp1n.nethttp://collapseos.org/" target='_blank'>http://collapseos.org/</a></li><li><a href="http://kr1sp1n.nethttps://100r.co/site/uxn.html" target='_blank'>https://100r.co/site/uxn.html</a></li><li><a href="http://kr1sp1n.nethttps://bellard.org/quickjs/" target='_blank'>https://bellard.org/quickjs/</a></li><li><a href="http://kr1sp1n.nethttps://earthstar-project.org/" target='_blank'>https://earthstar-project.org/</a></li><li><a href="http://kr1sp1n.nethttps://github.com/n0-computer/sendme" target='_blank'>https://github.com/n0-computer/sendme</a></li></ul>]]></description>
      <link>http://kr1sp1n.net/lists/links</link>
      <guid>http://kr1sp1n.net/lists/links</guid>
      <pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate>
      <atom:link href="http://kr1sp1n.net/lists/links" hreflang="en"/>
    </item>
    
    <item>
      <title>books</title>
      <description><![CDATA[<h1>books</h1><br/>Just an incomplete list of books I've read (in German):<br/><ul><li>Alexandre Dumas - Der Graf von Monte Christo</li><li>Andreas Eschbach - Das Marsprojekt</li><li>Andreas Eschbach - Eine Billion Dollar</li><li>Andreas Eschbach - Eines Menschen Fl&uuml;gel</li><li>Anthony Doerr - Alles Licht, das wir nicht sehen</li><li>Dietmar Dath - Neptunation</li><li>Dmitri Alexejewitsch Gluchowski - Metro 2033</li><li>Isaac Asimov - Foundation-Trilogie</li><li>J. R. R. Tolkien - Der Herr der Ringe</li><li>J. R. R. Tolkien - Der Hobbit</li><li>Marc-Uwe Kling - Qualityland</li><li>Marc-Uwe Kling - QualityLand 2.0</li><li>Terry Pratchet + Stephen Baxter - Der Lange Krieg</li><li>Terry Pratchet + Stephen Baxter - Der Lange Mars</li><li>Terry Pratchet + Stephen Baxter - Die Lange Erde</li><li>William Gibson - Neuromancer-Trilogie</li></ul><br/>]]></description>
      <link>http://kr1sp1n.net/lists/books</link>
      <guid>http://kr1sp1n.net/lists/books</guid>
      <pubDate>Sat, 21 Sep 2024 00:00:00 GMT</pubDate>
      <atom:link href="http://kr1sp1n.net/lists/books" hreflang="en"/>
    </item>
    
    <item>
      <title>index</title>
      <description><![CDATA[<br/><h1 class="global">Hello World</h1><br/>Hello visitor, my name is Krispin, a developer, gardener, tinkerer, musician and pacifist.<br/>Living in Cottbus, Germany.<br/>I am interested in perma culture with focus on perma computing.<br/>To be alive is the greatest gift I could ever wish.<br/><br/>]]></description>
      <link>http://kr1sp1n.net/index</link>
      <guid>http://kr1sp1n.net/index</guid>
      <pubDate>Mon, 02 Dec 2024 00:00:00 GMT</pubDate>
      <atom:link href="http://kr1sp1n.net/index" hreflang="en"/>
    </item>
    
    <item>
      <title>nicer cable</title>
      <description><![CDATA[<h1>nicer cable</h1><br/>Instead of coding I did knotting today. My wife creates beautiful objects with the macram&eacute; technique.<br/>She showed me how to do basic stuff and so I beautify a USB cable of mine.<br/><br/><img src="http://kr1sp1n.net/assets/img/nicer-cable.png" alt="A USB cable lying on the table. The cable is wrapped in a white cord that is knotted using the macrame technique." /><br/>]]></description>
      <link>http://kr1sp1n.net/log/nicer-cable</link>
      <guid>http://kr1sp1n.net/log/nicer-cable</guid>
      <pubDate>Sun, 22 Dec 2024 00:00:00 GMT</pubDate>
      <atom:link href="http://kr1sp1n.net/log/nicer-cable" hreflang="en"/>
    </item>
    
    <item>
      <title>december adventure 2024</title>
      <description><![CDATA[<h1>december adventure 2024</h1><br/>Here I keep track of my <a href="http://kr1sp1n.nethttps://eli.li/december-adventure" target='_blank'>december adventure</a> for 2024.<br/>The goal is to write a little bit of code every day in December.<br/><br/><h2>day 22</h2>Create <a href="http://kr1sp1n.net/log/nicer-cable" target='_blank'>nicer cable</a> with macram&eacute;.<br/><br/><h2>day 11 - 21</h2>Take care of myself and my family.<br/><br/><h2>day 10</h2>Make websites offline <a href="http://kr1sp1n.net/log/readable" target='_blank'>readable</a> again.<br/><br/><h2>day 4 - day 9</h2>Have a rest and enjoy life.<br/><br/><h2>day 3</h2>Taste my <a href="http://kr1sp1n.net/log/syntactic-sugar-for-wapp" target='_blank'>syntactic sugar</a> for Wapp, a framework for writing web applications in TCL.<br/><br/><h2>day 2</h2>Deliver my <a href="http://kr1sp1n.net/log/deliver-http-and-https" target='_blank'>website via HTTP</a> now, besides HTTPS.<br/><br/><h2>day 1</h2>Create a <a href="http://kr1sp1n.net/log/style-38c3" target='_blank'>new style</a> for this website.<br/>]]></description>
      <link>http://kr1sp1n.net/log/december-adventure-2024</link>
      <guid>http://kr1sp1n.net/log/december-adventure-2024</guid>
      <pubDate>Sun, 01 Dec 2024 00:00:00 GMT</pubDate>
      <atom:link href="http://kr1sp1n.net/log/december-adventure-2024" hreflang="en"/>
    </item>
    
    <item>
      <title>deliver http and https</title>
      <description><![CDATA[<h1>deliver http and https</h1><br/>Today I tested my website on some old devices (e.g. iPad from 2011) and they can not connect via HTTPS. These lovely older machines simply can't do it because of the encryption, unknown CAs and stuff that protects our fast spinning digital world. So I decided to deliver my website via HTTPS and HTTP.<br/><br/>I use <a href="http://kr1sp1n.nethttps://docs.docker.com/compose/" target='_blank'>docker-compose</a> on my host machine and set up <a href="http://kr1sp1n.nethttps://letsencrypt.org/" target='_blank'>lets-encrypt</a> and <a href="http://kr1sp1n.nethttps://traefik.io/traefik/" target='_blank'>traefik</a> for <a href="http://kr1sp1n.nethttps://doc.traefik.io/traefik/https/acme/" target='_blank'>automatic certificate generation</a>.<br/><br/>To support HTTP as well I just removed the redirect from HTTP to HTTPS and connect both entrypoints with the backend.<br/><br/><h2>before</h2><pre>services:<br/>  <br/>  traefik:<br/>    image: "traefik:v2.3"<br/>    command:<br/>      ...<br/>      - "--entrypoints.web.address=:80"<br/>      - "--entrypoints.web.http.redirections.entryPoint.to=websecure"<br/>      - "--entrypoints.web.http.redirections.entryPoint.scheme=https"<br/>      - "--entrypoints.websecure.address=:443"<br/>      ...<br/><br/>  web:<br/>    image: caddy:2.3.0-alpine<br/>    labels:<br/>      ...<br/>      - "traefik.http.routers.caddy.rule=(Host(`kr1sp1n.net`))"<br/>      - "traefik.http.routers.caddy.entrypoints=websecure"<br/>      - "traefik.http.routers.caddy.tls.certresolver=resolver"<br/>      ...<br/></pre><br/><br/><h2>after</h2><pre>services:<br/>  <br/>  traefik:<br/>    image: "traefik:v2.3"<br/>    command:<br/>      ...<br/>      # Remove redirects from http to https:<br/>      #- "--entrypoints.web.http.redirections.entryPoint.to=websecure"<br/>      #- "--entrypoints.web.http.redirections.entryPoint.scheme=https"<br/>      ...<br/><br/>  web:<br/>    image: caddy:2.3.0-alpine<br/>    labels:<br/>      ...<br/>      # HTTP entrypoint:<br/>      - "traefik.http.routers.caddy.entrypoints=web"<br/>      - "traefik.http.routers.caddy.rule=(Host(`kr1sp1n.net`))"<br/>      # HTTPS entrypoint<br/>      - "traefik.http.routers.caddysecure.entrypoints=websecure"<br/>      - "traefik.http.routers.caddysecure.rule=(Host(`kr1sp1n.net`))"<br/>      ...<br/></pre><br/><br/>And thanks to this little change your devices can now connect to:<br/><ul><li><a href="http://kr1sp1n.nethttp://kr1sp1n.net" target='_blank'>http://kr1sp1n.net</a></li><li><a href="http://kr1sp1n.nethttps://kr1sp1n.net" target='_blank'>https://kr1sp1n.net</a></li></ul>Hooray!<br/><br/>]]></description>
      <link>http://kr1sp1n.net/log/deliver-http-and-https</link>
      <guid>http://kr1sp1n.net/log/deliver-http-and-https</guid>
      <pubDate>Mon, 02 Dec 2024 00:00:00 GMT</pubDate>
      <atom:link href="http://kr1sp1n.net/log/deliver-http-and-https" hreflang="en"/>
    </item>
    
    <item>
      <title>rss feed</title>
      <description><![CDATA[<h1>rss feed</h1><br/>Finally I implemented an RSS feed for my website:<br/><br/><a href="http://kr1sp1n.nethttp://kr1sp1n.net/rss.xml" target='_blank'>http://kr1sp1n.net/rss.xml</a><br/><br/>After the deployment I used the <a href="http://kr1sp1n.nethttps://validator.w3.org/feed/" target='_blank'>Feed Validation Service</a> from the W3C to check for possible improvements.<br/>]]></description>
      <link>http://kr1sp1n.net/log/rss-feed</link>
      <guid>http://kr1sp1n.net/log/rss-feed</guid>
      <pubDate>Wed, 16 Jul 2025 00:00:00 GMT</pubDate>
      <atom:link href="http://kr1sp1n.net/log/rss-feed" hreflang="en"/>
    </item>
    
    <item>
      <title>readable</title>
      <description><![CDATA[<h1>readable</h1><br/>For a couple of years I use <a href="http://kr1sp1n.nethttps://www.npmjs.com/package/readability-cli" target='_blank'>readablitiy-cli</a> to have the Firefox reader view in my terminal. But for a true offline experience I created a simple shell script `readable.sh` that combines readability-cli and <a href="http://kr1sp1n.nethttps://w3m.sourceforge.net/" target='_blank'>w3m</a> to ouput any website as a plain text:<br/><pre>#!/usr/bin/env bash<br/><br/>#$1 = URL<br/>#Use readable and w3m to format HTML content:<br/>echo "$1" | xargs readable -q -K -l force | w3m -T text/html -cols 80 -dump<br/></pre><br/><br/>Now I can use it to save any longer article for offline reading:<br/><pre>./readable.sh https://100r.co/site/working_offgrid_efficiently.html > readlater.txt<br/>less readlater.txt<br/></pre><br/><br/>I used it to save the chapters of a short story without the HTML clutter:<br/><pre>./readable.sh https://marshallbrain.com/manna1 > manna_chapter1.txt<br/></pre><br/>]]></description>
      <link>http://kr1sp1n.net/log/readable</link>
      <guid>http://kr1sp1n.net/log/readable</guid>
      <pubDate>Tue, 10 Dec 2024 00:00:00 GMT</pubDate>
      <atom:link href="http://kr1sp1n.net/log/readable" hreflang="en"/>
    </item>
    
    <item>
      <title>tuxn - uxn in tcl/tk</title>
      <description><![CDATA[<h1>tuxn - uxn in tcl/tk</h1><br/>Inspired by the work on <a href="http://kr1sp1n.nethttps://git.sr.ht/~rabbits/uxn5" target='_blank'>uxn5</a> by <a href="http://kr1sp1n.nethttps://merveilles.town/@aw" target='_blank'>@aw</a> and <a href="http://kr1sp1n.nethttps://merveilles.town/@neauoire" target='_blank'>@neauoire</a> I just started an implementation of #uxn in #tcl and #tk. So much fun!<br/><br/>Here is the repo: <a href="http://kr1sp1n.nethttps://git.sr.ht/~kr1sp1n/tuxn" target='_blank'>https://git.sr.ht/~kr1sp1n/tuxn</a><br/><br/>At the moment I'm a little bit stuck with the implementation.<br/>The opcode tests run fine but it seems that any loop structure is not interpreted<br/>in the right way. Will investigate further when I find some time.<br/>]]></description>
      <link>http://kr1sp1n.net/log/tuxn</link>
      <guid>http://kr1sp1n.net/log/tuxn</guid>
      <pubDate>Tue, 23 Jan 2024 00:00:00 GMT</pubDate>
      <atom:link href="http://kr1sp1n.net/log/tuxn" hreflang="en"/>
    </item>
    
    <item>
      <title>moka-server</title>
      <description><![CDATA[<h1>moka-server</h1><br/>I created a simple server that serves a <a href="http://kr1sp1n.nethttps://moka.pub/" target='_blank'>moka</a> wiki<br/>and it saves any changes when you publish it.<br/>It is written in tcl with the help of <a href="http://kr1sp1n.nethttps://wapp.tcl.tk/" target='_blank'>wapp</a>.<br/><br/>Here is the repo: <a href="http://kr1sp1n.nethttps://git.sr.ht/~kr1sp1n/moka-server" target='_blank'>https://git.sr.ht/~kr1sp1n/moka-server</a><br/><br/><br/>]]></description>
      <link>http://kr1sp1n.net/log/moka-server</link>
      <guid>http://kr1sp1n.net/log/moka-server</guid>
      <pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate>
      <atom:link href="http://kr1sp1n.net/log/moka-server" hreflang="en"/>
    </item>
    
    <item>
      <title>style like it's 38C3</title>
      <description><![CDATA[<h1>style like it's 38C3 </h1><br/>First day of my <a href="http://kr1sp1n.nethttps://eli.li/december-adventure" target='_blank'>decemberadventure</a> for 2024.<br/><br/>I stumbled upon the <a href="http://kr1sp1n.nethttps://events.ccc.de/congress/2024/infos/styleguide.html" target='_blank'>styleguide</a> for the upcoming <a href="http://kr1sp1n.nethttps://www.ccc.de/en/updates/2024/38c3-illegal-instructions" target='_blank'>38th Chaos Communication Congress</a> in Hamburg, Germany at the end of December.<br/><br/>Very nice visual concept and I love the colors so I decided to restyle my boring website for 1 year until the next Chaos Communication Congress.<br/>]]></description>
      <link>http://kr1sp1n.net/log/style-38c3</link>
      <guid>http://kr1sp1n.net/log/style-38c3</guid>
      <pubDate>Sun, 01 Dec 2024 00:00:00 GMT</pubDate>
      <atom:link href="http://kr1sp1n.net/log/style-38c3" hreflang="en"/>
    </item>
    
    <item>
      <title>syntactic sugar for Wapp</title>
      <description><![CDATA[<h1>syntactic sugar for Wapp</h1><br/>From time to time I use the <a href="http://kr1sp1n.nethttps://wapp.tcl-lang.org/" target='_blank'>Wapp framework</a> for some of my projects.<br/>This little framework helps when writing web applications in <a href="http://kr1sp1n.nethttps://en.wikipedia.org/wiki/Tcl" target='_blank'>TCL</a> and is just 1 single file with about 1030 lines of code.<br/><br/>I really love the simplicity and resilience of the TCL programming language.<br/>It's there for over 30 years now but you can still use it on old and new computers.<br/>So I used the power of TCL to give me some syntactic sugar when using Wapp.<br/><br/>Usually you can define routes in Wapp like this:<br/><pre>proc wapp-page-hello {} {<br/>  wapp-trim {<br/>    # Content to deliver for page hello<br/>  }<br/>}<br/></pre><br/>But then you have to parse the HTTP method out of the variable "wapp-param REQUEST_METHOD" if you want to react on different HTTP methods like GET and POST.<br/><br/>I wrote some helpers to handle this:<br/><pre>set routes [list]<br/><br/>proc sort-route {} {<br/>  global routes<br/>  set routes [lsort -index 1 $routes]<br/>}<br/><br/>proc setup-route {method path code} {<br/>  global routes<br/>  set routes [linsert $routes end [list $method $path $code]]<br/>  set procname "wapp-page-$method-[join [split $path /] -]"<br/>  eval "proc $procname {} {$code}"<br/>  sort-route<br/>}<br/><br/>proc GET {path code} {<br/>  setup-route GET $path $code<br/>}<br/><br/>proc POST {path code} {<br/>  setup-route POST $path $code<br/>}<br/><br/>  # Custom hook prior to dispatch of the HTTP request handler:<br/>proc wapp-before-dispatch-hook {} {<br/>  global routes<br/>  foreach {route} $routes {<br/>    set method [lindex $route 0]<br/>    set path [lindex $route 1]<br/>    if {[wapp-param REQUEST_METHOD] != $method} continue<br/>    set notequal 0<br/>    # Compare route with current request:<br/>    foreach a [split [wapp-param PATH_INFO] /] b [split $path /] {<br/>      # Parse named route parameters out of the path to capture their values:<br/>      if [regexp {:([^:]+)} $b match var] {<br/>        wapp-set-param PATH_PARAMS [dict create $var $a]<br/>      } else {<br/>        if {$a != $b} {<br/>          set notequal 1<br/>          break<br/>        }<br/>      }<br/>    }<br/>    if {$notequal eq 1} continue<br/>    wapp-set-param PATH_HEAD "$method-[string map {/ -} $path]"<br/>    break<br/>  }<br/>}<br/></pre><br/><br/>After including my helpers I can define routes like this:<br/><pre>GET /hello {<br/>  wapp-trim {<br/>    # Content to deliver after a GET request<br/>  }<br/>}<br/><br/>GET /hello/:name {<br/>  set name [dict get [wapp-param PATH_PARAMS] name]<br/>  # Do something with name:<br/>  wapp-trim {<br/>    Hello %html($name)!<br/>  }<br/>}<br/><br/>POST /hello {<br/>  wapp-trim {<br/>    # Content to deliver after a POST request<br/>  }<br/>}<br/></pre><br/><br/>And if the syntax reminds you of the Node.js framework <a href="http://kr1sp1n.nethttps://expressjs.com/" target='_blank'>express</a>, then this is not a coincidence.<br/>I used it for a very long time but now I am on a quest to find simpler solutions.<br/><br/>]]></description>
      <link>http://kr1sp1n.net/log/syntactic-sugar-for-wapp</link>
      <guid>http://kr1sp1n.net/log/syntactic-sugar-for-wapp</guid>
      <pubDate>Tue, 03 Dec 2024 00:00:00 GMT</pubDate>
      <atom:link href="http://kr1sp1n.net/log/syntactic-sugar-for-wapp" hreflang="en"/>
    </item>
    
    <item>
      <title>Chaostreff - Auf ins Fediversum</title>
      <description><![CDATA[<h1>Chaostreff: Auf ins Fediversum</h1><br/>Ich halte einen Vortrag ueber das Fediversum in Cottbus:<br/><a href="http://kr1sp1n.nethttps://cottbus.vonunten.org/events/b42e9129-e319-4969-a9a3-2010346590b9" target='_blank'>https://cottbus.vonunten.org/events/b42e9129-e319-4969-a9a3-2010346590b9</a><br/><br/>de:<br/><br/>Vor langer Zeit, in einer weit, weit entfernten Galaxie ... das Imperium hat alle sozialen Netzwerke in seine Gewalt gebracht. Alle Netzwerke? Nein! Ein von unbeugsamen Entwicklern bevoelkerter Teil des Internets hoert nicht auf, dem Eindringling Widerstand zu leisten. Sie haben durch gemeinsame Schnittstellen und offene Protokolle viele voneinander unabhaengige kleine Netzwerke miteinander verbunden. Dadurch wurden zum Beispiel Alternativen fuer Facebook, Youtube, Twitter (X), Instagram und Reddit erschaffen. Ich stelle euch diese Alternativen kurz vor, spreche ueber die technische Basis und zeige, wie man seinen eigenen kleinen Server in NodeJS implementiert.<br/><br/>Besteigt mit mir die Chaos-Rakete und fliegt mit mir ins Fediversum auf der Suche nach Abenteuer und Datensouveraenitaet!<br/><br/>en:<br/><br/>A long time ago, in a galaxy far, far away... the Empire took over all social networks. All networks? No! A part of the internet populated by indomitable developers continues to resist the invader. They have connected many independent small networks through common interfaces and open protocols. This has created alternatives to Facebook, YouTube, Twitter (X), Instagram, and Reddit, for example. I'll briefly introduce you to these alternatives, talk about the technical basis, and show you how to implement your own small server in NodeJS.<br/><br/>Board the Chaos Rocket with me and fly with me to the Fediverse in search of adventure and data sovereignty!<br/><br/>]]></description>
      <link>http://kr1sp1n.net/log/chaostreff-fediversum</link>
      <guid>http://kr1sp1n.net/log/chaostreff-fediversum</guid>
      <pubDate>Tue, 29 Apr 2025 00:00:00 GMT</pubDate>
      <atom:link href="http://kr1sp1n.net/log/chaostreff-fediversum" hreflang="en"/>
    </item>
    
    <item>
      <title>leaving-digitalocean</title>
      <description><![CDATA[<h1>leaving digitalocean</h1><br/>I've decided to leave DigitalOcean and move my infrastructure to Hetzner.<br/><br/>The reason is DigitalOcean's donation to Omarchy, combined with my strong discomfort with DHH and the ideas and politics he represents.<br/>For me, where a company puts its money matters. A donation is a choice, and I dont want my money indirectly supporting something I fundamentally disagree with.<br/>I've been happy with DigitalOcean as a service, but at this point, staying there no longer feels right to me.<br/>So I'm moving to Hetzner instead. I just had 1 vServer, so it was easy.<br/>This is a personal decision. I'm not suggesting that everyone should do the same.<br/>I simply want my spending and the companies I support to align with my own values.<br/><br/>]]></description>
      <link>http://kr1sp1n.net/log/leaving-digitalocean</link>
      <guid>http://kr1sp1n.net/log/leaving-digitalocean</guid>
      <pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate>
      <atom:link href="http://kr1sp1n.net/log/leaving-digitalocean" hreflang="en"/>
    </item>
    </channel></rss>