<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
      xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
   xmlns:atom="http://www.w3.org/2005/Atom"
   xmlns:sc="http://podlove.org/simple-chapters"
>
<channel>
     

<itunes:subtitle>Stephan Paukner :: syslog</itunes:subtitle>
<itunes:author>Stephan Paukner :: syslog</itunes:author>
<itunes:summary>#include&amp;lt;rant.h&amp;gt;</itunes:summary>
<itunes:image href="http://stephan.paukner.cc/syslog/itunes.jpg" />
<itunes:category text="Technology" />                
                
    <title>Stephan Paukner :: syslog - Information Technology</title>
    <link>http://stephan.paukner.cc/syslog/</link>
    <description>#include&amp;lt;rant.h&amp;gt;</description>
    <dc:language>en</dc:language>
    <admin:errorReportsTo rdf:resource="mailto:paux+www@paukner.cc" />
    <generator>Serendipity 2.5.0 - http://www.s9y.org/</generator>
    <pubDate>Fri, 26 May 2023 11:39:18 GMT</pubDate>

    <image>
    <url>http://stephan.paukner.cc/syslog/templates/2k11/img/s9y_banner_small.png</url>
    <title>RSS: Stephan Paukner :: syslog - Information Technology - #include&amp;lt;rant.h&amp;gt;</title>
    <link>http://stephan.paukner.cc/syslog/</link>
    <width>100</width>
    <height>21</height>
</image>

<item>
    <title>Kenwood TH-D72 on APRSDroid</title>
    <link>http://stephan.paukner.cc/syslog/archives/513-Kenwood-TH-D72-on-APRSDroid.html</link>
            <category>Ham Radio</category>
            <category>Information Technology</category>
    
    <comments>http://stephan.paukner.cc/syslog/archives/513-Kenwood-TH-D72-on-APRSDroid.html#comments</comments>
    <wfw:comment>http://stephan.paukner.cc/syslog/wfwcomment.php?cid=513</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://stephan.paukner.cc/syslog/rss.php?version=2.0&amp;type=comments&amp;cid=513</wfw:commentRss>
    

    <author>paux+www15@paukner.cc (Stephan Paukner)</author>
    <content:encoded>
    &lt;p&gt;I managed to use &lt;a href=&quot;https://aprsdroid.org/&quot; target=&quot;_blank&quot; title=&quot;APRSDroid.org&quot;&gt;APRSDroid&lt;/a&gt; (v1.6.2b) on a BlackView BV9900pro (&lt;span title=&quot;A mobile Linux operating system by Google&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;Android&lt;/span&gt; 10) with a Kenwood TH-D72E &lt;span title=&quot;Transceiver = transmitter + receiver&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;TRX&lt;/span&gt;. It works, with a few caveats.&lt;/p&gt;

&lt;p&gt;The &lt;span title=&quot;Handheld transceiver&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;HT&lt;/span&gt; itself needs to be set to the &lt;a href=&quot;https://aprsdroid.org/kenwood/&quot; target=&quot;_blank&quot; title=&quot;APRSDroid.org&quot;&gt;same &lt;span title=&quot;Automatic Packet Reporting System, amateur radio instant messaging and telemetry protocol&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;APRS&lt;/span&gt; settings as the TM-D710&lt;/a&gt;, which are:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Com Port
	&lt;ul&gt;
		&lt;li&gt;Baud Rate (screen 330): 9600 bps&lt;/li&gt;
		&lt;li&gt;Input (331): Off&lt;/li&gt;
		&lt;li&gt;Output (332): Waypoint&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;Waypoint
	&lt;ul&gt;
		&lt;li&gt;Format (340): KENWOOD&lt;/li&gt;
		&lt;li&gt;Length (341): 9-Char&lt;/li&gt;
		&lt;li&gt;Output (342): All&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One difference to the TM-D710 is that the TH-D72 has got native &lt;span title=&quot;Universal Serial Bus—a hardware connection system&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;USB&lt;/span&gt;. Therefore, I also set &lt;span title=&quot;Personal Computer&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;PC&lt;/span&gt; Port Output (screen 350) to On.&lt;/p&gt;

&lt;p&gt;I connected the HT with a Mini-USB cable to a USB-OTG adapter which had a Micro-USB plug. Using a USB-C adapter, I connected it to the BV9900pro. A simple USB OTG app didn&amp;#8217;t list any USB devices connected, though. I noticed I had to switch on &amp;#8220;OTG data exchange&amp;#8221; in Settings &amp;gt; System. Now APRSDroid showed a USB device connected, and I could start tracking.&lt;/p&gt;

&lt;p align=&quot;center&quot;&gt;&lt;!-- s9ymdb:656 --&gt;&lt;img alt=&quot;TH-D72 connected to a smartphone&quot; class=&quot;serendipity_image_center&quot; height=&quot;533&quot; src=&quot;http://stephan.paukner.cc/syslog/uploads/images/pictures/22/TH-D72_APRSDroid.jpg&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I noticed two caveats, which might be completely the smartphone&amp;#8217;s fault. (It performs aggressive internal task killing which can&amp;#8217;t even be entirely neutralized by rooting and modding.) Note that the &amp;#8220;OTG data exchange&amp;#8221; setting shows a description that it would be switched off when unused for 15 minutes. In my case, it switches off anyway, even if the phone&amp;#8217;s screen is on and APRSDroid is tracking. The second issue is that when I switch to map mode while the USB connection is on, the app freezes and is cumbersome to stop and restart. I always have to switch off OTG first, then study the map, switch back to list view, activate OTG and start tracking again.&lt;/p&gt;

&lt;hr /&gt;
&lt;p&gt;Additional thoughts: The TH-D72 is an aging device. It was introduced in 2010, I bought it new when I got licensed in 2018, and it was discontinued soon after. It is still the only device available [besides the TH-D74] that offers an all-in-one solution for Packet/APRS/&lt;span title=&quot;Global Positioning System&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;GPS&lt;/span&gt; that also works perfectly from &lt;span title=&quot;A popular open-source computer operating system (kernel)&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;Linux&lt;/span&gt; and Android. Although I&amp;#8217;m a ham for a little time now, it always puzzles me how information can be so inaccessible to newbies: Only recently I managed to use Packet Radio at 1200 baud to&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;send WinLink messages directly from the HT (called &lt;a href=&quot;https://winlink.org/APRSLink&quot; target=&quot;_blank&quot;&gt;APRSLink&lt;/a&gt;),&lt;/li&gt;
	&lt;li&gt;send ordinary e-mails directly from the HT,&lt;/li&gt;
	&lt;li&gt;receive(!) ordinary e-mails directly on the HT, via APRS radio (what is endgame-awesome), and&lt;/li&gt;
	&lt;li&gt;use &lt;a href=&quot;https://feeding.cloud.geek.nz/posts/using-kenwood-th-d72a-with-pat-linux-ax25/&quot;&gt;AX.25 on a Linux machine to connect to WinLink&lt;/a&gt; via a Packet node,&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;all of which are actually old-school meanwhile. It also took me four years to figure out APRS works directly between the HT and a smartphone or tablet. At least I established these options for me now.&lt;/p&gt;

