Archive for Dezember, 2007

FILM: Keinohrhasen

Sehr empfehlenswerter Film: “Keinohrhasen” von und mit Till Schweiger. Lustig, romantisch, witzig. Nicht nur für Frauen und nicht nur für Weihnachten.

Die erste deutsche Komödie seit mehr als zehn Jahren, die witzig und romantisch zugleich ist. Endlich mal wieder unpeinliche und partnerkompatible Unterhaltung!

Fazit: Komplett empfehlenswert, wenn man erwachsen ist.

SYSTEMMITTEILUNG: Me too

Wie alle anderen auch: Frohes Fest.

MIGRÄNE: Lieber Projektmanager…

…wenn ich Dich bitte, mir eine Liste der offenen Punkte eines Projektes fertig zu machen, was könnte ich dann damit wohl meinen:

  • Mache mir eine Liste mit einigen offenen Punkten fertig, warte zwei Wochen und schicke mir dann die restlichen Punkte am Freitag nachmittag vor Weihnachten zu?
  • Mache mir eine Liste mit allen offenen Punkten fertig?

Ich verstehe, dass es etwas zweideutig ist, wenn ich dich um sowas bitte, lieber Projektmanager. Bitte verzeihe mir meine Unbedarftheit.

MIGRÄNE: Dämliche Verkäufer

Mein Schatz hat heute bei einem Technik-Großmarkt angerufen, weil sie einen digitalen Bilderrahmen für Weihnachten zurücklegen lassen wollte. Der Verkäufer-Fatzke hatte erstmal nix besseres zu tun, als meinem Schatzi, die nun sicher technisch nicht unbeleckt ist, zu erklären, dass der Bilderrahmen, den sie haben wollte, für sie nicht geeignet sei, denn dessen Auflösung sei zu gering. Und schließlich sei doch die Auflösung bei einem Bilderrahmen das Wichtigste. Gut, es gibt da noch solche unwichtigen Details wie Blickwinkel, Farbdarstellung und allgemein Qualität des Bildes. Aber nur aus den Gründen greift man ja nicht zum teureren Modell.

Und da wundern die sich, wenn man nix von Idioten CallBoys Verkäufern hält und ihnen pauschal Frechheit, Geldgeilheit und Unwissenheit unterstellt?

ASP.NET: ASP.NET-Controls clientseitig per JavaScript aktivieren oder deaktivieren

Nur mal schnell zum Mitmeißeln: Alle HTML-input-Elemente verfügen über eine per JavaScript ansprechbare disabled-Eigenschaft. Dieser kann ein boolescher Wert zugewiesen werden, der steuert, ob das Element aktiviert ist oder nicht. Das gilt selbstverständlich auch für ASP.NET-Controls, etwa Buttons oder TextBoxen, die ihrerseits in der Ausgabe zu eben diesen HTML-input-Elementen werden.

Dieses Wissen vorausgesetzt, kann beispielsweise ein per default deaktivierter Button durch einfaches Klicken auf eine CheckBox aktiviert werden. Zum Einsatz kommt im Grunde nur die bereits besprochene disabled-Eigenschaft und natürlich die ClientID-Eigenschaft des ASP.NET-Steuerelements:

  
           Enabled=”false” … />

  

BRAINDUMP: document()-Funktion im XSLT

Schon oft benutzt, aber ich vergesse sie immer wieder: Die document()-Funktion erlaubt es, zur Laufzeit weitere XML-Dokumente zum eigentlichen XML-Dokument quasi hinzuzuladen. Sehr nützlich.

AU JA: Steve vs. Jon

Ach, was hab ich gefeiert, als ich dieses Posting in Steves geheimen Tagebuch las: Neeeein, Steve ist kein Stück nachtragend und fies gegenüber Ex-Mitarbeitern, die zur Konkurrenz gewechselt sind.

Das war doch ein Spaß, oder? ;-)

BRAINDUMP: Zeilenänderungen im WindowsForms-DataGridView erkennen und speichern

Gerade eben hab ich mir nen Wolf gesucht. Situation: DataGridView in Windows-Forms-Applikation auf das Formular gezogen, per automatisch generierter Datenquelle an Datenbank gebunden – und dann der untaugliche Versuch, die Daten nach dem Editieren im DataGridView gepflegt wieder wegspeichern zu lassen. Untauglich deshalb, da es keine geeigneten Events gibt – weder auf Ebene der DataTable, noch des DataGridViews, noch der Datenquelle.

Nach ein wenig rumgooglen hab ich eine Lösung gefunden: An das PositionChanged-Ereignis der BindingSource binden und dort dann die jeweils letzte Zeile speichern. Könnte dann so aussehen:

private DataRow _lastRow;

public DataRow LastRow
{
   get { return _lastRow; }
   set { _lastRow = value; }
}

///


/// Wird aufgerufen, wenn sich die Position
/// des Cursors geändert hat
///

private void BindingSource_PositionChanged(
   object sender, EventArgs e)
{
   // Bindingsource herausfinden
   BindingSource source = ((BindingSource)sender);

   // Aktuelle Zeile herausfinden
   DataRow currentRow = ((DataRowView)source.Current).Row;

   // Mit letzter Zeile vergleichen
   if (currentRow.Equals(LastRow))
   {
      return;
   }

   // Daten aktualisieren
   if (null != LastRow)
   {
      if (LastRow.RowState == DataRowState.Modified)
      {
          // Updaten der Daten
          // …
      }
      else if (LastRow.RowState == DataRowState.Added)
      {
         // Hinzufügen der Daten
         // …
      }
   }

   // Aktuelle Spalte merken
   LastRow = currentRow;
}

Also, irgendwie nervt mich das. Ich werd wohl wieder auf das Click- bzw. DoubleClick-Ereignis des DataGridViews reagieren und dann den aktuellen Datensatz in einem neuen Fenster anzeigen und bearbeiten lassen. Macht sich alles deutlich einfacher.

DOTNET: #region-Prä-Prozessor-Direktive mit Überraschungseffekt

Echt, man wird alt wie Sack und lernt doch immer wieder was dazu, wenn man eine Schulung gibt. So geschehen in dieser Woche, als ich eine C#-Schulung für C++-Umsteiger gegeben habe.

Speziell ging es um die #region-Direktive, mit deren Hilfe man Bereiche im Code zusammenklappen und benennen kann. Ich zeige das wie gewohnt für Klassen und Methoden und hab nicht schlecht aus der Wäsche geschaut, als plötzlich die Frage aufkam, ob das nicht auch innerhalb von Methoden oder Eigenschaften ginge. Öhm, eigentlich, … Okay, ausprobiert, geschaut – und es hat funktioniert. Logisch, ist ja eine Prä-Prozessor-Direktive.

Ist mir aber in dem Moment nicht eingefallen. Nun weiß ich es aber. :-)

WELTHERRSCHAFT: Google verbieten!

Ja, die Kollegen mit dem pornographischen Internetangebot machen es richtig: Antrag auf einstweilige Verf=FCgung gegen Google, da die den Zugang zu pornographischen Inhalten erm=F6glichen. Die k=F6nnen ja schlie=DFlich gefunden werden =FCber diese Plattform – und Arcor musste ja bereits den Zugang zu YouTube YouPorn sperren, weil die Pornographie verbreiten würden.::::Hinter dem schlagzeilenträchtigen Anliegen steckt allerdings ein ernsteres Problem bzw. eine wichtige Frage: Wer kann für Inhalte verantwortlich gemacht werden: Der Anbieter selbst oder auch derjenige, der die technische Dienstleistung zum Zugriff auf den Anbieter erbringt? Diese Frage soll geklärt werden.::::Naja, im schlechtesten Fall müsste dann Google tatsächlich gesperrt – oder besser gleich komplett dicht gemacht werden. Oder – wenn man konsequent sein wollte – das komplette Internet gleich mit. Dann hàtte sich ja auch das Terrorproblem erledigt.::::Also, dichtmachen, den Dreck!

Update: Der Kollege Preishuber wies mich sanf darauf hin, dass es sich nicht um YouTube, sondern YouPorn handelt. Kann man ja schonmal verwechseln. Und ich wundere mich, warum ich die jugendfreien Videos nicht mehr finde… ;-)

MUSIKE: Weichei-Musik

Ich bin ein verd***tes Weichei – muss ich jedenfalls sein, denn anders kann ich mir nicht erklären, dass ich mir vorhin das Album “All the lost souls” vom Kollegen Blunt gekauft habe, es bis jetzt höre, noch keinen Füller gefunden hab, mir die Musik tatsächlich gefällt und ich noch nicht mal ein schlechtes Gewissen dabei habe.

Muss ich mir Sorgen machen, wenn ich sowas auf meinem iPhone höre?