Archiv des Autor: Carsten

Englische Zeitenübersicht

Wer glaubt, englische Zeitformen sind ein Buch mit sieben Siegeln, darf sich hier eines Besseren belehren lassen. Denn vieles ist einfacher und logischer als es auf den ersten Blick scheint.
Daher haben wir uns einmal die Zeit genommen und eine Übersicht über alle englischen Zeiten erstellt.

Das Dokument ist als CC BY-NC-SA 3.0 zur persönlichen Verwendung kostenlos und darf beliebig weitergegeben werden.


Englische Zeitenübersicht

Weiter lesen

Wie funktioniert ein Computer?

Wenn man mal wissen will, wie eigentlich ein Computer funktioniert, kann man sich ausgiebig mit langatmiger Fachliteratur beschäftigen, die in epischer Breite alle Aspekte eines Prozessors beschreibt. Man muss aber nicht.

Man kann auch den spielerischen Ansatz nehmen. Das Browsergame NandGame startet bei einem einzelnen NAND-Gatter. Hieraus baut man sich nach und nach alle notwendigen Komponenten für einen modernen Mikroprozessor zusammen und kommt einem echten Prozessor immer näher. Dabei lernt man einiges über Prozessoren und ihre Funktionsweise. Probiers doch einfach mal aus auf http://nandgame.com/.

Weiter lesen

Javascript, Typescript, Webpack und neues im Web

Während man sich in den letzten Jahren auf Webseiten meist mit JavaScript in einer sehr einfachen Art begnügte, sind in der letzten Zeit unheimlich potente (und meist damit auch komplexe) Erweiterungen erschienen. Beginnend mit dem Angular-Framework, das manche mögen und andere hassen, hat sich die Webseiten-Programmierung immer weiter der klassischen Softwareentwicklung angenähert. Der erste Schritt waren die Module, die beispielsweise via AMD oder RequireJS geladen wurden und eine Kapselung hinsichtlich der Daten und des Programmcodes ermöglichten. Dann kam Webpack, das mit dem Tool „babel“ die Möglichkeit bot, neueste Programmiertechniken bei der Entwicklung zu verwenden und es ähnlich wie bei einem Compiler zu einem kleinsten gemeinsamen Nenner zu „transpilen“. Zuletzt hat die Einführung von Typescript die Möglichkeit einer Statischen Codeanalyse eröffnet, damit Fehler schon zur Entwicklungszeit und nicht erst anhand von Meldungen in der Error-Console aufgedeckt werden können.

Ich werde in der nächsten Zeit zu all diesen Themen ein wenig schreiben und dies mit ganz vielen Codebeispielen ergänzen. Dabei gehe ich wenig bis gar nicht auf Dinge wie HTML5, klassisches JavaScript, Programmier-Basics und Webserver-Konfiguration ein, denn zu diesen Themen gibt es mehr als genug Quellen im Netz. Mir geht es eher darum, wie jemand, der bereits die klassische Webentwicklung kennt, möglichst schnell in diese neue Welt eintauchen kann und sie sich zu Nutze machen kann.… Weiter lesen

Prototyp fertig

img_20161119_172203 Nachdem alle Bauteile hier eingetrudelt sind, hat Tom nun den ersten Prototyp fertig aufgebaut. Die Software ist ebenfalls fertig und verfügt über ein nahezu unerschöpfliches Repertoire von Weihnachtsliedern. Am 3. Dezember findet vermutlich das kollektive Zusammenlöten der restlichen Bäume statt.

Apropos restliche Bäume: Die zweite Ladung von Platinen ist auch inzwischen hier eingetroffen. Qualitativ sind die naja, aber für die Bäume reichts allemal. Trotzdem werde ich den ersten Lieferanten in Zukunft nehmen, denn da waren Welten dazwischen.
img_9834r

Weiter lesen

Platinen eingetroffen

Heute ist die erste Ladung von 10 Platinen eingetroffen. Auf Grund der regen Nachfrage auf der Arbeit befindet sich aber derzeit eine weitere Ladung in Produktion und wird Ende November eintreffen. Nach erster Begutachtung sehen die Platinen trotz der geringen Produktionskosten sehr ordentlich aus und können durchaus mit WE Direkt mithalten. Der Bestückungsdruck ist offensichtlich per Siebdruck auf die Platine gekommen (man achte auf den extrem hohen Auftrag beim QR-Code), der Code wird aber problemlos erkannt.
img_20161014_162436

Weiter lesen

In der Weihnachtsbäckerei….

Wir haben zwar noch nicht Weihnachten aber da wir bereits Spekulatius in den Läden finden, dachte ich mir, man könnte sich mal Gedanken über ein schönes Weihnachtsprojekt machen. Gesagt getan. Hier die Rahmenbedingungen:

  • Ein Bastelprojekt, das danach nicht in der Ecke landet
  • Spaß für die Kids
  • Irgendwas technisches
  • max. 10€ Kostenrahmen
  • Da zudem mein mittlerer grade voll in einem Elektronik-Bastelprojekt „Wir bauen ein Radio“ aufgeht, vielleicht irgendein Anschlussprojekt hierzu.

