Blogarchiv

Migration von Disqus zu isso

Bald ist es soweit. Die DSGVO greift und die Übergangszeit ist zu Ende. Für mich ist es also an der Zeit, Disqus abzulösen und durch eine eigene Plattform zu ersetzen. Erst dachte ich: Das programmierst Du eben selbst. Aber warum so kompliziert, wenn es auch einfacher geht? Mit isso wurde nämlich schon genau so eine Lösung geschaffen.

Mir ging es darum, dass ich die Webseite eigentlich genauso lassen kann wie zuvor. Also weiterhin statischer Content und ein JavaScript lädt dann die Kommentare dazu. Genau wie bei Disqus also. Und das habe ich getan. Zum Glück gibt es auch schon fertige Docker-Images. Zusammen mit LetsEncrypt und der Apache-Konfiguration hatte ich Ablösung innerhalb weniger Stunden stehen. Weiterlesen…

Das Jahr 2017

Wie schon 2012, 2013, 2014, 2015 und auch 2016 möchte ich natürlich auch dieses Mal wieder mein Jahr kurz und knackig zusammenfassen. Dabei verschiebt sich aber der Fokus nun etwas. Was genau damit gemeint ist, merkst Du schon, wenn Du die anderen Beiträge vergleichst.

Beginnen wir also wie immer mit ein paar Zahlen:

  • Beiträge: 369 (+23)
  • Klicks: 77.400 (-33%)
  • Besucher: 49.800 (-30%)

Wie man sieht, wird es hier immer dünner. Warum? Erzähle ich gerne.

  • Endlich Selbstständig! Nach 5 Jahren als Softwareentwickler in einer Agentur habe ich den Schritt in die Selbstständigkeit gewagt. Seit 01.11.17 bin ich also nun für mich selbst verantwortlich. Mehr dazu im nächsten Punkt.
  • DIY-Smart-Home ist jetzt mein Business geworden. Ich habe alles andere abgebrochen und setze nun auf diese Karte. Daher ist dieser Blog auch ein wenig eingeschlafen und es kommen wesentlich weniger Beiträge als früher.
  • In diesem Jahr sind gut 5.000 Abonnenten auf YouTube dazu gekommen. Das sind 80% aller Abonnenten. Fast 1.000 davon sogar nur im November.
  • Das liegt aber auch daran, dass ich im November über 20 neue Videos hochgeladen habe. Also Content ist wirklich King. Oder eher Mehrwert. Ich bin super happy mit der Entwicklung und dem Feedback aus der Community.
  • Ich war im Jahr 2017 komplett mit dabei, als Ben Schneider seiner Insidergruppe beigebracht hat, wie man einen eigenen Blog aufbaut und monetarisiert. Für mich war es natürlich sehr sehr viel Wiederholung und das meiste wusste ich schon. Allerdings lernt man immer wieder kleine Tricks dazu und 2018 starten wir mit Online-Marketing richtig durch. Da ist für mich sicher auch viel Wiederholung dabei, aber da ich noch mehr digitale Produkte erstellen werde, brauche ich das Know-How auf jeden Fall. An die Hand genommen zu werden schadet auf jeden Fall nicht.
  • Das Thema Persönlichkeitsentwicklung und Unternehmertum begeistert mich weiterhin. Ich lese viele Bücher und war dieses Jahr auf der Vertriebsoffensive von Dirk Kreuter in Dortmund. Ein tolles Event, über welches ich bereits hier berichtet hatte.
  • Als Magento-Freelancer bin ich weiterhin nebenbei tätig – kontaktiert mich gerne bei Fragen und kleineren Projekten. Allerdings nehme ich nur Projekte an, welche ich auch wirklich schaffen kann. Ich habe Anfragen für große und sehr komplexe Shops bekommen, welche mich sicher ein halbes Jahr beschäftigen würden. Diese kann ich natürlich nicht alleine umsetzen.
  • Unser Kochblog (elegant-kochen.de) ist jetzt auf 4K umgestiegen. Gefilmt wird jetzt mit einer GH5. Wirklich unglaublich was diese Kamera liefert. Natürlich fordert dies auch mein MacBook wirklich heraus. Weiterhin erscheint jede Woche ein neues Video. 2018 starten wir gemeinsam aber noch einmal richtig durch. Auch dort wurden gegen Ende des Jahres die 5.000 Abonnenten durchbrochen.
  • Nadine war mit elegant-kochen bereits 2x im Radio, in den Lokalzeitungen, es wurde in der Zeitung „für Sie“ berichtet und sie durfte auf der Landesgartenschau einen kompletten Tag in einer Showküche kochen. Also in dieser Richtung ebenfalls ein sehr erfolgreiches Jahr. So ist auch der Bereich „Presse“ auf der Webseite entstanden.

