programmierung

unum-cloud/USearch - drin was drauf steht. Also eine Library, die einen Index für Vektoren bietet, die z.B. aus Embedding stammen können und so semantisch ähnliche Texte finden können. Nicht Text-ähnlich, sondern semantisch, also Inhalt. Spannendes Thema, die dafür nötigen Modelle sind mit den LLMs verwandt, aber eben nicht large, sondern small - sie brauchen nicht voll zu verstehen und zu generieren, weil sie nur Vektoren erstellen, die dann gegeneinander verglichen werden können und je höher die Ähnlichkeit, desto höher die Ähnlichkeit der Texte im Thema. Cooles kleines Feature für bDS.

Ollama - eine Runtime-Umgebung für LLMs, die es erlaubt Modelle lokal zu betreiben. Mein Lieblingsmodell zur Zeit: qwen2.5vl:7b-q4_K_M. Mit nur 6.6 GB Größe läuft das problemlos auf einem MacBook Air M4 und hat noch genug Speicher und Kapazität frei um Programme nebenbei laufen zu lassen. Das Modell ist im Chat erstaunlich brauchbar und vor allem hat es klasse Vision-Fähigkeiten. Ideal um für Bilder Titel, Alt-Texte oder Zusammenfassungen zu liefern, ohne dafür Geld an große Provider abzudrücken. Und ein wichtiger Baustein, um bDS wieder zurück zu full-offline zu bringen.

wer so wie ich gerne einen Überblick über UI-integration von LLMs haben möchte und sich fragt, wie A2UI und MCP Apps im Vergleich arbeiten und was sie bieten: Agent UI Standards Multiply: MCP Apps and Google’s A2UI - Richard MacManus hilft. Ich habe in bDS ja A2UI implementiert, damit im internen Chat das LLM auch visuelle Aspekte nutzen kann, und das gefällt mir schon sehr gut. Aber die Idee, Teile meines UI auch in externe Agents einzubringen ist auch faszinierend. Auch wenn ich finde, dass "lokales HTML/JS in einem IFrame" irgendwie erstmal nach Hack klingt, aber vieles im LLM Umfeld gibt mir das Gefühl im Moment, einfach weil ja alles über einen normalen Text-Stream geschoben wird und man hofft, dass die LLMs sich an die Formate halten (selbst A2UI arbeitet so).

cloudflare/cobweb: COBOL to WebAssembly compiler - ich lass das einfach mal hier liegen. Soll doch jemand anders den alten Kram wegräumen. was soll man da auch anderes sagen.

Pyodide ist so ein bisschen mein Lebensretter in bDS: ich muss nämlich gestehen, ich bin jetzt nicht wirklich super tief in TypeScript drin und hab auch eigentlich keine Lust das selber zu schreiben. Wenn die KI das macht, ist das ok, da gibt es genug Wissen auf das ein LLM zurückgreifen kann, aber ich will eigentlich nicht mich da tief einarbeiten. Und Python ist schon seit langem eine meiner favorisierten Sprachen. Und Pyodide bietet genau das: eine Portierung von CPython auf WebAssembly. Das bietet eine angenehme Sprache für Scripte und Makros, die aber auf alles zugreifen kann, was die Applikation macht und - wenn ich das mal will - auch Python Libraries ladenm kann.

Drizzle ORM - war ein Vorschlag der KI beim Bau von bDS und hat sich sehr bewährt. Sauberer ORM für TypeScript mit einer recht netten API, die mich stark an Django erinnert. Zusätzlich saubere Abbildung von Migrations, die dann aber einfach SQL erlauben, also auch komplexere Migrationen ermöglichen. Und bisher völlig unauffällig im Betrieb. Was besonders interessant ist: da gibts eine direkte Übersetzung nach GraphQL, so dass man die objekte dann auch nach außen auf ein API legen kann, was ich mir glaube ich mal angucken sollte (bzw. mich bei der KI beschweren sollte, dass es sich das mal anguckt). Ich bin ja immer ein Fan von flexiblen Standard-Integrationen um externe Tools anzubinden.

A2UI ist ein interessantes Projekt für ein streaming-orientiertes Protokoll für Anwendungen mit LLM Integration. Die Grundidee ist Streaming von JSON Schnipseln aus denen sich dann inkrementell das UI zusammenbaut, und das LLM hat die Kontrolle darüber, was in das UI rein wandert. Es erlaubt dem LLM mehr als nur simple textuelle Beschreibungen oder einfache Ascii-Grafiken zu produzieren und gibt auch Rückfragen des LLM eine andere Optik. Das ganze kommt von Google und wird auf einem offenen github Projekt gepflegt. In bDS habe ich das ganze auch eingebaut und das hat schon was, wenn man über seine Blogposts eine Heatmap der Verteilung auf die Monate bekommen kann.

