dbHero – stop waiting for SQL Server

Well finally, those guys from the code Hero team came up with a tool, which puts an end to those nerv wracking procedures when it comes to taking a snapshot from a database and put it back in.

Imagine, you’re a tester or business analyst or project manager or developer or …. whatever ;)

Today, your task is it, to do some test on a large 3-tier web based system. Some of those tables in the database have millions of records in them. The whole application is quite complex, and well, you start testing the new functionality, the guys from the dev team just added.

Well, you do your tests, find some bugs (surprise, surprise ;) ) circle back to the developers and they fix them (even more surprise ;) ).

So, next day, you do your testing again. Well, you’ld like to BUT, since your tests, influenced the data of the system, some of your tests hit a different scenario. And maybe, your testing doesn’t trigger the buggy behavior anymore, or maybe, the bugs have been fixed. The point is, you don’t know for sure, as your starting point in the test system was a different than the day before…

So you need to take a snapshot of  some of those tables in the database before you start testing, and put it back in afterwards. That gives you exactly the same starting point for any consecutive tests.

Yes, MAYBE you can do this – but not if you’re talking about massive datasets like thousands of records, or ten housands, or hundret thousends… well, you get my point ;)

Using SQL insert scripts, will bring the Enterprise Manager to a halt (if not a crash) if you use tables with more than some ten thousands of records (and maybe you have a couple of those tables in your database and in that script).

The only way, you can use that SQL Insert script is to manually truncate it into smaller chunks, so the Enterprise Manager can work with it. That’s gonna take you ages – and may lead to some mistakes. Even if the Enterprise Manager swallows the whole script in one piece, it’s very, very slow.

The code Hero guys, where annoid about this, in their day to day work and created dbHero. That tool creates either SQL Inserts from SQL Server databases (no, we don’t want to use them), AND so called POWER scripts ;) The POWER scripts are an enhanced way of bulk copy scripts. They are damn fast – (code Hero says more than 50 times faster). Enhanced, why ? Well, also the standard bulk copy has got some issues ;) ) The code Hero guys, don’t reveal all of them (wonder why … ;) ) but point into the direction of encoding schemas, delimiters and string problems, among a few others…. At the same time, they even improved the already good speed of the bulk copy scripts.

Anyhow. Using dbHero makes taking those snapshots in POWER script modus a breath of fresh air ;) Instead of waiting hours or sometimes forever (when Enterprise Manager decides to go dark on you with too larg scripts ;) ), the job is done in seconds to minutes.

That saves time – and yes, you know what I’m gonna say – money ;)

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • E-mail this story to a friend!
  • LinkedIn
  • MySpace
  • Netvibes
  • ThisNext
  • TwitThis
  • Yahoo! Buzz
  • MisterWong.DE
  • Webnews.de
  • Blogosphere News

Germanys next Topmodel – ein C# Entwickler ?

Alles wird gemessen, heutzutage. Performance von Aktien, der Ölpreis……. und mein Blutdruck ;)

Bleibt die Frage, wie messe ich einen Programmierer ? Nun, wie immer bei solchen Fragen, ist die Antwort nicht einfach. Viele Eigenschaften sind die Zutaten für einen guten Programmierer:

  • Fachwissen, welches sich stetig erweitern sollte.
  • Erfahrung – mit den Jahren hat man so die ein oder andere Klippe im Programmieren umschifft, das hilft in der Praxis. Fachwissen – zugegeben, nicht unbedingt notwendig, aber wenn es vorhanden ist, dann ist es ziemlich hilfreich.
  • Kreativität: wohl dem, der nicht von Morgens bis Abends Interfaces zwischen einem Legacy Programm und einen Upstream System programmieren muß.
  • Architekturverständnis. Yep, auch das ist sehr hilfreich. Klar gibt es Software Architekten, die auch wirklich sehr hilfreich sind, aber in kleinen Projekten fehlen die vielleicht, und das ‘Schludern’ im Code von heute, wird der Wochenend-Killer in einem oder zwei Jahren ;)
  • ‘PS-auf-die-Straße-bringen’ Eigenschaft, oder das GTD Gen :) , welches letztendlich ein Mix aus den oben genannten Eigenschaften darstellt (siehe gesonderten Blog Beitrag).

