Nov 14 2009

Ein Verein und die Verwaltung

Kategorie: Interne, ProjekteTheReaper @ 01:05

Vereinsverwaltung leicht gemacht. Da RauteMusik ja ein Verein mit mehreren hundert Mitgliedern ist, muss dieser wie jeder andere auch verwaltet werden. Dazu entwickelt die Technik momentan ein Portal, welches es den zuständigen Personen leicht macht zu sehen wer noch seinen Mitgliedsbeitrag zahlen muss, oder auch wie lange er schon Mitglied ist.

Die Idee für solch ein System existiert schon länger, jedoch war bis jetzt leider keine Zeit für solch ein Projekt gewesen. Die Zeit für die Umsetzung kam, als mehrere neue Mitglieder der Technik beitraten und die Teamleitung wissen wollte was wir so können. Kurzerhand bekam ich die Anforderungen in die Hand und sollte dann mal loslegen. Dazu stand anfangs ein Entwickler zur Verfügung, welcher den Verein jedoch nach keiner Woche wieder verliess. Kurze Zeit später stiessen dann noch 2 andere Entwickler zu dem Team dazu, wobei sich auch hiervon einer wieder ausgetreten ist.

Aktuell ist das Projekt dem Release schon recht nahe, es fehlen lediglich noch ein paar Module. Dies wären z.B. ein Massenemailer, jedoch auch eine der Hauptfunktionen, nämlich das Anlegen und Löschen von Mitgliedern.

Das System basiert auf einem eigenen Framework, welches dem MVC-Prinzip (Model – View – Controller) folgt. Hier einmal das Interface, welches jedes Modul benötigt:

  1. Interface Modul_Interface
  2. {
  3. public function init($args);
  4. public function getSubPages();
  5. public function hasDasboardModuls();
  6. }

Als Template Engine wird Smarty 3 verwendet. Dies ist ein kompletter Rewrite von Smarty, welcher durch seine Performance und Funktionalität überzeugt.

Damit das ganze auch sicher ist, wurde beim Login nicht nur das typische “User->Passwort” System verwendet, sondern im Hintergrund laufen dabei auch noch andere Aktionen ab. Zusätzlich wurde das übernehmen von einer Session durch verschiedene Abläufe unterbunden. Die Datensätze werden ausserdem nur verschlüsselt gespeichert.

Jeder User des Systems ist unabhängig von den Vereinsmitgliedern und hat seine eigenen Rechte. So ist es Person “X” z.B. möglich neue Mitglieder hinzuzufügen, Person “Y” darf jedoch nur sagen, wer den Mitgliedsbeitrag bezahlt hat.

Ich hoffe, dass dieser kleine Einblick etwas mehr aus dem Leben eines Entwicklers bei RauteMusik zeigt, und vor allem auch dass wir uns in Richtung OOP bewegen.

Tags: ,


Nov 14 2009

Kommunikation ist alles…

Kategorie: Allgemein, TeamRiston @ 00:55

… gerade bei einem 250 Mann (und Frau) Team. Jeder einzelne hat bei uns unterschiedliche Aufgaben: Moderatoren sind für das Programm auf den Streams zuständig, Redakteure kümmern sich um den Inhalt der Homepage, wir haben eine Grafikredaktion, ein Produktionsteam, die Technik und so weiter und so fort. Natürlich kann nicht jedes Team einfach vor sich hinwerkeln.

Das gilt ganz besonders für die Technik: Wir entwickeln Software und kümmern uns um die Systeme ohne die RauteMusik nicht möglich wäre. Das soll nicht eingebildet klingen, aber ohne Streamserver kein Radio, ohne CMS keine Homepage. Oft arbeiten wir im Hintergrund, sei es, weil ein Projekt noch nicht an die Öffentlichkeit getragen werden soll, oder weil wir uns einfach auf die “Hauptarbeit” (die Entwicklung an sich) konzentrieren. In der Vergangenheit kam es leider zu oft vor, dass niemand so genau wusste, woran wir gerade eigentlich arbteiten. Das führe dann auch mal zu dem einen oder anderen Konflikt nach dem Motto “Was macht ihr eigentlich die ganze Zeit?”.

Wenn es dann mal soweit kam, dass Moderatoren und Techniker miteinander sprachen, dann hatten wir immer noch das Problem, dass beide Seiten sich einfach nicht verstanden. Jeder war in seiner Sprache “gefangen” und so redeten beide Seiten zu oft aneinander vorbei. Ein Techniker weiß nicht unbedingt warum es für einen Moderator eine extreme Erleichterung sein kann, die gespielten Titel nicht mehr per Hand in die Datenbank eintragen zu müssen. Der Moderator wiederrum versteht nur Bahnhof, wenn ein Techniker ihn fragt, ob seine Sendeablaufsteuerung HTTP GET Requests absenden kann.

Die Lösung dieses Problems ist jetzt mein Job. Ich bin zusammen mit Sascha “Technical Account Manager”. Im Klartext: Ich war selber mal Moderator bei RauteMusik und kenne deshalb die Bedürfnisse die ein Moderator hat. Außerdem war ich auch Techniker bei einem UKW Sender und auch dort musste ich den Redakteuren und Moderatoren Technik erkären und sie schulen, insofern kann ich mich gut in die Lage der anderen RauteMusik Teams versetzen.

Andereseits hab ich auch Ahnung von Technik. Ich bin zwar sicher nicht der Superprogrammierer, das machen in der Technik die Entwickler, aber wenn mir jemand etwas von XML Schnittstellen, Objektorientierung oder Servlets erzählt, kann ich zumindestens soweit mitreden, dass ich es dann wieder den anderen Teams, also den Moderatoren, Redakteuren, usw. erklären kann.

Sinn der Sache ist, dass es in Zukunft zu weniger Missverständnissen zwischen Technik und “Restteam” kommt. Denn wenn alle wissen, was wir als Technik gerade machen fällt es zumindest leichter, auf das heißersehnte Feature  doch noch eine Woche länger als geplant zu warten. Sascha und ich fangen zwar gerade erst mit unserer Arbeit als TAMs an, aber wir hoffen, euch bald noch mehr zu unserer Arbeit schreiben zu können. Dann erfahrt ihr noch weitere Aufgaben von uns, die euch auch betreffen.

Bis dahin viele Grüße
Riston

Tags: , ,


Nov 02 2009

Die #Musik.Technik Interviews

Kategorie: Allgemein, TeamnesQuick @ 23:55

Hallo liebe Leserinnen und Leser,

Ein Ziel unseres dev.Blogs war es ja, dass Ihr das Entwickler-Team bei RauteMusik.FM ein wenig besser kennen lernt. Dazu haben wir uns “etwas Besonderes” einfallen lassen. Und zwar soll es ab jetzt wöchentlich ein Interview mit einem unserer Entwickler oder Techniker geben. Und damit Ihr wisst, worauf Ihr Euch da freuen könnt, möchte ich Euch nun schon einmal die Fragen vorstellen, auf die die Entwickler so stoßen werden.

Los geht’s:

  • Stell dich zuerst einmal kurz vor
  • Seit wann bist du bei RauteMusik?
  • Was sind deine Aufgaben bei RauteMusik?
  • Wie bist du zu RauteMusik gekommen?
  • Wieso hast du dich beworben?
  • Seit wann entwickelst du (in PHP)? // Sysadmins: Wann hattest du deinen ersten eigenen root?
  • Wie bist du dazu gekommen?
  • An welchem Projekt arbeitest du zur Zeit?
  • Was ist dein Liebslingsthema in der Entwicklung?
  • Welchen Browser benutzt du?
  • Welche IDE benutzt du?
  • Zeig uns doch mal ein Bild von deinem Schreibtisch!
  • Und dein Desktop?
  • Was machst du im echten Leben?
  • Welche Programmiersprache würdest du gern als nächstes lernen?
  • Was ist deine letzte “geniale Erfindung”?
  • Dein Lieblings (Programierer) Zitat?
  • Ein paar abschließende Worte?

Manchmal ergeben sich passende Zwischenfragen. Diese werden dann kursiv markiert sein.

Und seid gespannt, das erste Interview mit unserem Sub-Teamleiter d0nk folgt in Kürze!

So long…

Tags: ,


Nov 01 2009

Neue Aufgabe für Bewerber

Kategorie: Allgemein, Externe, Projektehacksch @ 23:01

Hallo liebe Blog Freunde.

Viele von Euch verfolgen die Entwicklung von #Musik schon seit längerem und wer hat nicht daran gedacht ein Teil davon zu werden?! Wie es nunmal so ist müssen wir aber unsere Bewerber auch testen. Dafür haben wir nun eine neue Bewerberaufgabe erstellt. Über die Aufgabenstellung an sich werde ich euch nicht viel verraten, es soll ja noch eine Herausforderung bleiben :) . Dennoch möchte ich euch einen kleinen Vorgeschmackt darauf geben was Euch erwarten wird.

Ihr sollt für uns keine Schnittstelle oder eine komplexe Anwendung programmieren. Es geht uns einfach um die Basics, die Ihr mitbringen solltet.

Ohne zuviel zu verraten…. Es geht bei der Aufgabe darum einen individuellen Text nach unseren Vorstellungen auszuwerden, zubearbeiten und wieder darzustellen. Im ersten Moment wird Euch die Aufgabe als sehr leicht erscheinen, aber sie hat es doch in sich. Lest Euch die Aufgabe sorgfälltig durch und macht euch vorher Gedanken darüber wie Ihr die verschiedenen Probleme angeht.

Eure Lösung sollte auf jedem aktuellen Apache/PHP System in der Standardkonfiguration und ohne zusätzliche Module lauffähig sein. Bei der Verarbeitung der Daten solltet Ihr auch auf die Sicherheit bedacht sein.

Also habt keine Hemmungen und bewerbt euch bei uns!

Viele Grüße

Hacksch

Psssst… kleiner Tip am Rande, übersichtlicher Code und Kommentare werden bei uns gerne gesehen ;)

Tags: , ,


Okt 30 2009

Nachtschicht

Kategorie: Allgemeind0nk @ 23:06

Happy Halloween,

wünsch ich euch allen da Draußen vor euren Bildschirmen :)

Nicht nur Amerika feiert diesen Tag, wo die Geister verjagt werden sollen, auch wir feiern ihn. Pünktlich um Schlag Mitternacht vom 30.Oktober auf den 31.Oktober schmückt sich die Homepage von RauteMusik.FM für Halloween.

Aber nicht nur das hat sich heute Nacht verändert. Wie ihr bestimmt schon bemerkt habt, hatten wir kleine “Meinungsverschiedenheiten” mit unserem Sendeplan. Er war nämlich der Meinung, dass diese Sommer/Winter Zeitumstellung käse wäre und hat unsere Zeiten durcheinander gebracht. Dies haben wir heute Nacht endlich behoben. Die nächste Zeitumstellung in 6 Monaten sollte dann etwas Reibungsloser funktionieren als dieses mal.

Also von mir nun nochmal ein Happy Halloween und ich hoffe ihr feiert heute schön.

Euer d0nk

PS: Natürlich auch Happy Halloween vom kompletten RauteMusik.FM Technik Team an euch!


Okt 28 2009

Weitere Unterstüzung im Bravo-Team

Kategorie: TeamnesQuick @ 22:51

Hallo liebe Leser und Leserinnen,

ich darf euch heute gleich zwei neue Mitglieder im Bravo-Team der #Musik.Technik vorstellen.

Zum einen schranzi aka Dominik und zum anderen snd aka Tom.

schranzi

schranzi

snd

snd

Beide haben ihr Hobby zum Beruf gemacht und umgekehrt. Denn neben ihrem Hobby #Musik, arbeiten sie auch als Softwareentwickler im Web-Bereich. Eine ausführliche Vorstellung der beiden folgt demnächst in unserer Interview-Reihe.

P.S.:
Falls ihr in der Nähe vom ALPHAparc in Duisburg  wohnt, solltet ihr euch unbedingt FREITAG den 20. November 2009 freihalten (…mehr Informationen gibt es demnächst auf RauteMusik.FM)

Tags: , , ,


Okt 23 2009

RM-Toolbar finished

Kategorie: Externe, Projekteschranzi @ 00:06

Hallo liebe Leser,
endlich ist es soweit und wir können mit voller Freude die neue Toolbar-Seite präsentieren.
In enger Zusammenarbeit mit dem RauteMusik Team, haben wir es endlich geschafft, die
Toolbar nach langer Entwicklungszeit zu Releasen. Besten Dank an nesQuick für seine Unterstützung.

