Posts tagged: Delphi

Gefangen, nicht gefunden! #18

Informatik und Anderes

  • Böser Bug. Böser Bug. *Sehr* böser Bug! Aber sehr lehrreich. Einmal, weil man hier deutlich sieht, wie wichtig das Testen ist und wie schnell man einen fatalen Fehler übersieht. Und zum zweiten zeigt das Beispiel recht schön, warum Haftungsfragen auch bei eigentlich nicht sicherheitskritischer Software eine Rolle spielen können. Ich bin ganz froh darüber, dass ich gerade eine passende Vorlesung zu dem Thema höre. Die Rechtsprechung ist hier teilweise *sehr* merkwürdig, was Software anbelangt. (via).
  • “The great thing about TCP jokes is that you always get them.” Zugegeben: Es hat ein bisschen gedauert, bis ich den verstanden hab (Das Problem bei TCP-Witzen ist ja auch, dass es ziemlich lang dauern kann, bis man anfängt, sie zu verstehen. :lol: ). Aber ich find den richtig gut. Und es gibt noch mehr von der Sorte. Die sind wohl irgendwie in Twitter entstanden. Noch ein paar gute:
    • @eigenrick: The problem with TCP jokes is that people keep retelling them slower until you get them. #protolol
    • @reconbot: WHO HAS ANY ARP JOKES? #protolol
    • @OhMeadhbh: the SYN flood attack #protolol: “knock knock. who’s there? knock knock. who’s there? knock knock. who’s there? …”
    • @yoz: order best is tell that The you thing can about jokes BitTorrent them in any. #protolol
    • @peter_tonoli: Chuck Norris has only one OSI level – Physical

    (via)

  • Per Zufall bin ich auf eine sehr interessante Seite gestoßen: ioexception.de. Das ist ein Blog von ein paar Informatik-Studenten der Uni Ulm. Und da gibts so einige interessante Inhalte zu entdecken:
  • Zustandsautomaten, State Pattern und Java Enums. Hinlänglich bekannt, aber nochmal schön zusammengefasst. Außerdem vielleicht ganz interessant für meine SEP-Studenten, die gerade einen Bot für ein Netzwerkkartenspiel schreiben dürfen. Und hier bietet sich eben das StatePattern und die genannte Umsetzung an. Das ist nicht die einzige Möglichkeit, Automaten in Code zu gießen. Bei Gelegenheit schreib ich da mal was dazu…
  • Eine interessante Idee: git als Update-Mechanismus verwenden.
  • Auch die anderen Posts lohnen sich. Einfach mal reingucken…
  • Martin Fowler hat einen sehr interessanten Artikel über Flags in Methoden. Dem kann ich eigentlich kaum noch etwas hinzufügen. Außer vielleicht, dass Methoden-Flags i.d.R. Kontrollkopplungen sind, also den Kontrollfluss der Methode beeinflussen, statt ein Datum darzustellen. Und Kontrollkopplungen sind starke Kopplungen, d.h. man sollte sie vermeiden.
  • Mein Vortrag auf den Delphi-Tagen ist wohl gesetzt. Zumindest verschickt Embarcadero schon Rundmails, in denen ich als Speaker genannt werde. Man darf sich also jetzt schon auf eine Stunde rund um Bugs und deren Vermeidung freuen oder sich wahlweise davor fürchten. ;-) Ich hab viel zu erzählen.
  • Per Zufall bin ich hierüber gestolpert: Wie man ein guter Java-Programmierer wird. Ich fürchte, da ist was Wahres dran. Gilt natürlich auch für andere Sprachen und Bereiche. Nun, was soll ich sagen? Ich bin 23 und hab vor knapp 10 Jahren angefangen zu programmieren. Und B.Sc. bin ich auch schon. Also weiter gehts…
  • Die aktuelle Liste der Top 25 Sicherheitslücken. Erschreckend, dass SQL-Injection immer noch ganz vorne ist.
  • In C# kann man Interfaces auf zwei Arten implementieren. Entweder implizit oder explizit, d.h. entweder man implementiert einfach passende Methoden oder man spezifiziert genau, dass die Implementierung ausschließlich für dieses Interface gedacht ist. Das bedeutet, es ist möglich, dass eine Methode von einem bestimmten Interface aus zugänglich ist, von der eigentlichen Klassenreferenz aber nicht. Das klingt erstmal sehr merkwürdig, hat aber seine Vorteile. Es bietet nämlich die Möglichkeit, Methoden, die nur für ein bestimmtes Interface relevant sind, vor anderen Benutzern zu verbergen. Das ist dann quasi eine weitere Möglichkeit der Kapselung. Nick Hodges zeigt in einem Blog-Post, dass das auch in Delphi möglich ist. Bei Delphi kommt noch ein weiterer Punkt dazu: Wenn man in Delphi Interfaces verwendet, sollte man diese nicht mit echten Objektreferenzen mischen (außer man weiß sehr genau, was man tut). Das hängt damit zusammen, dass Interface-Referenzen im Gegensatz zu normalen Referenzzählung implementieren. Mit diesem Ansatz kann man also quasi sicher stellen, dass man die Klassenreferenz nicht benutzt (auf der anderen Seite sollte man hier eh überlegen, ob man nicht lieber ne Factory-Methode einsetzt). Die Diskussion in den Kommentaren ist übrigens auch interessant. Darüber wie und ob man dieses Feature verwenden sollte, sind die Meinungen gespalten. Auf jeden Fall, sollte man sowas gut dokumentieren.

