Dienstag, 29. April 2008

Visual Studio XML Documentation

 

Heute mal etwas was mit Softwareentwicklung zu tun hat. Visual Studio hat ja, ich glaube seit Version 2002, eine Möglichkeit eingebaut Sourcecode direkt zu dokumentieren, so wie man es von javadoc, oder auch Doxygen her gewohnt ist. Das ist einmal was nettes, vorallem weil man sich dann das mühsame nachträgliche Dokumentieren des Sourcecods erspart, und man sollte ja seinen Code dokumentieren ;-).

Aber das was dabei raus kommt ist weniger fancy als das was javadoc oder Doxygen ausspuckt, alles was man bekommt ist ein einziges XML File wo alle Klassen, ihre Methoden und sonstiges vermerkt ist, keine schöne HTML Dokumentation gar nichts. Ist ja super wenn man alles dokumentieren kann, mit einer eigentlich recht guten Syntax und gute Unterstützung von Visual Studio selbst, nur ist halt dann trotzdem der Sinn dahinter dass man eben diese Dokumentation auch später dem Nächsten geben kann, ohne dass er den Source dazu braucht. Das XML File ist zwar sauber genug aufgebaut dass man ein Postprocessing damit machen kann, aber dafür muss man erst wieder ein externes Tool entweder schreiben, oder benutzen, oder gleich Doxygen die ganze Arbeit machen lassen und auf das XML - File, das Visual Studio (eigentlich der jeweilige Compiler, ist IMHO auch spannend, aber bei näherem Nachdenken doch logisch) liefert.

Noch ein Wort zum Aufbau des XML - Files das Studio produziert:
Es ist zwar schön ersichtlich, was eine Klasse, was eine Methode, was ein Field oder eine Property ist, es wäre allerdings (für einen Postprocessor) durchaus hilfreich zu wissen welchen Accessmodifier (public, protected, private static usw.) das jeweilie Element hat, fällt scheinbar unter: "Gute Idee, aber nicht zu Ende gedacht".

Als Beispiel hier eine kleine simple Klasse ToDocument mit ihrer Sourcelevel Dokumentation:


/// <summary>
/// This is a fanzy class that does a lot of things
/// </summary>
public class ToDocument
{
/// <summary>
/// A fancy method
/// </summary>
/// <param name="fnacyParam">A fanzy param</param>
/// <returns>a fancy value</returns>
/// <exception cref="Exception">On a fancy condition</exception>
public int DoFanzyThings(int fnacyParam)
{
return (0);
}

/// <summary>
/// A fancy member
/// </summary>
private int fancyMember = 0;
}


Und hier das was an "Dokumentation" ausgespuckt wird:

<?xml version="1.0"?>
<doc>
<assembly>
<name>DocTest</name>
</assembly>
<members>
<member name="T:DocTest.ToDocument">
<summary>
This is a fanzy class that does a lot of things
</summary>
</member>
<member name="M:DocTest.ToDocument.DoFanzyThings(System.Int32)">
<summary>
A fancy method
</summary>
<param name="fnacyParam">A fanzy param</param>
<returns>a fancy value</returns>
<exception cref="T:System.Exception">On a fancy condition</exception>
</member>
<member name="F:DocTest.ToDocument.fancyMember">
<summary>
A fancy member
</summary>
</member>
</members>
</doc>

Das XML sieht ein wenig anders aus als jenes das Studio generiert, aber nur der Einzug von vorne ist anders, der Inhalt ist der selbe (Man könnte BlogSpot vielleicht korrektes Einbinden von Dateien beibringen ;-) )

Also muss man auch bei Visual Studio weiterhin auf Doxygen zurück greifen um vernünftige Sourcedokumentation zu erhalten, da Doxygen die Dokumentationssyntax von Visual Studio mitlerweile auch beherscht :-)

Freitag, 18. April 2008

Adobe Album, oder nein ich scrolle deine Bilder nicht

Technorati-Tags: ,,

 

So vorweg das Teil heißt vollausgesprochen Adobe Photoshop Album Starter Edition, das wär für die Überschrift aber zu lang gewesen :-).

Es ist zwar nett dass auch Adobe mal solch eine Software gratis hergibt, aber welchem Menschen / UI Designer fällt sowas bitte ein:
Das Programm registriert sich unter Windows als Defaultprieviewer für ein paar Bildformate (warum PNG hier nicht dazu gehört ist mir bis heute ein Rätsel :-) ), gut verwendet man ihn halt, weil man davon ausgeht, dass er besser mit Bildern zu recht kommt als die Windows Bild- und Faxanzeige.

Man hat gerade ein paar Fotos von seiner Digitalkamera auf den Rechner überspielt und will sich diese mal im Schnellverfahren ansehen, ok, markiert man das erste, öffnet den Prieview und freut sich das Bilder etwas schneller geladen werden als mit der bekannten Bild- und Faxanzeige die Windows eingebaut hat.

Ok ein schönes Foto gefunden, einmal ein wenig gezoomt, das Bild ist für die Darstellung zu groß, ok man dreht mal am Mausrad, und dreht und dreht und dreht...;-).

Wie kann es bitte sein, dass ein namhafter Hersteller für Bildbearbeitungssoftware "vergisst" ein Mausrad in seine Software einzubauen? Und nein, Ctrl+Mausrad tut genau so nichts.

Wenn man seine Software schon Starter Edition tauft, dann soll sie eben für jeden wie gewohnt benutzbar sein, also auch mit Mausrad, auch wenn ich eher ein Fan der Tastatur bin, gewisse Funktionalität der Maus schätze ich persönlich dennoch, und nein man kann scheinbar das Bild auch nicht mit der Tastatur bewegen ;-).

Kuriosum am Rande: Die Windows Bild- und Faxanzeige kann mit dem Mausrad umgehen, wenn auch nur für das Zoomen, wofür man den Unterschied zwischen Ctrl+Mausrad und Mausrad erfundenen hat und ihn genau bei sowas dann erst nicht umsetzt wird mir auch ein Rätsel bleiben :-).

Also bitte liebe UI - Entwickler behaltet den User eurer UIs im Kopf :-)

Dienstag, 15. April 2008

Skype, oder bin ich online oder doch offline

Technorati-Tags: ,

 

Ich möchte mal ein paar Worte zu Skype verlieren, auch wenn mir noch keine Features aufgefallen sind die nicht zu Ende gedacht wären, legt Skype doch gewisse Eigenheiten an den Tag.

Beispielsweise, bin ich es gewohnt mehrere Anwendungen parallel zu starten, oder besser halt so parallel es geht ;-) Jenachdem wer am schnellsten startet, arbete ich dort als erstes Los. Jede Anwendung die mir bekannt ist bringt es zu stande so zu starten, dass sie nicht im Vordergrund sein muss, nur nicht Skype *argh*. Skype drängt sich bei jeder Gelegenheit in den Vordergrund. Sowas kann echt nerven, wenn man gerade dabei ist sein Passwort wo einzutippen, und dann Skype sich mit Gewalt den Focus holt.

Weiters kommt Skype nicht wirklich gut damit klar, wenn Leute offline gehen, Kontakte die schon lange nicht mehr online sind werden weiterhin als online gezeigt, wenn man das Netz (aus welchen Gründen auch immer) verliert, braucht Skype zu mindest einen Neustart (der Anwendung) um mit zu bekommen dass man wieder Netz hat und auch Messages verschicken kann (obwohl Skype einen schon viel länger als online makiert :-) ). Wobei das Problem mit dem Online-Zeigen von Leuten die offline sind immer weniger oft vorkommt.

Aber ich will hier nicht nur schimpfen, was Skype wirklich gut kann sind Emotions und animierte Emotions, scheinbar ist Skype die erste Anwendung die auf die glorreiche Idee kommt dass ROFL vielleicht mittels eines rollenden Smilies dargestellt werden könnte ;-)

