Ein Instant Messenger

Kommentare anzeigen Worklog abonnieren
Gehe zu Seite 1, 2  Weiter

Worklogs Ein Instant Messenger

Wir ziehen um!

Samstag, 21. August 2010 von Eingeproggt
Guten Abend um 00:20!

Heute mal n kurzer Eintrag, da ich erstens nicht so viel Zeit habe (und in der letzten Woche hatte...) und zweitens gehört ja mal Abwechslung in meine sonst recht langen Beiträge.

Ich habe aufgrund von deutlichen Verfügbarkeitsschwächen des bplaced-Servers beschlossen, dass der Server nun woanders gehostet wird. An diesem Punkt natürlich ein Dankeschön an Zauberwürfel, der den neuen Server zur Verfügung stellt.
Und auch Danke an euch alle dass ihr euch ned beschwert habt in der Zeit wo ich auf bplaced war...

Ich fürchte fast, es gibt sonst nichts Neues. Nur noch dass die ToDo-Liste wieder etwas länger wurde da noch einige gute Vorschläge eingelangt sind Wink

Die alte Version mit dem alten Server läuft zwar noch, aber nicht mehr lange, ich werde den bplaced-Server vermutlich morgen "abbauen". Von daher bitte die neue Version laden:
DOWNLOAD

Alle Daten wurden mit Stichpunkt 20.8.2010, ~23:30 übertragen.
Ich wünsche viel Vergnügen!

mfG, Christoph.

Millenium! aber Passwort vergessen?

Sonntag, 15. August 2010 von Eingeproggt
Zuerst feiern wir den 1000. Worklog-Aufruf der am 14.8. um etwa 16:00 hier war - Ich danke allen Lesern!
Und nun gehts in gewohnter Manier weiter - wobei ich mir die Auflistung der Bugfixes spare - es waren vor allem Probleme mit meinen kürzlich geänderten "GUI Status System" die nun hoffentlich weg sind - aber vermutlich noch irgendwoe schlummern.

(kleinere) Verbesserungen

Oft kritisierte Bedienbarkeit-Mankos wurden versucht auszubügeln, darunter Capslock, Numlock, Unterstützung von Shift+Pfeiltasten zum Markieren und auch der lang ersehnte Zeilenumbruch in der Textbox, sogar jeweils bei Leerzeichen. Allerdings ist meine Lösung nicht wirklich perfekt Sad
Weiters sollte es nicht mehr möglich sein, von 2 PCs denselben user anzumelden.

Passwort resetten

Es ist vollbracht! Das nächste Kunststück das ich bisher nicht konnte und welches ich für den Messenger erlernt habe: EMail-Versand per php.
Sorry wenn das nicht so direkt mit BB zu tun hat aber das gesamte Projekt ist ja ein "Hybrid Projekt" (Aktuell: 379kb BB-Code, 21kb php-Code und 6 MySQL Tabellen)
Zuerst benötigt man für das Kunststück natürlich eine EMail-Adresse, die kann nun bei der Registrierung oder den Kontaktdetails angegeben werden, jeweils optional. (Wer keine oder eine falsche angibt dem kann leider nicht geholfen werden)
Die eingegeben Adresse ist für niemanden sichtbar und lediglich dazu gedacht, die Passwort-Zurücksetzung darüber abzuwickeln, denn die läuft nun so ab:
-> Man gibt seine ID ein und fordert ein neues Passwort an
-> Man erhält eine EMail mit einem Bestätigungslink (http) damit das Passwort tatsächlich geändert wird - andernfalls könnte ja jeder die Passwörter der anderen resetten lassen - so kann er sie höchstens mit EMails nerven...
-> Bei Bestätigung wird das Passwort auf eine zufällige, 5 Zeichen lange Buchstabenfolge geändert, welche man mitgeteilt bekommt - natürlich gleich mit dem Hinweis man möge es sobald wie möglich wieder im Programm ändern.
Geht ja alles in meinem Messenger Smile
Wer eine Lücke in dem beschriebenen System findet bitte laut schreien!

Weiteres

Was die Neuerung mit den EMails nun indirekt zur Folge hat:
Da ich zu blöd war mir einen SMTP Server (für EMail-Versand) auf meinem PC einzurichten der genau das tut was ich mit php machen will wird der Server nun offiziell auf einen Webhoster gelegt. Und wird daher mehr oder weniger rund um die Uhr verfügbar sein!
Wie zuvor ist im Code und in der Exe im folgenden Download alles konfiguriert.
Ich spionier ja nur ungern in der Datenbank da mich eure Daten ja nix angehen, Ehrensache - aber lasst mich einen kleinen Aufruf machen: Es gibt nch 13 offene Kontakt-Anfragen im System! Schaut öfters rein - mit der oben beschriebenen Möglichkeit sein Passwort zu resetten gibts keine Ausreden mehr Razz