Delphi-Tage 2011

Momentan komm ich nicht so ganz hinter dem her, was ich mir eigentlich vorgenommen hab. Hab zur Zeit ne Menge Arbeit und so ist hier im Blog in letzter Zeit kaum was Größeres gelandet. Auch wenn ich dazu schon diverse Ideen und halbfertige Erzeugnisse hab.

Gestern bin ich jedenfalls endlich mal dazu gekommen auf den Call for Papers für die Delphi-Tage 2011 zu antworten. Wenn also alles klappt, d.h. wenn die Organisatoren meinen Vortrag haben wollen, dann bin ich am 10. September also in Köln und werde was übers Bugs erzählen und wie man sie vermeiden kann.

Letztendlich wird das nix Weltbewegendes, keine Forschung, keine neuen Erkenntnisse, dafür aber wohl hoffentlich brauchbare Praxis. Es wird da wohl nen größeren Teil über Exceptions und Assertions geben und wieder ein paar von meinen heißgeliebten Daumenregeln.

Alle Delphianer können sich also mal den 10. September rot im Kalender anstreichen. Ob um mir zu zu hören oder um mir aus dem Weg zu gehen, darf jeder selber entscheiden. ;-)

Aber warten wir erstmal ab, ob mein Vortrag überhaupt genommen wird. Da ist noch lang nix entschieden.

Was die OOP-Tutorials verschweigen

oder: Wie man objektorientiert denkt

Abstract

Zielgruppe: OOP-Einsteiger und -Fortgeschrittene, sowie alle, die das Gefühl haben, die OOP noch nicht ganz verstanden zu haben. Ein OOP-Tutorial sollte man aber zumindest mal gelesen haben.

Die ersten Gehversuche in der OOP fallen oft recht schwer. Und in der Tat klappt das, was dabei heraus kommt, meinst mehr schlecht als recht.
Die OOP erweitert erst einmal die Möglichkeiten, Fehler zu machen. Eine der Ursachen dafür ist, dass Objektorientierung eine andere Denkweise erfordert. Ohne diese objektorientierte Denkweise programmiert man vielleicht “prozedural mit Klassen”, nicht aber wirklich objektorientiert. Und so bleiben auch die schönen Vorteile der OOP wie Wiederverwendbarkeit und Änderbarkeit aus. Wie aber denkt man objektorientiert? Dieser Vortrag stellt einige objektorientierte Denkmuster und Prinzipien vor und zeigt, dass Objektorientierung mehr ist als Klassen und Vererbung.

Folien

Das war Thema meines Vortrags auf den diesjährigen Delphi-Tagen. Die Folien gibts wie versprochen zum Download: weiter lesen »

Delphi-Tage 2010

Die Delphi-Tage 2010 sind vorbei und ich bin wieder gut zu Hause gelandet. Hier mal ein kurzer Bericht.

Freitag

Der Freitag begann bei mir mit unfreiwilligem Frühsport in Frankfurt. Da der Zug von Mainz nach Frankfurt Verspätung hatte, musste ich zu meinem ICE rennen. Hab ihn aber gerade noch erreicht. Eine viertel Stunde später blieb dieser dann aber auch schon in Hanau stehen… wegen einer technischen “Störung”. Die Störung konnte nicht behoben werden und so war für diesen Zug erstmal Endstation in Hanau. Also eine Stunde auf den (überfüllten) Ersatzzug warten, der dann auch nochmal ne halbe Stunde Verspätung einsammelte. Am frühen Freitag Nachmittag bin ich dann aber doch noch – totz der Bahn – in Berlin angekommen.

Nachmittags habe ich mir dann die Gedächtniskirche (sehr sehenswert!) und das neue Regierungsviertel angesehen und abends gings dann aufs Schiff.

Samstag

Am Samstag war dann die eigentliche Hauptveranstaltung. Die Keynote von David I. und die anschießende Präsentation der neuen Features von Delphi XE durch Matthias Eissing, Daniel Magin und Daniel Wolf brachte IMHO keine besonders aufregenden neuen Infos. Ein 64bit-Kompiler wurde vorgeführt “Ja wir arbeiten wirklich daran” und die in Delphi XE integrierten Plugins wurden vorgestellt. Mein Eindruck von Delphi XE: Wenn man es für erwähnenswert hält, dass es nun einen neuen Button gibt, der es erlaubt, das Programm auch ohne Debugger zu starten, zeugt das nicht unbedingt von großen Fortschritten…

Nach der Kaffeepause war dann auch schon ich mit meinem Vortrag an der Reihe. Dazu gibts später nochmal nen gesonderten Blog-Post und wie versprochen auch die Folien zum Download.

Dann war auch schon das Mittagessen angesagt. Danach stellten “Daniel und Daniel” in “Pimp Up Delphi – Die besten Tools für Delphi” verschiedene IDE-Erweiterungen vor. Besonders interessant fand ich da MadExcept, sowie die Analysewerkzeuge.

Ebenfalls interessant war Arvid Winkelsdorfs Session “OOP-basierte HTTP-Server mit INDY”. Ich hab bisher nicht viel mit Indy gemacht und so hab ich mal wieder einen kleinen Einblick bekommen. Aufgrund von echten und vermeintlichen Zeitbeschränkungen konnte leider nicht allzu sehr auf die saubere Herangehensweise eingegangen werden, die ja das eigentliche Thema darstellte. Trotzdem ein lohnenswerter Vortrag.

Mal sehen, vielleicht stellen ja auch noch die anderen Referenten ihre Folien und Codebeispiele online. “Online-Updates mit Delphi” hab ich beispielsweise nicht sehen können, weil der parallel zu meinem Vortrag war. Schade, aber man kann sich natürlich nicht zweiteilen. Kollisionen sind eben unvermeidlich.

Die Organisation hat gut geklappt und die Verpflegung war auch gut (insbesondere der Nachtisch). Nur könnte man das nächstes Jahr vielleicht etwas mehr auseinander ziehen. Für den Kuchen um drei Uhr hatte ich definitiv keinen Platz mehr im Magen. Vielleicht besser nächstes Jahr die erste Kaffeepause und das Mittagessen jeweils etwas vorziehen.

Resümee

Die Delphi-Tage waren wieder ausgesprochen interessant. Wieder eine gute Mischung aus Fachvorträgen und Community-Event. Wenn möglich werde ich nächstes Jahr also natürlich wieder mit dabei sein. Allein schon um die ganzen Leute aus den Foren mal (wieder) zu sehen und nicht nur zu lesen.

Bilder

Bilder hab ich ein paar gemacht, allerdings merke ich mal, wieder, dass ich von Fotografie keine Ahnung habe und so sind keine besonderen Kunstwerke entstanden. Das, was noch einigermaßen vorzeigbar ist, hab ich mal hier eingefügt.

Delphi-Tage 2010

Am 17./18. September sind wieder Delphi-Tage. Ich werde wohl auch wieder dabei sein. Die Mischung aus Community-Event und Fachvorträgen machen die Delphi-Tage jedes Jahr zu etwas Besonderem. Man sieht die ganzen Leute aus dem Forum mal nicht nur als Produzenten von Foren-Posts und man geht garantiert auch nicht dümmer nach Hause.

In den letzten beiden Jahren (Günzburg und Hamburg) war ich dabei und werde auch dieses Jahr wieder dabei sein. Und diesmal vermutlich auch als Referent. Und apropos Referent: Alle, die ebenfalls Lust haben, einen Vortrag zu halten, sind herzlich dazu eingeladen. ==> Call for Papers Es werden noch ein paar Referenten gesucht, also meldet euch…

Gefangen, nicht gefunden! #2

Informatik

  • Daniel aus der DP hat ein neues Projekt gestartet: Delphi-Reference ist eine Art Meta-Suchmaschine für Delphi. Indiziert wird momentan Die Delphi 2009-Hilfe(docs.embarcadero.com), ein Teil des PSDK und die DP. Die D2010-Hilfe(docwiki) soll noch folgen. Interessant wär natürlich, wenn noch weitere Quellen ergänzt werden, aber das schon jetzt klasse! Hab ich gleich mal in Opera als Search-Engine integriert…
  • Neben der Delphi-Reference hat Daniel auch wieder ein neues Delphi-Video. Diesmal zum Thema RTTI und Attribute in Delphi 2010.
  • Zum dritten mal informiere ich mich jetzt über Zeichensätze. Da ich da anscheinend immer wieder gern was vergesse, werd ich das mal zusammenschreiben. Demnächst gibts also wohl einen kleinen Artikel dazu.
  • Gestern hab ich mir mal mal LINQ in Prism angesehen. Genial. Überhaupt ne geniale Sprache. Zu schade, dass ich Prism mangels Gelegenheit wohl erstmal nicht unter die Finger krieg.

Sonstiges

  • Der Qualitätsjournalismus entdeckt (mal wieder) Twitter: “Wir waren Franz Müntefering
  • Ich habe gerade einen sehr interessanten Wikipedia-Artikel über das Voynich-Manuskript gelesen. Diese Handschrift stammt wohl aus dem Mittelalter und ist in einer unverständlichen Schrift geschrieben. Zudem enthält es zahlreiche rätselhafte Zeichnungen. Die Deutungen reichen von Schabernack bis Zauberspruch. Interessant zu lesen…

Kein Turbo mehr für Delphi?

Es war einmal vor langer, langer Zeit – genauer gesagt 1972 – da erfand Niklaus Wirth die Programmiersprache Pascal als Lehrsprache für seine Studenten. Damit lehrte er sie strukturiert zu programmieren und mit der Zeit wurde die Sprache immer populärer. Borlands TurboPascal hat dazu wohl maßgeblich beigetragen.

Aus TurboPascal wurde Delphi und damit IMHO zeitweise die beste Entwicklungsumgebung für Windows-Anwendungsprogramme. Mit den kostenlosen Personal- und Turbo-Versionen bot Delphi den idealen Einstieg für alle, die das Programmieren lernen wollten.

Zwischenzeitlich wurde Delphi nun schon mehrmals tot gesagt, die Entwicklung ging nur schleichend voran und die Qualität stimmte auch nicht immer. Letztes Jahr hat Embarcadero nun Delphi übernommen und wird damit zum Hoffnungsträger und man sieht auch wirklich, dass sich technisch etwas tut.

