Archiv der Kategorie 'Entwicklung'

PHP ist krank…

Mittwoch, den 6. Mai 2015

Über einen Blogbeitrag von Fefe bin ich auf dieses “interessante” Verhalten in PHP aufmerksam geworden. Was schätzt ihr, gibt folgendes Programm aus?

echo (md5("240610708") == md5("QNKCDZO")) ? "GLEICH" : "UNTERSCHIEDLICH";

Na? :)

Die Sache wird bei HackerNews etwas intensiver diskutiert. Das Problem besteht im Grunde darin, dass PHP das “0e” am Anfang als Präfix interpretiert und die Daten daher als Float-Value verwendet.

Am besten gefällt mir aber der folgende Lösungvorschlag aus der HackerNews-Diskussion:

perhaps ==== operator must reserved

php_real_equivalence_4()

But it must invoke with additional NULL-parameter to achieve real effect and analyse return value for TRUE, FALSE, NULL:
php_real_equivalence_4($x, $y, null);

Except they had to call it php_real_equivalnce_4() because php_real_equivalence_4() was taken.

OpenSSL-API kaputt

Dienstag, den 28. April 2015

Warum die OpenSSL-API kaputt ist merkt man spätestens dann, wenn man nach längerer Fehlersuche feststellt, dass man statt der API-Funktion PEM_write_bio_RSAPublicKey die Funktion PEM_write_bio_RSA_PUBKEY hätte verwenden müssen.

Dass diese beiden Funktionen ein grundverschiedenes Ergebnis liefern überrascht genauso wenig wie die Tatsache, dass Letztere nicht einmal dokumentiert ist.

:wand:

Happy 100K, Jenkins!

Mittwoch, den 22. April 2015

Lieber Jenkins,

alles Gute zum 100.000sten!

100k-320.png

Wir sind auch einer der glücklichen 100.000 Nutzer - ohne Dich wäre unser Alltag deutlich anstrengender. Also: DANKE und weiterhin alles Gute! :)

Statische Code-Analyse

Freitag, den 11. April 2014

Nobody’s perfect. Aber man kann daran arbeiten. :)

So nutzen wir für die Entwicklung unserer Anwendungen in C/C++ auch statische Code-Analyse. Nachdem clang (scan-build) und cppcheck sich die Zähne ausgebissen haben, setzen wir (leider) erst seit Kurzem auch PC-Lint ein.

Warum “leider”? Ich weiß auch nicht wie, aber irgendwie ist dieses Tool völlig an mir vorbei gegangen - vielleicht weil es an sich nur unter Windows läuft. PC-Lint ist das Urgestein für statische Analyse von C-Code, wird seit rund 30 Jahren stetig weiterentwickelt (!) und ist einfach der absolute Wahnsinn.

Nun bin ich kürzlich über einen Blogbeitrag gestolpert, wie man PC-Lint mittels wine auch unter Linux zum Laufen bekommt. Perfekt! :) Das spart den umständlichen Umweg über MinGW etc.

Natürlich braucht es eine Weile bis sich der Umgang mit PC-Lint “eingeschliffen” hat und man in den Unmengen der Logmeldungen auch die eigentlich interessanten Meldungen findet. Unsere Erfahrung ist jedenfalls, dass die Codequalität seit dem Einsatz von PC-Lint nochmals drastisch zugenommen hat - verschärfte gcc-Flags, scan-build und cppcheck waren nur ein kleiner Anfang.

Man darf sich jedenfalls nicht durch die Website von PC-Lint oder dessen Installationsprogramm abschrecken lassen - die Usability ist da wohl vor einigen Jahren stehen geblieben ;)

Authentisch

Freitag, den 7. Februar 2014

Ich find’s immer wieder toll, wenn Kunden von unserer Software begeistert sind:

SCHEIß DIE WAND AN, ist dieses Stück Software geil

Das ist doch mal ein authentisches »Customer Statement« :)

Arbeitstag

Mittwoch, den 8. Januar 2014

Eben im Gespräch mit einem Kollegen (es ging um die Aufwandsabschätzung bei einem Softwareprojekt):

Kollege: »Wie lange dauert das dann etwa?«

Ich: »Hmm… ich würde mal einen Arbeitstag dafür ansetzen.«

Kollege: »Einen Arbeitstag von Dir - 16 Stunden - oder einen von mir?«

libsepa: SEPA mit PHP, Perl, Java und C

Mittwoch, den 18. Dezember 2013

Unser neuestes Produkt ist libsepa (libsepa.com) - eine Bibliothek zur Erstellung von SEPA-Lastschriften/-Überweisungen sowie zur zuverlässigen Konvertierung und Validierung von IBAN/BIC.

libsepa ist für PHP, Perl, Java und C verfügbar und kostet nur einen einmaligen geringen Betrag (Updates sind kostenlos).

Wer also noch sein bisheriges Abrechnungssystem von DTA auf SEPA umstellen muss, der sollte einen Blick auf libsepa werfen. :-)

libsepa

SEPA

Dienstag, den 1. Oktober 2013

So, die erste Hälfte unserer Umstellung auf SEPA ist geschafft: heute gingen unsere ersten selbst erzeugten SEPA-Überweisungen heraus. Dabei handelt es sich um etwas komplexere Nachrichten (Gehaltszahlungen, VL-Beiträge, normale Zahlungen). Hat scheinbar reibungslos geklappt. :)

Nun geht’s an den nächsten Schritt: SEPA-Lastschriften. Die dazu notwendige Mandatsverwaltung usw. haben wir bereits implementiert, jetzt müssen “nur” noch die Kunden informiert werden (Prenotification).

Wir machen das übrigens mit einer eigenen Software, die in Kürze auch kommerziell erhältlich sein wird. Details folgen.