<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>iljitsch.com - program (nl)</title>
<link>http://program.iljitsch.com/nl/</link>
<language>nl</language>
<description>Iljitsch van Beijnum's program posts (nl)</description>

<item>
  <title>StroomTijd: reken uit of dynamische stroomtarieven wat voor jou zijn</title>
  <description>Ik heb samen met Lennard van der Poel afgelopen tijd gewerkt aan een nieuwe web-tool om mensen inzicht te geven in wat een eventuele overstap op een dynamisch stroomtarief zou betekenen.
&lt;p&gt;

Op &lt;a href=&quot;https://stroomtijd.nl/&quot;&gt;StroomTijd.nl&lt;/a&gt; kan je de dynamische stroomprijzen van 2023 tot nu toe per week bekijken:
&lt;p&gt;

&lt;div class=fulldiv style=&quot;margin-bottom: -20px; margin-top: -20px;&quot;&gt;
&lt;a href=&quot;https://stroomtijd.nl/&quot;&gt;&lt;img class=fullimg src=&quot;https://www.iljitsch.com/2023/stroomtijdweek39.png&quot; width=917 height=823&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;

Er wordt dan een vergelijking gemaakt tussen wat je met een dynamisch contract had betaald en hoe dat vergelijkt met vaste stroomprijzen.
&lt;p&gt;

Ik ben reuze benieuwd naar reacties en suggesties, dus probeer het uit en laat me weten (via email, Twitter of Mastodon) wat je ervan vindt. En mocht je direct op een aanbieder van een dynamisch stroomcontract willen overstappen dan zijn we je van dienst met gesponsorde links. :-) Kijk wel naar de verschillende aanbieders, want de kosten bovenop de groothandelsprijzen verschillen nog wel iets.</description>
  <link>https://stroomtijd.nl/</link>
  <guid isPermaLink="true">https://stroomtijd.nl/</guid>
  <pubDate>Mon, 02 Oct 2023 08:35:30 GMT</pubDate>
</item>

<item>
  <title>BASICODE: softwaredistributie via radiouitzendingen in de jaren ’80</title>
  <description>In 2009 begon ik al mijn oude cassettebandjes te digitaliseren. Nu mijn laatste computer die nog een audio lijn-in poort heeft aan z’n pensioen toe is leek me dit het moment om dat project af te ronden. Misschien meer daarover op een later moment. Het blijkt dat er op sommige van die oude cassettes nogal vreemde dingen staan, inclusief radiouitzendingen met computerprogramma’s.
&lt;p&gt;

Lees hieronder hoe ik de Hobbyscoop jubileum-beeldkrant op een 31 jaar oude cassette wist te runnen op een moderne computer.
&lt;p&gt;

Huiscomputers uit de jaren ’80 hadden geen opslag in de vorm van een harddisk of zelfs een ingebouwde diskdrive. En een Commodore 64 floppydrive kostte hier in Europa net zo veel als de computer zelf. Het was dus gebruikelijk om een goedkope cassette-drive te gebruiken om programma’s en data op te slaan op cassette. Het was natuurlijk mogelijk om commerciële software te kopen of kopiëen uit te wisselen met vrienden. Maar zonder modem, die pas rond 1990 verschenen, was er geen goede manier om data uit te wisselen met een groep gelijkgestemden. Wat ook niet hielp is dat er veel verschillende huiscomputers waren en ze werkten allemaal anders.
&lt;p&gt;

Allebei deze problemen werden geadresseerd door &lt;a href=&quot;https://www.hobbyscoop.nl/the-history-of-basicode/&quot;&gt;BASICODE&lt;/a&gt;. Dit was een kleinste gemene deler van de BASIC-programmeertaal waarmee alle huiscomputers uitgerust waren. Voor de essentiële functies die niet in deze subset voorkwamen had BASICODE een verzameling gestandaardiseerde subroutines. Dus als je BASICODE-programma’s wilde draaien dan was het enige wat je hoefde te doen subroutines te schrijven voor het schoonmaken van het scherm en het positioneren van de cursor en dergelijke voor jouw specifieke computer. En dan kon je alle BASICODE-programma’s draaien.
&lt;p&gt;

Maar dan moest je ze wel eerst zien te krijgen. Oplossing: een gestandaardiseerd cassette-dataprotocol. BASICODE voor een bepaalde computer kon normaliter BASICODE van cassette lezen en ernaar schrijven. Er waren ook adaptertjes voor de seriële poort. We kunnen tegenwoordig BASICODE decoderen van WAV files. Hiervoor haalde ik &lt;a href=&quot;https://hub.docker.com/r/pvtmert/minimodem&quot;&gt;pvtmert/minimodem&lt;/a&gt; op via Docker en gebruikte het volgende om mijn opnames te decoderen:
&lt;p&gt;

docker run --rm -ti -v /Volumes/video/rips:/rips pvtmert/minimodem minimodem -f /rips/basicode.wav --rx -q -S 1200 -M 2400 --stopbits 2 1200 |LC_ALL=C tr &apos;200-377&apos; &apos;000-177&apos; &gt;basicode.txt
&lt;p&gt;

(Het tr commando het hoge bit op 0 dat op 1 staat volgens het BASICODE-protocol.)
&lt;p&gt;