Wir schließen den heutigen Eintrag um 15:15 wie immer mit dem
Download (~1MB)
der diesmal wärmstens empfohlen wird - die vorigen Downloads haben ja alle den falschen Server drin!

Ich wünsche viel Vergnügen und bedanke mich bei allen bisherigen Testern für ihre überwiegend positive und konstruktive Kritik - die übrigens auch in den Kommentaren gepostet werden darf Wink
Auf die nächsten 1000 Leser, Christoph.

Freitag der 13.

Freitag, 13. August 2010 von Eingeproggt
Ich habe in den letzten Tagen leider nicht so viel Zeit gehabt, aber heute muss einfach ein Worklog-Eintrag verfasst werden, schließlich ist heute Freitag der 13. (zu ungewohnter Stunde um 10:10). Aber da ich nicht abergläubisch bin schreibe ich heute aus einem anderen Grund: "In memorian Heat and Speed", in dessen Worklog genau heute vor 2 Jahren der letzte Eintrag verfasst wurde Sad
Aber zurück zur Gegenwart: In den folgenden 2 Auflistungen (Bugfixes, Verbesserungen) kann man sehen dass sich jede Menge getan hat, was aber eher die Feinheiten betrifft.
Ich schreibe es dennoch ganz detailliert auf damit ich hier mehr Inhalt zamkriege und damit ihr ne Vorstellung kriegt was ich so für Probleme hab (hatte Wink ). Ich sags aber auch gleich: Interessant wird der Eintrag erst weiter unten (Passwörter).

Bugfixes

-> Wenn man die Verbindung verliert und sich erneut einloggt gab es einen MAV
-> Schließen des Chat-Fensters mittels dem "X" und anschließendes neu öffnen führte zu Absturz
-> Chat-Farbe wurde ständig gesendet
-> Manchmal kamen Nachrichten doppelt / dreifach an
-> Das Scrolling in der Nachrichten-Verlaufs-Box wurde nicht immer richtig aktualisiert (is so ne Art "Langzeitbug"...)

Verbesserungen

-> gespeicherter Chatverlauf eines Kontaktes aus dem Kontextmenu aufrufbar
-> Entf und Rückschritttaste werden auch im "gedrückt-halten Zustand" erkannt
-> Fenster wechseln auch mit Rechtsklick möglich
-> Doppelklick auf ne Person in der Liste öffnet direkt das Chatfenster
-> Zeilenumbrüche werden im Chatverlauf nun durch Chr(13)+Chr(10) dargestellt ("Windows-Texteditor-kompatibel")
-> die Icons in der Kontaktliste werden nun unskaliert angezeigt (bessere Qualität)
-> Menüpunkt "Kontaktdetails" nur verfügbar wenn man eingeloggt ist
Arrow Etwas "größere" Neuerungen:
-> Im Login-Fenster kann man nun seine ID suchen - durch Eingabe seines Namens und Auswahl der ID falls es mehrere User mit gleichen Namen gibt.
-> Man kann sein Passwort ändern wenn man eingeloggt ist (Details siehe nächster Absatz)

Passwörter

Die Geschichte mitn Passwort-ändern hab ich ursprünglich gemacht damit man auch sein Passwort zurück setzen kann falls man es einmal vergisst - sprich "neu generieren" und anschließend ändern.
So weit so gut... jetzt hab ich nur ein Problem:
Dann könnte ja jeder die Passwörter anderer zurücksetzen und ändern wie er will - also muss ein Sicherheitsmechanismus rein dass man nur das Passwort seines eigenen Accounts zurück setzen darf. Jedoch ist das Passwort normalerweise dieser Sicherheitsmechanismus.
Man benötigt also noch was. Euch allen wird bekannt sein dass das dann über EMail-Verständigung / Bestätigung läuft. Was denkt ihr darüber - soll eine Registrierung mit EMail-Adresse so wie es bei soooo vielen Services der Cyberwelt auch in meinem Programm umgesetzt werden oder lasst man es lieber um den Leuten die Registrierung zu vereinfachen? Vielleicht auch eine Lösung wie "Email optional"?
Schreibt mal bitte was ihr darüber denkt, das ist etwas das mir so in den letzten 2 Stunden durch den Kopf ging und wo ich noch nicht sicher bin.

ToDo

