Tech, Code, Gadgets, BBQ & More

How to fully revert the most recent git commit

without using rebase

Sometimes, when I was too stupid to change the git configuration and pushed a commit with the wrong credentials again, I need to revert the most recent commit completely. And every time I have to do this, I need to search for the correct command.

So, for a short note: with the command below the last commit will be erased completely. Unlike a rebase, the commit can't be found in any branch from now on. More information can be found in this great post on Stack Overflow.

git reset --hard HEAD~1

Just great for all kind of mistakes. ;)

Share:

Counter Node für Node-RED

node-red-contrib-counter

Es gibt wirklich unzählige Nodes als Erweiterung für Node-Red. Was es bisher aber nicht gab, war ein einfacher Zähler für Nachrichten-Pakete. Und genau sowas habe ich für mein Projekt benötigt. Also was blieb mir anderes über, als kurzer Hand eine solche Node selber zu schreiben?! ;)

Die Node ist mittlerweile öffentlich auf GitHub, npm und über die offizielle Node-Sammlung verfügbar und kann somit wie jede andere Node installiert werden.

npm install node-red-contrib-counter
read more ...
Share:

Why is the 'load' event not beeing executed after updating to jQuery 3?

The problem can be occur when using/switching to jQuery 3. It's because all ready states in the new jQuery 3 are now fully asynchron. This means, that there is no given order for your code to be executed.

Because of this, it could happen, that load is been triggered **before** your ready state has been executed. When your ready function now finally gets triggered, your load listener is too late and will not be executed.

read more ...
Share:

CatFeeder Projket beendet!

Ich habe hier ja schon einige Male von meinem Projekt zum Katzenfütterungsautomaten berichtet. Leider ist es in der Zwischenzeit so gekommen, dass ich keine Katzen mehr habe, womit der Automat natürlich überflüssig geworden ist. Mittlerweile war die gesamte Steuerung mittels Arduino komplett fertig und die Platine mit allen Funktionen gelötet. Es musste eigentlich nur noch im Gehäuse verbaut werden. Dazu kommt es jetzt leider nicht mehr.

Meine mechanischen Arbeiten werden mit Sicherheit nochmal andernorts als Futterautomat weiterleben. Katzenbesitzer mit diesem Problem gibt es ja genug. ;)

Für interessierte Personen stelle ich meinen Quelltext des Arduinos auf GitHub bereit. Der Code beinhaltet alle Funktionen, welche ich in meinem Automaten haben wollte. Unter anderem einen Willkommens-Bildschirm, Befehle über Netzwerknachrichten, Melodie bei Fütterung, Steuerung über zwei Knopfe, Display, usw.

read more ...
Share:

PHP: yield is here!

Und gibt uns so viel mehr zurück ...

Was freue ich mich über das Feature in php 5.5: yield! Gut, klingt jetzt erst mal als Wort nicht sonderlich spannend. Es ist zugegeben auch nicht sehr umfangreich, aber für mich als Entwickler ist die Möglichkeit eine super Ergänzung.

Was macht man normalerweise, wenn man eine Liste an eine andere Funktion übergeben will? In gefühlt 98% der Fälle wird ein mit einer Schleife ein Array erstellt, in einem 1% macht man vielleicht ein Objekt draus und im übrigen Prozent der Fälle überlegt man es vielleicht doch anders zu machen. Der Nachteil ist natürlich generell, dass ein Array oder Objekt im Speicher liegt. Habe ich also Daten, die ich dann noch in ein Array/Object umpacke, um es in einem bestimmten Format an eine andere Funktion zu übergeben, habe ich gleich wieder neue Daten im Speicher liegen. Und jetzt kommt yield ins Spiel!

Mit der neuen Rückgabeart kann prinzipiell return ersetzt werden, yield gibt dann sequenziell Daten zurück. In Schleifen verwendet können so einfach, und vor allem ohne den Speicher zu belasten, Daten zurückgegeben und weiter verarbeiten.

read more ...
Share:

Arduino Webserver

Installation von php5 mit JSON & Sessions auf dem Arduino Yún

