Archiv der Kategorie: Coding
Buffalo NAS aufwecken
Ich besitze schon seit längerem ein zwei-bay NAS von Buffalo mit zwei 3TB platten. Ich möchte das NAS nicht 24/7 laufen lassen, da ich es oft einfach nicht benötige, allerdings ist mir das manuelle aktivieren des Gerätes auf Dauer dann doch zu blöd.
Allerdings gibt es bei dem NAS eine Lösung, die ich verwenden kann, wenn ich nicht jedesmal aufstehen möchte um das NAS zu starten, Wake-on-Lan (WOL).
Doch benötigt das Buffalo NAS von den Wake-on-Lan Paketen etwa alle 4 Minuten ein neues Paket um anzubleiben. Damit fallen einfache Lösungen wie irgendwie ein Paket zu schicken flach. Der erste Ansatz von mir war ein Shellscript, das von meinem Raspberry Pi die Pakete mit einer einfache while-Schleife verschickt. Doch das Problem bei dieser Lösung ist offensichtlich, nur derjenige der das System kennt kann es auch bedienen.
Eine andere lösung musste her, die sich einfacher bedienen lässt.
Durch etwas Suchen bin ich auf eine sehr schöne anleitung für den Pi gestoßen, durch die man den Pi als Wake-on-Lan server verwenden kann.
Das Script eignet sich zwar nur zum versenden von einem WOL-Paket. Deswegen habe ich mich dran gemacht das Script anzupassen. Jetzt wird mit dem ersten WOL-Paket eine Datei erstellt.Ein Shellscript prüft ob diese Datei vorhanden ist und sendet dann die weiteren Pakete. Damit das Shellscript noch alle 4 minuten ausgeführt wird habe ich es einfach in die Chrontabelle eingefügt. Jetzt wird periodisch geschaut ob die Datei vorhanden ist und dadurch das NAS mit genügend WOL-Paketen versorgt um nicht einfach auszugehen.
Für den Fall das sich jemand jetzt an der fertigen Bastelei interessiert habe ich das Veränderte Script auf GitHub veröffentlicht.
What if…
(Direktyoutube via Weißichleidernichtmehr)
…Google accidentally opened everything.
Ein schönes „Was wäre wenn“ von Tom Scott, das Beschreibt was passieren könnte wenn Google die Überprüfung der Passwörter sein lassen würde.
Tom Scott macht nebenbei auch bei Computerphile mit, ein guter Youtube-Channel rund um Computer, Programmieren und die Geschichte der Computer.
Grade keine Bilder bei doofmars.de
Ich hatte heute bei Doofmars.de nicht tolerierbare Performance Einbusen beim laden der Seite. Ich habe mir daraufhin ein sehr nettes Plugin installiert, das die gesamten WordPress Plugins nach ihrer Geschwindigkeit untersucht und anzeigt, welches Plugin wie lange zum laden Benötigt. Das ist Dabei herausgekommen:
Daraufhin habe ich testweise das Galerie Plugin deaktiviert. Und kam zu einem viel passenderem Ergebnis, was die Laufzeit betrifft:
Somit war klar, das Plugin musste Raus, zumal ich vorher laut WordPress zum erstellen einer Seite ~55 Sekunden gebraucht habe und jetzt ohne das Plugin nur ~0,88 Sekunden.
Nach etwas mehr Recherche bin ich auf eine mögliche Ursache für das Problem gestoßen. Das Plugin fängt nämlich an nutzlose Einträge in die Datenbank zu schreiben, genauer in die wp_options Tabelle. So entstanden über 26.000 falscher Einträge die 37mb in der Datenbank benötigten.
Der momentane stand ist jetzt, das ich das Plugin vorerst Ersatzlos gestrichen habe und die Datenbank durch eine kleine SQL abfrage von dem ganzen Müll befreit habe.
Das heißt, erstmal keine Galerie hier im Blog. Wenn ich eine Lösung gefunden habe lade ich die meisten Bilder wider hoch.
was war da los?
UTF-8 The most beautiful hack
(Direktyoutube via Reddit)
Sehr schöne Zusammenfassung über die Entstehungsgeschichte von UTF-8
Doofmars bei Uberspace
So jetzt komme ich auch mal zu dem versprochenen Umzugspost.
Ich bin vor ein paar Monaten von meinem alten Provider (Campusspeicher.de) zu Uberspace.de gewechselt. Ich möchte für euch noch in einem Post meine ersten Erfahrungen und Eindrücke schildern und vor allem was mich bewegt hat zu wechseln.
Zuerst einmal: Einem Anfänger der nur eine einfache Homepage erstellen möchte, würde ich eher zu Campusspeicher raten. Da hier das ganze Setup wesentlich einfacher gestaltet ist: Es gibt sogenannte ‚Application Packs‘, die dem Benutzer eine einfachere Installation eines CMS (Content Management Systems [Wordpress oder Joomla]) ermöglichen. Auch werden alle Einstellungen über eine Administrationsseite im Browser getroffen. Doch wer mich kennt weiß, dass ich Informatik studiere und meinen Blog lieber selber aufsetze und anpasse als mich mit einem ‚Application Pack‘ herumzuschlagen.
Aber kommen wir zu Uberspace. Wenn man die Homepage besucht, wird einem in drei Sätzen erklärt was hinter dem Konzept von Uberspace steckt:
Uberspace.de ist deine Plattform für den Betrieb von Websites und Mail. Sie bietet ungewöhnlich viele Möglichkeiten, engagierte Unterstützung durch erfahrene Linux-Admins – und das Beste: den Preis bestimmst du!
Mengen Rechner
Während dem vergangenen ersten Semester hatten wir als eines der Fächer Formale Methoden. Bestandteil des Unterrichts war, die verschiedenen Operatoren für die Berechnung von Mengen sowie logische Operationen kennen zu lernen. Wir haben unter anderem am Anfang gelernt das mit verschiedenen Rechenoperatoren die Mengen nach unterschiedlichen Gesichtspunkten verknüpft werden können.
Bsp: Eine Menge A={1,2,3} und eine Menge B={3,4,5}.
Sie können mit U Vereinigt werden zu: A U B = {1,2,3,4,5}
oder mit ∩ eine Schnittmenge ergeben: A ∩ B = {3}
oder durch \ Maskiert werden: A \ B={1,2} oder B \ A={4,5} (Sprich: A ohne B)
WAT
https://www.youtube.com/watch?v=kXEgk1Hdze0
(Direktyoutube via Derp)
WAT?
Tick Tack Toe
Und wider ein neue Programm, spontan bin ich auf die Idee gekommen ein Tick Tack Toe zu Programmieren. Hier bestanden die Schwierigkeit darin, das was passieren soll möglichst in eine Funktion zu packen, damit falls ich ein paar Änderungen machen möchte nicht bei jedem einzelnen on click Event die ganze Sache umändern muss. Damit ich die Bildboxen aus der Funktion ansteuern kann musste ich die Bildboxen in ein Array packen. Nachdem diese Schwierigkeit überwunden war war es dann im nächsten schritt wichtig zu kontrollieren ob das Spiel Gewonnen wurde. Das ganze konnte mit einem weiteren Array gelöst werden.
public static int [,] Bedingungen = //Bedingungen zum Gewinnen { {0,1,2}, {3,4,5}, {6,7,8}, {0,4,8}, {2,4,6}, {0,3,6}, {1,4,7}, {2,5,8}, };