&lt;p&gt;The TM-D710 disappeared from the market last year, and I was caught by surprise. After months of searching I could finally buy one used. This mobile TRX also offers APRS on-board which can be &lt;a href=&quot;https://github.com/fmarier/tmd710_tncsetup&quot; target=&quot;_blank&quot; title=&quot;GitHub.com&quot;&gt;directly accessed from Linux&lt;/a&gt;.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Wed, 07 Sep 2022 20:17:00 +0000</pubDate>
    <guid isPermaLink="false">http://stephan.paukner.cc/syslog/archives/513-guid.html</guid>
    <category>android</category>
<category>software</category>
<category>transceiver</category>

</item>
<item>
    <title>Messing with CQRLOG data behind the application</title>
    <link>http://stephan.paukner.cc/syslog/archives/478-Messing-with-CQRLOG-data-behind-the-application.html</link>
            <category>GNU/Linux</category>
            <category>Ham Radio</category>
    
    <comments>http://stephan.paukner.cc/syslog/archives/478-Messing-with-CQRLOG-data-behind-the-application.html#comments</comments>
    <wfw:comment>http://stephan.paukner.cc/syslog/wfwcomment.php?cid=478</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://stephan.paukner.cc/syslog/rss.php?version=2.0&amp;type=comments&amp;cid=478</wfw:commentRss>
    

    <author>paux+www15@paukner.cc (Stephan Paukner)</author>
    <content:encoded>
    &lt;p&gt;Currently, in &lt;a href=&quot;https://www.cqrlog.com/&quot; title=&quot;CQRLOG.com&quot;&gt;CQRLOG&lt;/a&gt; 2.5.1 of &lt;span title=&quot;A popular Linux distribution derived from Debian&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;Ubuntu&lt;/span&gt; 21.04, &lt;span title=&quot;&amp;quot;I am acknowledging receipt.&amp;quot;&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;QSL&lt;/span&gt; export for label printing is broken due to a FreePascal bug:&lt;/p&gt;

&lt;blockquote&gt;TRegExpr exec: empty input string.&lt;/blockquote&gt;

&lt;p&gt;Version 2.5.2 contains a fix, though. Now I had the choice between these unpleasent options:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Go through dependency hell by using the CQRLOG PPA for Ubuntu. This repo however has got some unresolvable dependencies. Attempts to work around these moved my system from &lt;span title=&quot;An open-source SQL-server derived from MySQL&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;MariaDB&lt;/span&gt; back to &lt;span title=&quot;An open-source SQL-server&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;MySQL&lt;/span&gt;, resulting in a migration of the system database directory, what made a &amp;#8220;downgrade&amp;#8221; back to MariaDB another huge stumbling block. Luckily, I could switch back to 2.5.1 on MariaDB again.&lt;/li&gt;
	&lt;li&gt;Go through dependency hell by trying to compile CQRLOG from source. Either I&amp;#8217;d have to mess with several odd development packages on my system directly, or by using a Docker container. This was a path I didn&amp;#8217;t really want to take.&lt;/li&gt;
	&lt;li&gt;Delay printing QSL cards for several months until Ubuntu 21.10 is out (which hopefully contains that fix).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Couldn&amp;#8217;t I somehow work around that bug? After all, I just wanted to dump certain log entries to a &lt;span title=&quot;Comma-Separated Values&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;CSV&lt;/span&gt;. This could be done using an ordinary MySQL client! And this is the procedure to do so:&lt;/p&gt;

&lt;p&gt;Start CQRLOG, this launches a MySQL (MariaDB) server instance in the CQRLOG data directory, which is &lt;tt&gt;~/.config/cqrlog/database&lt;/tt&gt; by default, listening on port 64000. Now, simply connect to it:&lt;/p&gt;

&lt;p&gt;&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;$ &lt;/span&gt;mysql &lt;span style=&quot;color: #660033;&quot;&gt;-h&lt;/span&gt; 127.0.0.1 &lt;span style=&quot;color: #660033;&quot;&gt;-P&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;64000&lt;/span&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;Use the desired database:&lt;/p&gt;

&lt;p&gt;&lt;div class=&quot;bb-code-title&quot;&gt;&lt;/div&gt;&lt;div class=&quot;bb-code&quot;&gt;&amp;#62;&amp;#160;use&amp;#160;cqrlog001;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;Query, using the columns you usually export:&lt;/p&gt;

&lt;p&gt;&lt;div class=&quot;bb-code-title&quot;&gt;&lt;/div&gt;&lt;div class=&quot;bb-code&quot;&gt;&amp;#62;&amp;#160;select&amp;#160;qsodate,&amp;#160;time_on,&amp;#160;callsign,&amp;#160;mode,&amp;#160;freq,
&amp;#160;&amp;#160;&amp;#160;&amp;#160;rst_s,&amp;#160;qsl_via,&amp;#160;remarks,&amp;#160;stx,&amp;#160;stx_string
&amp;#160;&amp;#160;&amp;#160;&amp;#160;into&amp;#160;outfile&amp;#160;&amp;#8217;/path/to/qsl_test.csv&amp;#8217;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;fields&amp;#160;terminated&amp;#160;by&amp;#160;&amp;#8217;,&amp;#8217;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;from&amp;#160;cqrlog_main
&amp;#160;&amp;#160;&amp;#160;&amp;#160;where&amp;#160;qsl_s&amp;#160;in&amp;#160;&amp;#40;&amp;#8217;SM&lt;s&gt;&lt;/s&gt;B&amp;#8217;,&amp;#160;&amp;#8217;SB&amp;#8217;&amp;#41;;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;The resulting CSV is already almost in the usual format, except for the date. In Vim, I did these transformations:&lt;/p&gt;

&lt;p&gt;&lt;div class=&quot;bb-code-title&quot;&gt;&lt;/div&gt;&lt;div class=&quot;bb-code&quot;&gt;&amp;#58;%s/^\&amp;#40;\d\+\&amp;#41;-\&amp;#40;\d\+\&amp;#41;-\&amp;#40;\d\+\&amp;#41;/\3-\2-\1
&amp;#58;%s/-05-/-May-
&amp;#58;%s/-06-/-Jun-
&amp;#58;%s/-07-/-Jul-&lt;/div&gt;&lt;br /&gt;
etc.&lt;/p&gt;