Zum Schluss nur noch ne Auflistung für Leute die sich nicht den Download reingezogen haben (Warum nicht?) aber dennoch wissen wollen was in Zukunft ansteht:
-> Bug: das Enter drücken bei Textboxen wird nicht richtig zurück gesetzt wird und daher event. immer wieder den Login auslöst (im Login-Fenster). Dieser Fehler tritt leider nur bei der exe auf.
-> Beim Login Passwort Reset per EMail umsetzen - dazu mal EMail erfassen
-> "xyz tippt gerade"-Anzeige (bin mir nicht sicher ob ich das überhaupt haben will - wäre aber sicher rasch machbar)
-> Spielerein mit Taskleiste, TrayIcon etc.
-> Dateiversand

So, das wars für heute!
Download gibts natürlich wieder, diesmal 1MB.
(Euch ist eh aufgefallen, dass der Link immer derselbe ist?)

mfG, Christoph.

Fehlerfreie Klang-Farben und intime Details

Mittwoch, 4. August 2010 von Eingeproggt
In dem heutigen Titel sind die 3 wichtigsten Dinge dieses Eintrages zusammen gemurkst Wink
Aber vorweg: Mit dem letzten Test war ich sehr zufrieden Smile
Es gibt zwar immer wieder was zu tun aber mir ist relativ wenig aufgefallen was ich dringend nachbessern müsste.
Daher stürzte ich mich gleich auf was Neues!

Ressourcen

Zauberwürfel hat sich erbarmt, in Sachen Ressourcen ein wenig nachzuhelfen. Dank ihm habe ich nun neue Icons, neue Farb-Styles ("FreshBlue", "DarkTemptation" (siehe Screen)) sowie ein paar "Basic-Sounds" die man so in einem Messenger braucht.
user posted image
Außerdem sind noch 2 zusätzliche Schemata von mir dazu gekommen - ist für mich auch eine schöne Abwechslung mal sowas zu machen.

Kontaktdetails

Der Messenger wurde von Anfang an nicht so umfangreich geplant wie bereits bekannte Chat-Programme. Und schon gar nicht soll aus meinem Programm eine Single-Börse werden.
Aber um auch dieses Feature mal anzubieten gibt es nun die Kontaktdetails. Jeder User kann persönliche Informationen eingeben und die von seinen Kontakten einsehen. Derzeit umfasst dies den echten Namen, Geburtstag sowie Land, Stadt, Homepage und das Geschlecht.
Das sollte mal genügen.

Download

Wie "gewohnt" die aktuellste Version für euch:
Download (~1Mb)
Diese hat eine Besonderheit: Sie ist zwar ziemlich sicher nicht fehlerfrei aber im Moment sind mir keine Fehler bekannt Smile
EDIT, etwa eine Stunde nach Verfassen dieses Eintrages: Es sind nun doch einige Fehler bekannt... Hab ich wieder was zu tun...

mfG, Christoph.

PS: Ich hatte mich in den letzten 2 Einträgen nicht an die Tradition gehalten - wie schrecklich!
Also nun muss ich das aber wirklich wieder dazu sagen: Es ist etwa 22:30 Wink

Langsam aber sicher

Montag, 2. August 2010 von Eingeproggt
Nein, der Titel ist nicht auf die Ausführungsperformance des Messengers bezogen sondern auf mein Vorankommen seit dem letzten Eintrag hier.

MultiScreen-Problem gelöst

Dank der Hilfe von Xaymar fand ich einen Weg, wie ich sekundäre Bildschirme ermitteln und mich auf denen "breit machen" kann.
Ich weiß allerdings jetzt schon dass mein Ansatz 2 Macken hat (theoretisch, genau angeschaut hab ich mir das nicht)
-) Wenn man die Bildschirme NICHT nahtlos aneinander gesetzt hat könnte meine Methode versagen
-) Wenn der sekundäre Bildschirm ÜBER oder LINKS vom primären ist, gehts auch nicht.

Ich möchte euch daher bitten, mir Bescheid zu geben falls eine der gerade genannten Ausnahmen bei euch zutrifft - dann werd ich das nochmal angehen. Eine Idee hätte ich ja aber fürs Erste wars mir den Aufwand nicht wert.

Chatlog

Ja, in seinen Grundzügen ist es nun vorhanden. War auch nicht so die Kunst ich wollte nur damit abwarten bis ich das mit den "mehreren Fenstern" hingebogen hab.

Bugs

Da gibts so n Spruch: "Was ich nicht weiß macht mich nicht heiß"
Im (auf euch) übertragenen Sinn soll das heißen:
Es ist wohl besser, ihr erfahrt erst gar nicht was es da so für Bugs gab...
Der Phosphorsäureester war jedenfalls sofort zur Stelle Wink
Und ganz besonders stolz bin ich dass ich den "Langzeit-Bug" beheben konnte wegen dem ein User nichts davon mitbekommen hat wenn er von einem anderen geblockt wurde.

