Tuesday, 19. July 2005

Ticino

MORGEN

URLAUB

ENDLICH
bis bald...

CVS ChangeLog (als RSS-Feed)

Für diejenigen welche der Subversion-Versuchung noch widerstehen konnten, gibts nun eine Kurz-Anleitung wie man sein CVS ChangeLog automatisiert in eine nette HTML Seite transformiert (wie etwa hier). Und als Draufgabe erhält man noch einen RSS-Feed vom ChangeLog, welcher sich bequem abonnieren lässt.

Man benötigt:
* ein CVS-Repository (bzw kann zum Ausprobieren auch das Helma-CVS-Repository verwendet werden)
* einen CVS-CommandLine-Client in seiner Shell (für Windows etwa von hier downloadbar)
* Jakarta Ant
* ein Ant-Build-Skript, wie etwa dieses hier: cvschangelog (xml, 2 KB)
* ein XSL-Transformations File für den HTML Output: cvschangeloghtml (xsl, 6 KB)
* ein XSL-Transformations File für den RSS Output: cvschangelogrss (xsl, 2 KB)

Man ladet sich also obige xml- und xsl-Dateien in ein Verzeichnis herunter, und führt dann in etwa Folgendes aus:
ant -f cvsChangeLog.xml
Der Output befindet sich dann im gleichen Verzeichnis, sollte aber noch in ein übers Web erreichbares Verzeichnis verschoben werden.

Voilá!


Vorsicht
: Falls man ein CVS-Repository mit Version 1.12.9 oder höher verwendet, dann muss man sich seine Ant-Version patchen. Details hierfür finden sich hier in diesem Bug-Report.

Kudos to Hannes für die entsprechenden Hinweise und Skripte.

Linkdump du Jour

-> Joe Gregorio's Weblog
-> Secure RSS Syndication (written by Joe Gregorio)
Requires the server-side encryption of microformats, which are in the end decrypted by the browser itself through a Greasemonkey script.
-> Atom 1.0 finished !?
-> About Microformats
-> The Blowfish Encryption Algorithm by Bruce Schneider

Monday, 18. July 2005

Abendessen

Heute gibts Sushi. Beim letzten Mal sah das dann etwa so aus:
sushi
und der Spaß kostet in etwa genauso viel, wie wenn man zum sushi-laden geht, und dort sowas kauft:
sushi2
Sieht man nen Unterschied? :-)

smi bloggt!

-> http://smi.twoday.net
kritischer und bedeutungsschwerer denn je zuvor :-)

Friday, 15. July 2005

LDAP

paar Notizen & Links:

über Directory Services im Allgemeinen
* it is basically a storage for data, a (possibly big) lookup-table
* difference to relational database:
** strictly hierarchical
** read optimized
** attributes are defined via a schema (together with their type and whether these attributes are required or not)
** Schemas can be formally registered (at the IANA = Internet Assigned Numbers Authority)
** encrypted connection is important (but not required)
** replication / performance is important
* Directory services are most often used for Security/Authentication
* Examples:
** Microsoft's Active Directory
** Fedora Directory Server
** Apache Directory Project
** ...

über LDAP
LDAP is just the protocol used for communication with a Directory Service. Uses TCP/IP.
Hierarchical structure that reflects political, geographic, and/or organizational boundaries
Each object in the database is uniquely identified through its distinguished name (DN). Example: cn=Michael Platzer,ou=people,dc=knallgrau,dc=at

über OpenLDAP
apt-get install slapd
Excellent and Comprehensive Introduction for OpenLDAP on Debian

Web-Client for LDAP
apt-get install phpldapadmin
support read and write operations

Thunderbird Client for LDAP Adreesbook
Adressbuch -> Datei -> Neu -> LDAP Verzeichnis
  Allgemein
    Name: Knallgrau LDAP
    Hostname: knallgrau.at
    Basis-DN: dc=knallgrau,dc=at
    Port: 389
    Bind-DN: ...
  Offline
    ??
  Erweitert
    Nicht mehr als 100 Ergebnisse
    Umfang: Unterverzeichnisse
    Suchfilter: (objectclass=*)
Extras -> Einstellungen -> Verfassen
   Adress-Autovervollständigung
    [x] LDAP Verzeichnis Server: Knallgrau LDAP
Restart Thunderbird!
just read operations!

Outlook Client for LDAP Adreesbook
Extras -> Email-Konten -> Neues Verzeichnis hinzufügen -> LDAP

  Servername: knallgrau.at
  [x] Server erfordert Anmeldung
    Benutzername: ...
    Kennwort: ...
How Do LDAP Attributes Map to Address Book Fields? http://www.openldap.org/faq/data/cache/294.html
just read operations! cumbersome search.

LDAP + mantis
http://mantisbt.org/manual/manual.customizing.mantis.ldap.php

LDAP + mediawiki
http://meta.wikimedia.org/wiki/LDAP_Authentication

LDAP + Apache
http://httpd.apache.org/docs-2.0/mod/mod_auth_ldap.html#operation

LDAP + SugarCRM
http://www.sugarcrm.com/forums/showthread.php?p=2270&posted=1#post2270

LDAP + CVS Server
???

Wikipedia

Heut muss/soll/will ich firmenintern im Rahmen unserer Think!Loud-Reihe einen Vortrag über LDAP halten, und merke beim Zusammenstellen meiner Unterlagen, dass ich fast ausschließlich nur noch Wikipedia zusammenfasse. Sprich eine Zusammenfassung einer Zusammenfassung.

Und dann erinnert man sich an die mühsamen langwierigen Recherchen für diverse Schulreferate. Was machen denn die Schüler, bzw wir alle nun mit der vielen schönen Zeit die wir durch die technologische Entwicklung gewonnen haben...

...weiter entwickeln, vermute ich mal. Also ich mach mich wieder ran an die Arbeit.

Falls ich dennoch wider Erwarten etwas Spannendes über LDAP ausfindig mache, dann werd ich das natürlich hier reinstellen.

Nachtrag: Es wird übrigens gerade der Karl-Marx-Hof auf der Startseite von Wikipedia gefeatured.

Thursday, 14. July 2005

die Vespa, der Sommer und du

Herr Sierra und Herr Michi gönnten sich mal wieder ein gutes Abendessen beim McD
-> http://www.moday.at/DieterRappold/stories/7322/

Als Untersatz darf ich übrigens seit paar Wochen eine brandneue Vespa LX 125 mein eigen nennen, absolute empfehlenswert. (Ich merke schon, das Blog hier mutiert zum reinen Werbeblog.)

Wednesday, 13. July 2005

(Noch unbezahlte) Werbeeinschaltung

Seitdem ich mir vor rund 2 Monaten einen neuen Laptop zulegen musste, und ich seitdem auch nur noch von diesem Laptop schwärme (ohne dass mir der bezahlte Preis noch Schuldgefühle macht), haben sich in meinem Freundes- und Firmenkreis bereits 5 andere genau diesen zugelegt. Und zwar handelt es sich ums, trara...
Samsung X20 XVM 1600 III
Ich fordere also von Samsung Provision für die bisherigen Weiterempfehlung, als auch für die hier erfolgte Werbeeinschaltung.

Bzgl Notebooktaschen bin ich noch am überlegen. Crumpler hat schwer lässige Covers, aber leider eben viel zu teuer. Ich schätze ein €9,90 Teil von Hama wird es auch tun. Oder hat sonst jemand vielleicht Tipps für mich?

Linkdump du Jour

-> http://xprofile.berlios.de/
-> http://xprofile.berlios.de/UserShortcuts
-> http://erfurtwiki.sourceforge.net/MarioSalzer
-> http://www.identitycommons.net/

Tuesday, 12. July 2005

JCaptcha in Helma, bzw auf twoday.net

