Die Cloud ist kein Spielzeug
Dienstag, 27. Juli 2010, 20:10
Abgelegt unter: Microsoft | Tags: , , , , , ,

Windows Azure ist leider kein Spielzeug. Denn das Pricing Modell ist so undurchsichtig, dass man als Dev jegliche Lust verliert überhaupt das Spielen damit anzufangen. Nicht nur, dass es unglaublich schwierig ist, im Voraus abzuschätzen, wieviel Geld man verbraten würde, wenn man eine “produktive” Anwendung in die Cloud hebt, es gibt auch keinen Limiter oder eine Notbremse, um  die Kosten irgendwie zu begrenzen, wenn man nur mal sehen will, was geht.

Zum Vergleich: Wenn ich bei meinem Hoster Webspace anmiete, oder bei meinem Telefonanbieter einen DSL Anschluss will oder einen Datentarif für’s Handy, dann will ich unter Umständen gedeckelte Kosten. Im Gegenzug kann ich damit rechnen, dass meine Leitung gedrosselt wird, wenn ich nach den ersten Tagen des Monats fast das halbe Internet übers Mobiltelefon heruntergeladen habe. Dies nehme ich aber bewusst in Kauf, damit ich auch nach der ersten Rechnung noch mein Frühstücksbrötchen finanzieren kann.

Bei Windows Azure ist das zum heutigen Zeitpunkt nicht so – für produktive, kommerzielle Anwendungen würde es wahrscheinlich auch kein sinnvolles Szenario sein, da ja dort gerade dann Geld verdient wird (nicht nur durch Microsoft, sondern auch durch die in der Cloud gehostete App) wenn viel passiert, also, wenn viel Traffic herrscht. Für die Entwickler Community ist der fehlende Kostendeckel aber ein Problem: Bei Windows Azure kann ich nicht nur konfigurativ, sondern gerade auch programmatisch dafür sorgen, dass ich mehr mehr Rechenpower aus den Microsoft Containern bekomme – in Form von weiteren VMs, die dynamisch hochgefahren werden. Das heißt: Wenn ich falsch programmiere, verbrate ich durch einen einzigen Programmierfehler unter Umständen sehr viel Geld – auch wenn letztlich niemand die Anwendung benutzt – ich wollte ja nur spielen. Und das ist nur einer von vielen denkbaren Fällen und vielleicht sogar noch der unwahrscheinlichste. Ebenso ist es möglich, dass ich schlichtweg vergesse mein Cloud-VM-Cluster abzuschalten oder die Kosten schlichtweg nicht im Blick habe und erst feststelle, wie viel Stunden Rechenzeit ich gebraucht habe, wenn die Rechnung kommt.

Wunschkonzert

Was ich mir wünsche, wäre also eine Art Flatrate: Meinetwegen X€ im Monat für monatlich Y Stunden Rechenpower auf maximal Z VMs plus ein bisschen Traffic. Wenn ich die Grenzen überschreite wird die Bandbreite für “Nutztraffic” reduziert, die Rechenpower meinetwegen auch, aber ich will noch weiterhin vernünftig darauf entwickeln können und meine Anwendung testen können – und natürlich, dass keine weiteren Kosten entstehen. Und: Klaro, ich werde keine kommerziellen Anwendungen darauf hosten, das darf natürlich in die AGBs… ich will ja nur spielen.

Für die Community ist es vielleicht nur ärgerlich, für Windows Azure kann diese Unzulänglichkeit doch bedeutend sein: Spätenstens seit David Chappells Vortrag über IT Innovations bei der Teched 2009 wissen wir ja, dass man gute Ideen nicht nur haben (Idea) und umsetzen muss (Implement), sondern dass man auch Menschen dazu bringen muss diese einzusetzen (Inject). Microsoft war bisher nicht zuletzt im letzten Punkt sehr gut. Aber momentan ist das Pricing für die Cloud leider alles anders als förderlich, was diesen letzten Punkt angeht. Ich hoffe das ändert sich – letzlich steht und fällt der Erfolg für Microsofts Cloud Lösung vielleicht genau mit den Leuten, die sie heute noch nicht ausprobieren – einer breiten Basis in der Community und einem Haufen erstklassiger Entwickler.



Scrum Template für TFS 2010? HIer isses!

Wie schon in einem alten Blogposting erwähnt stellt Microsoft selbst jetzt ein Scrum Prozess Template für den TFS zur Verfügung. Bisher war dieses bereits als Beta verfügbar. Ich bin gespannt, ob die Strukturierung der Workitems über den Workitem-Typen “Sprint” nur als Übergangslösung zu sehen ist, oder ob das die neue Stoßrichtung für Dev11 vorgibt. Bisher wurde die Sprintzugehörigkeit ja ausschließlich über Attribute geregelt. Aus eigener Erfahrung weiß ich, dass das immer wieder für heiße Diskussionen sorgt. Da das Template kostenlos über die VS Gallery kommt, empfehle ich, sich das Ganze einfach mal anzusehen.



Finale!
Sonntag, 11. Juli 2010, 20:08
Abgelegt unter: Allgemein | Tags: , , , ,

Dass die Bilder auf Google’s Internetseite je nach Tagesgeschehen und Jahreszeit ab und an mal geändert werden, dürfte ja jedem schon mal aufgefallen sein. Aktuell zu sehen: Ein Fußballstadion und die Fähnchen der Finalisten. Schätze in ein paar  Stunden ist es wieder weg… für alle die zu spät kommen:

image



Scrum in WM-Zeiten
Dienstag, 6. Juli 2010, 21:58
Abgelegt unter: Allgemein | Tags: , , ,

Wenn die WM gut läuft, dann hat das schon mal Auswirkungen auf Fortschrittsgraphen jeglicher Art…

image



You are here!
Freitag, 2. Juli 2010, 16:15
Abgelegt unter: I love Opera | Tags: ,

Opera 10.60 bietet jetzt die Möglichkeit andere Opera User zu finden. Ich bin mir noch nicht im Klaren darüber, was es bringt, aber es ist auf jeden Fall witzig. Und die Genauigkeit ist beängstigend. Hier bin ich:

image



Letzter Aufruf: Dot-Net-Day
Freitag, 25. Juni 2010, 17:11
Abgelegt unter: Allgemein | Tags: , , , ,

Jeder, der immer noch nicht weiß, was er an diesem Wochenende treiben soll, dem sei der .Net-Day Franken ans Herz gelegt. Wann? Morgen! Mehr Info gibt’s hier. Hingehen! Wir sehn uns dort.



Cloaking is a Private Thing

Visual Studio versteckt ja so einige Perlen, die man erst nach und nach entdeckt. Eines dieser mitunter wertvollen – aber auch reichlich unbekannten Features  - ist das “Cloaking”. Wie geht das, was ist darunter zu verstehen, wofür ist es gut?

Wie geht’s? 
Man kann im Visual Studio – unter Verwendung von Team Foundation Server als Quellcodeverwaltungssystem –. beliebige Ordner und Branches im Source Control Explorer über das Kontextmenü “Cloaken”. Einfach Ordner anwählen, rechte Maustaste, Cloak. Die Inhalte der Folder werden dann im SourceControl Explorer ausgegraut dargestellt.

Cloaking - so geht's.

Was bewirkt das?
Das hat zu Folge, dass die “gecloakten” Inhalte nicht mehr vom Team Foundation Server nachgeladen werden – auch wenn zum Beispiel auf den übergeordneten Ordner ein “Get Latest” ausgeführt wird.

Wer braucht das?
Man stelle sich die Situation vor, dass man als Mitglied eines Entwicklungsteams bestimmte Bereiche der Quellcodeverwaltung schlicht und ergreifend nicht benötigt. Zum Beispiel, weil darin Quellcode für Komponenten entwickelt wird, mit denen man nie in Berührung kommt, und deren Schnittstellen einem auch herzlich egal sein können. Oder Branches, auf denen man eben gerade nicht arbeitet. Oder es liegen dort zwar Dateien, diese sind aber nicht für das Produkt selbst, sondern für die Herstellung der Binaries relevant – zum Beispiel Buildskripte. Dann ist genau der richtige Zeitpunkt um zu “Cloaken”.

Prädestiniert für's Cloaken - der BuildProcessTemplates Ordner in VS2010. Auch wenn hier nicht viel Bandbreite gespart wrden wird.

Welchen Vorteil bringt es?
Das Cloaken bringt folgenden Vorteile mit sich:
1. Zeitersparnis – beim Ausführen des “Get Latest” Befehls werden gecloakte Unterordner nicht mit vom Server geladen. Unterm Strich geht’s also schneller, bis man die neueste Version der benötigten Files auf seiner lokalen Platte hat.
2. Bandbreitenersparnis. Aus genau dem gleichen Grund. Aus eigener Erfahrung kann ich berichten, dass Bandbreite in vielen Firmen noch ein wesentlich limitierender Faktor ist, als man im Jahr 2010 erwarten würde. Gut also, wenn man hier auf einfache Weise was sparen kann.
3. Plattenplatzersparnis – es werden weniger Files geladen. Man kann also, wenn es sinnvoll ist, gewisse gemappte Folder einfach nie getten – nicht mal einmalig. Bei riesigen Quellcodebeständen spart man sich so haufenweise Plattenplatz. Natürlich geht das nur dann, wenn man den entsprechenden Quellcode nicht doch lokal benötigt…

Gibt’s auch Nachteile?
Ja. Größter Nachteil ist, dass man genau wissen muss, was man tut. Es ist zwar einfach zu bedienen, aber man muss sich bewusst sein, dass die gecloakten Files zwar noch physikalisch auf der Platte liegen (wenn sie überhaupt schon da waren)  – d.h. sie können auch referenziert werden (bspw Dlls) – aber die neueste Version eben nicht mehr automatisch vom Server geladen wird (was ja auch Sinn und Zweck ist). Wenn man also mal “vergisst”, dass man Cloaking verwendet hat, läuft man Gefahr Inkonsistenzen zu produzieren. Also: Mit Bedacht wählen was gecloakt wird – natürlich kann man es jederzeit wieder rückgängig machen.

Cloaking - so macht man's rückgängig.

Wen betrifft meine Cloaking-Einstellung eigentlich?
Sehr gute Frage, die immer wieder gestellt wird und bereits mit der Überschrift dieses Posts beantwortet wird: “Cloaking is a private thing” – man trifft diese Einstellung also immer nur für sich alleine und immer nur für jeweils genau einen Workspace zur gleichen Zeit. Das ist eigentlich auch sehr logisch. Den Ordner BuildProcessTemplates beispielsweise kann so ziemlich jeder im Team gefahrlos cloaken,  bis auf diejenigen, die tatächlich daran arbeiten – also eben z.B. der Buildmanager. Eine Entscheidung auf Teamebene was geclaokt wird und was nicht wäre also ziemlich sinnlos.
Das gleiche gilt für Workspaces: Die Einstellungen für Cloaking kann für den Laptop zuhause grundlegend anders sein, als die Einstellung für den Arbeitsplatzrechner im Büro.



TFS Powertools: TFPT – Unable to determine the source control server

Kurzversion:  Um das Problem zu lösen, braucht Ihr mit TFS2010 den Parameter “/collection”. Unter TFS 2008 “/server”.

Langversion: An dieser Stelle mal ein kleiner Hinweis für alle, die die Team Foundation Powertools auch über die Kommandozeile benutzen wollen - ich stolpere selbst oft genug und immer wieder darüber. Man will ein Kommando abfeuern und um sich zu versichern, was man tun muss, gibt man erstmal nur “tfpt” ein. Ergebnis: Siehe Screenshot.

Die Befehle der Powertools über die Kommandozeile

Nächster Schritt: Zum Beispiel eine Query absetzen. Also, laut Screenshot ungefähr sowas eingeben:

tfpt query /wiql”Select [System.Id]  from WorkItems“

Aber – so leicht ist es nicht! Man bekommt folgende Fehlermeldung: Unable to determine the source control server.

Fehlermeldung: Unable to determine the source control server.

Was ist schiefgelaufen? Man hat doch scheinbar alles richtig gemacht – auch tfpt query /help bringt nicht mehr Infos.

Die Hilfe bringt eben leider keine Hilfe.

Die Lösung

Ok, was muss man also tun?

Schritt 1: Googlen (oder Bingen), auf (zum Beispiel) diesen Blog-Eintrag stoßen, lesen.

Schritt 2: Den fehlenden Parameter angeben, der irgendwie NIRGENDWO beschrieben ist: /collection . Kleiner Hinweis an dieser Stelle:  Bei VS 2008 hieß der Parameter noch /server, da es ja die Collections noch nicht gab. Entsprechend hat man auch nur die URL des Servers übergeben. Jetzt ist es die URL der Collection.

So heißt der Befehl in meinem Fall also richtig:

tfpt query /wiql:"Select [System.Id]  from   WorkItems" /collection:http://mrblonde:8080/tfs/DefaultCollection

Natürlich müsst Ihr “mrblonde” noch mit Eurem eigenen Servernamen ersetzen und auch den Collectionnamen anpassen.

Und so schaut das Ergebnis aus:

Undokumentierten Parameter /collection nicht vergessen - und schon geht's!

Wunderbar. Hoffe geholfen zu haben



Scrum Process Template für Team Foundation Server 2010

Heute wurde auf der Teched in New Orleans das erste offizielle Scrum Prozess Template für Visual Studio 2010 / Team Foundation Server 2010  vorgestellt – und zwar nicht von Drittherstellern, sondern von Microsoft selbst. Man konnte zwar schon bisher Scrum mit dem eingebauten MSF for Agile abbilden, 100% passend war es aber ohne eigene Modifikationen nicht. Momentan ist die verfügbare Version noch im Beta Status, einen geplanten Relase Termin habe ich noch nirgendwo gefunden. Wer mehr wissen will, ist gut beraten den entsprechenden Blogeintrag von Brian Harry zu lesen.



Was ist cool an Visual Studio 2010?

Wer es schon immer wissen wollte – hier die Antwort. Das Video ist das Ergebnis einer spontane Aufnahme einiger Arbeitskollegen, die versuchen auf die Frage “Was ist cool an Visual Studio 2010?” eine Antwort zu geben. Das Video ist auch zu finden als Video Response im offizellen Developerstories YouTube Channel . Ungestellt und genauso unvorbereitet. Und trotzdem wahr. Enjoy!