Ich muss es eingestehen: ich bin kein großer Freund von Python. Es ist zwar auf dem Yún vorinstalliert und läuft auch, aber für meine Anwendungen war es irgendwie nicht das richtige. Da fühle ich mich bei php schon mehr zuhause. Glücklicher weiße kommt Linino schon direkt mit opkg und ermöglicht so eine schnelle Installation von php.

Nach etwas Recherche habe ich die Befehle schnell gefunden. Hier also festgehalten für mich und die Nachwelt, alles um php5 auf dem Yún zum Laufen zu bringen. Und das sogar ohne jeden Neustart. ;)

read more ...
Share:

CatFeeder Update 2: Bau des Futterbehälters

Der wichtigste Teil bei einem Fütterungsautomaten ist wohl der Futterbehälter selbst. Dieser stelle mich auch vor die größten Probleme. Musste ich doch in einer recht flachen Form möglichst viel Futter sowie die Mechanik zur Ausgabe unterbringen und dennoch genug Platz für die Elektrik und andere Bauteile über behalten. Meine Suche nach passenden Behältern und unterschiedlichen Mechaniken stellte sich nach kurzer Zeit als aussichtslos heraus und hielt für mich fest, dass ich wohl selber einen Behälter bauen muss.

Zur Ausgabe des Futters wurde ein Cerealienspender genommen. Das sollte ja auch für Katzenfutter funktionieren. Jan hat dies in seinem Projekt bereits genutzt und ist sehr zufrieden damit. Von Ihm habe ich auch ein paar andere Ideen einfließen lassen. Den Behälter selbst fertigte ich aus einem mit weißem Lack beschichteten Regalboden, welches ich aus dem Baumarkt geholt habe.

Der fertige Behälter hat ein Fassungsvermögen von etwa 4,2 Liter. Zum Vergleich, der Dispenser fasst etwa 1.1 Liter. Das sollte für ein paar Tage genügen.

read more ...
Share:

CatFeeder Update 1: Molger auskleiden

Es ist früher Nachmittag. Die Sonne scheint. Das Wetter ist angenehm. Was gibt es also schöneres, als mit dem Dremel auf die Terrasse zu gehen und Acrylplatten zu schneiden? Nichts! So machte ich mich daran die Platten zur inneren Auskleidung von Molger für meinen CatFeeder anzupassen. Ich entschied mich 3mm starke, weiß/transparente, satinierte Acrylplatten zu verwenden, welche ich mir vorab besorgte.

Die innere Auskleidung hat mehrere Gründe. Zum einen natürlich die Optik. Die Schlitze lassen vom Inneren immer noch eine Menge durchblicken. Das möchte ich später vermeiden. Das leicht transparente und satinierte Material lässt nachher aber noch Licht durscheinen. Um etwas ambient light zu schaffen werden später im Inneren ein paar RGB-LED-Stripes angebracht, welche ich noch von einem anderen Projekt über habe, die dann durch die Schlitze scheinen sollen. Die Knöpfe und das Display werden blau beleuchtet sein, weshalb hoffentlich ein stimmiges Gesamtbild entsteht, wenn die LEDs im Inneren ebenfalls blau leuchten.

read more ...
Share:

Projektstart: Katzenfütterungsautomat / CatFeeder

Schlaf ist wichtig! Besonders heilig ist mir dieser am Wochenende. Wer aber selber Pelzträger (aka Katzen) im Haushalt hat, wird wohlmöglich nachvollziehen können, dass es diesen komplett egal ist, ob man schläft oder nicht. Es hat auch samstags und sonntags zur selben Zeit wie in der Woche Futter zu geben! Freundlicherweise erinnern mich meine Katzen immer rechtzeitig daran, dass ich bald zum Füttern aufstehen müsse. Meist eine gute Stunde vorher.

Abhilfe muss her!

Mein alter Kollege und Freund Jan hat bereits ein ähnliches Projekt vor einiger Zeit realisiert. Praktisch genau was ich will, technisch und optisch müsste es aber verändert werden. Also entschloss ich mich, ein komplett eigenes Projekt draus zu machen und die bewährten Ideen aus Jan's Catfeeder einfließen zu lassen.

Der Arduino powered WiFi enabled Linux controlled CatFeeder ist geboren! ;)

read more ...
Share: