[BASH] U3 Version von Firefox erstellen
So wie versprochen hier das BASH-Skript um unter Linux eine portable Version von Firefox zu erstellen. Das Ganze ist relativ einfach und benötigt nur das jeweilige 7-Zip Paket für die gewählte Distribution und wget für den Download. Wget sollte eigentlich bei jeder ernstzunehmenden Distribution beiliegen und bereits installiert sein.
In Zeile 17 muss dann nur der Ort für die Resourcen (Loader, Icon usw) angegeben werden.
1 | SrcDir="/home/epyx/Dokumente/PortableApps/Firefox" |
Nach dem das Skript mit chmod ausführbar gemacht wurde, wird mit der Übergabe der gewünschten Release-Nummer automatisch alles herunter geladen, entpackt und für eine U3-Version manipuliert. Das war es dann auch schon, und im gleichen Verzeichnis sollte eine U3-Version zu finden sein.
[Qt] QThreads
Threads sind im Allgemeinen sehr nützlich, da man sehr schön zeitintensive Aufgaben auslagern kann. Leider sind sie aber genauso tückisch wie praktisch.
Einige Punkte die sich nach und nach herausgestellt sind und zu mindestens bei mir zum Erfolg geführt haben, sind diese :
- Mutexe für kritische Funktionen verwenden
- den Thread bei der Initialisierung starten und von "Außen" steuern
Alles andere führte bei mir entwder zu einer blockierten GUI oder zu einem abnormalem Programmverhalten.
[Electronics] Arduino verschickt Wake-On-LAN Pakete
Nachdem ich ja im Einführungspost es ja angekündigt hatte, hab ich es nun auch in die Tat umgesetzt und mein neues Arduinoboard um die Funktionalität erweitert Wake-On-LAn-Pakete (WOL-Pakete) zu verschicken. Prinzipiell hab ich nicht viel verändert, da in der Bibliothek zu meine EtherShield schon so gut wie alles drin war. Es musste nur noch eine Funktion her, die die Magic-Packets zusammenbaut und anschließend auch versendet.
Kombiniert mit dem rudimentären Webinterface aus den Beispielen, könnte nun an jede x-beliebige MAC-Adresse ein solche Paket verschickt werden. Ein weitere Vorteil der Mikrocontroller-Lösung ist auf jeden Fall, dass man ARP-Pakete ohne root-Rechte erzeugen und verschicken kann.
Versuche das Ganze als Applikation für Linux und Windows zu realisieren, scheiterten oftmals daran das unter Linux root-Rechte erforderlich waren oder man unter Windows nicht weit genug im OSI-Modell herunterkam um ARP-Pakete (diese können so gut wie garnicht von Firewalls geblockt werden) zu erzeugen.
Ein kleines Tool, realisiert mit Qt gibt es indes schon, allerdings basiert diese Lösung auf UDP, was natürlich keine Empfangsgarantie liefert und darüber hinaus noch eine IP-Adresse benötigt.
Da mein EtherShield auf dem ENC28J60 basiert und dieser wohl nicht dem Standard-Ethershield von Arduino.cc entspricht sei darauf hingewiesen, dass die Änderungen bzw. ein Übernehmen des Patches dort nicht funktionieren werden. Allerdings sollte es auch dort kein Problem sein so etwas zu implementieren.
Ardunio EtherShield WOL patch - Patch for Arduino EthernetShield Libary (bases on enc28j60)[Electronics] Arduino Duemilanove eingetroffen
Wie kürzlich beschrieben, hatte ich ein Ardunio Board + EthernetShield bestellt. Nun dieses ist am Donnerstag eingetroffen und ich konnte bisher schon ein wenig damit spielen. Um das Ganze auf Funktionstüchtigkeit zu testen habe ich mir natürlich zuerst einmal die Processing-IDE installiert (ging recht schleppend, aber nun läuft sie) und mir ein paar Beispiele angesehen. Durch die sei einfach Kombination des LED-Examples und eines Mini-Webservers konnte ich dann beide PCBs testen. Beide funktionierten sehr gut und nun kann ich eine LED per Ethernet schalten und gleichzeitig einen LDR-Wert auslesen.
Schon recht cool, was man mit ein wenig Copy+Paste erreichen kann. Mit einem "normalem" AVR würde dies wohl wesentlich länger dauern, aber Arduino ist ja auch eine Prototyping-Plattform.

