Mail an den Betreiber von botfrei.de wegen Fehlalarm

Patrick Hollerbach - 18. September 2010

Heute habe ich eine Mail an den Betreiber von botfrei.de geschickt, da Klebezettel fälschlicherweise als “Bösartig” eingestuft wird:

Sehr geehrte Damen und Herren,
das auf Ihrer Webseite angebotene Programm "DE-Cleaner" zeigt mein Freeware-Programm "Klebezettel" als "bösartig" an.
Ich gehe daher in einer Flut von E-Mails besorgter Anwender unter.
Ich bitte Sie, diesen Fehlalarm zeitnah zu korrigieren.

Mit freundlichen Grüßen,

Klebezettel-Support

Patrick Hollerbach
Chief Software Architect
Programmierer von Klebezettel
Webseite:http://www.klebezettel.net
Support-Forum:http://forum.klebezettel.net
Programmierer-Weblog: http://www.holliesoft.de/weblog
Aktuelle Version: 2.9.8 vom 09.09.2010

Die Mail wurde auf jeden Fall erfolgreich dort eingeliefert:

Reporting-MTA: dns; shared01.dedicatehome.net
Original-Envelope-Id: <4C947527.5050905@klebezettel.net>
X-Postfix-Queue-ID: 4AEE6E006FB
X-Postfix-Sender: rfc822; support@klebezettel.net
Arrival-Date: Sat, 18 Sep 2010 10:15:39 +0200 (CEST)

Final-Recipient: rfc822; info@botfrei.de
Original-Recipient: rfc822;info@botfrei.de
Action: relayed
Status: 2.0.0
Diagnostic-Code: X-Postfix; delivery via maildrop: delivered via maildrop
    service

Mal schauen, ob sich nun was tut.

Liest hier vielleicht ein Rechtsanwalt mit, der mir sagen kann, ob es für mich irgendwelche Möglichkeiten gibt, rechtlich dagegen vorzugehen? Bei einer kommerziellen Software könnte man ja schon von Geschäftsschädigung sprechen…

Kategorie Klebezettel | 1 Kommentar

Bot-Erkennung mit vielen “false positives”

Patrick Hollerbach - 16. September 2010

Leider erkennt das Tool des in der Presse vorgestellten Projekts “botfrei.de” Klebezettel (und auch ein paar andere von mir entwickelte Programme als “bösartig”.

Das verursacht leider viel Unsicherheit bei den Anwendern von Klebezettel, ich gehe zur Zeit in einer Flut von E-Mails besorgter Anwender unter.

Ein Klick auf “Scannen” in dem “DE-Cleaner” Tool führt einen Online-Scan aus, der bescheinigt, dass Klebezettel keine bekannte Bedrohung ist. Wem das auch noch zu unsicher ist, der sei auf www.virustotal.com verwiesen – dort kann man die Exe-Datei von Klebezettel hochladen, damit diese von vielen aktuellen Virenscannern geprüft werden kann. Virus Total brachte kein einziges negatives Resultat.

Kategorie Klebezettel | 1 Kommentar

Spaßige Erklärung für DateTime.GetDaylightSavingTime

Patrick Hollerbach - 15. September 2010

Ich bin ja seit einigen Wochen für Tools, die ich für mich selbst entwickle, mit c# und dem Microsoft .Net Framework unterwegs. Bei meinen Recherchen im Netz bin ich auch über die Seite dotnetperls.com gestolpert. Dort habe ich heute eine ganz nette Erklärung zu der Methode GetDaylightSavingTime() vom DateTime Typ gefunden:

DateTime.GetDaylightSavingTime
Daylight saving time is what we get for letting our politicians pretend to be
scientists. Not useful in Arizona.

(Erklärung für nicht-Programmierer und nicht der englischen Sprache mächtigen):

Die Methode GetDaylightSavingTime ermittelt, ob das Datum sich innerhalb der Sommerzeit befindet oder nicht. Die Beschreibung der Methode oben lautet:

“Sommerzeit ist das was dabei rauskommt, wenn wir zulassen, dass unsere Politiker so tun, als wären sie Wissenschaftler. Nicht nützlich in Arizona.”

Den zweiten Satz kapiere ich selbst leider nicht. Ich vermute, dass es in Arizona keine Sommerzeit gibt?

Kategorie .net | 1 Kommentar

Todsünden beim E-Mail-Versand

Patrick Hollerbach - 14. September 2010

Heute muss ich mal wieder meinen Frust loswerden.

Immer wieder bekomme ich mit, wie das Medium E-Mail falsch benutzt wird. Jetzt muss ich mal meinen Frust rauslassen ;-)

1. E-Mails ohne Betreff

Nichts hasse ich mehr, als E-Mails ohne Betreff. Es hat schon seinen Grund, dass es die Betreffzeile überhaupt gibt. Aussagekräftige Betreffzeilen, die kurz das Thema der E-Mail beschreiben, helfen, den Überblick im Posteingang zu bewahren. Ich bin ernsthaft am überlegen, ob ich Mails ohne Betreff in Zukunft ungelesen zurückschicken soll. Vielleicht hilft das.

2. Versand von Digitalkamera-Fotos in Original-Auflösung

Moderne Digitalkameras werden mit ihrer tollen Auflösung (10 Megapixel++) beworben. Entsprechend groß sind die Bilddateien dann auch. Um jemanden nur ein paar neue Fotos zu zeigen, reicht es aus, wenn man die Fotos auf eine Größe von 1024*768 Pixeln verkleinert, bei einer JPEG-Komprimierungsqualität von “80”. Zum Konvertieren von Bildern empfehle ich übrigens “IrfanView”, damit kann man viele Bilder in einem Rutsch konvertieren.

3. Versand von Screenshots und anderen Bildern als “BMP”

Immer wieder kommt es vor, dass ich E-Mails mit Screenshots bekomme, die im “bmp”-Format gespeichert worden sind. Das ist die schlechteste Variante, um Bilder zu verschicken. Wenn die Bilder unbedingt verlustfrei gespeichert werden müssen, dann bitte das “png”-Format benutzen, da ist eine Komprimierung “eingebaut”. Oder das bmp-Bild in eine zip- oder rar-Datei packen.

4. Versand von witzigen Videos per E-Mail

Ich habe nicht immer DSL zur Verfügung, wenn ich meine E-Mails abrufe. Wenn ich z.B. unterwegs bin, gehe ich oft mit meinem UMTS Stick online, der aber im Zug meistens nur mit EDGE arbeitet und daher nicht schneller als ISDN ist. Da macht das laden einer so großen Mail nicht wirklich Spaß!

5. E-Mail != Chat

(für nicht-Programmierer: E-Mail ist ungleich Chat)

E-Mail ist “elektronische Post”. Dementsprechend sollte man sich auch verhalten, wenn man E-Mails an jemanden schreibt, den man nicht persönlich kennt. Durch meine Software “Klebezettel” bekomme ich auch ab und zu E-Mails von Anwendern, die Probleme mit der Bedienung haben. Diese sind leider manchmal sowas von “dahingeklatscht”, dass ich diese Mails am liebsten ungelesen in den Papierkorb verschieben würde:

  • Keine Anrede, noch nicht mal ein “Hallo,” in der ersten Zeile
  • Keine abschließende Grußzeile (noch nicht mal ein “MFG” oder “Gruß” <Name>")
  • Die Mail enthält 10mal mehr Rechtschreib-Fehler als die Diktate meiner 9jährigen Tochter
  • die mail besteht durchweg aus kleinbuchstaben mit sehr langen sätzen die keine kommas enthalten und dadurch sehr schlecht lesbar sind.
  • Abschluss der Mail mit “MFG” ohne nachfolgenden Namen, und die Absender-Bezeichnung besteht aus einem Nicknamen – wie soll ich den Absender bei meiner Antwort nun ansprechen? “Hallo Nobody”? ;-)

Wenn man eine E-Mail an einen Support oder an eine andere, nicht persönlich bekannte Person schickt, dann sollte die Mail einen bestimmten Grundaufbau haben:

  • Kompletter Vor- und Zuname im Absender oder zumindest am Ende der Mail (Grußzeile)
  • Aussagekräftiger Betreff (Nein, der Betreff “Frage” oder “Problem” ist nicht aussagekräftig!)
  • Anrede (Sehr geehrter Herr / Sehr geehrte Frau / Sehr geehrte Damen und Herren / Meinetwegen auch “Hallo Herr…” oder “Hallo Frau…”)
  • Bitte auf grobe Rechtschreib- und Grammatik-Fehler achten
  • Die Großschreibtaste sollte funktionieren. Wenn sie nicht mehr funktioniert, sollte man auf jeden Fall eine neue Tastatur kaufen, bevor man E-Mails verfasst
  • Die Mail mit einer Grußzeile (“Mit freundlichen Grüßen,”, “viele Grüße”, “Gruß”, meinetwegen auch “MFG” und dem eigenen Vor- und Nachnamen abschließen

Vielleicht fällt dem einen oder anderen Leser meines Blogs noch eine Todsünde beim E-Mail-Versand ein und mag dazu einen Kommentar hinterlassen…

Kategorie Internet | 1 Kommentar

DataGridView zu langsam

Patrick Hollerbach - 14. September 2010

In den letzten Tagen habe ich mit c# eine Anwendung zur Analyse meiner Mailserver-Logs entwickelt. Das Ergebnis der Auswertung (es wird für jede empfangene oder gesendete Mail ein Datensatz mit den Maildaten und dem Zustellergebnis generiert) zeige ich in einem dataGridView an.

Leider lässt die Performance des DataGridView-Steuerelements bei vielen Elementen zu wünschen übrig. Was also tun? Eine Möglichkeit wäre es, das DataGridView im virtuellen Modus zu betreiben. Das wäre aber zusätzlicher Aufwand. Also habe ich Google bemüht und eine Lösung dafür gefunden.

Was macht die Lösung? Über eine “ExtensionMethod” wird das Property DoubleBuffered verfügbar gemacht, das dann mit

dataGridView1.DoubleBuffered(true);

gesetzt wird.

Kategorie .net | 1 Kommentar

Delphi: Eine Prozedur in einem anderen Formular auslösen, ohne Unit hinzuzufügen

Patrick Hollerbach - 27. August 2010

Bei einer kleinen selbstprogrammierten Anwendung stand ich vor dem Problem, dass ein Formular auf ein anderes Formular zugreifen muss, das andere Formular jedoch auch eine Aktion auf ersterem Formular ausführen muss.

Wenn ich nun jeweils die andere Unit in den Interface-Teil hinzufüge, meckert der Compiler (zirkuläre Referenz).

Eine mögliche Lösung wäre, die Referenz auf das erste Formular einem public Feld vom Typ “TCustomForm” des zweiten Formulars zuzuweisen, die Unit des ersten Formulars dem Implementation-Abschnitt der 2.Form bekannt zu machen und dann in der entsprechenden Prozedur auf die Klasse der ersten Form casten.

Beispiel:

Unit Form2;

interface

uses
  [...]

  type
    TForm2 = class(TForm)
	  [...]
	private
      Form1Ref: TControl;
	  procedure DoSomethingOnForm1;
	  [...]
    public
      [...]
   end;

implementation

 uses
   Form1;

[...]

procedure TForm2.DoSomethingOnForm1;
Var
  Form1: TForm1;
begin
  Form1 := TForm1(Form1Ref);
  Form1.MacheIrgendEtwasAufForm1;
end;

Funktioniert, ist aber hässlich™.

Etwas tippintensiver, aber wesentlich “hübscher” geht es mit einem Event:

Unit Form2;

interface

uses
  [...]

  type

  TForm2Event = procedure (Sender: TObject) of Object;

    TForm2 = class(TForm)
	  [...]
	private
      FForm2Event: TForm2Event;
	  procedure DoSomethingOnForm1;
	  [...]
    public
      property Form2Event: TForm2Event Read FForm2Event Write FForm2Event;
   end;

implementation

[...]

procedure TForm2.DoSomethingOnForm1;
begin
  // Auslösen des Events
  If Assigned(Form2Event)
    Form2Event(Sender);
end;   

_______________________________________________

Unit Form1;

interface

[...]

Type
  TForm1 = class(TForm)
  [...]
  public
    procedure Form2EventAusfuehren(Sender: TObject);
  end;

  [...]  

  implementation

  TForm1.FormCreate(Sender: TObject);
  begin
    [...]
	Form2.Form2Event := Form2EventAusfuehren;
  end;

  procedure Form1.Form2EventAusfuehren(Sender: TObject);
  begin
    // hier Code der auf Form1 ausgeführt werden soll
  end;
  

Kategorie Delphi | 2 Kommentare

Klebezettel 3.0 erfolgreich auf Delphi 2010 aktualisiert

Patrick Hollerbach - 23. August 2010

Heute habe ich erfolgreich meine bisherigen Entwicklungsergebnisse von Klebezettel 3.0 auf Delphi 2010 aktualisiert, was einfacher war, als gedacht. Nun kann es endlich losgehen mit der Entwicklung :-)

Sobald die erste Version verfügbar ist, die die grundlegendsten Funktionen implementiert hat (Notizen erstellen, speichern, laden) wird es wöchentliche Snapshots der aktuellen Entwicklungsversion geben.

Kategorie Delphi, Klebezettel, Klebezettel Reloaded | 1 Kommentar

Eine Chance für Delphi

Patrick Hollerbach - 22. August 2010

Nach langem Überlegen habe ich mich nun doch dazu entschlossen, mit Delphi weiterzuarbeiten.

Um auf dem aktuellen Stand der Technik zu sein, habe ich gestern das Update auf Delphi 2010 Professional erworben – und ich bin begeistert, denn es hat sich im Vergleich zu Delphi 2007 so viel getan (OK, das meiste davon kam mit Delphi 2009, aber trotzdem):

  • PNG-Support
  • Mehrere Button-Styles für Windows Vista und höher, z.B. SplitButton
  • Natürlich Unicode (Erweiterter Zeichensatz, um z.B. auch exotische Anwendungen (Chinesisch etc.) erstellen zu können)
  • ButtonedEdit-Control
  • Hint-Text für Edit-und Combobox-Controls (finde ich ein Super-Feature!)
  • Style “NumbersOnly” für das Edit-Control
  • Gruppierung beim TListView
  • Marquee Style für die ProgressBar
  • themed Hints
  • Windows 7 Features
  • DirectX Support Headers
  • TDirectory, TFile, TPath
  • TStringBuilder
  • Generics

Nun kann die Weiterentwicklung Neuentwicklung von Klebezettel endlich starten!

Kategorie Delphi | 1 Kommentar

Wo bleibt die neue Klebezettel-Version?

Patrick Hollerbach - 17. August 2010

Eigentlich habe ich im März mit der Neuentwicklung von Klebezettel begonnen (kommende Version 3.0). Allerdings habe ich seit mehreren Monaten nicht mehr weitergemacht.

Der erste Grund: Zeitmangel. Seit Ende März habe ich eine seht zeitintensive neue Stelle, mit der ich meinen Lebensunterhalt für mich und meine Kinder verdiene.

der Zweite Grund: Unsicherheit, wie es um die Zukunft der verwendeten Entwicklungsumgebung “Delphi” steht.

Seit Anfang an wird Klebezettel in der Programmiersprache Delphi entwickelt. Diese Programmiersprache stammt ursprünglich von der Firma Borland und wird mittlerweile von der Firma Embarcadero vertrieben. Schon seit einigen Jahren geht es nicht richtig voran in neuen Versionen von Delphi. Die letzte Delphi-Version, die ich gekauft hatte, war Delphi 2007. Seitdem warte ich auf eine neue Delphi-Version, die auch 64bit-Programme erstellen kann. Leider hat Embarcadero die Delphi-Entwickler auch mit der neuen Roadmap erneut vertröstet, eine erste Preview eines 64bit Compilers wird es erst 2011 geben.

Nun stelle ich mir die Frage: ist es überhaupt noch sinnvoll, weiterhin mit Delphi Software zu entwickeln? Nun, einerseits habe ich einige sehr gute Komponenten lizensiert, mit denen man in kurzer Zeit ansprechende, produktive Anwendungen entwickeln kann. Aber mit der wachsenden Unsicherheit bezüglich Delphis Zukunft wächst auch die Unsicherheit, wie lange die Komponentenhersteller ihre Komponenten noch pflegen.

Ich bin schwer am überlegen, eine neue Klebezettelversion wenn überhaupt nur mit c# (.net Framework) zu entwickeln. Mittlerweile haben laut meinem Webserver 25% aller Klebezettel-Nutzer Windows 7, sowie 15% Windows Vista – dort ist das benötigte .net Framework bereits installiert. Auf Windows XP kann das .net Framework ohne Probleme nachinstalliert werden – allerdings wird es dort auch schon in vielen Fällen installiert sein.

Vielleicht kann mir ja jemand bei der Entscheidungsfindung helfen…

Kategorie Delphi, Klebezettel, Klebezettel Reloaded | 3 Kommentare

Internet Explorer 8: Was Werbung bewirken kann

Patrick Hollerbach - 21. März 2010

Ich war negativ erstaunt, als ich heute morgen die Webserver Wochenstatistik von Klebezettel.net vor den Augen hatte.

Der prozentuale Anteil vom Firefox ist stark eingebrochen, während der Internet Explorer 8 sehr stark zugelegt hat. Da scheint doch ein Zusammenhang mit den aktuellen Werbespots für den IE8 zu bestehen!

Btw: bei einem Werbespot (ich kenne nur den einen) wird die Private Browsing-Funktion des IE8 angepriesen. Das kann Firefox aber auch. Also kein wirkliches Argument…

Verlauf_Browser

Kategorie Internet | 1 Kommentar