&lt;p&gt;As soon as I was satisfied with the result (in gLabels), I marked these QSL as sent:&lt;/p&gt;

&lt;p&gt;&lt;div class=&quot;bb-code-title&quot;&gt;&lt;/div&gt;&lt;div class=&quot;bb-code&quot;&gt;&amp;#62;&amp;#160;update&amp;#160;cqrlog_main&amp;#160;set&amp;#160;qsl_s&amp;#160;=&amp;#160;&amp;#8217;B&amp;#8217;&amp;#160;where&amp;#160;qsl_s&amp;#160;=&amp;#160;&amp;#8217;SB&amp;#8217;;
&amp;#62;&amp;#160;update&amp;#160;cqrlog_main&amp;#160;set&amp;#160;qsl_s&amp;#160;=&amp;#160;&amp;#8217;M&lt;s&gt;&lt;/s&gt;B&amp;#8217;&amp;#160;where&amp;#160;qsl_s&amp;#160;=&amp;#160;&amp;#8217;SM&lt;s&gt;&lt;/s&gt;B&amp;#8217;;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;Querying around in that table is also a good opportunity for one&amp;#8217;s own statistics.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Sun, 08 Aug 2021 17:51:00 +0000</pubDate>
    <guid isPermaLink="false">http://stephan.paukner.cc/syslog/archives/478-guid.html</guid>
    <category>software</category>

</item>
<item>
    <title>Homeschooling als Krücke [Update]</title>
    <link>http://stephan.paukner.cc/syslog/archives/493-Homeschooling-als-Kruecke-Update.html</link>
            <category>Information Technology</category>
    
    <comments>http://stephan.paukner.cc/syslog/archives/493-Homeschooling-als-Kruecke-Update.html#comments</comments>
    <wfw:comment>http://stephan.paukner.cc/syslog/wfwcomment.php?cid=493</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://stephan.paukner.cc/syslog/rss.php?version=2.0&amp;type=comments&amp;cid=493</wfw:commentRss>
    

    <author>paux+www15@paukner.cc (Stephan Paukner)</author>
    <content:encoded>
    &lt;p&gt;Ich muss diese Gedanken und Beobachtungen festhalten, einfach als Dokumentation: Das Chaos namens Eduvidual, die Pein des notdürftig organisierten digitalen Schulunterrichts fern der Schule, &lt;s&gt;begleitet&lt;/s&gt; abgehalten von den Eltern. (Hintergrundinfo: Unser Sohn hat im Herbst 2020, kurz vor der zweiten Welle der Coronavirus-Pandemie, in die mittlere Schulstufe gewechselt.)&lt;/p&gt;

&lt;p&gt;Der Remote-Unterrichtstag hat für uns, also Eltern und Sohn, oft so geendet, dass wir uns durch alle Kommunikationskanäle und Webseiten geklickt haben, um sicher zu gehen, dass wir ja nichts übersehen haben. Oft war nicht ersichtlich, erstens, ob, und zweitens, wenn ja, wo die Hausübung und/oder Schulübung hochzuladen sind. Eduvidual ist sehr verwinkelt, einmal findet man die zu erledigende HÜ im Reiter Hausübung, ein andermal im Reiter Allgemein. Auf der zerkachelten Startseite gibt es in einem kleinen Seitenwidget eine Agenda, aber die ist nur nach Abgabedatum sortiert, nicht nach „was war heute“. Irgendwann wird klar, das ist nur die Abgabe-Agenda, die Unterrichtsplanung findet sich in der Kalenderfunktion, die nichts mit der Agenda zu tun hat. Die Unterseite für das tagesspezifische Hochladen der HÜ beinhaltet nur genau die Hochlademöglichkeit, keine Hinweise auf den Auftragsinhalt.&lt;/p&gt;

&lt;p&gt;Im Microsoft Teams gibt es etliche „Mathematik 1b“ Kanäle, offenbar entsteht pro Unterrichtsstunde ein weiterer. Zum Glück erkenne ich dann, dass sie zeitlich sortiert sind. Dort ist aber auch nicht zu lesen, ob und wo/wie die SÜ/HÜ an die Lehrerin zu übermitteln sind. Zum Glück bekamen wir nach Nachfragen bei der Lehrerin (durch unseren Sohn im Teams-Chat) die Info, dass an dem Tag wirklich nichts dergleichen zu tun war.&lt;/p&gt;

&lt;p&gt;Oder: Die Musik-HÜ war im entsprechenden Bereich auf Eduvidual, wo es logisch gewesen wäre, nicht zu finden, sondern im Endeffekt im Teams-Chat namens „D-Videokonferenz“, darin gefunden anhand der Suchfunktion, weil natürlich nachfolgende Dialoge diese Stelle hochgescrollt haben. Apropos Chat, natürlich sind die Infos verstreut in Chats auf WhatsApp, &lt;span title=&quot;Microsoft&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;MS&lt;/span&gt; Teams und Eduvidual selbst.&lt;/p&gt;

&lt;p&gt;Das Bedienen des PCs, der Applikationen am &lt;span title=&quot;Personal Computer&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;PC&lt;/span&gt; und der Webseiten im Rahmen des Remote-Unterrichts, die Digital-Analog-Digital-Konvertierung (runterladen, ausdrucken, ausfüllen, abfotografieren, hochladen), ist ein eigener Lernprozess, auch für mich als erfahrenen Computeranwender – denn ohne meine initiale Begleitung wäre das nicht so reibungslos verlaufen. (Dafür hatte ich mir schon im Vorhinein den Vormittag freigenommen.) Ich bin ohnehin positiv überrascht, dass mein Sohn sich damit recht schnell zurechtgefunden hat. Im allgemeinen denke ich aber, man darf nicht davon ausgehen, dass man mit den Kindern so kommunizieren kann, als wäre der Umgang mit dieser digitalen Krücke – es ist unterm Strich leider nur genau das – als selbstverständlich vorauszusetzen.&lt;/p&gt;

&lt;p&gt;Zum Beispiel, wenn ein Abgabetermin näher rückt oder gar verstreicht, und die Lehrerin das Kind deswegen auf digitalem Wege ermahnt, bin ich nicht sicher, ob diese Botschaft überhaupt richtig ankommt, und wenn, ob der mahnende Ton nicht &lt;em&gt;prinzipiell ungerechtfertigt&lt;/em&gt; ist. Denn der Lernprozess, mit dieser Krücke gehen zu lernen, lenkt m.E. irrsinnig vom eigentlichen Lernprozess ab, nämlich dem des Schulstoffs. Ein „digitales Versäumnis“ darf dann m.E. nicht als Versäumnis im Schulstoff bewertet und damit auch nicht entsprechend benotet werden. Älteren Kindern, die sich die Erfahrung bereits erarbeitet haben, ist das vermutlich eher zuzumuten.&lt;/p&gt;