Zu den Kernfeatures der Seite zählen:

  • “Tell-a-Friend” Funktion
  • Großansicht der Toolbar über nen schickes Ajax-Modal Window
  • Absicherung der “Tell-a-Friend” Funktion über eine ReCaptcha „Wrapper“ Klasse
  • Validierung der Post-Parameter über das Request/Response Pattern, sowie eine eigens geschriebene „Filter-Klasse“. Hoch Lebe OOP

Die ReCaptcha Wrapper-Klasse baut auf dem Source-Code von http://www.recaptcha.net/ auf. Die Funktionalitäten des ReCaptchas wurden hier in eine Klasse gekapselt um die  Wiederverwendbarkeit und Erweiterbarkeit sicher zu stellen. Die beiden wichtigsten Methoden der Klasse sind „handleRequest“ welche die POST-Parameter auswertet, sowie die „getCaptcha“ welche wahlweise den Captcha-HTML-Code zurück oder per echo ausgibt. Der Konstruktor der Klasse benötigt zwei Parameter. Zum einen den Public-Key und zum anderen den Private- Key. Beide erhält man, wenn man sich auf http://www.recaptcha.net/ anmeldet und dort seine Domain registriert. Das Ganze ist natürlich Kostenfrei ;)

Wie es so üblich ist im guten OOP-Stil werden natürlich entsprechend Exceptions von der Klasse geworfen, wenn etwas nicht stimmt.

Juuuu. Lange Rede, kurzer Sinn. Hier kommt die Schnittstellenbeschreibung der ReCaptcha-Wrapper Klasse

  1. <?php
  2.  
  3. final class ReCaptcha {
  4.  
  5. private $publicKey  = NULL;
  6. private $privateKey = NULL;
  7.  
  8. private $captchaResponse = NULL;
  9. private $captchaError         = NULL;
  10. private $captchaReady       = false;
  11.  
  12. public function __construct($publicKey, $privateKey) {}
  13.  
  14. private function shutDown() {}
  15.  
  16. public function getError() {}
  17.  
  18. public function getPublicKey() {}
  19.  
  20. public function getPrivateKey() {}
  21.  
  22. public function handleRequest() {}
  23.  
  24. public function getCaptcha($return = false) {}
  25.  
  26. public function __destruct() {}
  27.  
  28. };
  29.  
  30. ?>

Tags: , ,


Okt 17 2009

Willkommen im #Musik Development Blog

Kategorie: Allgemein, TeamnesQuick @ 15:33

Hallo und herzlichst Willkommen im Entwicklerblog von #Musik,

Ich habe die Ehre den ersten Post mit meinem Kollegen d0nk (aka Clemens) verfassen zu dürfen. Der Blog soll euch einen Einblick hinter die Kulissen von #Musik geben. Wer sind die Entwickler? Was fällt so an Arbeit an, wenn man beim größten Internetradio Europas arbeitet.

Genau diese Fragen wollen ich und meine Kollegen euch beantworten.

Ich möchte euch nun einmal kurz unser Team und die Struktur vorstellen, es gibt 2 Entwickler Sub-Teams, das “Alpha” und das “Bravo”- Team. Diesen Subteams sind die Entwickler unterstellt und über den Subteams und deren Leitern stehen die Systemadministratoren und die Entwicklungsleiter, dann gibt es noch ein paar “Springer” und ganz neu sind unsere TAM’s, sie sind die Schnittstelle zwischen den Usern und uns Entwicklern.

Unser Team setzt sich aus folgenden Personen zusammen:

Sysadmins und Entwicklungsleiter:

  • nUkEm (Sysadmin)
  • DenniX (Sysadmin // Leiter TAM’s)
  • infi (Entwicklungsleiter)
  • Muethos (Entwicklungsleiter)

Sub-Teamleiter

  • d0nk (Alpha)
  • nesQuick (Bravo)

Entwickler:

  • DerReaper (Alpha)
  • Kingmade (Alpha)
  • xX-rising-Xx (Alpha)
  • schranzi (Bravo)
  • snd (Bravo)
  • Thimo (Bravo)

Springer:

  • XdF
  • FaaB

TAM’s:

  • Riston
  • Sascha

Aber nun keine Panik, wir werden euch einen nachdem anderen genauer vorstellen und nun viel Spaß im #Musik Developer Blog!

Tags: , ,