So lange wollte eigentlich nicht warten…

Wie gut das manche Anzeigen einfach nicht stimmen:

In einer Teamviewer Session bekam ich beim übertragen der Datei, den Hinweis, dass es ca. 357.020 Jahre dauern wird bis die Datei übertragen ist 😮
Das Ganze obwohl der Fortschrittsbalken zügig voran geschritten ist. Das Ganze hatte wirklich nur 25 Sekunden gedauert und ich musste mich sputen das Bild einzufangen.

Berechnungen über die Dauer von Operationen führen immer wieder zu erstaunlichen Ergebnissen in unserer Branche…

In VS-2010 SP1 wird sich einiges bzgl. des Help-Viewers tun…

Das sich doch relativ viele Entwickler (wie auch ich hier in meinem Blog) negativ über die MSDN-Hilfe Integration in VS-2010 geäußert haben hat scheinbar Spuren hinterlassen, wie in Jeff Brattens Blog zu lesen ist:

http://thirdblogfromthesun.com/2010/10/the-story-of-help-in-visual-studio-2010/
http://thirdblogfromthesun.com/2010/10/the-story-of-help-in-visual-studio-2010-part-2/
http://thirdblogfromthesun.com/2010/10/the-story-of-help-in-visual-studio-2010-part-3/

Besonders Teil 3 mit dem Ausblick auf SP1 ist interssant. Ich zitiere direkt aus Part 3:

New Features in Visual Studio SP1

We’ve made three major changes to the Help Viewer in SP1. First, we’ve abandoned the browser-as-local-help-viewer and implemented a simple client application for offline help. The help window is no longer lost in the set of browser tabs you have open and the help application icon can be easily located in the taskbar. F1 Help re-uses the currently active tab instead of creating a parade of open tabs that must be manually managed. The help application can be sized and placed anywhere on your desktop and retains its size and placement across sessions. The navigation panel width is resizable and it can be placed to the right or the left of the content.

Second, with the flexibility we gain from building a client application, we’ve re-introduced many of the productivity/efficiency features found in Document Explorer. The viewer features four navigation tabs: a fully-expandable table of contents that can be explored without reloading the current topic, a keyword index, a Favorites and History tab, and a search results pane. The search results pane allows you to refine your search queries without losing your current topic context. In addition, context menus and shortcut keys allow you to access features quickly without excessive need for a mouse.

TFS Unshelve mit Merge

Ich und meine Kollegen benutzen gerne Shelvesets um uns Code gegenseitig zuschieben zu können, oder Testcode auszuprobieren.

Problematisch ist allerdings, dass die Dateien alle nicht ausgechecked sein dürfen, die man mit dem Shelveset laden möchte. Doof! Ein Merge ist mit VS-2010 nicht möglich, wenn man ein Shelveset lädt.

Glücklicherweise gibt es aber die Team Foundation Server Powertools. Und in diesem genialen Tool-Paket ist auch netterweise der Befehl: tfpt unshelve verfügbar! Und damit kann man in gewohnterweise, ein Shelveset in die eigenen bereits bearbeiteten Source hinein-mergen.

Meine Lieblingstools

Hier mal eine Liste meiner Lieblingstools (nicht nur für die Software-Entwicklung).
Sowohl Freeware als auch Tools für die ich gerne Geld ausgegeben habe.

Und wie immer ist das natürlich auch eine Geschmacksache und über den Geschmack lässt sich bekannter Maßen auch streiten.