&lt;p&gt;Abgabetermine als künstliches Limit, z.B. Freitag 17&amp;#160;Uhr, sind sowas von willkürlich und unnötig. Wie kann die Schule/Lehrerin davon ausgehen, dass das Kind ein Arbeitsgerät besitzt, das zu der Zeit zugänglich ist? Vielleicht muss ein Elternteil ja sein Telework damit absolvieren, oder die Webplattform krepiert einem ohnehin mal wieder unter den Füßen weg? Oder was, wenn das Gerät überhaupt streikt? Wenn im Berufsleben ein Projekt nicht zustande kommt, wenn einfach nur das Gerät versagt, ist sogar das zu diskutieren, ob das dem/der Mitarbeiter/in anzulasten ist. Jungen Schülern kann man das sicher nicht abverlangen.&lt;/p&gt;

&lt;p&gt;Überhaupt passiert es viel zu leicht, dass digitale Information eingesperrt ist, gefangen in irgendwelchen Kommunikationskanälen, die sich nur auf einem bestimmten Gerät unter einem bestimmten Benutzeraccount und dort in einer bestimmten Applikation, und dort wieder in einem bestimmten Bereich, abrufen lassen – und die muss man erst aufstöbern. Manches ist noch auf einer Webplattform, manches schon auf der Festplatte in einem Ordner. (Das schlimmste Informationsgefängnis ist sowieso ein Video.) Sich hier mit dem Kind gemeinsam ein Organisationskonzept zurechtzuschneidern und nach diesem zu arbeiten, das braucht seine Zeit.&lt;/p&gt;

&lt;p&gt;Super war auch: Wie tritt man mit der Lehrerin in Kontakt, wenn man nach dem verstrichenen Abgabetermin doch noch ein Dokument übermitteln möchte? Erledigt war es ja, nur übermittelt halt nicht. (Wer sagt, „nicht abgegeben ist nicht abgegeben“, bekommt von mir einen Faustschlag verpasst.) Der Uploadbereich ist bereits künstlich gesperrt, im Eduvidual-Chat kann man keine Dateien senden. Man kann sich zum Profil der Lehrerin vorklicken, dort geht&amp;#8217;s aber nicht weiter. Im Endeffekt hilft mir die Erfahrung: Im Outlook gibt es ein Adressbuch. So konnten wir der Lehrerin eine E-Mail mit Bitte um Berücksichtigung, inkl. Dateianhang, senden. Puh, mal wieder den Kampf gegen Digi-Goliath geschafft. Am nächsten Tag eine Eduvidual-Message von der Lehrerin an unseren Sohn: Ob er eine Frage hätte, denn sie hätte eine Kontaktanfrage von ihm erhalten. (Hä?) Fünf Tage später eine Antwort von ihr auf unsere ursprüngliche E-Mail: Sie könne leider erst jetzt antworten, denn sie hätte ihren E-Mail-Account erst jetzt freigeschaltet. (Die versäumte Abgabe ist zum Glück nicht negativ bewertet worden.)&lt;/p&gt;

&lt;p&gt;Ich höre von einem Kollegen (Softwareentwickler), dass er seiner Mutter (Lehrerin) immer wieder helfen musste, den Klassenkanal auf MS Teams einzurichten. Offensichtlich herrscht auf beiden Seiten der gleiche Frust, man stützt sich also auf beiden Seiten nur auf eine Krücke. Möglicherweise wird man das Schuljahr mit allen Defiziten einfach zum Abschluss bringen und diese Defizite im Jahr (oder den Jahren?) darauf langsam ausmerzen. (Wie das mit der Matura gehen soll, das wird noch interessant.) Ich denke nicht, dass Klassenwiederholungen im großen Stil stattfinden müssen. Immerhin herrscht ja nur eine Krise, keine Not.&lt;/p&gt;

&lt;p&gt;Ich sage seit einigen Jahren immer wieder mit Augenzwinkern: Wenn ich mal im Lotto gewinne, dann unterrichte ich meine Kinder selbst. So schlimm würde es meine Kids da nicht erwischen, denke ich.&lt;/p&gt;

&lt;h3 style=&quot;font-size:100%&quot;&gt;Addendum 24.02.&lt;/h3&gt;

&lt;p&gt;Noch eine nette Geschichte: Angenommen, die Lehrer/in übermittelt einen Arbeitsauftrag und gibt versehentlich eine falsche Datei als Anhang mit. Es gibt de facto keine Möglichkeit, auf die Undurchführbarkeit der Aufgabe hinzuweisen.&lt;/p&gt;

&lt;p&gt;Eine weitere unglaublich nervenaufreibende Angelegenheit ist die Abwesenheit von Benachrichtigungen, die auf neu bereitgestellte oder geänderte Inhalte auf Eduvidual hinweisen. Man müsste de facto das einleitend beschriebene Durchklicken stündlich wiederholen, man müsste ständig &lt;em&gt;pollen,&lt;/em&gt; ob nicht z.B. doch noch um 11:30&amp;#160;Uhr ein Arbeitsauftrag online gestellt worden ist, der bis um 17&amp;#160;Uhr zu erledigen &lt;em&gt;gewesen wäre.&lt;/em&gt; Oida, geht&amp;#8217;s noch? Die Hoffnung, mit der Moodle-App am Smartphone die Plattform näher in Griffweite zu haben, erfüllt sich nicht, denn dort werden gewisse Inhalte nicht wiedergegeben.&lt;/p&gt;

&lt;p&gt;Mittlerweile gibt es ja dieses herrlich chaotische Alternieren von Gruppe&amp;#160;A, die Montag/Dienstag in der Schule ist, während Gruppe&amp;#160;B zuhause Arbeitsaufträge bekommt, wonach Mittwoch/Donnerstag das ganze umgedreht wird, Freitag alle zuhause sind, und in der Woche darauf Gruppe A und B vertauschte Rollen haben. Nicht mitgekommen? Jawohl, korrekt! Die Kinder kommen völlig aus dem Rhythmus, wissen teilweise nicht, welcher Tag überhaupt ist, und ob nun Wochenende ist oder etwas zu tun ist – das erscheint so völlig unvermittelt und willkürlich. Gruppe&amp;#160;A bekommt über Eduvidual einen Hinweis, dass am Montag eine Deutsch-Wiederholung ist, Gruppe&amp;#160;B erfährt davon in der Schule nichts. Gruppe&amp;#160;A erfährt in der Schule, dass nächste Woche Englischschularbeit ist, Gruppe&amp;#160;B weiß zuhause von nichts.&lt;/p&gt;

&lt;p&gt;Schön langsam drängt sich der Gedanke auf, zu fordern, &lt;em&gt;dieses Schuljahr nicht zu benoten.&lt;/em&gt; Wem ist eigentlich dieser „Gruppe A/B“-Scheiß eingefallen? Ich würde gerne dem Impuls nachgeben und &lt;em&gt;meinen Sohn davon freisprechen, an diesem Theater teilzunehmen!&lt;/em&gt; Bisher haben viele still gehalten und diese Bürde auf sich genommen, es sollte ja alles nur eine vorübergehende &lt;em&gt;Krücke&lt;/em&gt; sein. Wer ist schon gerne der Querulant und riskiert, dass dann der eigene Sprössling die Retourkutsche abbekommt? Es ist aber kein Ende abzusehen, es werden Maßnahmen angesichts eines epidemologischen Kipppunkts gelockert, beim Impfen geht auch nichts weiter, es werden zuerst Menschen geimpft, die auf der Intensivstation sowieso nicht mehr beatmet werden würden. Dann gehen die Egoisten auf die Straße und fordern ihr Lotterleben zurück, das niemandem jemals zugestanden ist. Bald werden Eltern vermehrt andere/weitere Probleme haben als nur die Schulbildung ihrer Kinder, nämlich existenzielle. Wird&amp;#8217;s jetzt besser oder schlimmer? Meinem Gefühl nach müsste man Erleichterung ab ca. drei Monaten vorher langsam wahrnehmen können. Ich verspüre eher das Gegenteil davon.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Fri, 05 Feb 2021 20:48:00 +0000</pubDate>
    <guid isPermaLink="false">http://stephan.paukner.cc/syslog/archives/493-guid.html</guid>
    <category>education</category>
<category>german</category>
<category>kids</category>
<category>rant</category>
<category>shtf</category>

</item>
<item>
    <title>Das Problem mit Artificial Intelligence</title>
    <link>http://stephan.paukner.cc/syslog/archives/487-Das-Problem-mit-Artificial-Intelligence.html</link>
            <category>Curiosities</category>
            <category>Information Technology</category>
    
    <comments>http://stephan.paukner.cc/syslog/archives/487-Das-Problem-mit-Artificial-Intelligence.html#comments</comments>
    <wfw:comment>http://stephan.paukner.cc/syslog/wfwcomment.php?cid=487</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://stephan.paukner.cc/syslog/rss.php?version=2.0&amp;type=comments&amp;cid=487</wfw:commentRss>
    

    <author>paux+www15@paukner.cc (Stephan Paukner)</author>
    <content:encoded>
    &lt;p&gt;ist genau das, worüber ich eh schon &lt;a href=&quot;http://stephan.paukner.cc/syslog/archives/447-A-pessimistic-conclusion-about-what-data-science-means.html&quot;&gt;zwei&lt;/a&gt; &lt;a href=&quot;http://stephan.paukner.cc/syslog/archives/463-Data-science-marketing-+-advertising.html&quot;&gt;Mal&lt;/a&gt; geschimpft habe:&lt;/p&gt;

&lt;p&gt;&lt;!-- s9ymdb:644 --&gt;&lt;img alt=&quot;&quot; class=&quot;serendipity_image_center&quot; src=&quot;http://stephan.paukner.cc/syslog/uploads/images/graphics/20/a1-chat.png&quot; width=&quot;450&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What. The. Frühstück.&lt;/em&gt; Oder? Es funktioniert einfach nicht. Man will Kosten sparen und ersetzt Brainpower durch Dosenpower, und die Rechnung geht einfach nicht auf. Ich meine, der Bot versucht ja nichtmal, absichtlich Rechtschreibfehler einzubauen und auf diese Weise authentisch zu wirken, wie es der (offenbar) menschliche Mitarbeiter dann getan hat, der in den Chat eingestiegen ist.&lt;/p&gt;

&lt;p&gt;Da gibt&amp;#8217;s ja diese visionären Diagramme, die den Fortschritt im autonomen Automobil (auto-Auto) skizzieren, etwa so: Zuerst sind nur ein paar extra Sensoren eingebaut, sodass das Auto autonom einparken kann, danach kann der Fahrer überhaupt die meiste Zeit die Hände vom Lenkrad nehmen, und dann irgendwann sitzt er gegen die Fahrtrichtung und unterhält sich mit den Mitfahrern. Das wirkt wie eine Comicgeschichte mit einem Fortschritt nach dem anderen – eine schöne lineare Abfolge. Der Aufwand steigt allerdings viel eher &lt;em&gt;exponentiell!&lt;/em&gt; Um eine Stufe weiter zu kommen, ist viel, viel mehr Aufwand zu treiben als beim vorigen Schritt, Aufwand im Sinne von Zeit, Kosten und Brainpower – und Dosenpower, allerdings nur im Sinne von Sensoren und Rechensklaven. Das zieht sich also noch. Allerdings: Wozu das ganze? Welches Problem wird dabei tatsächlich gelöst? Hat unsere Gesellschaft das Problem, dass zu viele Menschen schlecht Auto fahren? Ist es das, was wir lösen müssen? Wir leben im Überfluss, können den Hals nicht voll genug kriegen, und müssen das Autofahren unbedingt noch bequemer machen. So ein Luxusproblem. Oder diese netten Ideen, wie man noch mehr Prozessoren im Küchenalltag unterbringen könnte, mit Videoprojektionen, Augmented Reality und smarten Kühlschränken. There is nothing left to innovate in, everything is solved already. Mehr Luxus für das normale Volk. Irgendwie ist das für mich eine prototypische Erscheinung für das Zuviel des Guten.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Fri, 28 Feb 2020 19:31:00 +0000</pubDate>
    <guid isPermaLink="false">http://stephan.paukner.cc/syslog/archives/487-guid.html</guid>
    <category>austria</category>
<category>fail</category>
<category>fun</category>
<category>german</category>
<category>machine learning</category>
<category>rant</category>

</item>
<item>
    <title>Replace 0 with Ø in ham radio call signs using Perl</title>
    <link>http://stephan.paukner.cc/syslog/archives/476-Replace-0-with-in-ham-radio-call-signs-using-Perl.html</link>
            <category>Ham Radio</category>
            <category>Information Technology</category>
    
    <comments>http://stephan.paukner.cc/syslog/archives/476-Replace-0-with-in-ham-radio-call-signs-using-Perl.html#comments</comments>
    <wfw:comment>http://stephan.paukner.cc/syslog/wfwcomment.php?cid=476</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://stephan.paukner.cc/syslog/rss.php?version=2.0&amp;type=comments&amp;cid=476</wfw:commentRss>
    

    <author>paux+www15@paukner.cc (Stephan Paukner)</author>
    <content:encoded>
    &lt;p&gt;Since &lt;a href=&quot;https://en.wikipedia.org/wiki/Amateur_radio_call_signs&quot; target=&quot;_blank&quot; title=&quot;&amp;quot;Amateur radio call signs&amp;quot; on Wikipedia&quot;&gt;ham radio call signs&lt;/a&gt; can contain both the letter O and the digit 0 at the same time, the zeros are often represented as a &lt;a href=&quot;https://en.wikipedia.org/wiki/Slashed_zero&quot; target=&quot;_blank&quot; title=&quot;&amp;quot;Slashed zero&amp;quot; on Wikipedia&quot;&gt;slashed zero&lt;/a&gt; in print. But because there&#039;s no ready-hand (Unicode) character for this, the letter Ø is used most often instead, since one cannot always use a monospace font which already represents the zero in slashed form. (This problem could also occur in other cases, such as printing hashes or codes.)&lt;/p&gt;

&lt;p&gt;There&#039;s a lot of &lt;a href=&quot;https://en.wikipedia.org/wiki/Contest_logging_software&quot; target=&quot;_blank&quot; title=&quot;&amp;quot;Contest logging software&amp;quot; on Wikipedia&quot;&gt;ham radio logging software&lt;/a&gt; outside that supports a workflow for printing &lt;a href=&quot;https://en.wikipedia.org/wiki/QSL_card&quot; target=&quot;_blank&quot; title=&quot;&amp;quot;QSL card&amp;quot; on Wikipedia&quot;&gt;&lt;span title=&quot;&amp;quot;I am acknowledging receipt.&amp;quot;&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;QSL&lt;/span&gt; cards&lt;/a&gt; or label stickers, and I&#039;m not sure if any of these supports the replacement of zeros with Ø before print—&lt;em&gt;only&lt;/em&gt; in call signs, and not in other data such as date, time or frequency. The software I use on &lt;span title=&quot;A popular Linux distribution derived from Debian&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;Ubuntu&lt;/span&gt;, &lt;em&gt;CQRLOG,&lt;/em&gt; exports &lt;span title=&quot;&amp;quot;I can communicate with ...&amp;quot;, also misused as &amp;quot;radio contact&amp;quot;&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;QSO&lt;/span&gt;&lt;span&gt;s&lt;/span&gt; into a &lt;span title=&quot;Comma-Separated Values&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;CSV&lt;/span&gt; file that can be read in by &lt;em&gt;gLabels&lt;/em&gt; to perform or prepare the actual print. I wanted a step in between that transforms that CSV file by substituting that Ø &lt;em&gt;only&lt;/em&gt; in call signs. It took me some time, but here&#039;s my solution (showing a bogus CSV line):&lt;/p&gt;

&lt;div class=&quot;bb-code-title&quot;&gt;&lt;/div&gt;&lt;div class=&quot;bb-code&quot;&gt;$&amp;#160;echo&amp;#160;&quot;30-Oct-2018,12&amp;#58;04,AB0/K100ABC/P,14.104,F0und&amp;#160;AA2/YZ300ZY/0&quot;&amp;#160;\
&amp;#62;&amp;#160;|&amp;#160;perl&amp;#160;-pe&amp;#160;&#039;1&amp;#160;while&amp;#160;s|&amp;#40;.&amp;#42;&amp;#91;A-Z0-9&amp;#93;&amp;#91;A-Z0-9/&amp;#93;+&amp;#41;+0&amp;#40;&amp;#91;A-Z0-9/&amp;#93;&amp;#42;.&amp;#42;&amp;#41;|\1Ø\2|g&#039;
30-Oct-2018,12&amp;#58;04,ABØ/K1ØØABC/P,14.104,F0und&amp;#160;AA2/YZ3ØØZY/Ø&lt;/div&gt;

&lt;p&gt;I stuffed this regex pattern into this alias:&lt;/p&gt;

&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;alias&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;qsl0&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;src=$HOME/path/to/qsl.csv; \&lt;br /&gt;cp -p $src $src.orig; \&lt;br /&gt;perl -pe \&lt;br /&gt;&amp;quot;1 while s|(.*[A-Z0-9][A-Z0-9/]+)+0([A-Z0-9/]*.*)|\1Ø\2|g&amp;quot; \&lt;br /&gt;&amp;lt; $src.orig &amp;gt; $src&#039;&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Update:&lt;/strong&gt; Fixed the pattern to allow prefixes that start with a digit.&lt;/em&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Wed, 31 Oct 2018 07:29:00 +0000</pubDate>
    <guid isPermaLink="false">http://stephan.paukner.cc/syslog/archives/476-guid.html</guid>
    <category>programming</category>
<category>software</category>

</item>
<item>
    <title>My anti crypto coins rant</title>
    <link>http://stephan.paukner.cc/syslog/archives/471-My-anti-crypto-coins-rant.html</link>
            <category>Information Technology</category>
    
    <comments>http://stephan.paukner.cc/syslog/archives/471-My-anti-crypto-coins-rant.html#comments</comments>
    <wfw:comment>http://stephan.paukner.cc/syslog/wfwcomment.php?cid=471</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://stephan.paukner.cc/syslog/rss.php?version=2.0&amp;type=comments&amp;cid=471</wfw:commentRss>
    

    <author>paux+www15@paukner.cc (Stephan Paukner)</author>
    <content:encoded>
    &lt;p&gt;My experiment with crypto coins is over. (No, these are no currencies.)&lt;/p&gt;

&lt;p&gt;Last summer, when the crypto hype started taking off, I decided to get my hands dirty and to learn what&amp;#8217;s up with this stuff. I decided to spend around €50 on each of a few established crypto coins and expected to lose them all.&lt;/p&gt;

&lt;p&gt;My take-away now is: I&amp;#8217;m so glad I got everything back into real money. Crypto coins are a fad and will not revolutionize anything in this shape but scam. Crypto coins only work in times of (relative) stability and working infrastructure. Crypto coins are no way to protect wealth from disasters such as weather, government, nuclear meltdown or financial system meltdown. Crypto coins need way too much energy, they live in a world of busily buzzing networks and heated-up &lt;span title=&quot;Central Processing Unit—the heart of every computer&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;CPU&lt;/span&gt;&lt;span&gt;s&lt;/span&gt; and &lt;span title=&quot;Graphics Processing Unit&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;GPU&lt;/span&gt;&lt;span&gt;s.&lt;/span&gt; All this crypto stuff is not ready for prime time (or has its prime time already passed?), it&amp;#8217;s much too complicated, you have to have too much and too deep technical knowledge to be able to handle your funds. Here are some examples I experienced myself:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;You have to manage a scattered and varied set of crypto wallets to actually store your funds. Mine included online wallets, local wallets on my (&lt;span title=&quot;A popular open-source computer operating system (kernel)&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;Linux&lt;/span&gt;) &lt;span title=&quot;Personal Computer&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;PC&lt;/span&gt; and an exchange.&lt;/li&gt;
	&lt;li&gt;Because you do not want to save your passwords, you have to memorize them very well, and to not forget them, you have to log into your wallets regularly. If you try a few wrong passwords, your &lt;span title=&quot;Internet Protocol&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;IP&lt;/span&gt; is slowed down or blocked, and you locked yourself out, right when you actually needed access. Of course, you use &lt;span title=&quot;Two-factor authentication&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;2FA&lt;/span&gt;, and you&amp;#8217;re thus dependend on your smartphones or tablets happily running.&lt;/li&gt;
	&lt;li&gt;For every transfer, you have to click through a wall of confirmations, captchas, more 2FA codes, and verifications via e-mail. You depend on access to your e-mails. (Do your internet access points and e-mail providers anticipate large-scaled disasters?)&lt;/li&gt;
	&lt;li&gt;If you&amp;#8217;re too sloppy and forget to include the payment &lt;span title=&quot;Identification&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;ID&lt;/span&gt; in your transfer to an exchange, you need their support and have to wait for days to get your funds back.&lt;/li&gt;
	&lt;li&gt;Your balance might suddenly show up as zero. (In my case, it was my local IOTA client.) You have to do research, update your client and try pointless &amp;#8220;reattachments to the Tangle&amp;#8221; until you finally see your balance again and get rid of it, rid of it, exchange it into real money, my ass.&lt;/li&gt;
	&lt;li&gt;Exchange of regular (small) amounts might be artificially slowed down or made impossible, because the networks don&amp;#8217;t scale.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It might well be that blockchain and smart contracts reach a plateau of productivity one day, but I downright hope that crypto coins will not. Mining rigs are placed in containers next to power plants! Finance portals publish crypto reports as if these were a regular asset class! For the times ahead, better invest into something tangible or into capital that cannot be raided, like social capital or knowledge capital. I want to know something, be able to do and rely on something that does not depend on a running and ever-consuming industrial infrastructure.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Mon, 16 Apr 2018 18:16:00 +0000</pubDate>
    <guid isPermaLink="false">http://stephan.paukner.cc/syslog/archives/471-guid.html</guid>
    <category>crypto</category>
<category>finance</category>
<category>rant</category>
<category>software</category>
<category>sustainability</category>

</item>
<item>
    <title>Tresorit Solo now +1 TB for free</title>
    <link>http://stephan.paukner.cc/syslog/archives/466-Tresorit-Solo-now-+1-TB-for-free.html</link>
            <category>Information Technology</category>
    
    <comments>http://stephan.paukner.cc/syslog/archives/466-Tresorit-Solo-now-+1-TB-for-free.html#comments</comments>
    <wfw:comment>http://stephan.paukner.cc/syslog/wfwcomment.php?cid=466</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://stephan.paukner.cc/syslog/rss.php?version=2.0&amp;type=comments&amp;cid=466</wfw:commentRss>
    

    <author>paux+www15@paukner.cc (Stephan Paukner)</author>
    <content:encoded>
    &lt;p&gt;I noticed that &lt;a href=&quot;https://tresorit.com/&quot; target=&quot;_blank&quot; title=&quot;Tresorit.com&quot;&gt;Tresorit&lt;/a&gt;&amp;#160;&lt;a href=&quot;https://tresorit.com/solo&quot; target=&quot;_blank&quot; title=&quot;Tresorit.com&quot;&gt;Solo&lt;/a&gt; suddenly ramped up total space from 1&amp;#160;&lt;span title=&quot;TeraByte, 1 trillion bytes&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;TB&lt;/span&gt; to 2&amp;#160;TB without any notice or extra charges. I hope this change is permanent. &lt;img src=&quot;http://stephan.paukner.cc/syslog/plugins/serendipity_event_emoticate/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; class=&quot;emoticon&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span title=&quot;By the way&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;Btw&lt;/span&gt;, since my (somewhat forced) &lt;a href=&quot;http://stephan.paukner.cc/syslog/archives/449-Farewell-Wuala,-hail-Tresorit!.html&quot;&gt;migration from Wuala&lt;/a&gt; 2½ years ago I&amp;#8217;m even more convinced of their service. Their clients for Windows, &lt;span title=&quot;GNU&#039;s Not Unix—a counter-statement to commercial Unix versions&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;GNU&lt;/span&gt;/&lt;span title=&quot;A popular open-source computer operating system (kernel)&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;Linux&lt;/span&gt; &amp;amp; &lt;span title=&quot;A mobile Linux operating system by Google&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;Android&lt;/span&gt; are very convenient and reliable. Recently they made a big revamp of their visual appearance and clients (even that for Linux).&lt;/p&gt;

&lt;p&gt;The only thing that&amp;#8217;s a bit odd is that they make artificial restrictions to file and directory names. In earlier versions, these files were simply and silently(!) not uploaded if they ended with a blank or dot. I was surprised and slightly shocked that these files were simply not protected, without being aware of it. Luckily, with their recent client updates, there&amp;#8217;s now a possibility to view a list of affected files. Boy, was I surprised that there were even more restrictions: They disallow characters that Windows does not support in file names, such as&lt;/p&gt;

&lt;p&gt;&lt;div class=&quot;bb-code-title&quot;&gt;&lt;/div&gt;&lt;div class=&quot;bb-code&quot;&gt;&amp;#58;&amp;#160;?&amp;#160;&quot;&amp;#160;&amp;#60;&amp;#160;&amp;#62;&amp;#160;|&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;In addition, there are name collisions reported when file&amp;#160;names only differ in capitalization, all of which are perfect features of Linux file systems that I got used to over the years. Another thing is hidden directories in Linux, which start with a dot. Some day they simply and silently didn&amp;#8217;t get uploaded anymore. Luckily, I didn&amp;#8217;t have to rename that many files and directories, but they were in the dozens, though. Other users could be off much worse. Finally, after renaming, those affected files&amp;#160;got uploaded—they were in the hundreds, and I had thought they&amp;#8217;d already been in the cloud since months. &lt;img src=&quot;http://stephan.paukner.cc/syslog/plugins/serendipity_event_emoticate/img/emoticons/tongue.png&quot; alt=&quot;:-P&quot; class=&quot;emoticon&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Apart from that, I can fully recommend their service, even more now that they cost me 0.09&amp;#160;€/&lt;span title=&quot;GigaByte, 1 billion bytes&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;GB&lt;/span&gt; per year.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Wed, 10 Jan 2018 16:06:00 +0000</pubDate>
    <guid isPermaLink="false">http://stephan.paukner.cc/syslog/archives/466-guid.html</guid>
    <category>cloud</category>
<category>internet</category>
<category>software</category>
<category>storage</category>