Zu mindest unter Windows kann man Skype mittels Tastenkombination aus dem Systray holen, was sehr praktisch ist, wenn man die Wege zwischen Tastatur und Maus nicht mag :-), warum das unter Linux, bzw. KDE (die ich verwende) nicht geht soll mir für immer verschlossen bleiben ;-).

Samstag, 12. April 2008

Virtual Desktops unter Windows

Jeder der Linux kennt und benuzt kennt dieses System, man hat nur einen Bildschrim und viel zu viele Fenster um sie auf diesem einen Bildschirm darzustellen. Gerade bei kleinen Displays, wie es bei mir am Notebook der Fall ist (15'', bei max 1024x768 Auflösung) geht einem bald einmal der Platz aus. Gut Linux, bzw. eigentlich der Windowmanager, stellt dem Benutzer sog. virtuelle Desktops zur Verfügung, wo man ganz bequem seine Fenster offen hat, die man organisieren kann, zum Beispiel in meinem Fall, einen fürs Programmieren, dann einen für Browser, Mail, Skype usw und vielleicht noch einen für restlichen Krimskrams ;-)

Gut Widnows hat solch ein Feature nicht im Lieferumfang, aber es gibt ein powertoy vom Hersteller, das man gratis herunterladen kann (ich poste absichtlich keinen Link ;-) ).

Gut installiere ich so vor mich hin, dauert nicht lange, aber wo starte ich das Ganze?
Nach langem Herumsuchen finde ich es endlich, es ist eine neue Symbolleiste, die man nur (und nur dort) über das Kontextmenü der Taskliste aktivieren kann, das nennt man Usability ;-) Auch wenn der Platz logisch ist, könnte man das bei der Installation wenigstens sagen, weil logische Dinge erwartet man sich dann doch eher selten ;-)

Soweit so schön, mal ausprobiert, funktioniert eigentlich ganz gut, die Vorschau rechnet ein wenig lang, aber das war zu erwarten.

Man kann bequem mittels Win + 1 - 4 zwischen (der beschränkten Anzahl der Desktops hin und her switchen, warum auch immer diese Anzahl beschränkt ist, vorallem auf 4 ;-) ), ein simples Win + Tab um einfach ziwschen allen Desktops hin und her zu schalten exsistiert natürlich nicht (analog zu Alt + Tab).

Ok, bin gerade nicht auf Desktop 1, der Systray meldet mir, dass ich ein Mail bekommen habe, gut Klicke auf das Symbol und was passiert? Nein ich lande nicht in jenem Desktop in dem das Mailprogramm liegt, nein das Mailprogramm wird in den aktuellen Desktop gezogen, vielleicht nicht unbedinggt schlau, aber wahrscheinlich einfacher umzusetzen, ok, dann schieben wir das Mailprogramm halt wieder zurück... denkst'e :-).

Nirgends eine Möglichkeit ein Fenster zwischen Desktops hin und her zu bewegen, weder in den Optionen, noch in der Symbolleiste für dieses Powertoy, noch als Shellerweiterung im Fenstermenü.

Auch wenn das Tool gratis ist, muss es nicht heißen, dass es nur halbe Funktionalität zur Verfügung stellen muss. Ich nehem mal an das sowas geht, da ein anderer Hersteller auch solch ein Tool zur Verfügung stellt, dass Fenster zwischen Desktops hin und her bewegen kann, auch wenn dieses Tool auch kein Win + Tab kann... :-)

Fällt für mich einfach unter "Netter Gedanke, aber nicht zu Ende gedacht"

Eröffnungspost

So jetzt habe auch ich einen Blog ;-) Nachdem ich sehr viel Zeit damit verbringe mich über Software zu beschweren, in der zwar gute Grundkonzepte enthalten sind, diese konzepte aber nicht fertig gedacht werden, will ich solche Gedanken hier der Welt zugänglich machen :-).

Von Zeit zu Zeit werde ich auch nicht nur über Software hier reden, sondern auch über nadere Dinge die nicht fertig gedacht wurden, bzw. einfach falsch ausgelegt sind.

Ich wünsche jeden viel Spaß der meine Ergüsse hier liest :-)