Manch einer mag bemerkt haben, dass wenn man sich neuerdings auf twoday.net registrieren will, dass man ein Bild wie folgendes entziffern muss:
Nicht ganz leicht für das menschliche Auge, aber noch viel viel schwieriger für einen Spam-Bot zu lesen! Und hier offenbart sich auch schon der Sinn dieses Bildchens. Automatisiert ablaufenden Skripts, welche sich in Massen bei Services registrieren um Spam-Kommentare zu hinterlassen, soll das Handwerk legt. Gottseidank sind wir hier bei twoday.net noch ein Land Dorf der Seeligen, und sind bisher weitestgehend verschont geblieben (bis auf die Referer-Spammer). Aber man kann nie vorsichtig genug sein. Vor allem wenn wir künftig auch anonymes Kommentieren (ohne vorherige Registrierung) hier erlauben wollen.

Nun denn, nun zum Technischen:
JCaptcha ist eine Java-Library, welche genau dafür gedacht ist, solche verzerrten Bilder zu generieren. Und dies macht diese Library auch sehr brav. Mit der API-Dokumentation selbst fangt man allerdings nicht viel an, und verflucht zu solchen Anlässen mal wieder die dutzenden Interfaces/Klassen-Verschachtelungen einer solchen, eigentlich simplen Library. Nachdem man aber nach paar Beispielen gegoogelt hat, stellt sich aber die Verwendung der Library doch als recht simpel heraus:

function modJCaptcha_action() {

   if (!app.data.modJCaptchaService) {
      app.data.modJCaptchaService = new Packages.com.octo.captcha.engine.image.gimpy.DefaultGimpyEngine();
   }

   session.data.modJCaptcha = app.data.modJCaptchaService.getNextCaptcha();
   var challenge = session.data.modJCaptcha.getImageChallenge();
   var jpegOutputStream = new java.io.ByteArrayOutputStream();
   var jpegEncoder = Packages.com.sun.image.codec.jpeg.JPEGCodec.createJPEGEncoder(jpegOutputStream);
   jpegEncoder.encode(challenge);
   var captchaChallengeAsJpeg = jpegOutputStream.toByteArray();
   res.contentType = "image/jpeg";
   res.writeBinary(jpegOutputStream.toByteArray());
   return;
}
Beim Registrieren selbst muss man dann nur noch abfragen, ob der eingegebene Text auch der Challenge entspricht:

   if (!session.data.modJCaptcha) {
      throw new Exception("modJCaptcha.noChallenge");
   }
   if (session.data.modJCaptcha.validateResponse(req.data.modJCaptchaAnswer) == false) {
      throw new Exception("modJCaptcha.wrongAnswer");
   }
   session.data.modJCaptcha = null;
That's it! So einfach kanns gehen, und so dankbar ist man dann dass man von Helma aus beliebige Java-Klassen ganz bequem scripten kann.

Will man jedoch die Höhe oder Breite des Bilds ändern, dann kann man nicht mehr die Default-Engine verwenden, und die Anzahl der Code-Zeilen verdoppelt sich dann gleich mal mit einem Schlag.

Nachtrag: Soeben wurde mir folgendes angezeigt..
usuck
Das geht ja dann doch wohl etwas zu weit. Vor allem wenn man sich gerade registrieren will :-)

Search

 

About michi

michi Michi a.k.a. 'Michael Platzer' is one of the Knallgraus, a Vienna-based New Media Agency, that deals more and more with 'stuff' that is commonly termed as Social Software.

Meet my fellow bloggers at Planet Knallgrau.

my delicious

Recent Updates

My Gadgets

Credits

Knallgrau New Media Solutions - Web Agentur f�r neue Medien

powered by Antville powered by Helma


Creative Commons License

xml version of this page
xml version of this page (summary)

twoday.net AGB

Counter



berufliches
blogosphaerisches
privates
spassiges
sportliches
technisches
trauriges
Profil
Logout
Subscribe Weblog