-
ACHTUNG - NEUES BLOG
Ab sofort steht unter http://devtyr.norberteder.com mein neues Blog zur Verfügung. Dieses Blog wird nicht weiter betreut, bleibt aber erhalten. Neue Eintr%auml;ge erfolgen nur mehr im neuen Blog. Kommentare werden ebenfalls nicht mehr behandelt. Wer weiterhin meinen Einträgen und Aktivitäten folgen möchte, möge bitte RSS-Feeds, Verlinkungen etc. an die neue Location anpassen.
|
Was der Bogensport mit Softwareentwicklung zu tun hat ...
25.10.09 - Entwicklung, Diskussionen, Qualitätsmgmt. Beitrag von Norbert Eder| | Seit nun mehr als einem Jahr gehe ich in meiner Freizeit dem Bogensport nach. Weit entfernt ein Experte in diesem Sport zu sein, hat mich dennoch die Faszination dieses Sports erreicht. Anfangs als Ruhepol, quasi als Ausgleich, zu stressreichen Zeiten angesehen, tun sich mit Fortdauer des Trainings einige Parallelen zur Programmierung auf.
Während Experten danach trachten, mit jedem Schuss das „Gold“ zu erreichen steht für mich im Vordergrund, eine gute Grundleistung abzurufen und alle Pfeile eng beieinander ins Ziel zu bringen. Können alle Pfeile eine Schussserie im „Gold“ platziert werden, wäre dies natürlich das Optimum – die beste aller möglichen Lösungen. Tatsächlich kann es aber auch schon als gute Leistung angesehen zu werden, alle Pfeile eng beieinander in die 8er zu senden. Alle im 8er zu versenken, jedoch verteilt über den gesamten Ring wäre hingegen keine besonders gute Leistung, sondern eher dem Glück zuzuschreiben. Warum?
Sind alle Pfeile eng beieinander muss nur eine kleine Korrektur vorgenommen werden und sie alle können im höchsten Ziel platziert werden. Können die Pfeile jedoch nicht angrenzend gereiht werden, wird es zunehmend schwieriger, dies zu tun.
Die Quintessenz daraus ist, dass zu Beginn des Trainings nicht das Erreichen vieler Punkte ausschlaggebend ist, sondern vielmehr die enge Platzierung der Pfeile, egal wohin. Ist dieser Schritt getan, können weitere Verbesserungen vorgenommen werden. Zu dieser Fähigkeit müssen weitere entwickelt werden:
Automatisierung der Abläufe: Wer sämtliche Abläufe verinnerlicht und automatisiert, muss sich darüber keine Gedanken machen. Es geschieht einfach automatisch. Übrig bleibt, sich voll auf das eigentliche Ziel konzentrieren zu können. So verhält es sich auch in der Softwareentwicklung. Nur wer seine Werkzeuge kennt und sie verinnerlicht, hat den Kopf für die eigentliche Lösung eines Problems frei. Nur wer nicht die Feinheiten hinterfragen muss, kann einen Überblick über das Gesamte erlangen und so seine Fähigkeiten voll ausspielen.
Konzentration: Dies ist wohl eine der wichtigsten Fähigkeiten des Bogensports. Wer sich nicht konzentrieren kann (aus welchen Gründen auch immer), wird weder den richtigen Zeitpunkt finden, den Pfeil loszulassen ( zu releasen), noch einen geschmeidigen Bewegungsablauf erreichen. Das Erfassen des Zieles wird extrem schwierig, wenn nicht gar unmöglich. Die täglichen Anforderungen an einen Entwickler erfordern ebenfalls ein gehöriges Maß an Konzentrationsfähigkeit. Wir sind ständig von äußeren Einflüssen (Lärm, Anfragen, Emails, Messenger, etc.) umgeben. Diese müssen über einen notwendigen Zeitraum ausgeblendet werden können. Nur so ist es möglich, sich auf das Wesentliche zu beschränken bzw. dieses überhaupt erst ins Licht zu rücken. Wer schon einmal mit dem Bogensport (oder einer ähnlichen Sportart) in Berührung gekommen ist weiß, dass das Training eigentlich sofort abgebrochen werden kann, wenn die Konzentration nicht stimmt bzw. diese nicht geschaffen werden kann.
Genauigkeit: Schon mal versucht, ohne genau zu sein, das Gold zu treffen? Vielleicht auch getroffen? Zufall. Wer keine Genauigkeit an den Tag legt (angefangen bei der Körperhaltung, dem Bewegungsablauf, der Konzentration, etc.) wird keine beständige Leistung bringen. Allenfalls basieren Erfolge auf Glück. Darauf kann man sich nicht verlassen, möchte man eine solide Leistung über einen langen Zeitraum erbringen. In der Softwareentwicklung spielt Genauigkeit ebenfalls eine große Rolle. Im Gegensatz zum Bogensport können die meisten Softwareentwickler davon ausgehen, dass keine Menschenleben in Gefahr sind. Nichts desto trotz müssen Anforderungen korrekt umgesetzt, Qualität hochgehalten und Termine eingehalten werden. Dies kann nur durch ein ausreichendes Maß an Genauigkeit erreicht werden.
Der Verzicht auf die notwendige Konzentration und Genauigkeit kann beim Bogensport – wie bereits erwähnt - schnell ein Menschenleben kosten. Im geringsten Fall entstehen Materialkosten. Diese sind nicht zu unterschätzen. Ein verirrter Pfeil der Mangels an Konzentration abgeschossen wurde, fällt sehr schnell Hartholz, Beton, Steinen oder anderen Hindernissen zum Opfer. Bedenkt man die verhältnismäßig hohen Kosten eines Pfeiles rentiert es sich nicht, unkonzentriert diesem Sport nachzugehen. Pro Trainingssession zwei zerstörte Pfeile á 10 Euro ergeben 20 Euro Minus pro Trainingseinheit. Unter der Annahme, dass pro Woche zweimal trainiert wird, entstehen im Jahr dadurch Kosten von über 2000 Euro. Sehr viel für ein Hobby. In der Softwareindustrie können Fehler, nicht eingehaltene Termine etc. ebenfalls ungeahnte Kosten verursachen. Angefangen von kostenlosen Fehlerbehebungen (Personalkosten, es könnte an anderen, lukrativen Projekten gearbeitet werden), Pönalezahlungen für nicht eingehaltene Termine bis hin zum Konkurs des Unternehmens – und somit der Verlust des eigenen Jobs - ist alles möglich. Ein sehr hoher Preis.
Natürlich kann man daraus nur sehr schwer Regeln für die Allgemeinheit abbilden. Für mich konnte ich mit auf den Weg nehmen, dass das Einhalten kleiner Regeln, angelehnt an mein Hobby, die Arbeitsleistung erheblich steigern kann. Jeder muss seinen eigenen Weg finden, mit bestimmten Situationen umzugehen, ein Ausgleich tut jedoch immer gut, gibt Kraft für schwere Zeiten und hilft, Probleme aus einem anderen Licht zu betrachten.
| | | Kommentar hinzufügen
| 1 Trackbacks
| Permalink | Trackback-URL |
.NET Open Space Wien 2009
08.10.09 - .NET, Internet, Community Beitrag von Norbert Eder| | Die besten Gespräche hat man fernab von einer festgelegten Agenda, bei einem Kaffee und beim "du". Hier gibt es keine Rollenaufteilung in Sprecher / Zuhörer, Entwickler / Administrator, Softwareentwickler / Projektmanager usw. und die Themen finden sich vor Ort ganz von selbst. Das ist die Idee vom .NET Open Space Wien: Alle sind gleich! Auch die Organisatoren halten sich im Hintergrund und moderieren nur wenig. Themenfelder sind unter anderen: .Net, Alt.Net, und Soft Skills.
Welche Inhalte in den einzelnen Themenfeldern bearbeitet werden, bestimmst du vor Ort, denn die Veranstaltung ist Open Space! Die Teilnahme ist kostenlos. Erfahrungsaustausch ist das A und O und steht im Vordergrund. Die Sprache beim .NET Open Space Wien 2009 ist Deutsch. Mehr gibt's nicht zu sagen. Erlebe die "Unkonferenz", die sich auf Erfahrungsaustausch konzentriert. Nimm daran teil! Abonniere jetzt einfach unseren Newsletter dazu.
Die Veranstaltung ist zweitägig und findet im Microsoft Innovation Center in Wien am 5. und 6. Dezember statt. Die Anmeldung funktioniert ganz einfach über das Wiki, welches unter http://wien.netopenspace.de/2009/MainPage.ashx erreichbar ist.
Wenn Du jemanden kennst, der als Sponsor auftreten will oder Du selbst etwas zum Erfolg der Veranstaltung beitragen willst, dann melde Dich bitte einfach bei Mario Meir-Huber (mario@meirhuber.de) oder Norbert Eder (csharp@gmx.at). Eine Übersicht der aktuellen Sponsoren und der Sponsor-Möglichkeiten sind auf der Sponsoren-Seite zu finden.
| | | 1 Kommentar
- 1155 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
Commands aus ListView ausführen
19.09.09 - .NET, WPF Beitrag von Norbert Eder| | Mit Hilfe einer ListView ist es einfach möglich, Daten aus einer Datenquelle darzustellen. Dazu ist lediglich die Eigenschaft View zu definieren. Durch die Angabe von GridViewColumn Elementen und dem dazugehörigen DisplayMemberBindings werden die Daten aus der zugewiesenen Datenquelle auch schon angezeigt.
<ListView ItemsSource="{Binding MyOpenTickets}" BorderThickness="0" Margin="4">
<ListView.View>
<GridView>
<GridViewColumn Header="Id"
DisplayMemberBinding="{Binding Id}"/>
<GridViewColumn Header="Name"
DisplayMemberBinding={Binding Name}/>
<GridViewColumn Header="Version"
DisplayMemberBinding="{Binding Version.Name}"/>
<GridViewColumn Header="Status"
DisplayMemberBinding="{Binding State}"/>
</GridView>
</ListView.View>
</ListView>
Eine Anforderung ist nun sehr oft, dass die angezeigten Daten in einem Detailfenster geöffnet werden sollen. Dazu muss - idealerweise - ein Command untergebracht werden. Dies kann durch die Angabe eines CellTemplates bewerkstelligt werden.
<ListView ItemsSource="{Binding MyOpenTickets}" BorderThickness="0" Margin="4">
<ListView.View>
<GridView>
<GridViewColumn Header="Id"
DisplayMemberBinding="{Binding Id}"/>
<GridViewColumn Header="Name"
CellTemplate="{StaticResource TicketClickableButton}"/>
<GridViewColumn Header="Version"
DisplayMemberBinding="{Binding Version.Name}"/>
<GridViewColumn Header="Status"
DisplayMemberBinding="{Binding State}"/>
</GridView>
</ListView.View>
</ListView>
In der zweiten GridViewColumn-Definition wird das CellTemplate definiert. Zu beachten ist an dieser Stelle, dass kein DisplayMemberBinding angegeben werden darf. Hier nun das verwendete Template:
<DataTemplate x:Key="TicketClickableButton">
<Button Command="{Binding OpenTicketCommand}"
Content="{Binding Name}"
Style="{StaticResource ProjectLinkButton}" />
</DataTemplate>
Das Template stellt eine einfache Schaltfläche dar, welche an einen Command gebunden ist. Zusätzlich wird an der Schaltfläche das Binding definiert.
Eine mögliche Umsetzung kann so aussehen:

| | | 2 Kommentare
- 937 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
.NET BlogBook wieder verfügbar
29.08.09 - Blog-Intern, .NET, Grundlagen, Base Framework, WPF, ASP.NET, Silverlight, Internet, Community Beitrag von Norbert Eder| | Wie auch mein Blog waren einige meiner Websites lange Zeit nicht online (bzw. sind es teilweise noch immer). Dies wird sich nun - durch einen Wechsel - wieder ändern.
Den Anfang macht dotnet-blogbook.com. Die Site steht ab sofort wieder zur Verfügung - jedoch noch nicht alle Downloads. Alle BlogBooks bis inklusive Version 3 können herunter geladen werden. Die weiteren Ausgaben werden in den kommenden Tagen hinzugefügt und stehen dann wie gewohnt zur Verfügung.
Gerade zum BlogBook habe ich sehr viele Anfragen bekommen. Das Projekt wird weitergeführt und es wird auch wieder aktualisierte Versionen geben.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
Silverlight 3 ist da!
10.07.09 - .NET, Silverlight Beitrag von Norbert Eder
Neuer Artikel: Validierung unter WPF
02.07.09 - .NET, WPF, Silverlight Beitrag von Norbert Eder| | In der aktuellen Ausgabe der Visual Studio One findet sich mein neuester Artikel Validierung unter WPF.
Intuitive Anwendungen weisen den Benutzer auf Fehleingaben hin. Idealerweise geschieht dies direkt in der UI, frühzeitig, ohne lange Wartezeiten. Zusätzlich ist es notwendig, Daten in der Businesslogik auf Korrektheit und Vollständigkeit zu prüfen. Norbert Eder diskutiert die Validierungsmöglichkeiten im Rahmen der Windows Presentation Foundation.
Weitere Informationen finden sich auf der Homepage von Visual Studio One.
| | | Kommentar hinzufügen
| 1 Trackbacks
| Permalink | Trackback-URL |
Glückwunsch zum Microsoft MVP 2009!
01.07.09 - Blog-Intern, .NET, WPF, Silverlight, Internet, Community Beitrag von Norbert Eder| | Herzlichen Glückwunsch! Wir freuen uns, Ihnen den Microsoft® MVP Award 2009 verleihen zu können! Diese Auszeichnung wird an herausragende, führende Mitglieder der technischen Communities verliehen, die ihre wertvollen praktischen Erfahrungen mit anderen Menschen teilen. Wir schätzen Ihren außerordentlich bedeutenden Beitrag in den technischen Communities zum Thema Client App Dev im vergangenen Jahr hoch ein.
Ein Jahr ist rum und auch dieses Mal darf ich mich über die Verleihung des MVP Awards freuen. Dies macht Mut, so weiter zu machen und auch weiterhin mit vollem Elan, Teil dieser wunderbaren Community zu sein. Ein herzliches Dankeschön, ich fühle mich geehrt!
| | | 7 Kommentare
- 714 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
Wie gut sind Bing-Ergebnisse wirklich?
12.06.09 - Internet, Community Beitrag von Norbert Eder| | In den letzten Tagen habe ich total auf Bing gesetzt. Die Ergebnisse sind gefühlt gut. Aber sind sie das auch wirklich? Auf einen einfachen und schnellen Vergleich hat mich das MSDN Austria Team aufmerksam gemacht: http://blindsearch.fejus.com/.
Einfach den gewünschten Suchbegriff eingeben und die Ergebnisse von Bing, Google und Yahoo werden in drei Spalten nebeneinander aufgelistet. Ein direktes Vergleichen wird also leicht gemacht. Der Clou: Im ersten Moment erfährt man nicht, welche Ergebnisse von welcher Suchmaschine geliefert werden. Erst nach der Abgabe eines Tipps (welche Ergebnisse stammen von Bing?) erhält man die Auflösung.
Kleiner Hinweis: Man kann sich durchaus täuschen :)
| | | 1 Kommentar
- 511 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
Artikel: Silverlight wird erwachsen
07.06.09 - .NET, Silverlight Beitrag von Norbert Eder| | In der aktuellen Ausgabe der Visual Studio One befindet sich von mir der Artikel Silverlight wird erwachsen
Eine Flut an neuen Versionen hat sich auf uns ergossen. Darunter finden sich auch neue Beta-Versionen zu Silverlight 3 und Expression Blend 3. Mit diesem Gespann können Sie ultimative Silverlight-Anwendungen entwickeln. Aber wie gut ist Silverlight 3 wirklich? Dieser Artikel stellt die Neuerungen vor und diskutiert einige interessante Aspekte.
Weitere Informationen finden sich auf der Homepage von Visual Studio One.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
Viele Beispiele zu Data Binding, MVVM, MVC und mehr
02.06.09 - .NET, Grundlagen, WPF Beitrag von Norbert Eder| | Du suchst WPF-Beispiele zu Data Binding (Datenbindung), MVVM, MVC oder anderen Bereichen? .NET GUI bietet mittlerweile zahlreiche Beispiele zu diesem Thema und es werden mehr. Diese stehen als vollständige Solutions zum Download bereit: .NET GUI Downloads.
Zu den meisten Beispielen finden sich auch dazupassende Artikel, die Hintergrundwissen vermitteln.
Diese Liste wird laufend um neue Beispiele und Artikel erweitert und stellt mittlerweile einen guten Anlaufpunkt dar.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL | Zurück Weiter
|
|
|
|
|
|
|