Aktueller Download

Natürlich dürft ihr an den Fortschritten auch teilhaben, bitteschön:
Download des aktuellen Paketes (~710kb)
Und ich nutze die Gelegenheit (und die Aufmerksamkeit die ein DownloadLink auf sich zieht ^^) um mich bei den bisherigen 14 Testern zu bedanken!
(nur um das ganz eindeutig noch zu schreiben: Sobald ich hier n Download anbiete heißt das, dass ich bemüht bin, den Server laufen zu lassen. Zumindest in den nächsten Tagen um die aktuelle Version zu testen.)

mfG, Christoph.

Holy Day

Sonntag, 25. Juli 2010 von Eingeproggt
Ich war wie angekündigt ne Woche lang auf Urlaub und da muss ich euch natürlich meine Erlebnisse schildern.
Aber keine Sorge, es wird keine langweilige Erzählungen über meine Alpenwanderungen geben - hier widme ich mich natürlich meinem Fortschritt in Sachen Instant Messenger Wink

Mein Laptop (wie hoffnungslos altmodisch ich bin... es heißt mindestens "Notebook") war mit dabei und ich dachte eigentlich, an alles gedacht zu haben... Denkste. Die gesamte Datenbank (also deren Inhalt) blieb daheim Sad
Ich konnte also die ganze Zeit nichts anderes machen als mich um die GUI zu kümmern - jedoch nicht schon wieder blitzUI... Ne, diesmal lag mein Augenmerk darauf, es dem User vorzugaukeln es gäbe mehrere Fenster.

Die "Fake Fenster"

Ich hab die Lib bereits im Codearchiv veröffentlicht. Dass es dort kein Interesse zu geben schien stört mich soweit nicht... Ich habe geahnt dass kaum jemand etwas damit anfangen wird.
Aber nun kann ich euch wie versprochen zeigen, was damit in meinem Messenger möglich ist Smile

user posted image
Anmerkungen:
-) Das Blau im HIntergrund ist der Debugger - nicht dass ihr denkt ich würde so n blödes Fenster auf euren Desktop knallen - dafür müsste man ja kaum ne Woche Aufwand treiben Wink
-) Ich wollte mal n weiteren Style präsentieren aber hier sieht man irgendwie ungewollt dass die Schriftfarbe der Benachrichtigungen (hier blau, im Chat-Fenster) nicht immer passt...

Also ich bin voll vernarrt in diese Spielerei Laughing
Der eine oder andere Schönheitsfehler mag noch drin sein, vor allem was die Sache mit Fenster minimieren / in Taskleiste anzeigen angeht... Damit spiel ich mich auch noch irgendwann, gehört ja zu nem Messenger dazu.

Sonstige Gedanken

Dem aufmerksamen Betrachter wird aufgefallen sein dass das Projekt derzeit "BChat" heißt, ein anderer Name schwebt mir noch im Kopf herum.
Aber ich werde den Titel des Worklogs nicht ändern. "Ein Instant Messenger" ist zwar irrsinnig langweilig aber wenigstens weiß somit jeder, worum es geht. Mir fiel nämlich vor kurzem (erneut) auf dass man bei einigen Worklogs immer nur den neuesten Eintrag so überfliegt und nichtmal mitdenkt weil man gar nicht weiß worum es urspünglich ging...

Wie auch immer, ich setze mit den üblichen Themen meiner ToDo-Liste fort.
Und ich setze mit den Alpha-Tests fort!
Download des aktuellen Paketes (~700kb, Alles-in-Allem-Rundum-Sorglos-Spezial-Paket)
Mein PC wird wieder vor allem Nachmittags und Abends als Server herhalten, Benutzungshinweise zu dem Programm liegen alle in der ReadMe (or die) bei.

Schönen Abend und darauffolgende Tage wünscht
Christoph.

EDIT - 25.7.2010, etwa 20:50:
Ich hatte gleich beim ersten Versuch mit einem freiwilligen Tester 3 Probleme bei mir entdeckt und erfolgreich bekämpft. Katastrophal... binnen nichtmal 10 Minuten 3 Abstürze... Aber es wurde sofort ein Update hochgeladen (welches ihr nun unter dem Link hier erreicht), mal hoffen dass das Programm jetzt wieder ein Stückchen besser ist.

Phosphorsäureester