</item>
<item>
    <title>Working around the Yahoo Finance API shutdown disaster</title>
    <link>http://stephan.paukner.cc/syslog/archives/464-Working-around-the-Yahoo-Finance-API-shutdown-disaster.html</link>
            <category>Information Technology</category>
    
    <comments>http://stephan.paukner.cc/syslog/archives/464-Working-around-the-Yahoo-Finance-API-shutdown-disaster.html#comments</comments>
    <wfw:comment>http://stephan.paukner.cc/syslog/wfwcomment.php?cid=464</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://stephan.paukner.cc/syslog/rss.php?version=2.0&amp;type=comments&amp;cid=464</wfw:commentRss>
    

    <author>paux+www15@paukner.cc (Stephan Paukner)</author>
    <content:encoded>
    &lt;p&gt;A roaring went through the tech-savvy finance community when Yahoo suddenly shut down its Finance &lt;span title=&quot;Application Programming Interface&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;API&lt;/span&gt; on Nov 1, 2017. Dozens of libraries and scripts that had parsed &lt;span title=&quot;HyperText Transfer Protocol&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;HTTP&lt;/span&gt; output from this API for years ceased to work. No longer could libraries such as &lt;a href=&quot;http://finance-quote.sourceforge.net/&quot; target=&quot;_blank&quot; title=&quot;SourceForge.net&quot;&gt;Finance::Quote&lt;/a&gt; query prices of stocks, funds and currencies and hand these over to other applications such as &lt;a href=&quot;http://gnucash.org/&quot; target=&quot;_blank&quot; title=&quot;GnuCash.org&quot;&gt;GnuCash&lt;/a&gt;. By using Finance::Quote—I even wrote an &lt;a href=&quot;http://stephan.paukner.cc/syslog/archives/401-How-to-add-new-quote-sources-to-GnuCash.html&quot;&gt;extension&lt;/a&gt; &lt;a href=&quot;https://github.com/paux/Finance-Quote-Morningstar-AT&quot; target=&quot;_blank&quot; title=&quot;GitHub.com&quot;&gt;module&lt;/a&gt; for it—I was affected as well, and finally I stumbled upon a &lt;a href=&quot;https://wiki.gnucash.org/wiki/FAQ#Q:_Why_doesn.27t_online_quoting_work.3F&quot; target=&quot;_blank&quot; title=&quot;GnuCash.org&quot;&gt;solution&lt;/a&gt;: Version 1.41 recently introduced an &lt;a href=&quot;https://www.alphavantage.co/&quot; target=&quot;_blank&quot; title=&quot;AlphaVantage.co&quot;&gt;Alpha Vantage&lt;/a&gt; module, and querying this source instead of Yahoo is straightforward.&lt;/p&gt;

&lt;p&gt;Unfortunately, using &lt;span title=&quot;A GNU/Linux distribution favored by experts&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;Debian&lt;/span&gt; or &lt;span title=&quot;A popular Linux distribution derived from Debian&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;Ubuntu&lt;/span&gt; one has to install this version from source, but it&#039;s not that hard to do. And for using Alpha Vantage, you have to &lt;a href=&quot;https://www.alphavantage.co/support/#api-key&quot; target=&quot;_blank&quot; title=&quot;AlphaVantage.co&quot;&gt;register for an API key&lt;/a&gt;, but that&#039;s also no issue. One of the things that still don&#039;t work is currency conversion, as that module is still tied to Yahoo&#039;s interface. Alpha Vantage does provide currency conversion through its &lt;a href=&quot;https://www.alphavantage.co/documentation/#fx&quot; target=&quot;_blank&quot; title=&quot;AlphaVantage.co&quot;&gt;API&lt;/a&gt;, though. Looking at &lt;tt&gt;AlphaVantage.pm&lt;/tt&gt; I recreated a simple &lt;span title=&quot;A dynamic programming/scripting language&quot; class=&quot;serendipity_glossaryMarkup&quot;&gt;Perl&lt;/span&gt; logic to perform currency conversion. Note that I haven&#039;t packed it into a real Finance::Quote module, it&#039;s just a simple Perl script that Works For Me™. For simplicity, I don&#039;t do any error handling. It relies on an environment variable that contains the API key. Here&#039;s how I did it:&lt;/p&gt;

&lt;div class=&quot;perl geshi&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#!/usr/bin/perl -w&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;use&lt;/span&gt; lib &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;/home/user/lib/perl&#039;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#not needed#use Finance::Quote;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#debug#use Data::Dumper;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;use&lt;/span&gt; JSON &lt;a href=&quot;http://perldoc.perl.org/functions/qw.html&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;qw&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt; decode_json &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;use&lt;/span&gt; HTTP&lt;span style=&quot;color: #339933;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;Request&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;Common&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;my&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$pair&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$ARGV&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# e.g. &amp;quot;XAU:EUR&amp;quot; for gold price in Euro&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;@curr&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/split.html&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;split&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #009966; font-style: italic;&quot;&gt;/:/&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$pair&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;my&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$API_KEY&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$ENV&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;ALPHAVANTAGE_API_KEY&#039;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$url&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;https://www.alphavantage.co/query&amp;quot;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;?function=CURRENCY_EXCHANGE_RATE&amp;quot;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&amp;amp;from_currency=&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$curr&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&amp;amp;to_currency=&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$curr&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&amp;amp;apikey=&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$API_KEY&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$ua&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; LWP&lt;span style=&quot;color: #339933;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;UserAgent&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$reply&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$ua&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;request&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;GET &lt;span style=&quot;color: #0000ff;&quot;&gt;$url&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#debug#my $code = $reply-&amp;gt;code;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#debug#my $desc = HTTP::Status::status_message($code);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;my&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$body&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$reply&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;content&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;my&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$json_data&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; JSON&lt;span style=&quot;color: #339933;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #006600;&quot;&gt;decode_json&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$body&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#debug#print Dumper(\$json_data);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;my&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;%fx&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$json_data&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;Realtime Currency Exchange Rate&#039;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;my&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$last_refresh&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$fx&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;6. Last Refreshed&#039;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$last_refresh&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/substr.html&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;substr&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$last_refresh&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# remove time&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;my&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$isodate&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://perldoc.perl.org/functions/substr.html&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;substr&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$last_refresh&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;my&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$rate&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$fx&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;5. Exchange Rate&#039;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://perldoc.perl.org/functions/print.html&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;print&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$isodate&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039; &#039;&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$rate&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/div&gt; 
    </content:encoded>

    <pubDate>Thu, 14 Dec 2017 21:11:00 +0000</pubDate>
    <guid isPermaLink="false">http://stephan.paukner.cc/syslog/archives/464-guid.html</guid>
    <category>finance</category>
<category>perl</category>
<category>programming</category>
<category>software</category>

</item>

</channel>
</rss>