Die Webseiten selbst haben sich in diesem Jahr optisch fast gar nicht verändert. Nur Kleinigkeiten wurden angepasst. Aber mittlerweile sind diese meiner Meinung nach auch alle zusammen auf einem relativ hohen Level, sodass ich gar nicht mehr das Bedürfnis habe, diese oft anzufassen. Zumindest nicht mit so großen Schritten wie in den letzten Jahren. Es gibt eher viele kleine Optimierungen.

Technik

  • Ich habe einen eigenen Root-Server gebucht, auf welchen fast alle meiner Seiten schon umgezogen sind. Diese hier gehört übrigens noch nicht dazu.
  • Dieser ist natürlich mit Docker ausgestattet und alle Webseiten laufen in einzelnen Docker-Containern.
  • Wie schon erwähnt bin ich von der Fotografie auf die Videografie umgestiegen. Hier setze ich auf eine GH5 und filme fast alles in 4K. Die Datenmengen sind natürlich enorm. Wenige Minuten sind schnell mehrere GB groß.
  • Weiterhin wurde unser Unitymedia-Anschluss ein wenig „verschnellert“. Jetzt gibt es 400MBit down und 20MBit up.
  • Ich bin von CleverReach zu KlickTipp umgezogen und probiere im E-Mail-Marketing mehr zu lernen und auch per Mail super viel Mehrwert für meine Abonnenten zu liefern.
  • 2017 habe ich dann auch meine ersten Google- und Facebook-Anzeigen geschaltet. Die meisten Umsätze generiere ich aber ganz ohne Werbung auf diesen Plattformen.

Bestimmt ist noch viel mehr passiert. Eigentlich möchte ich immer über das Jahr dokumentieren, vergesse es dann aber wieder. Ich bin jedenfalls sehr stolz auf die Entwicklung der einzelnen Seiten und dass ich 2018 so richtig durchstarten kann. Ich weiß nicht, wann ich mal so viel gelernt habe wie in diesem Jahr. Ich hoffe, dass das so weitergeht. Ich bin sehr dankbar dafür, dass ich das alles so machen kann.

Docker-Container per DNS auflösen

Ich habe auf meinem Root-Server alle in Docker-Containern laufen. Also WordPress für mehrere Webseiten. Alles PHP-FPM. Jetzt starte ich meine Docker-Container alle mit einem entsprechenden Hostnamen. Also meistens so wie die Domain heißt plus „.docker“. Also zum Beispiel „klein0r-de.docker“. Dieses Ziel gebe ich dann in meinem Apache für ProxyPathMath an.

Soweit, so gut. Apache läuft bei mir übrigens nicht in einem Container. Warum eigentlich nicht? Könnte ich mir auch noch überlegen.

Jedenfalls habe ich dann das Problem, dass mein Host diese Domain nicht auflösen kann! Also habe ich anfangs die einzelnen Seiten in die etc/hosts eingetragen. Blöd ist dabei nur, dass die IPs natürlich rotieren können, sobald der Server mal neugestartet wird. Also habe ich plötzlich andere Inhalte hinter den Domains – extrem nervig. Das ist mir jetzt 2x passiert und nun habe ich mich mit einer Lösung beschäftigt. Am einfachsten war dabei für mich der Weg über einen weiteren Docker-Container für DNS.

Nun werden alle DNS-Anfragen in den Container gejagt. Außerdem werden nun die Hostnamen der Docker-Container richtig aufgelöst und alles funktioniert wunderbar wie ich mir das vorgestellt habe. Sobald man den Container stoppt ist übrigens wieder alles wie vorher. Also kein Risiko. Danke restart=always wird der Container also nun auch immer brav mitgestartet und alles überlebt ebenfalls einen Neustart des Servers. Puh, das war einfacher als ich dachte!

Nun bin ich kein Sysadmin, sondern Softwareentwickler. Daher lese ich mir solche Themen immer an und bin froh, dass es so einfache Lösungen wie diese gibt. Wenn Du eine bessere oder einfachere Idee hast: Immer her damit!

Spotify – Statistiken des Jahres 2017

Komisch, im letzten Jahr habe ich dazu gar keinen Beitrag geschrieben. Ich glaube, da gab es das Feature des Jahresrückblickes gar nicht. Oder ich habe es zumindest nicht gefunden oder gesucht. Weiß ich nicht mehr. In den Jahren 2013, 2014 und 2015 habe ich jedenfalls einen Beitrag dazu geschrieben.

Die Seite für 2017 nennt sich: 2017wrapped.com

Einfach mit Spotify verbinden, und die aktuellen Statistiken abrufen. Bei mir sieht das Ganze wie folgt aus:

  • 13.201 Minuten gehört – das ist ein Rekordtief. So wenig habe ich, seit ich meinen Account habe, noch nie gehört.
  • 2.183 verschiedene Songs angehört
  • von 1.262 Interpreten
  • in 23 Genres

Irgendwie ein ganz schön bunter Mix. Insgesamt habe ich wirklich viele verschiedene Playlists gehört, anstatt einzelne Alben. Das habe ich in den letzten Jahren anders gemacht auf jeden Fall.

