<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Software &#8211; Post von Roland</title>
	<atom:link href="https://blog.rolandmoriz.de/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.rolandmoriz.de</link>
	<description>Technologie &#38; Wahnsinn.</description>
	<lastBuildDate>Wed, 11 Feb 2026 23:54:27 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>
	<item>
		<title>KI wird Software-Entwicklung/SaaS nicht ersetzen</title>
		<link>https://blog.rolandmoriz.de/2026/02/12/ki-wird-software-entwicklung-saas-nicht-ersetzen/</link>
					<comments>https://blog.rolandmoriz.de/2026/02/12/ki-wird-software-entwicklung-saas-nicht-ersetzen/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Wed, 11 Feb 2026 23:52:51 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Wirtschaft]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=3532</guid>

					<description><![CDATA[Immer mehr Leute probieren gerade agentic coding aus und sind beeindruckt, wie man mit &#8222;menschlichen Eingaben&#8220; für ein paar tausend Token eine Anwendung generieren oder&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Immer mehr Leute probieren gerade agentic coding aus und sind beeindruckt, wie man mit &#8222;menschlichen Eingaben&#8220; für ein paar tausend Token eine Anwendung generieren oder anpassen lassen kann. Daraus wird jetzt geschlussfolgert, dass die Software-Industrie als Ganzes und die Software-Entwicklung als Profession vorbei bzw. erledigt wären.</p>



<p class="wp-block-paragraph">Nichts könnte falscher sein, als das. Wer ernsthaft die letzten 30 Jahre in der IT tätig war, der weiß und kann bestätigen, dass Requirements-Engineering, Testing und QA wichtige Arbeiten sind, die man nicht automatisieren kann. Am Ende müssen Menschen die Anforderungen definieren und absegnen und die Umsetzung und den Betrieb sicherstellen.</p>



<p class="wp-block-paragraph">Vor 15 Jahren gab es Delulu-Gründer ohne Technik-Kompetenz, die einfach &#8222;sowas wie Facebook/eBay/Amazon/Uber/AirBnB/… für X&#8220; bauen lassen wollten, aber natürlich nicht in der Lage waren, die Komplexität zu begreifen und Anforderungen genau zu definieren. Ich kann natürlich auch Claude Code sagen, dass er mir eine App bauen soll, dann wird analysiert, was typischerweise(!) mit dieser Anforderungen verbunden wird (so funktionieren LLM, alles eine Frage der Statistik) und dann wird generiert.</p>



<p class="wp-block-paragraph">Ein Großteil des Software-Geschäftes fußt aber eigentlich darauf, dass man die Definitionshoheit, aber auch Verantwortung an andere abgibt. <strong>Also davon ausgehen kann, dass jemand für Geld ein &#8222;rundes Produkt&#8220; bereitstellt.</strong> <strong>Heute und auch in der Zukunft. Und genau das kann kein LLM ersetze, kein agentic coding toolkit. </strong></p>



<p class="wp-block-paragraph">Eine triviale Zeiterfassung- oder Buchhaltung kriegt jedes dieser Systeme in wenigen Minute hin, aber es ist untauglich für den praktischen Einsatz, da Nutzende die Tiefe des Problems nicht selbst verstehen, sondern bisher jemand anderes damit beauftragt haben. <a href="https://en.wikipedia.org/wiki/There_are_unknown_unknowns">Sie wissen also nicht, was sie nicht wissen und können keine passenden Prompts schreiben.</a></p>



<p class="wp-block-paragraph"><strong>Da es keine physischen Grenzen gibt, außer Token/Geld und Zeit, entwickeln gerade viele Leute irgendeinen Schrott und sinken dabei immer tiefer in bisher nicht verstandene Probleme, die sie eigentlich auch nicht verstehen oder lösen wollen.</strong></p>



<p class="wp-block-paragraph">An den Börsen crashen gerade die Aktien von Software-Unternehmen und das halte ich für absoluten Blödsinn. Natürlich wird die Einstiegshürde geringer werden, existierende Unternehmen zu kopieren, sofern ebenfalls fähige Senior Developer und Projekt-Manager welche strategisch und schlau vorgehen, also wissen, was sie tun. Es ist also eine massive Arbeitserleichterung für uns.</p>



<p class="wp-block-paragraph">Alle anderen werden verzweifeln.</p>



<p class="wp-block-paragraph">Wie immer gilt: Keine Handlungsempfehlung, da die Märkte länger irrational sein können, als wir liquide. Auch sind Software-Buden natürlich abhängig von der wirtschaftlichen und geopolitischen Entwicklung, d.h. da gibt es durchaus auch fundierte Gründe für eine Korrektur. Wo dann der faire Wert erreicht ist, bleibt offen.</p>



<p class="wp-block-paragraph">Natürlich gibt es Geschäftsmodelle, die nicht mehr funktionieren werden. Ich persönlich lache immer über diese &#8222;KI-Sales-Leute&#8220;, die mit N8N und anderen Toolkits vorgeben, komplexe Arbeitsabläufe für Unternehmen zu realisieren. Dabei geht es fast immer um Anrufbeantworter bzw. Telefoniesysteme oder generieren von Mails. Das ist alles hoffnungsloser Bullshit und ineffizient.</p>



<p class="wp-block-paragraph">Wenn ich z.B. einen Termin/Tisch beim Arzt oder im Restaurant will, möchte ich keinen Roman schreiben, sondern einfach auf der Website nach 3-4 Auswahloptionen eine Liste von freien Terminen bekommen und buchen. Nur Rentner und technologisch komplett verlorene Menschengruppen rufen per Telefon an, selbst wenn die Spracherkennung halbwegs funktionieren sollte. Darin steckt kein Potenzial, sondern nur ein Kostenfaktor. </p>



<p class="wp-block-paragraph">Diese Verkäufer haben selbst keine Ahnung und sich ein paar Arbeitsabläufe ausgedacht, die sie jetzt immer und immer wieder verkaufen wollen. So wie Handyverträge vor 25 Jahren. Die schnelle Mark machen und Provisionen kassieren.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2026/02/12/ki-wird-software-entwicklung-saas-nicht-ersetzen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Warum ist Journalismus so schlecht, trotz KI/LLM?</title>
		<link>https://blog.rolandmoriz.de/2026/02/05/warum-ist-journalismus-so-schlecht-trotz-ki-llm/</link>
					<comments>https://blog.rolandmoriz.de/2026/02/05/warum-ist-journalismus-so-schlecht-trotz-ki-llm/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Thu, 05 Feb 2026 18:54:16 +0000</pubDate>
				<category><![CDATA[Fahrrad]]></category>
		<category><![CDATA[Hacksport]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=3499</guid>

					<description><![CDATA[Ich frage mich wirklich, warum so viele journalistische Beiträge voller Fehler sind in Zeiten, wo man diese durch LLMs zumindest experimentell fact-checken könnte. Man sollte&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ich frage mich wirklich, warum so viele journalistische Beiträge voller Fehler sind in Zeiten, wo man diese durch LLMs zumindest experimentell fact-checken könnte. Man sollte dies nicht auf &#8222;Autopilot&#8220; tun, oder gar Artikel generieren lassen, aber die Möglichkeiten einer qualitativen Verbesserung sind großartig.</p>



<p class="wp-block-paragraph">Während in den USA relativ oft Gründer aus dem Journalismus stammen, flüchten viele erfolgreiche Journalisten in Deutschland irgendwann in Corporate oder Public-PR, also quasi Propaganda für Konzerne oder die öffentliche Hand zu machen. Das mag lukrativer oder sicherer sein, als bei irgendeinem Medienhaus oder Fernsehsender zu bleiben, aber letztlich wäre mehr drin gewesen.</p>



<p class="wp-block-paragraph">Vor ein paar Monaten habe ich mir den Spaß gemacht, eine vollständig auf LLM basierte &#8222;Journalistin&#8220; zu generieren, welche die Münchner Rathaus-Umschau kommentiert. Das ist so eine Art Amtsblatt, dient aber primär der politischen Kommunikation. Es wird über Stadtratsbeschlüsse, Termine, Ehrungen und Anfragen berichtet.</p>



<p class="wp-block-paragraph">Städtische Unternehmen verbreiten darüber auch ihre PR, egal ob Besucher beim Zoo, Ausbau des Fernwärmenetzes oder Baustellen bei der Tram.</p>



<p class="wp-block-paragraph">Werktäglich außer Samstag wird gegen Mittag die neueste Ausgabe als PDF und teilweise in HTML bereitgestellt. </p>



<p class="wp-block-paragraph">Für mein Projekt lade ich mir automatisiert das PDF, führe dann eine Texterkennung durch, da Meldungen städtischer Betriebe oft auch als Bild eingefügt werden, nicht als Text.</p>



<p class="wp-block-paragraph">Danach sende ich den kompletten Inhalt mit einem längeren Prompt an ein LLM (TNG DeepSeek Chimera), warte auf das Ergebnis und poste das dann auf einem Social Media Kanal.</p>



<p class="wp-block-paragraph">Da es politische Meldungen sind, erkennt die LLM manchmal nicht die wahren Absichten hinter bestimmten Anfragen, die nur vorgeblich für den Rad- und Fußverkehr sind, aber eigentlich neue Straßen und mehr Autoverkehr fordern. Manchmal ist es auch ungenau, was ich aber geschickt umgehe, dass nur sehr wenig kommentiert werden muss. Es ist Social Media und die Zeichenzahl beschränkt, da fällt es auch nicht immer so auf.</p>



<p class="wp-block-paragraph">Einzige technische Herausforderungen sind: Nicht fristgerechte Veröffentlichung des PDFs und Überlastung des LLM-Endpunktes (ich verwende ein Gratis-Modell bei <a href="https://openrouter.ai/">OpenRouter</a>, habe schließlich nichts zu verschenken).</p>



<figure class="wp-block-image size-large is-resized"><a href="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2026/02/grafik-2.png"><img fetchpriority="high" decoding="async" width="966" height="1024" src="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2026/02/grafik-2-966x1024.png" alt="" class="wp-image-3501" style="aspect-ratio:0.9433637892423242;width:552px;height:auto" srcset="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2026/02/grafik-2-966x1024.png 966w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2026/02/grafik-2-283x300.png 283w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2026/02/grafik-2-768x814.png 768w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2026/02/grafik-2.png 1342w" sizes="(max-width: 966px) 100vw, 966px" /></a></figure>



<figure class="wp-block-image size-large is-resized"><a href="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2026/02/grafik-3.png"><img decoding="async" width="1024" height="915" src="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2026/02/grafik-3-1024x915.png" alt="" class="wp-image-3502" style="aspect-ratio:1.1191291919306385;width:588px;height:auto" srcset="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2026/02/grafik-3-1024x915.png 1024w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2026/02/grafik-3-300x268.png 300w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2026/02/grafik-3-768x686.png 768w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2026/02/grafik-3.png 1444w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">Ich wundere mich ehrlich gesagt, dass Medienhäuser und aktivistische Vereine augenscheinlich noch nicht solche Systeme entwickelt haben. Die SZ hat z.B. neulich über eine Woche gebraucht ein Thema zu berichten, nachdem es in der RU stand.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Ich hatte den Code und für noch ein paar andere Tools als Open Source auf GitHub, bis mir die persönlichen aber anonyme Angriffe diverser Mastodon.social-Moderatoren auf den Sack gingen. Warum also Tools liefern für deren Plattform? Technisch gesehen läuft der Code lokal in meinem Proxmox-Cluster, den ich u.a. mit cinc.sh (früher Chef) manage. Seit Monaten habe ich nichts mehr geändert und es läuft einfach. Achja, den Code dafür habe ich mit OpenCode vibe-coded, aber das ist eine andere Geschichte.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2026/02/05/warum-ist-journalismus-so-schlecht-trotz-ki-llm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Die Corona-Tracing-App ist totaler Unfug</title>
		<link>https://blog.rolandmoriz.de/2020/05/06/die-corona-tracing-app-ist-totaler-unfug/</link>
					<comments>https://blog.rolandmoriz.de/2020/05/06/die-corona-tracing-app-ist-totaler-unfug/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Wed, 06 May 2020 14:01:26 +0000</pubDate>
				<category><![CDATA[Corona]]></category>
		<category><![CDATA[Journalismus]]></category>
		<category><![CDATA[Politik]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=2631</guid>

					<description><![CDATA[Mit Blick auf Südkorea wird in den Medien von Journalisten, Epidemiologen und Politikern seit Wochen eine &#8222;Tracing-App&#8220; forciert, die sich Leute auf ihren Smartphones installieren&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Mit Blick auf Südkorea wird in den Medien von Journalisten, Epidemiologen und Politikern seit Wochen eine &#8222;Tracing-App&#8220; forciert, die sich Leute auf ihren Smartphones installieren sollen um dann eine Nachricht zu erhalten, wenn eine Kontaktperson zwischenzeitlich positiv auf COVID-19 getestet worden ist.</p>



<p class="wp-block-paragraph">Die Idee klingt gut und notwendig: Infizierte sind bereits einen Tag vor Symptombeginn ansteckend und zudem sind viele Infektionen asymptomatisch. Stellen sich dann Beschwerden ein und kommt es zu einem Test, sind weitere kostbare Tage vergangen und weitere Menschen infiziert. Die Gesundheitsämter können dann nur noch sehr beschränkt mögliche Kontakte nach einem Interview nachverfolgen und so zur Quarantäne zwingen.</p>



<p class="wp-block-paragraph">Der nun kommunizierte Plan in der Öffentlichkeit ist es, dass eine App per Bluetooth laufend eine eindeutige ID aussendet, die dann von anderen Nutzern mit ihren Smartphones und kompatiblen Apps empfangen und gespeichert werden (mit zusätzlichen Attributen wie Dauer und Signalstärke) &#8211; und vice versa. So entsteht auf den Geräte ein Logbuch der &#8222;bekannten&#8220; Kontakte. </p>



<p class="wp-block-paragraph">Wird eine Person als positiv getestet, so würde diese dann ihre App-ID an das Gesundheitsamt melden, welches dann die ID an einen zentralen Dienst/Service weitergibt, wo sie dann abgerufen werden kann. Das bedeutet, dass die IDs aller positiven Nutzer zentral für alle User zugänglich sein würde ODER jede Nutzer bzw Aapp für jede einzelne &#8222;gesehene&#8220; ID regelmäßig eine Abfrage an einen zentralen Server durchführen muss (was effektiv eine zentrale Speicherung aller Daten und Kontakte gleich käme).</p>



<p class="wp-block-paragraph">All das sind datenschutzrechtliche und ethische Probleme (&#8222;Smartphone-App-Zwang&#8220;). Aber nicht das eigentliche Problem.</p>



<p class="wp-block-paragraph">Das eigentliche Problem ist, dass Bluetooth schlicht dafür nicht geeignet ist. </p>



<p class="wp-block-paragraph">Bluetooth wurde vor über 20 Jahren dazu entwickelt, Mäuse, Tastaturen, Headsets per Funk anzubinden. Ohne Triangulationsmöglichkeit gibt es keine verlässliche Möglichkeit, den Abstand oder andere sinnvolle Kriterien zu ermitteln, die eine Infektionswahrscheinlichkeit ergeben würde.</p>



<p class="wp-block-paragraph">Bluetooth bzw. die Signalstärke oder Laufzeit, die Dauer der Verbindung (Sichtbarkeit) ist absolut unzuverlässig. Innerhalb einer Straßenbahn, S-Bahn, Supermarktes, Möbelhauses gäbe es vergleichsweise viele Menschen und sicherlich auch Infizierte, die dann sofort alle anderen in Quarantäne zwingen würde. Egal ob sie 30cm oder 15m Abstand eingehalten haben. Oder ob es an der frischen Luft war, wo aerosole Übertragungen unwahrscheinlicher sind als in einem stickigen Aufzug, oder dazwischen eine Plexiglaswand stand (Kassierer).</p>



<p class="wp-block-paragraph">Das System schreit nach einer maximalen Anzahl an <em>false positives</em> welches zu einer Art Quarantäne-Lotterie mit hoher &#8222;Gewinnwahrscheinlichkeit&#8220; führen wird.</p>



<p class="wp-block-paragraph">BM Spahn hat in einem n-tv Interview heute auch eingestanden, dass in Südkorea GPS verwendet würde und nicht Bluetooth. Es findet also keine Kommunikation zwischen Smartphones statt, sondern die aktuelle Position wird sekündlich erfasst und auf einen Server hochgeladen, quasi eine elektronische Fussfessel. </p>



<p class="wp-block-paragraph">Doch auch hier stellt sich die Frage, wie genau GPS bei einem Smartphone wirklich ist. Ich gehe zB ab und zu eine Route im Olympiapark spazieren und logge die Strecke mit 3 Apps auf meinem iPhone 8. Mobilfunk ist aktiv somit auch AGPS für einen schnellen Fix (initiale Bestimmung). Trotzdessen gibt es auf der Strecke zeitweise massive Abweichungen, teilweise 20m, zu Google Maps oder OpenStreetMap. </p>



<p class="wp-block-paragraph">Natürlich landet das Smartphone in der Jacken oder Hosentasche und hat somit nur einen sehr eingeschränkten GPS-Empfang, den das Betriebssytem durch Gyrosensoren und über AGPS laufend korrigieren muss. Aber 20m mitten in der Stadt sind viel zu große Messfehler für eine zielführende Risikoeinschätzung.</p>



<p class="wp-block-paragraph">Zynisch kann man jetzt darauf hoffen, dass die als Technologieversager bekannte T-Systems zusammen mit SAP nicht in der Lage sein werden, solch eine Lösung zu entwickeln. Zumal sie vollständig abhängig vom Unterbau von Apple und Google sind, der gerade erst noch geschaffen wird. Die Plattformen sind vollständig in der Hand von Apple und Google, so kann zB keine iOS-App direkt mit dem GPS-Modul &#8222;sprechen&#8220;, auch die Bluetooth-Verbindung steht nur indirekt bereit.</p>



<p class="wp-block-paragraph">Das beste Szenario ist, dass man in Deutschland auf sehr wenige Neuinfektionen kommt und die App dann massive regionale False-Positives erzeugt. Vergleichbar mit einer Unwetterwarnung des Wetterdienstes über Starkwinde und &#8222;umstürzende Bäume&#8220; &#8211; zwar trifft es immer nur wenige, die Warnung geht aber an alle raus. Wer schlau ist, wird die Risiken abwägen und zuhause bleiben &#8211; zB in Quarantäne.</p>



<p class="wp-block-paragraph">Dafür das &#8222;Geschiss&#8220; einer Tracing-App etablieren zu müssen, erinnert fast schon an Homöopathie.</p>



<p class="wp-block-paragraph">Es zeigt aber auch, wie wenig Grundlagenwissen vorhanden ist. </p>



<p class="wp-block-paragraph">Keiner kann programmieren, keiner hat jemals eine App entwickelt. Alle sind wir abhängig von Dritten, müssen uns an &#8222;Ideen&#8220; Dritter klammern oder fallen auf diese rein.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Siehe Auch:</p>



<p class="wp-block-paragraph"><a href="https://www.schneier.com/blog/archives/2020/05/me_on_covad-19_.html">https://www.schneier.com/blog/archives/2020/05/me_on_covad-19_.html</a></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2020/05/06/die-corona-tracing-app-ist-totaler-unfug/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>IT-Komplexitätsverkäufer &#038; Convenience-Produkte</title>
		<link>https://blog.rolandmoriz.de/2020/02/26/it-komplexitaetsverkaeufer-convenience-produkte/</link>
					<comments>https://blog.rolandmoriz.de/2020/02/26/it-komplexitaetsverkaeufer-convenience-produkte/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Wed, 26 Feb 2020 16:04:00 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Wirtschaft]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=2626</guid>

					<description><![CDATA[Beginnen wir mal mit einem sehr einfachen Bild: Niemand braucht hunderte Arten von z.B. Supermarkt-Schokolade und Convenience-Lebensmitteln, trotzdem sind die Läden voll damit, verdrängen oft&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Beginnen wir mal mit einem sehr einfachen Bild: </p>



<p class="wp-block-paragraph">Niemand <em>braucht</em> hunderte Arten von z.B. Supermarkt-Schokolade und Convenience-Lebensmitteln, trotzdem sind die Läden voll damit, verdrängen oft &#8222;ehrliche&#8220; Produkte ohne Zusätze. Ähnliches bei anderen Suchtmitteln, wie Alkohol oder (noch immer) Tabak. Diese Produkte sind überwiegend für Konsumenten schädlich, trotzdem werden sie prominent und in großen Variation produziert, beworben, verkauft und konsumiert. </p>



<p class="wp-block-paragraph">Eine verkürzte Begründung würde lauten: <strong>&#8222;Der Markt/die Kunden verlangen dies!&#8220;. </strong></p>



<p class="wp-block-paragraph">Aber warum brauche ich es?</p>



<hr class="wp-block-separator"/>



<p class="wp-block-paragraph">Ähnlich ist es in der IT: Seit ich mich damit beschäftige, werden laufend neue Frameworks und Abstraktionsebenen veröffentlicht, die &#8211; zumindest früher &#8211; komplexe und schwierige &#8222;low level&#8220;-Programmierung durch einfacher zu nutzende Methoden und Schnittstellen ermöglicht haben. Dazu kam das entsprechende Tooling (IDEs, visuelle Interface-Builder etc) &#8211; man konnte viel schneller Produkte fertigstellen und veröffentlichen und damit Geld verdienen.</p>



<p class="wp-block-paragraph">Heute ist es aber nicht nur komplexer in der Entwicklung sondern auch ohne messbare Vorteile für viele Nutzer. Man muss man für verschiedene Plattformen und Bereiche inkompatible Technologien einsetzen oder sich mit &#8222;eher schlechten&#8220; plattformübergreifenden Frameworks begnügen. Kunden sind auch in Silos gefangen (Android vs iOS vs Web vs Desktop-Native).</p>



<p class="wp-block-paragraph">Der Ausdruck &#8222;Balkanisierung&#8220;, wenn auch politisch inkorrekt, trifft die Situation recht gut: Eine Explosion, die aus wenigen universellen Technologien, Sprachen, Frameworks, Bibliotheken einer unbeherrschbare Vielfalt gemacht hat, die niemand überblicken kann und für die niemand sagen kann, ob sie in 2-3 Jahren noch existieren und ein &#8222;sicheres&#8220; Investment sind.</p>



<p class="wp-block-paragraph">Immer erst später erkennt man, wie nah <em>früher</em> der Markt/das Ökosystem am <em>produktiven</em> Optimum waren und wie viel Schrott und qualitativ schlechte Zusatzstoffe mittlerweile hinzugekommen und nicht mehr wegzudenken sind &#8211; ausser durch bewussten Verzicht!</p>



<p class="wp-block-paragraph">Kommt ein neues Projekt mit dem Anspruch<em> &#8222;eine gemeinsame Grundlage&#8220;</em> zu legen, dann passiert jedenfalls genau das nicht. Der Markt wird gespalten und ein neues Silo voller Eigenheiten und Komplexitäten aufgebaut. Einerseits braucht es dann &#8222;weitere Spezialisten&#8220;, aber die Produktivität pro Entwickler sinkt dramatisch, denn der Markt ist endlich d.h. Entwicklungs- und Betriebskosten steigen im Verhältnis zum Umsatz und es entsteht eine immer größer werdenen Markteintrittsbarriere für neue Produkte.</p>



<p class="wp-block-paragraph"><strong>Kakao-Innovation:</strong></p>



<p class="wp-block-paragraph"><em>Schokolade, Schokolade mit Nuss. </em></p>



<p class="wp-block-paragraph"><em>Schokolade mit Daim. </em></p>



<p class="wp-block-paragraph"><em>Schokolade mit OREO-Keksen. </em></p>



<p class="wp-block-paragraph"><em>Schokoladeneis!</em></p>



<p class="wp-block-paragraph"><em>Schokoladeneis mit Daim. </em></p>



<p class="wp-block-paragraph"><em>Schokoladeneis mit OREO. </em></p>



<p class="wp-block-paragraph"><em>Eis-Torte mit OREO, Daim, Schokolade, Kuchenteig, Salz und den besten Arteriengiften aus Palmöl und Milchpulver!</em></p>



<p class="wp-block-paragraph">Auch hier kann die passende Fabrik sicherlich unbeschränkt viele Produktvarianten produzieren, aber die Regalplätze in den Supermarktfiliale ist beschränkt, müssen oftmals sogar gekauft werden und dauerhaft einen Mindestumsatz bringen. Was nicht performt, wird ausgelistet. </p>



<p class="wp-block-paragraph">Man steht also im Supermarkt vor den Regalen und sieht nur noch populäre Fertigprodukte &#8211; auch frisches Gemüse ist nicht frisch sondern Tage alt und nährstoffarm, dafür &#8222;schön beleuchtet&#8220; um den Frische-Eindruck zu erwecken. Nur noch wenige Kunden können und wollen selbst kochen &#8211; ohne Maggi und Knorr.</p>



<p class="wp-block-paragraph">95% der Produkte sind versetzt mit ungesunden teilweise auch süchtig machenden aber zumindest prägenden Zusatzstoffen: viel Zucker, schlechte Fette, Einheits-Aromen (&#8222;Erdbeer-Geschmack&#8220;,  definiertem &#8222;Orangensaftkonzentrat&#8220;). Dazu ein durch Werbung und Kultur etabliertes Branding (Wer kannte Oreo vor 10 Jahren in Deutschland?).</p>



<p class="wp-block-paragraph">Während ein Schokoladenhersteller mit etwas Logistik und Automation problemlos 1000 verschiedene Sorten herstellen und am Markt &#8222;ausprobieren&#8220; kann, so kann das <em>ein </em>Entwickler oder Administrator nicht. Jeder Hype stellt für ihn ein Risiko dar: Lohnt sich die zeitaufwändige oft unbezahlte Einarbeitung, weil der Markt den Skill nachfragen wird? Oder verschwendet man seine Zeit mit einem Nischen-Silo? Wann sollte man &#8222;abspringen&#8220; von etablierten aber &#8222;uncool&#8220; gewordenen Dingen? Wie schlau ist es, sein Unternehmen oder seine Karriere auf 758 fremde nodejs packages aufzubauen?</p>



<p class="wp-block-paragraph">Manche konzentrieren sich &#8211; spät und nach mühsamer Entwöhnung/Entzug &#8211; bei Lidl auf Tiefkühl-Rosenkohl, Tiefkühl-Blumenkohl, Tiefkühl-Brokkoli und Tiefkühl-Gemüsemix (&#8222;OHNE ZUSATZSTOFFE&#8220;, Fette, Butter, Gewürze) &#8211; für läppische 1,60€ das Kilo. Direkt ab Ernte schockgefrostet, zuhause dampfgegart oder ehrlich mit etwas Käse und Salz überbacken.</p>



<p class="wp-block-paragraph">In der IT können manche noch oder wieder Probleme mit einfachen Mitteln lösen, mit Bash, Ruby, Python oder schlicht bedachter Arbeitsweise, die auf den Punkt ein Problem lösen und damit Geld verdient (&#8222;<a href="https://de.wikipedia.org/wiki/YAGNI">YAGNI</a>&#8222;). Durch Reverse-Engineering von bestehendem Code, Hinterfragen von Anforderungen und Auswertung von Nutzerfeedback.</p>



<p class="wp-block-paragraph">Wenig erstaunlich gibt es selten Jobs mit diesem Anforderungsprofil oder es handelt sich um ausbrennende &#8222;Feuerlösch-Jobs&#8220; ohne leistungsabhängige Vergütung: Menschen und Unternehmen verbrennen problemlos monatelang Ressourcen um dann mit sehr wenig Restbudget nach notwendigen &#8222;Rettungskräften&#8220; zu suchen, die Bestandssysteme oder Migrationen noch &#8222;retten&#8220; sollen.</p>



<p class="wp-block-paragraph">Der Fokus auf die eigentlichen Herausforderungen ist vollständig verloren gegangen.</p>



<p class="wp-block-paragraph">Letztlich sind wir Menschen &#8211; <strong>alle!</strong> &#8211; wunderbar in der Lage, uns selbst lange etwas vorzumachen. Jeder sich selbst gegenüber und gegenüber seinen Mitmenschen, Kollegen, Kunden. Wir ignorieren langfristige Nachteile, sehen bunte Produktverpackungen, fallen auf durch Konsum suggerierte Emotionen hinein (&#8222;Glück&#8220;, &#8222;Erfolg&#8220;, &#8222;Anerkennung&#8220;, &#8222;Lust&#8220;, &#8222;Respekt&#8220;, &#8222;selber Stack wie Google!&#8220;) und sind nur selten bereit oder überhaupt fähig, uns davon wieder zu lösen. </p>



<p class="wp-block-paragraph">Wir unterschätzen Risiken, wenn andere den gleichen Unfug machen, überschätzen Risiken, wenn wir selbst etwas selbst umsetzen. Wir wollen keine Verantwortung übernehmen. Wir schätzen funktionierende Bestandslösungen zu schlecht ein und überschätzen Werbeversprechen von Anbietern, die erstaunlicherweise mit der &#8222;Lösung&#8220; überhaupt kein Geld verdienen wollen (was schlicht gelogen und eine Falle ist).</p>



<p class="wp-block-paragraph">Wir sind extrem schlecht darin zu beurteilen, was ein &#8222;Fortschritt für uns&#8220; sein kann und was ein Rückschritt sein wird (der dafür anderen Playern dauerhaft Mehreinnahmen durch ein neues Abhängigkeitsverhältnis beschert). Wir fallen immer wieder auf &#8222;einfache Lösungen&#8220; herein &#8211; auch politisch.</p>



<p class="wp-block-paragraph">In der Wissenschaft zählen Fakten: Definierte Aufbauten, Durchführungen und ihre gemessenen Auswirkungen gegenüber einer Kontrollgruppe &#8211; daraus werden dann Schlüsse gezogen. In der IT-Branche sieht man allenfalls A/B-Tests zur Konversationsoptimierung im Bereich SEM/E-Commerce, selbst wenn mittlerweile alle möglichen Metriken zentral erfasst werden und mit zB Grafana oder Datadog auch schön bunt aber oftmals nutzlos visualisiert werden. Konkurrierende Experimente werden selten definiert. Und was ist das Ziel? Und was ist nochmal die Ausgangslage? Wie misst man Komplexität? In welchem Verhältnis steht Komplexität zu Laufzeitkosten?</p>



<p class="wp-block-paragraph">In der IT transplantieren wir deshalb laufend Bestandssysteme ohne konkrete Analyse der bestehenden <em>Beschwerden</em> oder der Lebensweise, die möglicherweise die Ursache der Probleme sind. Ob Wechsel zu Microservices, Migration &#8222;in die Cloud&#8220;/proprietäre AWS-Services, Containerization, Kubernetes &#8211; alles schön und toll, aber nicht wenn man die Ursache des möglicherweise suboptimalen Bestands-Zustandes nicht korrekt analysiert hat und die Probleme dann mit hoher Wahrscheinlichkeit wieder erleiden wird. Niemand will es, aber es passiert laufend.</p>



<p class="wp-block-paragraph">Viele Menschen saufen, fressen und rauchen — nicht, weil sie Durst oder Hunger leiden, oder &#8222;etwas anzünden&#8220; wollen, auch nicht weil sie die Gefahren und Folgen nicht kennen, sondern weil sie damit <em>andere Bedürfnisse </em>zu stillen versuchen und/oder abhängig geworden sind. Natürlich gelingt das nicht und sie ruinieren sich und manchmal auch Unternehmen.</p>



<p class="wp-block-paragraph">Ein ähnliches Verhalten sehe ich seit Jahren in der IT. </p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2020/02/26/it-komplexitaetsverkaeufer-convenience-produkte/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Die Zukunft der Informationstechnologie</title>
		<link>https://blog.rolandmoriz.de/2020/01/28/die-zukunft-der-informationstechnologie/</link>
					<comments>https://blog.rolandmoriz.de/2020/01/28/die-zukunft-der-informationstechnologie/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Tue, 28 Jan 2020 12:31:24 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Dies & Das]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Politik]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Startup]]></category>
		<category><![CDATA[Wirtschaft]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=2615</guid>

					<description><![CDATA[Ich möchte hier mal meine Einschätzung für die nächsten 10 Jahre unserer Branche abgeben, vielleicht liege ich richtig? In den 2010er Jahren haben wir den&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ich möchte hier mal meine Einschätzung für die nächsten 10 Jahre unserer Branche abgeben, vielleicht liege ich richtig?</p>



<p class="wp-block-paragraph">In den 2010er Jahren haben wir den massiven Wechsel hin zu Mobile Devices und einer massiven Zunahme der digitalen Unmündigkeit gesehen. Während die Jahrzehnte zuvor ein Universalrechner in verschiedenen Formen und Leistungsklassen eine vielschichtige und auch &#8222;produktive&#8220; Nutzung erlaubt und viele Menschen vermögend gemacht hat, so haben heute immer weniger Menschen einen Desktop-PC oder ein Notebook. Oder die leiseste Ahnung, wie man damit umgeht oder gar selbst &#8222;Werte schafft&#8220;.</p>



<p class="wp-block-paragraph">Die Masse der Menschen verfügt über Smartphones, entweder mit Android oder iOS-Betriebssystem. Beide Plattformen sind für den Nutzer &#8222;locked&#8220;, einzig die meist kostenpflichtige Beschaffung von Apps und Medien, insbesondere in Abo-Modellen (Spotify, Netflix) eröffnet einen gewissen Konsum-Freiraum.</p>



<p class="wp-block-paragraph">Die Entwicklung von Mobile-Anwendungen ist so gut wie nicht direkt auf Mobilgeräten möglich, erfordert also leistungsfähige &#8222;Universal-Rechner&#8220; und entsprechende Kenntnisse (Entwicklung/Konsum-Asymmetrie). Dabei sind die Frameworks und auch die Vermarktungsregeln (Inhalte, Preisgestaltung, Gebühren) strikt von den Anbietern vorgegeben, entweder Apple&#8217;s App-Store oder Google Play. Andere Märkte spielen keine nennenswerte Rolle.</p>



<p class="wp-block-paragraph">Mit einem Smartphone kann man allerdings als Nutzer so gut wie nicht Werte schaffen. Klar, als Dienstleister, Hausmeister, Klempner oder Uber- oder Lieferando-Fahrer ist man per Telefon oder App &#8222;erreichbar&#8220; und kann sich darüber als Tagelöhner betätigen und kurzzeitig manche lukrative Markt-Anomalien ausnutzen (&#8222;Surge-Pricing&#8220; etc.). Die Masse wird aber nie aus diesem Status herausfinden und daher schlechter gestellt sein, als einfache angestellte Fabrikarbeiter von vor 20-30 Jahren.</p>



<p class="wp-block-paragraph">Aber auch die &#8222;digitalen Eliten&#8220; unseres Landes werden noch massiv darunter leiden. Denn der Markt von PCs und Hardware schrumpft, sodass es auch für uns immer schwieriger wird, &#8222;neutrale&#8220; Hardwarekomponenten zu beschaffen um damit Geld zu verdienen.</p>



<p class="wp-block-paragraph">Der Mega-Trend Cloud-Computing sorgt auch auf der &#8222;professionellen&#8220; Ebene dafür, dass leistungsfähige Hardware (Prozessoren, NVMe, i/O-Interfaces wie Netzwerkkarten, Router) zuerst bei den großen Abnehmern landen wird, also den drei großen Cloud-Anbietern und ggf. noch Facebook, Apple. Dazu muss man auch sehen, dass die komplette x86 Architektur im Mobilbereich durch ARM abgelöst wurde und hier kein Ökosystem existiert, wo sich Nutzer bausteinartig bedienen können. </p>



<p class="wp-block-paragraph">Es gibt hier keine gesockelten CPUs, Mainboards oder Erweiterungskarten, die man von unterschiedlichen Herstellern, Preis- und Leistungsklassen auswählen könnte. Man muss hier entweder auf bereits fertig angebotene Komplett-Systeme (System-on-a-Chip) ausweichen. Letztere sind aber insbesondere im low-end-Segment verfügbar, wo Hersteller mit in die Jahre gekommenen Designs noch eine Einnahmequelle erschliessen (siehe Broadcom/RPi, Texas Instruments).</p>



<p class="wp-block-paragraph">Derweil haben Apple und Amazon eigene Chip-Entwicklungsunternehmen und auch Facebook und Google investieren hier sehr viel in proprietäre Hardware, die (noch) extern nach Maß exklusiv für sie gefertigt wird.</p>



<p class="wp-block-paragraph">Schauen wir in den Software-Bereich: In der von mir nicht erlebten Anfangszeit des Personal Computings war es üblich, sich Software selbst zu schreiben oder den Quellcode auszutauschen. Mit der Kommerzialisierung durch IBM, Apple und Microsoft, erlebten wir 25 Jahre Closed Source. Nun sieht es so aus, als ob Linux oder Open Source als Gegenpol doch noch gewonnen hätte: Android basiert auf Linux, Microsoft hat ein Linux-Subsystem umgesetzt, das sehr komfortabel für Nutzer ist. Auch macOS basiert auf Unix und immerhin noch zu einem Teil offenen &#8222;Userland&#8220;. Linux läuft auf allem, was mehr als ein paar Kilobyte Speicher hat.</p>



<p class="wp-block-paragraph">Aber ich denke wir haben gerade den Peak erlebt: OpenSource Software verrottet. Man merkt den Tools die 20-40 Jahre an, die sie auf dem Buckel haben. Sie sind zu einem großen Teil in C geschrieben und anfällig für alle möglichen Programmierfehler welche für Sicherheitslücken ausnutzbar sind. Evolution unter &#8222;laufendem Rad&#8220; ist so gut wie nicht möglich, jeder Wechsel wie bspw von SysVinit auf systemd begleitet von massiven Shitstorms, Bremsern und Innovationsfeinden.  Und auch der Linux-Kernel ist ein Monstrum geworden, das noch primär von Linus Torvalds im Zaum gehalten wird.</p>



<p class="wp-block-paragraph">Von alleine findet keine Innovation, keine Modernisierung statt. Ein Großteil der quelloffenen Software und natürlich der Kernel-Treiber stammt von Unternehmen oder wird von diesen gewartet/gefixt, die entweder Hardware verkaufen oder selbst eine kommerzielle Linux-Distribution anbieten und sich dafür von Großkunden bezahlen lassen: Wie zum Beispiel RedHat. RedHat wurde letztes Jahr von IBM übernommen und ist nun Teil eines Konzerns, der primär mit Consulting und &#8222;Lock-In&#8220; im Enterprise-Bereich Geld verdient. Das &#8222;Zurückgeben&#8220; an die Community oder die Akquise von &#8222;kleineren Mittelstandskunden&#8220; spielt also noch weniger eine Rolle, als bei RedHat zuvor. Auch hier ist ein Switch zu einem Plattformmodell sichtbar, d.h. den &#8222;besten&#8220; Support gibt es nur noch für Plattform/Cloud-Kunden und nicht mehr für On-Premise-Installationen auf Kundenhardware am Standord des Kunden oder seines Rechenzentrums.</p>



<p class="wp-block-paragraph">Fassen wir nun die Entwicklungen aller drei Bereiche zusammen, also Hardware, Software, Cloud-Computing, dann werden wir Ende des Jahrzehntes 2020 keine Enterprise-fähige Hardware mehr am Markt mehr kaufen können. Die einzige Option wird eine in der Cloud bereitgestellte Umgebung sein, mich hochspezialisierter, proprietärer Hardware. Sowohl für allgemeine Berechnungen wie auch bestimmte gehypte Anwendungsfälle wie Machine Learning. Diese Lösungen werden mindestens um den Faktor 3 besser performen, als alles, was man sich &#8222;neutral&#8220; am Markt noch zusammenkaufen können wird.</p>



<p class="wp-block-paragraph">Daran wird auch RISC-V nichts ändern, eine freie Prozessor-Architektur welche im Gegensatz zu ARM keinen kommerziellen Hintergrund hat sondern als Stiftung organisiert ist. Auch hier werden sich die bereits großen Silicon-Vendors austoben und eigene Produkte und Plattformen entwickeln können. Auch hier wird eine große Abnahmemenge nur erreicht, wenn Cloud-Anbieter mit einsteigen oder gleich selbst die Chipentwicklung übernehmen und daraus fertige Services anbieten.</p>



<p class="wp-block-paragraph">Was bleiben wird, sind vergleichsweise abgespeckte PCs/Macs, die ausreichend dimensioniert sind um Anwendung für die Cloud zu entwicklen, am besten durch Container und Containerumgebungen vollständig von der darunterliegenden Hardware (und teilweise auch Software) entkoppelt. Sie werden nicht mehr zu Betrieb eigener Anwendungen geeignet sein, entweder wegen der schlechten Performanz oder der schlechten Energieeffizienz. </p>



<p class="wp-block-paragraph">Spätestens in der zweiten Hälfte der 2020er werden wir dann die Aufgabe dieser &#8222;Kompatibilitätsschicht&#8220; sehen (Container, Kubernetes) und einen Switch zur &#8222;nativen&#8220; Entwicklung auf exakt einen Cloudanbieter, welche dann lokal wirklich nur noch in langsamen Emulatoren testbar sein wird, vergleichbar mit der heutigen Entwicklung für Smartphones.</p>



<p class="wp-block-paragraph">Der Wechsel wird, nicht ganz unrichtig, als Fortschritt gefeiert werden, weil damit der &#8222;alte Zopf&#8220; des x86ers und eines Monokernels wie Linux abgeschnitten werden kann. Wer braucht schon Treiber für Disketten, CD-Laufwerke, Scanner oder Grafikkarten. In der Cloud ist alles schneller und ohne einmalige Hardware-Ausgaben realisierbar…</p>



<p class="wp-block-paragraph">Wirtschaftlich ist das die vollständige Übernahme und Kannibalisierung der bestehenden IT durch 3-4 in Frage kommende Konzerne. Sie alle haben ursprünglich ihr Geld woanders verdient und tun es auch heute <em>noch</em>: Google mit Werbung, Microsoft mit Software und Amazon mit E-Commerce. Sie alle haben erkannt, dass es eine weitaus lukrativere und &#8211; für sie &#8211; zukunftssichere Möglichkeit gibt, Geld zu verdienen. Der perfekte Vendor-Lock-In, wie es wohl vor 50 Jahren bei IBM und vielleicht bei Nixdorf war. Die Symbiose aus Hardware und Software als Service. In einem begrenzten Maßstab (ERP und Services darum) ist das bei SAP aktuell ganz gut zu sehen, aber ob die SAP im Kampf um die beste Hardware+Betriebssysteme mithalten wird können, halte ich für fragwürdig. Bisher kauft man zu und diese Zulieferer werden massiv unter Google, Microsoft und Amazon leiden.</p>



<p class="wp-block-paragraph">Bestenfalls naiv ist auch eine von vielen meiner Kollegen vorgetragene Beschwichtigung, dass im Kampf der &#8222;Giganten der Gegenwart&#8220; gegen die &#8222;Giganten der Vergangenheit&#8220; (quasi alle DAX und S&amp;P 500-Unternehmen) zuerst die großen Unternehmen angefixt und dann gemolken/geschlachtet werden. Über die Zeit wir auch hier eine Sättigung einsetzen und auch jedes kleine, aber erfolgreiche Startup (oder Mittelständler) wird sich früher oder später &#8222;ergeben&#8220; müssen: Es gibt keine neutralen Ressourcen mehr, sodass eine Preiserhöhung des Cloud-Providers, eine strategische Leistungseinschränkung oder ein anderer &#8222;freundliche Wink mit dem Zaunpfahl&#8220; keinen Verhandlungsspielraum für angemessene Exits mehr zulassen werden: Entweder der gewählte Cloud-Anbieter kann das Startup für einen sehr guten Kurs übernehmen, oder er wird es durch Kopie oder Preisgestaltung zerstören. So wie man es Microsoft in den 1990ern vorgeworfen hat, nur eben 1000x brutaler.</p>



<p class="wp-block-paragraph">Optimistischere Menschen würde nun an die Eigenverantwortung appellieren, an &#8222;den Ruck&#8220; der durch die Gesellschaft und Wirtschaft gehen müsse, sich nicht in dieser Zwickmühle fangen zu lassen. </p>



<p class="wp-block-paragraph">Oder an eine Intervention der Politik oder Kartellämter. </p>



<p class="wp-block-paragraph">Aber letztlich kann das den Wandel nicht aufhalten, nur verlangsamen. Alternativen müssten her, aber wer soll das tun? Und warum? Einerseits wären Unsummen an Risikokapital nötig und andererseits nochmal: Wer könnte es überhaupt? Deutsche Hochschulen und hier ansässige Unternehmen sind abgeschlagen, selbst bei dem Thema RISC-V ist meines Wissens nur die Hochschule München (FH) interessiert. Es fehlt die Kompetenz, das Personal, die wirtschaftliche Denkweise. Jede weitere Fördermillion wird und würde vollständig und ergebnisarm versenkt werden. </p>



<p class="wp-block-paragraph">Und wer geht freiwillig selbst ein wirtschaftliches Risiko ein, wenn im Falle eines &#8222;Lottogewinns&#8220; dann auch noch die erzielten Gewinne brutal zu versteuern wären? Lieber lässt man sich wie ein Frosch im Topf erwärmen und versucht sich über die Zeit zu retten (oder den bis dahin noch aufgebauten Wohlstand in ein anderes Segment oder Region zu verschieben).</p>



<p class="wp-block-paragraph">Wir leben 2020 in einem Land, bei denen nicht nur die Enduser sondern auch die Administratoren und Entwickler zu einem Großteil längst überfordert (oder inkompetent) sind, wie man aus den &#8222;Emotet&#8220;-Infektionen, der unfassbar stümperhaften Wartung zB der IT in Berliner Gerichten (Kammergericht), dem Umgang mit dem Citrix-Gau (&#8222;Shitrix&#8220;, CVE-2019-19781) oder der naiven Auslagerung von Diensten wie Mail oder eben &#8222;General Cloud-Computing&#8220; an US-Konzerne sehen kann. So war es 2010 und so war es 2000. Es hat keine messbare Steigerung gegeben, kein Ruck, kein &#8222;Gas geben&#8220;. </p>



<p class="wp-block-paragraph">Wir haben bisher mindestens 20 Jahre verloren und werden in diesem Jahrzehnt weitere 10 Jahre verlieren.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>Update 2021-02-25:</strong></p>



<p class="wp-block-paragraph"><a href="https://cacm.acm.org/magazines/2021/3/250710-the-decline-of-computers-as-a-general-purpose-technology/fulltext">Im Journal der ACM ist ein spannender Artikel erschienen.</a></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2020/01/28/die-zukunft-der-informationstechnologie/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>RGB-LED-Matrix-Panels</title>
		<link>https://blog.rolandmoriz.de/2019/10/05/rgb-led-matrix-panels/</link>
					<comments>https://blog.rolandmoriz.de/2019/10/05/rgb-led-matrix-panels/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Sat, 05 Oct 2019 00:45:53 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Hacksport]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=2605</guid>

					<description><![CDATA[RGB LED-Panels sind omnipräsent im Werbebereich, jedes Fussballstadion ist mit tausenden Panels vollgepflastert so wie auch viele Städte rund um den Globus mit Leuchtreklamen auf&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">RGB LED-Panels sind omnipräsent im Werbebereich, jedes Fussballstadion ist mit tausenden Panels vollgepflastert so wie auch viele Städte rund um den Globus mit Leuchtreklamen auf Basis solcher Matrix-Module. Längst hat sich ein defacto-Standard etabliert, sodass nur noch bestimmte Attribute wie Helligkeit, Langlebigkeit und Wetterfestigkeit entscheidend sind.  Man schraubt die Module einfach in Ketten und Reihen aneinander, regelt die Stromversorgung und organisiert sich eine passende Controller-Lösung (hier wird abgezockt).</p>



<p class="wp-block-paragraph">Günstige Panels bekommt man aber auch einzeln in China nachgeschmissen. So zum Beispiel P10-Elemente (10mm Abstand zwischen den LEDs) im Format 32&#215;16 Pixel für ca 13€ inklusive Versand und Steuern (als ob) bei AliExpress.</p>



<p class="wp-block-paragraph">Dazu einfach die <a href="https://github.com/hzeller/rpi-rgb-led-matrix/">OpenSource-Software des Google-Mitarbeites Henner Zeller verwenden</a> auf einem 10€ Raspberry Pi  Zero verwenden und für die Stromversorgung ein ATX-Netzteil recyclen. Done.</p>



<figure class="wp-block-image"><img decoding="async" width="1024" height="768" src="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/10/IMG_3466-1024x768.jpg" alt="" class="wp-image-2606" srcset="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/10/IMG_3466-1024x768.jpg 1024w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/10/IMG_3466-300x225.jpg 300w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/10/IMG_3466-768x576.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="526" src="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/10/IMG_3450-1024x526.jpg" alt="" class="wp-image-2607" srcset="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/10/IMG_3450-1024x526.jpg 1024w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/10/IMG_3450-300x154.jpg 300w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/10/IMG_3450-768x394.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="522" src="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/10/IMG_3451-1024x522.jpg" alt="" class="wp-image-2610" srcset="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/10/IMG_3451-1024x522.jpg 1024w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/10/IMG_3451-300x153.jpg 300w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/10/IMG_3451-768x392.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-video"><video height="720" style="aspect-ratio: 1280 / 720;" width="1280" controls src="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/10/720p-3.mov"></video></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/10/05/rgb-led-matrix-panels/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/10/720p-3.mov" length="23399224" type="video/quicktime" />

			</item>
		<item>
		<title>IT-Sicherheit in Deutschland</title>
		<link>https://blog.rolandmoriz.de/2019/03/26/it-sicherheit-in-deutschland/</link>
					<comments>https://blog.rolandmoriz.de/2019/03/26/it-sicherheit-in-deutschland/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Tue, 26 Mar 2019 18:23:06 +0000</pubDate>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=2427</guid>

					<description><![CDATA[In den letzten Tagen habe ich mich beruflich und privat wieder mit IT-Sicherheit beschäftigt. Hierbei habe ich privat nach offenen ElasticSearch- und Kibana-Instanzen sowie banalen&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In den letzten Tagen habe ich mich beruflich und privat wieder mit IT-Sicherheit beschäftigt. Hierbei habe ich privat nach offenen ElasticSearch- und Kibana-Instanzen sowie banalen Netzwerk-Druckern gesucht. Dabei habe ich mich auf die Datenbank Shodan verlassen und nicht selbst aktiv gescannt.</p>



<p class="wp-block-paragraph">Das Ergebnis war insofern frustrierend, weil ich doch einige offene und fehlkonfigurierte Systeme fand. Manche offenbarten keine vertraulichen Daten, aber dafür den kompletten, maschinenlesbaren Katalog ihrer Produkte. Andere erfassten auch sämtliche Kundenattribute wie Anschrift, Handynummern, Geburtsdaten in ElasticSearch &#8211; entweder weil ElasticSearch als Suchmaschine eingesetzt wird oder im Rahmen einer Log-Aggregierung (z.B. mit Logstash und dem Frontend Kibana).</p>



<p class="wp-block-paragraph">Ich habe alle betroffenen Unternehmen informiert (darunter auch ein großes, altes, renomiertes Schweizer Informatik-Unternehmen, das für seine insbesondere bei Kulturbetrieben in Frankreich verbreitete Ticketing-Anwendung Kundendaten im Rahmen eines Logs der Bonitätsabfrage &#8222;veröffentlicht&#8220; &#8211; immerhin Klarnamen und Geburtsdaten)</p>



<span id="more-2427"></span>



<p class="wp-block-paragraph">Nur wenige haben sich zurückgemeldet oder gar bedankt. Ich hoffe trotzdem, dass man sich überall Gedanken über die IT-Sicherheit macht und zu blauäugige Cloud-Deployments in Zukunft unterlässt. In mindestens zwei Fällen waren Altsysteme offen für die es &#8222;keine Mitarbeiter&#8220; mehr gab. In einem Falle konnte innerhalb des Unternehmens aus den Niederlanden ein Mitarbeiter die Altsyteme offline nehmen, in einem anderen Falle eines deutschen Fachverlages half nicht einmal eine Meldung an den Abuse-Kontakt des Hosting-Providers (QSC) um betroffene (und augenscheinlich schon von Dritten kompromittierten Systeme) offline zu nehmen.</p>



<p class="wp-block-paragraph">Ich bin dann dazu übergegangen, diese Systeme und offene Systeme ohne Daten oder offensichtlich seit Monaten laufende &#8222;Test&#8220;-Systeme in einer Liste zu erfassen und diese demm BSI bzw. CERT-Bund mit Bitte um Eskalation/Kommunikation zukommen lassen.<a href="https://www.bsi.bund.de/DE/Themen/Cyber-Sicherheit/Aktivitaeten/CERT-Bund/CERT-Reports/HOWTOs/Offene-Elasticsearch-Server/Offene-Elasticsearch-Server_node.htmla"> Das BSI hatte schon vor fast 2 Jahren vor den Gefahren ungesicherter ElasticSearch-Instanzen gewarnt, aber diese Warnung wurde und wird leider ignoriert.</a></p>



<p class="wp-block-paragraph">Weiterhin kann ich meine Recherchen nicht monetarisieren, d.h. offene Systeme zu finden unterhält mich zwar, aber den oft inkompetenten und undankbaren Admins hinterherzulaufen ist nicht sinnvoll. Falls jemand eine plausible und ethische Möglichkeit einfällt, zumindest einen Unkosten-Obulus darüber zu realisieren, bitte ich um Rückmeldung. </p>



<p class="wp-block-paragraph">Weiterhin habe ich auch noch nach offenen, fehlerhaften Docker-Deployments gesucht, bei denen die REST-Schnittstelle ohne Zugangsprüfung im Netz erreichbar ist. Hierbei bin ich auf ein VMWare-Container-Host-Deployment der Uni Trondheim gestoßen, auf dem bereits Angreifer CPU-Mining-Software gestartet hatten. Die Nodes wurden binnen 24h nach Mail offline genommen, eine Antwort habe ich jedoch nicht erhalten. Auch einige deutsche Webagenturen und Privatpersonen haben ihre Konfiguration verbockt: <em>docker &#8211;tls -H &lt;ip>:2376 ps    </em></p>



<p class="wp-block-paragraph">Ein Trauerspiel ist jedoch die Tatsache, dass auch 2019 noch so viele offene Multifunktionsgeräte/Drucker im Netz ansprechbar sind (ports 515/lpd, 631/ipp, 9100/jetdirect). Zwar sind die meisten Geräte wenigstens mit einem &#8222;Administratorpasswort&#8220; gesichert (oder es waren schlicht andere Leute schneller…) doch anonyme Druckaufträge werden  anstandslos akzeptiert.</p>



<p class="wp-block-paragraph">So finden sich beispielsweise noch immer im IP-Netz der Universität Freiburg ca 60-80 offene Drucker mit teils abenteuerlicher Konfiguration (vermutlich Gebrauchtgeräte deren Altkonfiguration nicht gelöscht wurde). Richtig traurig finde ich hier die Tatsache, <a href="https://www.rz.uni-freiburg.de/frits/drucker">dass die zuständige RZ-Mitarbeiter eine inhaltlich sehr starke Website zu dem Thema veröffentlicht haben, aber nicht befugt oder willens sind, durch IP-Filter oder &#8222;aktive Verfolgung&#8220; der einzelnen Geräte den Sachverhalt in kurzer Zeit zu klären.</a></p>



<p class="wp-block-paragraph">Es ist zudem keine Neuheit, dass Sicherheit auch bedeutet, dass man sich &#8222;von innen&#8220; nicht ungeschützt aufstellen darf. Spätestens seit BYOD und insbesondere in Netzen mit vielen und wechselnden Nutzern (Uni, Konzernen, etc) muss man Segmentiere und aktiv die Netze managen. Also bei Malware-Wellen ggf. eine Weiterverbreitung durch infizierte Systeme verhindern, bestimmte Dienste und Ports sperren, ein IDS betreiben und Traffic-Anomalien auswerten.  Selbst in großen, dezentralen Organisationen gibt es keine Ausreden: Man muss die Aufgabe eben delegieren. </p>



<p class="wp-block-paragraph">Für so triviale Dinge wie offene Drucker kann man sich mit ein paar Zeilen Bash einen Cronjob schreiben, der täglich eine Übersicht der Übeltäter per Mail erstellt. Oder auf externe Services wie eben Shodan zurückgreifen und sich kostenpflichtig informieren lassen. Letztlich muss man dann aber auch die Durchführungsgewalt haben und durchgreifen können, sollten sich Unterbereiche oder Endnutzer (wiederholt) den Anweisungen widersetzen. </p>



<p class="wp-block-paragraph">Zum Schluss noch ein Abschnitt zu Obskuritäten: Uralt-Cisco-Router und Debian-Nodes mit 15-20 Jahre alter Firmware/Release. Während man insbesondere in Afrik noch ein paar steinalte Cisco-Router finden kann, so sind auch bei uns in Deutschland einige Legacy-Webhosting-Systeme  aus den frühen 0er-Jahren online, z.B. ein System mit in 2003 abgelaufenen TLS-Zertifikaten. Somit ist auch davon auszugehen, dass seitdem keine Wartung mehr stattgefunden hat, worauf auch uralte Software-Versionen bei SSH und &#8222;Confixx&#8220; hindeuten.</p>



<p class="wp-block-paragraph"><strong>TL;DR</strong></p>



<p class="wp-block-paragraph">Obwohl mittels Shodan.io offensichtliche Konfigurationsfehler und Verwundbarkeiten in kürzester Zeit entdeckt/monitort werden können,  sind noch immer verwundbare Systeme auffindbar. Hierzu reicht ein Browser und minimale Kenntnisse zur Ermittlung und &#8222;Exploitation&#8220; aus.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/03/26/it-sicherheit-in-deutschland/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tipps zum Einsatz von Jenkins CI</title>
		<link>https://blog.rolandmoriz.de/2019/02/15/tipps-zum-einsatz-von-jenkins-ci/</link>
					<comments>https://blog.rolandmoriz.de/2019/02/15/tipps-zum-einsatz-von-jenkins-ci/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Fri, 15 Feb 2019 12:00:26 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1794</guid>

					<description><![CDATA[Jenkins CI wird noch immer in vielen größeren Organisationen für alle mögliche Dinge eingesetzt und obwohl das immer wieder sehr oft in Tränen endet, werden&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Jenkins CI wird noch immer in vielen größeren Organisationen für alle mögliche Dinge eingesetzt und obwohl das immer wieder sehr oft in Tränen endet, werden Erfahrungen und Ratschläge anderer ignoriert. Damit nicht noch mehr Tränen vergossen werden, schreibe ich das jetzt hier mal für alle auf: <strong>Lernt gratis aus den Schmerzen anderer und vermeidet diese Probleme mit der einfachen Lektüre dieses Blogposts!&nbsp;</strong></p>



<h2 class="wp-block-heading">Muss es überhaupt Jenkins sein?</h2>



<p class="wp-block-paragraph">Jenkins war das erste Mainstream CI-Tool und ist bis heute mit großem Abstand das populärste Tool im In-House-Einsatz, also on-premise oder der selbst verwalteten Cloud. Es stammt aus der Hochzeit der JEE-Webanwendungen und ist dementsprechend komplex und voller Legacy-Code. Besonders erwähnenswerte No-Gos für den Einsatz in 2019 sind meiner Meinung nach:</p>



<span id="more-1794"></span>



<ul class="wp-block-list"><li>Jenkins lässt sich nicht über Konfigurationsdateien dynamisch konfigurieren, sondern lädt diese beim Start einmalig und hält sie dann in einer internen, proprietären Datenbank. Änderungen sind dann nur über eine funktional unvollständige und fehleranfällige API möglich, über das Web-Interface, oder durch Groovy-Scripting/Java-Plugins. Das hat auch zur Folge, dass man die Konfiguration nicht mit üblichen Tools versionieren oder per DevOps-Tooling der Wahl duplizieren/wiederherstellen kann, die eingebaute &#8222;Versionierung&#8220; einzelner Optionen (Jobs, Nodes) ist unvollständig und verfügt über keine remote API oder Exportfunktion. Würde Jenkins eine von aussen ansprechbare (no-)SQL-Datenbank nutzen, wären viele Probleme gelöst und eine Replikation/Failover möglich.</li><li>Das Jenkins Master/Slave-Modell ist antiquiert und extrem fehleranfällig. Agents werden zB auf den Slaves per SSH-Connection vom Master aus gestartet oder verbinden sich per JNLP mit dem Master. Bricht aber diese connection ab oder startet der Master neu, sind alle noch laufende Jobs und deren Ergebnisse verloren.</li><li>Jenkins verliert bei einem Neustart regelmäßig die Jobliste der noch auszuführenden Jobs. Das kann man z.B. beobachten, wenn man Jenkins Master als Docker-Container betreibt und dann zeitnah auch Dockerd neustartet. Jenkins löscht die Job-Persistierung noch bevor das System hochgefahren ist und ist auch nicht in der Lage, das passende Signal seitens Docker zum Herunterfahren wieder zur Persistierung zu nutzen. (Wie verwenden hier das offizielle Jenkins LTS Image).</li><li>Logging ist die Hölle. Granulare Loglevel sind nicht impementiert, eine Erhöhung des Loglevels auf &#8222;fine&#8220; sorgt für eine unfassbare Flut an belanglosen Meldungen, aber auch nicht zur mehr Informationen über das Verhalten von Jobs oder Slaves.</li><li>Jenkins, auch die kommerzielle Lösung mit Support, hat keine HA-Lösung am Start. Was als HA verkauft wird, ist eine lahme hot-standby-Spiegelung  auf DRBD-Level oder Network-Storage (z.B. NFS oder irgend einer kubernetes Storage-Lösung). Bei jedem &#8222;Schwenk&#8220; (Failover) zwischen den Instanzen gehen alle laufenden Jobs verloren (siehe oben). Der &#8222;offizielle Workaround&#8220; ist der Einsatz eines Plugins, dass fehlgeschlagene Jobs einfach neu startet. Was bei hunderten Jobs natürlich idiotisch ist, bei denen es laufend betrieblich zu kaputten Builds kommt. Diese dann immer und immer wieder erneut auszuführen, erhöht nur die Systemlast und Latenz für &#8222;neue&#8220; Jobs.</li><li>Plugins. Plugins sind die reinste Hölle. Jeder, der ein Jenkins Plugin installiert, muss sich dessen bewusst sein und dies nur unter Erleidung körperlich größter Schmerzen vollziehen oder besser vermeiden. Viele Plugins sind seit Jahren unmaintained, fast immer voller bugs und suggerieren ein größeres, aktiveres Ökosystem, als vorhanden. Dokumentation ist oft nicht vorhanden, die enorme Abstraktion sorgt für enorme Aufwände beim Reverse-Engineering/Verstehen des Codes. Tests sind lausig, wenn vorhanden.</li><li>Groovy und Pipeline-Plugin werden als Alternative des traditionellen Jobs angepriesen, sorgen aber nur für noch mehr Matsch, weil jetzt auch noch massiv eigener Code an die brüchige Basis angedockt wird.</li><li>Selbst populäre Plugins, wie das Github oder Github-Pull-Request-Builder-Plugin sind broken by design, wenn man eine gewisse Anzahl an Jobs oder Pull-Requests überschreitet. Das passiert besonders gerne bei Mono-Repos, wo ein Commit zwar auch nur einen Github-Webhook auslöst, doch dann innerhalb von Jenkins unter Umstände 20 Jobs anstösst. Das Github-Plugin führt nun aber wiederum 20 API-Requests (viel davon identisch) und startet dann diese Jobs. Je nach Teamgröße und Setup überschreitet man spielend leicht die tägliche Quote der GitHub public API, was das ganze Setup zum Erliegen bringt. Caching der Requests ist nicht sinnvoll in Jenkins möglich bzw wurde erst vor einigen Monaten durch eine Änderung wieder sabotiert (kein HTTP proxy mehr nutzbar), trotzdem gibt es interessante Ansätze ausserhalb von Jenkins wie z.B. <a href="https://github.com/docker/leeroy">Leeroy von Docker.</a> Hier erfolgt die Interaktion mit GitHub ausserhalb von Jenkins in einer überschaubaren Anwendung, die dann nur doch Tests anstösst  und Ergebnisse auswertet.</li><li>Da Jenkins, wie oben beschrieben, keine zuverlässig persistente Queue hat, werden auch eingehende Webhooks öfter mal nach Annahmebestätigung (also HTTP 2xx/3xx-Response) verloren, insbesondere in der Phase eines Restarts. Hier muss dann vom Developer manuell erneut zB gepusht werden oder manuell in der Jenkins WebUI die Tests angestossen werden.</li></ul>



<p class="wp-block-paragraph"><strong>Also, wenn ihr es könnt, vermeidet grundsätzlich den Einsatz von Jenkins. Bitte macht keine Deployment-Automatisierung oder scripting von Cloud-Ressourcen (Terraform etc) innerhalb von Jenkins.  </strong></p>



<p class="wp-block-paragraph"><strong>Ihr macht nur Web-Kram oder baut einfach nur binaries für eine Plattform/OS? Sucht euch etwas anderes, nutzt Travis CI, Circle, GitLab, Drone, Go-CI &#8211; oder baut euch eine eigene kleine Test-Pipeline. Geniesst eure niedrigen Anforderungen, die Welt steht euch offen,&nbsp;lasst&nbsp;sie&nbsp;euch&nbsp;von&nbsp;Jenkins&nbsp;nicht verderben!</strong></p>



<h2 class="wp-block-heading">2. Operationelle GOs und NO-GOs</h2>



<h4 class="wp-block-heading">Monorepos</h4>



<p class="wp-block-paragraph">Das miserable Verhalten von Jenkins bei Monorepos muss ich hier nochmal ansprechen. Ja, Monorepos machen bei bestimmten Projekten durchaus Sinn, wenn man eine große Core-Library hat und diese dann auf diversen Plattformen mit Wrapper-Code veröffentlicht. Da muss man eben laufend die Gesamtheit des Systems testen und auf einem Stand halten. Dependency-Management und Versionierung über dutzende einzelne Repos hinweg ist ein PITA, deshalb ist ein Monorepo hier sinnvoll.</p>



<p class="wp-block-paragraph">Andererseits verhindern Monorepos auch die Aufteilung auf mehrere Jenkins-Master und je nach Projektumfang- und Entwicklerzahl ist somit eine 24/7-Auslastung des Masters-Nodes vorhanden, die selbst kurze Systemupdates unmöglich macht. Dank der nicht vorhandenen HA-Lösung gibt es also immer eine Downtime. Entweder stoppt man einfach den Node und verliert alle laufenden Jobs, oder greift schon ggf. Stunden vor der geplanten Downtime ein und deaktiviert neue Job-Ausführungen auf den Agents. Auch hier trägt wieder o.g. Bug bezüglich Job-Queue-Persistierung zu viel Ärger bei. </p>



<h4 class="wp-block-heading">VPN</h4>



<p class="wp-block-paragraph">Weiterhin ist es absolut nicht mehr zeitgemäß, eine Jenkins-Instanz offen &#8222;im Internet&#8220; zu betreiben, selbst über HTTPS landet jeder Request doch am shitty web-framework von Jenkins inkl. laufend bekannt werdender Bugs mit Cookies, CSRF oder den diversen Auth-Möglichkeiten. Bitte nutzt WireGuard. Bitte nutzt WireGuard! Ein Reverseproxy davor (zB nginx) kann auch weiterhin whitelisted Requests durchlassen, z.B. webhooks oder bestimmte API calls. Alle anderen bleiben ohne VPN draussen. WireGuard ist jeder andere VPN-Lösung in allen Belangen überlegen, solange ihr nicht Layer 2 oder Meshing benötigt, was hier nicht der Fall ist. </p>



<p class="wp-block-paragraph">Vergesst bloated OpenVPN oder IPSec, die Batterien leerfressen oder Ärger mit Zertifikaten oder kaputten nativen Clients verursachen. Für das Jenkins-Szenario braucht ihr auch keine default-route, ihr baut einfach einen Tunnel auf und könnt dann auf zB ein System mittels RFC1918-Adressen zugreifen (DNS &#8222;jenkins.internal.company.com&#8220; kann z.B. auch darauf zeigen), ohne euer lokales Routing weiter zu beeinflussen. Das wars. </p>



<p class="wp-block-paragraph">Ihr bestimmt das lokal, der Server kann euch keine default route pushen, wie es bei anderen VPN-Lösungen der Fall ist. Ihr könnt/müsst Traffic für jedes Subnetz lokal freischalten (`AllowedIPs` in der WireGuard Config). Auch die Agents hinter einem NAT (z.B. in eurem Büro) können darüber eine zuverlässige, bidirektionale VPN-Verbindung aufbauen und halten, so wie es auch mein 12€ Raspberry Pi Zero seit Wochen schafft &#8211; trotz DSL-Disconnects und belastetem 2.4 GHz-Wifi-Band.</p>



<h4 class="wp-block-heading">Lockdown</h4>



<p class="wp-block-paragraph">Entwickler sollten grundsätzlich keine Rechte zur Bearbeitung von Jenkins Jobs besitzen und es sollte eine Konvention sein, dass Testläufe und Auswertungen/Deployment-Hooks innerhalb des zu testenden Repositories gespeichert und damit versioniert sind. Somit gibt es auch ein Merge-Conflict-Handling und die üblichen Wege, sich mit seinen Kollegen über Änderungen abzustimmen (Issues, PR, Slack).</p>



<p class="wp-block-paragraph">Jenkins-Jobs sollten ausnahmslos nur ein script aufrufen, z.B. `bin/ci` &#8211;  innerhalb dieses Scripts im jeweiligen Repo erfolgt dann alles weitere, also die Trennung in &#8222;setup&#8220;, &#8222;test&#8220;, &#8222;report&#8220;, &#8222;deploy&#8220;, &#8222;teardown&#8220; (oder das Container-Scripting, je nach Workflow).</p>



<p class="wp-block-paragraph">Dieses/s Script/s müssen auch ausserhalb von Jenkins laufen können (deshalb z.B. eine Container-Lösung in Betracht ziehen), lokal auf Entwicklermaschinen oder einem anderen CI, auf das man eventuell in der Zukunft wechseln kann. Konfigurationen und Credentials sind deshalb ausnahmslos über Environment-Variablen zu übergeben. Auch hier hält man sich in Zukunft alle Wege offen. </p>



<h4 class="wp-block-heading">Own the Test-Stack</h4>



<p class="wp-block-paragraph">Komplexere Plugins wie z.B. Android-Emulator sind problematisch: Hier werden Dinge in eine Web-Gui abstrahiert, die unter Umständen den Entwicklern selbst nicht bekannt oder geläufig sind. Als Non-Android-Developer habe ich keine Ahnung, was da genau passiert und so manche Frage an Android-Entwickler brachte auch keine Klärung. Das darf aber nicht sein. Auch hier gilt: Emulator-Setup, -Run und -Teardown gehören in Shellscripts innerhalb des zu testenden Repositories. Gerne auch zur Ausführung innerhalb eines Docker-Containers.</p>



<p class="wp-block-paragraph">Jenkins selbst räumt trotz Plugin und Konfiguration nicht zuverlässig z.B. die Emulator-Dienste nach Test-Beendingung auf. Hierbei können undefinierte Zustände entstehen und CI-Läufe beeinträchtigen. Entweder räumt man mit Cronjobs und einer Frickellösung alter Prozesse ab, oder startet die Agents alle paar Tage neu, beides verletzt folgende Regel:</p>



<h4 class="wp-block-heading">Agents = Stateless</h4>



<p class="wp-block-paragraph">Jenkins Agents (Slaves) sind zustandslos und müssen auch zustandslos gehalten werden: Keine testrelevante Konfiguration, keine Installation von Drittsoftware darf über die Test-Scripts installiert oder modifziert werden, keine Prozesse dürfen nach Abschluss eines Jobs &#8222;übrig bleiben&#8220;. Es ergeben sich sonst nicht mehr nachvollziehbare Versions-Zustände und Race-Conditions, die mit DevOps nicht mehr beherrschbar oder geschweige denn im Notfall wiederherstellbar sind.</p>



<p class="wp-block-paragraph">Obacht, das gilt auch für Container. &#8222;Wie ist denn das Builder-Image vor 4 Monaten auf den Agent gekommen&#8220; wollt ihr euch nicht fragen. Hier bietet sich zB der Einsatz eines Chaos-Monkeys ein. Zwischen Geschwindigkeit und Konsistenz muss sorgfältig abgewogen werden: Einmal im Monat alte Docker-Images löschen ist zwar besser als nie, es besteht aber ausreichend Zeit für Entwickler und Admins, dazwischen versehentlich Mist zu bauen. Dann läuft der Clean-up-Task und es gibt &#8222;keinen Zusammenhang&#8220; zu der vor Wochen versehentlich gebauten Dependency. Weiterhin sorgt Docker&#8217;s Base-Image-Inheritance dafür, dass man auch nicht nach jedem Job &#8222;seine eigenen&#8220; Images aufräumen kann, weil diese auch von anderen Projekten verwendet werden. Wenn man den Aufwand nicht scheut, kann man eigene dockerd-Instanzen pro Runner oder Projekt betreiben und so eine gegenseitige Einflussnahme verhindern. Multiple Dockerd-Instanzen pro Host sind jedenfalls kein Hexenwerk.</p>



<h4 class="wp-block-heading">Kapseln mit Containern</h4>



<p class="wp-block-paragraph">Nutzt trotzdem, wo immer es geht, Docker um die Systemumgebung für Tests zu schaffen. Also das besagte `test/ci` script sollte ein ebenso im Repository hinterlegtes Dockerfile (eines, oder mehrere, oder docker-compose oder was auch immer) bauen, dann die Tests in diesem Container ausführen. So sind auch alle Build-Abhängigkeiten versioniert, als Teil des Dockerfiles.</p>



<p class="wp-block-paragraph">Keine 20 Ruby-, Node oder Java-Versionen mehr auf Agent-Nodes!</p>



<h4 class="wp-block-heading">Uptime rules</h4>



<p class="wp-block-paragraph">Wenn ihr ein verteiltes Team aus Entwicklern habt, die wirklich in jeder Zeitzone sitzen, dann könnt ihr auch nicht nachts um 4 den Jenkins-Master neustarten, ohne vom Kollegen, der gerade in Thailand arbeitet, via Slack einen Rüffel zu bekommen. Das macht Updates zu einer großen Herausforderung. Wenn dazu ein Mono-Repo kommt, kann man auch nicht einfach mehrere Jenkins-Setup parallel betreiben um die Auswirkungen auf einen Teil zu beschränken. Bleibt also in Ermangelung einer HA-Lösung nur das Festlegen eines regelmäßigen Wartungsfensters. Das ist nur möglich, wenn man zumindest die kritischsten Probleme noch ein paar Tage aussitzen kann, also im Jenkins-Fall die Security-Updates &#8211; auch hier wieder: Nutzt WireGuard um das Risiko und den Update-Druck zu reduzieren.</p>



<h4 class="wp-block-heading">Responsible Hardware Use</h4>



<p class="wp-block-paragraph">Flaky Tests, also sich nicht konsistent verhaltende Testergebnisse, sind immer ein nerviges Problem. Im Zuge der Nachforschung und Bekämpfung solcher Anomalien könnte man auf die Ideen kommen, neben den Event-gesteuerten Testläufen (vi GitHub Hook) auch zeitgesteuert eine Ausführung durchzuführen (&#8222;viel hilft viel&#8220;). Das ist per se gut, wenn man es 1-2x am Tag macht um schleichende Änderungen (z.B. durch Upstream/3rd party dependencies) zu testen. Geht man jedoch hin und sorgt durch eine aggressive Job-Crontab dafür, dass z.B. zwischen 20 und 6 Uhr alle Agents wiederholt, non-stopp, mit immer den gleichen Tests ausgelastet werden, nervt man einerseits den Admin gewaltig, denn der sucht händeringend eine Phase, in der man 10 Minuten downtime zum Upgrade einplanen kann. </p>



<p class="wp-block-paragraph">Andererseits verschleisst die Hardware:</p>



<p class="wp-block-paragraph">Zwar sind SSD/NVMe-Server mittlerweile z.B .bei Hetzner spottbillig, sodass man durchaus 10… 20… 50 Stück mieten kann, allerdings gilt das nur für die Standardausführung mit 2x500GB SSD/NVMe pro System. Zusätzliche oder größere SSD/NVMe SSD kosten mitunter mehr, als der ganze Server in der Standardausführung. Fährt man nun ein RAID-1 (Mirroring) hat man noch ca 400GB nutzbaren Speicherplatz, der von großen Monorepos schnell gefressen wird. Also fängt man notgedrungen an, die Systeme mit RAID-0 (Striping) aufzusetzen, denn schliesslich haben die Nodes ja keinen State… </p>



<p class="wp-block-paragraph">Solche nächtlichen Build-Exzesse zur Bekämpfung von flaky tests sorgen dann aber dafür, dass SSD Wear Out innerhalb von wenigen Monaten die SSD zerstören, zumindest aber laut SMART bald ein Datenverlust auftreten wird. Mangels Mirroring (um ca. 900GB usable disk space zu erhalten) muss man also hier auch sofort das ganze System (automatisiert) neu aufsetzen. Und die zweite SSD fällt dann einige Wochen später aus und das Spiel wiederholt sich von vorne.</p>



<p class="wp-block-paragraph">Ein Richtwert für die Lebensdauer bei Flash-Speichern: Maximale Lebensdauer in Schreibvorgängen (TBW) = mindestens 100x die Größe des Speichers. Moderne und hochwertige Flash-Speicher (bspw. Samsung EVO plus) schaffen auch 600 full writes &#8211; oder zumindest deckt die Gewährleistung diese Nutzung ab.</p>



<p class="wp-block-paragraph">Man sollte also auch die Hardware sinnvoll einsetzen: SSDs reduzieren die Testdauer, was inbesondere den Entwicklern hilft, ein schnelles Feedback zu erhalten. Allerdings sterben sie &#8222;relativ&#8220; schnell. Festplatten sind langsam, halten aber deutlich länger bzw. sind günstiger (d.h. 2-6TB pro Platte sind ausreichend und man kann problemlos ein Mirroring fahren). Nutzt das passende Werkzeug und verletzt euch nicht absichtlich selbst.</p>



<h2 class="wp-block-heading">Fazit</h2>



<p class="wp-block-paragraph">Viele angesprochenen Probleme äussern sich bei Monorepos, bei einem zeitlich-geographisch verteilten Entwicklerteam, bei der Hook/PullRequest-Nutzung von Github.com (kein private Enterprise GitHub, GitLab etc) und durch komplexeren Build/Test-Umgebungen (insbesondere native Apps für diverse Plattformen) &#8211; auch wenn es ausreichend Gründe gibt, die genau diese Nutzung so rechtfertigen.</p>



<p class="wp-block-paragraph">Ohne diese Anforderungen gäbe es schon lange keinen Grund mehr, überhaupt noch Jenkins zu verwenden: GitLab CI, Circle CI, Drone.io und die CI/CD-Pipelines der Cloud-Anbieter verfügen durchweg über eine bessere, aktuelle Architektur oder sind managed und lassen es dann auch überhaupt nicht zu, sich selbst in den Fuß zu schiessen.</p>



<p class="wp-block-paragraph"><strong>TL;DR</strong></p>



<p class="wp-block-paragraph">Lasst die Finger von Jenkins oder verwendet es wie eine scharfe Chemikalie: Nur mit Schutzausrüstung. Haltet die CI-Konfiguration zu dünn wie möglich, dafür ausführlich Code und Beschreibungen in den jeweiligen Repos halten. Kein offenes Feuer. Nur mit Schutzbrille.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/02/15/tipps-zum-einsatz-von-jenkins-ci/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Habitat</title>
		<link>https://blog.rolandmoriz.de/2019/02/09/habitat/</link>
					<comments>https://blog.rolandmoriz.de/2019/02/09/habitat/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Sat, 09 Feb 2019 02:04:22 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=2081</guid>

					<description><![CDATA[Vor 2 1/2 Jahren stellte Chef.io ein neues Projekt namens &#8222;Habitat&#8220; vor und bis vor kurzem sah ich keinen Grund, dieses Projekt einzusetzen. Ich hielt&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Vor 2 1/2 Jahren stellte Chef.io ein neues Projekt namens <a href="https://www.habitat.sh/">&#8222;Habitat&#8220;</a> vor und bis vor kurzem sah ich keinen Grund, dieses Projekt einzusetzen. Ich hielt es für überflüssig, da der Markt schon lange entschieden hätte, auf Container zu setzen und dementsprechend die Lösungen gewinnen werden, die sich um die (damaligen) Anführer der Bewegung drehten bzw. von diesen empfohlen oder entwickelt werden.</p>



<p class="wp-block-paragraph">Also Docker, dazu Swarm. Alternativ Rancher, eventuell CoreOS. Und Kubernetes.</p>



<p class="wp-block-paragraph">Wie es bisher ausging, ist bekannt: CoreOS und rkt sind tot, ebenso wie Docker Swarm. Der Swarm-Mode dümpelt noch im Docker-EE-Segment herum, ansonsten setzt Gott und die Welt auf Kubernetes.</p>



<p class="wp-block-paragraph">Doch eine Sache ist bis heute nicht signifikant vorangekommen, nämlich das Bauen von Container-Images. Docker&#8217;s Buildkit hat zwar jüngst mal wieder ein paar nette experimentelle Features geliefert, wie z.B. ssh-agent zur Build-Zeit. Doch die grundlegende Dockerfile-Syntax wurde beibehalten und so richtig gute Alternativen gibt es nicht.</p>



<span id="more-2081"></span>



<p class="wp-block-paragraph">Und dann gibt es noch ein viel wichtigeres Problem: Externe Abhängigkeiten und Base-Images. Ich würde mal darauf tippen, dass 90% aller populären Container auf Docker-Hub auf Debian, Ubuntu oder Alpine Linux basieren und dann um proprietäre Repositories erweitert werden. So gut wie keiner baut sich selbst ein root Filesystem, gerade beim Einsatz einer privaten Registry ausserhalb der kommerziellen Docker-Hub-Angebote wie z.B. ECR, Azure&#8217;s Container Registry oder eine selbst gehosteten, muss man selbst regelmäßig dafür sorgen, dass die Base-Images aktualisiert und die eigenen Images neu gebaut oder gepatcht werden.</p>



<p class="wp-block-paragraph">Weiterhin zeigen alle &#8222;etablierten&#8220; Linux-Distributionen massive Schwächen beim Container-Einsatz. Sie sind schlicht nicht darauf ausgelegt. Bei Debian-basierten Dockerfiles sieht man die immer gleichen Patterns: </p>



<p class="wp-block-paragraph"><em>apt-get update; apt-get upgrade, apt-key adv &#8211;keyserver mit.wechselnder-erreichbarkeit.org… , add-apt-repository …; apt-get update; apt-get install &#8211;yes  &#8211;no-install-recommends … rm -rf /var/lib/apt/lists/*</em></p>



<p class="wp-block-paragraph">Nerv. Vergisst man mal etwas, ist das Image gleich 50MB größer. Dann gibt es mal ein neues gpg in Debian Stable und schon bricht <em>apt-key adv&nbsp;&nbsp;—&nbsp;</em>und überhaupt ist Debian uralt. Also am besten gleich ein Backports oder Unstable-Base-Image…Von Init-Systemen (systemd) oder Cron innerhalb von Containern möchte ich garnicht erst anfangen.</p>



<p class="wp-block-paragraph">Regelmäßig hat man damit dann Probleme, kann Images nicht einfach (automatisiert) erfolgreich neu bauen, weil Pakete bereits wieder aus Backports oder 3rd-party-Repos verschwunden sind &#8211; besonders aggressiv ist das Chrome Repo von Google.</p>



<p class="wp-block-paragraph">Alpine Linux ist zwar wunderbar einfach gehalten, die Paket-Definitionen sind Shellscripts mit einem definierten set an Variablen und Funktionen/Callbacks, <a href="https://github.com/alpinelinux/aports/blob/master/main/clang/APKBUILD">hier ein Beispiel.</a></p>



<p class="wp-block-paragraph">Doch auch hier macht man sich wieder vom Tooling und der Motivation weniger Dritter abhängig, dass bestimmte Versionen und Pakete auch brauchbar und ggf. zeitnah bereitgestellt werden. So gibt es z.B. bei Alpine kein Mono für die ARM-Architekturen, <a href="https://github.com/rmoriz/openra-dockerfile">weshalb auch mein Multi-Arch-Docker-Image für OpenRA (Open-Source-Nachbau von Command &amp; Conquer Red Alert) auf einem Debian Base image basiert (bzw. das offizielle Mono Image) und nicht zu Alpine gewechselt ist.</a></p>



<p class="wp-block-paragraph">Hat man also wiederholt die selben Schmerzen erlebt und sich Alpine angeschaut und geht dann nochmal zu Chef&#8217;s Habitat, ist man erstaunt: <a href="https://bldr.habitat.sh/#/pkgs/core/clang/latest">Auch dort sind Paketdefinitionen (&#8222;Pläne&#8220;) als Shellscript verfasst mit definierten Variablen und callbacks. Klar&nbsp;strukturiert,&nbsp;einfach.&nbsp;Eine&nbsp;Datei&nbsp;zzgl.&nbsp;ggf.&nbsp;Patches.</a></p>



<p class="wp-block-paragraph">Die Ähnlichkeit zu Alpine ist unübersehbar, allerdings geht es bei Habitat nicht um das Zusammenstellen einer Distribution, sondern um das Zusammenstellen von Abhängigkeiten diverser OpenSource-Software um dann zusammen mit der eigenen Anwendungen ein immutable Artifact zu bilden..</p>



<p class="wp-block-paragraph">Man macht sich also komplett unabhängig von Distributionen, erhält ein vollständig offenes Framework (das auf Rust setzt und daher auch nicht die organisatorische Google-Go-Dependency besitzt)  um selbst die Dependencies zu bauen und zu pflegen &#8211; oder verlässt sich auf den <a href="https://bldr.habitat.sh/">bldr-Service von Chef,</a> für den es natürlich kommerzielle Nutzungs- und Servicemodelle gibt.</p>



<p class="wp-block-paragraph">Mit Habitat erstellte Pakete können für unterschiedliche Ziele exportiert oder paketiert werden, also auch Docker. Und sie enthalten einen Supervisor, der auch Healthchecks und Updates übernehmen kann.</p>



<p class="wp-block-paragraph">Wer All-In auf managed Kubernetes-Lösungen von AWS, Google Cloud oder Azure geht und zudem primär Anwendungen in Go oder Java entwickelt, wird vermutlich das Problem nicht haben, nicht verstehen oder lange Zeit ignorieren können, weil es so gut wie keine low-level Abhängigkeiten ausserhalb des eigenen Runtimes gibt (dafür dann eben im Go/Java-Projekt <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> oder man &#8222;einfach das Linux vom Cloud-Anbieter nutzt&#8220;.</p>



<p class="wp-block-paragraph">Für alle anderen könnte es durchaus eine Möglichkeit sein, den erodierenden Universal-Distributionen zu entkommen und vergleichsweise ressourcenschonend wieder selbst die volle Kontrolle über alle Abhängigkeiten zu erlangen. Also vielleicht nochmal anschauen…</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div  style="display: block; margin: 0px auto;"  id="_ytid_99504" class="__youtube_prefs__  __youtube_prefs_gdpr__  epyt-is-override " allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""><p><strong>Please accept YouTube cookies to play this video.</strong> By accepting you will be accessing content from YouTube, a service provided by an external third party.</p>
<p><a href="https://policies.google.com/privacy" target="_blank" rel="noopener">YouTube privacy policy</a></p>
<p>If you accept this notice, your choice will be saved and the page will refresh.</p>
<button type="button" class="__youtube_prefs_gdpr__">Accept YouTube Content<img decoding="async" src="https://blog.rolandmoriz.de/wp-content/plugins/youtube-embed-plus/images/icon-check.png" alt="accept" data-no-lazy="1" data-skipgform_ajax_framebjll="" /></button></div>
</div></figure>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div  style="display: block; margin: 0px auto;"  id="_ytid_11675" class="__youtube_prefs__  __youtube_prefs_gdpr__  epyt-is-override " allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""><p><strong>Please accept YouTube cookies to play this video.</strong> By accepting you will be accessing content from YouTube, a service provided by an external third party.</p>
<p><a href="https://policies.google.com/privacy" target="_blank" rel="noopener">YouTube privacy policy</a></p>
<p>If you accept this notice, your choice will be saved and the page will refresh.</p>
<button type="button" class="__youtube_prefs_gdpr__">Accept YouTube Content<img decoding="async" src="https://blog.rolandmoriz.de/wp-content/plugins/youtube-embed-plus/images/icon-check.png" alt="accept" data-no-lazy="1" data-skipgform_ajax_framebjll="" /></button></div>
</div></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>Update 10.02.2019</strong></p>



<p class="wp-block-paragraph">Ein Beispiel-Build war sehr ernüchternd und exportiert als Docker-Image über 220MB größer (~30%), als meine aktuelle Debian-Lösung. Habitat hat dafür, neben des eingebauten Supervisors inkl. Orchestrierung, auch gleich zwei OpenSSL installiert, dazu auch 2x kernel headers und zu allem auch Manpages, alle möglichen Timezones, Locales und Charmaps. Sicher kann man die von mir genutzten &#8222;core&#8220;-Abhängigkeiten aus Habitat auch alle forken und dann dementsprechend &#8222;kleiner&#8220; machen, aber letztlich funktionieren die Debian/Alpine-Frickellösungen aktuell noch immer viel zu gut.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/02/09/habitat/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Multi-Arch Images für Docker per Docker Hub</title>
		<link>https://blog.rolandmoriz.de/2019/02/02/multi-arch-images-fuer-docker-per-docker-hub/</link>
					<comments>https://blog.rolandmoriz.de/2019/02/02/multi-arch-images-fuer-docker-per-docker-hub/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Sat, 02 Feb 2019 15:15:25 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[container]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[qemu]]></category>
		<category><![CDATA[raspberry]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1928</guid>

					<description><![CDATA[Docker ist omnipräsent, ebenso wie es extrem günstige linuxfähige System on a Chip (SoC)-Geräte sind. Nach Beagleboard, Pandaboard, diversen Raspberry Pi etc sind wir bei&#8230;]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="894" src="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/02/multiarch-1024x894.png" alt="" class="wp-image-1930" srcset="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/02/multiarch-1024x894.png 1024w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/02/multiarch-300x262.png 300w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/02/multiarch-768x671.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Oben: Raspberry Pi Zero WH: 1 ARMv6 Prozessor, 1 Kern, 512MB RAM, 15€<br>Unten: <a href="https://blog.rolandmoriz.de/2016/09/06/monstermaschine/">&#8222;Rambo&#8220;, 2 Xeon Prozessoren, 32 Kerne (64 mit Hyperthreading), 128GB RAM, &gt;2500€</a><br></figcaption></figure>



<span id="more-1928"></span>



<p class="wp-block-paragraph">Docker ist omnipräsent, ebenso wie es extrem günstige linuxfähige System on a Chip (SoC)-Geräte sind. Nach Beagleboard, Pandaboard, diversen Raspberry Pi etc sind wir bei 15€ pro System inkl. WiFi angekommen. Unfassbar für ein vollwertiges System, dessen Fähigkeiten für so manchen Büroarbeitsplatz ausreichen würden.</p>



<p class="wp-block-paragraph">Die logische Konsequenz: Wenn man auf jedem Stück Blech die neuesten Linux-Distributionen und Kernel-Versionen laufen lassen kann, warum dann auch nicht Docker?</p>



<p class="wp-block-paragraph">Man möchte allerdings die bestmöglichste Hardware (bzw Cloud-Service) zum Bau von Images für alle Plattformen nutzen und verwendet daher Cross-Compilation (typischerweise unter amd64/x86_64).</p>



<p class="wp-block-paragraph">Die technischen Details sind nichts neues, deshalb erspare ich sie euch bis auf eine kurze Umschreibung: <a href="https://www.qemu.org/">QEMU</a> als Emulator, <a href="https://de.wikipedia.org/wiki/Binfmt_misc">binfmt_misc</a> um architekturfremde Binaries durch QEMU ausführen zu lassen. Und um das ganze mit Docker zu verheiraten, schiebt man das statische QEMU binary in den Build-Context und zwar an die Location, die man dem Kernel vorher global konfiguriert hat. <a href="http://multiarch/qemu-user-static:register">Mehr dazu steht beispielsweise hier.</a></p>



<p class="wp-block-paragraph">Zwei Dingen fehlten mir jedoch bis dahin:</p>



<ol class="wp-block-list"><li>Ich lasse Docker Hub automatisch Images aus GitHub Repositories bauen und möchte, dass Docker Hub mir für alle von mir gewünschten Architekturen automatisch Images baut.</li><li>Ich möchte einen gemeinsamen tag für alle Plattformen haben, d.h. egal auf welchem system <em>docker pull rmoriz/multiarch-test:latest</em> soll das passende Image zurückliefern.</li></ol>



<p class="wp-block-paragraph">Die Integration Dockerhub lässt sich mit etwas Shell-Frickelei lösen, hat man dort doch relativ großzügige root-Rechte, kann den gesamten Build-Prozess mit Shellscripts anpassen oder überschreiben und natürlich Pakete installieren. Sogar das Setzen von binfmt war problemlos möglich. Erstaunlicherweise war das größte Problem die dort eingesetze steinalte Docker EE-Version auf Client-Seite. Auch hier kann man glücklicherweise stattdessen ein eigenes, neueres Binary ausführen.</p>



<p class="wp-block-paragraph">Um mehrere Architekturen hinter einem tag zu verbergen, muss man <a href="https://docs.docker.com/engine/reference/commandline/manifest/">Manifests</a> anlegen. Alles noch experimental, erfordert das neueste docker-cli und schlecht dokumentiert.  </p>



<p class="wp-block-paragraph">Der grobe Ablauf:</p>



<ol class="wp-block-list"><li>Installiere QEMU Pakete, eigener docker client</li><li>registriere binfmt handler</li><li>baue alle images mit jeweils eigenen Tags für jede Architektur</li><li>exportiere alle images auf festplatte, patche im Image-Manifest die Architektur auf die Zielarchitektur (hier wird IMMER die aktuelle dockerd-Architektur übernommen)</li><li>importiere den Kram wieder</li><li>pushe die Images in die Registry</li><li>Erstelle ein Manifest</li><li>Annotate das Manifest, damit die Archtekturen stimmen (eventuell durch 4. überflüssig geworden)</li><li>pushe das Manifest in die Registry</li><li>done</li></ol>



<p class="wp-block-paragraph">Große Frickelei, für euch an zwei Abenden durch trial+error gebaut:</p>



<p class="wp-block-paragraph"><a href="https://github.com/rmoriz/multiarch-test">Source Code hier: https://github.com/rmoriz/multiarch-test</a></p>



<p class="wp-block-paragraph"><a href="https://gist.github.com/rmoriz/4204f1f30eeda3892248e797024ed794">Beispiel Log des Builds: https://gist.github.com/rmoriz/4204f1f30eeda3892248e797024ed794</a></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"> </p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/02/02/multi-arch-images-fuer-docker-per-docker-hub/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GitHub ist mittlerweile digitales Astroturfing</title>
		<link>https://blog.rolandmoriz.de/2019/01/23/github-ist-mittlerweile-digitales-astroturfing/</link>
					<comments>https://blog.rolandmoriz.de/2019/01/23/github-ist-mittlerweile-digitales-astroturfing/#comments</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Wed, 23 Jan 2019 14:37:12 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1797</guid>

					<description><![CDATA[Die auf GitHub populären Frameworks und Sprachen der letzten 5 Jahre sind allesamt von Konzernen gelenkte Entwicklungen, die die Zukunft dieser Konzerne sichern und gegen&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Die auf GitHub populären Frameworks und Sprachen der letzten 5 Jahre sind allesamt von Konzernen gelenkte Entwicklungen, die die Zukunft dieser Konzerne sichern und gegen disruptive Konkurrenten schützen soll. </p>



<p class="wp-block-paragraph">Waren proprietäre Sprachen und Frameworks schon immer in allen Bereichen der Branchen präsent und verbreitet, so war dies fast immer auf Teilbereiche beschränkt: .Net auf Windows, Java für Enterprise-Anwendungen, Objective C für Macintosh. Dominierende OpenSource-Projekte der 1990er und 00er Jahre wie Perl, PHP, Python und Ruby waren allesamt &#8222;wirkliche&#8220; OpenSource-Projekte einzelner Menschen und Unternehmen, ohne dass dort zwangsläufig eine absolute Dominanz ersichtlich war. Das lag natürlich auch an der auf (zugegeben sehr große) Teilbereiche der Software-Entwicklung. Wer Entscheidungen von Zend, der &#8222;PHP Company&#8220; nicht mittragen wollte, hatte ausreichend Alternativen ohne nennenswerte Nachteile.</p>



<span id="more-1797"></span>



<p class="wp-block-paragraph">Mit der zweiten JavaScript-Welle änderte sich allerdings alles: Google dominierte damit den Interpreter (V8), die aktive Sprachentwicklung und den Browser. Was viele Menschen nicht verstehen wollten: Es ist eigentlich irrelevant, ob ein Unternehmen proprietäre Features baut, oder diese mit eigenen Leuten öffentlich als Standard definiert. Am Ende des Tages wurde das als de-facto oder &#8222;de-jure&#8220; Standard beschlossen, was im Sinn der Konzerne war, namentlich bei JavaScript und HTML5 das, was Google wollte.</p>



<p class="wp-block-paragraph">So war rückblickend die &#8222;Befreiung&#8220; vom Internet-Explorer auch ein Pyrrhussieg. denn einerseits hat sich Google direkt (über Chrome) und indirekt (über die Beeinflussung von Mozilla) als neuer Platzhirsch der Standards etabliert. Aktuell arbeitet das Chrome-Team z.B. daran, die unliebsamen Adblocker ABP und uBlock Origin unbrauchbar zu machen: Es sollen Schnittstellen abgekündigt werden, die zwingend für ein aktives Adblocking notwendig sein sollen.</p>



<p class="wp-block-paragraph">Auf der anderen Seite starb das Web mit der JavaScript-Welle, weil rudimentäre Tools wie selbstgeschriebene Suchmaschinen oder Text-Browser ohne JavaScript-Support und Client-Side-Rendering (das Google mit AngularJS gepusht hat) unbrauchbar wurden. Man hat so die Eintrittsbarriere in das profitable Kerngeschäft, nämlich eine durch Werbung finanzierte Suchmaschine, massiv erhöht und weiter die Marktanteile eigener Produkte zementiert.</p>



<p class="wp-block-paragraph">Als drittes kommt dann die &#8222;Plattformisierung&#8220; des Webs oben drauf: Content-Silos wie Facebook, YouTube oder Twitter töteten die ursprünglich verteilt angelegte Architektur des World Wide Webs. Statt einer Vielzahl von konkurrierenden und selbstverwalteten Alternativen gibt es im Web einzelne Monopolisten (YouTube, Whatsapp, Instagram, Facebook, Twitter).</p>



<p class="wp-block-paragraph">Plattform-Modelle in Form von Betriebssystemen sind zwar uralt, aber erst seit Apple&#8217;s iOS gibt es einen harten Walled Garden. Konnte jeder Hobbyautor in den 1990ern Windows-Shareware entwickeln und vertreiben, so begann mit dem Apple Appstore der Untergang dieser freien Zunft: Nicht nur wird der Zugang irrational nach Gutsherrenart gewährt, sondern es wird auch noch großzügig Provision abkassiert. </p>



<p class="wp-block-paragraph">Als ob diese beiden Beispiele schon nicht ausreichend, so hat sich dieser Trend auch auf Sytemsoftware ausgeweitet: Go ist das ideale Bespiel der geplanten Google-Dominanz. Zero dependency auf andere, existierende unabhängige OpenSource-Projekte, fast alles mittelbar zu 100% in der Hand von Google.</p>



<p class="wp-block-paragraph">Wahrscheinlich erhofften sich Startups, die Go sehr früh eingesetzt haben, wie z.B. Docker und Hashicorp eine Partnerschaft oder einen Verkauf an Google, aber warum sollte Google Quellcode kaufen, der zu großen Teilen auf den Bausteinen der eigenen Entwicklung basiert und Nutzer bisher nicht exklusiv/hart an Google bindet?</p>



<p class="wp-block-paragraph">Kubernetes orientiert sich z.B. nicht umsonst am Google-Architektur-Modell, kommt nicht umsonst mit Beispielen und &#8222;1st-class&#8220; support für Googles Cloud-Services. Es geht hier darum, auch die gesamte Infrastruktur zu dominieren, wenngleich es hier mit Microsoft, IBM/Redhat und Amazon ebenfalls starke Konkurrenten gibt, die aber hier alle an einem Strang ziehen: Onpremise ist tot, verhafte die Kunden und melke sie bis zu ihrem Tod. Sie machen die Regeln, schreiben die Onboarding-Tools (&#8222;OpenSource auf GitHub&#8220;) und liefern manchmal schon schlüsselfertigen Lösungen für die überschaubare jedoch alternativlose monatliche Zahlung von X$.</p>



<p class="wp-block-paragraph">Am Ende steht die vollkommene Aufgabe der technischen Autonomie. Keiner soll mehr Software schreiben, verkaufen und betreiben können, ohne dass hierfür die Regeln und Preise von Google, Apple, Amazon oder Microsoft definiert werden.</p>



<p class="wp-block-paragraph">Proprietäre Hardware, die sich diese Konzerne schon für ihre eigene Inhouse-Infrastruktur entwerfen und bauen lassen, stehen uns jedenfalls nicht zum Kauf offen, ja erfahren darüber auch so gut wie nichts. Wir müssen das verwenden, was auf dem Mainstream-Markt von Intel, AMD und den Mainboardherstellern angeboten wird. Stellt Apple nun wie schon lange erwartet auch macOS bzw. seine Macintosh-Linie von Intel/AMD64 auf proprietäre ARM/arm64 Prozessoren um, dann wird sicher auch ein anderer Player hier massiv Geld in die Hand nehmen und dies z.B. in der Cloud tun.</p>



<p class="wp-block-paragraph">ARMs Patente und Architekturmodelle sind zwar gegen Geld lizenzierbar, doch das Salz in der Suppe sind die proprietären Erweiterungen und Designs, die Leistungsparameter und Energieverbrauch ausmachen. Diese zu Entwickeln und Umzusetzen kostet sehr viel Geld und erfordert Spezialisten-Know-How. Früher konnte deshalb ein Unternehmen nur wirtschaftlich überleben, wenn es durch den Verkauf der entwickelten (und produzierten) Chips einen Profit erzielt, also das &#8222;alte&#8220; Modell eines Halbleiterherstellers (Intel, AMD).</p>



<p class="wp-block-paragraph">Die oben angesprochenen Konzerne sind allerdings so vermögend, dass sie hier nicht mehr gezwungen sind, ihre Chips auch Dritten zugänglich zu machen. Es reicht eine kuratierte Software-Schnittstelle/ein SDK anzubieten und die Hardware dann in Form von Cloud-Produkten/Abos zu vermieten. Ohne Probleme wird z.B. Google ein paar Milliarden $ in Entwicklung und Produktion für Microchips investieren z.B. optimiert auf das eigene Tensorflow ML/KI-System zum exklusive Einsatz in der eigenen Cloud.</p>



<p class="wp-block-paragraph">Somit werden wir dann alle endgültig zu Leibeigenen. </p>



<p class="wp-block-paragraph">Mit Glück dürfen wir ein paar Brotkrumen aufsammeln, die uns die Großkonzerne überlassen, wenn wir unser gesamtes Arbeitsleben in von ihnen aus einer Hand kontrollierte Sprachen, Frameworks, Plattformen und Hardware investieren.</p>



<p class="wp-block-paragraph">Und als Konsumenten zahlen wir natürlich auch dafür, dass Siemens, VW, Deutsche Bahn und sich diese proprietäre Hard- und Software in der Cloud mieten dürfen. So wie wir es seit 40 Jahren indirekt schon für SAP tun. Nur eben jetzt viel, viel umfänglicher.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/01/23/github-ist-mittlerweile-digitales-astroturfing/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>OpenRA: Command &#038; Conquer Red Alert</title>
		<link>https://blog.rolandmoriz.de/2019/01/19/openra-command-conquer-red-alert/</link>
					<comments>https://blog.rolandmoriz.de/2019/01/19/openra-command-conquer-red-alert/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Sat, 19 Jan 2019 11:18:17 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1771</guid>

					<description><![CDATA[Seit einigen Jahren gibt es ein OpenSource-Remake des populären C&#38;C Red Alert-Games. Unter OpenRA.net ist das Spiel für alle möglichen Plattformen (Linux, macOS, Windows) gratis&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Seit einigen Jahren gibt es <a href="https://www.openra.net/">ein OpenSource-Remake</a> des populären C&amp;C Red Alert-Games. <a href="https://www.openra.net/download/">Unter OpenRA.net ist das Spiel für alle möglichen Plattformen (Linux, macOS, Windows) gratis zum Download&nbsp;verfügbar</a>. Neben RA wurden auch Dune 2000 und Tiberian Dawn als Mods implementiert und können auf öffentlichen Servern (ohne Registrierung) gegeneinander gespielt werden.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="513" src="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/01/Screenshot-2019-01-19-at-11.48.16-1024x513.png" alt="" class="wp-image-1772" srcset="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/01/Screenshot-2019-01-19-at-11.48.16-1024x513.png 1024w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/01/Screenshot-2019-01-19-at-11.48.16-300x150.png 300w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/01/Screenshot-2019-01-19-at-11.48.16-768x385.png 768w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/01/Screenshot-2019-01-19-at-11.48.16.png 1348w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Neben des C&amp;C-Gameplays und liebevoller 90er-Jahre Grafik ist auch der Teamchat genau auf dem Niveau der vergangenen Zeit: Politisch unkorrekt und teilweise auch aggressiv trollt und spielt man, wie in alten Zeiten. Erfahrene Spieler tarnen sich als Newbies, Newbies ruinieren Multiplayer-Matches… lautstarke Trump-Trolle trollen andere lautstarke Trump-Trolle. So wie das Leben eben spielt.</p>



<span id="more-1771"></span>



<p class="wp-block-paragraph">Ich spiele fast ausschliesslich Red Alert, das populärste Mod, und bin vermutlich ein ganz guter Spieler.  </p>



<p class="wp-block-paragraph">Nach einer Zeit fast immer erfolgreichen Angriffstaktik mittels  &#8222;V2 rush&#8220; (Soviets) spiele ich seit einigen Wochen nur noch Allies (primär Briten) und trainiere meine Skills im Einsatz von Spionen. Das Scoring belohnt Spionage-Einsätze aktuell sehr wohlwollend und zudem sind die Gegner extrem genervt, wenn man 20 Spione in deren Raffinerien schickt und sie ich dann auch 20 Mal hintereinander machtlos &#8222;CREDITS STOLEN!&#8220; anhören dürfen.</p>



<p class="wp-block-paragraph">Deshalb hier ein paar Ratschläge für eine erfolgreiche Spieler-Karriere:</p>



<p class="wp-block-paragraph">Nur wenige Anfänger kapieren die ökonomischen Grundlagen des Gameplays: Harvester (Ernter) müssen Mineralien oder Erz sammeln und diese zu Raffinerien bringen. Ernte und Fahrt kosten Zeit und somit muss man hier auf sehr kurze, effiziente Wege achten, um den konstante Cash-Flow zu sichern und rasch durch zusätzliche Harvester und Refineries ausbauen zu können.</p>



<p class="wp-block-paragraph">Weiterhin verstehen viele Spieler nicht, dass man &#8211; wie auf dem Fussballfeld &#8211; Räume besetzen muss, um dem Gegner Wege abzuschneiden. Um diese Räume besetzt zu halten, muss man weitere Basen bauen oder mehr oder weniger aggressiv seine Basis nach vorne verlegen (rush/pushing). Letzteres erfordert massive, koordinierte Team-Unterstützung (inkl. Chat) und ist je nach Map (Karte) sinnvoll oder Harakiri. </p>



<p class="wp-block-paragraph">Der dritte Punkt, den viele Anfänger nicht verstehen: Man muss den Gegner beobachten, also auskundschaften (scouting). Hierzu sollte man möglichst einzelne, relativ günstige Einheiten produzieren und in ordentlichem Abstand zur eigenen Basis aufstellen. Natürlich sind diese Einheiten bei einem gegnerischen Angriff sofort vernichtet, dafür hat man einerseits aber eine Angriffs-Früherkennung und andererseits kann man im späteren Verlauf dadurch auch Ziele und gegnerische Verteidigungseinrichtungen ausmachen — bevor man seine ganze Armee verbrät. Im späteren Spielverlauf sollte man unbedingt einzelne Hubschrauber oder Flugzeuge an neuralgischen Plätzen aufstellen/kreisen lassen, da diese eine größere Sichtweite haben.</p>



<p class="wp-block-paragraph">Eigentlich alles ziemlich logische und nach wenigen Matches begreifbare Konzepte. Leider gibt es aber viele Spieler, die das nach Wochen nicht kapiert haben und somit die Teamleistung reduzieren. Das ist ärgerlich.</p>



<p class="wp-block-paragraph">Wenn ihr also OpenRA spielt, beachtet bitte meine Hinweise. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="513" src="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/01/Screenshot-2019-01-21-at-13.38.23-1024x513.png" alt="" class="wp-image-1786" srcset="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/01/Screenshot-2019-01-21-at-13.38.23-1024x513.png 1024w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/01/Screenshot-2019-01-21-at-13.38.23-300x150.png 300w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/01/Screenshot-2019-01-21-at-13.38.23-768x385.png 768w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/01/Screenshot-2019-01-21-at-13.38.23.png 1348w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/01/19/openra-command-conquer-red-alert/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>IT-Schland und Hybrid-Access am Beispiel von MPTCP</title>
		<link>https://blog.rolandmoriz.de/2019/01/15/it-schland-und-hybrid-access-am-beispiel-von-mptcp/</link>
					<comments>https://blog.rolandmoriz.de/2019/01/15/it-schland-und-hybrid-access-am-beispiel-von-mptcp/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Tue, 15 Jan 2019 07:16:15 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Mobilfunk]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[bonding]]></category>
		<category><![CDATA[fttx]]></category>
		<category><![CDATA[huwawei]]></category>
		<category><![CDATA[mptcp]]></category>
		<category><![CDATA[Telekom]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1739</guid>

					<description><![CDATA[Access-Provider der westlichen Welt plagen ähnliche wirtschaftlichen Problem beim Thema Breitband: Einerseits sind hohe IP-Access-Bandbreiten erwünscht, andererseits ist der Ausbau teuer und deshalb wirtschaftlich selten&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Access-Provider der westlichen Welt plagen ähnliche wirtschaftlichen Problem beim Thema Breitband: Einerseits sind hohe IP-Access-Bandbreiten erwünscht, andererseits ist der Ausbau teuer und deshalb wirtschaftlich selten darstellbar. Und dann wollen die Leute nicht nur <em>zuhause</em> sondern auch <em>unterwegs</em> hohe Bandbreiten nutzen und Investitionen in die Mobilfunknetze müssen in relativ kurzen Abständen wieder verdient werden, denn sie verlieren rasch an Wert.</p>



<p class="wp-block-paragraph">Parallel verlegt man aufwendig Lichtwellenleiter (Glasfaser) immer näher zum Kunden (VDSL, Vectoring, FTTC) oder gleich ins Haus/Wohnung (FTTB/FTTH). Trotzdem gibt es in jedem &#8222;Vorzeigeland&#8220; Regionen, in denen das auf absehbare Zeit nicht passieren wird. Sogar in der Schweiz, in Frankreich und in den Niederlanden.</p>



<p class="wp-block-paragraph">Schon vor Jahren kam man deshalb auf die Idee, die verfügbaren Zugangswege (also Festnetz und Mobilfunk) zu bündeln und dadurch Kunden in diesen Regionen gesteigerte Bandbreiten anzubieten. Leider ist das nicht so einfach, wenn zwei oder mehr Transportwege sich in vielen Parametern unterscheiden (Latenz, Bandbreite, Nutzungsspitzen, Zuverlässigkeit).</p>



<p class="wp-block-paragraph">In Deutschland gibt <a href="https://www.viprinet.com/de">das Unternehmen Viprinet</a>, dass eine proprietäre, closed-source Lösung mit eigener Hardware verkauft und damit seit Jahren auf Unternehmenskunden zielt. Die Telekom hat seit ein paar Jahren <a href="https://datatracker.ietf.org/meeting/97/materials/slides-97-banana-hybrid-access-deployment-at-deutsche-telekom-01">eine technisch eher schwache Lösung (auf GRE-Basis) am Start</a>, die &#8211; soweit ich mich erinnere &#8211; von Huawei entwickelt wurde.</p>



<p class="wp-block-paragraph"><a href="https://www.multipath-tcp.org/">Wohingegen an der katholischen Universität in Löwen (Louvain)&nbsp;in Belgien seit&nbsp;über&nbsp;10&nbsp;Jahren an einem <strong>offenen</strong> Standard und <strong>offenen</strong> Implementierung gearbeitet wird</a>. Der führende Entwickler ist seit Jahren bei Apple tätig und hat dort das von ihm mitentwickelte <a href="https://www.multipath-tcp.org/">MPTCP</a> (multipath TCP) in iOS implementiert. Siri als Anwendung setzt beispielsweise seit iOS 7 darauf um dynamisch WiFi und 4G zu bündeln.</p>



<span id="more-1739"></span>



<p class="wp-block-paragraph">Andere Mitglieder des Teams haben 2014 daraus <a href="https://www.tessares.net/">ein Software-Unternehmen </a>gegründet und bieten kommerzielle Services für Telcos an, während sie parallel die freie Weiterentwicklung vorantreiben und dafür in Gremien wie der <a href="https://datatracker.ietf.org/wg/mptcp/documents/">IETF</a> aktiv sind.</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div  style="display: block; margin: 0px auto;"  id="_ytid_17807" class="__youtube_prefs__  __youtube_prefs_gdpr__  epyt-is-override " allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""><p><strong>Please accept YouTube cookies to play this video.</strong> By accepting you will be accessing content from YouTube, a service provided by an external third party.</p>
<p><a href="https://policies.google.com/privacy" target="_blank" rel="noopener">YouTube privacy policy</a></p>
<p>If you accept this notice, your choice will be saved and the page will refresh.</p>
<button type="button" class="__youtube_prefs_gdpr__">Accept YouTube Content<img decoding="async" src="https://blog.rolandmoriz.de/wp-content/plugins/youtube-embed-plus/images/icon-check.png" alt="accept" data-no-lazy="1" data-skipgform_ajax_framebjll="" /></button></div>
</div></figure>



<p class="wp-block-paragraph">Unterstützt werden sie unter anderem von der <a href="https://irtf.org/anrw/2016/anrw16-final21.pdf">Swisscom</a>, von KPN und dem französischen Provider <a href="https://github.com/ovh/overthebox">OVH</a>, die bereits alle kommerzielle Rollouts durchgeführt haben und MPTCP für die Anbindung von Kunden einsetzen. Hier ein Werbevideo von KPN über den Einsatz in den Niederlanden:</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div  style="display: block; margin: 0px auto;"  id="_ytid_76133" class="__youtube_prefs__  __youtube_prefs_gdpr__  epyt-is-override " allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""><p><strong>Please accept YouTube cookies to play this video.</strong> By accepting you will be accessing content from YouTube, a service provided by an external third party.</p>
<p><a href="https://policies.google.com/privacy" target="_blank" rel="noopener">YouTube privacy policy</a></p>
<p>If you accept this notice, your choice will be saved and the page will refresh.</p>
<button type="button" class="__youtube_prefs_gdpr__">Accept YouTube Content<img decoding="async" src="https://blog.rolandmoriz.de/wp-content/plugins/youtube-embed-plus/images/icon-check.png" alt="accept" data-no-lazy="1" data-skipgform_ajax_framebjll="" /></button></div>
</div></figure>



<p class="wp-block-paragraph">Auch die EU förderte das Projekt im Rahmen des Programmes Horizon 2020.</p>



<p class="wp-block-paragraph">Da fragt man sich dann schon, warum sowas in Belgien erdacht und entwickelt und im europäischen Ausland, von Apple global und Samsung regional in Korea erfolgreich ausgerollt und betrieben wird, aber an keiner deutschen Hochschule, an keine Fraunhoferbude und auch nicht bei einem &#8222;Technologie-Unternehmen&#8220; wie der Deutschen Telekom eine ebenbürtige Lösung entwickelt werden konnte, geschweige denn ein offener Standard inklusive einer freien, für jedermann nutzbaren Referenzimplementation. Nein, ohne Huawei geht nichts mehr.</p>



<p class="wp-block-paragraph">Überhaupt spielen deutsche Hochschulen, Forschungseinrichtungen und Unternehmen (inkl. DAX/TecDAX/MDAX-Konzerne) quasi keine Rolle, was die technologischen Grundlagen des Internets und seine Weiterentwicklung angeht. </p>



<p class="wp-block-paragraph">Bezieht man die Landesgröße, Einwohnerzahl, die Anzahl der Hochschulen, die Konzerngrößen und den ganzen Bohai um &#8222;<em>Digitalisierung</em>&#8220; mit ein, ist das Resultat für Deutschland mehr als beschämend.</p>



<p class="wp-block-paragraph">Den gesamten Satz der Internet-<a href="https://de.wikipedia.org/wiki/Request_for_Comments">RFCs</a> seit 1969 gibt es hier zur Analyse: https://www.rfc-editor.org/retrieve/bulk/</p>



<p class="wp-block-paragraph">Wer hingegen jetzt trotzdem auf den Geschmack von Kanalbündelung gekommen ist und es selbst ausprobieren möchte: Das Projekt <a href="https://www.openmptcprouter.com/">https://www.openmptcprouter.com/ </a>stellt sowohl auf OpenWRT basierte Images für Router und Raspberry PIs bereit, als auch Images für den Betrieb der Gegenseite z.B. in der Cloud. Alles OpenSource. Grüßen und Dank nach Frankreich.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/01/15/it-schland-und-hybrid-access-am-beispiel-von-mptcp/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WireGuard über TCP mit WebSockets</title>
		<link>https://blog.rolandmoriz.de/2019/01/13/wireguard-ueber-tcp-mit-websockets/</link>
					<comments>https://blog.rolandmoriz.de/2019/01/13/wireguard-ueber-tcp-mit-websockets/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Sun, 13 Jan 2019 16:00:48 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Hacksport]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[wireguard]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1686</guid>

					<description><![CDATA[WireGuard, mein absolutes Lieblings-VPN, hat eine einzige Schwäche für bestimmte Anwendungen: UDP darf nicht gefiltert bzw. blockiert werden. Das ist bei uns vermutlich kein Problem,&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">WireGuard, mein absolutes Lieblings-VPN, hat eine einzige Schwäche für bestimmte Anwendungen: UDP darf nicht gefiltert bzw. blockiert werden. Das ist bei uns vermutlich kein Problem, Nutzer in undemokratischen Staaten mit Zensurinfrastruktur hingegen werden daran aber unter Umständen verzweifeln. Ein User auf <a href="https://www.reddit.com/r/wireguard">Reddits /r/WireGuard</a> hat nun seinen Hack vorgestellt: Er tunnelt UDP über TCP und zwar genauer über WebSockets:</p>



<p class="wp-block-paragraph"><a href="https://kirill888.github.io/notes/wireguard-via-websocket/">https://kirill888.github.io/notes/wireguard-via-websocket/</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/01/13/wireguard-ueber-tcp-mit-websockets/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WireGuard und die öffentliche Sicherheit</title>
		<link>https://blog.rolandmoriz.de/2019/01/13/wireguard-und-die-oeffentliche-sicherheit/</link>
					<comments>https://blog.rolandmoriz.de/2019/01/13/wireguard-und-die-oeffentliche-sicherheit/#comments</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Sun, 13 Jan 2019 13:13:25 +0000</pubDate>
				<category><![CDATA[Hacksport]]></category>
		<category><![CDATA[Politik]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[wireguard]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1691</guid>

					<description><![CDATA[Während deutsche Politiker aller Parteien, Journalisten und viele Bürger laufend und mit größter Motivation ihre Unkenntnis und Unfähigkeit hinsichtlich IT und IT-Sicherheit zur Schau stellen,&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Während deutsche Politiker aller Parteien, Journalisten und viele Bürger laufend und mit größter Motivation ihre Unkenntnis und Unfähigkeit hinsichtlich IT und IT-Sicherheit zur Schau stellen, setzt sich in den USA bereits ein Senator dafür ein, dass die öffentliche Verwaltung die bisher eingesetzten, als komplex und veraltet geltenden VPN-Lösungen IPSec und OpenVPN durch WireGuard ersetzen soll.</p>



<p class="wp-block-paragraph">Senator Ron Wyden (D) aus Oregon ist bereits 69 Jahre alt und hat sich in der Vergangenheit auch schon kritisch über die Aktivitäten von ZTE/China und das Thema Wahlbeeinflussung durch Hacks geäussert. </p>



<p class="wp-block-paragraph"><a href="https://i.redd.it/iingp89jgg821.jpg">Seine Bitte an das NIST, das National Institute of Standards and Technology, WireGuard als Option für den Regierungs- und Verwaltungseinsatz zu evaluieren, kann man sich hier ansehen.</a>&nbsp;(<a href="https://www.wyden.senate.gov/imo/media/doc/Wyden%20Letter%20to%20NIST%20Re%20Gov%20Use%20of%20Secure%20VPNs.pdf">PDF Original</a>)</p>



<span id="more-1691"></span>



<p class="wp-block-paragraph">Bei uns haben neben oben genannten Bevölkerungsteilen auch quasi alle deutschen Unternehmen dieses Thema bereits längst outgesourced und sich teure Appliances angeschafft (Kombination aus Hard+Software mit Servicevertrag) oder auf cloud-basierte VPN umgestellt. Die liegen nicht nur ausserhalb der eigenen technologischen Verantwortung sondern sorgt &#8222;<em>mit Sicherheit</em>&#8220; auch dafür, dass keinerlei lokales Know-How erhalten oder aufgebaut wird. Die Ausrede &#8222;es ist ja eh nur OpenSource&#8220; trifft zwar zu, aber was, wenn man keine Leute mehr finden und bezahlen kann, die noch verstehen, was die Software im Detail macht?</p>



<p class="wp-block-paragraph">So wird man also noch etwas abwarten müssen, bis die üblichen, dominierenden Software- und Cloud-Anbieter wie Amazon, Cisco, Juniper, Huawei ihre VPN-Produkte aktualisiert haben und dann auch WireGuard einsetzen, vermutlich aber absichtlich in einer inkompatiblen und kryptographisch geschwächten Version…</p>



<p class="wp-block-paragraph">Achja, es gibt ja noch diese <a href="https://de.wikipedia.org/wiki/Sichere_Inter-Netzwerk_Architektur">streng geheime SINA-Box</a> mit<a href="https://de.wikipedia.org/wiki/Chiasmus_(Software)"> proprietär-germanischen Hochleistungs-Krypto-Algorithmen.</a> (Siehe auch: <a href="https://de.wikipedia.org/wiki/Libelle_(Kryptographie)">Libelle</a>). Gottseidank ist Deutschland das einzige Land auf diesem Planeten, in dem <a href="https://de.wikipedia.org/wiki/Security_through_obscurity">Security-by-Obscurity</a> funktioniert (oder auch nicht). <a href="https://de.wikipedia.org/wiki/Enigma_(Maschine)#Kryptographische_Schw%C3%A4chen">Enigma</a> lässt grüßen.</p>



<p class="wp-block-paragraph">PS: WireGuard setzt auf <a href="https://de.wikipedia.org/wiki/Salsa20">ChaCha20</a>, <a href="https://cr.yp.to/mac.html">Poly1305</a>, <a href="https://blake2.net/">Blake2s</a> und <a href="https://cr.yp.to/ecdh.html">Curve25519</a> &#8211; bis auf Blake2s stammen alle genannten Verfahren aus &#8222;der Feder&#8220; von djb (<a href="https://de.wikipedia.org/wiki/Daniel_J._Bernstein">Daniel J. Bernstein</a>).<a href="https://cr.yp.to/cv/cv-20080915.pdf"> Immerhin besitzt djb auch die deutsche Staatsbürgerschaft.</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/01/13/wireguard-und-die-oeffentliche-sicherheit/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>WireGuard, ZeroTier, Bonding</title>
		<link>https://blog.rolandmoriz.de/2019/01/10/wireguard-zerotier-bonding/</link>
					<comments>https://blog.rolandmoriz.de/2019/01/10/wireguard-zerotier-bonding/#comments</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Thu, 10 Jan 2019 16:00:13 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Hacksport]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[mptcp]]></category>
		<category><![CDATA[sdn]]></category>
		<category><![CDATA[vpn]]></category>
		<category><![CDATA[wireguard]]></category>
		<category><![CDATA[zerotier]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1615</guid>

					<description><![CDATA[Nachdem selbst mein Raspberry PI Zero W knapp zwei Tage inkl. WireGuard durchlief (mit PersistentKeepalive-Option) und auch mein Macbook Air &#8222;versehentlich&#8220; drei Tage unbemerkt via&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Nachdem selbst mein Raspberry PI Zero W knapp zwei Tage inkl. WireGuard durchlief (mit <a href="https://www.wireguard.com/quickstart/#nat-and-firewall-traversal-persistence">PersistentKeepalive</a>-Option) und auch mein Macbook Air &#8222;versehentlich&#8220; drei Tage unbemerkt via WireGuard getunnelt hat, bin ich noch mehr von WG überzeugt: Es ist super stabil und kommt ohne viel tooling aus. Wer es mag, kann es komplett mit &#8222;ip(8)&#8220; steuern und braucht operativ keinerlei tools wie z.B. das &#8222;wg-quick&#8220; script.</p>



<p class="wp-block-paragraph"><a href="https://www.youtube.com/watch?v=CejbCQ5wS7Q">Wie der WireGuard-Autor wiederholt bei Vorträgen zu WireGuard gesagt hat,</a> war eines der Ziele ursprünglich das zuverlässige, sichere Exfiltrieren im Rahmen von offensive security-Projekten, nicht unbedingt ein general purpose VPN.</p>



<p class="wp-block-paragraph"> Deshalb ist WireGuard auch das Gegenteil von Geschwätzig und sendet by default keine Keepalives, weshalb man hier selbst Hand anlegen muss. Es gibt auch kein Schlüsselaustauschprotokoll, kein dynamisches Routing oder Mesh. Man solle die Tools verwenden, die man eh schon hat z.B. DevOps für Schlüsselverwaltung oder eben bgp für dynamisches Routing.</p>



<p class="wp-block-paragraph">Auf der anderen Seite des Spektrums befindet sich ein anderes OpenSource-Projekt namens &#8222;<a href="https://zerotier.com/">ZeroTier</a>&#8222;: Ein Software Defined Network mit zentralem Controller, der auch Verbindungen zwischen zwei ge-NAT-teten Clients ermöglicht und noch viel mehr. Ähnlich wie z.B. auch bei Syncthing gibt es Relay-Nodes die Traffic notfalls auch durchleiten, sollte zwischen Teilnehmern keine direkte Verbindung möglich sein.</p>



<p class="wp-block-paragraph">Das alles klingt erstmal sehr gut, andererseits steht dahinter ein US-Unternehmen welches VC erhalten hat und damit auch ordentlich Geld verdienen muss: Der &#8222;Controller&#8220; ist eine Cloud-Lösung und bisher nicht OpenSource bzw. nur eine veraltete Version davon ist frei verfügbar. Meines Wissens regelt der Controller auch, wer einzelnen SDN beitreten darf und könnte so auch für z.B. die NSA von Interesse sein…</p>



<p class="wp-block-paragraph">Ob und wie man so eine SDN-Lösung ohne Abhängigkeiten (Discovery/Relay/Management) zu einem Unternehmen betreiben kann, bleibt offen. Für die nächste ZeroTier-Version ist eine Multipath-Unterstützung geplant, sodass man verschiedene Anbindungen bündeln kann (bonding).</p>



<p class="wp-block-paragraph">Das geht mit WireGuard unter Linux (und nur dort) wahrscheinlich auch,  wenn man auf beiden Seiten Kernel mit MPTCP-Unterstützung am Start hat. Aus dem OVH und Free-Umfeld in Frankreich stammen viele Projekte um MPTCP und Uplink-Bündelungen, bei denen bisher zB shadowsocks eingesetzt wird. </p>



<p class="wp-block-paragraph">Unabhängig von WireGuard interessant, wenn man unter einer angespannten Breitbandversorgung, insbesondere beim upstream, leidet. Ich erhoffe von diesen Projekten auch eine Evaluierung von WireGuard für die Bonding-Zwecke und versuche immer mal wieder die Updates zu verfolgen:</p>



<p class="wp-block-paragraph">Linkliste:</p>



<ul class="wp-block-list"><li>https://www.ovhtelecom.fr/overthebox/ (In Frankreich kommerziell angebotene Lösung von OVH)</li><li>https://github.com/ovh/overthebox (Repo dazu)</li><li><a href="http://zehome.github.io/MLVPN/">http://zehome.github.io/MLVPN/</a></li><li><a href="https://github.com/Ysurac/openmptcprouter">https://github.com/Ysurac/openmptcprouter</a></li></ul>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/01/10/wireguard-zerotier-bonding/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>&#8222;oui Unknown&#8220;</title>
		<link>https://blog.rolandmoriz.de/2019/01/10/oui-unknown/</link>
					<comments>https://blog.rolandmoriz.de/2019/01/10/oui-unknown/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Thu, 10 Jan 2019 11:29:51 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Hacksport]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1605</guid>

					<description><![CDATA[Wer tcpdump verwendet, wird sich täglich über die Ausgabe &#8222;(oui Unknown)&#8220; ärgern. Hierbei geht es um den &#8222;organizationally unique identifier&#8220; einer MAC-Adresse, also den Hersteller&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wer tcpdump verwendet, wird sich täglich über die Ausgabe &#8222;(oui Unknown)&#8220; ärgern. Hierbei geht es um den &#8222;organizationally unique identifier&#8220; einer MAC-Adresse, also den Hersteller des Gerätes bzw. Interfaces. Die Zuordnung eines Präfixes und Verwaltung dieser laufend wachsenden Liste unterliegt der IEEE und ist mit Gebühren verbunden.</p>



<p class="wp-block-paragraph">Das Abrufen der gesamten Liste ist noch gratis…</p>



<p class="wp-block-paragraph">… doch leider hat die IEEE die Adresse der Liste geändert (vermutlich schon in 2015), sodass sämtliche Bordmittel verbreiteter Linux-Systeme zur Aktualisierung nicht mehr funktionieren, beispielsweise das Aktualisierungs-Script des &#8222;ieee-data&#8220; Packages in Debian, das <a href="https://salsa.debian.org/pkg-security-team/aircrack-ng/blob/debian/master/debian/helper-scripts/airodump-ng-oui-update">zudem der motivierte Debian-Betreuer des &#8222;aircrack-ng&#8220; Paketes auch statt der lange aktualisierten upstream-Version von &#8222;airodump-ng-oui-update&#8220; einsetzt…</a></p>



<span id="more-1605"></span>



<p class="wp-block-paragraph">Vermutlich setzen auch dutzende andere Tools auf die ehemalige URL &#8222;http://standards.ieee.org/regauth/oui/oui.txt&#8220; und laufen seit einigen Jahren ins Leere.</p>



<p class="wp-block-paragraph">tcpdump hingegen kann dies nicht passieren. Es gibt schlicht keinen Code, die Liste in das binary einzubauen oder &#8211; sehr viel sauberer &#8211; extern anzubinden. <a href="https://github.com/the-tcpdump-group/tcpdump/blob/master/oui.c">So findet sich weiter der Hinweis &#8222;/* FIXME complete OUI list using a script */&#8220; in der Datei oui.c.</a></p>



<p class="wp-block-paragraph"><a href="https://seclists.org/tcpdump/2014/q4/21">2014 traute sich ein Anwender zu fragen, was das soll: &#8222;Make it better&#8220; war die Antwort.</a></p>



<p class="wp-block-paragraph">Schaut man sich allerdings die offizielle Datenquelle bei der IEEE an, wird einem Angst und Bange: &#8222;The world&#8217;s largest technical professional organization dedicated to advancing technology for the benefit of humanity.&#8220; schafft es nicht einmal, ihre trivialsten Datensätze zu normalisieren.</p>



<p class="wp-block-paragraph">Und so gibt es wieder andere Tools und Datenanbieter, welche die Daten aufbereiten. Beispielsweise <a href="https://linuxnet.ca/ieee/oui/"><a href="https://linuxnet.ca/ieee/oui/">https://linuxnet.ca/ieee/oui/</a></a></p>



<p class="wp-block-paragraph">Spätestens jetzt sollte man eigentlich fragen, ob Informationstechnologie wirklich etwas gutes ist und warum so viel Versagen an kritischen Punkten zugelassen wird. Jeder von uns &#8222;Professionals&#8220; wühlt täglich im Schlamm (oder den Exkrementen) unserer Branche, einige waschen sich bei Feierabend nicht mal die Hände…</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/01/10/oui-unknown/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Fahndung nach MAC-Adresse</title>
		<link>https://blog.rolandmoriz.de/2019/01/10/fahndung-nach-mac-adresse/</link>
					<comments>https://blog.rolandmoriz.de/2019/01/10/fahndung-nach-mac-adresse/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Wed, 09 Jan 2019 23:24:33 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Hacksport]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1578</guid>

					<description><![CDATA[Die Polizei Brandenburg sucht aktuell den Eigentümer eines Gerätes mit der MAC-Adresse f8:e0:79:af:57:eb als Tatverdächtiger in einem Erpressungsfall. Wäre ich Ermittler beim Brandenburger LKA, ich&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a href="https://polizei.brandenburg.de/pressemeldung/f8-e0-79-af-57-eb-cyber-fahndung-nach-ma/1310909">Die Polizei Brandenburg sucht aktuell den Eigentümer eines Gerätes mit der MAC-Adresse f8:e0:79:af:57:eb als Tatverdächtiger in einem Erpressungsfall.</a></p>



<p class="wp-block-paragraph">Wäre ich Ermittler beim Brandenburger LKA, ich hätte mir 100 Raspberry PIs besorgt, darauf Kismet installiert, diese mit Powerbanks quer über das Land verteilt (oder fliegend in Polizeifahrzeuge verbaut) und würde mir sämtliche Daten in der Cloud sammeln und auswerten. Der Aufwand hierfür liegt im niedrigen fünfstelligen Bereich, mit 3G/4G Upstream etwas höher.</p>



<span id="more-1578"></span>



<p class="wp-block-paragraph">Darüber bekäme man nicht nur mit, wann und wo diese MAC-Adresse auftaucht, sonder auch in welche Netze sie sich einbucht (und welche anderen MAC-Adressen dies ebenfalls tun). Man kann dann vor dem Zugriff auch ermitteln, zu welcher Tageszeit welcher Client aktiv ist und so den Zugriff mit Spezialkräften planen. All das bläst jedes WiFi-Gerät in die Luft und ist auch ohne Überlistung der WPA2-Verschlüsselung auswertbar: <strong>In den Metadaten stecken alle notwendigen Informationen.</strong></p>



<p class="wp-block-paragraph">Vermutlich ist mit diesem Gang an die Öffentlichkeit diese Chance vertan, der Täter dürfte das Gerät vermutlich jetzt spätestens vernichtet haben.</p>



<p class="wp-block-paragraph">Hier ein aktuelles Video zu <a href="https://www.kismetwireless.net">Kismet</a>, dem Tool für WiFi-Analyse der Wahl:</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div  style="display: block; margin: 0px auto;"  id="_ytid_19695" class="__youtube_prefs__  __youtube_prefs_gdpr__  epyt-is-override " allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""><p><strong>Please accept YouTube cookies to play this video.</strong> By accepting you will be accessing content from YouTube, a service provided by an external third party.</p>
<p><a href="https://policies.google.com/privacy" target="_blank" rel="noopener">YouTube privacy policy</a></p>
<p>If you accept this notice, your choice will be saved and the page will refresh.</p>
<button type="button" class="__youtube_prefs_gdpr__">Accept YouTube Content<img decoding="async" src="https://blog.rolandmoriz.de/wp-content/plugins/youtube-embed-plus/images/icon-check.png" alt="accept" data-no-lazy="1" data-skipgform_ajax_framebjll="" /></button></div>
</div><figcaption><br><br><br></figcaption></figure>



<p class="wp-block-paragraph">So langsam kommt bei mir wieder Nostalgie auf: Damals, in 2002, wie ich mit einem Firmen-Notebook und privater 802.11b PCMCIA/PC-Card, Kismet und Netstumbler per Straßenbahn &#8222;WarDriving&#8220; in München betrieben habe <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">(Deshalb besitze ich bis heute auch noch die Domain wardriving.de )</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/01/10/fahndung-nach-mac-adresse/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Robert Habeck macht alles noch schlimmer.</title>
		<link>https://blog.rolandmoriz.de/2019/01/07/robert-habeck-macht-alles-noch-schlimmer/</link>
					<comments>https://blog.rolandmoriz.de/2019/01/07/robert-habeck-macht-alles-noch-schlimmer/#comments</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Mon, 07 Jan 2019 13:44:00 +0000</pubDate>
				<category><![CDATA[Medien]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1542</guid>

					<description><![CDATA[Wer den Schaden hat, braucht für den Spott nicht zu sorgen. Oder wie es beim Fussball üblich ist: Der gefoulte schiesst nicht selbst den Elfmeter.&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wer den Schaden hat, braucht für den Spott nicht zu sorgen. Oder wie es beim Fussball üblich ist: Der gefoulte schiesst nicht selbst den Elfmeter.</p>



<p class="wp-block-paragraph">Robert Habeck wurde, wie einige andere Politiker und Social-Media-Leute, Opfer einer Cracker-Attacke. Vermutlich eine Person hat sich Zugang zu diversen Accounts beschafft, ob Social Media (Twitter/Facebook), Mail oder Cloud-Speicher. Soweit man weiss, haben die Betroffenen dort weder verfügbare <a href="https://de.wikipedia.org/wiki/Zwei-Faktor-Authentisierung">2-Faktor-Authentisierungen</a> genutzt, noch sonstige Vorkehrungen getroffen, um solche Attacken durch Selbstschutz zu verhindern (sichere, lange, einfach genutzte Passwörter &#8211; zB mittels Passwortmanager).</p>



<p class="wp-block-paragraph">Nun sind also persönliche Daten und teilweise auch Dinge aus dem familiären Umkreis veröffentlicht worden und die Betroffenen leiden, gut nachvollziehbar, unter einem Trauma (ähnlich Einbruchs- oder Überfallsopfer). </p>



<p class="wp-block-paragraph">Es macht die Sache auch nicht besser, dass selbsternannte Netzpolitiker wie Konstantin von Notz (Grüne) zu den stark betroffen gehören, wo man doch vielleicht gerade von ihnen etwas mehr Sorgfalt im digitalen Alltag erwarten hätte können?</p>



<span id="more-1542"></span>



<p class="wp-block-paragraph">Wie auch immer: Selbst Habeck forder nun eine &#8222;harte Hand&#8220;: Der Staat solle &#8222;die Sicherheit im Internet&#8220; überwachen, vorschreiben, sicherstellen, sich in die Passwortvergabe einmischen und Anbieter und Nutzer &#8222;zwingen&#8220;. Gleichzeitig werden Forderungen aus allen Lagern gegen das BSI und BMI Seehofer erhoben, man hätte doch schon Anfang Dezember die Tweets lesen müssen, in denen die Dokumente geleaked wurden.</p>



<p class="wp-block-paragraph">Also eine Forderung nach Massenüberwachung von Tweets, Facebook und des Webs durch das BND-nahe BSI? Vorratsdatenspeicherung aller in Deutschland &#8222;produzierten&#8220; Tweets? Oder gleich IP-Verbindungen?</p>



<p class="wp-block-paragraph">Habecks heutige Äusserungen zeugen davon, dass er absolut keine Ahnung von IT-Sicherheit und Bürgerrechten hat, wenn er sich bei so einer &#8222;harmlosen&#8220; und selbsverschuldeten Aktion sofort zu einem rechtskonservativen Hardliner wandelt, statt sich zuerst die eigenen Missstände einzugestehen und an die Verantwortung jedes IT-Nutzers zu appellieren.</p>



<p class="wp-block-paragraph">Das BSI gibt seit Jahren diverse Leitfäden heraus (<a href="https://www.bsi.bund.de/DE/Themen/ITGrundschutz/itgrundschutz_node.html">IT-Grundschutz,</a> <a href="https://www.bsi-fuer-buerger.de/BSIFB/DE/Home/home_node.html">BSI für Bürger</a>) mit durchaus sinnvollen Empfehlungen, die persönliche und auch unternehmerische IT-Sicherheit zu verbessern. Auch 2FA und andere Dinge sind dort erfasst, aber werden von der breiten Masse inkl. MdBs aus Faulheit und Inkompetenz nicht umgesetzt.</p>



<p class="wp-block-paragraph">Die Ursachen hinter dieser digitalen Inkompetenz vieler Bürger und fast aller Bundespolitiker, egal welcher Partei, ist vielschichtig:</p>



<p class="wp-block-paragraph">Einerseits rein monetär: Wer etwas in der IT kann, wird sich nicht auf eine schlecht bezahlte und von vielen externen Faktoren (Partei, Wähler) abhängige Karriere einlassen sondern schlicht eine IT/InfoSec-Karriere verfolgen und in Ruhe gelassen werden. Ähnliches gilt für eine Laufbahn im Öffentlichen Dienst.</p>



<p class="wp-block-paragraph">Andererseits hat es Deutschland als Nation digital so richtig verkackt: Nicht einmal in der theoretischen Informatik gibt es in Deutschland international nennenswertes Know-How, von der praktischen Ausbildung ganz abgesehen.</p>



<p class="wp-block-paragraph">Man hat in Deutschland in den letzten 40 Jahren nie nennenswert Hardware (bspw. Prozessoren) entwickelt, so wie z.B. in Großbritannien mit <a href="https://de.wikipedia.org/wiki/Acorn">Acorn, </a>aus dessen Umfeld später ARM und auch die großartigen Edu-Projekte <a href="https://de.wikipedia.org/wiki/BBC_Micro">BBC Micro (1980er)</a>, <a href="https://microbit.org/de/">Microbit</a> und natürlich <a href="https://www.raspberrypi.org/">Raspberry Pi en</a>tstanden und bis heute einen Prozessor-Technologiecluster um Cambridge &#8222;füttern&#8220;.</p>



<p class="wp-block-paragraph">Alles, was von Siemens, Schneider, Nixdorf oder gar von Robotron in der DDR gebaut wurde, basiert auf (un-)lizenzierter Technologie aus den USA (oder heute eben auch von ARM aus UK). Die einzige Fabrik, welche immerhin Mainboards in Deutschland herstellte, <a href="https://www.technik-einkauf.de/news/fujitsu-schliesst-sein-werk-in-augsburg/">wird bis 2020 geschossen</a>.</p>



<p class="wp-block-paragraph">Auch im Bereich Systemsoftware wurde in Deutschland die letzten 35 Jahre nichts geleistet: Linux, Windows, macOS als Betriebssysteme aber auch Programmiersprachen und Internet-Standards sind in Deutschland nicht nennenswert entwickelt worden oder als Bonsaiprojekte zur Erlangung eines Hochschulabschlusses (also nur für den Mülleimer, nicht für die Praxis).</p>



<p class="wp-block-paragraph">Das Windows-Monopol bei den Endbenutzern in den 1990ern tat den Rest, man wurde hier zum schlichten Anwender dressiert und das ist bis heute so, erfasste sämtliche Bildungseinrichtungen und Ausbildungspfade: Selbst Fachinformatiker werden nur dazu ausgebildet, ein Windows-System zu administrieren oder in Java zu programmieren und sind diesen System auf Gedeih und Verderb ausgeliefert.</p>



<p class="wp-block-paragraph">Auch in meiner beruflichen Laufbahn <em>*in*</em> der IT-Branche erlebte und erlebe ich in Deutschland selbst in IT-Abteilungen in strategischen &#8222;Online/E-Commerce&#8220; vollkommenes Unwissen über die Grundlagen unserer Computer und Netze und das auch noch 2019. Wie etwas funktioniert, warum etwas funktioniert, nach welchen Standards und wie diese Standards zustande kamen und weiterentwickelt werden: Völlig unbekannt. Einrichtung von simplen Dingen wie Mail-Accounts? 95% der Nutzer sind überfordert, obwohl sie &#8222;im Internet Geld verdienen&#8220; wollen.</p>



<p class="wp-block-paragraph">Nicht umsonst rate ich daher dem motivierten Nachwuchs mit starkem privaten Engagement in unserem Sektor sich bei erstbester Gelegenheit nach dem Abitur oder den ersten Semestern ins Ausland zu verabschieden, insbesondere natürlich in die USA, meinetwegen aber auch in die Schweiz. Ansonsten wird man hier im Laufe seines Lebens einen hohen persönlichen Preis für das digitale Versagen der Gesellschaft, Wirtschaft und Politik bezahlen:</p>



<p class="wp-block-paragraph">Wir entwickeln Software auf Systemen, die Unternehmen aus den USA für uns entwickelt haben auf Computern, die US- oder chin. Unternehmen in Asien für uns gebaut haben, in Programmiersprachen, die meist US-Unternehmen für uns entwickelt haben. Und das ganze läuft später dann in der Cloud von US-Unternehmen wie Amazon, Microsoft oder Google. Versteuert wird auf Bermuda.</p>



<p class="wp-block-paragraph"><strong>Deutschland ist digital bankrott.</strong></p>



<p class="wp-block-paragraph">Selbst in Brexit-Großbritannien ist, entgegen der Darstellung in unseren Medien, die Digitalisierung viel weiter fortgeschritten als bei uns: Hinter <a href="https://www.gov.uk/">https://www.gov.uk/ </a>gibt es nicht nur ein breites Bürgerportal sondern eine große Digitalisierungs-Abteilung mit Entwicklern, Projektmanagern und  Designern, die<strong> seit Jahren</strong> Services für Bürger und Behörden umsetzt. Und zwar nach modernsten Vorgehensweisen der IT mit einem öffentlichen <a href="https://www.gov.uk/service-manual/agile-delivery">Handbuch/Leitfaden,</a> das vielen privatwirtschaftlichen IT-Unternehmen(!) in unserem Land überlegen ist.</p>



<p class="wp-block-paragraph">Viele dorrt entwickelten Webanwendungen und Dokumentationen sind <a href="https://github.com/alphagov">quelloffen</a> auf GitHub und wären auch für uns verwendbar (wenn auch nur als Inspiration), würde es jemand begreifen und anwenden.</p>



<p class="wp-block-paragraph">Kein Politiker begreift es bisher, weder von den Grünen noch der FDP. Von SPD und Union ganz zu schweigen. Meines Wissens kann kein einziger MdB programmieren, sämtliche angeblichen &#8222;IT-Unternehmer&#8220; aus dem FDP-Lager hatten Media-Agenturen/Werbeagenturen und Webdesign-Klitschen um 2000, die allesamt insolvent gingen. Nennenswerte Software oder gar Hardware wurde nicht produziert.</p>



<p class="wp-block-paragraph">Wenn man also jetzt selbst vom &#8222;liberalen&#8220; Lager eine staatliche Intervention fordert, dann ist das nichts anderes, als endgültig eine Mauer bauen zu wollen: Staatliche Hürden gegen Innovation, die man selbst nicht liefern oder mitgestalten kann. Solche eine Abschottung ist zum Scheitern verurteilt, wie die DDR oder andere nationalistischen Systeme, die gegen &#8222;Globalisierung&#8220; und Marktwirtschaft nichts anderes zustande bekommen, als sich selbst meterhoch im eigenen Dung einzugraben, auf bessere Zeiten zu hoffen und irgend einen <strong>ausländischen Sündenbock für das eigene Versagen verantwortlich zu machen.</strong></p>



<p class="wp-block-paragraph">Im übrigen: Wenn in Deutschland eine zweite Fremdsprache eine Voraussetzung für eine Hochschulreife ist, warum nicht auch eine Programmiersprache?</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">PS: Die Entscheidung Habecks, Twitter- und Facebook-Accounts stillzulegen ist eine gute Entscheidung, die ich auch umgesetzt habe. Diese Plattformen sind toxisch, man feindet sich laufend an und rotzt emotionale Meinungen in die Welt. Für sachliche Diskussionen oder gar Überzeugungsarbeit ist kein Platz und dementsprechend ist das ganze für alle Beteiligten unproduktiv. Lernt lieber z.B. Programmieren.</p>



<p class="wp-block-paragraph"> </p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/01/07/robert-habeck-macht-alles-noch-schlimmer/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Produktempfehlung für RTL-SDR</title>
		<link>https://blog.rolandmoriz.de/2019/01/04/produktempfehlung-fuer-rtl-sdr/</link>
					<comments>https://blog.rolandmoriz.de/2019/01/04/produktempfehlung-fuer-rtl-sdr/#comments</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Fri, 04 Jan 2019 11:47:45 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Hacksport]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Mobilfunk]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1466</guid>

					<description><![CDATA[(RTL steht für den verwendeten Chipsatz RTL2832U (und weitere), SDR steht für &#8222;Software Defined Radio&#8220;, also ein per Software gesteuertes/implementiertes Radio, d.h. der Hardware-Tuner liefert&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>(<strong>RTL</strong> steht für den verwendeten Chipsatz RTL2832U (und weitere), <strong>SDR</strong> steht für &#8222;Software Defined Radio&#8220;, also ein per Software gesteuertes/implementiertes Radio, d.h. der Hardware-Tuner liefert nur Rohsignale, die Demodulation/Verarbeitung erfolgt ausschliesslich in Software. Die &#8222;Entdeckung&#8220; der Zweitnutzung handelsüblicher DVB-T USB-Empfänger hierfür geht u.A. auf das <a href="https://osmocom.org/projects/rtl-sdr/wiki/Rtl-sdr">Osmocom Projekt</a> zurück)</em></p>



<p class="wp-block-paragraph">Nach ersten Versuchen mit einem &#8222;billigen&#8220; (ca 15€) China-Restposten-DVB-T USB-Stick mit R820T Tuner habe ich etwas Geld in die Hand genommen und mir über<a href="https://www.amazon.de/gp/product/B06Y1GN5RP/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;tag=rolandmoriz-21&amp;creative=6742&amp;linkCode=as2&amp;creativeASIN=B06Y1GN5RP&amp;linkId=9c0e4b2397a331897816766ac1bf23ac"> Amazon.de den NooElec NESDR SMArTee XTR inkl. Zubehör</a> besorgt.</p>



<figure class="wp-block-image"><img decoding="async" src="https://www.nooelec.com/store/media/catalog/product/cache/1/image/1200x/040ec09b1e35df139433887a97daa66f/1/0/100725_1.png" alt=""/></figure>



<p class="wp-block-paragraph">Der dort verbaute E4000 Tuner kann noch ein etwas breiteres Spektrum inkl. ~1800 MHz empfangen, als die sonst üblichen R820T/T2 Tuner, allerdings mit einem &#8222;Loch&#8220; im Bereich von ADS-B, ist dafür also nicht geeignet. Im Lieferumfang sind ein Magnetfuss und drei Antennen-Aufsätze enthalten.</p>



<p class="wp-block-paragraph">Während ich mit dem bisherigen &#8222;Billo&#8220; RTL2832U R820T im &#8222;alten&#8220; 900MHz-GSM-Frequenzbereich gerade mal 2 Base Stations empfangen konnte, schaffe ich mit dem Nooelec (<a href="https://www.nooelec.com/store/nesdr-smartee-xtr.html">Link zum Hersteller</a>) deutlich mehr:</p>



<span id="more-1466"></span>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/01/image-1.png" alt="" class="wp-image-1468" width="774" height="612" srcset="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/01/image-1.png 879w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/01/image-1-300x238.png 300w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/01/image-1-768x608.png 768w" sizes="auto, (max-width: 774px) 100vw, 774px" /><figcaption>Die Werte in der Spalte MNC stehen für den Netzbetreiber:<br> 1 Telekom, 2 Vodafone, 3 Telefonica. <br>10 wäre GSM-R der Deutschen Bahn.</figcaption></figure>



<p class="wp-block-paragraph">Hier das Ergebnis eines kurzen Sniffs mit <a href="https://github.com/Oros42/IMSI-catcher">https://github.com/Oros42/IMSI-catcher</a> auf 1854.0M. Die erste Spalte enthält einen Zähler neuer/eindeutiger Geräte, Spalte vier beinhaltet die <a href="https://de.wikipedia.org/wiki/International_Mobile_Subscriber_Identity">IMSI</a>, dahinter folgen Land und Provider/Heimatnetz. </p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1352" height="716" src="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2019/01/sdr.gif" alt="" class="wp-image-1469"/></figure>



<p class="wp-block-paragraph">In Anbetracht der vielen Bänder und der Datenmenge (innerhalb von ca 15 Sekunden) ist es allerdings nicht besonders realistisch, <a href="https://blog.rolandmoriz.de/2019/01/02/palim-palim-eine-flasche-metadaten/">hier ein Tracking aufzubauen</a>: Der Tuner kann nur eine Frequenz gleichzeitig empfangen und somit müsste ich einen ganzen Haufen Empfänger parallel betreiben. Mit der Migration zu VoLTE wird vermutlich auch bald diese Möglichkeit der Metadaten-Erfassung nicht mehr für 15-50€ pro Frequenz möglich sein.</p>



<p class="wp-block-paragraph">Und passend zum Thema empfehle ich einen der inhaltlich stärksten Vorträge des vergangenen 35C3:</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div  style="display: block; margin: 0px auto;"  id="_ytid_52212" class="__youtube_prefs__  __youtube_prefs_gdpr__  epyt-is-override " allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""><p><strong>Please accept YouTube cookies to play this video.</strong> By accepting you will be accessing content from YouTube, a service provided by an external third party.</p>
<p><a href="https://policies.google.com/privacy" target="_blank" rel="noopener">YouTube privacy policy</a></p>
<p>If you accept this notice, your choice will be saved and the page will refresh.</p>
<button type="button" class="__youtube_prefs_gdpr__">Accept YouTube Content<img decoding="async" src="https://blog.rolandmoriz.de/wp-content/plugins/youtube-embed-plus/images/icon-check.png" alt="accept" data-no-lazy="1" data-skipgform_ajax_framebjll="" /></button></div>
</div></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/01/04/produktempfehlung-fuer-rtl-sdr/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Palim, Palim: Eine Flasche Metadaten!</title>
		<link>https://blog.rolandmoriz.de/2019/01/02/palim-palim-eine-flasche-metadaten/</link>
					<comments>https://blog.rolandmoriz.de/2019/01/02/palim-palim-eine-flasche-metadaten/#comments</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Wed, 02 Jan 2019 06:01:54 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Mobilfunk]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1401</guid>

					<description><![CDATA[Ich arbeite oft von zuhause und empfange regelmäßig Pakete. Aber es nerven auch laufend Werbemüllverteiler am Klingelschalter. Blöderweise befindet sich mein Home-Office im Untergeschoss ohne&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ich arbeite oft von zuhause und empfange regelmäßig Pakete. Aber es nerven auch laufend Werbemüllverteiler am Klingelschalter. Blöderweise befindet sich mein Home-Office im Untergeschoss ohne Zugang zur Wechselsprechanlage oder Tür-Öffnungsknopf. Selbst wenn ich mit etwas Bastelei an der Siedle-Sprechanlage den Öffnungsimpuls noch per WiFi absenden könnte, so muss ich dann doch die Wendeltreppe hinauf zur Wohnungstüre und dort nachschauen, ob es für mich oder den Mülleimer geklingelt hat.</p>



<p class="wp-block-paragraph">Nun leben wir in Zeiten, wo sich alle Menschen unbewusst überwachen lassen und das sogar passiv. Schienen RFID-Attacken auf Personalausweise, Gesundheitskarten oder vom Hersteller in Textilien eingenähten Tags mit großen Antennen etwas weit hergeholt, geht es mit Funkverbindungen sehr viel einfacher:</p>



<p class="wp-block-paragraph">Jeder von uns trägt ein Smartphone oder eine Smartwatch bei sich, manche sogar mehrere. Die Smartphones buchen sich in Mobilfunknetze ein und halten ständig Kontakt zum nächsten Sendemast, senden regelmäßig Datenpakete um den jeweils am besten zu erreichenden zu ermitteln.</p>



<p class="wp-block-paragraph">Und genau das tun auch alle WiFi-Clients: Sie senden regelmäßig Anfragen um für sie bekannte WLAN-Netze zu ermitteln und dann ggf. automatisch zu verbinden.</p>



<p class="wp-block-paragraph">Beides lässt sich passiv mitschneiden und auswerten. </p>



<span id="more-1401"></span>



<p class="wp-block-paragraph">Für GSM eignet sich z.B. ein alter DVB-T USB-Stick für 15€: Hierbei werden die IMSIs (Weltweit eindeutige Nummer zur Identifikation des Subscribers) der SIM-Karten und dadurch auch das jeweilige Ursprungsnetz übertragen.</p>



<p class="wp-block-paragraph">Tools:</p>



<ul class="wp-block-list"><li><a href="https://github.com/Oros42/IMSI-catcher">https://github.com/Oros42/IMSI-catcher</a></li></ul>



<p class="wp-block-paragraph">Bei WiFi ist es die MAC-Adresse des Gerätes bzw. eine zufällig generierte und eine Liste der bekannten SSIDs, also Netzwerknamen. Zwar wird die MAC-Adresse, also die weltweit eindeutige Hardware-Adresse verschleiert, aber das spielt keine Rolle, wenn die gesuchten SSIDs eindeutig sind. </p>



<p class="wp-block-paragraph">Tools:</p>



<ul class="wp-block-list"><li><a href="https://github.com/hkm/whoishere.py">https://github.com/hkm/whoishere.py</a></li><li><a href="https://github.com/xdavidhu/probeSniffer">https://github.com/xdavidhu/probeSniffer</a></li></ul>



<p class="wp-block-paragraph">Beide Vorgehensweisen sind rein passiv, man sendet nichts, man knackt keine Verschlüsselung, man hört einfach nur mit, was im Klartext übertragen wird. Was man dann damit macht, ist das Entscheidende: Will man Personen erkennen, so muss man entweder einmalig eine eindeutige Zuordnung durchführen, also wissen, wann eine Person in der Umgebung war und welche Metadaten man davon aufgezeichnet hat. </p>



<p class="wp-block-paragraph">Die sofortige Identifikation gelingt vermutlich nur bei wenigen Teilnehmern/Signalen oder falls man durch die Signalstärke eindeutig einen nahegelegenen Teilnehmer ausmachen kann. </p>



<p class="wp-block-paragraph">Paketboten tragen aber üblicherweise mindestens ein Smartphone mit sich herum, schlagen regelmäßig hier auf und sind über den Zeitpunkt zuordenbar:</p>



<ol class="wp-block-list"><li>Man schreibt sämtliche Metadaten über eine Woche mit</li><li>Man erfasst jeweils den Zustellzeitpunkt</li><li>Man gleicht die Daten ab</li><li>Man entfernt alle Teilnehmer, die auch 6 Stunden früher oder 6 Stunden später erfasst wurden (Nachbarn)</li></ol>



<p class="wp-block-paragraph">Spätestens nach einigen Tagen sollte man daraus eine sehr kurze, vielleicht sogar eindeutige Liste generieren können, die man immer weiter eindampfen kann.</p>



<p class="wp-block-paragraph">Bleibt natürlich das Problem, dass sich das Personal häufig abwechselt oder ausgewechselt wird. Hier müsste man nun schauen, ob über die WiFi-Liste nicht z.B. eine eindeutige Netzkennung ermittelbar ist, z.B. die WLAN-Netze innerhalb eines UPS/DPD/DHL/Hermes/GLS-Depots? </p>



<p class="wp-block-paragraph">Letztlich sieht man, wie viele Metadaten von uns für jeden abgreifbar sind und mit etwas Datenerfassung, weit jenseits von dem, was man als &#8222;big data&#8220; bezeichnet, personalisierbar sind. Stellt man sich nun ausreichend Energie vor, so könnte man auch noch viel genauere Bewegungsprofile erstellen, wenn man regionale verteilte Sammelstellen aufstellt, die erfassten Kennungen in Echtzeit in die Cloud schieben, wo sie dann zusammengefügt bzw. ausgewertet werden.</p>



<p class="wp-block-paragraph">Die Kosten sind minimal: Rasperry PI 3, dazu ein RTL-SDR-fähiger DVB-T-Stick für die GSM-Signale und Kali-Linux<a href="https://github.com/seemoo-lab/nexmon"> oder 15 Minuten Gefrickel um den Monitor-Mode auf einem Raspbian zu aktivieren.</a></p>



<p class="wp-block-paragraph">Und was fällt uns nach GSM und WiFi ein? Genau. <a href="https://github.com/MS3FGX/Bluelog">Bluetooth</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/01/02/palim-palim-eine-flasche-metadaten/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Zensur durch die Kreditkartenanbieter</title>
		<link>https://blog.rolandmoriz.de/2019/01/02/zensur-durch-die-kreditkartenanbieter/</link>
					<comments>https://blog.rolandmoriz.de/2019/01/02/zensur-durch-die-kreditkartenanbieter/#comments</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Wed, 02 Jan 2019 00:56:55 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Finanzen]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Startup]]></category>
		<category><![CDATA[Wirtschaft]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1410</guid>

					<description><![CDATA[In den USA wird ein Thema gerade groß: Patreon, eine Community-Plattform zur Einsammlung und Verteilung von &#8222;Spenden&#8220; für Aktivisten, Blogger, Websitebetreiber und Contentproduzenten aller Art&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a href="https://www.youtube.com/watch?v=h8_OrrvaVVw">In den USA wird ein Thema gerade groß:</a> Patreon, eine Community-Plattform zur Einsammlung und Verteilung von &#8222;Spenden&#8220; für Aktivisten, Blogger, Websitebetreiber und Contentproduzenten aller Art hat diversen Leuten den Account geschlossen und Gelder einbehalten. Angeblich auf Druck eines der großen Kreditkarten-Anbieter.</p>



<p class="wp-block-paragraph">Gerade im libertär-konservativen Bereich beginnt man zu erkennen, dass hier nicht nur alt-right-Nazis &#8222;ohne Prozess&#8220; ausgeschlossen werden, sondern eben dieses Mal auch Leute aus dem &#8222;normalen&#8220; Spektrum. Sexworker, welche üblicherweise eher links verortet sind, haben schon vor Jahren ihre Accounts bei PayPal verloren und waren vor einigen Monaten auch bei Patreon wieder auf der Abschussliste, wieder sollen die Kreditkarten-Betreiber auf Basis ihrer Risk-Management-Policy eingeschritten sein.</p>



<p class="wp-block-paragraph">Auch bei uns erkennt man die Macht der Kreditkartenunternehmen: So fallen z.B. fürs Lotto-Spiel zusätzliche Gebühren an in saftigen Höhen: 5€ pro Vorgang! Nun wird man das wohl mit &#8222;gestiegenem regulatorischen Aufwand und Zahlungsausfallrisiken&#8220; begründen, ist aber letztlich nichts anderes, als eine Diskriminierung. So wie Facebook und Instagram pauschal blanke Nippel bestrafen, weil manche Teile der USA oder restlichen Welt damit nicht umgehen können, so wird der Zahlungsverkehrs-Filter nun global ausgerollt.</p>



<span id="more-1410"></span>



<p class="wp-block-paragraph">Ausnahmsweise hat hier Europa mit dem SEPA-Zahlungssystem eine wirklich brauchbare Alternative mit ca. 524 Millionen Menschen. Von Island, Norwegen, Eurozone, Schweiz… alle sind dabei, die Konditionen sind relativ strikt reguliert und Zahlungsvorgänge müssen in einer sehr kurzen Frist ausgeführt werden. Weiterhin dürfen ausländische SEPA-Bankverbindungen nicht diskriminiert werden und somit besteht eine viel größere Chance, eine kontoführende Bank für sein Unternehmen, sein Unterfangen, sein Hobby oder einfach seiner Sache zu finden.</p>



<p class="wp-block-paragraph">Ist das gut? Ich erinnere mich, wie wir uns damals gefreut oder beschwert haben, dass eine Sparkasse einem Naziverein das Konto gekündigt oder eben nicht gekündigt hat. Wir dachten, das würde unter gesellschaftlichem Engagement laufen und natürlich nur in begründeten Fälle ablaufen, aber letztlich sollte man sehr aufpassen damit. Womöglich eröffnen Banken sonst politischen Gruppen <strong>jeglicher</strong> Richtung auch nur noch sehr ungerne ein Konto um Stress zu vermeiden oder kündigen beim ersten Sockenpuppen-Shitstorm das Konto? Und überhaupt: Wenn Neonazis ein deutsches SEPA-Girokonto haben, meinetwegen bei der Sparkasse, dann zahlen sie Gebühren und das Konto ist sehr schnell gesperrt und gepfändet, wenn es vor Gericht so entschieden worden ist. Immerhin kann man hier vor Ort prozessieren bzw. Gesetze anwenden und dagegen klagen.</p>



<p class="wp-block-paragraph">Es ist jedenfalls ein Trauerspiel, dass wir mit Apple Pay, Google Pay und co ausgerechnet noch mehr Volumen über unfreie, proprietäre Zahlungsabwickler ohne Einspruchsmöglichkeit befördern. Nicht nur werden unter Umständen Zahlungsvorgänge zu werblich-analytischen Zwecken ausgeweidet (Paypack- und Amazon-Kreditkarten) sondern wir werden zukünftig dann vermutlich kein legales Glücksspiel mehr betreiben dürfen oder keine Bürgerinitiative für oder gegen etwas.</p>



<p class="wp-block-paragraph">Bald werden dann Zahlungen hinsichtlich Prostitution, Alkohol und Cannabis verboten oder mit einem Strafzuschlag von zufälligen 10…20.…50€ versehen, selbst wenn diese nach geltendem regionalen Recht legal sind oder sein werden. </p>



<p class="wp-block-paragraph">Die Lösung für Patreon könnte sehr einfach sein: Ein SEPA-Konto, dass eine Belastungssperre hat. Diese Bankverbindung kann man dann seinen Unterstützern bei jeder Gelegenheit mitteilen, die dann kostenfrei einmalige Zahlungen oder Daueraufträge anlegen können. Gewohnt über ihre Bank. Ohne Mittelsmann, Sicherheitsprobleme oder zusätzlichem digitale schnick-schnack. Notfalls hat man gegenüber der Bank noch immer Rechtsmittel nach deutschen oder jeweiligen Landes-Gesetzen.</p>



<p class="wp-block-paragraph">Patreon ist kein Netzwerk, wo Nutzer sich einloggen und dann neuen Content &#8222;entdecken&#8220;/finden, für den sie bezahlen. Auf Patreon gelangen Fans und Unterstützer jeweils durch Content-Produzenten und zwar direkt zur eigenen Unterstützerseite. Produzenten könnten also auch einfach die Adresse ihrer eigenen Mitglieds-Webapp verlinken und so einen US-Mittelsmann entfernen oder zumindest die Unterstützung von 524 Millionen Europäern an der Mastercard/VISA-Zensur vorbeiführen.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/01/02/zensur-durch-die-kreditkartenanbieter/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Kubernetes auf Raspberry Pi #2019</title>
		<link>https://blog.rolandmoriz.de/2019/01/01/kubernetes-auf-raspberry-pi-2019/</link>
					<comments>https://blog.rolandmoriz.de/2019/01/01/kubernetes-auf-raspberry-pi-2019/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Tue, 01 Jan 2019 12:00:49 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[kubernetes]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[raspberry]]></category>
		<category><![CDATA[raspberrypi]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1398</guid>

					<description><![CDATA[Falls auch jemand anderes 2019 dieses Vorhaben (wieder) aufgreifen möchte: Hypriot als Debian-Derivat scheint seit April 2018 unmaintained zu sein und den Wechsel von Debian&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Falls auch jemand anderes 2019 dieses Vorhaben (wieder) aufgreifen möchte: Hypriot als Debian-Derivat scheint seit April 2018 unmaintained zu sein und den Wechsel von Debian Jessie zu Stretch bisher nicht begonnen zu haben. Ich stelle deshalb gerade mein altes Setup von Hypriot auf das aktuellste, offizielle Raspbian Lite um.</p>



<p class="wp-block-paragraph"><a href="https://www.raspberrypi.org/downloads/raspbian/">Raspbian Lite </a>erlaubt zumindest die headless installation, d.h. man flashed die SD-Karte mit dem Image (z.B. mit dem Tool <a href="https://www.balena.io/etcher/">balenaEtcher</a>), legt eine leere Datei namens &#8222;ssh&#8220; in die fat32-Bootpartition, und startet den Raspberry Pie. Per Ethernet holt sich das Device dann IPv4/IPv6, announced via mDNS/Bonjour &#8222;raspberrypi.local&#8220; und erlaubt die connection per ssh (l/p pi/raspberry). Dokumentation hierfür <a href="https://www.raspberrypi.org/documentation/configuration/config-txt/">hier</a> und <a href="https://www.raspberrypi.org/documentation/configuration/wireless/headless.md">hier</a>. Danach kann man dann die Tools der Wahl nutzen um das auf Debian Stretch basierte System  mit Docker, Kubernetes und co zu versorgen. Repos für armhf gibt es mittlerweile bei den jeweiligen Projekten.</p>



<p class="wp-block-paragraph">Ich hätte gerne mal Alpine Linux verwendet, musste aber leider feststellen, dass es bisher kein einfaches headless setup für Raspberry PI gibt: Man muss also Tastatur und Bildschirm an den Pi anschliessen und dann manuell die Installation starten. Alpine wäre deshalb interessant, weil ich die rudimentäre busybox+musl libc-Kombination nicht nur als Docker-Base-Image sondern auch direkt auf Metall für die überlegene, weil kompaktere, weniger komplexe und daher sicherere Lösung halte.</p>



<p class="wp-block-paragraph">Nicht als Universaldistribution, aber als Grundlage um darauf Container zu betreiben.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2019/01/01/kubernetes-auf-raspberry-pi-2019/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Kommentar zu: &#8222;Linux Stirbt&#8220; auf Danisch.de</title>
		<link>https://blog.rolandmoriz.de/2018/12/30/kommentar-zu-linux-stirbt-auf-danisch-de/</link>
					<comments>https://blog.rolandmoriz.de/2018/12/30/kommentar-zu-linux-stirbt-auf-danisch-de/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Sun, 30 Dec 2018 16:12:41 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Bahn]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Wirtschaft]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1374</guid>

					<description><![CDATA[Hadmut Danisch ist ein streitbarer Informatiker und Blogger. Seine Sichtweisen bezüglich Informatik und Informatik in Deutschland teile ich zum allergrößten Teil, so wie jüngst in&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Hadmut Danisch ist ein streitbarer Informatiker und Blogger. Seine Sichtweisen bezüglich Informatik und Informatik in Deutschland teile ich zum allergrößten Teil, so wie jüngst in seinem Blogpost <a href="http://www.danisch.de/blog/2018/12/29/linux-stirbt/">&#8222;Linux stirbt&#8220;</a>.</p>



<p class="wp-block-paragraph">Die von ihm oft ausgemachten Gründe der &#8222;Verweichlichung&#8220;, &#8222;Diversifikation&#8220; oder &#8222;Quoten&#8220; teile ich jedoch meistens nicht, auch in dem besagten Blogpost.</p>



<p class="wp-block-paragraph">&#8222;Linux stirbt&#8220; nicht wegen Linus, wegen eines Spendenaufrufes für Diversifikation oder einer Anti-Harassment-Policy, sonder aus einem anderen Grund: Zwar sieht es so aus, als ob die &#8222;privileged white men&#8220; die überwiegend die letzten 27 Jahre am Kernel und viele Userland-Projekten tätig waren, die Ursache des Erfolges sind und jeder Versuch einer Diversifikation hier Projektsabotage sei. Doch wird hier vergessen, dass Linux damals relativ alternativlos war, sehr viele Leute in der Branche sehr viel Geld in sehr kurzer Zeit verdient und auch wieder in solche Projekte reinvestiert haben oder dadurch &#8222;Zeit spenden konnten&#8220;.</p>



<span id="more-1374"></span>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Nachdem nach 2000 die Verkäufe von PCs stagnierten, später die von Notebooks und vermutlich jetzt auch die von Smartphones, wird es ökonomisch nicht mehr so einfach sein. Weiterhin sorgt dieser Druck auch dafür, dass wieder mehr proprietär entwickelt wird (proprietär nicht auf Lizenz verkürzen).</p>



<p class="wp-block-paragraph">Die großen Tech-Konzerne sehen die Zukunft, wie Danisch es richtig beschreibt, in den Dumb Consumer Terminals (Smartphone, Tablets) und proprietärem Cloud-Computing: Schon jetzt erhalten sie CPUs vorab und exklusiv mit frisiertem Microcode für ihre Anwendungsfälle &#8211; andere Unternehmen oder Startups haben keinen Zugriff darauf. Trends wie Docker/Kubernetes als Containerplattform ist auch grandioser Köder um IT-Operation-Budgets von Unternehmen anzuzapfen und mit Komplexität diverse kleine Anbieter zu verdrängen.</p>



<p class="wp-block-paragraph">Im Gegensatz zu den früher üblichen Lizenzierungen von zB Windows, Oracle und co wird aber alles monatlich abgerechnet, d.h. man saugt sich das Blut der Opfer kontinuierlich ab. OpenSource spielt keine Rolle, weil man die eigene Plattform definiert und diese &#8211; bei Amazon, Google, Microsoft, Oracle, Facebook und Apple &#8211; groß genug ist, um sie von 0 neu zu schreiben oder bspw 90% des Linux-Kernels zu verschrotten.</p>



<p class="wp-block-paragraph">Google&#8217;s Fuchsia-Betriebssystem auf <a href="https://fuchsia.googlesource.com/zircon">Zircon</a>-Kernel-Basis ist ein Beispiel, das immerhin noch als OpenSource bereitgestellt wird, wenngleich die Entwicklung und Roadmap ausschliesslich innerhalb von Google geplant und umgesetzt werden. So ähnlich wie auch schon die Programmiersprache Go als Ziel hatte, keine externen Laufzeit-Abhängigkeiten ausser einer C-Standardbibliothek zu haben. Damit werden 100% aller OpenSource-Bibliotheken überflüssig, wenn man nur Go einsetzt. Kubernetes folgt diesen Prinzipien.</p>



<p class="wp-block-paragraph">Letztlich hat Google die Nase voll, sich in Projekten einzubringen, wenn sie im Gegenzug große &#8222;Investments&#8220; planen und Verändungsabsichten habe. So haben sie sich bereits aus Webkit verabschiedet und so werden sie sich auch aus Linux verabschieden. Mit etwas Glück wird man weiter an den Quellcode der neuen Projekte gelangen, aber es wird keine neutrale Community existieren sondern immer nur das zugelassen, was innerhalb von Google als opportun angesehen wird.</p>



<p class="wp-block-paragraph">Durch die Konzentration in diesem Marktsegment auf wenige Mega-Teilnehmer sinken auch die Budgets und das Interesse anderer Unternehmen zur Förderung von Linux zB durch sponsorships oder source contribution. Damit ist der Untergang von Linux ein ökonomisches Problem.</p>



<p class="wp-block-paragraph">Unser Staatsbahn DB verlegt ja bereits einen Großteil der Infrastruktur zum Amazon AWS und deren proprietären Cloud-Diensten. Somit fliesst unsere Kohle in immer größerem Umfang zu Amazon, das aber meines Wissens so gut wie keine OSS-Projekte supported, jedenfalls in Betracht der Unternehmensgröße. Und natürlich hat/hatte die Deutsche Bahn auch nie eigene Lösungen von Wert entwickelt, sondern auch bisher auf zugekaufte Tools und Distributionen gesetzt &#8211; wie fast alle Unternehmen in Deutschland.</p>



<p class="wp-block-paragraph">PS: Vor 2 Tagen hat Google das automatische Mirroring von Zircon auf Github deaktiviert: &#8222;The Fuchsia zircon repository is no longer being mirrored to GitHub. See <a href="https://fuchsia.googlesource.com/zircon">https://fuchsia.googlesource.com/zircon</a>.&#8220;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2018/12/30/kommentar-zu-linux-stirbt-auf-danisch-de/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Archivierung von YouTube-Livestreams</title>
		<link>https://blog.rolandmoriz.de/2018/12/28/archivierung-von-youtube-livestreams/</link>
					<comments>https://blog.rolandmoriz.de/2018/12/28/archivierung-von-youtube-livestreams/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Fri, 28 Dec 2018 00:34:30 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[hacking]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1313</guid>

					<description><![CDATA[YouTube begann vor einiger Zeit damit, technisch auch Live-Streams zu ermöglichen. Die Technik dahinter ist relativer Standard, es kommt HLS (HTTP Live Streaming) und mpeg4&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">YouTube begann vor einiger Zeit damit, technisch auch Live-Streams zu ermöglichen. Die Technik dahinter ist relativer Standard, es kommt HLS (HTTP Live Streaming) und mpeg4 zum Einsatz. Das ganze wird über eine `.m3u`-Ressource abgewickelt, die der Browser abruft.</p>



<p class="wp-block-paragraph">Nun möchte YouTube aber nicht, dass man auf bestimmten Geräten den Stream im Hintergrund laufen lässt, oder sogar Videos generell: Vermutlich um den &#8222;Missbrauch&#8220; als Gratis-Spotify zu verhindern und den Video-Werbenden auch &#8222;Video&#8220;-Werbung verkaufen zu können.</p>



<p class="wp-block-paragraph">Mir sind die wirtschaftlichen Hintergründe und die YouTube AGB egal, weil YouTube als Teil von Alphabet auch ein Monopolist ist und Live-Streaming eines der wenigen Bereiche ist, bei dem sie nicht den Markt dominieren (Amazons Twitch ist hier dominierend). </p>



<p class="wp-block-paragraph">Nun schaue ich gerne diverse regelmäßige Livestreams an, u.a. die <a href="https://www.youtube.com/channel/UC6nZlvfz4YWoBWbjiaYJA3g">Mainboad-Repair-Videos von Louis Rossmann aus New York</a> oder die langen Streams von<a href="https://www.youtube.com/channel/UCD3YwI6vR9BSHufERd4sqwQ"> Bjørn Nyland aus Oslo, wenn er mit einem Elektroauto tausende Kilometer durch Norwegen zurücklegt</a>. Diese Art von Streams sind unerhaltsam, aber einfach nicht ausfüllend genug, um sie 100% der Zeit &#8222;modal&#8220; zu konsumieren und so laufen die Streams bei mir im Hintergrund &#8211; leider bisher nicht auf iOS oder Android-Geräten, weil YouTube dies unterbindet.</p>



<p class="wp-block-paragraph">Und dann gibt es noch Streams, die von den Produzenten wieder gelöscht werden, weil etwas zu skurriles oder unprofessionelles passiert ist: Das frisierte E-Bike fackelt mitten in Manhattan ab,oder ein Idiot darf sich wegen unprofessioneller Fahrweise einen lauten Anschiss anhören. All das will man als <em>Fan</em> natürlich mitbekommen, auch wenn man gerade nicht in der passenden Zeitzone lebt oder anderweitig beschäftigt war.</p>



<p class="wp-block-paragraph">Eine Archivierungs-Lösung muss her!</p>



<span id="more-1313"></span>



<figure class="wp-block-image"><img decoding="async" src="https://github.com/rmoriz/youtube-watcher/raw/master/dia.png?raw=true" alt="diagram"/><figcaption>So ähnlich schaut es aus…</figcaption></figure>



<p class="wp-block-paragraph">Problemstellung:</p>



<ol class="wp-block-list"><li>Automatisches Aufzeichnen von Streams</li><li>Abspielen von Streams ohne YouTube-App oder Modal-Zwang (wie z.B. in Safari, Chrome auf mobilen Plattformen).</li></ol>



<p class="wp-block-paragraph">Ich legte los und bastelte einen Prototypen auf Basis von etwas Ruby, MQTT, <a href="https://github.com/streamlink/streamlink">Streamlink</a>,&nbsp;dazu VLC auf iOS, Pushover.com als Push-Service und in der späteren Version dann <a href="https://syncthing.net/">Syncthing</a> zur Dateisynchronisation.</p>



<p class="wp-block-paragraph">Positiv anzumerken ist, dass Google einen wenig beachteten Pubsubhubbub-Server betreibt (Vorgänger von WebSub) und <a href="https://developers.google.com/youtube/v3/guides/push_notifications">YouTube darüber Push-Notifications per HTTP für YouTube-Kanäle anbietet</a>. Allerdings nur sehr rudimentär, man kann nicht einmal zuverlässig darauf schliessen, ob ein neues Video hochgeladen, ein Stream begonnen oder einfach nur die Beschreibung eines Videos oder Streams verändert wurden. Man bekommt also sehr viele &#8222;doppelte&#8220; Notifications.</p>



<p class="wp-block-paragraph">Somit wäre der erste Teil eigentlich schnell beschrieben:  Die Ruby-Applikation auf einem virtuellen Server bei einem Cloud-Provider abonniert beim Start die passenden Topics (Kanäle), erhält dann via HTTP requests Infos zu neuen Streams. Diese werden per MQTT an einen anderen Docker-Container weitergeleitet, bei dem dann die downloads gestartet werden.</p>



<p class="wp-block-paragraph">Für den zweiten Teil wird es komplizierter: Erstens sind die von YouTube bereitgestellten `.m3u`-Files mittels kryptographischer Signatur auf die abrufende IP-Adresse beschränkt, zweitens sind diese zu lang, um sie in diversen generischen iOS-Push-Service-Diensten zu versenden. Um das Problem der IP-Beschränkung zu überwinden, muss also die Datei mit der selben IP-Adresse abgerufen werden. Bei mir zuhause sind diverse iOS/Android-Geräte im WiFi, teilen sich zusammen u.a. mit dem NAS per NAT die IPv4-Adresse des Providers. Bei der Anschaffung des QNAP NAS habe ich bereits darauf geachtet, dass es sich um x86-Hardware handelt, also in dem Falle konkret ein Intel Atom-System mit Docker-Unterstützung und der Möglichkeit den Arbeitsspeicher auf 16GB aufzurüsten.</p>



<p class="wp-block-paragraph">So schrieb ich eine weitere kleine Ruby-Applikation, die als Container auf dem NAS läuft: Sie empfängt per MQTT die allgemeine YouTube-URL des Videos, ruft damit Streamlink auf um die URL der `.m3u`-Datei zu ermitteln. Diese wird dann per MQTT wieder an den &#8222;öffentlichen&#8220; Container geschickt, der sie umschreibt und verkürzt (das Mapping wird dort im Arbeitsspeicher gehalten weil sie relativ kurzlebig sind, also meist ein paar Stunden nach dem Stream bei YouTube nicht mehr verfügbar sind). Die verkürzte URL geht dann per MQTT wieder an den Container auf dem NAS-Zurück, der dann eine externe API von Pushover.com aufruft. Der Anbieter pusht die gekürzte URL dann auf meine Geräte.</p>



<p class="wp-block-paragraph">Nützlicherweise kann man in der Pushover-App das automatische öffnen von gepushten http-URLs einstellen und so öffnet sich Safari. Da ich aber in VLC den Stream anschauen möchte, weil nur VLC das Abspielen im Hintergrund zulässt, musste ich einen Trick anwenden: Mobile Safari öffnet also die gekürzte URL durch den Aufruf meines URL-Shorteners, der wiederum schickt einen HTTP redirect auf &#8222;vlc://…m3u URL…/&#8220; was Safari nach Rückfrage dann an die VLC-App weitergibt. Zwar ziemlich Ghetto, aber es funktioniert.</p>



<figure class="wp-block-image"><img decoding="async" src="https://github.com/rmoriz/youtube-watcher/raw/master/youtube-watcher.gif?raw=true" alt="example"/></figure>



<p class="wp-block-paragraph">Zuerst übernahm auch der Container auf dem NAS den Download von YouTube: Ein paar TB freier Speicherplatz sind günstiger, als in der Cloud laufend steigende Storage-Kosten in Kauf zu nehmen. Allerdings hat man zuhause ein anderes Problem: Die Stromkosten!</p>



<p class="wp-block-paragraph">Die aktuelle Lösung schreibt den Stream zuerst auf ein Volume des Cloud-Servers. Daneben läuft Syncthing. Zuhause auf dem NAS läuft ein weiterer Container mit Syncthing und lädt synchronisiert nun die Videos. Abgeschlossene Dateien werden auf dem NAS aus dem Sync-Ordner entfernt und somit auch auf dem Cloudserver automatisch gelöscht. </p>



<p class="wp-block-paragraph">Das ganze funktioniert auch wunderbar, wenn man den NAS-Server über Nacht in den Ruhezustand schickt: Die Videos sind in der Cloud &#8222;gepuffert&#8220; und wandern dann eben am nächsten Morgen auf meine lokalen Festplatten. Im Gegensatz zu einer rsync-Lösung spare ich mir hier auch das Ausrollen von SSH-Zugängen für rsync etc.</p>



<p class="wp-block-paragraph">Fürs Deployment setze ich einfach zwei docker-compose Konfigurationen ein. <a href="https://github.com/rmoriz/youtube-watcher/blob/master/hosts/external.sample">Davor source ich jeweils die passenden Variablen und leite mir per ssh den Docker-Unix-Socket der entfernten Maschinen auf das lokale System um</a>.</p>



<p class="wp-block-paragraph">Der Quellcode liegt auf <a href="https://github.com/rmoriz/youtube-watcher">https://github.com/rmoriz/youtube-watcher</a> allerdings gibt es keine Tests und so gut wie keine Dokumentation.</p>



<p class="wp-block-paragraph">PS: Bei einem Kunden setze ich seit einiger Zeit Syncthing zur Synchronisation großer Virtualbox-Vagrant-Images ein (60-100GB): Auf einem manuellen Build-Environment wird das Image erstellt, angepasst und dann in einen Syncthing-Ordner geschoben, wovon es dann auf ca 20 weitere Server übertragen bzw. per p2p geteilt und mittels <a href="https://chef.io">Chef</a> ausgerollt wird. Die Syncthing-Konfiguration wird hierbei auch von Chef erstellt und aktualisiert, sodass jederzeit neue Nodes hinzugefügt oder weggenommen werden können.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2018/12/28/archivierung-von-youtube-livestreams/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>2019 wird das Jahr des Linux-Desktops!</title>
		<link>https://blog.rolandmoriz.de/2018/12/27/2019-wird-das-jahr-des-linux-desktops/</link>
					<comments>https://blog.rolandmoriz.de/2018/12/27/2019-wird-das-jahr-des-linux-desktops/#comments</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Wed, 26 Dec 2018 23:11:33 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[L380 Yoga]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Thinkpad]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://blog.rolandmoriz.de/?p=1301</guid>

					<description><![CDATA[Mit dem macOS 10.14 Release hat Apple das Sub-Pixel-Rendering für alte non-Retina Macbooks entfernt, mein mittlerweile fast nur noch privat genutztes 11&#8243; Macbook Air (Early&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Mit dem macOS 10.14 Release hat Apple das Sub-Pixel-Rendering für alte non-Retina Macbooks entfernt, mein mittlerweile fast nur noch privat genutztes 11&#8243; Macbook Air (Early 2015) war davon auch betroffen. Mit der Zeit stellten sich zudem recht ungewöhnliche Verschleisserscheinungen ein, z.B. hat sich hier zum ersten Mal in meiner jetzt über zwölfjährigen Macbook-Zeit ein Teil einer Tastenbeschriftung verabschiedet (A-Taste) und man merkt jetzt such schon das Altern des Akkus. </p>



<p class="wp-block-paragraph">Etwas neues musste her, weil ich auch beruflich ein Linux-Device für die aktuellen Aufgaben benötige (InfoSec + Containerkram + DevOps) und so fiel die Wahl am Black Friday auf ein <a href="https://www.lenovo.com/de/de/laptops/thinkpad/l-series/ThinkPad-L380-Yoga/p/22TP2TBL38020M7">Lenovo Thinkpad L380 Yoga (13&#8243; convertible mit FHD-Display)</a>, welches zufälligerweise unter der mittlerweile erhöhten Abschreibungsgrenze von 810€ netto direkt von Lenovo zu haben war.</p>



<figure class="wp-block-image"><img decoding="async" src="https://www.lenovo.com/medias/lenovo-laptop-thinkpad-l380-yoga-gallery-1.jpg?context=bWFzdGVyfHJvb3R8Njc3Mjh8aW1hZ2UvanBnfGhiZC9oNzYvOTYzNjQ4NzE2ODAzMC5qcGd8NDVmZTMzNDg1NzQ1YjA3Mzg0NTQ3MjM5NjAyZjY0OGZjZmYyZTkwZjMwYzUxMDg5NThmMTc3YzBmOWY5ZWYzOA" alt=""/><figcaption>Photo: lenovo.com</figcaption></figure>



<p class="wp-block-paragraph">Bisher bin ich mit dem Gerät sehr zufrieden, es erfüllt alle Erwartungen und ist ganz gut verarbeitet. Selbst ein <a href="https://download.lenovo.com/pccbbs/mobiles_pdf/l380_l380yoga_s2-3rdgen_and_s2yoga3rdgen_hmm_en.pdf">Hardware-Maintenance-Manual</a> ist frei zugänglich, um Komponenten auszutauschen oder zu erweitern: Es würden bis zu 32 GB Arbeitsspeicher reinpassen oder eben eine M.2 2280 PCIe-SSD nach Wahl. Und das bei einem Gerät für um die 900€ brutto inkl. Versand, Netzteil. </p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="605" height="454" src="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2018/12/thinkpad_offen.jpg" alt="" class="wp-image-1306" srcset="https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2018/12/thinkpad_offen.jpg 605w, https://blog.rolandmoriz.de/wp-content/uploads/sites/8/2018/12/thinkpad_offen-300x225.jpg 300w" sizes="auto, (max-width: 605px) 100vw, 605px" /><figcaption>Aufgemotzt für einen kurzen Test: Der Arbeitsspeicher ist zufälligerweise kompatibel mit dem meines 5K iMac 2017, die SSD dient zur Aufrüstung meines headless Linux-Servers &#8211; beide Aufrüstungen standen auch an und würden auch in dem Thinkpad eine gute Figur machen. Wenn nächstes Jahr wieder Geld in die Kasse kommt, werde ich möglicherweise diese Konfiguration dann realisieren.</figcaption></figure>



<span id="more-1301"></span>



<p class="wp-block-paragraph">Insbesondere der Preis lässt mich geradezu über das Gerät frohlocken. Es hat Eigenschaften und Verarbeitungsqualitäten, die einem &#8222;günstigen&#8220; Apple-Gerät in nicht mehr viel nachstehen oder gar weit übertreffen. Ähnlich wie die Beschaffung des günstige Xiaomi-Android-Smartphones zeigt mir auch dieser Kauf wieder, wie man es sich über die Jahre &#8222;zu bequem&#8220; im Apple-Lager gemacht hat.</p>



<p class="wp-block-paragraph">Nun hat auch das Thinkpad L380 Yoga seine Schwächen, es fehlen Dinge wie IR-Kamera (Gesichtserkennung), WWAN (LTE-Modem) aber auch einklappbare Tasten bei Nutzung des Tablet-Modus (Yoga) fehlen. Diese Dinge sind den teureren Modellen vorbehalten, die dann auch über eine leistungsfähigere GPU verfügen und deren Kühlung dann hoffentlich mehr als 15W TDP schafft: Auf diese Heizleistung wird nämlich die Intel i7 CPU beschränkt, so stehen meist nur 1,7-1,8 GHz von bis zu 4GHz zur Verfügung. Das ist unschön, aber für meine Nutzung kein Problem. Das Display hat zwar auch nur eine Auflösung von 1920&#215;1080 bei 166 DPI, ist also auch kein &#8222;Retina&#8220; (hohe Punktdichte) aber gefühlt deutlich schärfer als beim 11&#8243; Macbook Air &#8211; zumindest unter Windows 10 und Linux (Gnome). Die Tastatur ist jedenfalls um Welten besser als das, was Apple die letzten Jahre geliefert hat! Das mitgelieferte USB-C-Netzteil fiept leider, ich bin aktuell noch dabei, eine Aussage des Herstellers und evtl. einen Austausch zu bekommen.</p>



<p class="wp-block-paragraph">Beim Umstieg auf Linux bzw. Dual-Boot mit Windows 10  gab es dann die erste Schattenseite: Das Lenovo-Recovery-Tool erlaubt den Download eine Image-Datei zum Schreiben eines Recovery-USB-Sticks. Davon kann man allerdings nicht eine normale Windows 10 Installation starten, sondern nur das ganze System plattmachen und in den Werkszustand zurücksetzen, aber auch das ging leider nicht.</p>



<p class="wp-block-paragraph">Glücklicherweise leben wir in 2018 und Microsoft stellt ISO-Dateien schon seit einigen Jahren zum Download bereit. Hiermit konnte ich ein blankes Windows 10 Pro installieren, die Aktivierung ging automatisch, vermutlich über ein im Bios verbautes Zertifikat/Serial. Dazu noch die Lenovo Vantage-Software runtergeladen, die dann Treiber, Bios und anderen Treiberkram installiert und aktuell hält. Läuft.</p>



<p class="wp-block-paragraph">Aber selbst ein Ubuntu 18.04 ging erstaunlich einfach zu installieren, wenn man entweder die gesamte SSD exklusiv für Ubuntu nutzen und verschlüsseln möchte oder auf eine LUKS-basierte Verschlüsselung komplett verzichtet. Die Kombination mit Windows im Dual-Boot war sehr schmerzhaft und musste mit <em>gparted</em> vorbereitet werden, weil der Installer überfordert bzw. buggy ist. <a href="https://unix.stackexchange.com/questions/470553/ubuntu-18-04-luks-boot-problems">Hier hat mir dieser Stackoverflow-Beitrag sehr geholfen</a>.</p>



<p class="wp-block-paragraph">Das war eigentlich die einzige Hürde, das System läuft stabil, unterstützt Touchscreen, Trackpoint, Touchpad und Stylus, Wifi, Bluetooth, Audio… eigentlich alles, bis auf den Fingerprint-Reader: Hierfür gibt es keine Linux-Treiber. Manuelles Hibernate funktioniert auch (suspend to disk), wenn man den Crypto-Key aus dem Arbeitsspeicher kriegen möchte (hoffentlich). Ob und wie man das automatisch hinbekommen möchte, oder ob Suspend-to-RAM nicht in der Praxis ausreichend ist, wird sich zeigen. </p>



<p class="wp-block-paragraph">Die Steuerung des Akkus erledigt nach manueller Installation <a href="https://linrunner.de/en/tlp/tlp.html">TLP</a> — allerdings erst nach Abstellen des Secure Boots im BIOS — zuverlässig auf der Konsole: Man definiert untere und obere Ladegrenzen. Fällt die verfügbare Kapazität im Netzbetrieb unter den tieferen Wert, wird das Laden gestartet und bis zur definierten Obergrenze fortgesetzt, so wie man es auch bei einem Tesla-Auto schlauerweise macht, um die Lebensdauer der Batterien zu schonen. Plant man mobil die maximale Kapazität abzurufen, stellt man den Maximalwert temporär auf 100%. Lädt man jedoch  immer auf 100%, sorgt man für unnötige Alterungserscheinungen und thermische Belastungen. Apple bietet auf seinen Geräten keine Wahl an und sorgt so für einen unnötig hohen Verschleiss insbesondere bei nur selten mobil genutzten Geräten bzw. die Täglich für mehr als 8 Stunden &#8222;am Strom&#8220; hängen, also typische BYOD-Geräte, die tagsüber 8-10 am Arbeitsplatz am Strom hängen.</p>



<p class="wp-block-paragraph">Zwar gäbe es einen Ersatzakku schon für 100-150€ bei verschiedenen &#8222;generic parts&#8220; Händlern zu kaufen, aber wer so ein Feature hat, spart sich eventuell diese Ausgabe, die viele Apple-Nutzer kennen und dort <a href="https://blog.rolandmoriz.de/2017/11/08/akku-tausch-bei-einem-15-retina-macbook-pro-late-2013/">nach ein paar Jahren fast schon alternativlos sind.</a></p>



<p class="wp-block-paragraph">Nun stellt sich die Frage, wie man ein Linux-Device in seine Produktivumgebung einbaut: Ich verwende zwar noch Dropbox für einige Daten, aber das sollte auf Linux kein Problem sein bzw. lasse ich auslaufen. Die Einbindung mittels <a href="https://www.syncthing.net/">Syncthing</a> neben meinen anderen Rechnern war jedenfalls ein No-Brainer und funktionierte anstandslos. An Thunderbird als Mail-Client werde ich mich sicher wieder gewöhnen, vim/gvim, Google Chrome, Atom und VS Code sind mehr oder weniger mit den macOS-Versionen identisch, wenn man von GUI-Shortcuts absieht. Da bin ich noch nicht am Ziel angelangt.</p>



<p class="wp-block-paragraph">Überraschenderweise gibt es genau eine eingesetze Software, die mir massive Bauchschmerzen bereitet: Sie ist nicht OpenSource, es gibt keine stand-alone Linux-Version und ist nur noch als Abo-Modell erhältlich: 1Password.</p>



<p class="wp-block-paragraph">Es gibt ein 1Password-Chrome-Plugin für Linux, welches aber ausschliesslich mit dem Abo-Modell von 1Password funktioniert. Ich bin seit ewigen Zeiten 1Password-Kunde, möchte aber nur ungern meine ganzen Accounts in irgend eine fremde Cloud schieben respektive für etwas bezahlen, was auch syncthing oder ein einfacher RESTful-Service machen könnte. Zwar gibt es Password-Manager mittlerweile wie Sand am Meer, allerdings bieten nur weniger eine Multi-Plattform-Lösung an, die neben Linux, Mac und Windows auch iOS und Android abdeckt. Wer hier einen Tipp hat: Her damit.</p>



<p class="wp-block-paragraph">PS: Es sind die kleinen Details, die einem leuchtende Augen bereiten: Um das Notebook stromlos zu setzen, kann man im BIOS eine Option auswählen, die den Akku vom Mainboard bis zum nächsten Anschluss eines Netzteiles trennt. Bei Macbooks muss man hier vorsorglich immer das Flachbandkabel des Akkus rausziehen, was eine ziemliche Friemelei sein kann, wenn man es nicht sehr häufig macht und keine passende Pinzette hat.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2018/12/27/2019-wird-das-jahr-des-linux-desktops/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Wirtschaftlichkeit und Web-Entwicklung</title>
		<link>https://blog.rolandmoriz.de/2017/04/15/wirtschaftlichkeit-und-web-entwicklung/</link>
					<comments>https://blog.rolandmoriz.de/2017/04/15/wirtschaftlichkeit-und-web-entwicklung/#respond</comments>
		
		<dc:creator><![CDATA[Roland]]></dc:creator>
		<pubDate>Sat, 15 Apr 2017 12:44:40 +0000</pubDate>
				<category><![CDATA[Finanzen]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">http://blog.rolandmoriz.de/?p=957</guid>

					<description><![CDATA[Nichts veränderte sich in den letzten Jahre so schnell und radikal wie der Bereich Webentwicklung. Zuerst Perl, dann PHP, dann etwas Ruby, heute JavaScript. Jedem&#8230;]]></description>
										<content:encoded><![CDATA[<p>Nichts veränderte sich in den letzten Jahre so schnell und radikal wie der Bereich Webentwicklung. Zuerst Perl, dann PHP, dann etwas Ruby, heute JavaScript. Jedem Technologiesprung wurden diverse Gründe nachgesagt und in vielen Fällen war auch relativ schnell erkennbar, dass sich die neuen Tools im Einsatz auszahlen: Schnellere, bessere Entwicklung, optimierte Betriebskosten. Gerade der Hype um Ruby on Rails war auch sehr stark von Entrepreneurship geprägt, also dem Gründergeist ein wirtschaftlich tragbares Unternehmen aus eigenen Kräften aufzubauen, so wie es der &#8222;Erfinder&#8220; DHH tat.</p>
<p>Der Schritt zu JavaScript im Frontend wurde hingegen mit nicht schlüssigen Begründungen gepusht: Alles asynchron, schnellere Ladezeiten, &#8222;eine Sprache für alles&#8220;, mehr Traffic mit weniger Hardware erreichbar &#8211; alles nicht wirklich messbar oder für die wenigstens Unternehmen relevant, ausser man hat die Größe von Google oder Facebook. Der mit dem Wechsel im Frontend einhergehende Wechsel im Nutzerverhalten in Richtung Mobiltelefone und Tablets inklusive diverse Appstores (&#8222;Walled Gardens&#8220;) hat die wirtschaftliche Bedeutung des Webs als Plattform aber gleichzeitig sinken lassen:</p>
<p><span id="more-957"></span></p>
<p>Ende der 1990er war es schick, sich Homepages zu bauen und man wollte jedes kleine Unternehmen dazu bringen, sich im Web &#8222;zu präsentieren&#8220;, direkt Kunden zu akquirieren, Produkte und Dienstleistungen zu verkaufen &#8211; ohne Mittelsmänner zu bezahlen. Heute ist das alles Geschichte, man sieht zwar noch vereinzelt Websites kleiner Unternehmen und gerade Mittelständler haben auch weiterhin ihre &#8222;Präsenzen&#8220;, aber es sind reine Marketing-Ausgaben ohne Nutzwert, so wie ein Unternehmensbroschüre oder Sponsoring beim Volksfest. Wer Informationen oder Angebote will, &#8222;soll halt anrufen&#8220;. Die wirklichen E-Commerce-Umsätze werden über die Teilnahme an Bieterplattformen (z.B. AdWords, &#8222;MyHammer&#8220;, aber auch Amazon und eBay) gemacht, durch Kontingente großer Kunden oder durch mühsame direkte Akquise — wie früher eben auch. So gesehen sind die Unternehmen heute noch viel mehr abhängig von Mittelsmännern und den großen Spielern &#8211; früher waren das eben die &#8222;Gelben Seiten&#8220; &#8211; da kam man mit Pauschalen davon, nicht mit Umsatzprozenten wie im Onlinebereich.</p>
<p>Statt jedem Bürger und jedem Unternehmen einen direkten Zugang zum Markt zu ermöglichen, hat sich nur eine andere, digitale Form des Mittelsmannes etabliert und kassiert ab:</p>
<p>So vergessen fast alle Frontend-Leute, dass am Ende hinter einem Tool-Einsatz auch ein entsprechender Mehrwert liegen muss, nicht nur einfach die &#8222;coolness&#8220; irgend ein von Dritten entwickeltes Tool oder Plattform einzusetzen. Am Ende des Jahres muss ein Gewinn realisiert werden und ausufernde Ausgaben in Personal oder Technik stehen dem entgegen. Was Google, Apple, Facebook oder Amazon einsetzen oder durch ihre Millionen bauen und veröffentlichen ist noch lange nicht im Sinne der Allgemeinheit, eines Software-Unternehmens, eines Beraters oder eines einzelnen Entwicklers. Das investieren von bezahlter Arbeitszeit für OpenSource-Projekte in den Dimensionen von Google/Facebook ist schlicht eine aktive Einflussnahme auf die zukünftige Entwicklung des Marktes. Jede Zeile Code für Go, v8, Angular, React sind mit Werbegeldern bezahlt, denn nur damit finanzieren sich Google und Facebook!</p>
<p>Keiner dieser Branchengrößen möchte mit den veröffentlichten Technologien neue Konkurrenten schaffen, sondern eine Generation von Zuarbeitern, Nutzern, Abhängigen, die brav die Zukunft der eigenen Marktdominanz sichern. Das gilt natürlich auch für die App-Entwicklung für iOS oder Android, so wie für die ERP-Systemhäuser und Add-On-Entwicklungen für SAP. Anderer Bereich, selbes Geschäftsmodell.</p>
<p>Letztlich ist es das genaue Gegenteil der Entwicklung der 80er und 90er Jahre: OpenSource startete damals als Idee, eine freie Alternative gegen closed-source Monopole zu schaffen und einen möglichst bereiten Zugang zu Technologien zu ermöglichen. Heute sind die monopolistischen Unternehmen schlauer und veröffentlichen so viel OpenSource-Software und betreiben Projekte im eigenen Interesse, dass neutrale Projekte an Entwicklern, Nutzern und Relevanz verlieren. Ob Swift, Go, Angular, React, selbst JavaScript (v8, Chrome), Kubernetes: Man treibt den Markt vor sich her, natürlich alles quelloffen und &#8222;OpenSource&#8220; aber mit Geldern der beteiligten Unternehmen finanziert – inklusive der &#8222;vorgelebten Vision der Zukunft&#8220;.</p>
<p>Man kann sogar noch einen Schritt weitergehen: Das Frontend liegt heutzutage im Quellcode vor (minified, uglified… trotzdem in einer Scriptsprache), das Backend wird auf AWS Lambda oder einem generischen API-Backend gehostet. Das Frontend ist damit nicht nur inhaltlich sondern auch funktional 100% durchsuchbar und mit AI auch logisch analysierbar (mit der ausreichenden Leistung, die Google hat, aber den Markteintritt für andere Suchmaschinen massiv erschwert), das Backend oftmals nur generisch und in Händen einiger weniger Cloudprovider betreibbar. Microsoft war das erste &#8222;Opfer&#8220;, dass nur noch davon lebt, weil es einen ausreichend großen Bestandskundenschatz (&#8222;Burggraben&#8220;) haben der nicht einfach abhauen kann. </p>
<p>Diesen &#8222;Microsoft&#8220;-Luxus hat keiner von uns &#8222;kleinen&#8220;: Welchen Wert generieren die Frontend-Entwickler aber überhaupt noch? Es gibt keinen Bestandsschutz und keine Einflussnahme auf die Zukunft. Leben sie also nicht einfach nur davon, dass ihre Kunden noch nicht realisiert haben, dass sie keinen messbaren Wert schaffen, weil responsible websites mit client-side apps auch nicht mehr Umsatz bringen als traditionelle JEE-Webapps mit server-side Rendering? Das Shop-Designs für 99% der E-Commerce-Unternehmen irrelevant geworden sind, weil man ausserhalb der Plattformen von Amazon, eBay und co. eh keine Chance mehr hat? Dass dank der extremen Volatilität die Technologien allesamt nach 6-12 Monaten veraltet sind und portiert werden müssen?</p>
<p>Entwickler sollten mit dem Gedanken einen monetären Mehrwert zu schaffen morgens aufstehen und abends ins Bett gehen. Nur so wird man auf Dauer seinen Job und seine Kunden halten können. Wer das auf Dauer nicht garantieren kann (sprich: jeder), sollte jedes Tools und jeden Trend hinterfragen, aufs Geld achten, sich ggf. umorientieren und so viel Geld wie möglich in Aktien stecken: Entweder in die oben genannten Unternehmen und/oder in etablierte Dividendenzahler.</p>
<p>Unter diesen Gesichtspunkten finde ich es moralisch auch sehr zweifelhaft, eine große Zahl (Nachwuchs, Branchenfremder, Diversity/Integrationsmaßnahmen) für diesen Bereich zu begeistern und auszubilden. Meiner Meinung nach ist da so, als ob man in den 1990er Jahren noch tausende neue Fernsehtechniker ausgebildet hätte…</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.rolandmoriz.de/2017/04/15/wirtschaftlichkeit-und-web-entwicklung/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 

Served from: blog.rolandmoriz.de @ 2026-10-25 18:32:27 by W3 Total Cache
-->