Donnerstag, 15. Juli 2010 von Eingeproggt
Guten Abend um 22:40! (unglaublich wieviel Worklog-Einträge jetzt in den Ferien pro Tag geschrieben werden, da muss ich mich ranhalten Smile )

Ich bin in Sachen Chemie eine ziemliche Null. Ich würde selber nicht wissen dass der Titel des heutigen Worklogs für eine Substanzklasse der Wirkstoffe in der Schädlingsbekämpfung steht. (bis ich es soeben auf Wikipedia gelesen habe)
Aber genau darum geht es hier, wenn ihr weiterlest: Um Schädlingsbekämpfung aus programmiertechnischer Sicht Wink

Der erste Test...

... lief aus meiner Sicht ganz gut, weil es keine Programmabstürze gab - oder zumindest sind mir keine bekannt?
Klar gab es an allen Ecken und Enden Bugs und Verbesserungsvorschläge für deren Meldung ich mich bei den 7 (*freu*) Testern bedanke!

Und weil es so schön war, hier ein Screenshot Smile
user posted image

Auf Tests folgen Verbesserungen

Ich habe seither möglichst viele ToDo's abgearbeitet und währenddessen am anderen Ende selbst wieder n paar Punkte notiert die mir so auffielen.
Letztendlich ist die Liste nicht kleiner geworden... ihr kennt das ja Very Happy

Die Fortschritte sind so zahlreich, dass ich sie hier gar nicht alle aufführen kann (weil ich sie teilweise schon wieder vergessen habe).
Gleichzeitig sind die Fortschritte allesamt auf den ersten Blick unscheinbar.
Trotzdem ich bin doch ein wenig stolz, euch mitteilen zu können dass alle während der Tests aufgekommenen Bugs/Vorschläge nun behoben/umgesetzt sind - außer der Sache mit dem automatischen Zeilenumbruch im Eingabefeld Sad
Automatischer Zeilenumbruch is ja an sich nicht so das Problem, aber der Teufel steckt im Detail... wenn man dann aus der "oberen" Zeile wieder etwas rauslöscht, rückt der Text ja nicht mehr wieder hinauf. Und wenn man das auch noch hinbiegen würde, würde absichtlich umgebrochener Text (mit Strg-Enter) ja dann auch hinaufgerückt werden. Dazu bräuchte ich also dann sowas wie Zeilenumbruch-Zeichen, die aber wiederum nicht als Text dargestellt werden dürfen und... Nunja, soweit bin ich haltnoch nicht gekommen.

Ein Blick in die neue Version lohnt sich jedenfalls!
Link blieb unverändert, trotzdem hier nochmal:
Klick!
Eventuell ist schon jemanden aufgefallen, dass ich auf Versionsnummern verzichte... Meine Erfahrung lehrte mir, dass diese Nummern während der Entwicklung eigentlich nichts sagen. Um wirklich aufschlussreiche Versionsnummern angeben zu können bräuchte man eine weitaus bessere Planung als es die meisten Blitzer (mich eingeschlossen Sad ) praktizieren.

Und weil das Thema glaub ich öfter als einmal vorkam bei den Tests: Ein Wort zur Privatsphäre:
Am Server sind natürlich Benutzer (mit ihrer aktuellen IP) sowie die Kontakte gespeichert. Wann wer mit wem über was geredet hat ist mir nicht ersichtlich, da der eigentliche Chat P2P ist und nur zwischen den beiden Kontakten abläuft. Die Offline-Nachrichten werden am Server gespeichert, aber auch nur bis sie abgerufen werden.

und täglich grüßt... die GUI

War ja fast schon klar, dass meine Arbeiten an der GUI doch noch nicht abgeschlossen sind.
Ich habe sie im Zuge der Überarbeitung auch nochmal ein wenig modifiziert, die Änderungen (im Vergleich zu meiner vorher veröffentlichten Version):
- Anzeigefehler von Labels behoben (wurden manchmal über anderen Elementen gezeichnet bzw. "flackerten")
- NumBlock-Unterstützung überarbeitet, es werden keine KeyHits mehr verwendet
- Mausrad-Scrolling in ComboBoxes
- Mit [Tab] kann der Fokus zwischen Textboxen gewechselt werden (vorerst nur Textboxen, da bei vielen anderen Gadgets das keinen Sinn macht - unter anderem wegen fehlender Tastaturunterstützung (man denke an Cursortasten-Steuerung von Listboxen etc.))

Wie gehts weiter?

Da ich so gut unterwegs bin, würd ich sagen ich mach genauso weiter Smile
Der aufmerksame Tester kann alle ToDo's in den "Notizen.txt" nachlesen.
Allerdings wird es nur noch bis übermorgen (Samstag, 17.7.) so weiter gehen, da ich dann auf Urlaub fahre. Der Server hier läuft dann nicht und meine Programmierarbeit wird auch stark reduziert - aber kann event. weiter gehen, dem Laptop sei Dank ^^

