E: neuer Texteditor für Windows, der sich am ganz wundervollen TextMate (den es nur für OS X gibt) orientiert und sogar seine Bundles (Plugins) unterstützt. Entwicklung, Rails, Ruby, Windows
Pat Maddox (ActionFlow, holy crap!) über die sich verschiebende Rolle von Softwareentwicklern:
I think a lot of programmers are going to find themselves looking for jobs in the coming years, and not because their jobs are getting sent to India. In fact, fewer and fewer jobs will go to India for the same reason these guys will be out of jobs. In the past, and increasingly less so now, the knowledge of how to configure different frameworks and technologies to play well together was mistaken for the ability to develop. Programming jobs are filled with people who are more admins than developers. With things like Rails obviating the need for these pradministrators, the jobs will go to the guys who know how to build valuable software.
This isn’t some doomsday prophecy. Far from it, we’re poised for a software Renaissance. Infrastructure and technical problems have been solved, giving us the time and freedom to work on interesting things. For a developer, this is a very exciting time.
Juhu! Rails 1.2 1.2.1 ist raus. Mit wundervoller REST-Liebe und mehr. Details, wie immer, auf dem offiziellen Rails-Blog. Rails
Eine der furchteinflößendsten Dinge ist für mich, die freie Wahl zu haben. Klingt womöglich etwas bizarr, okay. Aber schließt einmal die Augen und stellt euch vor, ihr müsstet euch um nichts mehr kümmern, müsstet kein Geld mehr verdienen, keine Miete mehr zahlen, und könntet tun und lassen, was ihr wollt. Was erst einmal toll klingt — wer würde nicht gerne den ganzen Tag am Strand liegen und Bücher lesen, oder auf der Xbox Killerspiele spielen — ist doch eigentlich ziemlich furchtbar. Macht das Leben noch Spaß, wenn es keine Ziele gibt, auf die man hinarbeiten kann, keine Verpflichtungen, die man erfüllen muss? Vieles von dem, was uns täglich nervt — offene Rechnungen, doofe Chefs, yadda yadda — gibt unserem Leben erst eine Struktur und uns selbst den nötigen Antrieb, um uns in dieser Struktur zurecht zu finden und sowas wie Erfolg zu empfinden.
Innerhalb eines Projekts ist das ähnlich. Sich einfach mal hinzusetzen und loszulegen ist beinahe der Voraus-Todesstoß für ein kreatives Projekt. Klar, man hat alle Möglichkeiten, kann alles mal probieren, muss sich keinen Grenzen beugen, aber in den seltensten Fällen kommt am Ende etwas Brauchbares raus — wenn man überhaupt eines Tages fertig wird. Unter solchen Voraussetzungen kann man ja “fertig” nicht einmal zuverlässig definieren.
Es ist nicht lange her, dass ich das völlig anders gesehen habe. Ich hatte gerade frisch meinen Job bei ProSiebenSat.1 hingeschmissen und mir selber geschworen, Projekte anders anzugehen als es dort oft getan wurde. Sich wochenlang in Konzepte und Pflichtenhefte zu vergraben war einfach nichts für mich, und als am Ende fast nie das heraus kam, was ursprünglich beabsichtigt wurde, kamen die berechtigten Zweifel an diesem System.
Mein Fehler war jedoch, dass ich Planen pauschal als unnötig empfand. Dabei war es lediglich die Art der dort erlebten Planung, die nicht stimmte. Es wurde sich zu hundert Prozent auf ein Ziel konzentriert, der Weg dorthin wurde oft außer Acht gelassen. Der Begriff des “Kickoffs” sagt ja schon: jetzt, wo wir zuende geplant haben, könnt ihr loslegen. Wie lange braucht ihr?
Dabei ist Planen Teil des Wegs! Ja, so einfach ist es! Wieso wurde ich nicht darüber informiert?!
Zurück zu meinem aufregenden Leben. Wenn ich mir meine eigenen Projekte anschaue und überlege, welche davon ich als tatsächlich gelungen empfinde, fallen mir immer spontan 25peeps.com und dilemma5000.de ein. Das sind natürlich auch zwei sehr einfache Projekte. Die gar nicht mal so spektakulär viel Traffic aufweisen. Aber um den geht’s mir gar nicht mal. Ich werte sie als Erfolg, weil ich bei beiden mit einer klaren Zielsetzung und Vorstellung eines Weges zu Entwickeln angefangen habe und nach jeweils 1-2 Tagen fertig war.
Als moderaten Misserfolg hingegen werte ich aufeinander.de, meine kleine Datingsite. Da melden sich zwar ständig neue Leute an, trafficmäßig ist daher ordentlich was los, aber sowie Entwicklungsgeschichte also auch Zielerreichungsgrad, wenn man das so sagen kann, sind nicht besonders zufriedenstellend.
Heute weiß ich, warum. Weil es keine Ziele gab. Ich wollte halt eine Datingsite bauen. Und einfach mal schauen, was ich da so einbauen kann.
Dabei fing es gar nicht mal so an. Anfang 2005 setzte ich mich mit ein paar Freunden zusammen, um die Site von A bis Z durchzuplanen. Was hatten wir für Ideen! Die irrste Datingsite der Welt, mit Features, bei denen die Konkurrenz ganz schön blöd aus der Wäsche schauen würde! Als wir dann eine hässliche Sammlung komplexer Mindmaps hatten und als nächstes das Scribblen der einzelnen Seiten angehen wollten, überkam mich auf einmal das kalte Grausen: hilfe, das läuft ja wie bei meinem Arbeitgeber! Moment mal!
Also schmiss ich die ganzen Sachen weg und fing stattdessen “einfach mal an”. Baute ein Ajax-basiertes Mailsystem, auf das ich total stolz war. Einen ebenfalls Ajax-basierten Webchat, den ich total super fand, es war einer der ersten seiner Art. Und tatsächlich ein paar echte Datingsitefunktionen. Aber halt nicht besonders viele. Und vor allem keine so guten. Ich war dank der neugewonnen Freiheit so sehr in technische Details vertieft, dass ich das eigentliche Ziel — eine spaßige Datingsite zu bauen, die den Usern gefällt — aus den Augen verlor. Herausgekommen ist eine höchst mittelmäßige Datingsite. Die höchstens meinen Freunden gefällt, weil sie nicht gemein zu mir sein wollen. Mit Ajax-basiertem Mail- und Chat-System. Das auch noch so buggy ist, dass es auch heute noch gelegentlich Internet Explorer zum Absturz bringt. Wäh.
Was lernen wir daraus? Das war ganz offensichtlich nicht der Weg zum Erfolg. Aber ist es das pedantische Durchplanen eines jeden Details? Ich glaube nicht!
In den nächsten Monaten — wenn mir wieder etwas mehr Zeit für solche Experimente zur Verfügung steht — werde ich das Datingsite-Thema noch einmal angehen. Und diesmal probiere ich etwas neues: ich werde mir selber ein fieses Limit setzen, mich auf eine besonders diabolische Art und Weise einschränken, mir selber eine Bedingung stellen, für die ich einen Kunden womöglich auslachen würde:
Ich werde mir für das Programmieren der Site nur 2 Tage geben. Nicht mehr und nicht weniger. Diese 2 Tage werde ich mir dafür reservieren und für alles andere blocken.
Im Gegensatz zu der Art, wie es bei solchen Projekten normalerweise läuft, überlege ich erst, wie lange ich brauche, und dann, was ich in der Zeit tun will — und schaffen kann.
Und das ist in 2 Tagen nicht sonderlich viel. Zum Glück arbeite ich mit Ruby on Rails, deswegen geht alles etwas schneller. Aber das alleine reicht natürlich nicht. Also werden ich vorher zwei Dinge tun:
Da sich der Featuresatz in einem sehr überschaubaren Rahmen bewegen wird, wird sich auch der zweite Punkt als weniger komplex gestalten. Statt eines zweihundertseitigen Pflichtenhefts habe ich dann eine in OmniOutliner erstellte Sitemap und ein paar in OmniGraffle zurechtgeklickte Seiten-Prototypen.
Und mit denen bewaffnet setze ich mich dann 2 Tage lang an meinen Textmate und setze Dinge um, die ich in meinem kleinen Schädel fast komplett fertig entwickelt habe.
Ich sag euch, das klappt. Drückt mir die Daumen! Einsichten, Entwicklung, Rails, Web 2.0
Der erste Release Candidate von Ruby on Rails 1.2 ist raus. Eine Zusammenfassung all der schönen neuen Features sowie eine Installationsanleitung gibt’s wie üblich auf dem offiziellen Blog. Rails
Ein weiser chinesischer Mann sagte einst: wenn du mit Edge Rails (aka Rails 1.2) arbeitest und die neuen RESTful Routes nutzt, dann nenne keine deiner Modellklassen Image, sonst überschreibt Rails nämlich das durchaus wichtige image_path mit einer Named Route. Und dann passieren die verrücktesten Dinge. Rails
Verdammt nochmal, es muss doch noch mehr Leute in München geben, die mit Ruby on Rails arbeiten! Auf der München-Seite im Rails-UG-Wiki stehen gerade mal sieben Leute, in Hamburg sind’s immerhin schon 18. Vielleicht liegt’s daran, dass die Rails UG, ihr Wiki sowie die Treffen einfach noch nicht bekannt genug sind. Deswegen: hopp hopp! Das nächste Münchner Rails-Treffen ist übrigens für den 20. November angesetzt. Wer mit Rails arbeitet oder sich dafür interessiert: einfach mal vorbei schauen. Rails
19 Rails Tricks Most Rails Coders Don’t Know. Die meisten davon sind sogar richtig gut. Entwicklung, Rails, Ruby
Person = ActiveResource::Struct.new do |p| p.uri "http://www.example.com/people" p.credentials :name => "dhh", :password => "secret" end #Issues GET http://www.example.com/people/1 matz = Person.find(1) matz.name # => "Matz"
Sweet! Auch die bald (?) kommende Version 1.2 von Rails sollte — wie sollte es anders sein — sehr interessant werden. Mehr Infos hier. Entwicklung, Rails, Ruby
Coda Hale schlägt wieder zu: Time For A Grown-Up Server: Rails, Mongrel, Apache, Capistrano and You. Eine Rundum-Sorglos-Anleitung zum Aufsetzen einer Rails-Anwendung mit Mongrel und Apache 2.2. Über das wundervolle Capistrano. Boochakayaya! Entwicklung, Rails
$c->stash->{seite} = $c->model(’Daten’)->resultset(’Seite’)->find($c->req->params->{id});
Grummel, grummel, röchel, stöhn.
@seite = Seite.find params[:id]
Aaah, freu, freu, Spaß, juhu. Catalyst, Entwicklung, Rails, Ruby
Schicke Web 2.0-typische Grafiken automatisch mit RMagick erstellen und einen dicken Punkt im Business Plan abhaken. Rails, Ruby, Web 2.0
Was sehen meine aktuell leider wieder etwas zugeschwollenen Augen? Ein Tutorial, wie man eigene Generators für Rails schreibt. Juhu! Rails
Nochmal Rails: KRJS ist womöglich noch etwas frisch, sieht aber verdammt interessant aus. Die Idee: anstatt seine Rails-Views mit AJAX-Helpern zuzustopfen, arbeitet man mit ganz normalen Formularen, Links usw., und lässt dann KRJS nachträglich die AJAX-Magie einpflanzen — indem man seine Controller mit AJAX-Callback-Funktionen versieht. Okay, ich bin kein guter Erklärer. Einfach mal die Beispiele auf der Plugin-Seite anschauen. Meine Prognose: das Ding wird der Hit! Ganz egal, wie gut oder schlecht das Plugin in der aktuellen Version funktioniert. Das Konzept rockt einfach. AJAX, Rails
dollars_and_cents erleichtert das Speichern von Währungs-Werten in einer Rails-Anwendung, in dem es für Attribute mit Namen wie foo_as_cents, die die Cent-Werte (als Rundungs-sichere Integers) speichern, automatisch Float-Attribute namens foo bereit stellen. Nett. (Update: vom selben Autoren gibt es einen ganzen Haufen anderer cooler Rails-Plugins. Reinschauen!) Entwicklung, Rails, Ruby
vim 7.0 ist raus, yay! Vielleicht kann ich mich ja diesmal damit anfreunden, zumal ich inzwischen primär auf Linux arbeite (yep — Ubuntu 6.06 rockt, dazu später mehr) und ich dort eh auf den tollen Textmate verzichten muss.
Apropos: rails.vim fügt dem Ganzen angeblich großartige Funktionen speziell für Rails-Projekte hinzu. Mal ausprobieren. Linux, Rails, vim
Nette, sehr “Web 2.0″-typische Site: The Best Stuff in the World. Natürlich mit Ruby on Rails entwickelt, ist ja immerhin das beste Web-Framework. ;-) Rails, Web 2.0
Rainer (frischer Railser) hat dieses wundervolle Cheat Sheet für Rails 1.1 ausgegraben. Wer sich schnell ein Bild von den wichtigsten Rails-Funktionen machen und dabei nicht auf das viele coole neue Zeugs in Version 1.1 verzichten will: zugreifen! Rails
Typo is a lean engine that makes blogging easy by using AJAX wherever possible. Test
typo
Ajax
Justin-Palmer
Patrick-Lenz
Tobias-Luetke
License:MIT
blog
weblog
Rails
Seth-Hall