aard

joined 3 years ago
 

While working on some projects involving things like (sometimes unknown) binary protocols via a TTY, or dealing with small binary protocol chunks in other protocol streams I realised that once I can pretty print decoded protocol frames I have half of the emacs implementation ready - and the other way round.

I built a debug framework around that, noticed how useful it'd be to use the same code to sniff and pretty-print communication between the device and the closed client - and added the option to run helpers that forward packets at linespeed, and make them available to emacs at its own pace. At that point I realised that this could be useful as a standalone package, and started ripping it out of that codebase to form lempo as a standalone package.

The screenshot is a pcap bridge helper I've added as simple demonstration of the concept - it's pretty easy to have that as self contained module. The setup in the scratch buffer is because the interactive path for doing that broke a bit when ripping the code out - I should be able to fix that over the next few days, though.

While this currently heavily focuses on binary protocols (and with that, mostly nicely printed hex dumps) doing helper bridges decoding higher level protocols should be easily doable as well.

The current code (with the "I'm still fixing the bits I broke by making it standalone" warning) is at https://github.com/aardsoft/lempo/

[–] aard@kyu.de 25 points 10 months ago (3 children)

Crazy part is that Mercedes makes pretty good EVs - unlike some of the other German manufacturers which struggled a bit, and even though they seem to have the main platform worked out by now still have shitty software. Mercedes software is usable and rock solid - which I didn't expect when we were buying one last year.

In the area I'm living in here in Finland EV Mercedes seems to be the most popular choice currently - the number of EVs is rising very fast, with pretty much all brands present, but a clear majority is Mercedes.

[–] aard@kyu.de 4 points 10 months ago

So lange Kaesten kaufen bis es genug Kombinationen gibt dass du jeweils eine Kasten mit gleicher Deckel- und Etikettenausrichtung bestuecken kannst.

[–] aard@kyu.de 10 points 10 months ago (2 children)

Ist jetzt nicht das erste mal dass ein Krankenhaus bei dem die Kirche ihre Finger mit drin hat klar ansagt dass sie im Zweifel das Patienteninteresse bei einer Behandlung zurueckstellen werden falls ihr unsichtbarer Freund da andere Meinungen hat. Da hier von Fusion geredet wird gehe ich auch davon aus dass die Leute in der Gegend keine anderen Moeglichkeiten mehr haben - absolut inakzeptabel.

Wir muessen Religion aus allen Berufen entsorgen wo der Aberglaube einen Einfluss auf Entscheidungen fuer Patienten/Kunden/was auch immer haben kann - wenn ich auf ein Amt oder zum Arzt gehe, oder mit der Polizei zu tun habe und direkt erkennen kann dass mein Gegenueber eine bestimmte Religion aktiv praktiziert hat die Person da nix zu suchen.

[–] aard@kyu.de 4 points 10 months ago (5 children)

Yes, but: Brake dust is significantly more likely to become airborne than tire dust, and is significantly more toxic than tire dust - and might be the most toxic thing your car is spreading.

[–] aard@kyu.de 10 points 10 months ago (2 children)

Das schoene an der Sache ist dass dank Urheberrechtsabgabe ethische Argumente gegen "Piraterie" schon ausgehebelt sind. Meine Film- und Serienbibliothek ist weniger wert als die von mir bezahlten Abgaben ueber die Jahrzehnte (die CD und DVD-Rohlinge damals haben auch richtig reingehauen) - und ob und wie die Rechteinhaber da ihr Geld rausbekommen ist ihr Problem, nicht meines. Wenn sie meinen dass die Ausschuettung ungerecht ist koennten sie ja eine Regelungsaenderung versuchen, genug Einfluss sollten sie ja haben.

[–] aard@kyu.de 9 points 10 months ago

Korrekt waere eigentlich auf das Gas die Preise fuer CO2-Zertifikate vom freien Markt draufzuschlagen...

[–] aard@kyu.de 2 points 10 months ago (1 children)

Das wilde geparke wenn wir in Deutschland unterwegs sind nervt aber schon inzwischen - in der Stadt sollte man Strassenparken komplett verbieten, im Dorf nur fuer Besucher fuer maximal ein paar Tage. Dort geht das schon dass da mal ein paar Autos ein paar Tage zusaetzlich rumstehen (so war das damals in den 80ern auch), aber das heutige Autoaufkommen wo du dann fuer ein Haus mit drei Wohnungen 6+ Autos hast funktioniert nicht.

Das ist jetzt keine Zustimmung zu der "zwei Parkplaetze sind Pflicht"-Regel, sondern ein "wenn jemand mit zwei Autos das Haus kauft muss er halt ein Auto abgeben, oder sich woanders einen Parkplatz mieten".

