Amerikanischer Sport: Der "propper" Buttslap..
Rofl.
| Mo | Tu | We | Th | Fr | Sa | Su |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
So, gegründet ist sie also die CocoaHeads Chapter Berlin. Und Lustig wars auch - immerhin doch 15 Cocoa-Programmierer, die meisten davon überraschenderweise fürs iPhone. Und auch eine Menge Leute die mann schon kennt.
Der Entwickler von Aurora, AppFresh und Fahrinfo Berlin war da (der überraschenderweise in Potsdam immer noch studiert!), der Entwickler von GarageSale, einige Leute aus der iPhone-Abteilung von Neofonie und natürlich der Gründer und noch einige Freelancer und andere Gesellen bei denen ich mich nicht mehr an die Applikationen erinnern kann.
Also ein ganz hervorragender Start für ein Kakaokopftreffen. :)
Updated on 11/13/08 22:14:20
Vor ein paar Tagen hat mir ein Bekannter ganz begeistert davon erzählt, wie sehr Obama gewonnen hätte, weil er das Internet endlich richtig benutzt.
Erstaunlicherweise habe ich davon sehr wenig mitbekommen - daher war ich etwas skeptisch. Jetzt habe ich einen ganz hervorragenden Bericht von meinem Bekannten Wolfgang Goede gelesen - der in Amerika als Wahlhelfer gearbeitet hat, um die Wahl und ihre Ergebnisse besser zu verstehen.
Ich bin persönlich ja der Meinung dass seine Fähigkeiten als Community-Organizer weit mehr mit dem Wahlsieg zu tun haben als mein Bekannter dachte - aber er hat tatsächlich viele dinge Online gemacht.
Das finde ich großartig.
War ja ganz nett auf den Apple iPhone TechTalks - alles zusammen allerdings etwas langweilig weil wenig in die Tiefe. :-(
Lustiges Detail am Rande: Zwar war die Veranstaltung mit Anmeldung und schon lange vorher ausgebucht - aber trotzdem kam man vor Ort noch gut rein - das nächste mal kann man es also auch ohne Anmeldung einfach mal versuchen.
Interessant auch, dass das ganze Event unter NDA stand, das heißt, obwohl ich dort war und nur Informationen verbreitet wurden die alle ohne NDA aus der API erhältlich waren, darf ich nicht darüber erzählen was es dort zu hören gab. Das fand ich so strange dass ich doch gleich einen der Vortragenden Apple-Mitarbeiter gefragt habe wie das zu verstehen ist: Dieser hat sich dann entschuldigt und bestätigt, dass natürlich alle Informationen die aus den APIs kommen frei bloggbar sind, aber eben nicht worüber auf dem Event darüber gesprochen wurde.
Schade eigentlich.
Hier einige Notizen zu der iPhone API die ich spannend finde:
Updated on 11/10/08 22:12:14
Noch zwar unter einer obskuren URL aber das ändert sich auch bald hat sich geändert.
Yay, wir haben einen Blog eingerichtet.
:)
Updated on 11/15/08 09:15:40
Faszinierend finde ich ja schöne verfahren um die Ergebnisse der Wahl vorherzusagen.
Toll finde ich in diesem Fall Crowdsourcing also die Idee, das lokale Wissen von ganz vielen Menschen über ihre Umgebung auf eine Art und Weise zusammen zu führen die daraus weit mehr macht als die Summe der einzelnen ist.
Eine Sache sind z.B. [Decision Markets] also eine Börse wo die leute Geld auf verschiedene Ergebnisse setzen können. Wie z.B. bei Intrade. Die haben zum Beispiel einen Markt für die Wahl heute Abend: Intrade - Realtime Election Tracking. Spannend vor allem die Übersicht über die letzten drei Monate.
Ein CCC'ler sagte dazu nur: "Decision Markets sind so genau, dass man damit sogar Wahlcomputer-Manipulationen nachweisen kann." Und dann: "Ich habe 100$ auf McCain gesetzt. Wenn er gewinnt krieg ich 950$." Die Antwort: "Auch ein Trostplfaster."
Spannend nicht?
Hier schon mal die Ergebnisse.
Well, it doesn't really. But if way overused it becomes a pain in the a**.
This is not so much a problem in on itself, but the code sprouts dependencies that nobody is able to follow from just reading a class but which become crucial to the operation of the application.
Well, out of frustration I started thinking about the saying that Design-Patterns are just for languages that are not powerful enough to implement something in the language.
So lets see, what can we do to make this simpler:
if ([someObject respondsToSelector:@selector(someDelegateMethod:)]) { [someObject someDelegateMethod:self]; }
The key here is to only call the messagte -someDelegateMethod: if it is actually supported on the target. A perfect application of my invocation catching code.
[[NMDelegateCaller callerForDelegate:object] someDelegateMethod:self];
In real life of course you would hide the delegator by just wrapping your delegate in the -setDelegate: method. (...)
Gerade habe ich doch ein Stück Code hochgeladen mit dem man jeden beliebigen Methodenaufruf in eine Invocation umwandeln kann.
Nun, das hat mir nicht gereicht. Jetzt hab ich mich noch mal hingesetzt und mich an einer anderen Syntax versucht:
// anstatt id invocation = NMCatchInvocation(@"fnord", stringByAppendingString:@"42"); // jetzt id invocation = [NMRecordingInvocation invocation]; [invocation recordWithTarget:@"fnord"] stringByAppendingString:@"42"]; // oder id invocation = [NMRecordingInvocation invocationWithTarget:@"fnord"]; [invocation record] stringByAppendingString:@"42"];
Und ich finde das ist von der Syntax her deutlich eleganter als das Makro.
Allerdings:
Was soll ich davon jetzt halten? Small is beautifull? Keep it simple stupid? Oder ist doch wichtiger dass der zweite Versuch eher dem Objc-Spirit entspricht? (...)
Spannend wars heute auf dem Kongress.
Vormittags der Workshop über Simulationsmodelle über die Auswirkungen der Einführung von Grundeinkommen auf ein Modell der österreichischen Volkswirtschaft (in dem sich zeigte dass Gewinnsteuerfinanziertes Grundeinkommen das verwendete Modell stärker destabilisierte als ein durch negative Einkommenssteur finanziertes.
Well, dafür das der verantwortliche für das Modell nur einen Tag lang simuliert hat...
Danach ging es noch ein bisschen mit zellulären automaten weiter um damit zu simulieren wie sich das Wissen um Grundeinkommen in der Bevölkerung ausbreiten konnte.
Beides nicht großartig, aber doch ein interessanter Einblick darin dass auch in der Simulation eben nur mit Wasser gekocht wird. Will sagen: Das hätte ich auch gekonnt.
Danach gabs dann einen Argumentationsworkshop gegen Stammtischparolen und Killerargumente - das war mal was praktisches und für mich (trotz einer was Argumente angeht eher mageren Ausbeute) damit das Highlight des Tages. (...)
...ist deutlich schmerzhaft.
Man muss eine Menge Aufwand treiben um aus einem objc-call etwas zu machen dass man schön hin und her passen kann.
Zum Beispiel:
#import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; id aString = @"fnord"; id signature = [aString methodSignatureForSelector:@selector(stringByAppendingString:)]; id invocation = [NSInvocation invocationWithMethodSignature:signature]; [invocation setTarget:aString]; [invocation setSelector:@selector(stringByAppendingString:)]; id appender = @"23"; [invocation setArgument:&appender atIndex:2]; [invocation invoke]; id returnValue = nil; [invocation getReturnValue:&returnValue]; NSLog(@"Got: %@", returnValue); [pool drain]; return 0; }
Das nervt sobald man es öfters als einmal machen muss.
Darum hab ich mir nach langem nachdenken mal etwas zusammengebaut das das erleichtert. Es ist nicht perfekt und ich hab auch eine Menge Ideen wie man es noch schöner machen kann, aber es funktioniert. :) (...)
Updated on 10/26/08 21:28:00
Ich hab mich schon immer gefragt woher man eigentlich diese Defines nimmt um C-Code deklarationen so zu schützen, dass sie auch in C++ Code gut reingeholt werden können.
Ja klar, man kann das selber machen, etwas präprozessor bla und los gehts. Aber, das gibts ja vielleicht schon.
Enter #import <sys/cdefs.h>.
Und das ist in in Apple-Code praktischerweise immer schon includiert und enthält praktische Kleinigkeiten wie:
Dann gibts natürlich noch <AvailabilityMacros.h> das auch noch ein paar Kleinigkeiten enthält - neben dem ganzen Zeug um APIs zu versionieren sind da auch noch mal Attribute definiert: (...)