- Aktivkohlefilter (5,50 €)
- Wippschalter (2,10 €)
- Batterieclip (1 €)
- Batteriehalter 8 x AA (7,50 €)
- 8 x AA-Batterien (~1,50 €)
- Klettband zum Kleben (1 €)
- 4 x M4 Schrauben + Muttern (~0,40 €)
- 1 Tube Sekundenkleber (~1 €)
- ~130 mm² 3 mm dickes Sperrholz Pappel zum lasern (3~9 €)
- E-Mail: FairEmail
- Browser: Fennec (Firefox Fork)
- Messenger: Element (Matrix), Telegram FOSS, Signal (wird von CalyxOS bereit gestellt) / Molly
- Bilder: Simple Gallery
- Password Manager: AuthPass, KeePassDX, Bitwarden
- 2FA OTP: Aegis Authenticator, andOTP, Bitwarden
- Tastatur: FlorisBoard, OpenBoard
- YouTube: NewPipe
- Kalender/Kontakte Syncronisierung: DAVx⁵
- VPN: WireGuard, Mullvad VPN
- Reddit: Slide, Infinity
- Launcher: Discreet Launcher, Posidon Launcher
- Maps: OsmAnd~
- Manga Reader: Tachiyomi, Hendroid
- QR Code Scanner: QR & Barcode Scanner
- Video Player: mpv-android, VLC
- SFTP Server: primitive ftpd
- PC Notification Sync: KDE Connect
- Corona Tracing: Corona Contact Tracing Germany
- Twitter: Twidere X, Fritter
- Mehr Arbeitsspeicher (2 bis 4 GB statt nur 1 GB RAM)
- Ethernet und USB Hub sind jetzt getrennt und teilen sich nicht mehr denselben USB 2.0 Bus
- Gigabit Ethernet ist damit jetzt möglich
- USB Typ-A 3.0 an zumindest zwei Buchsen möglich die direkt per PCIe Lane an dem SoC hängen
- Zwei Micro-HDMI 2.0 Ausgänge (beide bis zu 4K Auflösung) statt nur einem HDMI Ausgang
- Der neue BCM2711 SoC kann nativ H.265 Videos in 4K dekodieren
- Der Micro-SD Karten Leser ist nun schneller bei 50 MB/s statt 25 MB/s
- Trotz 64 bit ARM SoC nutzt das offizielle Raspbian nur 32 bit
- Erhöhter Stromverbrauch über die USB Typ-C Stromversorgung (15 Watt a 5V/3A) gegenüber den 12 Watt a 5V/2,5A des Vorgängers
- Micro-HDMI statt HDMI Ausgang
- Kein voller Support für andere Linux Distributionen außer Raspbian
- Kein USB Boot ab Werk
- “Grün” bedeutet, dass die Tür offen für alle ist, das wird auch auf der Webseite so öffentlich angezeigt.
- “Gelb” bedeutet, dass ein Mitglied anwesend ist, jedoch nicht im Hauptraum ist um Nicht-Mitglieder zu empfangen.
- “Rot” steht schlicht dafür das niemand anwesend ist und die Tür zuschließt, auch diesen Status findet man auf der Webseite.
- Arduino Uno
- Breadboard (Halfsize oder Fullsize)
- DHT22 Feuchtigkeits- / Temperatur-Sensor
- 10kΩ Widerstand (für den Data-Pin vom DHT22 Sensors)
- MAX7219 Matrix 8x8 LED Display
- 9. Februar 2016
- 26. März 2015 (Hotfix)
- 24. März 2015
- 27. August 2014
- 17. Dezember 2013
- 27. Juni 2013
- etc …
Seit einigen Jahren benutze ich Jellyfin, um Serien und Filme auf meinem Fernseher einfacher ansehen zu können, theoretisch könnte ich damit auch meine Bilder-/Audio-/Buch-Sammlung sortieren, aber diese Funktion benutze ich nicht. Jellyfin ist als Fork von Emby entstanden, als Emby von Open Source zu Closed Source wurde und schon vorher damit begonnen hatte, beliebte Features hinter Bezahlschranken zu stellen. Das ist schon ein wenig ironisch. Denn Emby entstand einst als Alternative zu Plex, das seinerseits durch Bezahlschranken negativ auffiel (die Plex Mobile App ist z.B. Premium only). Für mich war die Entscheidung also ziemlich klar, auch wenn vielleicht das Feature X oder Y bei Jellyfin fehlt. Der Einfachheit halber läuft Jellyfin bei mir in einem Docker Container auf meinem Heimserver. Die gute Dokumentation erklärt aber auch andere Installationsmethoden und ist wirklich nicht so schwer wie man denkt.
Aber das eigentliche Thema dieses Blogeintrags ist ein anderes, wie fülle ich meinen Medienserver mit Videos?
MediathekenView
Wer in Deutschland lebt, muss pro Haushalt eine monatliche Gebühr für die öffentlich-rechtlichen Rundfunkanstalten zahlen. Warum also nicht auch deren Online-Mediatheken nutzen? Besonders einfach geht das mit MediathekenView bzw. MediathekenViewWeb, mit dem man die (Video-)Mediatheken ganz einfach durchsuchen und direkt streamen oder downloaden kann. Der Download ist vor allem deshalb wichtig, weil nach dem aktuellen Rundfunkstaatsvertrag die Inhalte der Mediatheken nur zeitlich begrenzt zur Verfügung stehen dürfen. Teilweise ist dies nur für eine Woche, oft aber auch für ein Jahr.
Zum Beispiel sind in dieser Woche Ghostbusters und Ghostbusters 2 bis zum 10.11.2024 in der 3sat Mediathek verfügbar.
Aber auch Serien gibt es, z.B. Killing Eve oder Feuer & Flamme.
Leider sind die meisten Streams / Downloads nur in deutscher Sprache und ohne eingebaute Metadaten verfügbar. Zum Glück kann Jellyfin (oder ein anderer Media-Server) die Meta-Daten automatisch aus Online-Datenbanken wie IMdb, TheMoviedB oder TheTVDB beziehen und ergänzen. Ich empfehle auch die heruntergeladenen Videos direkt umzubenennen, damit der Mediaserver der Wahl die Metadaten leichter finden kann. Serien sollten am besten das Format “{Serienname} S01E01” haben, damit man sofort weiß, dass es sich um Folge 1 der ersten Staffel handelt. Wer auf dem Laufenden bleiben will, was gerade in den Mediatheken verfügbar ist, kann z.B. bei https://feddit.org/c/mediatheque vorbeischauen. Hier sammelt die Feddiverse Community interessante Titel.
Pinchflat um Youtube anzuzapfen
Es gibt Youtube-Videos, die ich lieber auf dem Fernseher als auf dem PC als Second-Screen-Content anschaue, aber leider ist die Youtube-App auf meinem Fernseher voller Werbung und eine Datenschleuder. Abhilfe schafft hier Pinchflat. Einmal eingerichtet und mit den gewünschten Youtube-Kanälen und Playlists gefüttert, kümmert sich Pinchflat um den Download der Videos in einen definierten Ordner (in dem Jellyfin dann Ausschau hält)
Als Bonus kann man direkt Sponsorblock auf die Videos anwenden und Werbung vom Content Creator direkt rausschneiden lassen.
Damit Jellyfin die Videos nun nach Kanal-Namen mit Thumbnails anzeigt, empfele ich eine neue Library anzulegen mit dem Content Type “Music Videos”.
Privatkopie einer DVD/Blu-Ray
Mit wesentlich mehr Aufwand muss man rechnen, wenn man seine physische DVD/Blu-Ray Sammlung digitalisieren und eine Privatkopie sichern möchte. Das Problem ist hier vor allem das man einen PC mit Blu-Ray Laufwerk benötigt, die nicht gerade billig sind. Zusätzlich hat man das Problem das auf den Discs die Serien/Filme in wenig komprimierten Transport Streams (*.ts) vorliegen, die nicht immer in der richtigen Reihenfolge sind. An dieser Stelle möchte man wahrscheinlich den Stream nochmal in einen effizienteren Codec wie z.B. AV1 oder H256/HVEC vorkomprimieren, was z.B. Plex automatisch kann, Jellyfin aber nicht.
Ich möchte auch noch mal darauf hinweisen, dass es nicht erlaubt ist, Privatkopien von ausgeliehenen DVDs/Blu-Rays, z.B. aus Bibliotheken, anzufertigen.
Bonus
Wer informiert werden möchte, sobald neue Episoden bei Jellyfin eintreffen oder neue Youtube-Videos erscheinen, kann Jellyfin und Pinchflat mit ntfy.sh kombinieren. Die Nutzung von ntfy.sh ist kostenlos, man kann aber auch den ntfy-Server selbst hosten. Einmal in Pinchflat eingerichtet, sieht das dann z.B. so aus:
Um auf dem Laufenden zu bleiben, muss man nicht mehr zur Datenschleuder Youtube/Google gehen und die “Glocke abonnieren”.
Das letzte Recap ist zwar schon zwei Jahre her, aber ich wollte sowieso ein paar Sätze zu einigen Titeln schreiben, die ich dieses Jahr konsumiert habe. Interessanterweise gibt es seit dem letzten Mal LLM (Large Language Models), die diese Texte auch für mich hätten vorschreiben können. Ich habe mich jedoch dagegen entschieden. Dieses Jahr habe ich einige physische Bücher gelesen, vor allem fiktionale Romane und Sachbücher. Ich hoffe, dass ich in der Lage sein werde, das Interesse einiger Leser für diese Titel zu wecken.
2021 war ein langes Jahr und dieses Jahr konnte ich sogar meine Liebe zu Mangas erneuern und ein wenig meinen “Pile of Shame” abarbeiten. Mit diesem Blog Beitrag möchte ich mal kurze Reviews geben zu den Serien, Mangas, Filme und Spiele, die ich persönlich dieses Jahr genossen habe. Eine Vorwarnung gebe ich jedoch das ich ein wenig spoilern könnte, sofern ich denke das man durch diese Information den Titel schmackhafter machen kann für Unentschlossene. Ich verzichte außerdem auf 10er Bewertungen, da jede Person einen anderen subjektiven Eindruck hat.
In einem letzten Blog Eintrag hatte ich bereits meine Anfänge mit einem Lasercutter erzählt. Dies Mal habe ich etwas Nützlicheres damit gebastelt und was ich eigentlich schon lange anschaffen hätte sollen: Eine Lötrauchabsaugung
Obwohl ich bleifreies Lot verwende, so ist auch dieses nicht komplett unbedenklich und auch deren Dämpfe sollte man in einem geschlossenen Raum nicht zu viel einatmen. Mit dem kommenden Winter wird es schwerer mal eben durchzulüften während man lötet und fertige Lösungen zur Absaugung fangen bei mindestens 30 € an und werden schnell teuer. Da ich noch einen alten Computerlüfter herumliegen hatte und noch andere Kleinigkeiten habe ich einfach mir selber was gebastelt. Die Einkaufsliste ist dabei relativ kurz ausgefallen:
Das meiste hatte ich bei meinem letzten Einkauf aus China von AliExpress noch in Fülle da, sodass der endgültige Preis für mich selber noch mal deutlich nach unten ging.
Ich habe mich bei der Stromversorgung für 8 x AA 1,5V Batterien entschieden da diese günstig zu bekommen sind, das Projekt mobil zum Mitnehmen machen und weil einfach noch genug davon herumliegen hatte. Der Batteriehalter ist mithilfe von Klettband innen befestigt um diesen rauszunehmen und mit neuen Batterien aufzufüllen. Mit meinem Multimeter habe ich eine Spannung von 12,41 V gemessen. Einen Nachteil gibt es hier natürlich: Und zwar sinkt die Spannung von AA-Batterien gegen Ende ihrer Laufzeit und der Lüfter wird langsamer drehen. Genaue Laufzeiten habe ich auch noch aufstellen können und muss diese noch selber austesten in den kommenden Wochen.
Der Aktivkohlefilter ist mithilfe von Sekundenkleber angeklebt und hält überraschend stabil. Bis ich die richtigen Abmessungen für die Löcher vom Lüfter hatte, hab ich drei Versuche benötigt. Der Wippschalter hält ohne Kleber im ausgelaserten Loch. Das Grundgerüst zum lasern habe ich mithilfe von Boxes.py generiert und dann mithilfe von Inkscape erweitert um Löcher für Wippschalter, Filter und Lüfter passend herauszuschneiden.
In ersten Tests mit einer Kerze habe ich festgestellt das der Lüfter fast zu gut läuft und im Video unten fast die Flamme der Kerze komplett eingezogen hat. Man könnte natürlich noch eine Form eines Voltage Regulators einbauen, um etwa stabile 12 V zu liefern oder auf weniger zu gehen damit der Lüfter langsamer läuft.
Zuerst hatte ich die Idee als “Serviceklappe” das obere Holzstück mit dem Aufdruck und Wippschalter zu nutzen. Nach ersten Tests habe ich jedoch festgestellt das auch die vordere Platte mit dem Filter möglich ist, wenn man alle anderen Platten etwas schief verklebt. Einmal eingesetzt muss man erst mit einem spitzen Gegenstand die Platte rausfrimmeln und hält gut. Das hat den Vorteil das man eines Tages den Filter relativ einfach tauschen kann.
Vor über zwei Jahren bin ich von meinem alten iPhone auf mein immer noch aktuelles Google Pixel Handy umgestiegen. Das hat ehrlicherweise einen weiteren Umstieg nach hinten verschoben, den ich schon seit sehr langer Zeit plane: Endlich Tschüss zu Google zu sagen und wieder einen großen Teil meiner Privatsphäre zurückerlangen. Es gibt sogar einen eigenen Wikipedia Artikel nur um Kritikpunkte über Google bzw. deren übergeordneten Konzern Alphabet aufzulisten: Kritik an der Google LLC. Wer immer noch nicht versteht, warum ich weg von Google möchte, kann gerne mal durch Google Takeout bzw. Google Maps Zeitachse durchgehen und sich selber ein Bild darüber machen, was Google eigentlich über mich weiß. Gründe gegen Google gibt es also genug, aber leider gibt es auch viele Gründe warum ich mit Google fest verkettet war oder teilweise immer noch bin.
Vor 2017 hat Google bei seinem Mail Dienst Gmail auch noch völlig unverblümt alle E-Mails automatisch analysieren lassen, inzwischen ist Google da ein wenig zurückgerudert nimmt sich aber immer noch weitreichende Rechte zum Lesen einiger Daten aus dem Gmail Postfach heraus um Features wie “Smart Reply” effizienter zu nutzen oder erlaubt Gmail Add-ons weiterhin Zugang.
Ein Blick, in den Google Privatsphärecheck lohnt, sich da Google inzwischen ein wenig dem Datenschutz entgegenkommt, wenn man es sich so einstellt, von Haus aus darf man aber keine Wunder erwarten.
Android
Einer der größten Elefanten im Raum ist hier klar, dass ich Android nutze auf einem Gerät von Google selbst. Glücklicherweise stellt sich der letzte Punkt als die Rettung heraus den neue Custom Android Roms wie CalyxOS oder GrapheneOS laufen nahezu ausschließlich auf Google Pixel Geräten mit dem einfachen Grund, das man hier den Bootloader wieder sperren kann trotz eigener Keys, damit wird die Custom Rom wieder genauso sicher gegenüber physischen Angriffen wie das vorinstallierte Android. Außerdem liefert Google für seine eigenen Geräte pünktlich monatlich (Sicherheits-)Updates und beide CalyxOS und GrapheneOS können deswegen mit neuestem Android 11 punkten.
CalyxOS im Speziellen hat es mir angetan, leider ist mir GrapheneOS zu restriktiv und beschneidet brutal die Nutzungsmöglichkeiten des Handys durch den Versuch so Datenschutzfreundlich wie maximal möglich zu werden. Bei der Installation von CalyxOS wird man stattdessen gefragt, ob man MicroG vorinstallieren möchte oder nicht. MicroG als Alternative zu Google Play Services versucht viele der API Schnittstellen so Datenschutzfreundlich wie möglich bereitzustellen aber kann, das nicht immer bewerkstelligen, weswegen es von GrapheneOS nicht unterstützt wird. Zusätzlich fragt CalyxOS ob man den Aurora Store installieren möchte, eine open source App um Apps aus dem Google Play Store herunterzuladen ohne Google Play Dienste. Weitere Alternativen wären /e/OS oder LineageOS. Jedoch unterstützt /e/ noch nicht mein Pixel 3 und LineageOS hängt oft sehr stark hinter Android Feature Updates hinterher, Beispielweise kam LineageOS 18.1 basierend auf Android 11 erst im April 2021 heraus.
CalyxOS AOSP vs. Pixel Android
In meinem alten Blog Eintrag zum Umstieg auf Google Pixel hatte ich schon angemerkt das Google hier sich das Recht rausnimmt exklusive Pixel Features zu Android hinzuzufügen welche oft erst Monate/Jahre später in die Open Source Variante von Android “AOSP” einfliesen (wenn überhaupt). Durch den Umstieg auf eine Custom Android Rom wie CalyxOS verliert man hier diese Features, das ist aber nur halb so schlimm, weil die Entwickler einige Features selber hinzugefügt haben bzw. von LineageOS übernahmen haben die man bei Google wohl nie bekommen würde. Besonders erfreut bin ich über die Option einen Screensaver einzustellen während das Handy auflädt oder gedockt ist, ein Feature was komischerweise immer noch Google Pixel Stand exklusiv ist (welcher 79 € kostet). Außerdem findet man seit einigen Monaten eine Systemfirewall App vor, um ganz einfach Apps den Netzwerkverkehr zu entziehen. Anders als “Stock” Android gibt es auch eine nützliche Musik App standardmäßig während man bei Android lange Zeit nur die eher spärliche Google Music App bekam welche neuerdings von Youtube Music ersetzt wird.
Das nächste coole Feature ist das man sich automatisch Updates vom F-Droid Store herunterladen und installieren lassen kann, bei normalem Android ist, das nicht möglich da F-Droid keine Systemapp ist und Google behält sich dieses Privileg seinem Google Play Store vor. Ähnlich geht es zukünftig auch mit dem Aurora Store, diesem fehlt die Möglichkeit schlicht seit dem letzten großen Update. Das einzige, was wirklich fehlt, sind In-App Käufe aus dem Google Play Store, man kann sich im Aurora Store mit seinem Google Account anmelden und gekaufte Apps zu installieren aber In-App Käufe können nicht abgerufen werden. Das ist besonders traurig bei der App vom deutschen Wetterdienst, diese entfaltet erst nach einem In-App-Kauf sein volles Potenzial.
Alternative Apps
Seit ich den F-Droid Store entdeckt habe versuche ich möglichst viele Apps von dort zu beziehen. F-Droid erlaubt ausschließlich open source Apps und das F-Droid Team kompiliert diese selber, außerdem sind Tracker und Werbung explizit verboten. Einige Alternativen möchte ich hier auflisten, welche ich selber nutze:
Trotz dieser nicht kleinen Liste, gibt es viele Apps trotzdem nicht im F-Droid Store. Komischerweise sind darunter auch Firefox und Signal, als Firefox Ersatz gibt es aber Fennec und CalyxOS liefert Signal als System App aus für SMS. Für Signal gibt es auch den Fork Molly mit eigenem F-Droid repository. Ansonsten sollte der Aurora Store den Rest abdecken, jedoch geht eine App hier komplett unter: Die Pixel Camera App oder oft GCam genannt Eines der großen Verkaufsargumente für das Google Pixel, ist deren Kamera App welche aus dem kleinen Kamerasensor unglaubliche Bilder zaubern kann. Diese findet sich jedoch weder im AOSP noch im Play Store / Aurora Store zum Laden. Meine momentane Lösung ist sich von APKMirror die “GCam - BSG’s Google Camera port” App zu laden. Das ist nicht die schönste Möglichkeit an die App zu kommen aber verzichten möchte ich auf die App auch nicht.
Eine andere App wofür ich noch keinen guten Ersatz gefunden ist meine Musik App, genauer genommen BlackPlayer EX den ich immerhin per gekaufter Zusatz-App freischalten konnte, anstelle von In-App Käufen.
YouTube
Der zweite große Elefant im Raum ist wohl klar YouTube, mit seiner gigantischen Monopolstellung kommt man kaum drum herum. PeerTube versucht das Problem durch ein dezentralisiertes Peer-to-Peer-Netzwerk abzulösen, leider ist dieses jedoch oft sehr langsam und man findet vor allem Content hier, welcher schlicht überall anderswo gelöscht werden würde, weil es gegen die AGB verstoßen würde. Während ich PeerTube von der Seite im Blick behalte habe ich stattdessen einen genaueren Blick auf Invidious geworfen und hoste eine eigene Instanz davon auf meinem Server für privaten Gebrauch.
Invidious ist ein alternatives Frontend für YouTube und kann auch meine Watch History speichern sowie Playlisten. Ähnlich verhält es sich mit NewPipe als App für Handy und bietet ähnliche Funktionalitäten an ohne direkt Google alles zu erzählen. Invidious und NewPipe unterstützen beide auch SponsorBlock wodurch viele Youtube Videos gleich viel angenehmer zum Anschauen werden, leider gibt es momentan noch keine Möglichkeiten meine Playlisten und Watch History zwischen beiden zu teilen.
Ich nutze Invidious erst seit kurzem und habe ich schon einige Kleinigkeiten gefunden die nerven oder fehlen, ich werde es weiter testen, weil es bislang die beste Alternative für mich darstellt.
Gmail
Gmail war der Grund warum ich überhaupt einen Google Account erstellt hatte, der Umstieg hier ist für mich auch noch lange nicht vorbei und wird das wahrscheinlich nie richtig werden. Als Ersatz für Gmail nutze ich hauptsächlich momentan die Groupware Lösung von meinem VPS Anbieter Netcup, das kostet zwar wenige Euro im Monat aber dafür kann ich E-Mail-Adressen mit meiner Domain nutzen. Groupware bietet außerdem einen Kalender und ein Kontaktbuch das sich über CalDAV und CardDAV über DAVx⁵ aufs Handy synchronisieren lassen. Der einzige Wermutstropfen hier ist das Netcup keine Catch-All/Wildcard E-Mail-Adressen anbietet. Eine andere beliebte Alternative wäre ProtonMail, evtl. schaue ich mir das auch noch eines Tages genauer an.
Vor einigen Jahren hatte ich noch selbst gehostetes Mailcow genutzt aber meine E-Mails wurden ständig bei verschiedenen Anbietern als Spam markiert, obwohl ich alle Einstellungen vorgenommen habe für maximale Sicherheit aber das schien mir ein Kampf gegen Windmühlen.
Trotz allem behalte ich jedoch meinen Google Account für Gmail, weil ich mich über die vielen Jahren bei hundert verschiedenen Diensten mit meiner Gmail Adressen angemeldet habe und es extrem lange dauert nach und nach alle umzustellen.
Webbrowser
Glücklicherweise bin ich seit vielen Jahren Nutzer von Firefox und musste ich mich hier nicht von Google Chrome trennen was warum auch immer der absolut beliebteste Webbrowser weltweit geworden ist. Vor allem nach den letzten Bestrebungen von Google Werbeblocker Add-ons zu beschneiden oder ihren Vorstoß Cookies durch ihr eigenes Fingerprinting (FLoC) zu ersetzen hoffe ich das Google Chrome endlich mal ein wenig Marktanteile verliert.
Leider funktionieren einige Websites (namentlich auch viele Google eigene Webseiten) gar nicht oder nur sehr schlecht mit Browsern die nicht auf Chromium basieren. Dafür nutze ich ungoogled-chromium als Zweit-Browser, weil Chromium selber, obwohl es Open Source ist, trotzdem gerne mit Google Servern sich mitteilt.
Auf dem Handy nutze ich statt Firefox jedoch den Firefox-Fork Fennec, weil Firefox selber nicht bei F-Droid erhältlich ist.
Leider muss ich jedoch auch sagen, dass Firefox in seiner Standardausstattung nicht dem entspricht, was ich mir vorstelle, von einem perfekten Webbrowser. So rüste ich für Firefox normalerweise uBlock Origin nach und nehme einige Privatsphäre-Einstellungen vor. Dennoch bietet Firefox auch wirklich praktische Funktionen wie Firefox Multi-Account Containers bzw. Google Container.
Suchmaschine
Google begann als Internet Suchmaschine und ist immer noch Marktführer hier bei weitem und ich muss gestehen das Google durch die vielen Daten über einen auch wirklich passende Suchergebnisse liefert. Jede Suchmaschine, die Wert auf Privatsphäre legt, wird deshalb immer hinterherhinken. Trotzdem benutze ich seit vielen Jahren jedoch standardmäßig DuckDuckGo als Alternative. DuckDuckGo bekommt einen großen Teil seiner Suchergebnisse von Bing aber unterhält auch eigene Scraper. Besonders praktisch finde ich die sogenannten Bangs bei dennen z.B. “!aw” einen direkt zum Arch Linux Wiki führen oder “!stackoverflow” direkt zu StackOverflow, wer unzufrieden mit dem Suchergebnis ist, kann auch mit “!g” direkt bei Google suchen. Dennoch ist auch bei DuckDuckGo Zweifel angebracht da die Firma hinter der Suchmaschine “Duck Duck Go Inc” ihren Sitz in Amerika hat und damit dem CLOUD Act und PATRIOT Act bzw. Freedom Act unterliegen.
Alternativen zu DuckDuckGo aus europäischen Gefilden sind z.B. SearX und Qwant. SearX hat den interessanten Vorteil das man diese Meta-Suchmaschine selber betreiben kann während Qwant vor allem in Frankreich an Bekanntheit gewinnt. Leider konnte ich mich in beide noch nicht wirklich einarbeiten, vor allem SearX bei einigen öffentlichen Instanzen war für mich immer sehr langsam und brachte mich selten schnell zum Ziel als ich, das letzte Mal es genutzt hatte. Bis vor einigen Jahren war Startpage auch noch eine beliebte Methode um Google Suchanfragen hinter einem Proxy zu verschleiern, leider wurde der Dienst im Grunde 2019 von einer Werbefirma namens System1 aufgekauft und kann damit kaum weiterempfohlen werden.
Google Maps
Google Maps ist ein sehr mächtiges Werkzeug um Routen zu planen, den Weg von X zu finden, sich zu erkundigen, wann Restaurant Y geöffnet hat oder nachzuschauen, ob auf der Autobahn wieder Stau ist. Alternativen wie OpenStreetMap oder Apps wie OsmAnd~ wirken fast schon primitiv im direkten Vergleich. Wenig hilft es auch das OpenStreetMap und Google Maps Straßen teilweise anders benennt. Hin und wieder navigiere ich dann doch noch mal zu Google Maps über den mobilen Browser, immerhin trackt mich Google hier weniger krass als in der richtigen App.
Google Übersetzer
Google Übersetzer ist keine Frage ein mächtiges Werkzeug und die Kamera Funktion hat schon einige male mir aus der Patsche geholfen. Ich versuche so oft es geht Alternativen wie LibreTranslate, SimplyTranslate oder DeepL zu nutzen aber lande trotzdem immer mal wieder zurück bei Google Übersetzer.
Android Auto
Mein neuestes Auto hat Support für Android Auto und das habe ich auch eine Zeit lang genutzt. Android Auto ist jedoch extrem stark verzahnt mit Google Maps und sendet permanent Daten, wirklich innovative Funktionen wie eine Anzeige für die besten Ampelzeiten fehlen jedoch trotzdem. Es gibt momentan keine open source Alternative und in AOSP ist Android Auto auch nicht zu finden. Schade aber mein Auto hat von sich auch eine Navigationsfunktion und kann Musik per Bluetooth abspielen, wodurch das Anschließen an ein Ladekabel entfällt und mein Handy in der Hosentasche verbleiben kann.
Google Authenticator
Ich bin mir unsicher, ob Google das absichtlich gemacht hat oder es einfach nur Zufall ist das eine Zweit-Faktor-Authentisierung oft mit Google Authenticator wie ein Synonym verwendet wird. Fakt ist jedoch das TOTP/HOTP Token Generatoren nicht an Google gebunden sind und es eine Menge alternativer Apps gibt. Glücklicherweise habe ich mich da früh nach Alternativen um gesucht und hatte gute Erfahrungen mit Aegis Authenticator und davor andOTP gemacht. In Zukunft möchte ich auch dem integrierten OTP Token Generator in Bitwarden eine Chance geben.
Google Fonts
Wahrscheinlich eher weniger bekannt aber letztes Jahr im April habe ich Beispielweise in diesem Blog die Aufrufe für die Lato Schriftart auf einen lokalen Abruf geändert anstelle von googleapis. Lizenz-technisch war das kein Problem. Eine komplette Alternative wäre z.B. Font Library Falls ich in Zukunft noch mal auf der Suche nach einer passenden Schriftart bin.
Google DNS
Obwohl DNS Resolver ein eher technisches Thema sind, wissen heutzutage auch viele weniger technisch versierte Nutzer das 8.8.8.8 der DNS Resolver von Google ist. Google DNS hat den Vorteil das er jederzeit extrem schnell ist und im Sekundentakt die DNS Einträge aktualisiert, während man bei einigen DNS Resolvern von ISPs kann man gerne mehrere Stunden warten für eine Aktualisierung wartet und/oder Weiterleitungen auf Suchmaschinen bekommt bei unbekannten Webseiten. Der nächst größere DNS Service wäre von Cloudflare die sich aber auch in ihren AGB vorenthalten Daten bei der Nutzung zu erheben, um ihre CDN Caching Lösung weiter zu optimieren. Quad9 bekam erst vor kurzem einen Dämpfer von der deutschen Justiz als Sony gegen sie geklagt hatte an einem deutschen Gericht. Ein weiterer beliebter Service aus Deutschland wäre noch LibreDNS. In der Vergangenheit hatte ich meinen eigenen DNS Resolver aufgesetzt auf Basis von Adguard Home oder Pi-Hole.
Google Analytics
Wer Webseiten betreibt, möchte oft wissen wie viele Nutzer und wie die Nutzer ihre Seiten nutzen. Matomo (ehemals Piwik) hatte mir da in der Vergangenheit oft gute Dienste geleistet. Lange Zeit hatte ich aber kein Tracking mehr genutzt bis ich vor kurzem über umami gestolpert was anonymes Tracking erlaubt ohne Cookies (und damit DSGVO-konform ohne Banner) mit weniger Ressourcen als Matomo und dabei auch noch gut aussieht. Dieser Blog benutzt seit kurzem übrigens auch umami!
Google Photos
Anscheinend für sehr viele Menschen sind der unlimited Storage von Bildern zu Google Photos für Google Pixel Geräte der ausschlaggebende Grund es zu kaufen. Ich habe sogar von einigen gelesen die sich extra ein Google Pixel der ersten Generation gekauft haben mehrere Jahre später, weil es den Bilder-Upload in Original Qualität erlaubt statt “nur” Hoher Qualitätsstufe und das Ausnutzen um Bilder von ihrer Vollformat Kamera auf das Pixel übertragen und dann in die Google Cloud. Ich habe das selber nie verstanden und dort nahezu nie etwas hochladen lassen.
Ich habe aber kurz nach Alternativen gesucht wie z.B. PiGallery2, Photonix oder Piwigo aber brauche dann für den Moment dann doch keines davon.
Google Drive/Docs
Ich brauche zum Glück nur sehr selten und wenig Speicher für Google Drive und ich habe das Glück das mein lokaler Hackspace für ihre Mitglieder eine Nextcloud Instanz mit 1 GB Speicher bereitstellt für jedes Mitglied. Dort kann ich zum Beispiel PDF Dateien hochladen und sie einfach mit anderen Leuten teilen, was meine Hauptnutzung von Google Drive war.
Google Hangouts / Google+ / Ingress
Vor einigen Jahren als ich noch Ingress gespielt habe, war Google Hangout und Google+ noch sehr beliebt in meiner Gruppe da Ingress bzw. Niantic damals noch offiziell zu Google gehörten. Das hat sich insofern gelöst als das Google Handgouts und Google+ von Google eingestellt wurden und ich inzwischen aufgehört habe Ingress zu spielen und Niantic sowieso nicht mehr zu Google gehört.
Google Keep
Für Notizen habe ich mir eine eigene Instanz von HedgeDoc (ehemals CodiMD) auf meinem Server installiert und nutze diese gelegentlich.
Google Music
Wie weiter oben bereits erwähnt hatte ich Google Music nie genutzt bevor es eingestellt wurde, nachdem ich aber Navidrome mal ausgetestet habe fand ich die Idee schon verlockend meine Musik zentral zu speichern und über verschiedene Clients auf dieselbe Bibliothek zugreifen zu können. Momentan nutze ich aber dann doch noch meine offline Musiksammlung, vielleicht wird daraus in Zukunft wieder etwas.
WearOS / Google Fit
Googles eigenes Betriebssystem für Smartwatches hatte ich bislang noch gar nicht auf den Schirm, weil ich einfach keine Smartwatch haben wollte. Es gibt jedoch mit AsteroidOS ein interessantes Projekt welches WearOS datenschutzfreundlich gestalten möchte ähnlich von Android Custom Roms. Leider unterstützt AsteroidOS nur sehr wenige und vor allem alte Smartwatches die kaum zu bekommen sind heutzutage. Ich habe mich momentan jedoch für eine günstige Fitness Tracker Armband entschieden, was ich mit Gadgetbridge nutzen kann und so datenschutzfreundlich hinbekomme. Ich hoffe einen eigenen Blog Artikel darüber in Zukunft schreiben zu können.
Blogger
Vergisst man gerne aber blogger.com gehört Google. Dieser Blog hier liegt jedoch nicht auf Google Servern, sondern bei GitHub Pages und wird per Jekyll generiert.
Google Pay
Meine Bank bietet eine eigene App an, über die ich per NFC bezahlen kann. Ehrlicherweise muss ich jedoch gestehen, dass ich deren Einsatz unter CalyxOS noch nicht ausgetestet habe, weil mir irgendwann das entsperren des Handys per Fingerabdruck beim Bezahlen teilweise echt nervig wurde und ich stattdessen plump per physischer Karte bezahle momentan.
Google Home / Google Assistant
Für die Heimautomatisierung erfreut sich Google Home bzw. Google Nest immer größerer Beliebtheit dank Google Assistant und sehr enger Verzahnung mit Android. Anstatt in der Cloud betreibe ich jedoch lieber meine Heimautomatisierung-Lösung Home Assistant selber und habe darüber in der Vergangenheit schon einen Blog Artikel geschrieben. Das einzige, was noch fehlt, ist eine wirklich nützliche Spracherkennung jedoch werden in dem Bereich alle möglichen Alternativen sehr schnell aufgekauft wie vor einigen Monaten erst Snips was vielversprechend aussah.
Google News
Hier bin ich altmodisch und pflege meine RSS Sammlung an Nachrichten mithilfe von FreshRSS und bin sehr zufrieden damit.
Fazit
Der Prozess sich komplett von Google zu trennen wird für mich wohl noch mehrere Jahre dauern und kann unmöglich über Nacht geschehen. Auch ist mir bewusst das viele Alternativen, die ich oben erwähnt, habe nur für meinen eigenen Anwendungszweck gut sein können während manch anderer dann doch eine Alternative bevorzugt oder trotzdem bei Google bleibt. Die Idee hinter dem “degooglen” sollte sein einen Fußabdruck an digitalen Daten, die man an Google aushändigt so klein wie irgend möglich zu halten, hier gilt auch der Grundsatz “Lieber spät als nie”.
Wer weitere Alternativen sucht wird eventuell bei degoogle.jmoore.dev, PrivacyTools.io oder Kuketz Blog wahrscheinlich fündig.
Letztes Jahr hatte ich in meinem Blog bereits über 10 Jahre Minecraft geschwärmt und heute ist auch schon Zeit für das nächste Jubiläum, das mir am Herzen liegt: Es geht um das Spiel Terraria
Seit ich diesen Blog betreibe, träumte ich von einem Feature, das ich schon immer implementieren wollte. Diese Woche hatte ich endlich die zündende Idee, wie so oft mehr spät als früh, um es endlich umzusetzen.
Und zwar geht es darum die Kategorien meiner Blog-Einträge endlich schön mit Bildern aufzureihen, zusätzlich kann man jetzt bei jedem Blog Eintrag oben links auf den Namen der Kategorie klicken und wird zur jeweiligen Übersicht weitergeleitet. Das sieht zwar nicht nach viel aus aber dafür musste ich einiges am Blog umschreiben damit es aussieht wie es jetzt der Fall ist. Für Blog Posts ohne Bild gibt es einen Platzhalter stattdessen.
Im Oktober dieses Jahres hab ich ein neues Hobby angefangen, welches mir noch mal alle Nerven kosten sollte: Mein eigener 3D-Drucker
Zwar gibt es bereits einen eigenen 3D-Drucker (und ein weiteres Leihgerät) in meinem lokalen Hackspace, jedoch habe ich schnell festgestellt das ich nicht mehrere stundenlang einen 3D-Druck in den Hackspace Räumen beaufsichtigen kann im Moment. Die Auswahl war auch schwer genug, mit einem beschränkten Budget entschied ich mich für einen Drucker aus der unter 300€ Klasse, welche man selber zusammenbauen muss. Der Bekannteste in diesem Preisbereich ist wohl der Creality Ender 3 (Pro/v2). So schlau wie ich war hab ich mich jedoch gleich tiefer ins Getümmel gestürzt und habe mir mit fatalen Folgen den unbekannteren Ender Klon von BIGTREETECH (bekannt für zum Beispiel modifizierte Ender Mainboards) entschieden: der BIQU B1
Die Vorteile liegen klar auf der Hand: Großer mehrfarbiger Touchscreen + die Option auf den “alten” Monochromen Marlin Screen, am Gehäuse befinden sich Anschlüsse von BLTouch und LED-Stripes (beim Ender muss man beides nachrüsten), leise Stepper Motoren, eine magnetische Stahlplatte die man biegen kann als Druckbett anstatt ein Glasbett, LED Beleuchtung vom Hotend ohne Modifikation, bereits verstärkte Federn unter dem Druckbett und einige andere Kleinigkeiten die man sowieso wahrscheinlich als Upgrade eines Ender 3D-Druckers nachrüsten würde.
Der Touchscreen erwies sich als extrem hilfreich da man mithilfe diesem sogar custom Gcode Befehle eingeben konnte, wofür man normalerweise einen angeschlossenen Computer oder Octoprint benötigt. Vor allem, weil die Firmware mit der mein BIQU B1 ausgeliefert wurde einen Bug hatte, der die Z-Axis nicht bewegen ließ, ein M500
Reset und M502
Einstellungen speichern per Gcode Terminal brachte den Fix. Das größere Problem war das Finden von irgendwelchen Tipps online da jegliche 3D-Drucker von BIGTREETECH eher selten gekauft worden. Wer nicht schon sehr viel 3D-Drucker Wissen sich vorher angesammelt hat, wird hier oft vor Probleme stoßen für die man für andere 3D-Drucker schneller Lösungen findet. Besonders unpraktisch ist das sich BIGTREETECH sich bei der Nozzle vom Ultimaker inspirieren lassen hat, man kann anscheinend nicht einfach eine MK8 Nozzle wie für den Ender 3 nutzen, sondern muss auf nur extrem selten verkaufte UM2 Nozzles Ausschau halten. Das hat sich schnell als ein Problem herrausgestellt da ich irgendwann die Nozzle schön ins Druckbrett habe graben lassen, die jeweilige Nozzle ist jetzt hinüber und der jeweilige Oberfläche des Druckbretts zerkratzt.
Doch damit war der Spaß noch nicht vorbei, dem Drucker beigelegt war ein Halter für einen BLTouch Sensor am Hotend. Doch leider war dieser bei mir komplett verbogen, sodass ich einfach einen neuen gedruckt habe. Allgemein war der Antclabs BLTouch Sensor merkwürdig, für fast 40€ bekommt man hier nicht mal ein Kabel, um Mainboard mit dem Sensor zu verkabeln, stattdessen wird ein “Kit” beigelegt um seine eigenen Dupont Kabel zu crimpen. Für mich war das zum Glück kein Problem aber solche Crimpzangen sind, warum auch immer relativ teuer in Deutschland und für den Preis hätte man einfach einen Meter Kabel beilegen können was zwar nicht für alle 3D-Drucker passend wäre aber immerhin für den größten Teil davon.
Die ersten Drucke waren bereits nervenaufreibend da bereits wenige Millimeter Spielraum darüber entscheiden, ob der Druck am Bett ordentlich haftet oder zu sehr ins Druckbett gedrückt wird. Vor allem das ABL (Automatic Bed Leveling) über BLTouch raubte mir aber jeden Verstand da man hier nur sehr schwer das Druckbett selber kalibrieren kann, da ja eigentlich der Sensor das für einen übernehmen soll. Nachdem ich dann auch noch eine eigene Firmware kompiliert habe wurde es aber langsam besser.
Als Slicer Software, um 3D CAD Objekte in 3D-Drucker Gcode umzuwandeln, habe ich mich übrigens für Ultimaker Cura entschieden, vor allem die Features wie Ironing für glattere Drucke an der Oberseite oder Gradual Infill sind wahnsinnig gut gelungen. Alternativen wären noch PrusaSlicer oder Slic3r. Es scheint aber das die zwei Slicer von den Firmen Ultimaker und Prusa hier klar Vorreiter in neuen praktischen Funktionen sind im Gegensatz zu dem komplett eigenständigen Projekt Slic3r.
Ein weiteres Problem kam sehr schnell auf: Das Plastik Filament saugt Feuchtigkeit aus der Umgebung sehr schnell auf, vor allem in den kalten Tagen ein nicht zu vernachlässigbares Problem, weil zu feuchtes Filament zu Blasenbildung in der Nozzle führen kann und damit der endgültige Druck an Qualität verlieren kann. Um das Problem vorläufig zu bekämpfen habe ich mir eine verschließbare Box gekauft, wo ich die Filamentrollen mit Trockenheitsbeutel/Silicagel lagere, das hat leider den Nachteil, dass ich das Filament nahezu täglich wieder aufrolle und zurücklegen muss.
Nach ungefähr zwei Monaten ist mein Fazit das ich zwar im Voraus mich informiert hatte wie Zeitaufwendig dieses neue Hobby sein wird, trotzdem hat mich der Zeitaufwand nahezu erschlagen mit allen möglichen Probleme. Spielraum nach oben gibt es auch noch genug, so bin ich dabei noch einen Filament Guide zu bauen, Octoprint mit Plugins aufzuwerten wie z.B. den automatischen Erkennen von Spaghetti, sodass ich den 3D-Drucker auch mal unbeaufsichtigt arbeiten lassen kann. Was ich auch noch gar nicht angesprochen habe ist das eigene designen von 3D Objekten z.B. über FreeCAD oder OpenSCAD, welches ich mir noch aneignen muss im nächsten Jahr und wodurch der 3D-Drucker endlich wirklich nützlich werden kann.
Am 29. Oktober 2018 gaben IBM und Red Hat bekannt das IBM sich alle Aktien von Red Hat zum Preis von 190$ (Börsenkurs zur Ankündigung: 116$), also insgesamt 34 Milliarden Dollar, kauft und sich damit Red Hat einverleibt.
Red Hat ist die derzeit größte Linux Firma der Welt und betreut nicht nur Linux-Distributionen wie das namens gebende Red Hat sondern auch CentOS, Fedora und CoreOS. Oben drauf beschäftigt Red Hat eine sehr große Zahl an Linux Entwicklern welche maßgeblich an Projekten wie Wayland, Xorg, Gnome, flatpak, GTK, systemd und vielen weiteren wichtigen Bestandteilen von Linux arbeiten. IBM wird jedoch wahrscheinlich am Cloud Provider Geschäft mehr interessiert sein, da sie auch dort versuchen wieder mehr Fuß zu fassen zwischen Google, Amazon, Microsoft und Alibaba.
Damit ist dieser Einkauf einer der Größten in der IT-Industrie und wirft eine Menge Angst auf. Was wohl nicht von irgendwo kommt, eingekaufte Firmen von IBM sind intern oft bekannt als “Blue Washing”, bei dem bestehende Prozesse der eingekauften Firma durch IBM Lösungswege ausgetauscht werden, völlig egal ob sie für diesen Fall besser sind oder nicht, zumindest bleibt der CEO von Red Hat weiterhin als dieser Aktiv. Bleibt die große Angst ab wann IBM die Open-Source Arbeit der unzähligen Linux Entwickler als “unnötig” einstuft und eindampft, wie es leider schon häufiger nach dem Einkauf von IBM geschehen ist.
Im Moment kann leider niemand genau sagen was wie Linux, wie wir es kennen, sich durch diese Einverleibung verändert wird. Im besten Fall erkennt IBM wie wichtig die Arbeit von Red Hat und all ihren Mitarbeitern ist um ein gutes Linux System aufzubauen. Im schlimmsten Fall wird IBM rigerös den roten Stift ansetzen und jede “unnötige” Arbeit streichen die Red Hat bislang in Kauf genommen hat für das Wohl von Linux.
Ich für meinen Teil werde meine Bestrebungen wegen einem Wechsel von Ubuntu auf Fedora, erst mal auf Eis legen und warten wie die Sache auf lange Sicht ausgehen wird. In der Zeit finde ich vielleicht eine passendere Linux-Distribution. Aber erst mal müssen sich noch Aktionäre und Investoren von Red Hat darüber einigen.
Update: 10.12.2020
Am 8.12.2020 gibt es eine große Ankündigung von CentOS zu dem Thema. Nach 26 Monaten seit der Ankündigung zur Red Hat Übernahme scheint man nun Konsequenzen zu ziehen und “degradiert” CentOS zu einem Beta-Test von RHEL. Anscheinend hatte ein Erbsenzähler bei IBM bemerkt das einige Firmen lieber kostenlos CentOS nutzen anstelle für Lizenzen für RHEL zu zahlen.
Beginnend 2022 wird CentOS 8 auf eine Art rolling release umgestellt namens “CentOS Stream” und damit zwar immer noch sehr ähnlich zu RHEL aber eben nicht mehr 1:1 gleich. Genau genommen war das aber vorher schon nicht immer der Fall, CentOS hatte sich oft sehr lange Zeit gelassen für Security Updates, der Konkurrent Oracle Linux macht das zu einem seiner Pluspunkte gegenüber CentOS deutlich:
Während Oracle Linux sich als Ersatz positionieren (mit fragwürdigen Oracle Lizenzkosten), hat sich schnell Mitbegründer von CentOS Gregory Kurtzer zu Wort gemeldet:
Das neue Projekt hat bereits Forum und Namen bekommen: Rocky Linux
Man kann auch positives aus der Ankündigung herausziehen, wie zum Beispiel das Red Hat jetzt vielleicht endlich mal rolling releases massentauglich machen könnte und den Mythos brechen könnte das diese nicht zuverlässig laufen und sofort kaputtgehen. Oder das man endlich mal wieder frischen Wind in die RHEL forks gebracht hatte, nachdem CentOS seit Jahren eher träge mit Entwicklung und Updates sich hinter RHEL herschleppen. Realistisch betrachtet werden aber die meisten sich eher nach Alternativen umschauen und vielleicht bei Rocky Linux oder Oracle Linux hängen bleiben oder sich ganz Red Hat abwenden und eher Richtung SUSE/OpenSUSE umschauen.
Vor fast genau 10 Jahren hatte ich mir ein kleines Indie-Spiel namens Minecraft gekauft. Einige Jahre später hat sich aus einem kleinen Indie-Spiel eines der beliebtesten Spiele der Welt entwickelt für den Microsoft ganze 2,5 Milliarden Dollar in 2014 hingeblättert hatte.
In meinem letzten Blog Eintrag hatte ich erzählt wie ich mir einen neuen Raspberry Pi zugelegt hatte und heute kommt nach einigen Tests nun endlich der Erste richtige Verwendungszweck, den ich mir überlegt hatte. Über das Thema Heimautomatisierung hatte bestimmt schon jeder mal mit rosaroter Brille nachgedacht und sich die tollsten Möglichkeiten überlegt und einige proprietär Heimautomatisierung Software kommt diesem Wunsch oft sehr nahe (z. B. Google Home Assistant). Ich hatte jedoch etwas anderes im Kopf: Open-Source und ohne externe Cloud sollte mein Heim laufen. Schnell wird man im Netz fündig was es für Alternativen gibt und stolpert über viele Begriffe und ich habe einige getestet und wollte diese grob präsentieren.
Home Assistant (ehemals hass.io)
Vorneweg: Letztlich habe ich mich für Home Assistant entschieden um die meiste Arbeit zu erledigen und da fängt es schon an, man kann die verschiedene Heimautomatisierung Software auch im Tandem nutzen und so das Beste aus allen Welten zu verbinden. Der größte Vorteil an Home Assistant ist wie groß die Community ist, die sich darum gebildet hat und derzeit 1652 “Integrations” für alles Mögliche anbietet. Außergewöhnlich ist auch wie konsistent und flüssig die Oberfläche inzwischen ist und Beispielweise sogar auch automatisch erkannt hat das mein Betriebssystem ein dunkles Thema bevorzugt.
Die Installation verlief jedoch etwas problematisch wenn man den Weg über Docker geht, anstatt die fertigen Raspberry Pi Images zu nehmen, dafür muss man keine speziellen Rechte für den Konfigurations Ordner einstellen, wenn man diesen als Volume aus dem Container raus führt. Direkt nach der Installation erkannte Home Assistant sofort drei “smarte” Geräte: Mein LG TV, AVM Dect 301 Heizthermostat und mein Laserdrucker Leider erkannte Home Assistant das TV Gerät über Homekit anstatt der nativen LG webOS Integration und den Drucker über das generische Netzwerkdruckerinterface statt der Brother Integration, in beiden Fällen bekam ich mehr Funktionalität durch den Wechsel auf die “native” Integration.
Durch einige Einträge in der Konfigurations Datei im YAML Format konnte ich einfach und schnell die Funktionalität schnell erweitern und hatte innerhalb einer Stunde bereits automatische Präsenzerkennung von Personen mithilfe ihres Handys im WLAN Netz, Logging der Downloadgeschwindigkeit im stündlichen Intervall oder Notifications auf meinen Matrix Server für Handy Benachrichtigungen (Discord, Telegram, Mastodon, Rocket.Chat oder Signal sind auch möglich). Wenn Home Assistant neue Geräte erkennt, dann bekommt man im Dashboard eine Meldung unter “Notifications” um diese gleich einrichten zu können.
Es gibt verschiedene Oberflächen zur Auswahl aber das automatische Dashboard macht bereits einen sehr guten Eindruck aus dem Stand heraus. Außerdem bietet die Home Assistant App an einige Zustände, wie zum Beispiel Akkustand oder der nächste Wecker, des Handys an Home Assistant zu schicken.
OpenHAB
OpenHAB ist das Ur-Gestein der Heimautomatisierung Lösungen und entstand 3 Jahre vor Home Assistant und das merkt man leider auch. In der neuesten Version 2 gab es eine neue Oberfläche namens “Paper UI” welche das alte “Basic UI” verbessern soll, zusätzlich gibt es mit “OpenHUB” noch eine Oberfläche speziell für Tablets. Nach der Installation wird man gefragt welche Oberfläche man bevorzugt und gibt Empfehlungen für Anfänger.
OpenHAB listet neue Geräte in der “Inbox” auf und erkannte aus dem Stand heraus meinen LG TV und das AVM Dect 301 Heizthermostat. Mit “nur” 394 Add-ons bietet OpenHAB auch eine große Auswahl und deckt die wichtigsten Dinge ab.
Die Installation hat sich dagegen um einiges einfacher gestaltet, auch wenn man die Konfigurations Ordner Rechte anpassen muss, außerdem gibt es viele Anleitungen, um OpenHAB auf so ziemlich allem zu installieren inklusive fertiger Raspberry Pi Images. Leider sind die add-ons manchmal etwas träge und das ganze Konzept hat eher Bastelcharme. Ein Bonus ist jedoch das die OpenHAB Apps im F-Droid Store erhältlich sind, bieten jedoch keine Funktion zum teilen von z.B. Akkustand oder dem nächsten Wecker mit der Heimautomatisierung Software wie bei Home Assistant.
Node-RED
Node-RED fällt ein wenig aus dem Rahmen den eigentlich ist Node-RED nur eine “Rule Engine” und steuert Ereignisse/Regeln, dafür umso besser als jeder andere Konkurrent. Solche Ereignisse werden in sogenannten “Flows” gesteuert die man sich relativ einfach zurecht klicken kann.
Vor allem für Benutzer mit weniger programmier- technischen Hintergrund sicherlich sehr nützlich über viele Add-ons kann man viele Funktionen nachrüsten wie z. B. Integration zur Fritz!Box. Jedoch muss man dies alles händisch konfigurieren und dann als Flows einrichten, eine automatische Konfiguration oder nützliche Beispiele wie bei Home Assistant oder OpenHAB fehlen komplett.
Seit kurzem gibt es auch die Möglichkeit ein UI Dashboard einzurichten, das muss man jedoch etwas umständlich per Flows manuell einrichten, was etwas eigensinnig am Anfang ist. Allgemein ist das UI Framework eher Beiwerk und nicht das Hauptaugenmerk bei Node-RED, weswegen Node-RED gerne als Ergänzung zu Home Assistant oder OpenHAB genutzt wird.
Ergänzung: MQTT (Broker)
Wer seine Heimautomatisierung selber in die Hand nimmt, wird schnell über MQtt stolpern bzw. den open source Broker Mosquitto. Über das MQTT Protokoll können “Sender” sowie “Empfänger” (typischerweise IoT Geräte) unkompliziert Daten an einen MQTT Broker (zentraler Server) austauschen. Die Daten landen dabei in frei wählbaren “Topics” die an ein REST-API erinnern wie z. B. /drinnen/schlafzimmer/sensor/temperatur
. Ein Empfänger kann jetzt Topics abonnieren beispielweise über /drinnen/schlafzimmer/sensor/*
und wird sofort benachrichtigt, wenn z. B. neue Daten über .../temperatur
oder .../luftfeuchtigkeit
im übergeordeneten Topic Schlafzimmer Sensoren eintreffen.
Leider ist die beliebteste MQTT Broker Mosquitto jedoch standardmäßig extrem lax konfiguriert und man muss erst sehr umständlich eine Rechteverwaltung selber einrichten. Listen mit komplett offenen und öffentlichen Mosquitto Servern findet man leider zur Genüge im Internet.
Ergänzung: ZigBee
Wer mit smarten Leuchtmittel (z. B. Philips Hue oder IKEA Trådfri) liebäugelt, wird oft eine Art “Bridge” oder “Hub” benötigen um mit dem Leuchtmittel zu kommunizieren. Dieses Stück (oftmals teurer) Hardware kann man sich aber getrost schenken, wenn man sich einen ZigBee USB-Stick für seine selbst gehostete Heimautomatisierungs Lösung besorgt und damit stattdessen die IoT Leuchtmittel direkt anspricht.
ZigBee ist im Grunde eine Low-Energy Version von WLAN, das hat jedoch auch den Nachteil das in Gebieten mit sehr vielen WLAN-Netzen auch die Sendeleistung von ZigBee runtergeht. Es gibt auch einige Leuchtmittel welche mit anderen Protokollen arbeiten wie Z-Wave oder Bluetooth, genauso gibt es außer Leuchtmittel noch andere IoT Geräte mit ZigBee Anbindung.
Fazit
Die große Auswahl an open source Heimautomatisierung Lösungen macht es nicht leicht das Richtige für sich zu finden. Für den Moment versuche ich Home Assistant voll auszunutzen und werde wahrscheinlich in Zukunft langsam neue Sensoren und IoT Geräte nachpflegen, welche ich hoffentlich in einem zweiten Blog Eintrag präsentieren kann.
Nachdem ich meine letzten beiden Raspberry Pis Version 1 und 3 durch Eigenverschulden gebricked hatte, kam ich auf die Idee endlich mal Version 4 des beliebten Einplatinencomputers zu kaufen. Die Vorteile gegenüber dem letzten Model lagen klar auf der Hand:
Vor allem die Umstellung von Ethernet und USB Hub auf eigene PCIe Lanes macht den Raspberry Pi 4 nun endlich als Mini-NAS nützlich. Aber es gibt aber Nachteile:
Den letzten Punkt kann man jedoch seit dem 15. Mai 2020 beheben, knapp 11 Monate nach Release der neuen Version 4 des Einplatinencomputers tauchte auf GitHub eine Beta-Version der Firmware für den EEPROM auf der das booten über USB erlauben würde. Bis zu diesem Tag musste man immer über eine Micro-SD Karte erst mal den Bootloader starten und danach auf eine System-Partition auf USB verweisen, aber jetzt geht das ganz ohne extra Micro-SD Karte und nativ).
Das Aufspielen des EEPROM Updates ist derzeit noch mit etwas Mühen verbunden:
Man braucht eine Micro-SD Karte mit Raspbian und aktuellen System über apt update
, apt upgrade
und rpi-update
. Nach einem Reboot kann man jetzt im rpi-epprom
Paket auf den Beta-Zweig wechseln, dafür editiert man die Datei /etc/default/rpi-epprom-update
von
FIRMWARE_RELEASE_STATUS="critical"
auf
FIRMWARE_RELEASE_STATUS="beta"
Und nun spielt man die neueste Beta Firmware über rpi-eeprom-update
auf, dafür sucht man sich die aktuellste Version der pieeprom-*.bin
Datei im Verzeichnis /lib/firmware/raspberrypi/bootloader/beta/
. Zum heutigen Zeitpunkt (26.05.2020) sieht der ganze Befehl so aus:
sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-05-15.bin
Nach einem abschließenden Reboot sollte der Raspberry Pi 4 nun endlich von USB booten können und die Micro-SD Karte für andere Zwecke verwendet werden. Das Einzige, was noch fehlt, ist die Bootloader Firmware eines Laufwerks eurer Wahl (z.B. USB-Stick oder SATA SSD/HDD über USB Adapter) anzupassen:
Schreibt zuerst das neueste Raspbian auf euer Laufwerk und kopiert dann alle *.elf
und *.dat
Dateien aus dem /boot
Verzeichnis eures gerade genutzten Raspbian von Micro-SD zum /boot
Verzeichnis des USB Laufwerks. Bei der Gelegenheit kann eine leere Datei namens ssh
angelegt werden im /boot
Verzeichnis so fern man direkt über SSH auf den RasPi zugreifen möchte.
Doch lohnt sich die Mühe? Ich habe die neue Beta EEPROM Firmware gleich mal getestet und eine SanDisk 16GB Micro-SD Karte, einen SanDisk 32GB USB 3.0 Stick, eine SanDisk 120GB SATA SSD und eine Seagate 2TB 2,5” SATA SSD über einen ELUTENG USB 3.0 zu SATA Adapter im Benchmark gegeneinander antreten lassen. Zum Einsatz kam die Benchmark Kollektion von storage.jamesachambers.com welche DD, HD Parm, IOZone und FIO vereint.
Gerät | Disk Read | Cached Read | Write | IOPS Read | IOPS Read |
---|---|---|---|---|---|
16 GB Class 10
|
41 MB/s | 40 MB/s | 11,6 MB/s | ~2500 IOPS | ~770 IOPS |
32 GB USB 3.0
|
95 MB/s | 48 MB/s | 76 MB/s | ~1700 IOPS | ~870 IOPS |
2TB 2,5" SATA 3
|
110 MB/s | 270 MB/s | 72 MB/s | ~2060 IOPS | ~430 IOPS |
120 GB 2,5" SATA 3
|
300 MB/s | 200 MB/s | 140 MB/s | ~18400 IOPS | ~9500 IOPS |
Mit einer schnelleren Micro-SD Karte hätte ich wahrscheinlich an der maximalen Grenze von 50 MB/s kratzen können, weder SD-Karte noch USB-Stick oder HDD bekommen jedoch ordentliche IOPS Werte hin. Dafür fühlt sich das System auf einer SATA SSD erstmal richtig flott an, vor allem wenn man über apt
Pakete installiert dauert, das keine halbe Ewigkeit mehr, sondern geht, genauso schnell wie auf einem richtigen Desktop oder Laptop. Ein weiteres Plus ist das SSDs wear-leveling besitzen während der Großteil aller SD Karten und USB-Sticks das nicht haben, außerdem kann man selbst ohne wear-leveling eine viel längere Laufzeit erwarten gegenüber den billigeren Flash-Chips in SD Karten und USB-Sticks.
Leider hatte ich keinen schnellen USB 3.1 Stick zur Hand, Benchmarks zeigen jedoch auf das man über einen etwas teureren USB-Stick auch sehr schnell ans Ziel kommt.
Trotz Beta-Status lief das EEPROM Firmware Update sehr gut bei mir, die ersten Bug-Fixes trudeln auch bereits ein. Sobald die Firmware als stabil gekennzeichnet wurde, wird es auch einfacher diese aufzuspielen und ein einfaches ‘rpi-update’ sollte in einem zukünftigen Update genügen.
Seit es diesen Blog gibt, nutze ich Semantic-UI als CSS Framework um die Seite zu gestalten. Dabei habe ich Semantic-UI so lieb gewonnen das ich es fortan in jeder Webseite eingesetzt habe. Zuerst hab ich nur noch einen Ersatz für Bootstrap gesucht, welches bis heute immernoch eines der beliebtesten Toolkits ist um Webseiten zu gestalten.
Leider gibt es jedoch seit 2018 keine Updates mehr zu Semantic-UI, es wurde still um das Projekt und es werden Issues darüber geschlossen. Also haben sich einige Mitglieder in der Community zusammengesetzt und einen Fork erstellt: Fomantic-UI Dieser hat das Ziel irgendwann wieder in das Hauptprojekt einzufliesen, auch wenn es derzeit eher so aussieht als würde das noch passieren.
Also habe ich mich nun endlich dazu entschieden auch meinen Blog umzustellen mit Commit 19e3abe und dabei auch gleich ungenutzte Dateien entfernt und jQuery auch ein Update verpasst. Von der Umstellung sollte man nichts merken, dafür kann ich mich in Zukunft über neue Features freuen die in den Blog einbauen kann wie z.B. Font Awesome 5.12.0 Icons (Semantic-UI ist derzeit bei Font Awesome 5.0.8) oder Tertiary Buttons.
In meinem letzten Blog Eintrag hab ich bereits erwähnt das es im Hackspace einen CO2 Lasercutter gibt. Heute habe ich endlich mal mit diesem rumexperimentiert und als Ziel gesetzt ein Namensschild für meinen Schlüsselbund zu erstellen.
Als erstes hab ich rudimentär in Inkscape ein gerunndetes Rechteck mit meinem Namen erstellt. Anhand der Farbe wird der Laser später entscheiden wie viel Power er benutzt und ob diese ausreicht um das Material zu durchdringen. In meinem Fall sollen blaue Pfade das Material durchschneiden und schwarze nur gravieren.
Nach einer Einweisung von einem anderen Hackspace Mitglied, durfte ich nun auch selber den Laser bedienen und musste auch erst mal einige Test Durchläufe machen bis ich ein gewünschtes Ergebnis bekommen habe. Als Material hab ich hier 3mm Speerholz verwendet.
Nach ein wenig rumprobieren, hatte ich endlich die passenden Settings gefunden. Beim obersten Versuch habe ich den Laser den Text schraffieren lassen, wodurch es ungefähr 3 Minuten länger gedauert hat.
Alles in allem war es nur ein kleiner Test um mich mit derm Lasercutter vertraut zu machen. Die Namensschilder sind auch ein wenig zu groß geworden um sie an einen normalen Schlüsselbund zu hängen, aber jetzt weiß ich ja wie ich mir kleinere machen kann.
Hackspaces bzw. Hackerspaces oder FabLabs sind vor einigen Jahren geradezu wie Pilze aus dem Boden geschossen, jede größere Stadt hatte mindestens einen eröffnet. Vor allem auch durch den Chaos Computer Club (CCC) wurden viele lokale Vereine gegründet die ähnliche Räumlichkeiten bereitstellen.
Vor etwas mehr als einen Monat hab ich mich nun endlich auch getraut in einem meiner lokalen Hackspaces vorbeizuschauen und mir das selber mal anzuschauen. Dafür besuchte ich die Binary-Kitchen welche seit 7 Jahren in Regensburg besteht und eigene Räumlichkeiten anbietet für Vereinsmitglieder und außenstehende. Der Name kommt unter anderem davon das dort auch leidenschaftlich gerne gekocht wird, es gibt aber auch andere Interessen abseits von IT-Themen wie einen eigenen Garten oder eigene Bienenstöcke. Der Verein hat auch andere Vereine wie Regensburg Repariert oder die Amateurfunker in Regensburg eingegliedert. Interessanterweise gehört die Binary-Kitchen derzeit jedoch nicht offiziell zum CCC als “Erfa-Kreis”, trotz großer Nähe zu diesem.
Jeden Montag Abend werden gerne Führungen dort angeboten durch die 3 größeren Räume: Einer “Lounge” mit angegliederter Küche, im Keller ein Labor mit Lötstationen, 3D-Druckern und Amateurfunker Equipment und auf der gegenüberliegenden Straßenseite eine Werkstatt mit CNC Fräse, Lasercutter und anderem Werkzeug. Vor allem der 80W CO2 Lasercutter um unter anderem Holz oder Plexiglas über SVG Dateien “auszuschneiden” hat es mir angetan, in einem zukünftigen Blog-Eintrag wird es mehr Informationen zu ersten Projekten damit von mir geben. Einige Beispiele was man aus Holz machen kann, findet man hier.
Auch spannend für mich ist der Grad der Heimautomatisierung welche man dort aufgebaut hat, auch komplett offline ohne Cloud Anbindung. Im Hauptraum gibt es viele verschiedene Lampen welche man über ein OpenHab Webinterface ein-/ausschalten kann oder teilweise sogar die Farbe umstellen kann. Der Kompressor in der Werkstatt wird nach einer bestimmten Uhrzeit als Lärmschutzgründen abgeschaltet, der Lasercutter geht erst an wen ein passendes Fenster zur Lüftung offen ist oder das Aufzeichnen von Temperaturen oder Feinstaub in der Luft. Außerdem gibt es in beiden Gebäuden Monitore an den Wänden speziell, um das OpenHab Interface anzuzeigen.
Das Haupt-Gebäude hat auch eine interessante Türsteuerung: Vereinsmitglieder können die Tür per App öffnen und von innen gibt es eine Ampel-ähnliche Steuerung.
Anhand des Status der Tür hängen auch andere Heimautomatisierungen ab, so laufen die Lampen im Hauptraum abends auch, nur wenn die Tür offen ist oder die Heizungen schalten sich ab wen niemand anwesend ist.
Programmierer sind bekannt dafür viel Kaffee zu trinken und unter Studenten ist auch Mate sehr beliebt, aber eigentlich ist beides nicht mein Geschmack. Auf der Suche nach einem passenden Ersatz bin ich letztes Jahr bei einem Getränk gelandet, welches ich vorher immer leicht belächelt habe: Tee.
Ich kannte Tee oft nur als Früchteaufguss oder viel zu über süßten Eistee, Schwarztee war für mich meistens viel zu stark und bitter im Geschmack. Das änderte sich nach dem ich über den Teepodcast gestolpert bin, anschließend gab ich dem Tee noch mal eine Chance und probierte einige verschiedene Beutel-Tees aus dem Supermarkt durch. Ich bemerkte das es eine große Variation von Schwarztees gibt und blieb anschließend an der Assam Mischung Nero von Teekanne für lange Zeit hängen. An Tagen wo ich “leichteren” Tee haben wollte kam ich dann auf den Weißen Tee Mango-Zitrone, letztendlich trank ich jeden Tag mindestens eine Tasse Tee und hatte für jede Tageslaune den passenden Tee.
Inzwischen war ich komplett im Tee-Kosmos abgetaucht, als Bonus gab es gebundenes Koffein, welches sich langsamer bemerkbar macht, als ungebundenes Koffein in Kaffee und damit mir bekömmlicher ist. Nachdem ich bereits dem Beutel-Tee verfallen bin, ging ich auch mal in das lokale Teehaus in der nächsten Stadt und fand eine noch größere Variation von Tee in loser Form vor. Nach dem ersten Besuch kam ich noch weitere male immer wieder vorbei um mich auch mit Zubehör wie Teedosen, Kannen oder Kandis zum süßen einzudecken.
Nun auch dem losen Tee verfallen, fand ich auch meine Liebe zu Grünen Tee, vor allem die Mischung aus Mango und Bergamotte im Grünen Tee tat es mir sehr an. An der Schwarztee Front fand ich für mich die Mischung aus Darjeeling und Assam Tee genau passend.
Ab diesem Zeitpunkt war Tee schon lange nicht nur ein Getränk für mich, sondern auch ein Genussmittel. Der regelmäßige Besuch beim lokalen Teehaus, welches ihre Tees noch selber verfeinern, wurde zum Ritual. Ist der Tee mal nicht süß genug, gibt es eine große Auswahl an Alternativen zu normalen Zucker.
Die einzigen Tees, welche ich bis heute nicht verstehe, sind die Gewürztees von Yogi-Tee. Meiner großen Verwunderung findet man diese Tees jedoch nicht nur in jedem Supermarkt, sondern auch im oben beschriebenen Teehaus sehr prominent platziert.
Einen Nachteil gibt es dann jedoch zu erwähnen: Inzwischen habe ich so viele Teedosen und Tee-Beutel Packungen angesammelt das ich jetzt dabei bin ein neues Regal in der Küche aufzubauen, alleine nur für all den ganzen Tee.
In 2017 habe ich diesem Blog ein dunkleres Design verpasst, siehe Neues Kleid. Damals dachte ich noch das es eine gute Idee wäre einen “Stardust” Hintergrund einzubauen damit es ein coolen Weltraum-theme bekommt. Ganz funktioniert hat das so nicht, dafür habe ich heute diesen ausgetauscht mit ein paar schrägen dunklen Strichen.
Vorher:
Nachher:
Zusätzlich hab ich die Navigations-Links im Header angepasst und Icons gegeben. Außerdem bekam die Seite für die git commit Historie ein dunkles Design:
Wie in meinem anderen Beitrag, zum Umstieg auf Android, bereits angedeutet wollte ich gerne zu Linux wechseln und konnte es niemals machen da ich immer an iTunes an Windows oder macOS gebunden war. Angefangen mit freeBSD Servern, übergehend zu Debian und Ubuntu Servern für Minecraft Servern habe ich bereits seit fast 10 Jahren in irgendeiner Form mit Unix zu tun gehabt. Arbeitstechnisch wurde ich, dann zu einem der wenigen in einer ehemaligen Firma, die sich überhaupt mit Linux auskannte und musste mich fortan um das Meiste bezüglich Debian und Ubuntu Servern kümmern. Nach Wechsel der Firma verlief die Leidenschaft zu Linux ein wenig im Sande über die Jahre wieder ein wenig. Trotzdem pflegte ich fast durchgehend einen persönlichen Ubuntu Server für Webserver und andere Spiele Reihen und musste meinen Microsoft Windows Workflow ein wenig anpassen dafür. Irgendwann hab ich gemerkt wie sehr ich Microsoft Windows umstellen musste damit ich überhaupt arbeiten konnte. Außerdem war ich unzufrieden mit der Update-Politik von Windows 10 und habe auch nie verstanden was die Leute so an Windows 7 feiern, Windows Aero war alles andere als Perfekt.
Zwischenzeitlich hatte ich auch mal zum Versuch Arch Linux auf einem Macbook installiert und es gefiel mir schon, jedoch fand ich es zu der Zeit noch nach zu viel Arbeit. Nachdem Arch Linux immer beliebter wurde und ich nach Ersatz für Windows gesucht hatte, wollte ich es noch mal versuchen mit Arch Linux. In einer virtuellen Maschine hatte ich also verschiedene Konfigurationen ausprobiert und die Installation noch mal durchgegangen bis ich anschließend komplett zum Fan wurde.
Die passende Linux Distribution
Der Trick von Arch Linux ist nämlich, das Arch Linux ohne grafischen Installer ausgeliefert wird und im Gegensatz zu fast allen anderen Linux Distributionen wie zum Beispiel Debian, Ubuntu oder Fedora keine fixen Releases hat, sondern als sogennantes “Rolling Release” fungiert und Updates von Upstream nur mit wenigen Tagen Abstand in die Main Repositories kommen. Das sorgt dazu das eine Arch Linux Installation immer sehr aktuell bleibt und man keine Monate oder Jahre warten muss auf neuere Versionen außerhalb von Sicherheitspatches. Viele Linux Nutzer sagen deswegen das Arch Linux nicht “stabil” ist und Programm Pakete mindestens mehrere Monate verfügbar sein müssen bevor sie erst als stabil und sicher gelten. Ich hatte jedoch in der Vergangenheit eher das Gegenteil erfahren, wenn ich versuchte einige neuere Pakete in z. B. Ubuntu einzupflegen und dadurch sogar die Upgrade-Installation oft schieflief. Letztlich ist das eigene System nur so stabil wie man es auch stabil macht, der Unterbau kann dabei helfen, aber es ist kein Alleinstellungsmerkmal für ein stabiles System.
Ein weiteres Problem von Linux Distributionen löst Arch Linux sehr gekonnt durch das AUR (Arch User Repository). Linux Distributionen kommen mit einem Paket Manager, welcher auf ein großes Archiv von Paketen Zugriff hat, welche man zusätzlich installieren kann anstatt wie bei Windows ausführbare *.exe Dateien aus dem Internet, aus teilweise dubiosen Quellen, laden muss. Das Problem taucht auf wen ein bestimmtes Programm, das man braucht nicht in den Paketquellen vorhanden ist, dann muss man ähnlich zu Windows entweder *.deb (Debian/Ubuntu) oder *.rpm (Fedora) Archive laden oder auf Snaps/Flatpack/AppImages setzen. Jedoch unterstützen nur Snap Pakete unter Ubuntu Updates und alle anderen müsste man fast immer manuell updaten. Sogenannte AUR Helper wie z.B. yay oder trizen binden sich nun nahtlos in den offiziellen Paket Manager ein und erlauben den Zugriff auf das AUR welches aus Binary Pakete (wie die offiziellen Paketquellen) besteht sowie Build/Compile Instructions um Pakete aus Git Repositories zu bauen. Das einzige Problem ist, dass das AUR durch die Community verwaltet wird und theoretisch Missbrauch erlaubt, weswegen jedem immer empfohlen wird vorher die Build Instructions anzuschauen bevor man blind etwas installiert.
Ein weiterer Pluspunkt für Arch Linux ist ihr Wiki, das Arch Wiki ist wahrscheinlich im Moment das größte Linux Wiki und geht um einiges mehr ins Detail als z. B. das Ubuntu Wiki, welches teilweise nur eine hübschere Man Page ist. Weil man die Installation auch anhand einer Anleitung im Wiki abschließen muss (sofern man sie nicht schon auswendig kann), lernt man dabei auch ein wenig über die Komponenten im Hintergrund und wie sie ineinander laufen. Natürlich ist es immer noch stark vereinfacht, es ist bei weitem kein LFS (Linux from Sratch) bei dem man noch weiter in jede Komponente gehen muss und sich aktiv mit Kleinigkeiten kümmern muss. In dem Sinne trifft Arch Linux für mich den perfekten Punkt zwischen der Einfachheit eines grafischen Installers oder schlicht überhaupt keinen wie bei LFS. Dadurch konnte ich auch mein System ein wenig genauer anpassen, anstatt meine Installation auf dem altbekannten ext4 Dateisystem aufzubauen, entschied ich mich für btrfs und eine Verschlüsselung mit LUKS und kann dadurch auf Features wie De-duplication oder Subvolume Snapshots zugreifen, welche bei ext4 nicht auf einer solchen low-level Ebene vorhanden sind.
In Kombination mit den neueren Paketen und “normalen” Standardkonfigurationen, anders als z. B. bei Manjaro, hab ich mich letztlich für Arch Linux entschieden. Fehlt nur noch eine passende Desktopoberfläche (DE / Desktop Environment) weil ich mich noch nicht mit einem barebones Terminal bzw. nur einem Window Manager anfreunden kann.
Die passende Desktopoberfläche
Unter Arch Linux kann man so ziemlich jede absurde Kombination installieren, ich habe mich aber erst mal mit den großen Drei auseinandergesetzt, XFCE, Gnome und KDE. XFCE findet seine Nische als leichtgewichtige Oberfläche, welche jedoch auf GTK aufbaut. Gnome war für mich eine absolute Katastrophe, nicht nur das es viel zu viele Ressourcen für zu wenig Nutzen verbraucht, sondern die Entwickler aktiv Features mit neueren Versionen entfernen. In meiner Anfangszeit hatte ich noch Spaß an Gnome 2 gehabt, mit Gnome 3 haben die Entwickler jedoch in meinen Augen nichts Ordentliches hervorgebracht. Blieb noch KDE Plasma übrig, welches Qt statt GTK nutzt und mit einem großen Umfang an Zusatzsoftware passend für KDE entwickelt.
KDE hat mich wirklich überrascht mit seinem großen Umfang an Optionen und der Möglichkeit über kvantum das Design noch genauer anpassen zu können. Zusätzlich bin ich um einiges mehr zufrieden mit dem File Manager Dolphin als mit der GTK Katastrophe Nautilus. Ein weiteres cooles Feature von KDE ist auch KDE Connect, welches für eine ähnliche Erfahrung wie macOS <> iOS jedoch für Linux <> Android sorgt und Benachrichtigungen oder Dateien austauscht oder die Wiedergabe am Linux Computer automatisch stoppt bei einem Anruf.
Anschließend entschied ich mich letztlich für KDE Plasma anstatt dem überaus beliebten Gnome 3 oder Alternativen.
Spiele
Ein weiteres Problem beim Umstieg waren für mich Spiele, der Großteil meiner Steam Bibliothek ist schließlich Windows exklusiv. Hier preschte Valve letztes Jahr mit Proton für ihre Vertriebsplattform Steam hervor. Proton ist eine Kombination aus Wine, Winetricks, DXVK und anderen Kleinigkeiten um Windows exklusive Spiele unter Linux spielbar zu machen. Eine Auflistung von Nutzer-Berichten zu Proton findet man unter Protondb. Dadurch kommt meine Linux Bibliothek plötzlich auf knapp 70% meiner Windows Bibliothek auf Steam und in Kombination mit meiner Playstation 4, kann ich trotzdem fast jedes Spiel, das ich auch spielen möchte, auch ohne Windows spielen. Zugegeben, ich bin kein großer Fan von großen Multiplayer Spielen wie Apex Legends (welche oft Anti-Cheat Maßnahmen nutzen, welche inkompatibel zu Proton sind) oder AAA Spiele (welche oft Denuvo Kopierschutz nutzen, auch größtenteils inkompatibel zu Proton) wie das neueste Assassin’s Creed. Wodurch die meisten Spiele, welche Probleme machen, schlicht wegfallen.
Nach etwa 4 Monaten mit Arch Linux und KDE Plasma bin ich mehr als zufrieden mit dem Wechsel und trauere Windows nicht mehr hinterher. Für einige Kleinigkeiten muss ich immer noch Windows hochfahren, das hält sich aber wirklich in Grenzen von ein mal pro alle paar Wochen.
Seit etwa 4 Monaten habe ich mein Apple iPhone 5s eingetauscht. Grund dafür war nicht das ich Apple nicht mehr mag oder unzufrieden war, mehr war es das ich endlich zu Linux wechseln wollte. Mein größtes Problem war nämlich immer, das es iTunes nicht für Linux gibt und man es auch nicht wirklich nützlich portieren konnte. Ohne iTunes verliert ein iPhone jedoch seinen Reiz, schließlich kann man sonst die Stock-Apps wie Musik oder Fotos adäquat nicht mehr nutzen.
Damals als ich zuerst ein iPhone 4 und danach ein iPhone 5s gekauft habe, war das Apple iPhone noch das absolute Spitzenmodell und war in Sachen Kamera Qualität immer allen weit voraus da sich Apple lieber darum gekümmert hat einen ordentlichen Bildsensor und große Blende zu verbauen als sich an Megapixeln aufzugeilen. iOS hatte auch bereits weit vor Android bereits ein Rechtesystem um Apps nicht gesamten Systemzugriff zu überlassen, derweilen erkämpfte sich Android gerade erst Marktanteile von Symbian.
Dabei hatte ich wirklich Freude gehabt mit meinem iPhone 5s, obwohl es schon über 5 Jahre alt war, bekam es immer noch (!!!) Updates für das aktuellste Betriebssystem iOS und mit iOS 12 gab es sogar Optimierungen, um das System noch schneller selbst auf meinem alten iPhone zu machen. Deswegen kann ich auch nie verstehen, wenn jemand meint das Apple absichtlich ihre alten Geräte unbrauchbar macht, das ist schlicht nicht wahr. Richtig viel Spaß hatte ich auch mit Jailbreaks, mit denen man super cool am System herumspielen konnte.
Weitere Screenshots aus einem alten Jailbreak Setup gibt es hier zu finden: https://imgur.com/a/dtvKk
Jedoch hat sich das inzwischen auch erledigt, Jailbreaks für iOS wurden immer rarer und inzwischen ist Jailbreak-Ikone Saurik zurückgetreten. Saurik hatte unter anderem den Jailbreak App Store Cydia sowie viele nützliche Tweaks wie Winterboard oder SBSettings über die Jahre entwickelt und immer für alle Versionen gepflegt. In Kombination mit dem Wunsch auf eine Linux Distribution zu wechseln habe ich mich also mal im Android Lager umgeschaut was es für Alternativen gibt.
Ein wichtiger Punkt für mich war, dass das Gerät mindestens 3 Jahre Support erhalten sollte, damit fielen schlagartig ein gigantischer Teil Geräte weg. Angesichts dem 5+ Jahres Support von Apple ist das absolut erbärmlich. Weiterer Punkt wäre eine ordentliche Kamera und ein OLED Display, Annehmlichkeiten wie eine Klinkenbuchse waren mir dagegen ziemlich egal.
Letztlich bin ich dann am Google Pixel 3 hängen geblieben, von allen Android Geräten gehören die Pixel Geräte zu den ganz wenigen die instant mit Android Updates monatlich versorgt werden für mindestens 3 Jahre, die exquisite Kamera rundet das Paket noch ab. Oft hab ich in der Vorab-Recherche davon gelesen wie toll auch ein Stock-Android gegenüber den oft genutzten Hersteller Oberflächen und “Bloatware” die mit installiert wird. Kurz überlegte ich auch für ein Huawei Mate 20 Pro, dies war jedoch schlicht zu groß für mich und die Update-Politik von Huawei gefiel mir auch nicht. Am Ende blieb ich also beim Pixel 3 (Nicht-XL) was von der Größe her gerade so mir passte.
Kaum ausgepackt musste ich erst mal alle meine Medien rüberportieren. Zu dem Zeitpunkt wünschte ich mir das ich einfach, wie bei Apple einfach ein Backup eines älteren Gerätes einspielen konnte und alles wäre gegessen, aber das klappt nicht mal richtig unter demselben Hersteller und zwei Android Geräten. Nach langem hin und her hab ich Musik Playlisten umgewandelt und mit meiner Bilder-Sammlung über SFTP aufs Gerät übertragen. Gleich darauf fiel mir auf das mein Stock Android gar nicht so “Stock” ist wie immer behauptet wird. Google Dienste sind krass stark eingebunden, nicht mal den “Squeeze” (bei dem man das Gerät zusammendrücken kann, um den Google Assistent zu öffnen) konnte ich auf eine andere App legen. Genauso unnütz ist die Stock-Zeit App. Weiterer Unsinn wie Unlimited Speicher für Google Fotos oder die absurd schreckliche Google Music App konnte mir auch erspart bleiben. Blieb mir ein Android 9 Gerät ohne anständige Musik App und direkten Draht zu Google. Weiterhin gibt Google den Pixel Geräten exklusive Features, die sonst kein anderes Gerät bekommt, z. B. die Shazam-esque Musik Erkennung im Lockscreen:
Vielleicht war es eine dumme Idee ein Google Handy zu kaufen, wenn ich sowieso Abstand von Google nehmen wollte, letztlich habe ich mein Pixel 3 soweit angepasst das Google so wenig wie möglich mitbekommt. Ein extrem guter Helfer dafür war unter anderem der F-Droid Store, welcher eine direkte Alternative zum Google Play Store ist und oft einfach qualitativ bessere Apps bietet. Die Entwickler vom F-Droid Store haben es sich zur Aufgabe gemacht Open-Source Apps, ohne Googles mitwissen zu verbreiten, dafür werden alle Apps im offiziellen Repository von F-Droid Entwicklern kompiliert und signiert, Werbung oder Tracker sind dabei explizit nicht erlaubt. Allgemein hat es mich erschreckt, wie viele Android Apps schlicht komplett voll von irgendwelchen Trackern sind, die teilweise in Frameworks standardmäßig implementiert sind.
Ein weiterer Unterschied zu iOS war das einige Apps wie z. B. VLC oder Parceltrack einfach schlechter waren und denen Features gefehlt haben. Andersherum gab es jedoch auch einige Apps die unter Android mehr Umfang haben. Meine Lieblings Reddit App Apollo musste ich auch ersetzen, im Moment hab ich mit Boost für Reddit einen einigermaßen guten Ersatz gefunden. Nach 4 Monaten bleibt immer noch ein bitterer Nachgeschmack von Android, immerhin bin ich mit meinem Pixel 3 ein wenig mehr zufrieden und freue mich auf weitere 3 Jahre bis ich wohl wieder nach Ersatz Ausschau halten werden.
Am 4. Juni 2018 gaben GitHub und Microsoft bekannt das Microsoft GitHub aufgekauft haben für 7,5 Mio. $. Während man sich bei GitHub freut, wandern mehrere tausende Nutzer auf andere Git Plattformen wie GitLab oder hosten sogar ihre Git Web-Oberfläche selber mit Gitea, Gogs oder eben GitLab selber.
Vielen GitHub Nutzern stößt die Ankündigung sauer auf, vor allem auch auf Reddit:
Die Realität sieht jedoch anders aus, vor einigen Jahren hat Microsoft angefangen sich mehr mit Open-Source auseinander zu setzen und ihre GitHub Repositories gehören zu den beliebtesten:
Vor allem auch Visual Studio Code gilt inzwischen als beliebterer Editor als Atom.io (welcher von GitHub gepusht wurde) und Visual Studio (ohne “Code”) gehört auch immer noch zu den ganz Großen.
Trotzdem bleibt ein fader Beigeschmack, Microsoft nutzt beispielweise bis heute ein proprietäres Format für ihre Office Dokumente.
Aber immerhin hat die Debate über GitHub nun etwas gutes: Man schaut sich jetzt endlich nach Alternativen um, hosten eventuell seine Git Repositories auf mehreren Servern statt das Monopol nur GitHub zu überlassen. Zu diesem Zweck habe ich interessante Vor- und Nachteile der beliebtesten Git Web-Oberflächen zusammengetragen:
GitHub
+ Am beliebtesten
+ Der Status Quo
+ Kanban Projekt Board
+ Static Webhosting via GitHub Pages
+ Snippets
+ Signierte Commits via GPG key
+ Merge Approval System
- Nicht Open-Source
- Keine privaten Repos ohne zu bezahlen
- Ändern regelmäßig ihr Interface
- Kein einfacher Import aus anderen Git Oberflächen
- Keine Möglichkeit der Authentifizierung bei Import über Git oder SVN Server
GitLab
+ Gratis private Repositories
+ Open-Source in der Community Edition
+ Selbst hosten ohne Probleme möglich
+ Gratis Paid membership für Schulen und big Open-Source Maintener
+ CI (Continuous integration) Tests
+ Kanban Projekt Board
+ Static Webhosting via GitLab Pages
+ Einfacher Import aus anderen Git Oberflächen wie GitHub, BitBucket, Google Code und self hosted Gitea oder GitLab
+ Snippets
+ Signierte Commits via GPG key
+ Code Quality Checks
+ Merge Approval System
- Teilweise etwas träge
- Releases maximal 2 MB pro Datei
- Benötigt viele Ressourcen in der Self hosted Variante
Bitbucket
+ Gratis private Repositories
+ CI Tests
+ JIRA Support
+ Kanban Board via Trello Integration
+ Snippets
+ Einfacher import aus GitHub, SourceForge und CodePlex
+ Starke Integration von weiteren Atlassian Diensten
- Kein Support von signierten Commits via GPG key
- Starke Abhängikeit von weiteren Atlassian Diensten
- Self hosted nur via Bezahlung
- Nicht Open-Source
Gogs / Gitea
+ Gratis private Repositories
+ Verbrauchen kaum Ressourcen
+ Einfache Möglichkeit für (self-updating) Mirror
+ Signierte Commits via GPG key
- Keine native CI Tests
Gogs und Gitea nehmen sich wirklich nicht viel, außer das Gogs eher an das Interface von GitHub angelehnt ist. Gitea hat sich von Gogs abgespalten da Gogs nur einen Haupt-Maintener hat welcher restriktiv vorgegangen ist, die beiden Projekten übernehmen häufiger neue Features.
Alle fünf bieten diese Basis Features:
+ Mächtige API
+ Issue Tracker
+ Wiki
+ Pull Requests
+ Releases
+ 2FA
+ Docker Support (für die self hosted Varianten)
+ Webhooks
+ Teams bzw. Organisationen
+ Git LFS
Ein kleiner Lesenswerter Artikel eines Kollegen findet sich unter: Stored Procedure: List of Python GUI frameworks and tools.
Python ist eine beliebte und mächtige Programmiersprache, leider ging mir der Support von GUI Anwendung aber immer zu flach. Zum Glück hat sich inzwischen ein wenig geändert und neue Projekte wie beispielweise Kivy kamen ans Licht.
Ein kleines Sonntags-Projekt mit den Teilen die ich noch übrig hatte. Natürlich hätte ich auch einfach alle Komponenten direkt an den Arduino anschließen können, jedoch wäre das Ganze dann nicht so schön aufgeräumt. Benutzt habe ich diese Teile für mein Vorhaben:
Schematic:
Die Idee ist simpel, über den DHT22 Sensor wird Temperatur und Luftfeuchtigkeit ausgelesen und anschließend in einem Scroll Text auf dem Matrix Display angezeigt. Mein Matrix LED Display hat einen eingebauten MAX7219, sodass man weniger Pins zum ansteuern benötigt. Insgesamt werden nur 4 digitale Pins (3 x MAX7219, 1 x DHT22) vom Arduino genutzt. Zusätzlich hängt am Data-Pin vom DHT22 Sensor noch ein 10kΩ Widerstand, der MAX7219 Chip hat dagegen schon alle benötigten Widerstände eingebaut.
Video:
Zur Ansteuerung vom DHT22 Sensor nutze ich die DHT Sensor Library von Adafruit, für das MAX7219 LED Matrix Display nutze ich die MaxMatrix Library. Der Großteil vom Code für die Display-Steuerung habe ich mir von diesem Kollegen ab geschaut: https://brainy-bits.com/blogs/tutorials/scroll-text-using-the-max7219-led-dot-matrix
Anschließend noch der C-Code für den Arduino:
#include <MaxMatrix.h>
#include <avr/pgmspace.h>
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN 9
#define DHTTYPE DHT22 //DHT11, DHT21, DHT22
DHT dht(DHTPIN, DHTTYPE);
PROGMEM const unsigned char CH[] = {
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space
1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !
3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // "
5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #
4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $
5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %
5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &
1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // '
3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // (
3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )
5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *
5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +
2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,
4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // -
2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .
4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0
3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1
4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2
4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3
4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4
4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5
4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6
4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7
4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8
4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9
2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // :
2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;
3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // <
3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // =
3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >
4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?
5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @
4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A
4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B
4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C
4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D
4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E
4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F
4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G
4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H
3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I
4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J
4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K
4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L
5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M
5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O
4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P
4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q
4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R
4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S
5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T
4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U
5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V
5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W
5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X
5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y
4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z
2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [
4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash
2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ]
3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat
4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _
2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `
4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a
4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b
4, 8, B00111000, B01000100, B01000100, B00101000, B00000000, // c
4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d
4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e
3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f
4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g
4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h
3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i
4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j
4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k
3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l
5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m
4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n
4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o
4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p
4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q
4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r
4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s
3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t
4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u
5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v
5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w
5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x
4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y
3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z
3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {
1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |
3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }
4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~
};
int data = 12; // DIN pin of MAX7219 module
int load = 11; // CS pin of MAX7219 module
int clock = 10; // CLK pin of MAX7219 module
int maxInUse = 1; //how many MAX7219 are connected
MaxMatrix m(data, load, clock, maxInUse); // define Library
byte buffer[10];
void setup(){
dht.begin();
m.init(); // module MAX7219
m.setIntensity(2); // LED Intensity 0-15
}
void loop(){
float h = dht.readHumidity();
float t = dht.readTemperature();
byte c;
String stringSensor = " ";
stringSensor += t;
stringSensor += "C ";
stringSensor += h;
stringSensor += "% ";
char charSensor[50];
stringSensor.toCharArray(charSensor, 50);
printStringWithShift(charSensor, 100); // Send scrolling Text
delay(100);
}
// Put extracted character on Display
void printCharWithShift(char c, int shift_speed){
if (c < 32) return;
c -= 32;
memcpy_P(buffer, CH + 7*c, 7);
m.writeSprite(maxInUse*8, 0, buffer);
m.setColumn(maxInUse*8 + buffer[0], 0);
for (int i = 0; i < buffer[0]+1; i++)
{
delay(shift_speed);
m.shiftLeft(false, false);
}
}
// Extract characters from Scrolling text
void printStringWithShift(char* s, int shift_speed){
while (*s != 0){
printCharWithShift(*s, shift_speed);
s++;
}
}
Mit dem neuen Jahr bekommt mein Blog auch ein neues Aussehen, weiße Webseiten die einem die Augen weg brennen sind so was von 2016. Mit Hilfe von Semantic-UI konnte ich innerhalb 1 ½ Stunden das Weiße Theme in ein Dunkles verwandeln. Nun kann man meinen Blog auch Nachts besuchen 😀.
Vorher:
Nachher:
Angedacht war noch ein Light/Dark Mode Switch um zwischen beiden umzuschalten, vielleicht kommt das ja noch irgendwann in 2017.
Das alte Jahr ist vorüber, gleich zu Beginn von 2017 geht mein Blog wieder online mit einem neuen Post und in einer neuen Kategorie, nämlich den “Spiele Reviews”.
Hyper Light Drifter gehört zu einem der Spiele die ich mir in diesem Steam Winter Sale gekauft habe. Die Entwickler begannen bereits 2013 mit einem Kickstarter Projekt und konnten überragenden Erfolg für sich beanspruchen. Anfang 2016 kam es dann endlich für den PC raus, Mac, Linux, PS4 und XBOX One Ports kamen schnell nach. Weitere Ports für die PS Vita, Wii U und die OUYA waren auch geplant, daraus wird aber wohl nichts mehr.
Das Spiel kann man tatsächlich relativ einfach beschreiben, man nimmt den Artstyle und Soundtrack von FEZ, fügt das Setting von Das Schloss im Himmel ein, dazu kommen die Titanen aus Nausicaä aus dem Tal der Winde, noch ein paar Dungeons aus Zelda, die ordentliche Schwierigkeit aus Dark Souls, abschließend noch ein schnelles Kampfsystem welches stark auf richtiges Timing basiert und man bekommt Hyper Light Drifter. All diese Komponenten gehen nahtlos zusammen machen Hyper Light Drifter zu einem der schönsten 2D Spiele in diesem Jahr.
Dabei wurde für die Entwicklung der YoYo Gamemaker:Studio als Engine sowie deren Script Language (GML) eingesetzt, unter anderem bekannt durch Spiele wie z.B. Undertale, Nuclear Throne, Hotline Miami oder Risk of Rain. Anfangs gab es deswegen auch einen großen Aufschrei, Hyper Light Drifter lief nämlich nur in 30 FPS und konnte nur durch viel Arbeit und einige Hacks auf 60 FPS in der Gamemaker:Studio Engine erweitert werden. Die Musik ist direkt vom selben Künstler wie bereits bei FEZ, Disasterpeace und unterstreicht die Atmosphäre dezent aber dennoch gekonnt.
Bereits nach wenigen Stunden bin ich gut begeistert, auch hatte ich bereits einige Frustmomente da die Schwierigkeit ordentlich knackig ist und die Gegner mir keine Gnade zeigten in den Boss oder Arena Kämpfen. Mit einer steilen Lernkurve und keiner linearen Map, landet man schnell kurz vor einem Boss und wird von etlichen Gegnern umschwärmt bevor man merkt das man vielleicht erst wo anders vorbei schauen sollte. Auch werden ausschließlich nur um die Controls zu erklären Texte eingesetzt, alle Dialoge mit NPCs laufen über Bilder-Galerien ab und erzählen so ihre eigene Geschichte auf eine ganz neue Art und Weise.
Abschließend ist nur noch zu sagen das ein Gamepad definitiv empfohlen wird und man alle Bosse bereits nach knapp 10 Stunden besiegt haben sollte. Hyper Light Drifter lockt aber auch mit vielen Geheimnissen und Extras mit denen man auf gute 30 Stunden Spielzeit kommen kann.
Eine aufregende Woche ist vergangen, zwischen dem 3. und 9. Juli 2016 liefen mal wieder Speedruns ohne Ende für Summer Games Done Quick (#SGDQ2016).
Bei einem Speedrun versucht man ein Spiel so schnell wie möglich von Anfang bis zum Ende durch zu spielen. Dabei gibt es verschiedene Kategorien, die beliebteste Kategorie dafür ist Any% bei der alles erlaubt ist (Mit Ausnahme von Cheats/Hacks) um das Spiel zu schaffen. Bei Games Done Quick stellen ausgewählte Speedrunner aus aller Wert Spiele vor und wie schnell man diese schaffen kann, dabei wird auch oft kommentiert warum man jetzt Weg X gegangen ist oder wie Bug Y jetzt funktioniert um ans Ziel zu kommen.
Dabei wird bei keinem Spiel halt gemacht, z.B. auch nicht vom 1999 für die Playstation 1 erschienenen: Pepsiman
Dabei wird Games Done Quick auf einem Messe Gelände in den Vereinigten Staaten ausgetragen bei dem man auch beiwohnen kann. Games Done Quick wird zwei mal im Jahr ausgetragen, einmal im Winter als “Awesome Games Done Quick” und einmal im Sommer als “Summer Games Done Quick”. Das Ganze ist dabei für einen guten Zweck gedacht, alle Spenden die während dem Event gesammelt werden, werden komplett an wohltätigen Organisationen wie Prevent Cancer Foundation oder Doctors Without Borders. So konnte Summer Games Quick 2016 beachtliche 1.299.119,44 $ sammeln welche dieses Jahr an Doctors Without Borders gehen.
Alle Speedruns kann man dabei entweder live über Twitch.tv anschauen oder einige Tage später auf ihrem Youtube Kanal finden.
Das Speedrunner bei nichts halt machen, wird dann auch oft bei einer sogennanten “Glitch Exhibition” gezeigt. In einer Glitch Exhibition werden verschiedene Bugs im Spiel gezeigt und wie diese hilfreich eingesetzt werden können, das ganze etwas langsamer und gut kommentiert. Wie zum Beispiel dieses Jahr bei “The Legend of Zelda: Ocarina of Time”:
Eine gesamte Auflistung aller Speedruns für Summer Games Done Quick 2016 gibt es hier (173 Parts).
Inzwischen ist es fast ein Monat her nach dem ich mir den Entschluss gefasst habe bei meinem ersten Game Jam teilzunehmen. Genauer gesagt um den ersten #rbcgj, vor allem weil die Game Jam Seite eine “Newbie Zone” bereitstellt um auch totalen Anfängern zu helfen.
Also habe ich 1 Woche bevor es los geht schon mal angefangen mir Gedanken zu machen. Pygame, wimi5 oder Unity? Vielleicht auch was anderes? Da ist mir eingefallen das ich mir damals bei einem Humble Bundle billig den Gamemaker: Studio geschossen habe und mal diesen ausprobieren könnte. Noch versucht ein bisschen coolen Sound zu erstellen in Famitracker und bfxr und so entstand mein erstes Test Spiel in Gamemaker: Studio. Zu finden auf Gamejolt und GitHub.
Jedoch habe ich dafür fast eine Woche gebraucht und mich auch größtenteils an Tutorials orientiert, doch der Weg war geebnet.
Ein Game Jam in 48 Stunden war dann schon was anderes, nicht nur das ein Thema vorgegeben wird, auch die Tatsache das ich erst mal alleine was auf die Beine stellen wollte. Vor allem habe ich mir meine Ziele zu hoch gestreckt, alleine das finden von ein paar coolen Sprites und die Anpassung an meine Engine dauerte mehrere Stunden in Photoshop und musste erst mal mit common pitfalls mich auseinandersetzen. Letztlich hab ich auch noch meinen ersten richtigen Sprite erstellt und eine absolute einfache Idle Animation daraus gebastelt.
Ich war schon nach kurzer Zeit überrascht wie viel eigentlich hinter dem Gamemaker: Studio steckt und wie mächtig man die Scripting Language auslegen kann. Es ist per se nicht das beste für einen Anfänger und ich hatte große Probleme beim Umstieg von einer IDE rein für das programmieren zum Komplett Paket Gamemaker: Studio. Letztlich war es jedoch nicht so schlimm nach dem man erst mal den Ansatz verstanden hat.
Am Ende des Game Jams musste ich jedoch feststellen das ich nicht nur viel zu müde war um noch produktiv zu arbeiten, noch das ich viel erreicht habe. Gerade mal 2 NPCs, bei denen ich effektiv fast den den selben Sprite verwendet habe, und die selbe simple Quest haben. Auch habe ich gerade noch so das Menü ordentliche hinbekommen, von dem jedoch die meisten Punkte gar nicht laufen. Auch die Kampf Animation sowie Gegner habe ich nicht mehr hinbekommen ohne das es ein komplettes Bugfest werden würde.
Letztlich war es eine gute Erfahrung um mein Ziel nächstes mal kleiner zu stecken, auch mal selber Sprites zu erstellen und nicht alles alleine zu machen.
Das Spiel findet sich übrigens auf Gamejolt und GitHub.
Ein Fazit zum gesamten Game Jam (Ganze 48 Spiele wurden eingereicht!) gibt es übrigens auch beim Kanal von RocketbeansTV:
Heute hab ich mal ein unglaublich unnützes Feature in den Blog eingebaut, ich fand die Idee jedoch einfach lustig und irgendwas brauchte ich als Trenner zwischen eigentlichen Blog Artikel und der Box für verwandte Artikel.
Es ist nämlich eine Feedline der Commits für den Artikel den man gerade liest, sieht in etwa so aus:
Also eigentlich eine Auflistung wann der Artikel bearbeitet wurde.
Die Umsetzung von dieser ist derzeit noch relativ hässlich und ich werde mir vielleicht noch was besseres einfallen lassen. Wie ich das umgesetzt hat findet man im Commit e0bcaaaa auf GitHub.
Ergänzung: Nur um es in diesen Eintrag zu zeigen, habe ich einfach noch Text in einem zweiten Commit hinzugefügt.
Dieser Blog Eintrag entstehet nachdem ich einige Diskussionen die letzten Tage über Windows Upgrades in Foren und Reddit gelesen haben. Inzwischen jährt sich das Support Ende von Windows XP einem Jahr. Jedoch gibt es bis heute immer noch aktive Windows XP Nutzer, sowie Nutzer die Windows Updates ablehnen weil das ihren PC ja “vollmüllen” würde.
Statistiken über den Gebrauch von Windows XP findet man z.B. bei Steam, welche regelmäßig Hardware Umfragen rausgeben. Nach deren Statistik nutzen knapp 2% aller Steam Nutzer noch Windows XP und wird damit öfter eingesetzt als andere Windows 32 Bit Versionen wie auch Windows Vista. Leider ist nicht ersichtlich wie viele Steam User an der Umfrage teilgenohmen haben, jedoch hat Steam in etwa 10. Mio gleichzeitige Nutzer. Das wären somit grob geschätzt knapp 200.000 gleichzeitige Windows XP Nutzer. Außerhalb von Steam scheinen die Nutzer Zahlen von Windows XP aber immer noch im zweistelligen Bereich zu schwanken.
Jedoch warum sollte ich wechseln wenn mein Computer super läuft!
Weil man jederzeit sich Malware einfangen kann, es gibt auch solche welche sich heimlich einnistet und entweder erst nach langer Zeit aktiv wird oder im Hintergrund arbeitet und Teil eines DDoS oder Bitcoin Mining Netzwerkes ist. Vor allem nutzt Windows XP immer noch Internet Explorer 8, dessen letztes Update war 2011 und damit 5 Jahre alt. Aber auch Nutzer von Windows Vista bleiben nicht verschont, dieses nutzt Internet Explorer 9, welches sein letztes Updates im letzten Jahr bekommen hat.
Jedoch nutze ich einen anderen Browser und nicht Internet Explorer!
Das mag zwar sein, jedoch benutzen viele Windows Programme den Internet Explorer bzw. dessen Windows API um Webseiten einfach darzustellen, Dateien herunterladen und und und. Deswegen ist es auch nahezu unmöglich den Internet Explorer zu deinstallieren ohne die Funktionalität vieler Programme einzuschränken oder sie zum abstürzen zu bringen.
Es werden mit jedem Tag neue Exploits in der Windows Architektur gefunden, neuere Versionen werden auch maximal einmal im Monat mit einem Fix gestopft. Diese werden dann auch öffentlich mal mehr oder weniger ausführlich erklärt und können mit großer Wahrscheinlichkeit auch so oder so ähnlich unter Windows XP funktionieren. Es kommt dabei auch vor das skurille Exploits auftauchen welche 18 Jahren unbemerkt bleiben bis sie behoben werden.
Wie schütze ich mich vor einem Angriff?
Ich würde hier einfach spontan die Empfehlung aussprechen auf ein neueres Betriebssystem umzusteigen. Wer die neueren Windows Versionen nicht mag kann auch mal das kostenlose Ubuntu unverbindlich ausprobieren, welches mit jedem Tag mehr Akzeptanz findet. Ubuntu gibt es jedoch auch gebündelt mit anderen GUI Oberflächen wie z.B. KDE welches wohl am nächsten an eine Windows XP Oberfläche kommt, das ganze nennt sich dann Kubuntu. Hat man einen alten und langsamen Computer kann man durch eine leichtgewichtige GUI Umgebung wie auch einige bereits gebündelte Tweaks noch mal ein wenig Performance raus kitzeln, Lubuntu (LXDE Oberfläche) sowie Xubuntu (Xfce Oberfläche) bieten so was an.
Oder könnt ihr euch noch an WinNuke erinnern?
Heute möchte ich ein wenig die wesentlichen Unterschiede zwischen Python 2 und Python 3 aufschlüsseln und warum man als ein Neuling lieber Python 3 nimmt.
Zuerst jedoch wieder eine Anekdote: Ich hatte vor 2 Jahren vor Python zu lernen jedoch stand ich vor dem Problem ob es nützlich ist noch mit Python 2 anzufangen oder einfach direkt nur Python 3 zu lernen, nach stundenlanger Recherche in verschiedenen Internetforen kam ich zum Schluss Python 2, besser gesagt Python 2.7, links liegen zu lassen und am besten zu vergessen. Nach inzwischen 2 Jahren und mehr Erfahrung kann ich nun sagen dass das die bessere Entscheidung geworden ist.
Inzwischen ist Python 3 fast 8 Jahre alt und immer noch erfreut sich Python 2 großer Beliebheit, das ist dem Problem geschuldet das man mit Python 3 versuchte Altlasten aus früheren Python Versionen los zu werden. Dadurch hat man jedoch viele Bibliotheken umgekrempelt, Funktionen und Methoden geändert bis zum Punkt das die meisten Python 2 Scripte und Bibliotheken nicht einfach so portiert werden können. Zwar ist man inzwischen ein wenig zurück gerudert und hat auch ein super Tool, nämlich 2to3, um Python Code zu portieren. Jedoch sitzt bis heute der Schock noch so tief das man entschlossen hat Python 2.7 noch bis 2020 zu unterstützen. Ja, das ist kein Witz, eigentlich wurde bereits letztes Jahr geplannt den Support für Python 2.7 fallen zu lassen.
Wenn Python 2.7 noch weitere 4 Jahre unterstützt wird, warum sollte ich es nicht nutzen?
Wird sich vielleicht der eine oder andere fragen, die Frage zu beantworten ist relativ einfach. Python 2 ist noch weniger performant und hat viele Stellen die einfach in Python 3 runder laufen. Beispiel gefällig?
for n in range(1000000000)
#do something
Könnte zwar so unter Python 2 wie auch 3 laufen, jedoch gibt es hier einen großen Unterschied. Python 2 würde hier zuerst eine Liste mit 1 Mio. Einträgen erstellen was nicht nur länger dauert sondern auch auf Dauer den Speicher vollmüllt. Python 3 hingegen liefert einen Generator zurück welcher die Liste dynamisch zurück gibt und sofort bereit ist ohne den Speicher voll zu müllen.
Zwar hat man sich auch da eine Alternative für Python 2 überlegt mit:
for n in xrange(1000000000)
#do something
Man hat effektiv die range
Funktion aus Python 3 genommen und in xrange
umbenannt. Dennoch verarbeitet der Python 3 Interpreter dies effizienter und sorgt dafür, dass das genannte Beispiel unter Python 3 immer noch schneller läuft.
Das ist nur eines der kleineren Beispiele was verändert wurden und dazu führt das Python 3 effizienter arbeitet. Dazu kommt das neuere Bibliotheken nun fast ausnahmslos alle Python 3 unterstützen oder ‘nur’ noch unterstützen in ihrer aktuellsten Version.
Einige Linux Distros entfernen nun Python auch komplett aus der Standard Installation, andere haben das bereits vor Jahren gemacht. Man bereitet sich überall auf das Support-Ende 2020 vor, Python 2 wird dann hoffentlich keine Aufschiebung mehr bekommen.
Eine ausführliche Liste zum Thema findet ihr übrigens hier: The key differences between Python 2.7.x and Python 3.x with examples
Heute bin ich über ein interessantes Thema gestolpert als ich auf Reddit unterwegs war. Die Idee ist so simpel wie genial, JPG Bilder durch SVG Masken transparent machen ohne auf schlechte PNG Kompression ausweichen zu müssen. PNG Bilder haben zwar eine gute Qualität, jedoch zählt im Web eher ein schnellerer Auftritt als minimal schönere Bilder. Von der Idee bis zum eigenen Test hats nicht lange gedauert, zum Test benutze ich ein Mockup eines iPhone Screenshots welchen ich vorletztes Jahr angefertigt habe.
Damit das funktioniert muss man jedoch zum JPG noch eine Maske für SVG anlegen. Eine einfache schwarz-weiß Interpretation reicht dafür aus, in meinem Fall ist sie nur 20 KB groß.
Anschließend kommt alles in ein SVG HTML Konstrukt.
<svg viewBox="0 0 1000 800" width="100%" height="100%">
<defs>
<mask id="iPhoneMask">
<image width="813" height="1644" xlink:href="https://i.imgur.com/xm3HnrO.jpg"></image>
</mask>
</defs>
<image mask="url(#iPhoneMask)" id="iPhone" width="813" height="1644" xlink:href="https://i.imgur.com/pL5AyGJ.jpg"></image>
</svg>
Und siehe da, ein transparenter Hintergrund. Alle Bilder habe ich noch mal in einem beschrifteten Imgur Album zusammengefast. Anschließend kommt man zum Schluss das JPG Bild (120 KB) + Maske (20 KB), also insgesamt 140 KB eine Erpsarnis von knapp 75% gegenüber dem 544 KB großen PNG Bild bringt. In meinem Fall würde sich es wahrscheinlich weniger lohnen jedoch wenn es um eine größere Anzahl an Bildern oder mit einer höheren Auflösung geht kann man nicht nur eine Menge Traffic einsparen sondern auch wichtige Millisekunden Ladezeit.
Anzumerken sei auch dass das ganze eher mäßig im Internet Explorer funktioniert, unter IE 8 sogar gar nicht.
Nachdem ich jetzt beide Editors länger getestet habe, möchte ich hiermit meine Erfahrungen nieder schreiben.
Sublime Text
Angefangen habe ich vor 2 Jahren nach der Suche nach einen kleinen und leichtgewichtigen Pseudo-“IDE” für meine Python Projekte die nicht nur unter Windows, sondern auch Mac OS X und Linux läuft. Sublime Text war damals das Mittel zur Wahl für diesen Fall, der Editor konnte bereits damals über das inoffizielle Plugin System Package Control mit Plugins versorgt werden für jeden Anwendungsfall auch wenn teilweise Plugins ein wenig kosten (z.B. das SFTP Plugin für 30$). Nach einigen Monaten mit Sublime Text bemerkte ich jedoch das einige Funktionen nicht so funktioniert haben wie gewollt oder Plugins Fehlermeldungen ausgaben. Auf der Suche nach alternativen Plugins schaut man jedoch oft in die Röhre, einigen sind auch nicht Open-Source und/oder dokumentiert sodass selbst Hand anlegen auch erschwert wurde und im besten Fall auch bereits mehrere Jahre alt. Die letzten Releases kurz aufgeschlüsselt:
Das Problem entsteht dadurch das an Sublime Text 1 (!) einziger Entwickler arbeitet während das Projekt Closed-Source ist.
Atom
Mein erster Eindruck von Atom war: “Sieht ja nett aus, aber Sublime Text ist besser!”, erste Tests bestätigten diese Aussage auch. Nach knapp einem Jahr öffentlicher Beta gab man bekannt: Atom Version 1.0 ist raus, der Editor hatte nun alle Funktionen die er haben sollte. Und ich wagte einen weiteren Versuch da ich langsam genervt war von einigen Bugs in Sublime Text und tatsächlich wurde ich dies mal nicht enttäuscht. Atom war nicht nur nun ein vollständiger Editor sondern bot auch genug Möglichkeiten diesen an seinen eigenen Geschmack anzupassen, hunderte Entwickler sprangen auf den Zug auf und entwickelten Open-Source Plugins für Atom und jeden erdenklichen Zweck. Einige Daten von heute (Update: 07. Juni 2016):
Sublime Text:
3.660 Packages (Plugins & Themes)
Quelle
Atom:
5.646 Packages (4.344 Plugins & 1.302 Themes)
Quelle Plugins, Quelle Themes
Damit überholt Atom bereits Sublime Text an Vielfalt in Packages, dies ist wahrscheinlich dem einfachen Aufbau geschuldet der besonders an Web Development angelehnt ist. Jedes namhafte Plugin gibt es auch als Nachbau für Atom, auch z.B. das SFTP Plugin welches 30$ kostet gibt es als Open-Source Variante. Zum heutigen Zeitpunkt (21. März 2016) haben an Atom 285 Entwickler mit gearbeitet (Quelle), davon auch mehrere Vollzeit Entwickler von GitHub und halten damit den Editor schnell Up-to-date, größere Bugs werden im Beta Channel abgefangen bevor sie die große Masse erreichen. Manko an Atom ist jedoch dadurch das der Editor nicht so stark Low-Level programmiert wurde wie Sublime Text (C++ und Python) sondern in HTML, JavaScript, CSS, und Node.js, spürt man oft das der Editor ein wenig träge ist und auch etwas länger zum starten braucht. Mit jedem Update wird dies jedoch verbessert und Atom bekommt regelmäßiger einen neuen Release im Vergleich zu Sublime Text. Man muss jedoch auch sagen das in der schieren Masse an Plugins, auch viele schnell in ein paar Stunden enstanden sind und nicht gerade effizient im Verbund arbeiten.
Zusammenfassung
Zum jetzigen Zeitpunkt rate ich jedem der noch auf der Suche ist, zu Atom, alle Komponenten sind Open-Source sodass man nicht nur bei Bedarf selber den Aufbau sich genauer anschauen kann sondern auch im Fall das z.B. ein Plugin Entwickler keine Lust mehr hat seinen Code übernehmen kann (Was bei Sublime Text Plugins nicht immer gegeben ist). Vor allem da Atom komplett kostenlos ist, während Sublime Text nur kostenlos “getestet” (ohne Zeitbeschränkung) werden kann. Fakt ist jedoch das beide Editors eine gute Grundbasis liefern, man kann sich den restlichen Umfang komplett mit Plugins selber an seine Wünsche gestalten. Zwar hat der Entwickler von Sublime Text Besserung versprochen und bereits sein uraltes Forensystem auf ein modeneres aufgeürstet, jedoch sieht es immer noch sehr mau um seine Aktivität aus.
Andere Editors die anzumerken sind
Einen anderen namhaften Editor habe ich hier bewusst außen vor gelassen, die Rede ist von Adobes Projekt Brackets welcher zwar auch Open-Source ist jedoch besonders auf Frontend Web Developer abzielt vor allem durch die stark beworbene “Code-Vervollständigung aus einer PSD-Datei” Funktion, solltet ihr Frontend Developer sein ist es nicht verkehrt sich diese Editor vorzuziehen da dieser Funktionen inne hat die man so kaum für die anderen findet bzw. nur abgespeckt.
Ein relativer Neueinsteiger ist auch Visual Studio Code, welches genau wie Atom auch Electron für das GUI benutzt und damit auf ähnliche Probleme trifft (Langsamer Start, teilweise träges GUI). Ich habe damals die erste Version getestet und konnte wirklich nicht viel abgewinnen, der Funktionsumfang war gering und Plugins fast nicht existent. Das hat sich nach mehreren Monaten geändert und ich sollte noch mal einen neuen eigenständigen Test durchführen. Interessanterweise läuft Visual Studio Code jedoch gefüllt flüssiger als Atom. Auf jeden Fall auch ein Blick Wert.
Der letzte im Bunde ist Limetext, ein Versuch einen Open-Source Klon von Sublime Text zu erstellen, Limetext hat vor allem den Vorteil das man viele Sublime Text Plugins fast ohne Probleme übernehmen kann. Jedoch bekam der Editor nicht viel Aufmerksamkeit und seit 2 Jahren ist es eher still um den Editor geworden. Es fehlte wohl einfach an einem großen Namen der hinter dem Projekt steht wie im Fall von Atom GitHub, Visual Studio Code Microsoft oder bei Brackets Adobe.
Dark Souls, eines der schwersten Spiele die ich in den letzten Jahren gespielt hatte. Als ich das erste mal “Dark Souls” gespielt habe, dachte ich nur: “Was? Wer spielt so was? Das ergibt alles keinen Sinn!” und schmeißte meinen Controller in die Ecke. Ein Glück das ich es einige Monate später noch mal versuchte. Nach insgesamt 200 Stunden Dark Souls I und Dark Souls II, muss ich jedoch sagen das es wirklich nützlich ist einem Anfänger kleine Tipps zu geben da das Spiel an wirklich jeder Ecke versucht einen für den kleinsten Fehler zu bestrafen.
Ein ausführliches Review kann man übrigens hier finden: Klick
Heute möchte ich ein wenig über erweiterte Kampfmechaniken reden die nützlich sind sofern man schon etwas weiter im Spiel ist. Tatsächlich besitzt Dark Souls eine Menge mehr Möglichkeiten außer dem stumpfen Angreifen von vorne um einen Gegner auszuschalten. Hierfür habe ich ein kurzes Video erstellt, aufgenommen kurz vor dem ersten Glockenturm wie auch im Darkroot Basin.
Die wichtigste Mechanik hierbei ist eindeutig der Backstab, es gibt nur wenige Gegner (vor allem Bosse) die immun gegen einen solchen Angriff sind und verteilt erhöhten Schaden während der Gegner kurze Zeit außer Gefecht gesetzt wird. Um einen Backstab korrekt auszuführen muss man sich hinter einem Gegner befinden und nicht sein Schild hochhalten und dann normal angreifen. Backstabs sollte jeder Anfänger üben um Gegner schnell und effizient ausschalten zu können.
Der Parry oder Riposte gehört dagegen zu den komplexeren Mechaniken, man wehrt über eine präzise L2 / LT Bewegung einen gegnerischen Angriff ab und kontert diesen fatal. Das Zeitfenster für einen Parry ist sehr gering und erfordert viel Übung, lohnt sich jedoch gegen härtere Gegner wie auch menschliche PvP Invader. Anzumerken sei das einige Boss Angriffe nicht pariert werden können!
Der Kick ist eine Mechanik um einen Gegner wortwörtlich zu kicken um ihn entweder nach hinten zu schleudern (Eine Klippe hinunter) oder um ihm sein Schild weg zu stoßen. Besonders gegen die Schild-Speerkämpfer (Da man Schild und Speer und gleichzeitig nutzen kann) ist diese Technik nützlich. Diesen Angriff können auch einige Gegner anwenden um dir das Schild weg zu stoßen! Um den Kick auszuführen muss man gleichzeitig kurz nach vorne drücken wie auch die normale Angriffstaste (R1 / RB), Erfahrungsgemäß benötigen Anfänger ein wenig Übung bis sie diesen Angriff auf Anhieb ausführen können.
Eine Plunge Attack ist ein Angriff von oben, welche man bereits gegen die Tutorial Boss bildlich gezeigt bekommt, man sollte sofern man die Möglichkeit diese nutzen um mehr Schaden auszuteilen.
Angehängt ist ein 2 Minütiger Kampf gegen Havel welcher ohne gezielte Backstabs mindestens 5 mal so lange dauern würde während er einen selber mit nur 1 bis 2 Schlägen umhaut.
Und nicht vergessen: Das sterben in Dark Souls gehört zum Aufbau eures Charakters dazu! Nach dem Tod habt ihr immer noch die Möglichkeit eure verlorenen Seelen und Menschlichkeit wieder zu erlangen.
Heute möchte ich kurz darüber sprechen warum Valve mit ihrem letzten Security Update den richtigen Weg geht.
Ich kümmere mich teilweise um Support Fälle im Gamingforum Elitepvpers und eine Sache kommt immer wieder vor:
User melden sich bei uns weil sie einen Sicherheitsbann erhalten haben (Da Fremdzugriffe festgestellt wurden), beklagen das sie ihr System “gereinigt” haben (Oft einfach nur den Antivirus Scanner drüber laufen lassen) und melden sich eine Woche später wieder weil sie schon wieder einen Sicherheitsbann bekommen haben, da sie immer noch infiziert sind.
Aus dieser Anekdote lernt man nun, das viele User die meinen sie wissen was sie tun, eigentlich überhaupt keine Ahnung haben. Das heißt das Anbieter eigentlich ihre eigenen User vor ihrer Dummheit schützen müssen, so wie Valve mit ihren Trading Holds, ohne den mobilen Authenticator. Auch wird oft davon gesprochen das: “Die Email Authentifizierung reicht doch!”, was jedoch kompletter Humbug ist. Wird man von Malware infiziert, dann werden meistens alle Browser Cookies wie auch Einstellungen von vielen bekannten Programmen abgegriffen, das darunter auch die Zugangsdaten zu Email Postfächern darunter sind, ist extem wahrscheinlich. Der einzige Weg Sicherheit in einen Malware zu bringen, ist doch eine Zweit-Faktor-Authentifizierung, durch ein Gerät das man zusätzlich besitzt und einen neuen Code alle paar Sekunden ausspuckt.
Wenn man sich nun vor Augen nimmt das der Steam Support im Monat ca. 77 000 Fälle wegen Account und/oder Item Diebstahl angeschrieben wird, wird einem langsam klar warum Valve auf ihrer Plattform Steam nun die User vor sich selber schützen wollen. Nach dem letzten Update werden nun auch keine Items mehr bei Diebstahl zurückerstattet, wer nun trotz Sicherheitsvorkehrungen seine Items verliert, ist selber schuld.
Dennoch gibt es auch hier einen Malus
Die Steam Authenticator App, welche zwangsläufig genutzt werden muss wenn man nicht 15 Tage zum handeln warten will, ist nur für neuere iOS und Android Geräte verfügbar. Wer also ein altes Smartphone, gar kein Smartphone oder ein Windows Phone besitzt, schaut in die Röhre. In diesem Fall gibt es auch für den Desktop Authenticators wie z.B. WinAuth welche auch schon für Steam Support ein Update erhalten haben, jedoch bringt dieses Vorgehen die Sicherheitsvorkehrung ad absurdum.
Ich hab nun den Titel ein wenig aufgepept, nun mit ein wenig Terminal Flair und einem blinkenden Cursor.
Der Javascript Code vom Cursor ist mit JQuery übrigens schnell eingetragen:
<script>
function cursorAnimation() {
$('#cursor').animate({
opacity: 0
}, 'slow', 'swing').animate({
opacity: 1
}, 'slow', 'swing');
}
setInterval ('cursorAnimation()', 600);
</script>
Nachtrag:
Man kann dies natürlich auch in reinem CSS erreichen, jedoch sind diese Konstrukte wenn man einen flüssigeren Übergang haben möchte zielich groß und wenn ich schon JQuery in die Seite einbinde, warum nicht auch einfacher?
Nachtrag 2:
Da ich gerade Lust auf CSS Animations habe, habe ich mich noch mal dran gesetzt:
#cursor {
display: inline;
-webkit-animation: 1s blink ease infinite;
-moz-animation: 1s blink ease infinite;
-ms-animation: 1s blink ease infinite;
-o-animation: 1s blink ease infinite;
animation: 1s blink ease infinite;
}
@keyframes "blink" {
50% {
opacity: 0.0;
}
}
@-moz-keyframes blink {
50% {
opacity: 0.0;
}
}
@-webkit-keyframes "blink" {
50% {
opacity: 0.0;
}
}
@-ms-keyframes "blink" {
50% {
opacity: 0.0;
}
}
@-o-keyframes "blink" {
50% {
opacity: 0.0;
}
}
Blöd ist nur das animation leider immer noch “nur” ein Arbeitsentwurf ist sodass jeder Browser sein eigenes Süppchen kocht und man ohne Vendor Präfixe nicht umher kommt. Mit Compass und Sass könnte man das aber noch abkürzen.
Erste Fortschritte im Blog kann man nun sehen, das Standard Theme mit Semantic-UI aufgepept. Inzwischen bin ich von Semantic-UI auch wirklich überzeugt, der Funktionsumfang kann sich defintiv mit anderen großen CSS Frameworks wie z.B. Bootstrap messen. Vor allem die Integration vom mobilen Geräten ist wirklich genial umgesetzt, ich war selber schwer beeindruckt als ich die Möglichkeiten von Semantic-UI in meinem Projekt crimefest-statistics genutzt habe um in wenigen Stunden die komplette Seite für mobile Geräte anzupassen.
Wieder ein Blog?
Jop, nachdem ich meinen letzten Wordpress Blog zerschossen habe und allgemein keine Lust mehr auf Wordpress hatte, hatte ich lange Zeit keine Lust mehr auf einen Blog.
Heute bin ich mal wieder über jekyll gestolpert, damals dachte ich noch: “Wer nutzt heutzutage noch statische Webseiten?”, hier sind wir nun. Jekyll bietet gegenüber anderen Blog Software wie z.B. Wordpress enorme Vorteile durch den einfachen Aufbau, unter anderem haben viele Wordpress Blogs eine gigantische Plugin Liste um ihre Sicherheit zu erhöhen und/oder Pageload zu verringern und andere Spielereien. Das dabei jedes Plugin ein potentielles Scheunentor für Angriffe sein kann, wissen viele nicht oder nehmen es in Kauf.
Mal schauen ob dieses Blog Projekt lange hält, dadurch das ich den Blog direkt auf GitHub hoste, sollte das jedoch wahrscheinlich der Fall sein.
Abonnieren über Atom/RSS