log4Net
21. September 2007Jeder Entwickler braucht manchmal eine Funktionalität die in einer Anwendung alles protokollieren kann (z.B. Debuginfos, Warnings, Errors etc.) und genau das bietet Log4Net an.
Ein Tutorial zum Thema Log4Net gibt es hier
![]() |
![]() |
![]() |
|
|
|
|
| Archiv |
|
|
| Blogroll |
|
|
WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better. |
Jeder Entwickler braucht manchmal eine Funktionalität die in einer Anwendung alles protokollieren kann (z.B. Debuginfos, Warnings, Errors etc.) und genau das bietet Log4Net an.
Ein Tutorial zum Thema Log4Net gibt es hier
Ein sehr hilfreiches und leicht zu verstehendes Tutorial zum Thema RegEx gibt es hier.
Wer unter C, Objective-C oder C++ mit dem GCC Compiler entwickelt sollte sich mal anschauen was Google unter dem Namen tcmalloc veröffentlicht hat.
Das ist eine Multithreaded Implementation des Speicherverwaltungstools malloc. Es soll erhebliche geschwindigkeitsvorteile bringen bei Applikationen die mit mehreren Threads arbeiten. Aufmerksam bin ich drauf geworden durch das DevRadio des Chaos Computer Clubs Ulm.
Ein recht gelungenes Delphi/ObjectPascal Handbuch findet man online unter unter http://de.wikibooks.org/wiki/Delphi
Weitere Bücher zu IT Themen findet man ebenfalls unter http://de.wikibooks.org/wiki/Regal:Programmierung
Mit diesem Tool kann man sehr einfach WebServices testen. Es besteht die Möglichkeit alle WebServices und deren Funktioneninteraktiv zu testen.
Ein Beispiel
Das WebService beinhaltet 2 Funktionen:
So kann man die Signaturen detailiert sehen und beide Funktionen interaktiv testen. Wie man sehen kann, ist es alles übersichtlich, einfach und besser als Standard von Microsoft.
Was jeder SW-Entwickler braucht ist natürlich die REQUEST / RESPONSE Informationen
..und natürlich das wichtigste – WSDL
Das Tool ist hier zu finden:
http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=65A1D4EA-0F7A-41BD-8494-E916EBC4159C
Jedem Entwickler, der mit Delphi anfängt, unterläuft häufig folgender Fehler:
Man öffnet ein Formular mit “frmBeispiel.Show;” und schließt es mit “frmBeispiel.Close;”.
Dabei geht man davon aus, dass der Speicher wieder freigegeben wird. Irrtum!
Gleiches gilt für alle Objekte!
Deshalb mit “FreeAndNil(objekt);” freigeben.
Dynamische Arrays gibt man mit “SetLength(array,0);” frei.
Auf HackMac.org ist ein Artikel erschienen der beschreibt wie man ohne ein bestehendes Adminpasswort zu kennen ein neues Adminkonto einrichten kann. Dazu bootet man den Mac im Single-User Modus. Das erfolgt mit betätigen von Apfel+S beim Booten. Sollte der Single-User Modus deaktiviert sein dann findet man hier die Anleitung wie man ihn aktiviert: http://hackmac.org/?q=node/18 . Beim Mac kommt jetzt leider keine Passwortabfrage, daher kann man das Laufwerk mounten und die Datei ‘/var/db/.applesetupdone’ löschen. Nach dem Neustart wird dann ein Dialog zum einrichten des Rechners gezeigt. Und schon kann man ein neuen Adminaccount anlegen und seine Daten retten (wir gehen mal davon aus das das der Zweck der Sache ist). Wenn man mal sein Passwort geändert hat und nicht mehr an die Daten rankommt ist das im moment ein schneller Weg die Daten zu retten. Aber hoffentlich behebt Apple das Problem bald.
Mehr dazu hier:
http://www.heise.de/newsticker/meldung/96164
http://www.hackmac.org/?q=node/4
Nachdem wir Anfangs auf der CLX-Schiene einige Projekte umgesetzt hatten, aber nun feststellen mussten, dass uns dies langfristig gesehen keine Vorteile gebracht hat, werden nun zunehmend die damals erstellten CLX-Projekte zu gewöhnlichen Win32-Applikationen umgeschrieben.
Falls jemand vor dem gleichen Problem steht, beschreibe ich meinen Weg, mit dem ich die Applikationen in kürzester Zeit umgeschrieben hatte (Voraussetzung hierfür ist, dass keine linuxspezifischen Befehle verwendet wurden):
| 1. Schritt: Schließen Sie das Projekt, falls Sie es gerade offen haben. Für die Konvertierung wird Delphi nicht benötigt. 2. Schritt: 3. Schritt: 4. Schritt: 5. Schritt: 6. Schritt: |
Nun sollte alles geschafft sein. Erstellen Sie nun Ihr Projekt neu.
1a-Photoshop.de hat einen Überblick über einige Fotoentwicklungsservices’ aufgestellt, die Fotos praktisch gratis drucken. Bei Neuanmeldung oder Test-aktionen zahlt man lediglich die Versandkosten für eine bestimmte Anzahl an Fotos.
Das ist sehr praktisch da man hierbei einige der Anbieter in ihrer Qualität selbst testen kann.
Genaueres zu Preisen sowie die Liste selbst findet ihr hier!
Wer weder Zeit noch Lust hat die Anbieter auf eigene Faust zu testen, kann dort auch die Testergebnisse von 1a-photoshop einsehen.
Da sich der Service dieser Anbieter natürlich von Zeit zu Zeit ändert, macht es Sinn vor größeren online-Bestellungen erstmal dort vorbeizuschaun!
Anbei ein Beispielcode wie man eine CSV Zeile parst und diese ins lokale Addressbuch des Benutzers speichert:
#import "AdressController.h" #import "AddressBook/ABAddressBook.h" @implementation AdressController - (IBAction)addAdress:(id)sender { NSString *strName; strName = [Namefield stringValue]; //VALUE DES EINGABEFELDS ABAddressBook *addressBook; ABPerson *newPerson; addressBook = [ABAddressBook sharedAddressBook]; //LOKALES ADRESSBUCH /* CSV PARSING BOF */ NSString *csvTest = @"dennis;müller"; //BEISPIEL CSV ZEILE NSString *separatorString = @";"; //TRENNZEICHEN DEFINIEREN NSScanner *csvScanner = [NSScanner scannerWithString:csvTest]; //CSV PARSER int anInt; [csvScanner scanInt:&anInt]; //ZÄHLER ÜBERGEBEN FÜR DIE SCANLOCATION NSString *name; [csvScanner scanUpToString:separatorString intoString:&name]; //NAME EINLESEN NSString *vorname; vorname = [[csvScanner string] substringFromIndex:([csvScanner scanLocation]+1)]; //VORNAME EINLESEN /* CSV PARSING EOF */ /* CSV ZEILE EINFÜGEN BOF */ newPerson = [[ABPerson alloc] init]; //SPEICHER RESERVIEREN FÜR DIE ABPerson [newPerson setValue:name forProperty:kABFirstNameProperty]; [newPerson setValue:vorname forProperty:kABLastNameProperty]; [addressBook addRecord:newPerson]; [addressBook save]; [newPerson release]; // SPEICHER FÜR ABPerson freigeben /* CSV ZEILE EINFÜGEN EOF */ } @end