Seit dem Release von Delphi 2010 ist aber nun TurboDelphi von der Embarcadero-Seite unter mysteriösen Umständen verschwunden. Keiner wusste so recht, ob das Absicht oder Versehen war und selbst auf Nachfrage bekam man bei Embarcadero nur spärliche Informationen.
weiter lesen »

Gefangen, nicht gefunden! #1

Hiermit starte ich mal ein kleines Experiment. unter “Gefangen, nicht gefunden!” werde ich mal kurze Gedanken, Links, u.ä. posten. Eben das, was ich mehr oder weniger zufällig “gefangen” hab. Mal sehen, wie gut das klappt. Vielleicht gibts dann solche Posts öfter.

Informatik

  • Robert C. Martin hat auch noch ne alte Website. Auch dort sind interessante Artikel. Noch mehr Zeug, das ich lesen möchte und nicht die Zeit dazu finde…

Delphi

  • Von der CodeRage gibts Screencasts. Bisher hab ich noch keine Zeit gefunden, mir da viel anzusehen, aber die Themen hören sich interessant an.
  • Letztens hab ich ja AOP in D2010 vermisst. Das hab ich wohl falsch verstanden. Das war für Prism. Nick Hodges hat n kurzes Video dazu gemacht. Es gibt auch einen CodeRage-Screencast dazu. Sehr interessantes Feature. Nur das mit dem Debugging gefällt mir nicht.
  • Die Delphi-Hilfe gibts jetzt auch als Wiki (genauer: als 9 Wikis). Der interessante Teil für mich ist die VCL-Referenz. Da ich unter Linux keinen Zugriff auf meine Delphi-Hilfe hab und nur selten Win gebootet hab, ist das für mich ne Möglichkeit doch mal was (fürs Forum) nachzugucken. Oder ich kann n Link dahin posten. Das Wiki ist zwar schon recht gut, aber teilweise durchaus noch ausbaufähig. z.B. könnte man unter “Siehe auch” die einzelnen Punkte verlinken. Bisher ist das eher die Ausnahme.
  • Ebenso gibts ein Wiki mit Beispielen. Schön.

Sonstiges

  • wahlversprechen.info is ne interessante Seite. Dort werden Wahlversprechen gesammelt und überprüft inwieweit sie eingehalten worden sind. Demokratie im Informationszeitalter.

Neues in Delphi 2010

Seit Embarcadero die Geschicke von Delphi leitet, tut sich wieder einiges in der Entwicklung von Delphi. Keine Revolutionen, aber stetige Weiterentwicklung. Die kochen natürlich auch nur mit Wasser, aber das, was ich bisher von Delphi 2010 gesehen hab, sieht schonmal gut aus.

Als Student und (naja… doch etwas mehr als) Freizeit-Delphianer hab ich natürlich bisher nur kleinere Anwendungen von wenigen tausend Zeilen geschrieben und so kann ich über die ganzen Features wie DataSnap oder das ganze DB-Zeug nicht viel sagen (wenngleich sich auch diese Features interessant anhören). Das wird wohl eher für größere Systeme interessant. Also stürze ich mich hauptsächlich auf die Sprachfeatures, die ich eh für am interessantesten halte.
weiter lesen »

George Boole und seine Variablen

Was würde wohl George Boole(1815-1864), der englische Mathematiker und Philosoph, der Namensgeber der Booleschen Variablen, dazu sagen, wenn er wüsste, dass über hundert Jahre nach seinem Tod sein Name in so gut wie jedem Quelltext verewigt ist? Und was würde er sagen, wenn er wüsste, dass viele Programmieranfänger Probleme mit “seinen” Variablen haben?
Damit er sich zumindest über die letzte Frage nicht mehr so viele Gedanken machen muss, soll dieses Tutorial helfen, diesbezügliche Verwirrungen aufzuklären. Denn eigentlich ist alles ganz einfach…
weiter lesen »

powered by WordPress | QuickLaTeX | WordPress Themes