thomas.dohmke.de - imported from komprovisation.de http://thomas.dohmke.de/feed en-us http://blogs.law.harvard.edu/tech/rss Sweetcron thomas@dohmke.de CocoaHeads Stuttgart am 09.12.2009 http://thomas.dohmke.de/items/view/848/cocoaheads-stuttgart-am-09122009

Am 09.12. ab 19:00 Uhr findet das letzte CocoaHeads Stuttgart in diesem Jahr statt. Treffpunkt ist wie immer in der MTV-Sportanlage Am Kräherwald. Wer in und um Stuttgart wohnt und sich mit Cocoa beschäftigt oder beschäftigen will, ist herzlich eingeladen!

]]>
Wed, 09 Dec 2009 09:47:00 +0100 http://thomas.dohmke.de/items/view/848/cocoaheads-stuttgart-am-09122009
CocoaHeads Stuttgart am 11.11.2009 http://thomas.dohmke.de/items/view/773/cocoaheads-stuttgart-am-11112009

Am 11.11., sprich heute (!), ab 19:00 Uhr findet wieder CocoaHeads Stuttgart statt. Treffpunkt ist in der MTV-Sportanlage Am Kräherwald. Wer in und um Stuttgart wohnt und sich mit Cocoa beschäftigt oder beschäftigen will, ist wie immer herzlich eingeladen!

]]>
Wed, 11 Nov 2009 14:27:00 +0100 http://thomas.dohmke.de/items/view/773/cocoaheads-stuttgart-am-11112009
CocoaHeads Stuttgart am 14.10.2009 http://thomas.dohmke.de/items/view/743/cocoaheads-stuttgart-am-14102009

CocoaHeads Stuttgart findet diese Woche zum zweiten Mal diesen Monat statt und zwar morgen, am 14.10.2009, ab 19 Uhr in der MTV-Sportanlage Am Kräherwald. Dieses Mal haben wir einen abgetrennten Raum mit Monitor, so dass ich einen Vortrag zum Thema "SQlite und MySQL mit Cocoa" halten werde. Wer in und um Stuttgart wohnt und sich mit Cocoa beschäftigt oder beschäftigen will, ist herzlich eingeladen!

]]>
Tue, 13 Oct 2009 20:35:00 +0200 http://thomas.dohmke.de/items/view/743/cocoaheads-stuttgart-am-14102009
Unser Rückblick auf WWDC 2009 http://thomas.dohmke.de/items/view/523/unser-ruckblick-auf-wwdc-2009

Vor etwas mehr als einer Woche sind wir von der WWDC 2009 zurückgekommen. Es war unsere erste WWDC, umso mehr waren wir gespannt und wurden nicht enttäuscht. Dieser Eintrag soll einen kleinen Rückblick geben, wobei die Konferenz selbst mit Ausnahme der Keynote am Montag unter Geheimhaltung steht und wir uns daher auf das Drumherum beschränken.

Termine

Die WWDC 2009 fand vom 08.06. bis zum 12.06. statt. Der genau Termin wurde von Apple am 26.03. begannt gegeben, wobei ca. 2 bis 3 Wochen vorher die ersten Gerüchte über genau diesen Zeitraum aufkamen, da im Kalender des Moscone Centers ein nicht näher spezifiziertes "Corporate Meeting" auftauchte (wobei man dazu sagen muss, dass es vorher auch Gerüchte zu anderen Terminen gab, die ebenfalls mit "Corporate Meeting" eingetragen waren).

Hotel

Bereits am 14.03. reservierten wir ein Zimmer im Hotel, da sich dieses bis einen Tag vor der prognostizierten Anreise ohne Kosten stornieren ließ. Wir entschieden uns für das Intercontinental San Francisco, welches direkt neben dem Moscone West liegt, vom Haupteingang des Hotels bis zum Haupteingang des Konferenzzentrums sind es ca. 250m zu Fuß. Wir hatten ein Zimmer im 19. Stock, Blick Richtung Süden, sehr geräumig und sauber, 2 "queen-size" Betten, Flachbildfernseher, schickes Bad. Der Zimmerpreis schwankte in den sieben Nächten zwischen $189 und $229 (netto), gesamt bezahlten wir $1667,70 (brutto), was laut Kreditkartenabrechnung 1210,99€ entsprach. Pro Person also ca. 600€, was wir aufgrund der sehr guten Lage und des netten Zimmers ziemlich akzeptabel fanden.

Flüge

Nach Bekanntgabe des Termins durch Apple buchten wir unmittelbar die Flüge. Stefan flog mit Continental von Berlin über Newark nach San Francisco für 556€, netter Preis, nachteilig die Wartezeit in Newark und der frühe Rückflug am Samstag um 06:40 Uhr. Thomas flog hin mit Lufthansa von Stuttgart über München nach San Francisco, zurück mit United Airlines nach Frankfurt und von dort mit der Lufthansa AirRail nach Stuttgart. Die Flugzeiten war netter als bei Continental, sowohl Hinflug als auch Rückflug starteten nach 13:00 Uhr. Dafür war der Preis mit 852,36€ deutlich teurer. Ist man bei den Zeiten flexibel, so lässt sich hier Geld sparen, wenn man nicht am Wochenende fliegt - wobei dann freilich zusätzliche Übernachtungen in San Francisco finanziert werden müssen. Billigster gefundener Preis: 440€ ab Berlin, allerdings hätte man 3 Tage früher fliegen müssen.