OpenCode | Der Open-Source AI-Coding-Agent - ein open-source coding agent der so langsam Claude Code den Rang ablaufen könnte. Sehr gut in der Ausführung und vor allem Provider-agnostisch. Man kann jedes Modell anhängen, sogar ein selber lokal gehostetes mit LM Studio oder ollama. Wenn man einfach mal spielen will, kann man es auch einfach nur runterladen und loslegen, sogar ohne eine Kreditkarte zu hinterlegen (dann natürlich mit limitierten Tokens, aber für erste Experimente durchaus nutzbar. Und unabhängig von den großen Anbietern (ok, außer deren Modelle, wenn man die benutzen will - und für ernsthaftes Coding sind die leider noch notwendig). OpenCode bietet auch selber AI Modelle an, die dann abgerechnet werden, aber ein paar Modelle sind immer frei verfügbar und bieten damit durchaus ernsthaftes Experimentieren ohne Investment.

Steve Yegge on Vibe Coding

Steve Yegge spricht im Interview über die Zukunft der Programmierung und die Herausforderungen des Vibe Codings. Der Autor teilt seine Erfahrungen und sieht einen Umbruch vergleichbar mit der Einführung von Hochsprachen.

Big Damn Stupid - ne, Blogging Desktop Server. Im Moment mein Lieblingsprojekt an dem ich mit Vibe-Coding herumspiele und mir eine Software baue, mit der ich das Blog betreiben kann. Aber diesmal mit der klaren Perspektive, dass ich nicht wieder dem Bitrot oder der Komplexitätsspirale erliege. Simple Software mit brauchbarer Oberfläche für die Pflege der Blogbeiträge, aber die Speicherung als Markdown Files mit YAML Frontmatter um einfach stabil für die Zukunft zu sein. Das ganze dann mit sqlite für Caching und Volltextsuche und andere Komfort-Features und git für die Synchronisation der Blog-Daten, und git-lfs für die Bilder. Fühlt sich gerade richtig brauchbar an.

zeromq/netmq: A 100% native C# implementation of ZeroMQ for .NET war mir vollkommen unbekannt (die C# Version, nicht ZeroMQ), ist aber für .NETies ein wirklich spannendes Projekt. Direkt in .NET ohne externe Libraries oder gar Server kann man damit diverse 1:1, 1:N, N:1, N:M Kommunikationsstrukturen mit diversen Verhaltensweisen (Pub/Sub, Broadcast, Req/Resp, Fifo - halt alles was ZeroMQ kann) aufbauen. Macht einen sehr guten Eindruck (ok, kein Wunder, ist ja schließlich eine Umsetzung des originalen ZeroMQ nach C#, und ZeroMQ war für seine Zwecke ja schon absolut genial). Und ist natürlich interoperabel mit dem originalen ZeroMQ.

Heilige Scheiße, Per6 ist offiziell draußen!

Quelle: The Night Larry Wall Unveiled Perl 6 | 10 Zen Monkeys

Schon lange keine Programmiersprachenlinks mehr gepostet: Haskell for Mac ist eine interaktive Programmierumgebung für Haskell auf dem Mac (sagt ja der Name schon). Interessant, da es eine Art Notebook-Interface bietet mit dem man interaktiv Code entwickelt und direkt ausprobiert und die Ergebnisse visualisieren kann. Zum Rumspielen mit Haskell ganz interessant, aber ich weiss nicht, ob das 25 Dollar wert ist - speziell das von Apple erzwungene Sandboxing kann da nämlich schnell nervig werden. Und da es Yosemite voraussetzt, werd ich es eh nicht ausprobieren können.

Why Go’s design is a disservice to intelligent programmers | Nomad Software. Da werden einige der Punkte angesprochen, die mich auch ein bischen an go irritieren. Mittlerweile habe ich das Gefühl, verdammt stark an Nikolaus Wirth (Stichwort: Oberon) erinnert zu werden. Ja, man kann durchaus einfache Sprachen entwerfen, aber dumb-down ist nicht der richtige Ansatz dafür. So sehr mich einige der Konzepte zur Asynchronizität in Go begeistern, so sehr irritiert mich die Basissprache.

xslt workbench. Bitte nicht fragen warum ich sowas brauche. Die Schmerzen sind so schon groß genug.

sharplispers/cormanlisp. Schon lange nix mehr gelispelt. Corman Lisp - seiner Zeit eine der coolsten Implementierungen von Common Lisp auf Windows - ist jetzt Open Source und auf github. Allerdings brauchts wohl erst noch einiges an Überarbeitung, bevor es auf modernen Windows-Versionen wieder einwandfrei funktioniert. Aber ein erster Schritt ist ja jetzt gemacht, mit der Source-Freigabe.

Micro Python - Python for microcontrollers. Ach menno, so viele Boards zum Ausprobieren, so wenig Zeit. Klingt wirklich nett, eine speziell auf Embedded-Systeme ausgelegte Python-Implementierung mit AOT Kompilation und das dann auch noch mit so niedrigen Hardware-Anforderungen ist schon eine spannende Sache.

click - Gerade drüber gestolpert, das sieht endlich mal wirklich wie eine Arbeitserleichterung aus - viele andere Libraries für Kommandozeilenintegration waren so sperrig, dass ich nicht viele Vorteile über den von der Standardlib gelieferten Sachen sehen konnte. Aber das hier wirkt doch schon recht kompakt.

.NET Compiler Platform "Roslyn" - Documentation. C# und VB.Net Compiler. Direkt von Microsoft. In C#. Und Basic. Unter Apache 2.0 Lizenz. Also ganz ehrlich? Ich finds klasse.

2.0 Series — IPython 2.0.0 documentation. Sehr cool. So langsam kommt das immer näher an die Oberfläche von Mathematica heran. Leider der starke Fokus auf Browser - ich kann verstehen warum, aber so richtig begeistert bin ich davon nicht, mir wäre es lieber, das wäre eine mehr integrierte Lösung in der normalen GUI. HTML als Rendering-Engine ist ja in Ordnung, aber Browser als Benutzeroberfläche leider doch immer noch sehr hakelig im Vergleich zu einer optimierten nativen Umgebung. Aber trotzdem, wirklich cool was da passiert.

Microsoft öffnet .NET-Quellcode. Ok, wäre noch besser wenn es gleich eine Open Source Lizenz gewesen wäre (und mit GPL hätten sie sich sogar selber absichern können), aber hey, auch diese Variante ist nicht uncool - Mitlizensierung von Patenten für die Reference-Sources ist schon mal eine gute Nummer. Und Mono hat ein Stück Sicherheit mehr bekommen.

The Julia Language. Hatte ich das schon? Egal, kann man auch mal wiederholen, vor allem weil es jetzt auch eine kleine kompakte IDE für Julia gibt.

kachayev/fn.py · GitHub. Diverse kleine Tools um in Python mehr funktional zu programmieren. Interessant für mich hauptsächlich die persistenten Datenstrukturen, ich hab diese mit Clojure sehr schätzen gelernt.

TeleHash / JSON + UDP + DHT = Freedom. Über git-annex drauf gestoßen: eine verteilte Messaging-Technik mit interessanten Eigenschaften. Stark P2P ausgerichtet, stark auf Verschlüsselung ausgerichtet und von vornherein als Middleware konzipiert und nicht primär als Mensch-zu-Mensch Protokoll wie XMPP. Definitiv beobachten, was da raus kommt.

Self Mallard 4.5.0 released | Self. Es lebt noch. Ist ja immer noch eines der coolsten Systeme die sich aus Smalltalk ergeben haben - sehr exotisch, sehr anders. Aus einigen Aspekten können Systeme auch heute noch lernen - die Umsetzung der prototypischen Vererbung in die grafische Entwicklungsoberfläche ist schon echt cool und wirkt selbst heute noch modern. Das GUI Framework selber hat ja schon vor geraumer Zeit seinen Weg in Squeak gefunden, aber außerhalb der Squeak+Self-Welt kennt es kaum jemand. Was wirklich schade ist. Und der Compiler ist auch immer noch einer der besseren im Feld der Bytecode-Sprachen. Gerade wenn man mal vergleicht wie JavaScript heute sich darstellt und was Self schon seit ewigen Zeiten kann, da kann man glatt traurig werden.

Hands on Sailfish OS: Intelligenter Baukasten zum Basteln und Portieren - Golem.de. Hmm - nicht wirklich so weit offen wie man gehofft hätte, aber weiter offen als man hätte befürchten können. Klingt auf jeden Fall nach einer guten Hack-Grundlage für Bastelprojekte. Vor allem die Kombination eines "richtigen" Linux und einer Android-Umgebung für die Apps ist ziemlich cool, weil dadurch die technische Isolation vermieden wird.

Google Apps Script — Google Developers. Interessant - JavaScript-Scripting für Google Apps wie GMail oder GDocs und so. Sieht gar nicht mal so uncool aus und hat jetzt auch ein Eclipse Plugin um die Scripts offline editieren zu können.

Scala Implicits - Not to be feared. Netter Foliensatz, der erklärt wofür die Scala Implicits alles benutzt werden und warum sie Sinn machen. Da Implicits ein eher oft außerhalb der Scala-Community schlecht verstandenes Feature sind, vielleicht ganz lohnend anzugucken.

lihaoyi/macropy. Aus alten Lisp-Zeiten bin ich immer noch ein Fan von Macros - einfach weil konfigurierbare Programmiersprachen einen deutlich höheren Beschreibungslevel erlauben. Ok, das ganze geht dann oft auf Kosten der Verständlichkeit, weil ein Leser nicht nur die Sprache und die Bibliotheken, sondern jetzt auch noch die Macros kennen muss. Trotzdem, für manche zwecke finde ich Macros immer noch sehr praktisch. Ob ich sie allerdings in Python einbinden wollen würde, wie dieses Projekt es macht, weiss ich noch nicht so genau - der Ansatz über den AST ist aber mindestens interessant.

Zim - a desktop wiki. Da ich ja mal wieder mit Windows arbeite, wäre vielleicht doch mal die Zeit da, entweder mein eigenes Desktop Wiki mal wieder zu portieren (klingt nach Arbeit) oder halt ein anderes zu benutzen, dass ähnliches bietet. Zim sieht dabei ganz ordentlich aus und ist auf dem Desktop durchaus portabel - aber ich müsste dann wohl meine Android-App anpassen. Hmm. Klingt auch nach Arbeit ...

FriCAS - an advanced CAS. Habe ich ein bischen aus den Augen verloren - FriCAS ist ehemals Axiom, ein ziemlich weit ausgebautes Mathematik-Paket ala Mathematika, geschrieben in Common Lisp. Gibts für verschiedene Systeme, etwas spröde in der Oberfläche (halt eine Kommandozeile), aber sehr mächtig. Und etwas moderner als vielleicht Maxima (wobei für Maxima gibt es GUI Optionen, keine Ahnung was FriCAS da zu bieten hat). Wie jedes anständige Open Source Projekt ist es natürlich nur der Fork eines Forks - unter Open Axiom gibt es ein weiteres Projekt und unter Axiom wird der ursprüngliche Code weitergeführt. Wobei für mich das seit Sage (und eigentlich sogar noch viel mehr seit Anaconda und IPython Notebooks) alles nicht mehr so hohe Relevanz hat - in der Regel sind meine Anforderungen auf deutlich niedrigerem Niveau und mit den über IPython und Python verfügbaren Libraries schon abgedeckt. Klar ist Mathematica und ähnliches immer noch spannend - aber die Motivation die Pakete zu starten und sich in die doch recht andere Syntax-Welt zu begeben ist eher gering. Python hat halt den good-enough Status schon lange erreicht.

Python Data Analysis Library — pandas: Python Data Analysis Library. Hmm, hatte ich bestimmt schon mal, aber mir ist gerade aufgefallen, dass es in Anaconda drin ist. Und daher sollte ich mich mal ganz dringend damit beschäftigen, da sind so ein paar Datenwüsten die ich mir damit mal zu Gemüte führen könnte.

wiki.dbpedia.org : About. Auch interessant - hier wird die Wikipedia durchforstet und nach strukturierten Informationen ausgewertet. Also sozusagen aus der Wikipedia für Menschen eine Wikipedia für Maschinen gemacht. Dem ganzen vorgepackt ist dann eine Abfragesprache und ein passender Webservice.

Quepy: A Python framework to transform natural language questions to queries.. Cool - man kann englische Fragen reinstecken und das System bildet daraus eine strukturierte Abfrage und liefert dann Antworten aus Freebase oder DBPedia. Quepy ist dabei das Teil, welches aus der natürlichen Sprache die Abfrage formuliert. Sozusagen sowas wie Wolfram Alpha wenn man dabei nur auf die Wissensabfragen guckt.

Tweak Mode for Processing. Damit wird das Sketch interaktiv wärend es ausgeführt wird - in einem Fenster läuft der Code mit Output, im anderen Fenster ist der Code. Mit der Maus an Zahlenkonstanten ziehen und die Werte ändern sich nach oben oder unten und der Output aktualisiert sich automatisch entsprechend. Nette Idee.

You are Missing the Point of Promises. Schon etwas älter, aber eine interessante Aufstellung was Promises sind und sein sollen, wie sie aus der Hölle der Callbacks herausführen und was das eher theoretische Modell dahinter so her gibt. Und wo man es in JavaScript Libraries wiederfindet und in welchen Libraries es eher stiefmütterlich behandelt wird.

part-cw/lambdanative. Interessant - eine Cross-Plattform Programmierumgebung mit Zielen auf Android, iOS, OSX, Linux, Windows und BSD. Basierend auf Gambit-C, einem ziemlich guten (und schon recht lange verfügbaren, also auch "erwachsenen") Scheme Compiler.

"3 windows builds have been performed on win95. There is an as yetunidentified runtime error running the 2.6.9 images on win7. Moreinformation here will be forthcoming shortly." - [[[Gcl-devel]] GCL 2.6.8 and 2.6.9 are released](http://lists.gnu.org/archive/html/gcl-devel/2013-08/msg00011.html). Abgesehen davon, dass ich dachte es wäre schon lange tot (ein "paar" Jahre hat der Release ja gedauert), schon lustig, dass jemand noch heute Builds für Windows unter Windows 95 macht ...

Anaconda. Hmm, hatte ich das schon? Keine Ahnung. Es ist eine Python Installation, die gleich mit einem Stapel an wissenschaftlichen Modulen kommt (NumPy, Matplotlib, PyLab und sowas) und auch sonst eine Reihe brauchbarer Module mitliefert. Dazu IPython mit den üblichen Tools - also Notebooks und QTConsole - und noch ein Kommandozeilentool zur Paketverwaltung. Das nette: die Installation geht in einen eigenen Pfad, es wird also nicht unbedingt eine andere Python-Installation tangiert.

Meet RegExpBuilder: Verbal Expressions rich, older cousin - The Changelog. Ich bin ein alter Snobol und Icon Fan - und eine der Eigenschaft beider Sprachen war die ziemlich gut lesbare Subsprache für Textmuster. Das was heute üblicherweise mit dann doch eher kompakt bis kryptischen regulären Ausdrücken gemacht wird. Von daher freut es mich, hier auf ein Projekt zu stoßen, welches die deutlich lesbareren Ausdrucksformen wie sie in Icon üblich waren auf reguläre Ausdrücke kompiliert. Ok, die zielorientierte Ausführung in Snobol und Icon und das darin inherente backtracking fehlt natürlich, von daher ist es nur syntaktisch. Trotzdem nett.

PyPy.js Update: A Proof-of-Concept JIT. Braintwister. Python mittels PyPy auf Javascript über asm.js. Mit aktivem JIT.

How To Create Your Own Chrome Extensions. Sollte ich mir mal genauer durchlesen. So das eine oder andere würde ich schon ganz gerne dem Chrome beifrickeln.

Was ich so im Laufe der Woche als lesenswert betrachtet habe und nicht extra verlinken wollte, hier gesammelt und unkommentiert.

heuermh/leap-motion-processing. Sehr interessant, weil ich damit mit meinem LeapMotion Controller mit Processing spielen kann - der Overhead damit was zustande zu bekommen ist deutlich niedriger als auf native Programme zu gehen. Ausserdem ist es Plattform-übergreifend.

mrzl/LeapMotionP5. Und noch eine Processing Library für Leap Motion. Die hier scheint etwas vollständiger zu sein, mit Gestures und so. Auch mal angucken.

Was ich so im Laufe der Woche als lesenswert betrachtet habe und nicht extra verlinken wollte, hier gesammelt und unkommentiert.

Was ich so im Laufe der Woche als lesenswert betrachtet habe und nicht extra verlinken wollte, hier gesammelt und unkommentiert.

washort/parsley. Hatte ich das schon mal? Egal. Eine PEG Implementierung in Python. Baut Parser für Sprachen auf Basis von recht gut lesbaren Sprachbeschreibungen (ähnlich der guten alten BNF).

lihaoyi/macropy · GitHub. Bin ja aus meinen Lisp-Zeiten ein Fan von syntaktischen Makros. Klar, Metaprogrammierung in Python bringt einen schon einen Schritt weiter, aber richtige Makros sind halt doch was feines. Daher sollte ich mir das hier mal angucken.

Getting Started with Android Studio | Android Developers. Oh, Google sieht das Licht und bietet eine Alternative zu Eclipse als IDE für Android-Programmierung an. Und dann ausgerechnet IntelliJ, mit dem ich sowieso schon arbeite. Nett!