Ich freue mich auf neue Gäste/Tester Smile
mfG, Christoph.

Open Alpha!

Montag, 12. Juli 2010 von Eingeproggt
Frei nach dem Motto "Keine Antwort ist auch eine Antwort" reagiere ich nun auf euer "Feedback". Und lade jetzt (~22:10) die erste öffentlche Alpha für euch hoch!

An sich ist alles in der ReadMe (or die) gesagt, aber für die Leute die Readme's so gerne ignorieren, hier nochmal die wichtigsten Eckdaten:

-) Es gibt noch "offene Baustellen" und bekannte Bugs (daher "alpha")
-) Der Code liegt bei, kann aber nur von "erfahrenen" Usern zum Laufen gebracht werden wie ich zu behaupten wage (Mindest-Kenntnisse mit userlibs erforderlich)
-) Der Server läuft bei mir lokal und mein PC ist nicht immer an - sprich, es kann sein dass ihr einfach mal gar nix seht... Bitte dann einfach später nochmal probieren. (Anmerkung dazu: Ja, ich weiß es wäre ein leichtes, den Kram auf n Free-Hoster zu laden und alle sind glücklich. Aber während der Entwicklung sind mir schnelle Änderungen und Debug-Möglichkeiten wichtiger)
-) Ich bin selber mit der ID 11 als Kontakt zu erreichen - wer sich registriert hat und den Chat testen möchte, adde mich bitte. (Oder suche nach anderen Usern Wink Wobei noch 2 oder 3 Testaccounts in der DB herum schwirren)

Kommen wir feierlich zum Download:
KLICK! (rar-Archiv, ~700kb)

Screenshots wollte ich ursprünglich auch welche präsentieren, aber welche optischen Glanzleistungen erwartet ihr euch von nem Messenger?
Und so viel hat sich zu dem hier gezeigtem Screen auch nicht verändert...

Jetzt müssen einfach n paar Kommentare kommen, auch wenn es nur zig Fehlermeldungen sind Laughing

Aber damit nicht genug

Die Passwörter werden nun gesalzen. Allerdings bin ich mir nicht sicher, ob ich das richtig gemacht habe...
Also Ausgangssituation ist ja, dass man als Ober-Hacker theoretisch den gesendeten Passwort-Hash abfangen könnte und nun in weiterer Folge sich selber mit diesem Hash anmelden könnte.
Nun wird vor dem Login ein "Salt" abgefragt, der in meinem Fall ein 10 zeichen langer Zufalls-String ist.
Der Salted Hash ist dann: MD5(Passwort_Hash+Salt)
Diese zeichenfolge wird einfach verglichen und fertig ist der Login. Als Sahnehäubchen werden noch "alte" Salts immer aus der Datenbank entfernt.
Nur irgendwie fühle ich mich damit immer noch nicht sicher... Da muss es doch einen Haken geben? Also wenn n Hacker jetzt den Passwort-Hash vom Registrieren abfangen würde und den Salt dann könnte er ja nach wie vor den Account missbrauchen.
Oder viel einfacher und vermutlich noch gefährlicher für die User: Man kann den hash per Rainbow-Table entschlüsseln.

Also möchte ich auf diesem Weg auch gleich zur Diskussion anregen:
Ist dies eine allgemeine Schwachstelle oder hab ich n Denkfehler?
(Ich tippe ja schon mehr auf allgemeine Schwachstelle, da ich zum Registrieren keine SSL-Verbindung benutze - wie denn auch mit BB Sad )
Aber naja... ich nehme nicht an, dass mein Messenger ein goßes Ziel für Hacker werden wird...

Achja, und da waren dann noch so Kleinigkeiten wie es sie halt immer wieder mal gibt, nicht der Rede wert. Darunter auch Überlegungen den Namen betreffend - aber genau darüber wollte ich ja anfangs nicht reden wenn ihr euch erinnert Wink

mfG, Christoph.

Die Politik der kleinen (Fort-)Schritte

Samstag, 10. Juli 2010 von Eingeproggt
Da bin ich mal wieder (diesmal um 18:00) - ohne weltbewegender Neuigkeiten aber Kleinvieh macht auch Mist.

Die Ping-Methode