WWDC Tickets

Die Tickets fur die Konferenz buchten wir zuletzt, der Preis betrug dieses Jahr 999,00€ pro Person. Apple bestätigte die Bestellung zunächst per E-Mail, einen Tag später kam eine E-Mail mit einem Code, mit dem sich das Ticket online aktivieren ließ. Am 12.05. und am 19.05. sendete Apple je eine E-Mail mit der Nachfrage, ob die Angaben zu Name und Firma auf dem Eintrittsausweis ("WWDC Badge") korrekt sind. Außerdem wurde am 29.05. die "WWDC 2009 Attendee Site" veröffentlicht, auf der man sich mit seinem ADC-Konto einloggen und seinen persönlichen Zeitplan mit Sessions und Labs erstellen sowie diesen per iCal abonnieren konnte. Kurz vor der Konferenz gab es außerdem eine native iPhone App zum Download, wobei diese per Ad-Hoc-Distributation über iTunes oder Xcode zu installieren war. Die App beinhaltete die Gesamtliste sowie den persönlichen Plan der Sessions und Labs, Karten vom Moscone Center und der näheren Umgebung sowie einen Newsfeed, in den Apple während der Konferenz das ein oder andere Update einspeiste. Außerdem konnten direkt in der App die Sessions mit 1 bis 5 Sternen bewertet werden.

Mietwagen

Auf einen Mietwagen verzichteten wir, vom Hotel war außer dem Konferenzzentrum der Großteil der Innenstadt per Fuß oder öffentlichem Nahverkehr zu erreichen. Vom Flughafen nahmen wir ein Taxi, welches je nach Tageszeit zwischen $30 und $40 kostet. Das Hotel bietet auch einen Limousinen-Service von und zum Flughafen, dafür werden dann $45 fällig.

Sonstige Vorbereitung

Der Rest der Vorbereitung beinhaltete das übliche Packprozedere sowie das Ausfüllen des ESTA-Antrags sofern man über kein gültiges Visum für die USA verfügt und/oder der Antrag nicht bereits innerhalb der letzten 2 Jahre genehmigt wurde. Sinnvoll ist es auch einen mobilen Mac dabei zu haben, Pflicht ist es aber nicht. Die meisten Besucher hatten ein 15" MacBook Pro dabei, sehr vereinzelt sah man aber auch Besitzer eines Hackintosh. Außerdem standen auf der Packliste je ein iPhone, ein zusätzlicher iPod Touch (den wir aber nicht benutzt haben), zwei Digitalkameras nebst Objektiven, die passenden Ladegeräte, Leopard Installations-CDs für den Notfall (der nicht eintrat) sowie Steckdosen-Adapter für die USA.

Sonntag

Da wir am Samstag anreisten (wie wohl die meisten anderen Entwickler auch), hatten wir den Sonntag zur freien Verfügung. Erster Tagesordnungspunkt war die Registrierung im Moscone Center, wir kamen um 09:30 Uhr und hatten jeder ca. 30 Leute vor uns in der Schlange, wobei man sagen muss, dass wir bedingt durch unsere Nachnamen (die Registrierung war nach dem ersten Buchstaben des Nachnamens in Zweierblöcke aufgeteilt), ziemlich lange (wenn nicht sogar die längsten) Schlangen erwischt hatten. Eine halbe Stunde später waren die Schlangen schon deutlich kürzer, vermutlich spart man deutlich Zeit, wenn man erst in den Mittagsstunden eintrudelt. Zur Registrierung war Personalausweis oder Pass notwendig, danach bekam man neben dem Eintrittsausweis einen schwarzen, relativ flachen Notebook-Rucksack sowie ein T-Shirt. Ansonsten gab es noch nicht viel zu sehen, aber das Konferenz-WLAN war bereits geschaltet, so dass sich E-Mails, Twitter und RSS-Feeds synchronisieren ließen.

Im Anschluss liefen wir zusammen mit Markus Kirchner (seines Zeichens Begründer der Berliner CocoaHead-Gruppe) die Market Street bis zum Ferry Building, aßen Frühstück bei Noah's Bagels und liefen dann entlang der Piers bis zu Fisherman's Warf und von dort weiter bis zur Golden Gate Bridge (insgesamt 12km). Zurück nahmen wir den Bus bis zur Van Ness Avenue und liefen von dort rüber zur Hyde Street / Lombard Street, und dann entlang der Cable Car Linie und durch Chinatown zurück zum Hotel (weitere 5km). Gegen Ende aßen wir jeder einen "Six Dollar Burger" bei Carl's Jr. am United Nations PLZ, geschmacklich ganz gut, aufgrund der Größe kann man getrost auf das Menü mit Pommes verzichten und den Burger einzeln bestellen.

Was wir nächstes Mal anders machen würden: Die Strecke zwischen Fisherman's Warf und Golden Gate wurde auf der zweiten Hälfte ziemlich lang. Entweder man fährt das Stück mit dem Bus, dabei verpasst man aber einige gute Stellen für Fotos der Golden Gate Brücke, oder man mietet sich am Fisherman's Warf ein Fahrrad.

Keynote

Traditionell beginnt die WWDC am Montag mit der Keynote um 10:00 Uhr, dieses Jahr ohne Steve Jobs, aber wir wollten trotzdem dabei sein und hätten uns geärgert, wenn an den Gerüchten, dass Steve doch noch irgendwie auftaucht, etwas dran gewesen wäre. Gegen 05:30 (Dank an den Jetlag!) verließen wir das Hotel und gesellten uns ans Ende der Warteschlage, die zu diesem Zeitpunkt schon die komplette Gebäudeseite entlang der 4th Street reichte. Das Wetter war kühl, Pullover und Jacke angebracht. Das Konferenz-WLAN war draußen mit dem iPhone nicht zu empfangen, dennoch gestaltete sich das Warten ganz unterhaltsam, da mehr oder weniger regelmäßig Leute an der Schlange vorbei liefen, die irgendwas anzubieten hatten. Wir erhielten eine kostenlose Ausgabe des MacTech Magazine, einen kostenlosen Apfel-Zimt-Muffin, ein T-Shirt von FastMac, einen StarBucks-Kaffee von einem Mitwartenden, der sich bei der Anzahl der Kaffees für seine Freunde verzählt hatte, ein Entwicklerkit samt USB-Dongle von SecuTech sowie eine Quietscheente von Symbian, die skurilerweise für eine Konkurrenzverstaltung am Nachmittag warben.

Gegen 08:00 Uhr wurden die erste Leute ins Moscone-Center gelassen, wir durften hinauf bis in den zweiten Stock, wo die Menschenmenge in den Fluren Platz nahm. Es gab Starbucks-Kaffee, Donuts und andere süße Teilchen sowie Smoothies. Kurz nach 09:30 Uhr ging es weiter, mit der Rolltreppe in den dritten Stock und von dort in den Saal "Presidio". Die Platzsuche verlief halbwegs zivilisiert, wir saßen halb-links etwa in der Mitte von vorne. Kurz vor uns hingen ganz links und ganz rechts große Flachbildschirme von der Decke (etwa in derselben Größe wie die Leinwand auf der Bühne), so dass auch die hinteren Reihen einen guten bis sehr guten Blick hatten.

Über die Keynote selbst haben andere schon ausführlich berichtet, wir fanden den Mittelteil mit der Präsentation des iPhone SDK 3.0 sowie die Präsentation der verschiedenen Entwickler eher langatmig, der Rest der Show war recht unterhaltsam.

Was wir nächstes Mal anders machen würden: Da von unserer Sitzposition das untere Fünftel der vorderen Leinwand sowie der jeweilige Präsentierer teilweise schlecht zu sehen waren, würden wir uns beim nächsten Mal vermutlich eher weiter hinten platzieren und das Geschehen auf den Displays verfolgen.

Essen, Trinken, Internet

Auf der Konferenz gab es vor der ersten Session jeweils Frühstück, nach den zwei Vormittagssessions eine lange Mittagspause und nach der ersten Nachmittagssession Kuchen und Süßes (alles im Eintrittspreis enthalten). Das Frühstück bestand primär aus Kuchen und Muffins, dazu Kaffee und Smoothies. Kein Obst, keine Müsli oder ähnliches. Ein echtes Highlight waren die fast den ganzen Tag verfügbaren Smoothies, die mit reichlich zugesetzten Vitamen protzten und (trotzdem) gut schmeckten. Ab dem Mittagessen gab es außerdem Softdrinks in Dosen, z.B. Mountain Dew, 7 Up, Pepsi, Dr. Pepper oder Root Beer. Zum Mittag bestand die Auswahl aus 3 verschiedenen Boxen mit einer kalten Hauptspeise (Sandwiches, Wraps oder Salat), einer kleinen Portion Nudelsalat und einem Stück Kuchen. Der eine mag es, der andere nicht. Als Alternative lohnt es sich die umliegenden Einkaufszentren anzusteuern, in denen die Footcourts eine größere Auswahl an halbwegs preiswerten Restaurants bieten. Der nachmittags angebotene Kuchen und die Cookies war wiederum sehr lecker, mit riesigen Schüsseln voller M&Ms (INSERT FOTO), Gummibären und ähnlichen kann man bei Geeks auch nicht viel falsch machen. :)

Das drahtlose Internet auf der Konferenz war mit einem Notebook grundsätzlich gut nutzbar und brauchbar schnell. Hin und wieder ging mal eine halbe Session lang gar nichts, aber im großen und ganzen klappte es gut. Ganz anders auf dem iPhone, teilweise war es reines Glück mal für 5min beim Warten in einer Schlange Netz zu bekommen. Und wenn man dann doch mal Netz hatte, flog man nach fünf Minuten wieder raus. Die schwächere Empfangsleistung des iPhones war hier eindeutig einem Notebook unterlegen. Alternativ konnte man sein Notebook an diversen Stellen auch ans kabelgebundene Netzwerk anstöpseln, die Geschwindigkeit war dann noch mal deutlich besser, selbst Videochats in die Heimat waren möglich.

Abends

Montag: iPhone Intelligence Party, kurze Schlange, kostenloses Bier getrunken, danach zurück zum Hotel und unterwegs was gegessen. Dienstag: Apple Design Awards und Stump the Experts, insbesondere letzteres sehr unterhaltsam, sollte man nicht verpassen. Mittwoch: MacRuby drink @ WWDC 2009, ca. 20 MacRuby-Entwickler und -Interessierte trafen sich in einem mexikanischen Restaurant, gute Gespräche und Diskussionen, wie sich die Position von MacRuby in der Apple-Welt entwickeln soll und kann Donnerstag: WWDC Bash at Yerba Buena Gardens, die offizielle Apple Party, nette Location, kostenloses Essen (Sushi, Pizza, Hotdogs, Nudeln, Cookies) und Getränke (Wein, Bier, Soft Drinks), als Live Band Cake

Zusammenfassung

Zusammenfassend bleibt eigentlich nur zu sagen: Es war eine großartige Konferenz! Wir warten sehnsüchtig auf die Videos von allen Sessions, die Apple "in Kürze" für jeden Teilnehmer kostenlos zum Download anbieten will, und freuen uns schon jetzt auf WWDC 2010.

]]>
Tue, 23 Jun 2009 11:11:00 +0200 http://thomas.dohmke.de/items/view/523/unser-ruckblick-auf-wwdc-2009
Besucherstatistiken Mai 2009 http://thomas.dohmke.de/items/view/521/besucherstatistiken-mai-2009

Es war relativ ruhig hier in letzter Zeit, dennoch sind auch im Mai die Besucherzahlen gewachsen auf nunmehr 1199 Besucher und 2299 Besuche. Maßgeblich für diesen Anstieg waren unsere Berichte von RailsConf sowie drei Artikel auf unserer englischen Seite zum Thema MacRuby (ein vierter erschien Anfang Juni). Bei Gelegenheit werden wir diese Reihe fortsetzen und auch wieder mehr in deutscher Sprache bloggen.

]]>
Mon, 22 Jun 2009 22:54:00 +0200 http://thomas.dohmke.de/items/view/521/besucherstatistiken-mai-2009
Drei Links zum Sonntag (XVII) http://thomas.dohmke.de/items/view/423/drei-links-zum-sonntag-xvii

Nachdem unsere kleine Sonntagsreihe vorige Woche aufgrund der Auswirkungen des Jetlags von Las Vegas ausgefallen ist, haben wir diese Woche wieder drei Links. Thema ist MacRuby:

MacRuby.tmbundle - TextMate bundle for MacRuby Wer MacRuby lieber in TextMate als in Xcode schreiben will, sollte sich das MacRuby-Bundle für TextMate ansehen. Hillegass-MacRuby Wer die Programmierung in Cocoa über den Klassiker Cocoa Programming for Mac OS X von Aaron Hillegass gelernt hat, findet in diesem Git-Repository einige der Beispiele in MacRuby transferiert. Macruby Support in any Cocoa Application Wer MacRuby in ein beliebiges Cocoa-Projekt einbinden will, bekommt hier eine kurze Anleitung sowie ein Beispiel-Projekt.

Zum Schluss noch ein Link zu einem eigenen Projekt, dass wir kürzlich auf GitHub eingecheckt haben. MacRubyTwitterApp ist ein einfacher Twitter-Client, geschrieben in MacRuby.

]]>
Sun, 17 May 2009 19:53:00 +0200 http://thomas.dohmke.de/items/view/423/drei-links-zum-sonntag-xvii
RailsConf 2009 - 4. Tag http://thomas.dohmke.de/items/view/407/railsconf-2009-4-tag

Der letzte Tag begann im Gegensatz zu gestern und vorgestern ohne eine Keynote. Stattdessen ging es um 9:25 Uhr direkt mit Vorträgen los. Ich besuchte zuerst den Vortrag Webrat: Rails Acceptance Testing Evolved, in dem Bryan Helmkamp einen Überblick über Webrat gab. Viele Details für Einsteiger, wenig Neues für Fortgeschrittene. Danach ging ich zu Building a Video Portal in Rails - Or How the Teenage Mutant Ninja Turtles Started Streaming und erlebte meinen persönlichen Tiefpunkt während der Konferenz. Ich hatte erwartet, dass die Vortragenden eine eigene Video-Plattform entwickelt hatten, stattdessen verwendeten sie thePlattform und die Präsentation drehte sich im Wesentlichen um dessen Anbindung an ein Rails-Projekt. gähn Stefan hatte mehr Glück bei seiner Wahl, zuerst war er bei HTTP's Best-Kept Secret: Caching, dann bei When to Tell Your Kids About Client Caching. Seine Notizen zufolge beides sehr gute Vorträge mit diversen Tips und Anregungen zum Thema Caching. Danach trafen wir uns beim letzten Vortrag am Vormittag, It's Not Always Sunny In the Clouds: Lessons Learned. Mike Subelsky, Mitbegründer von OtherInbox, beschrieb seine Erfahrungen mit Amazon EC2 bzw. S3 und erläuterte diverse Maßnahmen, um Probleme beim Deployment und Betrieb zu vermeiden.

Es folgte das Mittagessen und damit aus meiner Sicht einer der größten Schwachpunkte der Konferenz. Schon das tägliche Frühstück war wenig berauschend, die Auswahl beschränkte sich auf getoastete Bagels, dazu Butter, Marmelade und Doppelrahmkäse (Cream Cheese) sowie mittelmäßiger Kaffee. Kein Müsli, kein Obst oder etwa warme Optionen bzw. ein gekochtes Ei. In gleicher Weise ging es mittags weiter, an allen vier Tagen gab es dieselben Lunchpakete mit einem Sandwich (Salami/Käse, Hähnchen, Truthahn und eine vegetarische Option, die wir nicht probiert haben), Nudelsalat, Chips, zwei Cookies und einem Apfel. Die Sandwiches waren ausnahmslos kalt, nahezu tiefgefroren, der Nudelsalat mit Oliven und Essig verhunzt.

Am Nachmittag folgte der letzter Vortag, wir hörten The Russian Doll Pattern: Mountable apps in Rails 3, wo Yehuda Katz und Carl Lerche, die derzeit beide an Rails 3 arbeiten, die kommende Möglichkeit zur Einbindung einer oder mehrerer Apps in eine andere App beschrieben. Die Präsentation war hauptsächlich auf Konzepte und Pseudo-Code beschränkt, was schlicht daran lag, dass die Implementierung in Rails 3 noch nicht abgeschlossen ist. Offenbar gibt es in der Rails-Community auch Leute, die die Vermengung mehrerer Apps zu einer neuen App mit gemischten Gefühlen sehen, jedenfalls gab es in der die Konferenz abschließenden Podiums-Diskussion prompt folgende Frage aus dem Publikum: "Are you guys letting Yehuda turn Rails into Drupal?" Die übrigen Fragen und Antworten an das Rails Core Team gaben einen guten Überblick über die Arbeiten an Rails 3 (wenn auch keine Termine genannt wurden) und damit endete dann RailsConf 2009 um kurz nach 16:00 Uhr.

Den Rest des Nachmittags nutzen wir mit Einkaufen im Las Vegas Premium Outlets Center, Abendessen in der 888 Noodle Bar und einem kleinen nächtlichen Ausflug an den Stadtrand von Las Vegas, um von dort die Skyline zu fotografieren.

]]>
Mon, 11 May 2009 22:48:00 +0200 http://thomas.dohmke.de/items/view/407/railsconf-2009-4-tag
RailsConf 2009: Don't Mock Yourself Out http://thomas.dohmke.de/items/view/401/railsconf-2009-dont-mock-yourself-out

David Chelimsky, welcher u.A. durch seine Tätigkeit als Lead-Developer von RSpec bekannt ist, zeigte gestern eine Präsentation zum Thema Mock-Objekte. Erwähnung fand darin u.A. das Tool Stubble, das über GitHub zu beziehen ist (Installation und Konfiguration sind in der Datei README.rdoc beschrieben). Das Ziel von Stubble ist es, das Testen von Controllern zu vereinfachen. Angenommen, wir haben eine Rails-App mit einem Model Recipe und dem passenden RecipesController. Die update-Methode hat typischerweise folgenden Aufbau:

class RecipesController < ApplicationController # ...

def update
@recipe = Recipe.find(params[:id]) if @recipe.update_attributes(params[:recipe]) redirect_to recipes_path else render :action => :edit end end

# ... end

Die Specs von sowohl if- als auch else-Zweig dieser Methode sehen mit Stubble wie folgt aus:

describe RecipesController do context "successful update" it "redirects to the recipes" do stubbing(Recipe) do put :update response.should redirect_to(recipes_path) end end end

context "failed update" it "re-renders the edit page" do stubbing(Recipe, :as => :invalid) do put :update response.should render_template('edit') end end end end

Der Aufruf von stubbing(Recipe) erzeugt dabei Stubs für die Methoden new, find, create, *all, find, valid, save und update_attributes (sowie die Varianten mit Ausrufezeichen), wobei die letzten drei Stubs true zurückliefern. Durch die Option s => :invalid wird dies zu false geändert (und die Varianten mit Ausrufezeichen werfen Exceptions). Als Resultat werden die Specs von Controllern lesbarer und das DRY-Prinzip noch konsequenter verfolgt.

]]>
Thu, 07 May 2009 06:52:00 +0200 http://thomas.dohmke.de/items/view/401/railsconf-2009-dont-mock-yourself-out
RailsConf 2009: Smacking Git Around - Advanced Git Tricks http://thomas.dohmke.de/items/view/395/railsconf-2009-smacking-git-around-advanced-git-tricks

Einer der bisher besten Vorträge wurde am heutigen Nachmittag von Scott Chacon zum Thema "Advanced Git Tricks" gehalten (Foliensatz, Cheat-Sheet). Bemerkenswert war insbesondere seine Lösung in Bezug auf Submodule, bei denen in Git normalerweise kein push auf den Remote-Host möglich ist. Tatsächlich verwendet Scott kein richtiges Submodul, sondern umgeht das Problem in der nachfolgend beschriebenen Vorgehensweise:

Ausgehend von einem Projekt mit Git-Repository soll ein weiteres Repository als Subprojekt eingebunden werden. Als Beispiel verwendet Scott einen Fork des Rack-Projektes, welches er dem eigentlichen Projekt als zusätzliche Quelle hinzufügt: $ git remote add rack_remote git@github.com:schacon/rack.git $ git fetch rack_remote Anschließend wird ein lokaler Branch erzeugt $ git checkout -b rack_branch rack_remote/master und dann wieder auf master zurück gewechselt: $ git checkout master Der Branch wird nun in die Arbeitskopie als Unterverzeichnis rack eingehängt: $ git read-tree --prefix=rack/ -u rack_branchAuf diese Art und Weise lässt sich Rack als Unterverzeichnis in das eigentliche Projekt einchecken:$ git add rack $ git commit -m 'added rack code' Angenommen, der lokale Benutzer führt nun Änderungen in Rack durch: $ vim rack/lib/rack.rb $ git commit -am 'added awesome to rack'Um diese Änderungen in das ursprüngliche Repository zu schieben, muss im Anschluss auf den Branch gewechselt werden: $ git checkout rack_branch $ git merge -s subtree --no-commit --squash masterDie Merge-Strategie subtree erlaubt es, den master von Rack in den Branch im Unterverzeichnis zu mergen. Außerdem werden durch die Option --squash mehrere Commits im Branch zu einem einzigem Commit zusammengefasst, so dass die lokale Historie keinen Übergang in das möglicherweise fremde Projekt findet.

Für weitere Tipps zu Git lohnt sich auf jeden Fall ein Blick in das Cheat-Sheet.

]]>
Wed, 06 May 2009 07:32:00 +0200 http://thomas.dohmke.de/items/view/395/railsconf-2009-smacking-git-around-advanced-git-tricks
Besucherstatistiken von Januar bis April 2009 http://thomas.dohmke.de/items/view/393/besucherstatistiken-von-januar-bis-april-2009

Wie schon vor einem Monat vermutet, haben sich im April die Besucherzahlen unserer kleinen Seite deutlich erhöht. Waren es im März noch 452 Besucher mit 874 Besuchen, wurden im April 894 Besucher und 1418 Besuche im Log verbucht.

Ursächlich dafür war insbesondere die Veröffentlichung unserer iPhone App Ruby Helper. Insofern wird es spannend, was der Mai so bringt...

]]>
Wed, 06 May 2009 03:49:00 +0200 http://thomas.dohmke.de/items/view/393/besucherstatistiken-von-januar-bis-april-2009
Ruby Helper 1.1 http://thomas.dohmke.de/items/view/392/ruby-helper-11

Heute erschien endlich Version 1.1 unserer App Ruby Helper im App Store. Es enthält die folgenden neuen Dokumente:

RSpec 1.2.4

4 Texte 75 Klassen 26 Module 513 Methoden

Spec::Rails 1.2.4

3 Texte 19 Klassen 12 Module 93 Methoden

Webrat 0.4.4

2 Texte 18 Klassen 7 Module 136 Methoden

Wir arbeiten außerdem an einem Feature, welches es ermöglicht, weitere Dokumente direkt aus der App runterzuladen (beispielsweise für Ruby 1.9). Voraussichtlich wird dieses Feature aber erst mit dem Release von iPhone OS 3.0 im Sommer veröffentlicht.

]]>
Wed, 06 May 2009 03:28:00 +0200 http://thomas.dohmke.de/items/view/392/ruby-helper-11
RailsConf 2009: jQuery on Rails http://thomas.dohmke.de/items/view/384/railsconf-2009-jquery-on-rails

Montagmorgen, 8:30 Uhr. Nach schneller und unkomplizierter Registrierung sowie mittelmäßigem Frühstück beginnen die ersten Tutorials von RailsConf 2009. Wir haben uns für jQuery on Rails in Pavillon 9/10 entschieden. Schon beim Betreten des Saals fällt uns auf, dass an den Tischen keine Steckdosen verlegt wurden und auch an den Seitenwänden keine Spur von Stromversorgung. Rasch folgen diverse Tweets und @railsconf verspricht, dass in Kürze die entsprechenden Verlängerungsstrippen bzw. -dosen verlegt werden (unsere Reihe kriegt nach ca. 30 Minuten tatsächlich Strom, andere warten vergeblich).

Inhaltlich geht es zunächst mit den Grundlagen von jQuery los, Yehuda Katz und Andy Delcambre sind gut vorbereitet und stellen Folien sowie Übungsdateien als Git-Repository zur Verfügung. jQuery erlaubt die Verwendung diverser CSS3-Selektoren, die miteinander verkettet werden können ("Chaining"). Nachfolgend drei Beispiele:

// Alle div-Elemente $("div")

// Alle p-Elemente, die zu einem div gehören $("div p")

// Alle Links, die jquery.com enthalten $("a[href*=jquery.com]")

Das Tutorial ist so aufgebaut, dass nach jedem Themenblock kurze Übungseinheiten folgen, in denen das Gelernte anhand von einfachen Aufgabe wie "Select any text areas and their labels" geübt wird.

Es folgen Themenblöcke zum Document Object Model, zur Manipulation von Dokumenten, zu Events und Effekten, zu AJAX und einer Auswahl von Plugins. Die Verwendung von jQuery im Zusammenspiel mit Rails nimmt am Ende nur 6 der 86 Folien und damit relativ wenig Umfang ein, gerade hier hätten wir uns mehr Informationen gewünscht.

In den letzten 20 Minuten wird dann noch das Blue Ridge Javascript Testing Plugin vorgestellt, allerdings sind die Erklärungen und Hintergründe dazu eher dürftig und führen so zu einem negativen Eindruck einer ansonsten recht guten Präsentation.

]]>
Tue, 05 May 2009 07:51:00 +0200 http://thomas.dohmke.de/items/view/384/railsconf-2009-jquery-on-rails
Drei Links zum Sonntag (XVI) http://thomas.dohmke.de/items/view/376/drei-links-zum-sonntag-xvi

In Deutschland ist zwar schon Montag, wir halten uns jedoch gerade in Las Vegas auf, so dass uns noch 15 Minuten bleiben, um die Links zum Sonntag noch rechtzeitig abzuliefern.

RailsConf 2009 Der Grund, warum wir uns derzeit in Las Vegas aufhalten. Hoover Dam Bevor die Konferenz startet, hatten wir heute Zeit für einen kleinen Ausflug. Der Hoover Dam war unser erstes Ziel, die ca. 50km von Las Vegas schafften wir in einer knappen Stunde, wobei wir geschätzt 20 Minuten vor der Staumauer im Stau standen. Vor und hinter uns diverse Teilnehmer des Gumball 3000, die prompt im selben Parkhaus Pause machten. Grand Canyon Skywalk Nach weiteren 150km Autofahrt erreichten wir den Grand Canyon Skywalk am westlichen Rand des Grand Canyon. Am Eingang des Reservats mussten wir das Auto parken, um dann $30 pro Person für 10 Minuten Busfahrt und $35 pro Person für den Skywalk zu bezahlen. Trotz der horrenden Preise waren am späten Nachmittag noch ca. 30 Besucher mit uns unterwegs, der Skywalk selbst eher enttäuschend, die Ausblicke von verschiedenen Aussichtspunkten wesentlich spannender, vor allem, weil man ohne jegliche Absperrung bis direkt an die Klippen laufen kann. Empfehlung: Auf den Skywalk verzichten und nur die Aussichtspunkte mitnehmen = halber Preis, besseres Erlebnis.

Ab morgen werden wir hier dann direkt von RailsConf 2009 berichten, am Vormittag haben wir uns für das Tutorial jQuery on Rails registriert, am Nachmittag steht Building Next Generation Web Apps with Rails and SproutCore auf dem Plan.

]]>
Mon, 04 May 2009 08:48:00 +0200 http://thomas.dohmke.de/items/view/376/drei-links-zum-sonntag-xvi
Drei Links zum Sonntag (XV) http://thomas.dohmke.de/items/view/358/drei-links-zum-sonntag-xv

Diese Woche mal wieder einige Links aus der Welt von Ruby und Rails:

Debugging Rails 2.3.2 Apps with Rack::Bug Mischa Fierer erläutert anhand einer einfachen Beispielanwendung die Benutzung von Rack::Bug zur Analyse des Rails-Environments, Speicherverbrauchs, usw. Wer stattdessen ein Video bevorzugt, wird bei Bryan Helmkamp fündig. Uploading Files Michael Koziarski stellt mit Mod Porter ein Modul für den Apache vor, welches sich um den Upload-Vorgang von großen Dateien kümmert. Nachdem die Datei vollständig auf den Server hochgeladen wurde, wird der Request in einen herkömmlichen POST-Request abgeändert und an die jeweilige Rails-Anwendung weitergeleitet. In Tests ließen sich so Geschwindigkeitssteigerungen um den Faktor 30 bis 200 erreichen. Ruby Best Practices Gregory Brown und andere Autoren haben sich in diesem neuen Blog zusammengeschlossen, um über ihre Best Practises im Zusammenhang mit Ruby zu berichten. Einzige Bedingung ist, dass sie selbst stolz auf den präsentierten Code sind. Mal schauen wie sich das entwickelt, das Konzept klingt jedenfalls gut.

Abschließend noch ein Link zur RailsConf, die in 8 Tagen beginnt und sicher reihenweise spannende Neuigkeiten mit sich bringen wird.

]]>
Sun, 26 Apr 2009 19:06:00 +0200 http://thomas.dohmke.de/items/view/358/drei-links-zum-sonntag-xv
Drei Links zum Sonntag (XIV) http://thomas.dohmke.de/items/view/332/drei-links-zum-sonntag-xiv

Heute mal drei Links ohne Kommentare:

Wizzley Presto and the Mysterious Time Machine [or how to make an iPhone game in 30 days] A long, rambly exploration of the state of computing with no real conclusion follow And now: random thoughts on iPhone UI issues and things and such

]]>
Sun, 19 Apr 2009 18:17:00 +0200 http://thomas.dohmke.de/items/view/332/drei-links-zum-sonntag-xiv
iPhone Code Schnipsel: Kennung des Gerätes http://thomas.dohmke.de/items/view/321/iphone-code-schnipsel-kennung-des-gerates

Gesucht

Die Kennung (Identifier bzw. UDID) eines iPhone oder iPod Touch programmatisch ermitteln.

Lösung

UIDevice *device = [UIDevice currentDevice]; NSString *uniqueIdentifier = [device uniqueIdentifier];

