Posts tagged ‘test’

 

Codebender

The folks at codebender.cc have had a great idea: What if you could programm your Arduino from within a browser? What benefits could the cloud provide?

Actually, a lot!

Starting with a real platform independence (programming on an iPad and deploying over the internet), an advanced editor, better library integration, and a lot more up to all the sharing opportunities.

Real good stuff!

I’m aware, Arduino is targeted at artists, makers and hobbyists. As a professional software developer I’m massively missing something that helped me write better code anywhere but with Arduino. That is, because the Arduino tool chain is missing it: Unit Tests.

10 years back some friends and I developed a tool called JUnitDoclet. It generates the skeletons of unit tests based on the structure of the production code. Cool stuff, but for Java only. Short time later, at a customer project, I’ve done similar things for a C project. Today unit tests are state of the art. If you don’t use them where they are available, you are IMHO not a professional at all.

Now, what if codebender would introduce unit testing to the tool chain? Wouldn’t that be great?

What do you think?

Agile Times Square

Agile Times Square

Laufschrift zur Statusanzeige Deines Build-Servers. (Derzeit nur zur Information. Dieses Produkt werden wir demnächst in unseren Shop aufnehmen.)

Vorteile dieser Lösung:

  • Es wird kein extra PC benötigt.
  • Dezentral aufstellbar (Es ist keine physische Nähe zum Build-Server nötig.)
  • Konfigurierbar (über Micro-SD-Karte)
  • Adaptierbar (OpenSource Hard- und Software)

Prinzip:

Moderne Build-Server wie TeamCity oder Jenkins stellen einen Feed bereit, der für jedes Projekt nur den letzten Eintrag enthält. Über eine Ethernet-Schnittstelle holt ein Arduino den RSS-Feed vom Build-Server. Auf diese Weise kann der Arduino den Status jedes einzelnen Projektes ermitteln und auch einen Gesamtzustand daraus ableiten. Woher der RSS-Feed geladen wird, wie oft er abgefragt wird und wie das Ergebnis dargestellt wird, … alles ist konfigurierbar.

Das Paket umfaßt:

  • eine LED-Matrix 32×16, 3mm, Rot-Grün
  • ein TimeSquare-Shield (Bindeglied zwischen Arduino und LED-Matrix)
  • ein Arduino Ethernet (RJ45; vorprogrammiert mit TimesSquareSketch)
  • eine Micro SD-Karte mit SD-Adapter
  • ein Netzteil 7,5V 1A (für die Standard-Software ausreichend, weil die nie alle LEDs gemeinsam einschaltet)

Die Konfiguration wird auf einer Micro-SD-Karte gespeichert und ist somit ohne Neuprogrammierung des Arduino-Ethernet anpassbar.

Achtung!

Wenn Du selbst die Arduino-Programmierung anpassen möchtest, benötigst Du zusätzlich einen USB2Serial Adapter, der NICHT Bestandteil dieses Paketes ist.

Natürlich stehen mehrere Visualisierungsvarianten zur Auswahl.

  • Times Square (Querformat)
    Die Projektnamen laufen als Laufschrift durch und werden je nach Zustand in rot oder grün dargestellt. Über und unter der Laufschrift zeigen Balken den Gesamtzustand an.
  • Ampel Rot/Gelb/Grün (Hochformat)
  • Ampel Rot/Grün (Hochformat)

Zukünftig sollen auch weitere Visualisierungen enthalten sein. Wir sind da auf Eure Anregungen gespannt. Hier schon einmal unsere Ideen:

  • Hour Glass (Hochformat)
  • Matrix (Querformat)
  • Smiley (Hochformat)
  • Smiley (Querformat)
  • Pacman (Querformat)
  • Heart Beat (Querformat)

Bitte sieh Dir auch die Build-Ampel an. Sie ist einfacher aufgebaut und deshalb auch preislich interessanter. Aber das Prinzip ist gleich: Ein Arduino Ethernet liest den RSS-Feed des Build-Servers, wertet ihn aus und stellt das Gesamtergebnis dar.

Aber so eine LED-Matrix mit Netzanschluss kann noch so viel mehr leisten. Wir sind auf Eure Projekte gespannt. Bitte schickt uns Links zu Euren Sketches.

  • Wie wäre es z.B. mit einem REST-Interface?
  • Oder eine Netzwerk-Status-Anzeige?
  • Oder, oder, oder…

Build-Ampel

Build-Ampel

[singlepic id=148 w=320 h=240 float=right]Continuous Integration ist in der IT-Welt sehr gut akzeptiert. Das objektive Feedback einer unabhängigen Instanz zeigt Integrationsprobleme auf einer Webseite.

Aber wer schaut schon ständig auf die Webseite? Gluecklicherweise bieten moderne Build-Server auch einen RSS-Feed, der von jedem Rechner im Netzwerk abgefragt werden kann und genau da setzt unsere Build-Ampel an:

Ein Arduino-Ethernet lädt den RSS-Feed, analysiert ihn, ermittelt den Gesamtzustand über alle Projekte und schaltet LEDs in den Ampelfarben. Die Konfiguration erfolgt über einintegriertes Webinterface. Man muss den Microcontroller also nicht umprogrammieren. Aber das Programm ist OpenSource, man kann, wenn man will.

Wer mehr will, kann auch unser Agile Times Square einsetzen. Auch da analysiert ein Arduino Ethernet den RSS-Feed Aber die Visualisierung übernimmt eine mehrfarbige LED-Matrix. Sieh selbst, was man damit alles machen kann.

(Derzeit nur zur Information. Dieses Produkt werden wir demnächst in unseren Shop aufnehmen.)

Hardware für agile Teams

Agile Softwareentwicklung ist Stand der Technik und es existiert viel Software, um die Arbeit agiler Teams zu unterstützen. Das reicht von sehr ausgereiften Test-Frameworks für alle Arten von Tests über moderne IDEs, die sehr umfangreiche Refactoring-Unterstützung haben, bis zu Build-Server-Systemen (Continuous Integration, Continuous Deployment), die einem Team kontinuierlich Feedback zum Zustand der Software geben.

Jetzt kommt endlich auch die Hardware ins Spiel. Als Basis dient dabei die Arduino-Plattform, die flexibel, preiswert und OpenSource ist.

Agile Teams können fertige Systeme kaufen und mit der kostenlos bereitgestellten Software betreiben oder diese Software selbst anpassen. OpenSource ist ein hervorragendes Konzept.