Meine Top 10 erschrecken mich dann doch etwas. Da ich aber so viele verschiedene Musik gehört habe, muss man ein Lied wohl nur 2-3 Mal hören um es in die Top 10 bei mir zu bringen. Einen wirklichen Ohrwurm gab es bei mir jedenfalls nicht. Platz 1 kann ich mir z.B. überhaupt nicht erklären.

Mit den anderen Songs kann ich aber ganz gut leben. Open Your Eyes 2017 habe ich auf keinen Fall öfter als 5x gehört. Also: Diese Liste ist dieses Jahr wirklich nicht aussagekräftig.

Dafür habe ich auch nur 327 Songs übersprungen. Das ist wirklich nicht viel. Also nichtmal einer am Tag.

2018 möchte ich auf jeden Fall auf das alte Level von gut 55.000 Minuten im Jahr zurück kommen.

mysql Fehler – attempted to open a previously opened tablespace

Heute wollte ich ganz normal meine MAMP-Instanz starten um lokal weiter an meinem Magento 2 Shop zu arbeiten. Dabei konnte mySQL leider nicht gestartet werden. Im log stand dann der folgende Eintrag.

Nicht cool, immerhin startet mySQL dann gar nicht mehr. Meine Datenbanken hatte ich schon fast abgeschrieben. Auch, wenn es nur Entwicklungsdatenbanken sind, wäre ein Verlust doch extrem ärgerlich. Also ein wenig recherchiert und schnell auf die Lösung gekommen. Diese nennt sich „innodb_force_recovery“.

Dazu öffnet man einfach die my.cnf und fügt irgendwo unter [mysqld] den folgenden Eintrag ein:

Je höher der Wert gesetzt wird, desto wahrscheinlich ist es, dass die Datenbanken kaputt gehen! Also auf jeden Fall mit 1 starten.

Danach startet man mySQL. Sollte das klappen, wird der Dienst sofort wieder gestoppt und der Wert aus der Konfiguration entfernt. Danach kann mySQL erneut gestartet werden.

In meinem Fall war das Problem damit aus der Welt.

Weitere Details gibt es hier. Dort kann man auch nachlesen was die einzelnen Level genau tun.

Facebook-Video-Cover erstellen

Schon lange wollte ich mal ein Video-Cover bei Facebook erstellen. Ziemlich cool eigentlich :) Heute habe ich mich endlich mal hingesetzt und mein bestehendes Cover durch Final Cut Pro geschoben. Folgende Einstellungen habe ich für das Cover gewählt.

Wie man sieht, sollten Videos also 820 x 462 Pixel groß sein und eine Länge zwischen 20 und 90 Sekunden haben. Also habe ich ein PNG mit meinem alten Cover und einer abgerissenen Kante erstellt und mein Intro für die Videos dahinter gelegt. Für nur 5 Minuten Arbeit sicher ein ganz gutes Ergebnis. Aber das ganze Material hatte ich ja auch schon und musste es nur noch mit einander verbinden.

Allerdings war mein Intro mit wenigen Sekunden nicht lang genug, wodurch ich es einfach mehrfach hintereinander gepackt habe. Nicht die schönste Lösung, aber das Cover läuft ja auf Facebook eh im „Loop“, wodurch die Wiederholung sowieso stattfinden würde. Weiterlesen…

Mit PHP7 auf MSSQL-Datenbanken zugreifen unter Mac OS X & MAMP

Wie der Titel schon sagt, hatte ich vor kurzem die Herausforderung, auf eine MSSQL-Datenbank zugreifen zu dürfen. Unter PHP5 war das Ganze relativ mit dem Paket php5-mssql möglich (außer unter Mac OS X). Mit PHP7 ist das mssql-Paket entfallen und wird nicht mehr entwickelt.

Also musste eine andere Lösung her. Diese nennt sich in diesem Konkreten Fall dblib. Hiermit können über PDO dann Datenbankverbindungen zu MSSQL aufgebaut werden. Unter Linux / Ubuntu war das Ganze relativ schnell eingerichtet. Jetzt mussten wir es nur noch unter Mac OS X zum laufen bekommen, um lokal auch entsprechend entwickeln zu können.

Als Basis dient hier FreeTDS, welches die grundlegende Datenbankverbindung dann öffnet. Dblib ist dabei „nur“ eine PHP-Extension, welche entsprechend mit FreeTDS kommuniziert. Soweit so gut.

Dazu hatte ein Arbeitskollege die Idee, PHP7 mit brew zu installieren, welches die entsprechende .so-Datei ebenfalls enthielt. Obwohl ich lokal unter MAMP noch auf Version 7.0.15 bin, konnte ich die .so-Datei von 7.0.19 nutzen. Diese wurde dann in das richtige Verzeichnis unter MAMP gelegt und in der php.ini geladen. Danach konnte die erste DB-Verbindung auch schon aufgebaut werden.