UIDevice bietet außerdem Instanzmethoden zur Bestimmung von Name (name) und Modell (model) des Gerätes sowie Name (systemName) und Version (systemVersion) des Betriebssystems. Beispiel für mein iPhone:

Name: MyPhone Model: iPhone SystemName: iPhone OS SystemVersion: 2.2.1

]]>
Sat, 18 Apr 2009 13:11:00 +0200 http://thomas.dohmke.de/items/view/321/iphone-code-schnipsel-kennung-des-gerates
iPhone Code Schnipsel: Den Benutzer warten lassen http://thomas.dohmke.de/items/view/320/iphone-code-schnipsel-den-benutzer-warten-lassen

Gegeben

Der Benutzer füllt seine Benutzerdaten in zwei Textfelder ein und klickt dann auf Login. Anschließend wird ein Request an den Server gesendet und abhängig von der Antwort zum Hauptmenü gewechselt oder eine Fehlermeldung angezeigt.

Gesucht

Während des Wartens auf die Antwort soll die aktuelle Ansicht durch ein HUD mit einem UIActivityIndicatorView überlagert werden.

Lösung

Wir laden die Klasse SFHFHUDView in Form der beiden Dateien SFHFHUDView.h und SFHFHUDView.m von GitHub runter und binden diese in unser Xcode-Projekt ein. Anschließend kann das HUD wie folgt erzeugt und angezeigt

SFHFHUDView *HUDView = [[SFHFHUDView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; [HUDView setStatusText:@"Connecting..."]; [HUDView setShowsStatusLabel:YES]; [HUDView startActivityIndicator]; [HUDView makeKeyAndVisible];

sowie später wieder entfernt werden:

[HUDView resignKeyWindow]; [HUDView setHidden:YES];

]]>
Fri, 17 Apr 2009 18:33:00 +0200 http://thomas.dohmke.de/items/view/320/iphone-code-schnipsel-den-benutzer-warten-lassen
iPhone Code Schnipsel: Eingestellte Sprache http://thomas.dohmke.de/items/view/319/iphone-code-schnipsel-eingestellte-sprache

Gesucht

Welche Sprache hat der Benutzer auf seinem iPhone oder iPod Touch eingestellt?

Lösung

NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; NSArray* allLanguages = [defaults objectForKey:@"AppleLanguages"]; NSString* currentLanguage = [allLanguages objectAtIndex:0];

currentLanguage enthält dann das Sprachkürzel nach ISO 639-1, z.B. de für Deutsch oder en für Englisch.

]]>
Fri, 17 Apr 2009 12:23:00 +0200 http://thomas.dohmke.de/items/view/319/iphone-code-schnipsel-eingestellte-sprache
Drei Links zum Sonntag (XIII) http://thomas.dohmke.de/items/view/310/drei-links-zum-sonntag-xiii

Die 13. Runde unserer Links zum Sonntag beschäftigt sich mit Programmierung und Marketing von Spielen auf dem iPhone:

iPhone Game Programming Tutorial Part 1, Part 2 und Part 3 Brandon Trebitowski hat in seinem Blog icodeblog.com ein dreiteiliges Tutorial veröffentlicht, in dem er die Entwicklung des (Beispiel-)Spiels iTennis beschreibt. iPhone Game Programming Tutorial 1, Tutorial 2 und Tutorial 3 Mike Daley stellt bei 71Squared ebenfalls ein Tutorial zur Verfügung, hier jedoch in Form von Screencasts. Der Fokus liegt auf OpenGL ES und der vierte Teil ist bereits angekündigt. Creating an iPhone Game Video Owen Goss erläutert seine Vorgehensweise bei der Erstellung eines Videos von seinem iPhone-Spiel Dapple und zeigt am Ende das fertige Video.

]]>
Sun, 12 Apr 2009 14:27:00 +0200 http://thomas.dohmke.de/items/view/310/drei-links-zum-sonntag-xiii
Drei Links zum Sonntag (XII) http://thomas.dohmke.de/items/view/297/drei-links-zum-sonntag-xii

Der Frühling ist endgültig da und es gibt wieder drei Links zum Sonntag:

Designing Convertbot Mark Jardine schreibt über die Entstehung und das Design der iPhone App ConvertBot, dessen Nützlichkeit allerdings in der derzeit vorliegenden Version 1.0 über einen Bug bei der Verwendung des Kommas als Dezimaltrennzeichen beeinträchtigt wird. Trotzdem eine schicke App. 360iDev Slides Bei SlideShare wurden unlängst alle Foliensätze der Konferenz 360iDev veröffentlicht. Jede Menge spannender Informationen, leider ohne Ton oder Video. OpenID Rails Kit Wer gerade ein neues Rails-Projekt aufsetzen will (so wie wir) und eine Authentifizierung der Benutzer mit Benutzername und Passwort oder alternativ mit Open ID einbinden will, sollte sich das OpenID Rails Kit anschauen. Die App kommt komplett lauffähig inkl. Tests mit RSpec. Einfach, schnell, eben Ruby on Rails.

]]>
Sun, 05 Apr 2009 16:52:00 +0200 http://thomas.dohmke.de/items/view/297/drei-links-zum-sonntag-xii