[–] aard@kyu.de 3 points 10 months ago

Haengt vom Alter ab - Grundschule bis eventuell Mittelstufe sind Arbeitshefte schon sinnvoll. Je weiter man dann vom spielerischen Lernen wegkommt desto weniger Sinn machen sie.

Das geht dann so weit dass man in der Grundschule fuer einige Faecher kein separates Schulbuch braucht. Also, ist schon ein Buch - aber zum durcharbeiten im Buch. Die Mathebuecher hier sind so aufgebaut, mit Fliesstext drumrum der mit dem Leselevel komplizierter wird.

[–] aard@kyu.de 3 points 10 months ago* (last edited 10 months ago) (2 children)

Es sollte auch Standard sein dass Arbeitshefte uebernommen werden. Ich ging in den 80ern/90ern in Baden-Wuerttemberg in die Schule - und hab spaeter dann bemerkt dass wir da wohl so ziemlich die beste Ausstattung hatten. Und mir ging damals schon nicht weit genug was von der Schule gestellt wird - und so um 2000 rum wurde da auch gekuerzt. Wir hatten zum Beispiel noch dass man Buecher kaufen konnte, und dann die Stadt 50% des Kaufpreises uebernommen hat (ansonsten gabs die natuerlich aus der Schulbuecherei) - der Diercke Weltatlas war eines der gekauften, und der wird immer noch ab und an benutzt.

Inzwischen bin ich in Finnland, das Lehrmittelfreiheit etwa so lebt wie ich mir das vorgestellt hatte - es wird alles gestellt, inclusive Heften, Stiften, Radiergummis, Lineal, ... - und natuerlich auch Computer, wenn die benutzt werden.

[–] aard@kyu.de 3 points 10 months ago* (last edited 10 months ago)

In der Gegend um Pasila ist (zumindest fuer jemand der nur gelegentlich in die Gegend kommt) die Verkersfuehrung fuer Radfahrer teilweise eher schwer zu verstehen - ansonsten ist das aber ganz ordentlich, und neue Projekte sind dann oft fuer ohne Autos. Ich freu mich schon auf die Kruunusillateroeffnung - nicht weil ich davon profitieren wuerde, sondern einfach weil niemand anderes solche Projekte macht.

[–] aard@kyu.de 3 points 10 months ago

Koennte aber auch damit zusammenhaengen dass es ausserhalb davon ungleich schwerer ist sowas aufzuziehen. Ich kenn jetzt die Ferienlager nicht, aber bei anderen kirchlichen Traegerschaften ists halt oft so dass die Gemeinde oder Landkreis was haben will, und dann halt die Kontakte bei den Kirchen abklapperrt ob man da nicht was machen kann, Papierkram ist schon halb erledigt, Bundesfoerderung ist ohne Probleme machbar.

[–] aard@kyu.de 16 points 10 months ago (2 children)

Die Frage hier ist eher wie viel davon tatsaechlich von den religioesen Organisationen finanziert wird, und was davon - direkt oder indirekt - Steuergelder sind.

Ein guter Teil der kirchlichen Traegerschaften (gerade auch bei Kindergaerten oder Krankenhaeusern) ist nicht viel mehr als die Kosten in ein anderes, auch steuerfinanziertes Budget zu schieben. Und sowas kann man sich dann echt sparen, und das direkt ohne Indoktrination aufziehen.

 
 

This uses the tool support from gptel to let any LLM with tool support

  • search my bbdb for contact info
  • perform a bbdb search for all contacts with an anniversary field
  • use gnus to compose an email

plus a few helper functions to make it useful (like giving it the ability to query the current date).

The tool definition it used in the above screenshot are:

(defun gptel-tool--get-date ()
  "Return the current date"
  (format-time-string "%Y-%m-%d"))

