Tech, Code, Gadgets, BBQ & More

Lazy 0.1.16 erschienen

Die neuste Version meines Plugins Lazy für jQuery ist vorhin auf GitHub erschienen. Die Changelog dazu ist eher überschaubar. Neben einer etwas ausführlicheren Beschreibung auf GitHub kam hauptsächlich ein neues Feature dazu, welches hoffentlich praktisch ist.

Mit dem neuen Callback onFinishedAll wurde ein neues Event hinzugefügt, welches einmalig nach dem laden aller Bilder aufgerufen wird. Hierbei spielt es keine Rolle, ob alle Bilder korrekt geladen, oder Teile nur fehlerhaft geladen werden konnten.

$('img').lazy({
  onFinishedAll: function() {
    console.log('we're finished here!');
  }
});
read more ...
Share:

Logger in Zend Framework 2 über Modul Config erstellen

Wer das Zend Framework kennt wird vermutlich auch schon Kontakt mit Zend\Log und dem Thema logging gehabt haben. Mit dem ZF2 wurden viele Dinge verändert und auch der Logger blieb davon nicht verschont. Leider lässt aber die Dokumentation aktuell noch zu wünschen übrig. Wer eine Logger-Instanz über die Modul-Config (modul.config.php) erstellen will, wird vermutlich das gleiche Problem wie ich bekommen, dass man keine wirklichen Informationen dazu findet. Die Optionen für ein Config-Array sind einfach nicht ausreichend erklärt oder überhaupt aufgeführt.

Nachdem ich die diversen Dateien aus dem Zend\Log durchgesehen habe, konnte ich weitgehend die Konfiguration nachstellen. Somit ist es im Endeffekt leicht möglich eine Instanz des Loggers komplett in der Konfigurationsdatei zu erstellen, ohne irgendwelche Einstellungen hardcoded abzulegen; wenn man weiß wie. :)

read more ...
Share:

Arduino Yún Bridge nutzen für TCP Kommunikation

über eigenen Port mit YunServer und YunClient

Mit einem Arduino über Netzwerk zu kommunizieren ist generell nichts Neues. Auch der Yún mit WLAN und Ethernet macht da an sich keine Ausnahme. Die bekannte Ethernet Library steht wie gewohnt auch auf dem Yún zur Verfügung. Zusätzlich dazu bietet der Yun aber mit YunServer und YunClient zwei neue Klassen, welche für Netzwerkkommunikation eingesetzt werden können. Beide gehören zur mit dem Yún eingeführten Bridge Library.

Und das sollte man auch durchaus in Betracht ziehen, denn die beiden Klassen sind bereits auf dem Yún vorhanden und belegen daher in einem Sketch keinen zusätzlichen Speicher. Bei größeren Sketches kommt man irgendwann an die Grenzen des verfügbaren Platzes, da sollte man sparen wo man kann.

Für die Verwendung von YunServer und YunClient gibt es grundlegend zwei Möglichkeiten. Einmal die vorkonfigurierte Lösung über Port 5555 und der REST Api, sowie zum anderen die etwas komplexere Möglichkeit der direkten TCP Verbindung, welche auch über einen eigenen Port erfolgen kann. Im Folgenden möchte ich beide Ansätze kurz vorstellen und erläutern. Gerade bei der TCP Variante bin ich selbst auf einige Probleme gestoßen, bis diese wie gewünscht funktionierte.

read more ...
Share:

Datum und Zeit via NTP auf Arduino Yún aktualisieren

inkl. Aktualisierung bei jedem Systemstart

Der Arduino Yún besitzt von Haus aus die Möglichkeit die aktuelle Uhrzeit und das Datum via NTP abzugleichen. Das funktioniert eigentlich auch ganz gut. Nur leider läuft das Update nur sehr unregelmäßig.

Wenn man den Yún eine gewisse Zeit von der Stromversorgung trennt verliert er das Datum und die Zeit. Beim Start wird nicht immer direkt die aktuelle Zeit angefragt. Mit einem einfachen Befehl in einem Startskript kann man den Yun aber dazu bewegen, dieses möglichst schnell nach dem Start zu erledigen.

