Archiv für Februar 2007

Als die Glühbirne die Welt rettete…

Die Welt im WandelÜberall wird der bevorstehende Klimawandel beschworen. Jeder fällt aus allen Wolken, ganz überrascht ob der bevorstehenden Veränderungen auf dieser Welt.

Dabei haben schon vor 10 Jahren (oder noch länger) Wissenschaftler und Naturfreunde davor gewarnt. Aber keiner wollte es hören. Und jetzt haben wir plötzlich nur noch 13 Jahre Zeit die Welt zu retten. Und der Retter in der Not – ist die gute alte Glühbirne!

Sie muß nun sterben, weil nur ihr Tod die Welt retten wird. Schließlich geht 80% des Stromes als Wärme verloren – und dient uns nicht der Erleuchtung. Dabei wäre diese doch so bitter nötig – Erleuchtung!!!

Beleuchten wir die Sache doch einfach mal etwas anders:

Vom gesamten Energieverbrauch der Welt (in Industrienationen) werden etwa 50% der Energie von privaten Haushalten verbraucht.

Davon entfallen über 33% auf den Straßenverkehr – Benzin und Diesel für’s Auto. Ganze 50% verbrauchen wir dafür, daß wir im Winter nicht frieren. Für Beleuchtung -also für die Glühlampen & Co.- brauchen wir 1,2%.

Es geht also – gemessen am Gesamtverbrauch – um 1,2% von 50% = 0,6% der Energie.

Selbst wenn wir davon durch Energiesparlampen noch einmal 90% einsparen können – mehr als 0,5% des Gesamtenergieverbrauchs lassen sich durch Energiesparlampen wohl nicht einsparen.

Aber für große Schlagzeilen reicht es allemal! Jeder schraubt nun seine Glühbirne raus, kauft sich teuere Energiesparlampen und hat ein gutes Gefühl – weil er die Welt gerettet hat. Dann fährt er 250 Meter zur Sondermüllsammelstelle – natürlich mit dem Auto – und bringt die ausgebrannten Energiesparlampen zum Sondermüll. Denn die enthalten jede Menge Quecksilber, das natürlich nicht in den Hausmüll gehört.

Woran erinnert mich das Szenario nur? Achja, an meinen Opa!
Der hat immer im ganzen Haus das Licht ausgeschaltet, egal wo, egal ob’s noch jemand gebraucht hätte oder nicht.

Ja, und es erinnert mich an die Schlagzeilen vom letzten Jahr, als mit aller Macht versucht wurde, Panik und Angst vor der Vogelgrippe zu schüren. Ein Spruch aus dieser Zeit lautet:

Die Dummen kauften sich Tamiflu – die Klugen die Aktien.

Jaja, das Geschäft mit der Angst – in diesem Jahr ist es also das Thema Klimawandel!

Was mich auch wundert – wir haben laut UNO noch 13 Jahre Zeit, die Welt zu retten. Genau 13 Jahre. Nicht 12 und nicht 14 – sondern 13. Mein Bruder hat mir erklärt warum:

2007 + 13 = 2020

Und das Jahr 2020 als Endzeit, als letzte Chance für die Welt, ist doch viel medienwirksamer als 2019 oder 2021…

Man verstehe mich bitte nicht falsch! Ich bin für den Einsatz von Energiesparlampen – wo es Sinn macht. Ich bin für Energieeinsparung – aber dort, wo es sich lohnt, wo man viel Energie sparen kann. Und das ist nun mal das Auto (Tempolimit auf der Autobahn!) – und nicht die Glühbirne.

Und ich glaube auch, daß wir nicht mehr viel Zeit haben. Ja, ich glaube sogar, daß es schon längst zu spät ist. Vor wenigen Jahren hieß es noch, daß all der Dreck, den wir in die Luft blasen etwa 60 Jahre braucht, um in den oberen Schichten der Atmosphäre anzukommen und Schaden zu verursachen.

Doch jetzt sollen wir in 13 Jahren das Ruder herumreissen können? Da stimmt doch was nicht.

„Es ist etwas faul im Staate Dänemark“ hat mal jemand gesagt. Irgendwas paßt hier ganz und gar nicht zusammen. Werden wir für blöd verkauft? Wird hier mal wieder mit der stärksten Emotion, zu der ein Mensch fähig ist, Geschäft gemacht? Geschäft mit der Angst? Unter Ausnutzung der größten geistigen Fähigkeit des Menschen – der Dummheit und Gedankenlosigkeit?

Ich weiß es nicht. Wenn ich aber in der Tageszeitung lese, ich soll künftig kein Rindfleisch mehr essen um die Welt zu retten, dann komme ich ins Grübeln.

Was Rindfleisch mit dem Klima zu tun hat? Ganz einfach. Kühe fressen Gras. Das muß hinten wieder rauskommen. Leider kommt es zum Teil auch gasförmig wieder heraus – nämlich als Methangas. Und Methan ist ein großer Klimaschädling.

Wenn ich also aufhöre Rindfleisch zu essen werden weniger Rinder „produziert“ – und weniger Rinder pubsen die Welt in den Untergang…

Retter die Welt – ja, bitte! Ich mache gerne mit! Aber verkauft uns doch bitte nicht für dumm…


Möge uns ein Licht aufgehen…

Wer braucht schon GridView.RenderControl() ?

Da habe ich mich stundenlang durchs Internet gequält um herauszufinden, dass GridView.RenderControl() nicht richtig funktioniert – und dabei ist es wieder mal relativ einfach. Wenn man’s denn selber macht!

Also „rendere“ ich mein GridView doch gleich selber – ich durchlaufe alle Zeilen und Spalten und bastle mir daraus eine kleine HTML-Tabelle. Fertig. Excel versteht das! Und das Ganze hat noch den Vorteil: ich weiß was da passiert – und kann meine HTML-Tabelle so anpassen wie ich will! Also z.B. jede zweite Zeile farbig markieren und ähnliche Scherze.
Warum eigentlich nicht gleich so?


    
public static string GetGridViewAsHTML(GridView gv)
    
/// Wandelt ein Gridview in eine HTML-Tabelle um
    {
        
int Spalten = gv.Columns.Count;
        
int Zeilen = gv.Rows.Count;
        
string ausgabe = „<table border=1><tr style=\“color:blue\“>“;
        
string wert = „“;
        
        
for (int s = 0; s < Spalten; s++)
        {
            ausgabe += 
„<th>“+gv.Columns[s].HeaderText + „</th>“;
        }
        ausgabe += 
„</tr><tr>“;

        for (int z = 0; z < Zeilen; z++)
        {
            
for (int s = 0; s < Spalten; s++)
            {
                wert = gv.Rows[z].Cells[s].Text;
                ausgabe += 
„<td>“ + wert + „</td>“;
            }
            ausgabe += 
„</tr><tr>“
        }
        ausgabe += 
„</tr></table>“;
        
return ausgabe;
    }

GridView.RenderControl() – oder wie ich lernte, Microsoft zu hassen…

Update: Problem umgangen – hier nachzulesen...

Eigentlich wollte ich nur ein GridView aus meiner ASP.NET-Anwendung nach Excel exportieren. Mehr nicht. Aber aus diesem Vorhaben wurde ein Unterfangen das mich lehrte, Microsoft zu hassen…

Aus ASP.NET kann man relativ leicht Daten nach Excel exportieren. Man muß nur die zu übertragenden Daten als HTML-Tabelle an Excel senden. Excel versteht diese HTMl-Tabelle und kann sie problemlos als Quasi-Excel-Sheet laden.

Und es ist auch ganz einfach ein Control – wie etwa ein GridView oder DataGrid – in HTML-Code umzuwandeln. Dazu gibt es in ASP.NET den Befehl RenderControl(StringWriter).

Such man im Internet nach Excel-Export und GridView bzw. DataGrid, findet man immer wieder Code-Beispiele, die diese beiden einfachen Dinge zusammenführen. Ein Grid wird nach HTML gerendert und als Excel-Anwendungsdaten zurückgeschickt.

Response.ClearContent();
Response.AddHeader(„content-disposition“, „attachment;
filename=MyExcelFile.xls“);
Response.ContentType = „application/excel“;
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
TestGrid.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();

Diese Code funktioniert einwandfrei – sofern man ein DataGrid verwendet. Dieses alte Grid wurde in Visual Studio 2005 bekanntermaßen durch das neue GridView abgelöst.

Wendet man nun den obigen Code auf ein GridView an – das ja sooo viel besser, genialer, revolutionärer ist als das DataGrid – erhält man diese Fehlermeldung:

Das Steuerelement ctl00_ContentPlaceholder1_TestGrid vom Typ GridView muss in einem Formulartag mit runat=server positioniert werden

Häähhh??
Natürlich befindet sich das GridView automatisch innerhalb eines Formulartags mit runat=“Server“ – schließlich hat VS 2005 den Code für mich generiert. Was bedeutet also diese sinnlose Fehlermeldung? Ich weiß es nicht.

Nach einigem suchen im Internet findet man dann heraus, dass diese Fehlermeldung ein Bug in VS 2005 ist, den man umgehen kann, wenn man folgenden, wunderbaren, logischen, selbsterklärenden und einfachen Code in seine aspx-Seite mit aufnimmt:

public override void VerifyRenderingInServerForm(Control control)
{

}

Jeder vernünftige Compiler den ich kenne würde solchen Code automatisch herauscompilieren. Nutzloser Code. Ohne Funktionalität. Ohne Sinn.

Und doch – läßt man das Programm mit dieser leeren Funktion laufen erhält man tatsächlich eine Excel-Tabelle, ohne jede weitere Fehlermeldung.

Naja, zumindest meistens. Nicht immer. Denn wenn das GridView weitere Controls enthält, wie z.B. Editierbuttons, Spalten mit Checkboxen, oder das Grid ganz einfach Sortierung und Paging erlaubt – dann kracht es erneut:

RegisterForEventValidation kann nur während Render() aufgerufen werden;

Aha. Logisch. Oder? Oder etwas nicht?
Ich kapiere es nicht – und suche mir wieder einen Wolf im Internet. Und finde heraus, dass diese Fehlermeldung umgangen werden kann, wenn man in die Seitendirektive folgenden Wert eingibt:

EnableEventValidation=“false“

Also:

<%@ Page Language=“C#“ EnableEventValidation=“false“ AutoEventWireup=“true“ CodeFile=“Default.aspx.cs“ Inherits=“_Default“ %>

Jetzt aber! Nun funktioniert der Export eines GridViews nach Excel. Hurra!

Ich habe ja auch nur gut 4 Stunden gebraucht, um all das herauszufinden.

Das regt mich an Visual Studio 2005 so unendlich auf. Man will was machen und findet sehr schnell im Internet entsprechende Lösungen bzw. Beispielcodes, wie etwas gehen könnte. Doch geht man dann in die Tiefe, taucht ein Problem nach dem anderen auf. Wie ein Dominoeffekt.
Nach dem Motto: „Hurra – ich bin eine Fehlermeldung weiter“ – nächster Level!! Yeahhh.

Um so ärgerlicher ist es, wenn man dann auch noch an Bugs von Microsoft scheitert. Wenn man einen Workaround für einen Fehler braucht, und wenn er nur aus einer leeren Routine besteht.

Doch manchmal habe ich den Verdacht, das sind gar keine Bugs. Das ist pure Absicht! Microsoft will ganz einfach in möglichst vielen Blogs von verzweifelten Entwicklern auftauchen! Das ist Microschufts Art, den Goolge-Page-Rank zu erhöhen! Jawohl! SEO (search engine optimization)) der ganz besonderen Art!

Firefox: Standard Newsfeed-Reader definieren

Wer kennt sie nicht, die nützlichen RSS-Feeds, mit denen man aktuelle Meldungen abonieren kann. Öffnet man mit Firefox solch einen RSS-Feed bekommt man eine Übersicht zu sehen mit der Möglichkeit, diesen Feed mit einem der angebotenen Feed-Reader zu abnonieren.

Entweder man bindet den Feed als dynamisches Lesezeichen direkt in FireFox ein – was mir persönlich zu unübersichtlich ist – oder man verwendet einen der Online-Feed-Reader. Angeboten werden neben Google-Reader noch MyYahoo und Bloglines - und das wars.

Mein persönlicher Favorit – Netvibes.com - wird leider nicht aufgeführt! Doch es ist ganz einfach, Netvibes.com in diese Liste hinzuzufügen. Man muß nur folgenden Link im FireFox ausführen:

javascript:window.navigator.registerContentHandler('application/vnd.mozilla.maybe.feed',
          'http://www.netvibes.com/subscribe.php?url=%s','Netvibes');

Damit wird NetVibes.com zur Liste der Feed-Reader in FireFox hinzugefügt. Natürlich sollte das auch für andere Feed-Reader genauso funktionieren.

Fortan kann man direkt aus FireFox auf einen Feed klicken und diesen direkt in NetVibes einbinden:

Ich kann mich nicht entscheiden… – Teil 2

Dank des freundlichen Kommentars von Christian habe ich mich nun doch entschieden – vorerst. K2-Lite ist auch ein schönes Theme – und vor allem werden die Datum deutsch formatiert angezeigt.

Außerdem hat man ein bischen mehr Platz, weil der Textbereich breiter ist. Und mein neuer Header gefällt mir auch besser …

Also beschlossene Sache – vorerst ;)

Gestern war Frühling

Das Klima ändert sich – und der Frühling kommt früher als je zuvor. Beim gestrigen Sonntags-Spaziergang sichtete ich nicht nur die ersten Bienen und Hummeln, sogar Schmetterlinge waren schon unterwegs…

Pfauenauge

Ich kann mich nicht entscheiden…

Ich kann mich nicht für ein Theme entscheiden. WordPress bietet ja doch einiges Themes an, aber keines gefällt mir zu 100%. Nachdem ich jetzt mal fast alle durch geklickt habe (wieso gibts hierzu eigentlich keinen vernünfigen Theme-Browser?) bleibe ich erst mal bei „Contempt“.

Schaut noch recht gut aus, erlaubt ein eigenes Header-Bild, formatiert das Datum richtig auf deutsch.

Nur eingebundene Bilder werden abgeschnitten wenn sie zu groß sind. Und – wie fast bei allen Themes – es hat eine fixe Breite! Ich hasse WebSites mit fixen Breiten. Aber vielleicht ist das ja auch nur eine fixe Idee von mir…

Jobs im Internet

Eine wirklich beeindruckend umfangreiche Liste von Job- und Auftragsbörsen hat Dr. Web zusammengestellt.

Nur für den Fall, daß hier jemand auf der Suche nach einem neuen Job sein sollte…

Hier der Link: http://www.drweb.de/weblog/weblog/?p=778

Jetzt klappts auch mit dem GridView

Vielleicht habe ich es jetzt kapiert. Zumindest tut mein Grid was es tun soll. Und alles ohne eine einzige Zeile Code….

Wie alles zusammenhängt – das habe ich mir mal aufgezeichnet. Auf die altmodische Art :-)

VS DataSet

Hoffentlich hat keiner meinen letzten Beitrag gelesen…

Es ist ja fast schon peinlich – aber die ganze Sortiererei-Geschichte hätte ich mir sparen können! Es geht ja doch ganz einfach! Und zwar so:

Man habe einen TableAdapter. Außerdem ein WebForm mit einem DataGrid. Nun füge man zum WebForm (neben das DataGrid) ein ObjectDataSource hinzu. Dieses verbinde man mit dem TableAdapter (das sich im DataSet befindet).

Hierauf verbinde man das GridView mit der ObjectDataSource (über die Eigenschaft DataSourceID des GridView) und lasse das Ganze mit mittlerer Hitze compilieren und laufen.

Und siehe da: plötzlich kann das Ding sortieren – und wie!

Und: plötzlich ist es auch wieder möglich per Klick-klick-Programmierung dem Grid eine Editierfunktion zu geben! Es klappt sogar – nur kommen die Daten noch nicht in der Datenbank an. Aber das werde ich auch noch kriegen…

Nächste Seite »


 

Februar 2007
M D M D F S S
    Mär »
 1234
567891011
12131415161718
19202122232425
262728  

Kategorien