(defun gptel-tool--compose-email (to-address subject text)
  "Open an email compose buffer '*new message*' to to-address with subject subject."
  (gnus-setup-message 'message (message-mail to-address subject))
  (insert (concat "\n" text)))

(defun gptel-tool--bbdb-search (name)
  "Search bbdb for NAME"
  (bbdb-search (bbdb-records) :name name))

(defun gptel-tool--bbdb-search-anniversary (anniversary-type)
  "Search bbdb for anniversary with ANNIVERSARY-TYPE"
  (let ((bbdb-default-xfield 'anniversary))
    (bbdb-search (bbdb-records) :xfield anniversary-type)))

And they get registered with the following code:

      (gptel-make-tool
       :function #'gptel-tool--get-date
       :name  "gptel-tool--get-date"
       :description "Use to get the current date in %Y-%m-%d format. After calling this tool, stop. Then continue fulfilling user's request."
       :category "emacs")

      (gptel-make-tool
       :function #'gptel-tool--compose-email
       :name  "gptel-tool--compose-email"
       :description "Open an email compose buffer and set subject, to-address and body. After calling this tool, stop. Then continue fulfilling user's request."
       :args (list '(:name "to-address"
                           :type string
                           :description "The address to send to")
                   '(:name "subject"
                           :type string
                           :description "The mail subject")
                   '(:name "body"
                           :type string
                           :description "The body text of the email"))
       :category "emacs")

      (gptel-make-tool
       :function #'gptel-tool--bbdb-search
       :name  "gptel-tool--bbdb-search"
       :description "Return a bbdb entry for name, or nil if not found. After calling this tool, stop. Then continue fulfilling user's request."
       :args (list '(:name "name"
                           :type string
                           :description "The name to search for"))
       :category "emacs")

      (gptel-make-tool
       :function #'gptel-tool--bbdb-search-anniversary
       :name  "gptel-tool--bbdb-search-anniversary"
       :description "Return or a specific anniversary type. After calling this tool, stop. Then continue fulfilling user's request."
       :args (list '(:name "anniversary-type"
                           :type string
                           :description "The anniversary to search for, for example 'birthday' for birthdays"))
       :category "emacs")
 
 

Screenshots of the UI changes on the Mac - in my opinion it is now just wasting a lot of screen estate for zero benefit.

On non-Macs they're adding an extra usability issue by hiding the top menu bar. I've gove back to 2.7.4 for now - fortunately I had my configuration in git.

Up to 2.7.4:

2.8.4:

 
 

Vor ein paar Tagen gabs hier ein Post zu Deutschlandwochen im Lidl in Italien, wo einer aus Schweden und ich mich ueber das Layout gewundert haben.

Jetzt sind auch hier Deutschlandwochen - und anscheinend wurde generell das Packungslayout geaendert - frueher war das alles "Alpenfest", jetzt "taste of deutschland".

Einige Produkte haben sich auch geaendert - z.b. waren die Apfel/Kirsch/Pflaumenkuchen frueher grosse runde Kuchen, jetzt sinds mehrere Teile.

Und Maultaschen sind wieder nicht dabei.

 

This is OpenDalle with img2img to make an existing picture into a futuristic city.

I took this picture at work a while ago, and it reminded me of cities with brutalist architecture we see in movies now and then, so I tried to get it made into one:

Other interesting attempts:

Forcing it to stay closer to the source made things look more like a highschool cardboard model:

 

I've finally found a bag which nicely fits almost everything I want to carry every day, and alos makes everything easily accessible - it is about the same size as what I used to carry, but now I no longer need to dump everything out to find what I neede, even with some lose parts still in there.

Contents:

Center:

  • 4 empty 64 microSD with SD adapter
  • one rpi 2040 with USB-A interface
  • headphones
  • bag of female jumper cables, with male-male adapters
  • a collection of the most used NFC keyfobs

Left side:

  • USB-C cable with attached USB-A adapter (USB3, missing on picture)
  • two USB-C to headphone adapters
  • satechi USB-C power meter
  • headphone splitter
  • USB-C to SATA adapter
  • USB-C smartcart reader
  • VGA to HDMI
  • USB Ninja (USB-C)
  • proxmark3 with battery/bt
  • collection of NFC magic cards

Right side:

  • USB-C hub with charging port
  • miniDP to HDMI
  • small USB-C dock
  • USB-C to whatever adapters (mini, micro, B, HDMI, ..)
  • Chameleon ultra
  • MPP pen
  • Ninja USB remote
  • USB-C to serial, connected via jumper cables

 

I recently had to add a Mac to my zoo of hardware I'm trying to do productive work on - which prompted me to clean up and document my environment variable importer, which had grown to platform specific functions with lots of code duplication.

On both Windows and MacOS I have properly configured shells with all relevant variables - so it makes sense to query them, instead of duplicating the logic how they create that configuration into Emacs.

On Linux that'd have worked too, but I also have the relevant variables in the systemd user session, and querying that is a tiny bit faster than launching a shell.

 

I was thinking about that when I was dropping my 6 year old off at some hobbies earlier - it's pretty much expected to have learned how to ride a bicycle before starting school, and it massively expands the area you can go to by yourself. When she went to school by bicycle she can easily make a detour via a shop to spend some pocket money before coming home, while by foot that'd be rather time consuming.

Quite a lot of friends from outside of Europe either can't ride a bicycle, or were learning it as adult after moving here, though.

edit: the high number of replies mentioning "swimming" made me realize that I had that filed as a basic skill pretty much everybody has - probably due to swimming lessons being a mandatory part of school education here.

view more: next ›