Hierzu muss nur mit einem Editor wie z.B. vi die Datei /etc/rc.local bearbeitet werden. Fügt man die folgende Zeile dort ein, wird bei jedem Systemstart die aktuelle Zeit vom angegebenen NTP Server abgefragt. So hat man auch direkt nach dem Start immer korrekte Zeiten und Daten zur Verfügung.

ntpd -qn -p 0.openwrt.pool.ntp.org
Share:

Arduino Yún mountet Ordner von SD Karte automatisch

Ein eher kleines, aber sehr nützliches Feature bringt der Arduino Yun von Haus aus mit. Bestimmte Ordnerstrukturen auf der SD Karte werden automatisch im System von Linino gemountet. Ohne weiteren Konfigurationsaufwand bekommt man so sehr schnell Zugriff an den wichtigsten Stellen. Bis jetzt weiß ich von zwei Ordnern die automatisch erkannt werden:

SD Ordner           gemountet unter
/arduino            /mnt/sd bzw. /mnt/sda1
/arduino/www        /www/sd
read more ...
Share:

Automatisch Bilder mit Webcam an Arduino Yún aufnehmen

Nachdem ich mein Problem mit dem Startskript behoben hatte konnte ich auch den eigentlichen Zweck endlich umsetzen. Mit dem Start des Yún sollte auch eine Webcam direkt starten Bilder aufzunehmen und diese auf der SD Karte speichern. Das Ganze soll durchgehend passieren, alle drei Sekunden ein neues Bild.

Nach etwas Suche im Internet fand ich verschiedene Lösungen die mehr oder weniger performant waren. Die beste Idee kam meiner Meinung nach von dem Blogger Luca, der selber ein gutes Tutorial zu dem Thema verfasst hat. Bei mir traten aber ein paar Eigenheiten auf, weshalb ich sein Tutorial gerne etwas erweitern möchte.

read more ...
Share:

Skript beim Start von Arduino Yún ausführen

funktioniert mit allen Linino Linux Distributionen

Für ein Projekt beschäftige ich mich aktuell mit dem Arduino Yún. Anders als die anderen Arduinos kommt das Yún mit der Linux-Distribution Linino daher. Diese bietet mit LuCi gleich eine passende Verwaltungsoberfläche für den Browser basierend auf OpenWRT.

Eines der ersten Dinge die ich für mein Vorhaben brauchte war es, ein Skript immer direkt nach dem Systemstart laufen zu lassen. Bloß was ist der korrekte Weg mit dem Mini-Linux und dem Yún? Nun, ich weiß es nicht. Die für mich am praktikabelsten scheinende Lösung möchte ich aber hier für mich und alle interessierten festhalten.

Da es über die Weboberfläche einen Editor für crontab gibt hatte ich mich anfangs entschiedenen dies zu nutzen, um mein Skript nach dem Start/Reboot auszuführen. Aber das Yún bzw. Linino unterstützt das @reboot Attribut von Crontab nicht. Also ist dies leider keine Option, auch wenn man damit einfach seine Skripte verwalten könnte. Aber es gibt andere Wege, vielleicht nicht ganz so praktisch, führen aber zum Ziel.

read more ...
Share:

Lazy 0.1.15 erschienen

Seit heute liegt auf GitHub die Version 0.1.15 von jQuery.Lazy(); bereit. Die Idee bzw. der Tipp eines Nutzers, welcher mich zu dem Update bewegte, war gar nicht mal schlecht. Ein Punkt der mir vorher nicht in den Kopf kam: Was ist mit Bildern in Containern?

Gute Frage!

Normalerweise werden Bildern bei Lazy während des Scroll-Events geladen. Das betrifft immer die gesamte Seite, da das Plugin window verwendet, um auf Aktionen zu warten. Bilder die aber in einem Tag mit z.B. overflow: auto; lagern werden dann auch geladen, obwohl gar nicht nötig.

$('img').lazy({
  appendScroll: $('div#container');
});

Hier kommt die neue Konfiguration appendScroll von Lazy zum Einsatz. Wird hier ein Element angegeben so ist der Event-Listener nur noch darauf gerichtet. So lassen sich nicht nur Bilder speziell in einem Container laden lassen, sondern auch mehrere Lazy-Instanzen auf verschiedene Scroll-Events legen. Theoretisch gibt es hiermit viele Anwendungsmöglichkeiten, bin gespannt wann ich eine für mich finde. :)

Share: