Mudu’s Blog
Entschuldigung, darf ich Ihren fachlichen Disput da mal stören?
The Fabled City
September 26, 2008 on 5:37 pm | In Sonstiges | No CommentsHeute ist das zweite Album von Tom Morello als The Nightwatchman, Fabled City, erschienen. Ich habe es heute bereits im Briefkasten gehabt (wieder schneller als gedacht, CeDe.ch sein Dank), und kann es nur jedem empfehlen.
Für One Man Revolution, ebenfalls eine m.E. must-have-Scheibe, ist es ein würdiger Nachfolger. Anders als der heutige Mainstream, aber cool. Fabled City, Whatever It Takes und The Lights are on in Spidertown sind beispielsweise nette Stücke und zum Reinhören auf Youtube verfügbar.
Datenbankdiagramm von SQL Server 2008 in Visio 2007
September 18, 2008 on 4:43 pm | In Software Development | 5 CommentsHeute habe ich meine erste Frage auf stackoverflow.com gestellt. Die Plattform ist in der Betaphase, und darauf gestossen bin ich vor längerer Zeit über codinghorror.com, dem bekannten Blog von Jeff Atwood. Eine sehr coole Plattform, jedem Entwickler zu empfehlen!
Meine Frage ging um Microsoft Visio 2007 und den Microsoft SQL Server 2008. Ich wollte ein Datenbankdiagramm machen (natürlich per Reverse Engineering und nicht etwa von Handschuh), leider geht das nicht. Keine Stunde später hatte ich meine Antwort, zitiert aus den Microsoft-Foren:
Further investigation reveals that this is expected behavior for Visio 2007. When Visio opens a connection using the Visio SQL Server Driver it checks the server version and since SQL Server 2008 shipped after Visio 2007 it doesn’t recognise SQL Server 2008 as a supported version and closes the connection. You can wait for a future version of Visio to ship which does recognise SQL Server 2008 or use the Visio Generic ODBC driver which can successfully open connections to SQL Server 2008. A third option is to use a copy of SQL Server 2005 for initial reverse engineering. The Visio team is aware of this issue.
Das ist natürlich noch uncool.
WAB-Kurse für Neulenkerchen?
September 12, 2008 on 3:12 pm | In Auto und Verkehr | 2 CommentsIch bin bereits in die neue Regelung gefallen und habe meinen Führerschein im Dezember vorletzten Jahres bis 2009 auf Probe erhalten. Mittlerweile habe ich die beiden obligatorischen WAB-Kurse besucht. Beide Kurstage waren keineswegs überflüssig, beide hätten jedoch m.E. auch viel mehr Potential.
Wichtige Nebensachen
Unabhängig von den Kursen selbst fällt durchs Band die haarsträubende Unprofessionalität im Umgang mit den Besuchern auf. Die Neulenker werden fast durchs Band geduzt und verniedlicht und viele Publikationen in dem furchtbaren Stil verfasst, der üblicherweise in gängige Präventionskampagnen verwendet wird - mit dreizehnjährigen als Zielgruppe. Ich habe überhaupt nichts gegen die Du-Anrede, sofern sie respektvoll und gegenseitig ist. Während den Kursen war dies der Fall und sehr angenehm.
Die Moderatoren pflegten während des Kurses einen angenehmen und konstruktiven Umgang und beantworteten Fragen in der Regel (mit einzelnen Ausnahmen) kompetent. Wir wurden auch oft zu defensivem Fahren aufgerufen, jedoch mit gut untermauerten Argumenten und ohne erhobenen Zeigefinger. Wichtig wäre es allemal, immer mal wieder darauf gestossen zu werden…
Nicht gerade förderlich war allerdings die Mittagspause am zweiten Kurstag, während der sich drei der Moderatoren lautstark über “abzockerische” Radarkontrollen und unfähige blonde Polizisten ausliessen (natürlich ohne zu vergessen, die eigenen Fahrfähigkeiten aufs äusserste zu loben). Die Szene war köstlich (selbstverständlich mit der stilechten Faust auf dem Tisch), nur hätten es nicht unbedingt Kursmoderatoren und Fahrlehrer sein sollen sondern eher gewöhnliche Boulevardblattleser und nur-Selbstfahrer. Dann wäre es wirklich lustig gewesen und hätte die vielen Worte über defensives Fahren nicht auf diese Weise in Frage gestellt.
Der erste Kurstag
Im ersten Kurs lag der Fokus auf einzelnen Situationen im Strassenverkehr: Notwendigkeit einer Vollbremsung, Verhalten beim Schleudern, erhalten des Verkehrsflusses bei hoher Dichte. Ausserdem thematisierten wir die Einstellung von Kopfstützen und Sitzen und die Bremswege bei unterschiedlichen Geschwindigkeiten.
Dies war wirklich interessant, besonders die erste Übung: Etwa zehn Verkehrskegel in einer Reihe, wir fuhren im Slalom darum herum, wobei wir am Ende wendeten und in der Gegenrichtung im Slalom zurückfuhren. Dies haben wir mit allen Teilnehmern gleichzeitig so lange wiederholt, bis wir alle fahren konnten, ohne zwischendurch anzuhalten. Man lernt nie aus über die Erhaltung des Verkehrsflusses…
Eher unnötig fand ich daher, mit Vollbremsungen einen Viertel des Tages und etliche Rappen Reifengummi zu verbringen. Schliesslich war die Vollbremsung bereits Gegenstand der Fahrausbildung mit dem Fahrlehrer und keineswegs Neuland. Dies war allerdings dem Veranstalter leider nicht bekannt.
Der zweite Kurstag
Den zweiten Kurstag habe ich beim TCS absolviert. Gründe waren Differenzen mit WAB4u, Fehlinformationen und die Extremform der oben genannten Unprofessionalität seitens der Partnerfahrschule. Billiger ist der TCS auch (massiv), aber das stellte ich erst dann fest.
Der Kurs war wiederum interessant, aber weit entfernt vom Optimum. Pikant war schon, dass wir eine Stunde früher Feierabend machten. Zeit, die wir alle teuer bezahlt hatten. Die Feedback-Fahrt machte mich auf mehr Fehlgewohnheiten aufmerksam, als ich gedacht hätte, und nach der Eco-Fahrt war ich tatsächlich noch einmal einen kleinen Tick sparsamer.
Ein gegenseitiges Vorstellen des Nachbars zu Beginn des Tages - “Das ist der Hans-Detlev, sein Hobby ist der Computer, sein Traumauto ein Porsche 911 und er findet Autofahren super!” - ist ein Kennenlernspiel, das wir zu Beginn einer Lagers auch gerne mit unseren acht- bis zwölf-jährigen Jungscharkindern spielen, wobei es die älteren manchmal schon doof finden.
Die Theorie war leider wirklich wischi-waschi. Was uns beispielsweise in einer Stunde über Eco-Drive beigebracht wurde, war komplett in einer Broschüre zusammengefasst, die wir auch in zwei Minuten hätten lesen können (und die restliche Zeit mit weiterem Know-How füllen). Wir arbeiteten mit Flip-Chart, und Stichwort zusammentragen, und in Gruppen, und wieder zusammen. Ich weiss, man sollte keine Freizeit in Geld umrechnen. An so einem Kurstag tut mit ein solcher Leerlauf allerdings fast schon weh. Ich wäre überzeugt, dass diese vier Fahrlehrer - jeder mit Jahrzehnten an Fahrerfahrung - noch viel mehr wissen, als sie uns erzählt haben. Komprimiertes Know-How hätte ich erwartet, und keine gemütliche Kaffeerunde, die ich auch ohne Moderation haben kann.
Die wichtigsten Informationen waren folgende (jedenfalls wurden sie immer und immer wieder wiederholt):
- Eigentlich müssen wir eher so ein bisschen selber spüren, was wir wollen, als die Informationen und Tipps zu übernehmen.
- Nie würde sich jemand erlauben, unseren persönlichen Fahrstil zu kritisieren.
- Sie hoffen, wir hätten es lustig mit ihnen.
Nun ja. Ich gspüre di au!
Fazit
Die Kurse dürfen und sollen m.E. gerne obligatorisch bleiben, und zwar für alle. Schön wäre jedoch eine bessere Ausnutzung des Tages, da der Besuch doch auch nicht ganz kostenlos ist und zwei volle Tage eine Gelegenheit wären, eine grosse Menge an Know-How mit auf den Weg zu geben. Leider bleib sie teilweise ungenutzt, aber die aktuellen Inhalte waren und sind gut und wichtig.
Leider seien die Veranstalter von Rechts wegen enorm stark in der Gestaltung der Kurse limitiert, daher seien sie auch nicht so gut, sagte mir einer der Moderatoren während der Fahrt.
Daewoo Nubira 1.6SX
September 2, 2008 on 10:05 am | In Auto und Verkehr | 2 CommentsIm Club der Kraftfahrzeugsbesitzer bin ich gestern bereits willkommen geheissen worden. Und ein bisschen angeben wird mit einem neuen Auto wohl erlaubt sein:
Das Auto ist zwar ein Koreaner, aber wunderprächtig. Vom gekühlten Handschuhfach bis zum Lederlenkrad und dem handgeschalteten Getriebe ist alles vorhanden, nur der Tempomat fehlt. Jetzt warte ich nur noch auf die Rechnung der Versicherung, des Strssenverkehrsamtes und … und und. ;-)
PostgreSQL mit .NET via ODBC
Mai 27, 2008 on 5:34 pm | In BBB, IT, Software Development | No CommentsWichtig: Im Zusammenhang mit der LAP 2007 steht der Inhalt selbstverständlich wie alle anderen Dokumente unter der Bierlizenz (siehe LAP-Wiki). :)
Die Herren, für morgen ein kleines Sample, wie aus .NET auf eine PostgreSQL-Datenbank zugegriffen wird:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Odbc;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
using(OdbcConnection cn = new OdbcConnection(”Dsn=DateNDrive”))
{
cn.Open();
// Important: It seems necessary that table names must be in
// double quotes!
using(OdbcCommand cmd
= new OdbcCommand(”select * from \”public\”.\”Fahrzeug\”", cn))
{
using(DataSet ds = new DataSet())
{
using(OdbcDataAdapter da = new OdbcDataAdapter(cmd))
{
da.Fill(ds);
foreach(DataRow dr in ds.Tables[0].Rows)
{
Console.WriteLine(String.Format(”{0} {1}”,
dr[”Marke”], dr[”Typ”]));
}
}
}
}
}
}
}
}
Die Datei ist auch zum Herunterladen verfügbar. Erweiterungen kann jeder selbst vornehmen. :)
Die ODBC-Verbindung muss natürlich vorhanden sein. Man erstellt sie unter Windows mithilfe des “Data Sources (ODBC)” Administrative Tool (”%SystemRoot%\system32\odbcad32.exe”). Folgen Sie den Anweisungen, drücken Sie “Weiter”, akzeptieren Sie die Allgemeinen Geschäftsbedingungen für die Einrichtung einer Datenbankverbindung.
WCF Service Error (Silverlight 2 Development)
Mai 27, 2008 on 10:13 am | In Sonstiges | No CommentsWhile working with Silverlight 2 Beta 1 and a WCF Service as the data source, I received the following error (with a different messy filename of course):
Could not load file or assembly ‘App_Web_sjsnnzu9, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’ or one of its dependencies. The system cannot find the file specified.
This issue can be solved with the following change in the web.config file:
<compilation debug="true" batch="false">
The important part is the “batch=false”. See the MSDN “compilation Element (ASP.NET Settings Schema)” for further information about this section. At least it solves the issue so far. :)
Thank you to Olivier who wrote a comment on a post in Rick Strahl’s Web Log.
IEEE 802.1X authentication mit SP3: "Wired AutoConfig" (PEAP)
Mai 20, 2008 on 9:24 am | In BBB, IT | 2 CommentsAm Wochenende Service Pack 3 (Windows XP) installiert, und Mittwoch in der Schule erstmal kein Internet. Sonst allerdings habe ich noch keine Probleme mit dem Update bemerkt.
Mein Problem war, dass die Authentifizierung am Netzwerk nicht mehr geklappt hat, und das “Authentication”-Tab im Eigenschaften-Dialog der Local Area Network (LAN) Connection weg war. Dies lag daran, dass mit Service Pack 3 der “Wired AutoConfig” Service eingeführt wurde, welcher die Authentifizierung vornimmt: “This service performs IEEE 802.1X authentication on Ethernet interfaces”.

Service gestartet, per default stand er auf “manual”. Alles super. Nur wissen muss man das…
Gewohnt anders.
Mai 4, 2008 on 3:20 pm | In Wohnung | No CommentsEin Bild zum Slogan, zitiert von der IKEA-Webseite. Proudly powered by Vorgezogenes Sommerloch(tm).

TechTalk/Hands-on Lab "Silverlight 2 Beta"
April 22, 2008 on 9:25 pm | In IT, Software Development | No CommentsLetzte Woche hatte ich das Vergnügen, am MSDN TechTalk und Hands-on Lab zu Silverlight 2 dabei zu sein. Mit dem Lab wollte es leider aus technischen Gründen nicht klappen, die Speeches waren jedoch äusserst interessant. Die Präsentationen von Ronny Saurenmann und Sascha Corti stehen auf der Microsoft-Webseite bereit. Die “Hands-on Lab”-Unterlagen hat Sascha Corti in seinem Blog-Post “Silverlight 2 Beta 1 - End-to-End Hands-On Lab” veröffentlicht.
Die Speeches gaben einen Überblick über Silverlight und hoben einige Features hervor. Hier sind einige Elemente lose zusammengetragen. Interessant waren für mich besonders die Möglichkeiten bei der Arbeit mit Daten. An der Modifikation des Aussehens von Steuerelementen habe ich (persönlich) eher weniger Interesse.
- Cool fand ich das Silverlight Data Grid. Zumindest die Demonstration der Möglichkeiten war beeindruckend und ich habe ähnliche Möglichkeiten wie in der Windows-Entwicklung (kein Paging- und Postback-Käse wie im “normalen” Web). Besonders das “Inline-Editing” ist praktisch.
- Fehlen tut in der aktuellen Version (Beta 1) noch die Drop Down Box. Im Manual zum Lab ist eine Anleitung enthalten, selbst eine zu bauen, jedoch lässt sich meiner Meinung nach nicht in Minuten aus einer Text- und einer List-Box eine vollwertige Drop Down Box bauen. Das Steuerelement verhält sich, obwohl subtil, total anders als das Original. Man gehe jedoch davon aus, dass in der finalen Version eine Drop Down Box dabei sein.
- Silverlight bietet keine DataSet-Unterstützung. Der empfohlene Weg sei, eine List<T> (bzw. “Custom Objects”) zu verwenden, mit dem LINQ-Helper alle geänderten Werte zu suchen und zurück an die Datenquelle (in der Regel wohl an einen Web Service) zu senden.
- Silverlight unterstützt nur asynchrone Datenabfragen (Web Service, etc.). Dies ist logisch, schliesslich würde andernfalls der Browser des Benutzers stillstehen.
- Data Binding ist weitgehend unterstützt, die Anwendung gleich wie bei der Windows Presentation Foundation (WPF). Wichtig in diesem Zusammenhang: “DataContext”- und “ItemsSource”-Properties.
Bei diesen Präsentationen sah ich auch des öfteren LINQ in Anwendung. Dies war sehr interessant, da ich noch nie damit gearbeitet habe, gehört jedoch in einen anderen Topf.
Für einen .NET-Programmierer ist Silverlight bestimmt eine schöne Sache, um “interaktive Web-Applikationen” zu entwickeln. Das Plug-In ist für den Internet Explorer, Mozilla Firefox und Safari verfügbar und unter Linux als “Moonlight” bekannt. Ich wage nicht, über die potentielle Verbreitung ein Urteil zu fällen respektive zu urteilen, ob die Unterstützung dieser Plattformen in den meisten Fällen ausreicht.
Da bleibt noch eine Frage: Warum, wieso muss das GUI von Blend so schaurig unpassend schwarz sein? Bsst, ganze Strasse dunkel, warum?
Zum Schluss noch einige Zitate zur Auflockerung:
- “In Silverlight 1 you didn’t even have a text box!”
- “In this case I’d already said it’s the system but I’m sure it’s me who did something wrong.” (der Internet Explorer verabschiedete sich abrupt)
- “There is coffee, we know how important this is for you.”
- “Well, a demo application without an animation is no demo application.”
Data Source Independent DAL
März 11, 2008 on 8:17 pm | In Software Development | No CommentsAnother short piece of personal learning. Ich markiere für einmal den grossen Architekten. :)
Die Idee eines Data Access Layers ist gemeinhin, Datenzugriffe datenbank- oder sogar datenquellenneutral (neben relationalen Datenbanken allein können ja auch Textdateien oder ein Web Service als Datenquelle dienen) zu halten. In der Praxis ist dies nach meinen Erfahrungen nicht immer genau so der Fall, wie dies die Theorie anpreist.
Die Theorie sagt: Der Presentation Layer präsentiert Daten und enthält keine Logik (höchstens formelle Prüfung oder Plausibilisierung von Eingaben), der Business Layer hantiert mit den Business-Objekten und implementiert die Logik, der Data-Access Layer liest und speichert die Daten und abstrahiert die Zugriffe auf die Datenquelle auf allgemeinem Level.
Ich wollte nun einen Business Layer, der weder von der Datenquelle abhängt noch hunderte Zeilen Code enthält, um die netten Rückgabewerte und Ausgabeparameter wieder in Objekte umzubauen. Ich wollte im DAL auch keine Strukturen definieren, dessen Felder denjenigen im Business-Objekt entsprechen. Ein Objekt (Business Entity!) soll “as it is” ohne weitere Bearbeitung zur Speicherung gereicht werden und auch fixfertig wieder aus dem DAL kommen.
Dafür habe ich nun ein separates Assembly gebaut mit abstrakten Basisklassen für die Business-Objekte. Business Layer und DAL haben beide eine Referenz darauf, sodass beide die Grundstruktur der Objekte kennen. Hier eine schnelle PowerPoint-Skizze:

Der Business Layer kann nun dem DAL beliebige Instanzen von Klassen übergeben, welche von den (abstrakten) Basisklassen im DAL abgeleitet sind. Im Business Layer kann ich meine Business-Entitäten erstellen, die von den Basisklassen erben, meine Methoden erstellen und zusätzliche Interfaces implementieren, beispielsweise für bequemes .NET Windows Forms Data Binding.
Zur Implementierung habe ich vorerst nur die gekapselten Felder und das IEquatable Generic Interface in der Basisklasse implementiert: Die Entität soll grundsätzlich sofort einsetzbar sein (für Business-Layer und DAL!), aber keine besonderen Businessfunktionalitäten bereitstellen. Die braucht der DAL nämlich nicht, und hat sie auch nicht zu brauchen.
Nein, allzu neu ist die Idee nicht. Bei simple talk ist die Idee im Artikel “.NET Application Architecture: the Data Access Layer” (der Artikel ist sehr empfehlenswerte Lektüre!) beispielsweise aufgegriffen, diskutiert und Alternativen gegenübergestellt. Sie beschreibt diesen Approach als akademisch:
From an academic standpoint, this approach is probably the truest form of a data abstraction for a DAL because you can make the shared classes completely data-source independent and not just database independent.
Diesen Eindruck macht er auch auf mich. Ich bin mir nicht sicher, inwiefern er bei grossen Projekten mit aberhunderten von Entitäten wirklich bequem durchführbar ist. Aber er ist bestimmt nicht schlecht; ich werde damit experimentieren.
Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds.
Valid XHTML and CSS. ^Top^