[Vienna-pm] unsuccessful story "successfull story"

Thomas Klausner domm at zsi.at
Mon Dec 13 03:54:16 CST 2004


Hi!

On Mon, Dec 13, 2004 at 08:27:54AM +0100, Nagy Wilhelm wrote:

> ich will euch nicht auf den wecker fallen...

im Gegenteil.


> *) brechen wir ab und lassen es

nein!

> *) machen wir irgendwie weiter.

Ja!!!

> warum verwenden wir nicht pod

Ich dachte zuletzt an YAML, aber damit mal was passiert ist POD auch OK.

> oder so aehnlich.

Hab mal eine Projektbeschreibung drangaehaengt.

> das erzeugten html knallt ein moderator in ein direktory auf wienna-pm und
> fertig....

kann ich machen.


> **************************
> *** on air ab 1.1.2005 ***
> **************************

yeah! Deadline!

> es erscheint mir eine 2-phase-commit faehige, verteilte, bis zur 8.
> normalform gebrachte datenbankloesung zu steil.

8. Nominalform? Was hab ich da versaeumt :-)

-- 
#!/usr/bin/perl                               http://domm.zsi.at
for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
-------------- next part --------------
=head1 Projekt

Website und Redaktionssystem fuer Radio Oe1

=head2 Datum

Implementierung von Juni bis Oktober 2003, seit November 2003 online.

=head2 URLs

http://oe1.orf.at

=head2 Autoren

Rosebud, Inc (Konzept, Projektmanagement, etc)
Thomas Klausner (Programmierung, Datenbank, etc)

=head2 Kontakt

Thomas Klausner, domm at zsi.at

=head1 Vorbemerkung

Aus relativ obsukren, mir nicht klaren Gruenden wurde die
Neugestaltung der Website von Oe1 nicht von orfon erledigt sondern
extern vergeben, und zwar an Rosebud, Inc.

Rosebud, Inc. ist mit der Frage an mich herangetreten, ob ich das CMS
fuer die Site entwicklen will. Da es sich nicht nur um ein reines CMS
handeln soll, sondern auch Interfaces zu verschiedenen bereits
existierenden anderen Systemen (Programmplanungstool von Oe1, SAP, ..)
entwickelt werden mussten (das Projekt also recht interessant
erschien) habe ich angenommmen - unter der Voraussetzung, das Perl
verwendet wird.

Es gab anfaenglich ein wenig Widerstand gegen Perl (vor allem, weil es
bei orfon wenig/keune Leute gab/gibt, die mit Perl umgeghen koennen),
aber ich konnte mich durchsetzten.

=head1 Kurzbeschreibung

http://oe1.orf.at bietet neben dem aktuellen Radioprogramm auch viele
Artikel (sog. Highlights), die meistens an irgendwelchen Sendungen
"dranhaengen". Hier werden weitere Infos angeboten (zB Links) oder in
Foren Feedback-Moeglichkeit gegeben.

Ausserdem gibts div. Service-Seiten (zB Mitschnitte-Bestellung, etc)
und einen Club-Bereich, in dem u.a. ausgewaehlte Sendungen
runtergeladen werden koennen.

Die Site rennt auf einem Apache/mod_perl Server und ist deshalb trotz
hoher Zugriffe sehr schnell.

Vom Developerstandpunkt sind folgende Punkte interessant:

=over

=item * Login via XML-RCP

Der ORF besitzt bereits ein recht grosse User-Basis, die auf
div. orf.at-Seiten mit denselben Userdaten zugreifen kann
(http://my.orf.at). Fuer oe1.orf.at sollte ebenfalls dieses UserManagement-System verwendet werden, das aber in Java entwickelt ist.

Wir haben also das Login via XML-RPC implementiert. D.h. wenn man aich
auf oe1.orf.at einloggt, wird man zuerst auf my.orf.at weitergeleitet,
wo die Ueberpruefung der Userdaten passiert und diese in einem Cookie
beim Client gespeichert werden. Wenn auf oe1.orf.at eine
Authentifizierung notwendig ist, werden die Userdaten aus dem Cookie
gelesen mit XML-RPC auf my.orf.at verifiziert.


=item * Interfaces zum Oe1-Programmplanungstool

Oe1 verwendet spezielles Programm zum Planen der einzelnen
Sendungen. Hier wird nicht nur festgelegt, welche Sendung wann beginnt
und endet, sondern auch, welche Musikstuecke wann gespielt werden,
wann Moderationen gesprochen werden, etc.

Diese Daten werden zu fixen Intervallen mit ftp als XML-Files auf den
CMS-Server gespielt.

Leider sind nur ein Teil der interessanten Daten tatsaechlich sinnvoll
in die XML-Struktur verpackt. Der Rest (naemlich der Inhalt einzelner
Sendungen) ist in einem absolut sinnlosen plain text "Format"
gespeichert. Weil diese Daten aber fuer die Programm-Seiten aber sehr
wichtig sind, werden sie unter Anwendung absurdester Regular
Expressions rausgeparst. (Ich war schon knapp davor, einen
Parse::RecDescent Parser zu schreiben...)

=item * Downloads fuer Club-Mitglieder

Mitglieder des Oe1-Clubs duerfen einen fixe Anzahl von Sendungen pro
Monat runterladen. Hier wurde ein relativ komplexer Auth-Handler
installiert, der ueberpruft, ob ein User a) Club-Mitglied und b)
downloadberechtig ist und ob er/sie c) die Downloadquote schon
ueberschritten hat.

=item * und vieles mehr

wirkliche vieles!

=head1 Restriktionen

hmm, was soll hier rein?

=head1 Verwendete Module

ziemliche viele, hier die wichtigsten

=over

=item * mod_perl

=item * Class::DBI (und also auch DBI, DBD::MySQL, etc)

=item * Template::Toolkit

=item * DateTime

=item * und viele "kleine" Helfermodule

=back

=head1 Nachbemerkungen

Ein wirklich interessantes und spannendes Projekt, das mir viel Spass
gemacht hat (auch wenns tw doch recht stressig war und die
Entscheidungsfindung beim Auftraggeber manchmal etwas
umstaendlich/langwierig war (der ORF ist halt doch recht gross))




More information about the Vienna-pm mailing list