<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Home on netzhansa</title>
    <link>https://netzhansa.com/</link>
    <description>Recent content in Home on netzhansa</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 16 Mar 2026 17:17:17 +0100</lastBuildDate>
    <atom:link href="https://netzhansa.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Resurrecting a NorthStar Advantage computer</title>
      <link>https://netzhansa.com/debugging-northstar-advantage/</link>
      <pubDate>Mon, 16 Mar 2026 09:17:34 +0100</pubDate>
      <guid>https://netzhansa.com/debugging-northstar-advantage/</guid>
      <description>&lt;p&gt;During a recent visit to the&#xA;&lt;a href=&#34;https://computermuseum-oldenburg.de/&#34;&gt;Oldenburger Computermuseum (OCM)&lt;/a&gt;, I spotted two NorthStar Advantage computers in their reserve collection.  I&amp;rsquo;d used a friend&amp;rsquo;s NorthStar Advantage to lay out our school magazine using WordStar back in 1983, so I was immediately intrigued.&lt;/p&gt;&#xA;&lt;p&gt;We pulled them into the workshop and bench-tested them.  One asked for a boot medium, while the other displayed garbage.  I offered to take them home for maintenance and repair, as I&amp;rsquo;m always happy to work on machines that I can fix and return.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Super Sharp Blade</title>
      <link>https://netzhansa.com/the-super-sharp-blade/</link>
      <pubDate>Fri, 06 Feb 2026 21:45:00 +0100</pubDate>
      <guid>https://netzhansa.com/the-super-sharp-blade/</guid>
      <description>&lt;p&gt;I love programming and people who know me also know that XSLT is my favorite language programming language.  Just today, I had the opportunity to use it again and I was reminded why I like it so much:  XSLT is the perfect tool for the tasks that it is designed for - It is a super sharp blade.&lt;/p&gt;&#xA;&lt;p&gt;Today&amp;rsquo;s task was an integration task:  I needed to devise a system in which the organizer of a conference could use a desktop vector graphics application (LibreOffice Draw) to place tables, identified by a unique number, on a floor plan.  That floor plan would then be imported into a web based system in which participants could claim tables for their use.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Echoes of the AI Winter</title>
      <link>https://netzhansa.com/echoes-of-the-ai-winter/</link>
      <pubDate>Sun, 01 Feb 2026 09:31:21 +0100</pubDate>
      <guid>https://netzhansa.com/echoes-of-the-ai-winter/</guid>
      <description>&lt;p&gt;I’ve been a systems programmer for most of my career and embraced several development paradigms.  As a systems and backend focused developer, my exposure to AI systems has been small, but I worked with symbolic programming languages, rules based systems and graph databases.  I have seen a lot of trends in technology, with the abundant availability of venture capital amplifying trends that promise maximum disruption and, consequently, profit.&lt;/p&gt;&#xA;&lt;p&gt;It may be educational to have a look at the first commercial AI hype cycle, which occurred in the 1980s.  Lisp based, special purpose computers emerged, which provided application development environments in which sophisticated symbolic and rules-based reasoning systems could be built.  In that era, computers were generally operated by large organizations and operated through alphanumeric terminals.  Contrasted to that, Lisp machines with graphical interactive environments and interactive reasoning capabilities provided a much more polished experience.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reverse Engineering the Lantronix ETS16P LAT Master Password</title>
      <link>https://netzhansa.com/lantronix-lat-master-password/</link>
      <pubDate>Mon, 25 Sep 2023 06:32:30 +0200</pubDate>
      <guid>https://netzhansa.com/lantronix-lat-master-password/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m going to take my VAX 4000/105A to an upcoming retrocomputing&#xA;convention as part of my X.25 networking exhibit.  I would also like&#xA;to provide a couple of serial ports for other exhibitors to connect&#xA;their machines too, and for that, I have a Lantronix ETS16P terminal&#xA;server.  It is a relatively recent (late 1990ies) device with 16&#xA;serial ports on RJ45 connectors and support for TCP/IP and LAT.  LAT&#xA;is a proprietary DEC protocol for local terminal access, and it is&#xA;what I want to use for the VAX.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bye bye, Twitter</title>
      <link>https://netzhansa.com/twitter-exodus/</link>
      <pubDate>Sat, 05 Nov 2022 19:31:07 +0100</pubDate>
      <guid>https://netzhansa.com/twitter-exodus/</guid>
      <description>&lt;p&gt;Im April 2008 habe ich meinen Twitter-Account angelegt - Ein alter&#xA;Freund meinte, daß das toll ist und ich fand es auch sofort angenehm.&#xA;Da ich schon seit 40 Jahren chatte, war mir die Kommunikationsform&#xA;über kurze Textschnipsel gleich sympathisch, und ein gewisses Maß an&#xA;Memes und Katzenbildern in der eigenen Zeitleiste find ich auch&#xA;unterhaltsam.&lt;/p&gt;&#xA;&lt;p&gt;Anfangs war Twitter irgendwie nerdig und auch ein bisschen elitär.  Im&#xA;deutschen Twitter kommunizierten Nerds und Randgruppen miteinander,&#xA;und international hatte ich viele Kontakte in der Technologieszene.&#xA;Man spielte mit Bots herum, die im Twitter den Wetterbericht&#xA;verkündeten und dergleichen, und insgesamt war es ein spaßiges&#xA;weltweites System, mit dem man mit Leuten in Kontakt kommen oder&#xA;bleiben konnte.  Twitter war meine Quelle für Memes und Katzenfotos,&#xA;mein Ventil für kleine Rants und mein Fenster in die Lokalpolitik in&#xA;der Zeit, als die Piratenpartei dort für ein kleines&#xA;Frühlingsstürmchen sorgte.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zimodem Escape Sequence Fix</title>
      <link>https://netzhansa.com/zimodem-escape-fix/</link>
      <pubDate>Tue, 15 Sep 2020 08:03:38 +0200</pubDate>
      <guid>https://netzhansa.com/zimodem-escape-fix/</guid>
      <description>&lt;p&gt;Back in the 1980ies and before the Internet existed, the popular way&#xA;to go online were Bulletin Board Systems (BBS).  Typically, these were&#xA;home or personal computers owned by individuals and hooked up to a&#xA;telephone line through a modem.  They ran some custom-made or later&#xA;off-the-shelf software providing functions like email, newsgroups,&#xA;file transfer and chat.  Usually, they provided a club-like atmosphere&#xA;with a small group of people calling in every day, exchanging news,&#xA;gossip and files and ocasionally chatting with the operator of the&#xA;BBS.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Getting Color Output out of a TI-99/4A</title>
      <link>https://netzhansa.com/ti99-4a-color/</link>
      <pubDate>Sat, 05 Sep 2020 18:27:26 +0200</pubDate>
      <guid>https://netzhansa.com/ti99-4a-color/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://upload.wikimedia.org/wikipedia/commons/1/1b/TI99-IMG_7143.jpg&#34; alt=&#34;TI-99/4A&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;When I was around 13-14 years old, home computers were just appearing&#xA;on the market.  The first machines that I remember to have been sold&#xA;in the large department stores in Berlin were the &lt;a href=&#34;https://en.wikipedia.org/wiki/Atari_8-bit_family&#34;&gt;Atari 400 and&#xA;800&lt;/a&gt; as well as the&#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/Texas_Instruments_TI-99/4A&#34;&gt;TI-99/4A&lt;/a&gt;.&#xA;At the time, these machines were incredibly expensive, but me and my&#xA;friends often hung out in the stores to play around with these&#xA;machines and dream of owning them.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What&#39;s the most productive tool?</title>
      <link>https://netzhansa.com/most-productive-language/</link>
      <pubDate>Wed, 10 Jun 2020 07:23:18 +0200</pubDate>
      <guid>https://netzhansa.com/most-productive-language/</guid>
      <description>&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;XSLT, quite clearly. Followed by Common Lisp and Clojure&lt;/p&gt;&amp;mdash; Hans Hübner (@HansHuebner) &lt;a href=&#34;https://twitter.com/HansHuebner/status/1270406784050757632?ref_src=twsrc%5Etfw&#34;&gt;June 9, 2020&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;&#xA;&lt;p&gt;My reply deserves some elaboration, so here it goes:&lt;/p&gt;&#xA;&lt;h1 id=&#34;what-is-xslt&#34;&gt;What is XSLT?&lt;/h1&gt;&#xA;&lt;p&gt;XSLT is a document transformation language.  It was conceived as part&#xA;of the &lt;a href=&#34;https://www.w3.org/Style/XSL/&#34;&gt;Extensible Stylesheet Language&#xA;Family&lt;/a&gt; and was originally intended to&#xA;prepare XML documents for printing.  While the document formatting&#xA;aspect of the family has not seen much development during the last&#xA;decade, XSLT and its sibling XPath were continuously improved.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Vintage Computing Retreat</title>
      <link>https://netzhansa.com/vintage-computing-retreat/</link>
      <pubDate>Sat, 14 Mar 2020 04:50:29 -0400</pubDate>
      <guid>https://netzhansa.com/vintage-computing-retreat/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; media=&#34;screen&#34; href=&#34;https://fontlibrary.org/face/segment7&#34; type=&#34;text/css&#34;/&gt;&#xA;&lt;style&gt;&#xA;  .led { font-family: &#39;Segment7Standard&#39;; font-size: 90%; color: red; }&#xA;&lt;/style&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;figure&gt;&#xA;  &lt;img src=&#34;https://netzhansa.com/vintage-computing-retreat/museum-front_hu_260c33cf8e7ae285.jpg&#34; alt=&#34;(.Get 1)&#34; /&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;As luck had it, I was able to return to the &lt;a href=&#34;http://www.mact.io/&#34;&gt;Large Scale Systems&#xA;Museum&lt;/a&gt; and this time, I could spend four days&#xA;for an extended vintage computing retreat.  Dave McGuire, the curator&#xA;and director of the museum, was kind enough to host me and let me&#xA;spend my nights in the museum, while he was asleep.&lt;/p&gt;&#xA;&lt;p&gt;On my last visit, I was mostly struck with awe by the massive&#xA;collection that Dave has accumulated over the years.  The showroom&#xA;itself is impressive, with dozens of mainframes, minis and peripherals&#xA;on display.  While there are so many things to drool about, the&#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/PLATO_(computer_system)&#34;&gt;PLATO&lt;/a&gt;&#xA;terminal is a gem that I had never expected to see in my life:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building a Jupiter Ace</title>
      <link>https://netzhansa.com/ace-build-1/</link>
      <pubDate>Sun, 23 Feb 2020 08:19:20 +0100</pubDate>
      <guid>https://netzhansa.com/ace-build-1/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://upload.wikimedia.org/wikipedia/commons/d/d9/Jupiter_ACE_%28restored%29.JPG&#34; alt=&#34;Jupiter Ace&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;I have been tinkering with electronics since I was a kid, and since my&#xA;high school years I dreamt of building a computer from scratch.  Back&#xA;then, my dream CPU was the venerable Motorola MC6809 and I spent my&#xA;lunch break drawing schematics and pondering what chips I would want&#xA;to use.  That design work stayed theoretical, but recently I came&#xA;close to this dream when I started to build a Jupiter Ace home&#xA;computer from parts.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Splitting strings by regular expression in C&#43;&#43;</title>
      <link>https://netzhansa.com/split-string-cplusplus/</link>
      <pubDate>Sun, 26 Jan 2020 09:37:44 +0100</pubDate>
      <guid>https://netzhansa.com/split-string-cplusplus/</guid>
      <description>&lt;p&gt;In many cases, strings are not the right data structure, but in some&#xA;they are.  I need to parse a command line into words, and as I&amp;rsquo;m&#xA;writing C++, I went shopping for the equivalent of &lt;code&gt;split&lt;/code&gt; as it is&#xA;available in every other language.  Not so in C++.  The question,&#xA;obviously, has been asked a hundred times on Stackoverflow, and there&#xA;is a &lt;a href=&#34;http://www.martinbroadhurst.com/how-to-split-a-string-in-c.html&#34;&gt;canonical blog&#xA;post&lt;/a&gt;&#xA;describing 10 different ways how to split a string.  I like &lt;a href=&#34;https://stackoverflow.com/a/28142357/928528&#34;&gt;this&#xA;solution from&#xA;Stackoverflow&lt;/a&gt; best and&#xA;adapted it so that I don&amp;rsquo;t get empty elements in my result vector:&lt;/p&gt;</description>
    </item>
    <item>
      <title>PiDAB Progress Report 1</title>
      <link>https://netzhansa.com/pidab-progress-1/</link>
      <pubDate>Sun, 26 Jan 2020 06:41:18 +0100</pubDate>
      <guid>https://netzhansa.com/pidab-progress-1/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m working on building a DAB+ radio to replace the one that I have in&#xA;our bathroom.  The one we have is not terrible, but there are some&#xA;things that I don&amp;rsquo;t like.  Also, it does not have the few features&#xA;that I really want, and I am not aware of any commercial solutions for&#xA;them:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fast startup:  I want the radio to turn on when I press the &amp;ldquo;on&amp;rdquo;&#xA;button and not need seconds to start playing.&lt;/li&gt;&#xA;&lt;li&gt;Play last episode: I want easy access to the last episode of&#xA;periodic programmes that I like.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;My radio will be based on a Raspberry Pi and a &lt;a href=&#34;https://www.monkeyboard.org/shop/index.php?main_page=product_info&amp;amp;products_id=272&#34;&gt;FM/DAB tuner&#xA;module&lt;/a&gt;&#xA;manufactured by Keystone.  This module implements a headless radio&#xA;with a serial interface for control.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New blog with HUGO</title>
      <link>https://netzhansa.com/blog-with-hugo/</link>
      <pubDate>Thu, 23 Jan 2020 16:14:46 +0100</pubDate>
      <guid>https://netzhansa.com/blog-with-hugo/</guid>
      <description>&lt;p&gt;A dear friend told me that &lt;a href=&#34;https://gohugo.io/&#34;&gt;HUGO&lt;/a&gt; is how blogging&#xA;is done today and as it was time to finally move away from&#xA;&lt;a href=&#34;https://netzhansa.blogspot.com&#34;&gt;Blogger&lt;/a&gt;, I decided to give it a&#xA;spin.  Hugo is a static site generator that uses&#xA;&lt;a href=&#34;https://guides.github.com/features/mastering-markdown/&#34;&gt;Markdown&lt;/a&gt; as&#xA;its authoring format.  While I certainly have my reservations against&#xA;Markdown (or anything that is not XML, for that matter), I&amp;rsquo;ll gladly&#xA;admit that it makes creating content very easy.  This may help my goal&#xA;of writing and publishing more, so there.&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://netzhansa.com/about/</link>
      <pubDate>Thu, 23 Jan 2020 00:00:00 +0000</pubDate>
      <guid>https://netzhansa.com/about/</guid>
      <description>&lt;p&gt;This is a personal blog on code, vintage hardware and electronics&#xA;written by Hans Hübner.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://netzhansa.com/images/hans.jpg&#34; alt=&#34;Hans&amp;rsquo; Profile Photo&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;I am a programmer and electronics tinkerer.  My hobby is also &lt;a href=&#34;cv-hans-huebner.pdf&#34;&gt;my&#xA;profession&lt;/a&gt;.  In this blog, I mostly write about&#xA;stuff that I do in my free time.&lt;/p&gt;&#xA;&lt;p&gt;You can find my open source code on&#xA;&lt;a href=&#34;https://github.com/hanshuebner&#34;&gt;GitHub&lt;/a&gt;.  I&amp;rsquo;m also on&#xA;&lt;a href=&#34;https://twitter.com/hanshuebner&#34;&gt;Twitter&lt;/a&gt;.  If you want to reach me&#xA;by email, write to &lt;a href=&#34;mailto:hans.huebner@gmail.com&#34;&gt;hans.huebner@gmail.com&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; debugging output</title>
      <link>https://netzhansa.com/nullstream/</link>
      <pubDate>Thu, 23 Jan 2020 00:00:00 +0000</pubDate>
      <guid>https://netzhansa.com/nullstream/</guid>
      <description>&lt;p&gt;I like to write debugging information to an ostream instead of calling&#xA;a logging function.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code class=&#34;language-c++&#34;&gt; retry:&#xA;  if (write(_fd, request.buffer(), request.length()) != request.length()) {&#xA;    if (errno == EAGAIN) {&#xA;     _debug &amp;lt;&amp;lt; &amp;quot;retry&amp;quot; &amp;lt;&amp;lt; endl;&#xA;      goto retry;&#xA;    }&#xA;    throw system_error(errno, generic_category(), &amp;quot;Could not write to serial port&amp;quot;);&#xA;  }&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;By default, I don&amp;rsquo;t want to see debugging information, so I initialize&#xA;my debugging ostream to a stream that sinks all data written to it:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