Und das GTD Gen kann man messen. Na ja, ‘Kind of’.

Top Coder

Competition ArenaUnter http://www.topcoder.com erreicht man eine Plattform die sozusagen Programmier-Wettbewerbe austrägt. Zugegeben, der Registrierungsprozeß ist etwas uncool, aber es lohnt sich. In der etwas unübersichtlichen Seite von TopCoder verbergen sich diverse Betätigungsfelder. Für Programmierer und auch für Firmen, die Programmierer suchen. TopCoder bietet Wettbewerbe an, in denen Programmierer in einer Art ‘SandBox’ Aufgaben gestellt bekommen, deren Lösung mit Punkten bewertet werden.

Top Coder für Programmierer

Für Programmierer bietet TopCoder eine Plattform um ihr Wissen neutral mit anderen zu messen. Aufgaben aus diversen Bereichen wie Algorithmen, Software Architektur, Design, Development, Assembly Programming aber auch Software Testing stehen zur Auswahl.
Hatte ich erwähnt, das man des Englischen mächtig sein sollte, um bei TopCoder mitzumachen ? Alle Aufgaben, sowie die ganze Plattform sind in der englischen Sprache verfaßt. Aber Hand aufs Herz. In diesem Geschäft, sollte man sowieso gut Englisch sprechen, oder ?Aufgabe und Lösung

Hat man sich einmal angemeldet und sich einen Bereich ausgesucht (z.B. Assembly Development), dann kann man sich Aufgaben aus vergangenen Wettbewerben anschauen. Folgende Programmiersprachen stehen dabei zur Verfügung: Java, C++, C#, VB.net (Python in Vorbereitung).
Es ist nicht notwendig, jedoch sehr empfehlenswert, die Programmiersprache auf dem heimischen Rechner installiert zu haben, um so in der eigenen Entwicklungsumgebung zu coden, und dann das Ergebnis in TopCoder zu kopieren. Man kann auch sofort im TopCoder Fenster coden.

Grundsätzlich gibt es hier 2 Kategorien: Wettbewerbe (Contests) und Trainings (Practise Rooms).

In den Practise Rooms kann man sozusagen abgelaufene Wettbewerbe nachprogrammieren. Dabei werden verschiedene Schwierigkeitsstufen zur Auswahl gestellt. Je nach Schwierigkeitsstufe, kann man unterschiedliche Punktzahlen erreichen. Tipp: erst mal mit einer kleinen Stufe anfangen ;) )

Wettbewerbe starten weltweit zur gleichen Uhrzeit. Dem Teilnehmer wird dann die Problemstellung geschildert und los gehts. In der eigenen Programmierumgebung starten und kompilieren und wenns ohne Fehler läuft, den Source Code per copy & paste ins Top Coder Fenster pasten :) Achtung, jeder fehlerhafte Lauf im Top Coder Fenster kostet am Ende wertvolle Punkte … Am Ende des Wettbewerbs kann man sich so mit anderen Teilnehmern aus der ganzen Welt vergleichen. Da es bekanntlich viele Wege nach Rom gibt, gibt es auch verschiedene Lösungsansätze und selbst Super-Programmierer habe ich ob der Einfachheit und Kürze der anderen Lösungen schon erstaunt und ehrfürchtig gesehen ;)

Top Coder für Firmen

System TestFür Firmen bietet diese Plattform ungeahnte Möglichkeiten. So ist es durchaus denkbar im Rahmen eines Vorstellungsgesprächs einen Bewerber bzw. eine Bewerberin ein Problemfall live in TopCoder programmieren zu lassen. Es ist somit ein neutrales Medium mit neutralen Fällen in einer neutralen Umgebung. So eine Übung dauert vielleicht 20-30 Minuten, aber es zeigt oft, ob neben den sehr guten Zeugnissen auch die Praxis vorhanden ist.

Natürlich sollte solch ein Test nur ein Mosaikstein im Bewerberprofil sein. Aber man kann doch einiges feststellen, da es sich im Allgemeinen in solch einem Gespräch dann um eine Streßsituation handelt. Also, liebe Arbeitgeber, bitte auch berücksichtigen dass in solch einem Umfeld auch Top Programmierer manchmal einen Black-Out haben können ;)

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • E-mail this story to a friend!
  • LinkedIn
  • MySpace
  • Netvibes
  • ThisNext
  • TwitThis
  • Yahoo! Buzz
  • MisterWong.DE
  • Webnews.de
  • Blogosphere News

Commodore Kinder

Tage der Kindheit, Limonade und Romantik: und auf dem Fernseher flimmert der vielen so vertraute blaue Startbildschirm des Commodore C=64. Ja, man kann sagen: ich bin ein Commodore Kind. Unbetrübt schaute man sich den Bluescreen an und konnte direkt nach dem Einschalten mit den ersten Programmierversuchen starten. Dass man auch richtiges “Computer Kung Fu” auf dem Commodore konnte, zeigten eindrucksvolle jene Entwickler, die sich in der sog. Demoszene Ruhm und Ehre mit Spezialeffekten verschafften, die für einen kleinen 8-Bit Computer eigentlich technisch undenkbar waren.

Nicht nur, dass er der meistverkaufte Home-Computer aller Zeiten ist, wahrscheinlich ist er auch der am häufigsten emulierte Kleinrechner. Mittlerweile gibt es auch schon eine erste Beta-Version eines C=64 Emulators für Microsoft Silverlight. So bleibt zumindestens auch in der Zukunft nicht vergessen, dass ein blauer Bildschirm einmal eine ganz nette Bedeutung hatte :-)

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • E-mail this story to a friend!
  • LinkedIn
  • MySpace
  • Netvibes
  • ThisNext
  • TwitThis
  • Yahoo! Buzz
  • MisterWong.DE
  • Webnews.de
  • Blogosphere News

Internet voll Dinge

Das “Internet der Dinge” war eines der kurzlebigen Meme auf der diesjährigen CeBit.

Und nachdem ich ein wenig darüber sinniert habe muss ich doch auch ein wenig schmunzeln, wenn ich mir vorstelle, dass mein Kühlschrank seinen Inhalt via RSS Feed an den Discounter meines Vertrauens bloggt, damit, falls die Schinkenwurst zu Neige zu gehen droht, auch wirklich welche da ist, wenn ich am Samstag wieder mit meiner ec-Karte bezahle. Oder wie mein Wecker morgens die Kaffeemaschine zum Vorheizen informiert, fahrende Autos auf der Autobahn automatisch einen Stau identifizieren oder mir meine Toilette eine umfassende Ernährungsberatung per E-Mail sendet.

Irgendwann kommt dann bestimmt auch der Tag, wo ich nach Hause komme, alle Herdplatten aktiviert sind, die Heizung auf 45° reguliert ist und die Toilettenspülung dauer aktiviert ist, weil ein Hacker es geschafft hat, das Internet der Dinge nach seinem Gusto umzulenken. Da bekommt der Begriff Firewall eine ganz neue Bedeutung!

Alles in allem gibt es sicherlich sinnvollere Anwendungen für miteinander vernetzte, kleine autarke Module: Logistik im größeren Stil als das private Einkaufen, atmende industrielle Produktionen und andere supply-chain Mechanismen. Ob das Internet der Dinge auf Basis der umstrittenen RFID Chips wirklich auch gesellschaftlich durchdrungen sein wird, steht auf einem anderen Blatt.

Über Sinn und Unsinn hat man sich jedoch auch schon bei den stinkenden pferdelosen Kutschen gestritten. Es bleibt abzuwarten, wie sich Menschen mit der scheinbar kopflos werdenden Technik zurecht finden werden.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • E-mail this story to a friend!
  • LinkedIn
  • MySpace
  • Netvibes
  • ThisNext
  • TwitThis
  • Yahoo! Buzz
  • MisterWong.DE
  • Webnews.de
  • Blogosphere News