# Tuesday, August 14, 2007

Die Überschrift ist kein Roman, sondern, auch wenn die Länge es nicht erahnen lässt, eine Erweiterung der Team Edition for Database Professionals. Microsoft setzt damit die Tradition fort, dass es zu vielen Produkten ein paar kostenlose Erweiterung direkt aus den Entwickler Teams gibt. Über diese Power Tools kann Microsoft auch zwischen den großen Release Zyklen neue Funktionen veröffentlichen:

Microsoft® Visual Studio® 2005 Team Edition for Database Professionals Service Release 1 (Voraussetzung für die Power Tools)

Microsoft® Visual Studio® 2005 Team Edition for Database Professionals Power Tools

Details zu den neuen Funktionen gibt es beim DataDude:

    • Dependency Viewer
    • Refactoring
      • Move Schema
      • Expand Wildcard
      • Fully Quality Name
      • Refactor in to strongly typed DataSet definitions
      • Refactor Command Generator
    • Data Generation
      • Sequential Data Bound Generator
      • Editors for the Data Bound Generator, Sequential Data Bound Generator and RegEx String Generator to make configuration easier
      • The RegEx editor also tries to interpret your CHECK CONSTRAINTs and create a matching RegEx expression that you can use to generate data values that match the constraint definition
      • The RegEx editor can also be used for interactively defining and testing RegEx expressions and evaluate the output visually, which makes it a lot easier to create the right RegEx expression for your value domain.
    • MSBuild Tasks
      • SqlSchemaCompareTask; allows you to compare schemas between two database from the command line using MSBuild.
      • SqlDataCompareTask; allows you to compare the content of tables within two databases from the command line using MSBuild.
    • T-SQL Static Code Analysis
    •  Miscellaneous tools
      • SQL script pre-processor command-line utility, which will expand all SQLCMD includes and variable definitions (sqlspp.exe)
    • Schema Manager API

 

Vorsicht: Nach diesen Updates werden Database Projekte beim ersten Öffnen durch einen Wizard konvertiert und sind dann für ältere Versionen von Visual Studio unbrauchbar.

Viel gespielt habe noch nicht mit den Tools:

Die statische Code Analyse hat mir aber schon mal 66 Warnings in einem Projekt ausgespuckt. Keine dramatischen Verfehlungen, aber leider funktioniert bei mir die "Show Error Help" Funktion nicht. Auch die ausgegeben IDs findet Google noch nicht. Mir fehlen also die Erläuterungen zu den Ausgaben.

Der Schema Dependency Viewer gefällt mir auch sehr gut. Als CodeRush Anwender ist man von dessen References Viewer im C# Code aber verwöhnt. Einfach Shift+F12 und alle Referenzen werden blitzartig dargestellt. Das Gleiche im T-SQL Editor wäre super. Bis dahin dürfen wir jetzt wenigstens schon mit der Maus im Schema Viewer das Kontext Menü aufrufen.

Tuesday, August 14, 2007 11:10:41 AM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [0]  | 
# Tuesday, July 31, 2007

Im Moment bleibe ich 2 Tage pro Woche zu Hause und arbeite an meinem Heimarbeitsplatz. Die restlichen Tage fahre ich ins Büro an arbeite dort an meinem Büro-PC. Sehr schnell habe ich bei diesen häufigen Wechseln festgestellt, dass die Gefahr besteht sehr viel Zeit in den Datenabgleich zu stecken. In diversen Programmen bearbeite ich Daten, die am anderen PC nicht automatisch wieder zur Verfügung stehen.

Einige Tools und Vorgehensweisen helfen mir inzwischen dabei, wirklich fast reibungslos den Arbeitsplatz zu wechseln. In manchen Bereichen wäre aber noch eine Verbesserung wünschenswert. Grundsätzlich bevorzuge ich für die tägliche Arbeit Desktop-Applikationen. Web (2.0) Applikationen haben an manchen Bereichen ihre Berechtigung, aber im Browser möchte ich nur in Ausnahmefällen arbeiten.

OpenVPN

Damit habe ich Zugriff auf das Intranet von CPTec und kann auf alle dortigen Dienste zugreifen:

  • Exchange-Server über Outlook
  • File-Server
  • Arbeitszeiterfassung über selbst gestrickte Intranet-Applikation
  • Remote Desktop zur Windows Server Administration
  • Putty zur Linux Server Administration

Aus Sicherheitsgründen läuft aber die VPN Verbindung nur in einer Virtuellen Maschine. Das bedeutet, dass mein Heimarbeitsplatz nicht Mitglied der Domäne ist. Das ist so gewollt, aber Roaming Profiles scheiden damit aus.

Team Foundation Server

Alle aktuellen Projekte sind darin unter Versionsverwaltung. Seit dem Service Pack 1 sind damit auch gesicherte externe Verbindungen möglich. Einfach Abends immer brav einchecken und am nächsten Tag am anderen Arbeitsplatz Get Latest ausführen.

Google Browser Sync

Mit dieser Firefox Add-on lassen sich automatisch alle Bookmarks synchronisieren. Wenn mir in der Arbeit eine interessante Seite unterkommt und ich einen Bookmark setze, dann ist der ganz einfach zu Hause auch vorhanden. Das ganze funktioniert so unauffällig und gut, dass man fast vergessen könnte, dass Browser nicht automatisch überall meine Bookmarks haben.

Mozy online backup

Zusätzlich zur Datensicherung hat man über den Web Restore von Mozy, die Möglichkeit Daten in Arbeit auf heimische Daten zuzugreifen. Dabei muss weder zu Hause der PC laufen, noch muss ich vorher schon daran gedacht haben, dass ich etwas brauchen könnte. Die letzte Tätigkeit am Ende das Heimarbeitstags sollte ein Mozy Backup sein. Aber dank inkrementeller Sicherungen und der schnellen ADSL2 (16000/800 kbit/s) Verbindung geht das ganz hurtig.

RSS-Bandit

Ein RSS Aggregator in .NET, der toll funktioniert. Der Reader hat eine Funktion um die Feed Liste inklusive der Information, welche Beiträge gelesen sind, remote zu speichern. Mit einem Tastenklick wird der komplette Status auf meinen FTP Server übertragen oder von dort eingelesen.
Praktischerweise ist der Autor auch noch ein interessanter Blogger: Dare Obasanjo aka Carnage4Life

E-Mail

Verwende ich eigentlich im Rahmen der Synchronisierung fast ausschließlich um Erinnerung von der Arbeit nach Hause zu transferieren. In die andere Richtung kann ich ja einfach auf dem Exchange Server per VPN eine Erinnerung setzen. Manchmal schicke ich auch Termine hin und her. Aber den Kalender habe ich noch nicht sauber synchronisiert. Google + Outlook ist noch zu holprig. Outlook + live.com ist auch noch nichts.

Google Docs & Spreadsheets

Bei weitem nicht so schön wie Excel oder Word und sicher kein genereller Ersatz. Aber für die gelegentliche, verteilte Tabelle durchaus brauchbar.

 

Wichtige bei allen diesen Vorgehensweisen ist mir, dass ich zu Hause wirklich alles abschalten kann. Es soll nicht die ganze Zeit irgendwas laufen, nur damit ich mal schnell ein paar Daten übertragen kann.

Gibt es noch mehr Tools die mir den Wechsel des Arbeitsplatzes vereinfachen können?

Tuesday, July 31, 2007 11:30:35 PM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [0]  | 
# Tuesday, July 24, 2007

Ich habe mich geirrt! Adobe FrameMaker wird so schnell nicht sterben. Vor fast einem Jahr hatte ich das noch befürchtet: Adobe SVG-Viewer tot

Jetzt ist die FrameMaker Version 8 veröffentlicht worden. Bisher kann ich mich auch nur über die Webseite über die neuen Features informieren. Selbst getestet habe ich diese Version noch nicht. Interessant sind sicherlich die DITA Unterstützung und alle XML Verbesserungen.

Aber aus tiefsitzenden Argwohn kann es keine Adobe Erwähnung ohne Häme geben:

  • Unicode Unterstützung: Willkommen im neuen Jahrtausend! Wow! Wurde da etwa gegen eine neue C Library gelinkt?
  • Flash Unterstützung: Jetzt auch tolle, bunte Werbebanner in der TD?
  • Mehrfaches Undo: Ein eigentlich selbstverständliches Feature. Jetzt neu bei Adobe.
  • 3D Modelle in PDF Dateien integrieren: Drucker bitte separat bestellen!

Da fällt mir auch der Adobe Illustrator CS3 wieder ein. In der CS2 gab es beim Autocad DWG Import einen Schalter Flatten Layers. Wenn die ausgeschalten war, wurden die Autocad Ebenen in Illustrator übernommen. In CS3 fehlt jetzt einfach dieser Schalter. Die Funktion ist fest an. Auf Wiedersehen Autocad Ebenen. Ein Nachbearbeiten ist nicht mehr sinnvoll möglich. Von Adobe fehlt jede Reaktion: Illustrator CS3 and Autocad DWG layers

Tuesday, July 24, 2007 1:38:03 PM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [0]  | 
# Tuesday, July 17, 2007

Auf ars technica wurden 4 Online Backup Dienste verglichen:

  • Carbonite
  • Mozy Online
  • XDrive
  • Iron Mountain's Connected Backup/PC service

Dabei schnitt Mozy Online am Besten ab:

Of the services we tested here, Mozy Online struck the best balance between functionality and flexibility and is our overall top pick for an online backup service. The free version of the service is also worth using, but the delay between restoration requests and restoration file availability under the free service make the paid version more attractive.

Das deckt sich mit meiner Erfahrung. Ich bin mit dem Dienst wirklich sehr zufrieden. Da ich die Rücksicherung zum Teil auch für den Datentransfer an einen anderen Rechner nutze, starte ich den Restore oft erst, wenn ich die Daten wirklich brauche. Da ist die übliche Wartezeit von einigen Minuten störend. Einmal hat es auch deutlich länger gedauert. Das war aber bisher eine Ausnahme. Bis jetzt kann ich noch gut bei der kostenlosen Version bleiben. Aber $4.95 pro Monat für die unlimitierte Version ist immer noch sehr fair.

Für große Datenmengen würde ich den Dienst im Moment aber nicht verwenden. Eine abgerauchte 500 GB Platte per Download zu restaurieren ist bestimmt kein Spaß. In den USA kann man sich den Restore auch auf DVDs schicken lassen. Das geht in Deutschland noch nicht.

Auch nach 3 monatiger Nutzung empfehle ich diesen Dienst gerne weiter. Deswegen auch nochmal mein Referral Code 67F8A2, bzw. der Referral Link. Bei einer Neuanmeldung gibt es beim kostenlosen Dienst gleich 256MB Platz zusätzlich :)

Tuesday, July 17, 2007 10:59:23 AM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [0]  | 
# Wednesday, June 27, 2007

Ich arbeite wieder mal von zu Hause. Mein Rechner läuft unter Vista x64 und im wesentlichen brauche ich Visual Studio 2005 und den SQL Server 2005. Einige der Applikationen die ich zu betreuen habe, laufen aber noch unter Visual Foxpro. Die Foxpro 9 DVD habe ich auch schon hier liegen. Bisher hatte ich noch keine Notwendigkeit die Entwicklungsumgebung wirklich zu installieren.

Prompt braucht es jetzt für einen Kunden ein kleines Update an einer Foxpro Applikation. Also die DVD rausgesucht und den Setup starten... Halt! Argh! Bei diesem Kunden läuft ja noch Foxpro 8! Oh, oh! Was nun?

Vorsorglich hatte ich schon meinen PC in der Arbeit mit Terminal Services versehen. Also ein kurzer Anruf und ein Kollege schaltet den Rechner ein. Per OpenVPN kann ich mich mit dem Firmennetzwerk verbinden und per Terminal Services den Arbeitsplatzrechner mit der funktionierenden Entwicklungsumgebung ansteuern.

OpenVPN läuft bei mir aus Sicherheitsgründen nur in einer virtuellen XP Maschine. Von dort starte ich dann den Terminal Services Client und bin so gut wie in der Arbeit :).

Das Problem war schnell behoben. Auch weil der Bildaufbau über die 2MBit Standleitung von CPTec und meine 16MBit ADSL2 Leitung sehr flüssig war. Und das obwohl ich mit der normalen Auflösung des entfernten PCs gearbeitet hatte. Immerhin 1600x1200 Pixel. Also mit einem Rändern rechts und links auf dem 24" LCD :)

Als Bonus brauchte ich auch keine Projekt Daten hin und her kopieren. Irgendwie haben es die Foxpro Projekte nie in die Versionskontrolle geschafft ;)

Wednesday, June 27, 2007 4:17:31 PM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [0]  | 
# Monday, June 04, 2007

Am Freitag, den 1.6.2007 um 17:44 Uhr war es soweit. Mein Sohn Moritz hat das Licht der Welt erblickt. Mit seinen 4260g Gewicht und 55cm Länge hat er seiner Mutter keine leichte Geburt gegönnt. Beide sind aber wohlauf und das ist natürlich das Wichtigste.

Wie es sich für ein Neugeborenes gehört, verlangt auch Moritz jetzt nach unserer ungeteilten Aufmerksamkeit. Ich bin aber mal gespannt, wie sich das in den nächsten Tagen und Wochen verhält. Natürlich planen wir nicht tiefe Augenringe, sondern entspannte Eltern und ein zufriedenes Kind. Nur weiß das auch der Kleine?

Die nächste, genetisch bedingte, Reaktion eines frisch gebackenes Vaters ist das unkontrollierte Herumzeigen von Babyfotos. Und unser Moritz ist definitiv das hübscheste und süßeste Baby überhaupt!

30 Minuten nach der Geburt:

2007-06-01, Moritz, 4260 g

Tag 1:

Moritz Deger Tag 1

Tag 2:

Moritz Deger Tag 2

Tag 3:

Moritz Deger Tag 3

Erschöpft nach der Raubtier-Fütterung:

Moritz Deger, das Raubtier

Auf diesen Fotos sieht es so aus, als wäre der Bub immer friedlich. Leider trügt der Schein, er hat eine sehr kräftige Stimme!

Auch hier schlägt die Biologie gnadenlos zu: Einer schreit und Zwei müssen reagieren. Das geht gar nicht anders. Der Kleine ist der Chef :)

Monday, June 04, 2007 11:13:36 PM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [6]  | 
# Saturday, May 26, 2007

Meine bisherigen Gedanken zu diesem Tool: Visual Studio 2005 Team Edition for Database Professionals und VSTS Database Professional (2)

Jetzt gehe ich mal davon aus, dass wir mit dem Schema in dem SQL Projekt zufrieden sind. Jetzt soll das Ganze aber wieder in eine Datenbank kommen. Dazu definiert man bei den Build Eigenschaften des Projektes, welche Verbindung und welche Datenbank das Ziel sein soll. Die Datenbank muss dabei noch nicht existieren.

Die für mich wichtigste Option bei den Einstellung ist dabei Always re-create database. Falls diese Option aktiviert ist, wird bei jedem Deployment tatsächlich die vorhandene Datenbank entfernt und komplett neu aufgebaut. Man kann sich dann also sicher sein, dass in der neuen Datenbank nichts enthalten ist, was nicht über das SQL Projekt definiert wurde. Bei deaktiviert Option, werden nur die Änderungen durchgeführt.

Das eigentlich Deployment geht dann denkbar einfach. Rechte Maustaste auf dem Projekt und deploy gewählt.

Das funktioniert natürlich nur während der Entwicklung so einfach. Das ist der SQL Server typischerweise auf dem gleichen Rechner, in jedem Fall ist er aber direkt erreichbar. Der produktive SQL Server ist aus Sicherheitsgründen meist nicht über den SQL Port ansprechbar. Also geht man den Umweg über ein T-SQL Skript. Bei einem Build des SQL Projektes mit der Always re-create database Option wird die komplette Datenbank in einem T-SQL Skript erzeugt. Diese Skript bringt man auf den Ziel SQL Server und führt es dort aus.

Falls man auch Daten in den Skripten erzeugt, muss man mit den Sonderzeichen aufpassen. Zum Import bietet sich nämlich der sqlcmd Kommandozeilen-Befehl an. Mit "sqlcmd -i inputfile" könnte man die Datenbank ganz schnell erzeugen. Nur sqlcmd spricht den SQL Server über ODBC an. Dabei passieren aber alle möglichen lustigen Dinge mit Sonderzeichen. Deswegen habe ich davon die Finger gelassen. Besser geht es mit dem SQL Server Management Studio  im SQLCMD Mode:

Einfach über "File - Open" das Skript auswählen und im SQLCMD Mode ausführen. Dabei sind mir bisher noch keine Sonderzeichen verloren gegangen.

Saturday, May 26, 2007 1:38:39 PM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [0]  | 
# Friday, May 25, 2007

Kritisch, Kompetent, Unabhängig?

Die Rede ist von dem deutschen Ableger von Tom's Hardware Guide. Früher war die englische Version eine der besten Adressen für gute Hardware Tests. Fundiert und detailliert. Inzwischen ist die englische Variante unübersichtlich und nervös.

Schlimm empfinde ich aber die Entwicklung bei der deutschen Seite. Die ist übrigens nicht einfach die übersetzte englische Version, sondern sehr eigenständig. Leider.

Schon einige der dortigen Artikel zum Thema Windows Vista empfand ich unsäglich schlecht. Alle sehr laut und aufdringlich geschrieben und aus meiner Sicht völlige Thema Verfehlungen. Das heutige Highlight und Grund für diesen Rant: Vista-Radikalkur: Abspecken um 60%

10 GB für ein Betriebssystem? Wo ist hier eine Spur von Effizienz zu erkennen?

Effizienz laut Wikipedia:

Effizienz (v. lat.: efficere = bewirken) ist das Verhältnis eines in definierter Qualität vorgegebenen Nutzens zu dem Aufwand, der zur Erreichung des Nutzens nötig ist. Als effizientes Verhalten bezeichnet man ein Verhalten, das sowohl tatsächlich zur Erreichung des Nutzens führt (Effektivität) als auch den dafür notwendigen Aufwand möglichst gering hält.

Aufwand wäre in diesem Zusammenhang die benötigte Zeit das Betriebssystem so zu installieren, dass alle denkbaren Anwender danach möglich viel Nutzen, also ein funktionierendes Vista haben. Mit in die Rechnung müssen natürlich nach die Kosten für die belegte Festplattenkapazität eingebracht werden.

Gerade kostetet ein pro GB relativ teure 80 GB Platte 38 Euro. Gerundet die 10GB Vista Installation also 5 Euro! Dass spielt also bei vernünftiger Betrachtung wohl keine Rolle. Damit versteht man auch, wieso Microsoft direkt und ohne Nachfrage einfach alles installiert. Der Plattenplatz ist inzwischen billig genug. Dafür spart man sich Unmengen an Erklärungen und Dokumentation, wieso nun ein Anwender dieser oder jenes auswählen kann. Der Support wird einfacher. Man kann davon ausgehen, dass alles vorhanden ist.

Bei THG schwelgt man aber erbsenzählend bitszählend in Ballast Orgien und Microsoft Beschimpfungen. Als Lösung darf dann der Anwender ein paar DVD-Rohlinge brennen und sich ein Betriebssystem basteln, dass er früher oder später neu installiert darf. Eine der abgewählten Funktionen braucht man dann doch. Armer Leser!

Auf dieser Seite wird gezeigt, was man bei THG nicht im Betriebssystem braucht. Die grünen Häkchen sind die entfernten Komponenten. Übrig bleiben auf den ersten Blick im Wesentlichen der Kernel und der Explorer. Sprich ein gerade noch funktionierendes System. Da kann ich ja dann gleich Linux installieren! (1)

Tom rette uns!

 

(1) Vorsicht der Satz ist böse und nicht ernst gemeint!

 

Update:

Ich wollte auch im THG Forum eine kurzen Beitrag mit meiner Meinung hinterlassen: >>>>edit by mod<<<<

Schade eigentlich :)

Friday, May 25, 2007 10:37:54 AM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [0]  | 
# Wednesday, May 23, 2007

IsolatedStorage funktioniert bei mir unter Vista x64 nicht wie erwartet. Ich arbeite als Administrator mit ausgeschaltetem UAC. Ich kann in der IsolatedStorage Dateien erzeugen und anschließend wieder lesen. Was ich nicht kann, ist die abgelegten Dateien auslesen oder löschen.

Zuerst habe ich erfolgreich eine Datei LoginTicket.xml angelegt. Eine Datei Test.xml existiert nicht. Bei folgendem Beispiel Code passiert dann etwas seltsames:

IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);
// liefert keine Einträge:
string[] test = isoStore.GetFileNames("*");
// liefert den richtigen Stream:
IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream("LoginTicket.xml", FileMode.Open);
// Wirft wie zu erwarten eine FileNotFoundException:
IsolatedStorageFileStream isoStream2 = new IsolatedStorageFileStream("Test.xml", FileMode.Open);

Bei isoStore.GetFileNames("*") sollte eigentlich auch die Datei LoginTicket.xml im Ergebnis dabei sein. Ist sie aber nicht.

Danach kann ich problemlos die Datei öffnen. Der Inhalt würde auch stimmen. Natürlich kann ich keine nicht vorhandene Datei Test.xml öffnen. An der Stelle bin ich dann schon verzweifelt :).

Was geht da schief?

Wednesday, May 23, 2007 3:49:16 PM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [1]  | 
# Tuesday, May 22, 2007

Jeff Atwood hat ein paar Zahlen zusammengetragen, die ich nachempfinden kann: Productivity Tip: Upgrade Your Pentium 4

Das Ergebnis einiger Compilation Benchmarks: Weg mit dem P4.

Die aktuellen Core 2 Duo CPUs lassen die letzte Generation der P4 Dual Core Prozessoren wirklich alt aussehen. Subjektiv merke ich das auch deutlich. In der Arbeit werkelt ein Pentium D 950 (oder 940?). Der Heimarbeitsplatz hat schon einen Core 2 Duo E6600. In dem WorldBench - Mozilla 1.4 Benchmark ergibt sich 470 (D950) zu 259 (E6600). Oder ein Faktor von 1,8.

In Kombination mit der WD Raptor HD die zu Hause flitzt, ist es fast schon eine Strafe in die Arbeit zu gehen. Rein hardwaremäßig natürlich :)

Tuesday, May 22, 2007 1:58:13 PM (W. Europe Daylight Time, UTC+02:00)  #
  Disclaimer  |  Comments [0]  |