Der Ping läuft ja über einen parallel laufenden Prozess. Hab ich schon oft genug erwähnt. Aber die Probleme die darin verborgen liegen und vor allem im ersten Alpha Test mit kriD auftraten hab ich erst jetzt behandelt:
Zum einen: Was macht der "Hilfsprozess", wenn der "Hauptprozess" gewaltsam beendet wird? Man muss dieser Tatsache auf die Spur kommen und den Hilfsprozess natürlich auch sauber beenden. (Wird der Messenger vom User sauber beendet, wird der Hilfsprozess ebenfalls heruntergefahren - dafür hab ich schon zu Beginn gesorgt. Jetzt gehts ja um Programmabstürze / Abwürgungen.)
Zum anderen: Was macht man, wenn der "Ping-Prozess" abschmiert oder gewaltsam beendet wird? Auch das kann man feststellen und ihn daraufhin neu starten.
Dazu noch ein paar Anmerkungen:
Wie stellt man fest ob ein Prozess noch läuft? Na mit nem Timout wärs am einfachsten. Bringt aber n Haufen Probleme, wenn das Programm mal einfriert (zB wegen einer MessageBox). Bessere Lösung daher: Man ermittelt die ProzessID.
Und zu guter Letzt: Ja, mein Vorgehen ist ein wenig mit einem Virus vergleichbar dass sich nicht killen lässt. Da es eine Exe gibt die den Prozess immer wieder herstellt. Aber das ist im Sinne des Anwenders und kein schadhaftes Verhalten - von daher auch kein Virus.

Was darfs denn sein?

Mir gefällt der Messenger so wie ich ihn programmiere. Aber all jene, die nicht mit meinem Geschmack übereinstimmen sollen natürlich Einstellungen vornehmen/ändern können.
Das Optionen-Menü hab ich angefangen, es bietet aber derzeit nur die Wahl eines Farbschemas. (BlitzUI Standards, bin zu unkreativ was eigenes zu designen)
In Zukunft werden dort dann auch so Standard-Dinge wie Chatverlauf oder Status-Benachrichtigungen konfigurierbar sein.

Ebenso gibt es User die andere User nicht leiden können. Die Lösung in praktisch allen Chat-Programmen: Blocken / Ignorieren.
Das geht nun auch schon, allerdings noch mit dem Schönheitsfehler dass das Blocken bei dem geblockten Kontakt erst nach dessen Neustart registriert wird. Kleines Problem mit meinem Status-Benachrichtungssystem. Schließlich darf man, wenn man einen Benutzer blockt nicht für all seine Kontakte offline erscheinen sondern nur für den einen. Ist komplizierter als man anfangs denken mag, da hab ich noch was zu tun...

Bugs everywhere?

Naja, nicht überall aber doch an einigen Stellen.
-) Die BlitzUI die ich im letzten Beitrag veröffentlicht habe wurde nochmal geringfügig up-ge-datet. Link ist derselbe.
-) Ein Bug mit GetKey habe ich auf meinem PC - siehe hier. So wie es aussieht bin aber nicht ich daran Schuld sondern Blitz oder gar mein PC.
-) Um weiteren Fehlern auf die Spur zu kommen suche ich nach wie vor (bzw. stärker als zuvor!) Alpha Tester!

Ich bin voll begeistert! Was kommt noch alles?

Ein kleiner Einblick in meine ToDo:
-) Passwörter salzen
-) Chatverlauf speichern
-) Dateiversand
... mal so im Groben. Kommt sicher was dazwischen ^^

Danke fürs Lesen!
und über Kommentare freue ich mich wie n kleines Kind über einen Lolly!
mfG, Christoph.

Ein letztes (?) Mal: GUI

Mittwoch, 7. Juli 2010 von Eingeproggt
Hallo!
Genau die richtige Zeit für n Worklog Eintrag (~1:30) Wink
Es ist nun soweit, wie versprochen veröffentliche ich mal die von mir modifizierte BlitzUI.

Vorgeschichte

Ich habe mich schonmal mit der BlitzUI näher befasst und ein paar neue Features rein gebastelt, siehe dieser Thread.
Für dieses Projekt (es geht um den Messenger Wink ) hab ich mich nochmal tief reingegraben und wieder einiges erweitert.

Soweit ich aus dem englischen Forum lesen konnte sind einige meiner Ideen nicht gerade neu sondern schon geplant gewesen.
Allerdings scheint die BlitzUI 2 nie veröffentlicht zu sein und die Demo ist auch nicht mehr verfügbar.
Von daher präsentiere ich mit Stolz meine "BlitzUI Christoph Edition" Smile

Warum BlitzUI?