Naast een selectie van ingezonden BASICODE-programma’s zond het radioprogramma Hobbyscoop ook een wekelijkse nieuwsbrief uit in de vorm van een BASICODE-programma. En het blijkt dat ik de jubileum-beeldkrant nummer 250 uit 1989 op een cassette heb staan. &lt;a href=&quot;https://www.iljitsch.com/2020/beeldkrant250/beeldkrant250.txt&quot;&gt;Dit&lt;/a&gt; is hoe het programma binnenkwam vanaf de cassette.
&lt;p&gt;

Na enigszins 
After &lt;a href=&quot;https://www.iljitsch.com/2020/beeldkrant250/beeldkrant250final.txt&quot;&gt;opschonen&lt;/a&gt; wilde ik het progrmma runnen op mijn &lt;a href=&quot;https://retrogames.biz/thec64-mini&quot;&gt;C64 Mini&lt;/a&gt;, maar al mijn pogingen om via Google ergens de C64 BASICODE-routines te vinden waren vruchteloos. Dus heb ik die &lt;a href=&quot;https://www.iljitsch.com/2020/beeldkrant250/basicode2.c64.txt&quot;&gt;zelf maar geschreven&lt;/a&gt;. Je kan het resulterende &lt;a href=&quot;https://www.iljitsch.com/2020/beeldkrant250/beeldkrant250.prg&quot;&gt;.prg-bestand hier vinden&lt;/a&gt; als je het programma zelf wilt draaien. Of &lt;a href=&quot;https://www.iljitsch.com/2020/beeldkrant250/&quot;&gt;probeer dat hier&lt;/a&gt; met een Javascript BASICODE-interpreter.
&lt;p&gt;

Interessant om het hoofdstuk Delfts Blauw in de beeldkrant te lezen, over de overgang van van mechanische naar digitale of in elk geval semi-elektrische telefooncentrales. Zie &lt;a href=&quot;//iljitsch.com/2020/beeldkrant250/beeldkrant250final.html&quot;&gt;hier&lt;/a&gt; voor een HTML-versie van alleen de tekst van de beeldkrant.
&lt;p&gt;

Vervolgens besloot ik te zien hoe moeilijk het zou zijn om BASICODE te runnen in Python. Je kan de resulterende code &lt;a href=&quot;https://www.iljitsch.com/2020/beeldkrant250/beeldkrant250.py&quot;&gt;hier zien&lt;/a&gt;. Afgezien van wat kleine syntax-verschillen zijn veel BASIC-commando’s hetzelfde in Python, en het is makkelijk genoeg om de meeste die ontbreken toe te voegen met een paar regels code. Het grote verschil is dat je in BASIC zelf je programma moet structureren met GOTO-commando’s terwijl moderne programmeertalen zoals Python veel gestructureerder zijn en geen GOTO hebben. Daarnaast zijn in BASIC alle variabelen globaal. Het overzetten is dus redelijk simpel, maar niet helemaal triviaal.
&lt;p&gt;

De meeste tijd was ik kwijt met het goed werkend krijgen van het inlezen van de huidige cursorpositie. In xterm gaat dit door het naar de terminal sturen van een ANSI escape-reeks, waarop je er een terugkrijgt die je moet inlezen van stdin. Typisch genoeg was dit ook het lastigste deel bij de C64-subroutines, waar ik uiteindelijk een KERNAL systeem-routine moest aanroepen om dit voor elkaar te krijgen.
</description>
  <link>http://www.iljitsch.com/2020/07-04-basicode-softwaredistributie-via-radiouitzendingen-in-de-jaren-80.html</link>
  <guid isPermaLink="true">http://www.iljitsch.com/2020/07-04-basicode-softwaredistributie-via-radiouitzendingen-in-de-jaren-80.html</guid>
  <pubDate>Sat, 04 Jul 2020 09:43:51 GMT</pubDate>
</item>

<item>
  <title>Fotolog is terug</title>
  <description>Van 2007 tot 2016 postte ik regelmatig foto&apos;s hier op muada.com. Een deel van die foto&apos;s zijn verloren gegaan bij de overgang naar een nieuwe server. Ik heb nu een groot aantal weer terug kunnen zetten en ook de foto-upload-functionaliteit verbeterd, zodat ik vanaf nu weer makkelijk snel een foto op deze site kan plaatsen.
&lt;p&gt;

Nog een tip: ik heb de foto&apos;s de volgende CSS-stijl gegeven:
&lt;p&gt;

max-width: 100vw; max-height: 92vh;
&lt;p&gt;

Door de units (honderdsten van) viewport width (vw) en viewport hight (vh) te gebruiken gebruiken de foto&apos;s maximaal de volle breedte en 92% van de hoogte van het scherm.
&lt;p&gt;

Hier is het &lt;a href=&quot;http://www.muada.com/2019/fotoindex.php&quot;&gt;foto-archief van 2019&lt;/a&gt; met links naar de archieven van eerdere jaren. 2015 en 2016 missen alleen nog foto&apos;s, en in 2017 en 2018 heb ik helemaal geen losse foto&apos;s op de site gezet.</description>
  <link>http://www.iljitsch.com/article.php?article=475</link>
  <guid isPermaLink="false">475</guid>
  <pubDate>Sun, 29 Sep 2019 22:00:00 GMT</pubDate>
</item>

</channel>
</rss>