Kostenlose Tools in alphabetischer Folge

  • 7-Zip (http://www.7-zip.org/)
    Das rundum sorglos Paket, wenn es um Packen und Entpacken von Dateien geht.
  • Axialis IconWorkshop Lite (http://www.axialis.com/download/iwlite.html)
    Für mich der Beste Icon- und Bitmap Editor. Hier in der Lite Version wer kein Geld ausgeben will.
  • BugTracker.Net (http://sourceforge.net/projects/btnet/)
    Der TFS istprima für die aktuelle Projekt- und Entwicklungsarbeit. Aber als externes Portal und als Ideensamlung, oder auch als Vorstufe zum Filtern zwischen Second-Level-Suppport und der Entwicklung habe ich dieses Tool liebgewonnen. Flexibel, simpel, schnell, kein Wartungsaufwand.
  • Comment Reflower
    VS-2005: http://commentreflower.sourceforge.net/
    VS-2008 und VS-2010: http://www.kynosarges.de/CommentReflower.html
    Das Addin der Wahl um einfach Kommentare im Sourcecode zu formatieren.
  • Radio fx / ClipInc fx (http://www.tobit.de)
    Wer seine Musiksammlung einfach und legal erweitern will, kann dies mit diesem Tool machen.
  • Dependency Walker / Depends.exe (http://dependencywalker.com/)
    Unverzichtbar für die Analyse von ausführbaren Dateien. Besonders eben auch die Trace Funktionen, die auch das Aufspüren von Ladeproblemen bei COM Modulen unterstützt.
  • FileZilla (http://www.filezilla.de)
    Nicht unbedingt die tollste Öberfläche aber nützlich, schnell und effektiv.
  • Frhed (http://frhed.sourceforge.net)
    Der beste Hex-Editor, mit wichtigen Funktionen wie Ersetzen tauschen etc.
  • iTunes (http://www.apple.com/de/itunes)
    OK! Ich habe auch einen 20GB iPod. Aber dennoch ist iTunes für mich das beste Tool meine Musik zu verwalten. Ich habe mich mit dem Mediaplayer nie wirklich anfreunden können.
  • KeePass (http://keepass.info)
    Der Password-Safe! Wer viele Kennworte verwalten muss, ist froh komplexe Kennworte  verwenden zu können, aber sich nur eines merken zu müssen.
  • Notepad++ (http://notepad-plus.sourceforge.net)
    Ein Editor der mir vor allem wegen seiner erweiterten Funktionen für Lesezeichen (Zeilen mit Lesezeichen kopieren, löschen) wichtig ist. Früher habe ich Textpad verwendet nur wurde der einfach nicht vernünftig weiter entwickelt.
  • Sysinternal Suite (http://technet.microsoft.com/en-us/sysinternals)
    Die unentbehrlichen kleinen Helferleins um in den tiefen des Windows OS zu forschen. DbgView, Process Explorer und Monitor müssten geschrieben werden, wenn es sie nicht schon gäbe.
  • TCC LE (http://www.jpsoft.com/downloads/v11/tccle.exe)
    Wer das Geld für TCC nicht ausgeben will, bekommt einen guten CMD.EXE Ersatz, dem nur wenig zum großen Bruder TCC 11.0 fehlt.
  • TeamViewer (http://teamviewer.com/)
    Wer mal seinem älteren Vater/Mutter, Oma/Opa, oder dem Freund/Freundin schon mal am Telefon helfen musste, der freut sich über den TeamViewer! Mit dem Tool kann man das Problem, das man am Telefon in Worten kaum klären kann, schnell online lösen. Für den Privatgebrauch kostenlos! (Ansonsten sein Geld auch für eine Firma wert!)
  • TFS Power Tools (http://msdn.microsoft.com/en-us/vstudio/bb980963.aspx)
    Eigentlich muss man sich fragen warum diese Power Tools  nicht direkter Bestandteil des TFS sind. Aber es gibt sie ja zum Glück. (Besonders einen Blick wert ist die Windows Shell Extension)
  • WinMerge (http://winmerge.org)
    Wenn man öfters mal Reviews macht ist dies das Hilfsmittel der Wahl um Merges und Kontrollen von Änderungen von Sourcecode durchzuführen. 
  • WiX (http://wix.sourceforge.net)
    Wenn man auch etwas komplexere MSI Setup Projekte relativ einfach erzeugen will.

Tools, die (IMHO) ihr Geld Wert sind in alphabetischer Folge:

  • Acronis Home (http://www.acronis.de)
    Datensicherung der gesamten Festplatte, made easy. Dazu noch andere gute Tools (Clonen und Löschen von Festplatten). Für mich
  • Axialis IconWorkshop (http://www.axialis.com)
    Für mich der Beste Icon und Bitmap Editor. Wer kein Geld ausgeben will findet auch eine Lite-Version hier http://www.axialis.com/download/iwlite.html
  • CppDepend (http://www.cppdepend.com)
    Code Analyse mal ganz anders aber sehr effektiv (nicht ganz billig).
  • NOD32 von ESet (http://www.eset.de)
    Seit NOD32 der erste wirklich funktionierende Virenscanner unter Vista war bin ich bei ihm geblieben. Schnell, Effektiv. Macht das System nicht langsam. Klein und nicht mit überbordenden unnötigen Funktionen überfrachtet.
  • SpeedCommander (http://www.speedcommander.de)
    Da ich ein alter XTREE Fan war, habe ich mich nie an den Norton-Commander gewöhnen können. Aber mittlerweile habe ich die vielen integrierten Funktionen des SpeedCommanders schätzen gelernt. Ein zuverlässiges Tool für alles was man so mit Dateien machen muss. Tool einfach auch die FTP Integration, der Quickview, Synchronisation, einen kleinen pasablen Editor und manch anderes mehr.
  • TCC 11.0 (http://www.jpsoft.com)
    Das Beste CMD.EXE Substitut. Ich verwende das Ding seit alten 4DOS Zeiten. Ich kann genauso wenig ohne dieses Ding auskomen wie auch nicht ohne VA-X noch Programme schreiben kann. Auch als LE Version für den, der kein Geld ausgeben will http://www.jpsoft.com/downloads/v11/tccle.exe
  • TextPad (http://www.textpad.com)
    Über Editoren kann man sich bekannter Maßen streiten. Aber ich habe vor Jahren mir mal eine Lizenz gekauft und war eigentlich immer sehr glücklich mit dem Editor, obwohl in der letzten Zeit kaum noch etwas hier in der Entwicklung passiert. Vista wurde auch etwas verschlafen. Dennoch mag ich diesen aufgeräumten guten Editor.
  • Visual Assist (http://www.wholetomato.com)
    Das non plus ultra Addin für jeden Entwickler. Alt+M, ALT+G, ALT+O… all die netten Hotkeys, die man nicht mehr missen will, mit tollen Refaktoring Funktionen.
  • VMWare Workstation (http://www.vmware.com)
    Das Tool um viele Umgebungen auf einer Entwicklungsmaschine testen zu können. Mal kurz eine Beta zu installieren und und und… Virtual PC ist nett. VMWare Workstation ist besser.

Wer Lust hat kann ja seine Tools gerne als Kommentar ergänzen ❗
Vieles Gute kann man in dem unendlichen Angebot an Tools und Software leicht übersehen…

PS: Ich bin dann erstmal weg, ohne Internet und Laptop in der Sonne… also nicht wundern wenn ich mal nicht auf einen Kommentar antworte… 😉

Tool: Screen-OCR Version 2.0, einfach mal Texte vom Monitor aus Bildschirmausschnitten und Grafiken in die Zwischenablage kopieren

Am 15. Mai hatte ich eine erste Version meines Freeware Screen-OCR Programmes veröffentlicht. Siehe Tool: Screen-OCR, einfach mal Texte vom Monitor aus Bildschirmausschnitten und Grafiken in die Zwischenablage kopieren

Nun habe ich etwas Zeit für Version 2.0 gefunden ❗
Folgende Verbesserungen wurden eingebaut:

  • Etwas schönere UI für das Auschneiden aus dem aktuellen Desktop.
  • Deutsches und englisches Benutzerinterface.
  • Das Programm kann nur noch einmal gestartet werden. Mehrfaches Starten macht hier keinen Sinn.
  • Das Tool kann nun auch das letzte aktive Fenster per OCR erfassen, oder auch eine Bitmap in der Zwischenablage. Es wurde ein entsprechendes Drop-Down Menü eingebaut.
  • Es gab bei mehrfachen Aufrufen ab und zu Crashs, was offensichtlich daran liegt, dass die MODI-DLLs es nicht mögen geladen, entladen und wieder geladen zu werden.

Download hier  MRi-Screen-OCR Version 2.0

Falls man MODI nicht hat, hier kann man es kostenlos bekommen:
http://support.microsoft.com/kb/982760

VS-Tipps & Tricks: Kommentare intelligent und einfach umbrechen

 Wer programmiert, der dokumentiert auch. Denke ich zumindest 😀

Ich zumindest habe teilweise Kommentare, die sich über 10 bis zu 100 Zeilen erstrecken. Die sind nah am Code und erklären, oft was die Hintergründe für das gewählte Design und Vorgehen sind.

Leider ist aber der Editor vom Visual Studio kein Word. D.h. absatzweisen Umbruch kennt das Ding nicht und manuell solche Texte inkl. Einrückungen und Listen mit Bindestrichen oder 1., 2., 3. zu formatieren ist etwas was gar keinen Spaß macht. Zudem sind die Kommentar Zeichen // oder * eher lästig als hilfreich beim schreiben.
Und auch VAX muss hier mal passen. Aber! Netterweise gibt e auch andere Addins.

Ich habe vor langer Zeit schon den Comment Reflower  entdeckt. Mit dem ist das Ganze ein Klacks.
Aus dem nachfolgenden Text:

// Dies ist ein Kommentar, den man nicht wirklich hier schreiben
// müsste und der
// eigentlich nichts bedeutet außer
// die Funktionen von einem netten Addin zu zeigen.
// Das
//  1. wirklich Arbeit erspart
//  2. total simpel zu bedienen ist
//  3. für alle VS-Versionen von 2005 über 2008 bis 2010 verfügbar ist.
// Was bei der Formatierung heraus kommt lässt sich sehen.

Wird in Null-Komma-Nichts der folgende Text:

// Dies ist ein Kommentar, den man nicht wirklich hier
// schreiben müsste und der eigentlich nichts bedeutet
// außer die Funktionen von einem netten Addin zu
// zeigen. Das
//  1. wirklich Arbeit erspart
//  2. total simpel zu bedienen ist
//  3. für alle VS-Versionen von 2005 über 2008 bis
//     2010 verfügbar ist.
// Was bei der Formatierung heraus kommt lässt sich
// sehen.

Wer noch mehr Beispiele sehen will, was das Tool leistet findet hier auf der Sourceforge Seite ein Vorher Nacher Pärchen.

Das Addin existiert für alles Visual Studio Versionen ab 2005.
Es kann hier heruntergeladen werden:

PS: Es empfiehlt sich ein Blick auf die Blockdefnition in den Einstellungen. Dort ist oft ein Leerzeichen hinter dem * bzw. // eingetragen. Leider lässt sich in meiner Version hier RegEx nicht einschalten. Wer also ein <tab>-Zeichen hinter dem * oder // hat wird sich wundern wenn das Addin keinen Kommentar findet. Ich habe das Leerzeichen einfach entfernt…

PPS: Für alle nicht C++ Entwickler. Das Tool funktioniert auch für VB und C# ❗

Tool: Screen-OCR, einfach mal Texte vom Monitor aus Bildschirmausschnitten und Grafiken in die Zwischenablage kopieren

Im Second-Level Support habe ich es oft mit Fehlermeldungen zu tun, die mir von Kunden als Screenshots gesendet werden. Um das ganze in unserem Support-System zu dokumentieren, müssen die oft genug abgeschrieben werden. Oder ich möchte diese Texte haben um sie einfach in Google suchen zu können. Viele Leute wissen nicht, dass man ganz einfach Texte aus Messageboxen in die Zwischenablage kopieren kann. Also bekommt man Megabyte große Screenshots.
Lästig…

Es gibt einige kleine Tools  für Geld (z.B. von Abbyy) und auch einige kostenlose habe ich mal ausprobiert, mit denen man solch einen Screen-OCR durchführen kann. Aber die waren alle nicht das wahre oder unverschämt groß.

Da ich wusste, dass es

  1. im MODI (Microsoft Office Document Imaging) ein einfaches COM Interface gibt,
  2. ein Screenshot einfach zu machen ist und
  3. man mit GDI+ alle möglichen Grafikumwandlungen machen kann benötigt man
  4. nur etwas C++ als Kleber um alles zusammen zu bringen.

Herausgekommen ist Version 1.0 von MRiScreenOCR.exe. Eine simple Freeware EXE, mit der man einen beliebigen Bildschirmausschnitt per OCR in Text umwandeln kann und wahlweise in einem Dialog anzeigen kann oder direkt in die Zwischenablage kopieren kann.
Optional kann man das ganze über ein paar Optionen im Systemmenü steuern.
Eigentlich komplett selbsterklärend.
Wer weiß, vielleicht mache ich mich noch an Version 2.0 und ergänze noch eine Trayicon-Funktion optional.

❗ Einzige Voraussetzung MODI (Microsoft Office Document Imaging) muss installiert sein, damit das kleine Tool arbeiten kann (siehe auch Anmerkung unten). Sonst benötigt man nichts. Die EXE funktioniert stand alone mit XCOPY Installation. Das Tool wurde mit VC-2010 erzeugt, man benötigt also mindestens Windows XP SP2.

Hier kann man MRiScreenOCR.exe kostenlos herunter laden und es steht jedem als Freeware zur freien Nutzung.

PS:
MODI ist übrigens teil von Microsoft Office 2003 und Office 2007. Leider ist es im Office 2010 nicht mehr enthalten. Schade, denn es war für mich das primäre Programm Dokumente zu scannen zu archivieren und auch zu indizieren.

Nachtrag 18.05.2010:
Es ist ohne weiteres möglich nur MODI aus Office 2007 alleine ohne weitere Komponenten zu installieren. Das funktioniert sowohl auf 32bit Systemen wie auch auf 64bit Systemen.

Nachtrag 01.06.2010:
Die Version 2.0 von MRiScreenOCR.exe ist nun verfügbar.

Nachtrag 03.10.2011:
Ich zitiere den Kommentar von Robin hier:

falls man MODI nicht hat, hier kann man es kostenlos bekommen:
http://support.microsoft.com/kb/982760

Tipps & Tricks: VS-2010 Hilfe aufbohren

Microsoft ist es wirklich gelungen in zwei großen Schritten die VisualStudio Online Hilfe bzw. MSDN Integration von einem brauchbaren Tool in VC6, über VS-2003/5/8 wo es gerade auszuhalten war, in VS-2010 zu einem Ding zu verwandeln, bei dem mir fast die Worte fehlen.
Man schmeiße alle Funktionen des Hilfe-Viewers weg und behalte gerade die F1-Taste… alle Vorteile, die mir als Vorteile verkauft werden (keine separate Installation, alles im gewohnten Browser etc. siehe Video unten), sehe ich nicht als Vorteile gegenüber den Nachteilen, die in Kauf genommen wurden.
Ein vielleicht hartes Urteil, aber es geht seit Jahren in dieser Beziehung leider nur bergab.
– Just my 2 cents – 🙁

Das Erste was ich sofort vermisst habe war in der folgenden Reihenfolge:

  1. Dynamic Help
  2. Table of contents (TOC)
  3. Sync to TOC
  4. Index
  5. Filter
  6. Direkte Suche in VS, oder dem entsprechenden Viewer

Ich bin dann auf im Internet auf die Suche gegangen und wurde mit 2 Tools fündig, die einem hier helfen können:

HelpViewerKeywordIndex

Aber wie angekündigt soll es auch hier Verbesserungen geben. Und das außerhalb der Wartungszyklen des VS (siehe Video unten mit Ryan Linton). Zumindest was den Index betrifft und die Suchmöglichkeit innerhalb von VS betrifft schafft ein kleines Tool von Ryan Linton (wie versprochen seit dem 20.04.) wenigstens etwas Abhilfe, der HelpViewerKeywordIndex.

Mit diesem Tool erhält man zumindest mal wieder den Index und ein Suchfenster in VS.
Auch dass das Sucherergebnis in einen VS-Fenster angezeigt werden kann ist nett. Leider betrifft diese Einstellung nicht die Funktion der F1-Taste. In diesem Fall wird immer noch der externe Browser angeworfen und nicht der interne, oder ich habe die Einstellung nicht gefunden wo man mit der F1-Taste ein Browser Fenster in VS öffnet.
Ganz verstanden habe ich auch die Option „Display TOC in page“ nicht.
Das Tool ist zumindest mal ein kleiner Schimmer eines eventuellen zukünftigen Lichtblicks 😉

Aber wer weiß, vielleicht lässt Version 1.1 von  HelpViewerKeywordIndex nicht lange auf sich warten.

H3Viewer

Mit H3Viewer, von meinem MVP-Kollegen Rob Chandler, bekommt man zumindest mal wieder das, was man in VS-2008 auch hatte. Table of Contents, Sync to contents. Und der Viewer ist nicht im Browser. Mit dem Ding lässt sich leben oder zumindest ersetzt es den Viewer den wir aus VS-2005/8 kannten ziemlich gut. Und ja, es gibt auch hier wieder Bookmarks, die jetzt keine Favoriten Einträge im Browser sein müssen 😉
Besonders gefreut habe ich mich auch über die Funktion im Index die Doubletten zum gleichen Stichwort im Index in einem separaten Fenster wieder angezeigt zu bekommen, denn nicht jeder Treffer zu GetWindowtext ist der den ich suche.
Nett auch die TTS Funktion (Text to Speech)
Hier fehlen jetzt eigentlich nur noch die Filter zum vollständigen Glück.

Aber wer weiß, was Microsoft uns demnächst noch zu bieten hat. Laut der Homepage von H3Viewer hat Microsoft noch bereits einige andere Viewer in der Schublade.

Siehe auch:
http://channel9.msdn.com/posts/kmcgrath/Help-30-New-Help-System-in-Visual-Studio-2010/

Links:
http://visualstudiogallery.msdn.microsoft.com/en-us/4af86641-a302-4edf-9853-007bcc670b30
http://mshcmigrate.helpmvp.com/viewer

Mal einen ganz anderen Blick auf seinen Code werfen mit CppDepend

Vor einiger Zeit habe ich versucht mit einem anderen Werkzeug mal den eigenen Code zu analysieren.
Ich habe CppDepend entdeckt.  http://www.cppdepend.com/

Gerade bei großen Projekten kann man schnell den Überblick verlieren und es ist schwierig die abhängigen Klassen und Objekte in Ihren Verbindungen zu sehen oder mögliche Designprobleme nachträglich festzustellen. Oder den richtigen Ansatzpunkt für Reviews zu finden. Man hat manchmal das Gefühl, dass etwas nicht stimmt, aber man weiß oft nicht genau was.

CppDepend kann helfen schlecht konstruierte Klassen zu finden, Fehler in den Namenskonfentionen oder der Dokumentation und gezielter auf notwendige Reviews hinzuweisen.
Durch eine eigene Abfragesprache ist es extrem einfach große unübersichtliche Funktionen zu finden. Klassen mit zyklischen Abhängigkeiten und extreme Vererbungstiefen aufzuspüren. Besonders einfach wird es zum Beispiel auch Namenskonventionen zu überprüfen. Die eigene Codebase wird durch die Abfragesprache analysierbar.

Ich empfand die graphischen Darstellungen der eigenen Codebasis und die Ergebnisse der Abfragen in diesen Grafiken als extrem anschaulich und nützlich. Weitaus mehr als manche tabellarische Analyse meines Codes.

Einen guten Einblick was hier möglich ist liefern die Case-Studies. Wie zum Beispiel die Analyse der MFC 8.0 (VC-2005) http://www.cppdepend.com/MFC.aspx. Man kann die MFC sicherlich nicht als Glanzstück des OOP bezeichnen, umso mehr ist es mal interessant mit diesem Tool einen Blick auf die MFC zu werfen. Wem das nicht anschaulich genug ist kann sollte sich auch die anderen Case-Studies mal ansehen. Oder noch besser die Software 2 Wochen testen.

Ein gutes Tool, aber leider nicht ganz billig, aber in jedem Fall mal einen Blick wert.