Nach kurzer Überlegung habe ich mich an ein altes Praktikantenprojekt erinnert: Der LED-Weihnachtsbaum. Damals noch mit der Platinenfräse hergestellt und mit einem ATMEGA16-8 Controller bestückt, könnte man das ganze ja einmal auf einen aktuellen Stand bringen…..

baum1 baum2 baum3_0-preview

Fortsetzung folgt…

Weiter lesen

FHEM fit für den Sommer machen

Mit FHEM kann man so einige sinnvolle Funktionen verwirklichen. Bei sommerlichen Temperaturen von fast 40°C möchte man natürlich das Rollo herunterfahren, sobald die Sonne auf das Fenster knallt. Hierfür braucht man einen Heizkörperthermostat und einen Rolladenaktor.

Zu der Zeit, wenn die Sonne typischerweise auf das Fenster scheint, überprüft man die Temperatur im Raum. Ist diese über einem Schwellwert, fährt man das Rollo herunter. Das zugehörohe FHEM-Kommando lautet (alles in einer Zeile!):


define MeinZimmer.Rollo.Sonnenschutz at *14:55 { if(ReadingsVal("MeinZimmer.Heizung_Weather", "state", "") 22.0) {fhem("set MeinZimmer.Rollo pct 50")}}

Hierbei ist MeinZimmer.Rollo der Name des Rolladenaktors und MeinZimmer.Heizung der Name des Heizkörperthermostats. Im obrigen Beispiel wird um 14:55 an jedem Tag die Temperatur überprüft. Bei mehr als 22.0°C wird das Rollo dann heruntergefahren.

Weiter lesen

RaspberryPI + Display auf Hutschiene

IMG_7739Dass der Raspberry PI der am Besten geeignete Server für eine Hausautomatisierung ist, steht außer Frage. Mir fehlten jedoch bisher 2 Sachen: Die Montagemöglichkeit im Schaltschrank und eine vernünftige Statusanzeige. Mit einem kleinen Wochenend-Bastelprojekt habe ich dem nun Abhilfe geschaffen.

Das verwendete Display ist ein DOGL128 von Electronic Assembly mit 128×64 Pixel Auflösung. Dieses ist mittels SPI Schnittstelle an die GPIOs vom Raspberry PI angeschlossen und wird mit einem kleinen C-Programm mit Daten versorgt. Das Display kann man dann beispielsweise von FHEM oder LCDPROC ansteuern und so den aktuellen Status im Haus oder Fehlermeldungen darstellen. Auch grafische Ausgaben sind möglich.

Um das ganze nachzubauen, braucht ihr:

  • Hutschienengehäuse für den Raspberry (7,95€ derzeit). Bitte achtet darauf, dass ihr das richtige Gehäuse für Eure Variante kauft. Inzwischen gibts ja den Raspberry PI B, Raspberry PI B+, Raspberry PI 2 B und noch einige mehr.
  • Lochrasterplatine (mindestens 25×20 Löcher)
  • DOGL128E-6 Display (oder ähnlich, am besten aber ein Positiv-Display, das lässt sich auch ohne Hintergrundbeleuchtung ablesen) (15,60€ derzeit)
  • Hintergrundbeleuchtung (am Besten grün oder Amber) (3,85€ derzeit)
  • Ein paar 1µF Keramikkondensatoren in 0805 Baugröße. Andere Kerkos, z.B. bedrahtete, gehen auch, aber ihr müsst das Layout dann anpassen.
  • 3 Stück 56 Ohm Widerstände in 0603 oder 0805 Baugröße für die Hintergrundbeleuchtung.
Weiter lesen

SQL Injection Attack mit Hilfe der Stadt, Teil 2


Im Dezember 2008 hatte ich unter SQL Injection Attack mit Hilfe der Stadt darüber berichtet, dass ich mit unserem Straßennamen “ Auf’m Diek “ bei einem Internethändler auf nicht unerhebliche Probleme gestoßen bin.

Für diejenigen, die nicht viel mit SQL am Hut haben, will ich mal kurz erläutern, was damals passiert ist: Bei SQL, das ist eine Datenbanksprache, die auf den meisten Webseiten verwendet wird, werden Texte in Hochkommatas eingeschlossen, um zu kennzeichnen, wo der Text anfängt und wo er endet. Außerhalb der Hochkommatas stehen Befehle, was die Datenbank machen soll. Ein typischer Befehl sähe also so aus:

SELECT address FROM customer WHERE name='Carsten';

Soll nun der eigentliche Text selbst ein Hochkomma haben, so muss man es speziell kenntlich machen, der Experte sagt „escapen“. Dies erfolgt bei SQL durch einen vorangestellten Backslash:

SELECT address FROM customer WHERE name='Carsten\'s Name';

Macht man das nicht, passieren mehr oder minder lustige Dinge: Die Datenbank kann nicht mehr unterscheiden, wo der Text endet und der nachfolgende Befehl endet. Randall Munroe von XKCD hat die möglichen Effekte in einem Comic sehr anschaulich beschrieben:

Quelle: XKCD, Oktober 2007

Seitdem meinem vorhergehenden Posting sind fast 7 Jahre vergangen. SQL Injection Angriffe sind inzwischen selbst in der Breiten Öffentlichkeit angekommen und für jeden seriösen Entwickler ist es inzwischen Standard, seine Anwendung auf solche Schwachstellen zu überprüfen.… Weiter lesen