Archiv für den Monat: August 2007

Kostenlose Filme bei Maxdome

Als T-Online DSL Kunde (oh, sorry: T-Home Kunde) kommt man seit diesem Monat in den Genuss von monatlich 10 kostenlosen Filmen (von unterschiedlicher Qualität).

Noch 2 Tage lang kann man auch bei Maxdome kostenlose Filme abstauben. Wer sich anmeldet, kann 3 Monate lang alle Pakete kostenlos testen (u.a. alle Folgen von Weeds und Stromberg). Danach kostet es 19,90 EUR pro Monat.

Gefährliche Projekte

Bei ca. 30% aller Projektvorhaben ist es sinnvoll, das Projekt erst gar nicht zu starten. Manchmal steht das erwartete Ergebnis in kleinem Verhältnis zum Risiko. Oft sind die Projekte auch einfach nur relativ schlecht durchdacht. In meiner Arbeit als freier Projektleiter habe ich schon das ein oder andere Projekt zu Beginn wieder beendet – auch auf die Gefahr hin, damit meinen eigenen Job wegzudiskutieren. Aber ich halte es für einen Teil meiner Beratungsleistung, vor solchen Projekten zu warnen. Meine Kunden haben es mir immer gedankt.

30% alle Projektvorhaben sind durchführbar, müssen aber neu geplant werden. Nur ca. 30% aller Projekte sind von Anfang an komplett umsetzbar.

Bleiben noch 10%. das sind die Projekte die unter die Überschrift „gefährlicher Unsinn“ fallen. Die Idee an sich ist zwar nicht schlecht. Aber im Zuge des Projektes wird soviel Schaden angerichtet, dass man das Projekt besser nicht gestartet hätte. Ein solches Projekt durfte ich gestern im Fernsehen bewundern.

„Showpraktikant“ Elton ist ein Sidekick der Stefan Raab Show TV-Total auf Pro7. Dieser Elton hat vor 3 Monaten eine Wette verloren und wird nun als Wetteinsatz den New-York Marathon laufen. Allerdings hat Elton keinerlei Erfahrung und dazu noch reichlich Übergewicht.

Gestern nun war Elton bei TV-Total und berichtete über seinen aktuellen Trainingszustand. Dieser ist: desolat. Laut seiner Webseite hat er bislang gerade mal 300Km hinter sich gebracht. Jetzt startet die heiße Phase. Mal schauen, wie es weiter geht.

Warum ich das sehr, sehr gefährlich finde: Elton hat natürlich eine extrem gute Unterstützung. Er arbeitet mit der Sporthochschule Köln zusammen und hat (laut der Webseite) u.a. Triathlet Lothar Leder als Trainer. Ich gehe davon aus, dass die es schon irgendwie schaffen werden, Elton nach New-York zu bringen. Aber was ist die Botschaft, die beim Zuschauer ankommt? „Hey, so ein Marathon kann man locker in 6 Monaten Training schaffe.“

Kann man nicht! Von 0 auf 42 Km benötigt man normalerweise 1-3 Jahre Vorbereitung um Sehnen und Gelenke an die Belastung zu gewöhnen (Ausdauer und Muskeln sind weniger das Problem). Außerdem muss sicher gestellt sein, dass keine unerkannten Erkrankungen – vor allem am Herz- vorliegen. Wir erinnern uns: Alleine beim Ruhrmarathon 2007 hat es 3 Todesopfer gegeben.

Ich bin der Meinung, dass durch eine solche dumme Berichterstattung wie gestern bei TV-Total die Gefahr besteht, dass nächstes Jahr noch mehr Leute umfallen. Man sollte zumindest darauf hinweisen, dass so eine Leistung (von 0 auf Marathon in 6 Monaten) nur mit massiver Betreuung möglich ist. Sollte es nicht klappten, werden Eltons Ärzte die Notbremse ziehen – diesen Vorteil haben wenige Freizeitsportler. Ich hoffe, es gibt nicht zu viele Nachahmer. Ok, ich muss mir auch an die eigene Nase fassen. Ich hatte meinen ersten Gesundheitscheck nach meinem ersten Marathon…

Update Web-lernbox Woche 3

Moin,

Die Lernkartei hat neben einigen Bug-Fixes folgende Erweiterung gelernt:
Es ist nun möglich, Lernkarten per Datei anzulegen. Man trägt Frage, Antwort und Anmerkung in eine Excel-Datei (oder Textdatei) ein, speichert sie als CSV (Comma Separated Values) und kann diese Datei nun einlesen. Die Datei muss also so aussehen:
hund,dog
katze,cat, kleine Katze nennt man kitty
maus,mouse

Dadurch kann man sehr schnell neue Lernboxen anlegen.

Ich mache eine Woche Blog- und Programmierpause. Danach kommen folgende Erweiterungen:
– Drucken von Lernkarten
– Lernen nach Lektionen

Und, sorry für die IE6 Benutzer. Die Lernbox sieht unter IE6 – na sagen wir mal – supoptimal aus. FireFox, IE7, Safari und Co machen keine Probleme. Ich kümmer mich drum.

Ruby On Rails: Ajax Paginate und Suche

Auf meiner Internet-Lernkartei namens Web-Lernbox kann man ja per Ajax nach Lernkarten suchen und in der Liste blättern (dies nennt man Pagination). Das Ergebnis sieht (zumindest in meinem Augen) recht ansprechend aus.

Hier die Details, wie man so einen Effekt recht einfach in Rails programmiert.
Web-Lernbox Suchmaske

Phase 1: Das Suchfenster
Wir brauchen ein Textfeld. Wenn nun der Benutzer eine Eingabe tätigt, soll eine Aktion auf dem Server ausgeführt werden. Klingt schwierig, ist es aber nicht. So sieht der entsprechende Teil in der View-Datei aus:

(...)
< %= text_field_tag :filter %>
< %= observe_field(:filter, :frequency => 0.2,
:update => "cardlist",
:url => {:action => :filter_elements, :id => @box}) %>

Der erste Befehl ist klar. text_field_tag definiert ein Inputfeld. Anschließend definieren wir ein Observer_field. Der erste Parameter definiert das Feld, welches beobachtet werden soll. :frequency=>0.2 sagt, dass alls 0,2 Sekunden auf eine Änderung geprüft werden soll. Gibt der Benutzer etwas sein, wird die Methode „filter_elements“ aufgerufen. Diese Methode bekommt den Paramenter id mit, damit wir wissen, welche Lernbox eigentlich gefiltert werden soll. Schließlich haben wir noch das Attribut :update=>“cardlist“. Das sagt, welcher Bereich eigentlich nach dem Aufruf neu beschrieben wird (wir wollen ja nicht die komplette Seite neu zum Client schicken, sondern nur das Ergebnis).

In dem View gibt es also einen Bereich „cardlist“ den habe ich in eine zweite Datei (_cardlist.rhtml) gepackt und rufe ihn im View über
< %= render( :partial =>'edit/cardlist' ) %>
auf.
Wichtig ist natürlich, dass in der Datei cardlist ein Bereich mit der id „cardlist“ definiert ist:
Datei _cardlist.rtml:
<div id="cardlist">
<table cellpadding="5" class="edit_list_table" width="100%">
(... Anzeige der Elemente... )
</table>
</div>

Das war bislang einfach, oder? Also weiter.

Phase 2: Die Ajax-Suche
In meinem Controller sieht die Suchmethode nun so aus:
def filter_elements
filter_name = request.raw_post
box_id = current_user.Boxes.find(params[:id]).id;
@cards_pages, @cards = paginate(:cards, :conditions => ['(frage like ? or antwort like ?) and box_id = ?',
filter_name, filter_name, box_id])
render :partial => 'cardlist'
end

Kleine Anmerkung: Ok ok, in Wirklichkeit sieht die Funktion bei der echten Lernbox ein wenig anders aus, aber es geht ja ums Prinzip. Es passiert hier also folgendes. Für Für jeden Filteraufruf wird der Datenbestand neu gefiltert und mit dem Befehl paginate in mehrere Seiten geteilt.

Phase 3: Blättern mit Ajax
Jetzt gibt es aber noch ein Problem. Die Paginate Funktion existiert schon in Rails und kann mit dem Befehl „pagination_links“ im View auf die entsprechenden Navigationselemente erzeugen. Dann würde aber die komplette Seite neu aufgerufen und nciht per Ajax nur der notwendige Bereich neu geschrieben. Also musste ich mir einen kleinen Helfer schreiben. In die _cardlist.rhtml kommt:
< %= draw_paginator(@cards_pages) %>

Jetzt muss man nur noch der Helper entsprechend erweitern:

def my_pagination_links(paginator,action)
if paginator then
pagination_links_each(paginator,{:link_to_current=>false}) do |n|
link_to_remote(n.to_s, { :url=>{:action=>action, :page =>n.to_s}, :update=>'cardlist' })
end
else
return ''
end
end

def draw_left_paginator(paginator,action)
if paginator.current.previous then
link_to_remote('Zurück',
:url=>{:action=>action, :page =>paginator.current.previous}, :update=>'kart_list')
else
return ''
end
end

def draw_right_paginator(paginator,action)
if paginator.current.next then
link_to_remote('Nächste Seite', :url=>{:action=>action,
:page =>paginator.current.next}, :update=>'kart_list')
else
return ''
end
end

def draw_paginator(paginator,action='list')
if paginator then
return draw_left_paginator(paginator,action) + my_pagination_links(paginator,action) + draw_right_paginator(paginator,action)
else
return ''
end
end

(Auch hier: der echte Code sieht anders aus)

Im Prinzip habe ich die ursprünglichen Pagination Sourcen genommen und verändert. Klar, man hätte auch einfach die entsprechende Methode überschreiben können. Aber so fand ich es sinniger.

Das war es auch schon. Der Aufwand für das Ajax-Frontend ist faktisch genauso hoch, wie bei einer normalen Seite, sieht aber viel hübscher aus.

Duplizität

Zwei Dinge sind heute parallel passiert.

Ereignis 1: Ein Bekannter fragt mich ob ich nicht Angst hätte, dass ich beruflich mit meinem Blog bei manchen Leuten anecken könnte. Ich habe ihm geantwortet, dass man es eh‘ nicht in der Hand hat, wann man jemanden verärgert – egal, wie sehr man sich bemüht. Bislang hielt sich dies aber in sehr überschaubaren Grenzen.

Ereignis 2: Ein anderer Bekannter, ein sehr erfahrener freier Projektleiter, fliegt binne eines Tages aus einer Firma für die er seit einigen Jahren sehr erfolgreich arbeitet. Eine kritische (und vielleicht nicht 100% glücklich formulierte) E-Mail von ihm geriet in die „falschen“ Kanäle. Und schon wurde sein Auftrag nicht verlängert.

Wir externen Berater befinden uns immer in einer Zwickmühle. Auf der einen Seite sollen wir den Kunden beraten. Wir sind dabei in der eigentlich wunderbaren Situation, dass wir auch unbequeme Wahrheiten aussprechen können. Schließlich sind wir nicht so extrem in die Firmenpolitik eingebunden. Auf der anderen Seite ist es natürlich trotzdem immer noch üblich, den Boten zu köpfen. Und wenn ein Bauernopfer gesucht wird, kann man den Externen ohne großen Ärger mit dem Betriebsrat entfernen.

Ich denke, man sollte sich davon jedoch nicht entmutigen lassen. Es ist auf lange sich sicherlich für einen selber wie auch für den Kunden besser, wenn man mit dem Risiko lebt und als Externer trotzdem eher zur Ehrlichkeit neigt.

Bausatz: Planning Poker Karten

Planning Poker ist ein Werkzeug aus dem Bereich des agilen Projektmanagements und hilft bei der Aufwandsabschätzung.

Und so geht es: Jedes Teammitglied bekommt einen Satz Karten (oder Zettel) . Ein Kartensetz besteht aus den Werten 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100, ? und einer Kaffeetasse (ok, die Kaffeetasse habe ich bei crisp.com geklaut).
Planning Poker Cards