Ich bin mir Alternativen wie der EscapeGUI oder der mGUI durchaus bewußt. Ich muss neidlos zugeben, dass diese beiden Systeme um Längen CPU-schonender sind als die BlitzUI.
Aber wie in diesem Worklog bereits beschrieben, hängt mein Herz an den mehrzeiligen Textboxen.
In den meisten anderen Dingen sind sich die GUIs durchaus ähnlich, was Funktionsumfang oder Handhabung angeht. Man könnte evetuell noch anmerken, dass die mGUI etwas detailliertere / liebevollere Skins anbietet / ermöglicht.
Einige oder zumindest in meinen Augen die gröbsten Mängel der BlitzUI habe ich ja hiermit versucht zu beheben - von daher kann ich sie für die meisten User empfehlen (die mehrzeilige Textboxen brauchen - aber auch für andere stellt diese GUI eine gute Alternative dar, da ich von (BB-bedingten) Graphikfehlern der EscapeGUI gehört habe).

Modifikationen (Stand: 15.7.2010)

-) Die "icons.bb" wurde fix in die "blitzui.bb" integriert
-) "FreeGadget" um einzelne Gadgets zur Laufzeit zu entfernen
-) "URL"-Gadget (ähnlich Labels aber nur einzeilig!)
-) Mausrad-Scrolling für ListBox, TextBox, TreeView und ComboBox
-) Einige Optimierungen in Sachen CPU-Verbrauch - Aufgrund dessen allerdings KEIN Cursor-Blinken in Textboxen möglich ist. Außerdem wird die GUI nicht mehr in jedem Frame neu gezeichnet. Sollte dies erforderlich sein, muss "UpdateGUI" mit dem Parameter Force=True aufgerufen werden
-) Tooltip in ListBoxen, wenn Item-Text zu groß ist
-) "Password" und "ReadOnly" -Modus für Textboxen (Achtung, die Parameter von "TextBox" haben sich daher geändert im Gegensatz zum Original!)
-) Copy&Paste für Textboxen (benötigt eine userlib *)
-) NumBlock-Unterstützung für Textboxen
-) Textboxen-Fokus mit [Tab] wechseln
-) Einige Möglichkeiten zu "SendMessage" hinzugefügt, darunter auch eine Option, Textbox-Zeilen beliebig zu färben (siehe Quelltext für eine Übersicht über alle Befehle)

Somit sind nun alle Dinge umgesetzt, die ich mir gewünscht hatte. Mit Ausnahme eines automatischen Zeilenumbruchs bei mehrzeiligen Textboxen. Das musste ich erfolglos aufgeben - vlt finde ich ja noch einen Weg.

*) Code: [AUSKLAPPEN]

.lib "user32.dll"
OpenClipboard%(hwnd%):"OpenClipboard"
CloseClipboard%():"CloseClipboard"
ExamineClipboard%(format%):"IsClipboardFormatAvailable"
EmptyClipboard%():"EmptyClipboard"
GetClipboardData$(format%):"GetClipboardData"
SetClipboardData%(format%,txt$):"SetClipboardData"


Wer mit userlibs nicht vertraut ist oder aus irgendwelchen Gründen diese userlib nicht anlegen möchte, der kann das Copy&Paste-Feature wie folgt deaktivieren:
Auskommentieren bzw. Löschen des Inhalts der Funktionen "TextBox_Copy", "TextBox_Cut" und "TextBox_Paste"

DOWNLOAD (~350kb)

Gesamtpaket inklusive den ursprünglichen Samples und der original-Doku. Die aber in einzelnen Punkten nicht mit meiner Version übereinstimmt. Aber das sind eh nur "Einstiegshilfen". Wer ernsthaft mit der BlitzUI arbeiten will kommt meines Erachtens nach nicht drum rum, sich ein wenig in den Quelltext einzulesen um zB die SendMessage-Befehle zu verstehen.
Das meiste was hier im Worklog-Eintrag steht findet sich auf Englisch nochmal in der Readme.

Rechtliches
Ich konnte keine Lizenzrechte ermitteln oder Kontakt zum Original-Autor herstellen. Laut diesem Thread ist die BlitzUI OpenSource und daher meine Modifikationen erlaubt. "Meine" BlitzUI ist somit auch als OpenSource deklariert.


Ich erkläre mich auch bereit, hier Support für die BlitzUI zu leisten. Hier im Forum über PN oder auch über MSN / ICQ. (und wer weiß, event. mal über meinen eigenen Messenger Razz)
Allerdings bitte ich euch zu verstehen dass ich auch nicht jede der über 9.000 Zeilen auswendig kenne - Support daher ohne Garantie.

Ich hoffe, zumindest irgendwen geholfen zu haben.

mfG, Christoph.

Gehe zu Seite 1, 2  Weiter