Ajax test

 Naja für einen schnellen Versuch, gar nicht schlecht :-)

An den dreien bin ich gescheitert:

CropperCapture[69]

CropperCapture[67]


Technologie Trends

Technologie Trends in 15min. Sehr sehenswertes Video von der „Web 2.0 Submit“ 2007. Krasse Frau.

 

Hier gibt’s die 49 Slides

[via Andrej] :-)


UnitTesting: Mocking vs. Datenerzeugung

Eines der größten Themen wenn es um Unit-Testing geht, ist das Mocken von Objekten. Die Grundidee beim Mocken ist fein granuliertes Testen zu ermöglichen, in dem Stellvertreter Objekte erzeugt werden, die die Bedürfnisse des Testfalls befriedigen. Hierfür gibt es in der .NET Welt eine Reihe von Frameworks die dies ermöglichen. Die bekanntesten sind wohl NMock, RhinoMocks und das Mächtige TypeMock.NET.

Seit mehreren Jahren bin ich nun Test Infected, was mein Entwicklerleben deutlich einfacher macht. Im Schnitt liegt mein Test-Coverage für die Businessschicht bei über 80%. Trotz dessen sind Mocking Frameworks noch nicht wirklich in meinem Toolset gelandet. Stattdessen arbeite ich mit Setup Erzeuger Klassen, die die Businessschicht verwenden um einen definierten Zustand zu erzeugen:

CropperCapture[61]

Ein Nebenprodukt dieser Erzeuger Klassen ist, dass sie bei der Entwicklung verwendet werden können um Testdaten zu erzeugen, wieder und wieder. Ein weiterer Pluspunkt ist, dass die API von Businessobjekten durch vermehrte Verwendung „Benutzerfreundlicher“ wird.

Natürlich hat dieser Ansatz Grenzen. Testfälle müssen schnell sein, sonst werden sie nicht regelmäßig aufgerufen. (Nicht nur) Entwickler warten nicht gerne. Die Verwendung von externen Ressourcen für Testfälle fällt also flach. (Es sei denn die Unit-Test Umgebung soll auch für Integrationstest herhalten). Da externe Resourcen sowieso mit einem Proxy versehen gehören, ist das Erzeugen von Mocks (auch wieder ohne MockFramework) leicht. Hier sind IoC Container großartige Helfer.

Der Gebrauch von Datenbanken sollte für das Erzeugen eines definierten Zustands unbedenklich sein. Eine Entwicklerdatenbank sollte mehr als 1000 CRUD Operation in der Sekunde verdauen können, was auch das Erstellen von komplizierten Testfällen nicht behindern sollte. Und wenn die Laufzeit der Test auf über 3sec ansteigt, kann man diese auch gruppieren und nur eine Teilmenge der Tests ausführen. Was aber frühestens bei 100 Tests, eher deutlich später eintreffen sollte.


Wenn Google Suchmaschienenoptimiert wäre

CropperCapture[59]

Hier gibt es die echte Seite :-)


Arbeitsoptimierung als Spiel

CropperCapture[58]Seriosity“ möchte Unternehmens-Produktivität spielerisch erhöhen und übernimmt Konzepte aus Multiplayer Spielen um Arbeitsprioritäten zu gewichten und zu optimieren. Alltagsökonomie wird Bunt und kann Spaß machen. 

Der Ansatz, Alltag als Spiel zu begreifen oder zu betreiben ist sehr verlockend. Gute Computer-Spiele bieten einen endlosen Strom von erreichbaren Aufgaben ohne zu überfordern. Ein Zustand der wenn beim Arbeiten erreicht, zugleich befriedigend als auch produktiv ist.


Amazons One-Click Patent abgelehnt

friendship-patentet

Amazons berühmtes “One-Click” Patent beschreibt die Möglichkeit ein Produkt mit „einem Klick“ zu erwerben, durch das speichern der Kreditkarten-Informationen. Ein unglaubliches „Trivial Patent“, das 1997 angemeldet und am 28 September 1999 genehmigt wurde. Die Idee ist gut, aber die Erfindungshöhe ist gering, wenn man denn von einer Erfindung sprechen mag.

Das Patent wurde nun zu großen Teilen zurück gewiesen. Wobei die Begründung „Prior Art“ aus meinem sehr persönlichem Rechtsverständnis falsch zu sein scheint. Es handelt sich um ein Trivial Patent, das nichts weiter erreichen soll als Wettbewerber zu behindern.

Weitere sehr bedenkliche Trivial-Patente:

  • Pay per Use
  • Akustische Datentransformierung (Basis von MP3)
  • Konvertieren von Dateinamen von Win95 zu WinNT
  • Default Feedback
  • ..., leider

Links:


Von der Idee zur Webseite in 2:20h

Es lebe die Informationsrevolution. Tausende von wunderbaren OpenSouce Webanwendungen aus allen nur erdenklichen Segmenten warten darauf verwendet  zu werden. Ob ein Content Management System mit hunderten von Komponenten, eine Enterprise fähige Shop-Lösung oder eine Project Management Werkzeug für Entwickler inklusive Versionskontrolsystem Zugriff alles ist verfügbar.

Fast-and-FuriousDoch wie lange dauert es von der Idee, bis zur Umsetzung? Hier ein einfaches Beispiel. Wir benötigen eine Domain, 2 Email-Accounts, eine Präsentationseite mit CMS Eigenschaften, einen Blog und wir wollen alle Inhalte editieren können. Hier die Zeiten:

 

  • Domain registrieren 10min.
  • Emails einrichten 10min.
  • Domain auf Server einrichten 5min
  • OSS Lösung auf Server installieren 30min
  • Anpassung der Lösung: Strukur und Skin anpassen, Übersetzungen pflegen. 1h
  • Benachrichtigungsemail verfassen 25min
  • Fertig :-)

Von der Anforderung bis hin zur fertigen Lösung in 2:20h.

Na klar, das Scenario ist deutlich das einfachste was ich je erlebt habe. Alles funktionierte „Out-Of-The-Box“. Der Server war schon vorbereitet. Die Datenbanken schon da. Die Backuplösung schnurrt von allein. Firewall und IP-Filter sind eingerichtet. Das OSS Produkt kann alles, was gebraucht wurde und war schon bekannt. Eines der Templates hat für den Zweck vollkommen ausgereicht. Das Logo hat gepasst. Und noch war keine Zeit für Support anfragen :-)

Achso und natürlich hat es 2 1/2 Stunden gedauert bis die Domain verfügbar war, aber ich zähle das jetzt mal nicht als Arbeitszeit.

Insgesamt eine schöne Erfahrung.


PHP mit IIS, Roundcube als IMAP Client

CropperCapture[50] Für einen Kunden habe wir einen Webmail Client auf unserem Server installieren müssen. Nach einer kurzen Suche viel die Wahl auf Roundcube. Eine PHP Lösung. Auf die schnelle lies sich keine gute RoR oder ASP.NET Lösung finden. Roundcube macht optisch einen guten Eindruck, setzt AJAX an den richtigen Stellen ein und für unsere Kunden ist das Beste gerade gut genug :-)

Die Installation verlief dank dieses wunderbaren Tutorials relativ schmerzfrei. Dann fehlten noch die entsprechenden IP-Filterregeln auf dem Webserver – und ab heute bieten wir unseren Kunden bei Bedarf auch einen IMAP Client an :-)


DETD - Developers for Ethical Treatment of Databases

image Nach einem Blick auf die Tabellenstruktur von Microsofts CRM (müsste wohl Dynamics gewesen sein), vermutet Ayende, dass grob gegen das humanitäre Völkerrecht verstoßen wurde und möchte arme Datenbanken (und Entwickler) schützen. Er denkt über die Gründung der DETD - "Developers for Ethical Treatment of Databases" nach :-) Wir wären dabei!


Skalierbares Windows-Hosting

windows hosting  Es geschah an einen Dienstag. Die neue Buzzword-Ready Web 2.0 App war am Freitag zuvor nach 4 Monaten harter Arbeit online gegangen. Zur Feier des Tages wurde abends beim Italiener eine Flasche Wein geordert. Es war der erste freie Abend nach vielen Wochen. Der Wein wirkte sofort, für untrainierte ist ein Rausch preiswerter und preiswert ist gut, wenn man sich darauf einstellt ein junges Produkt langsam am Mark zu etablieren und jeder ausgegebene Euro der Firma gehört, nicht einer Bank oder einem Venture Capitalisten.

Die ersten 4 Tage waren ruhig verlaufen. Wie erwartet registrierten sich nur wenige Benutzer, denn trotz automatisierter Test und einer ausführlichen Analyse wie sich das Baby unter Last verhalten würde, sollte sich die Anwendung im Live-Betrieb erstmal bewähren.

Es war tägliche Routine, etwas gelangweilt arbeitete einer der Entwickler die letzten Tage von Mashable und Techcrunch auf. Keine großen Highlights, das übliche. Die meisten der 275 ungelesenen Posts landeten nach einem kurzen Blick auf den Betreff und Autor im Papierkorb. Genau wie „Special Interest Trading Platform Launches“ … moment … „Special Interest Trading Platform“  ... (??!) ... STRG-Z beförderte den gerade gesehenen Eintrag aus dem Papierkorb wieder zurück in die aktuelle Ansicht. Es war 23:45Uhr.

Von den 900 000 Techchruch Lesern hatten 14 325 die junge Seite innerhalb der ersten 30 Minuten aufgerufen und 1500 neue „Special Interest Trading Platforms“ aufgesetzt. Ca. 15-20 davon waren wohl mehr als ein Test. Der Web-Server schnaufte, hielt sich aber mit 25% Prozessorleistung noch ganz gut, der Datenbankserver lief mit 80-90% Auslastung und war am Limit.

Um 1:17 hatte Mashable und wohl 3 Dutzend anderer Blogger das Techcrunch Post aufgegriffen und Ihrerseits über die neue Handelsplatform berichtet. Ab 1:26 lies sich der Web-Server nicht mehr via http erreichen. Mit sehr viel Geduld gelang es dann letztlich um 3:40 die Anwendung durch eine freundlich Dankesseite ersetzen. Die nächsten Wochen versprachen wunderbar zu werden.

......................................................................

Okay genug feuchte Träume.

Flexiscale bietet skalierbares Hosting. Das Versprechen ist, das man innerhalb von wenigen Minuten von einem Rechner auf einige tausend Rechner aufrüsten kann. Doch statt wie Amazon EC2/S3 nur Linux zu unterstützen, bietet Flexiscale Windows 2003 Server und Windows SBS an. Windows SBS ist insbesondere interessant, da es eine MS-SQL Server Lizenz bundelt. (Wobei man die sich genaue Lizenz des SBS noch mal genauer anschauen müsste um zu entscheiden ob sich Windows-SBS auch legal für Hosting einsetzen lässt.) Die Preise sind absolut konkurrenzfähig. Wir werden uns das definitiv genauer anschauen. Ich kann kaum erwarten den Zugang zu erhalten :-)

[via Techchrunch]