Nun wird über die einzelnen Features eines Projekt gesprochen. Jeder legt nun bei einem Feature verdeckt die Karte hin, welche seiner Meinung nach den Aufwand für das Feature aufzeigt. Anschließend werden die Karten umgedreht.

Beispiel: In der Anforderungsliste steht das Feature „Ein Benutzer kann sein Passwort per E-Mail neu generieren lassen“. Das Team, bestehend aus John, Paul, Ringo und George schätzt den Aufwand und legt die entsprechende Karte. John und Paul schätzen 2 Tage, George 3 Tage und Paul 8 Tage. Offenbar sieht Paul also Probleme, die die anderen nicht sehen. Vielleicht hätte Paul sich nicht getraut, seine Abschätzung zu sagen, wenmnJohn und Paul (ohne die Karten) sofort „Ach, das mache ich in 1-2 Tagen“ gesagt hätten. So kann George aber den anderen erklären, dass der Mailserver gar nicht dafür ausgelegt ist, so viele Mails zu verarbeiten (oder was auch immer). In der zweiten Runde schätzen die Teilnehmer 2,5,3,3 Tage – man einigt sich auf 3 Tage.

Zusätzlich gibt es noch 2 Joker. Das Fragezeichen bedeutet: Ich habe nicht die geringste Ahnung worum es hier eigentlich geht. Die Kaffeetasse bedeutet: Ich brauche eine Auszeit. 5 Minuten Pause.

Man kann Planning-Poker Karten natürlich einfach auf Zettel malen. Eine andere Möglichkeit sind Onlineprogramme. Ich wollte aber echte Spielkarten, also habe ich mir welche gebaut.

Und so geht es: Bei Pearl.de kann man Spielkarten zum selber drucken kaufen. 288 Stück für 12 EUR.
Die Karten werden nach dem Druck mit einer Folie beklebt. Das geht mit etwas Übung eigentlich gut von der Hand.
Wer möchte, kann sich hier eine entsprechende Vorlage herunterladen.
Eine Seite hat 9 Karten (3×3). Da ein Kartenset aus 12 Karten besteht, habe ich es wie folgt aufgeteilt:
Seite 1 mit den Zahlen 0-13
Seite 2 mit jeweils zweimal 13-100 sowie das Fragezeichen.

Wenn man einmal Seite 2 und zweimal Seite 1 ausdruckt, bekommt man also zwei Sets.

Seite 3 besteht aus den Kaffeetassen (also eine Seite für 9 Sets).

Insgesamt schafft man mit einer Packung 21 Sets, das sollte für einige Teamsitzungen ausreichen.

Viel Spaß mit den Vorlagen.

Update:
Man kann das Kartenspiel auch bei verschiedenen Anbietern kaufen. Hier eine Quelle:
http://www.guerilla-projektmanagement.de/index.php/archives/2009/07/24/planning-poker-von-meinkartenspielde/

Eigentlich …

Also eigentlich wollte ich jezt stolz über die neuesten Fortschritte der Web-Lernbox berichten.

  • Man kann nun Boxen so freigeben, dass Nutzern sie nicht bearbeiten dürfen.
  • Es gibt einen neuen Lernmode bei dem die Antwort bei der Eingabe schon geprüft wird
  • Viele Fehler wurden behoben
  • Bei Aufruf der Seite bekommt das Eingabefeld den Focus

Allerdings muss ich gerade zu meinem Schrecken feststellen, dass die komplette Seite nicht funktioniert, da der Zugriff auf das public Verzeichnis gesperrt ist.

Das ist schon das 2. Problem binne weniger Wochen.

Grummel, kennt jemand einen guten Hoster für Rails?

Update:
So, jetzt geht es wieder. Der Hoster macht viele Fehler, meldet sich aber immer schnell …
Der neue Lernmode ist bei den 1X1 Karten bereits eingerichtet. Probiert es mal aus.

Die nächsten Meilensteine:

  • Lernkarten drucken
  • Lehrermodus mit Auswertung des Lernfortschritts der Schüler
  • (…) Ich bin für Vorschläge immer offen