iOS 6, AddThisSDK and all that stuff you might need to ‚like‘ something (I’m no Facebook enthusiast)

November 11th, 2012

The AddThisSDK has some problems laying nicely with other frameworks (no encapsulated JSON library for instance). And the standard installation will also result in some errors.

If you’ll get BadAccess issues, be sure that the AddThis/ThirdPartyLibs/FBConnect folder contains nothing but the FacebookSDK folder. Anything else there (epsecially facebook classes) will cause problems as they may obscure the ‚real‘ FB classes.

For being able to build also for iOS 5 be sure to set iOS 6 relevant frameworks (social, fb) to ‚optional‘.

The Facebook configuration isn’t that well described; also all the parts can be found somewhere, it’s a lot of cherry picking. Therefore be sure to set the FB key/app id in the app delegate and also add it with key ‚FacebookAppID‘ in the applications plist file. There you also have to register the fb url scheme. Add an array with key ‚URL types‘, with one element (‚Item 0‘) as dictionary, that contains one element of type array with key ‚URL Schemes‘ and one element with key ‚Item 0‘ and value ‚fb<your_fb_pp_id>‘ (–> something like ‚fb3676876866767‘).

In the app delegate you also have to add: – (BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

which then returns :  return [FBSession.activeSession handleOpenURL:url];

Hopefully then everything works like a charm.

MacOS, Rails, RSpec und Guard

November 6th, 2012

Gestern wollte ich auf meinem Mac (Lion) Guard aufsetzen, um in den Genuss automatisierten Testens zu kommen. Mit den richtigen naleitungen ist das ja auch gar kein Problem; dachte ich zumindest. Lief auch alles ganz prima: Spork startete durch und alle Specs wurden ebenfalls ausgeführt. Sogar Growl gab seinen bekanntlich leckeren Senf dazu. Aber was war das? Nach dem ersten Durchlauf erschien ein kommentarloses ‚Done.‘ und in der nächsten Zeile ein Prompt. Ok, dachte ich, das muss wohl so sein. Einige Recherchen später wusste ich nun auch über die interaktive Konsole des neuen Guard (1.5.3) Bescheid.

Das Üble war nur, dass auch wildeste Änderungen in den Specs oder Modeln Guard nicht dazu bewegten, die Specs erneut auszuführen. Sämtliche Konfigurationsänderungen wollten da auch keine Linderung bringen. Eine Rücksetzen auf Guard 0.8.8 brachte das Ganze wieder zum laufen (was brauche ich Guard, wenn Dateiänderungen nicht getrackt werden), aber warum zurück in die Steinzeit?

Irgendwann stieß ich dann auf den Guard Parameter ‚-i‘. Dieser sorgt dafür, dass die interaktive Konsole nicht aufgerufen wird. Starte ich nun Guard (1.5.3) mit ‚bundle exec guard -i‘, so läuft alles wie geschmiert.

Rails3 und MySQL

April 11th, 2011

Und dann war da noch die Sache mit MySQL. Sollte beim Aufruf von rake db:create:all die schnöde Fehlermeldung uninitialized constant Mysql auftauchen, kann Folgendes weiterhelfen:

  • gem uninstall mysql (bei Verwendung von rvm kann auf sudo verzichtet werden)
  • env ARCHFLAGS="-arch i386" gem install mysql2 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

Entscheidend hierbei ist wohl die Verwendung des mysql2 gems.

CoffeeScript für die Hamler

April 11th, 2011

Ich bin ja mehr Sassler, aber dennoch. Was Sass für CSS ist CoffeeScript wohl für JavaScript. Und damit durchaus einen zweiten Blick wert. Schön aufgeräumte Syntax –> schöner Code. Und das ist für uns Ästheten bekanntlich Alles.

Vor die Erleuchtung hat der Herr ja den Schweiß (sprich die Installation) gesetzt und deshalb hier die Anleitung für gern Schmerzbefreite:

  1. homebrew installieren: siehe hier
  2. Node.js via homebrew installieren: brew install node
  3. NODE_PATH ins Profil (.profile) aufnehmen: export NODE_PATH="/usr/local/lib/node/"
  4. Coffee-Script installieren: brew install coffee-script (hat bei mir trotz gegenteiliger Behauptungen V1.0.0 installiert; konnte somit auf npm verzichten)

Und hier noch der Verweis auf das obligatorische TextMate-Bundle. Der Rails-Entwickler sollte noch einen Blick auf das Bistro_Car Gem werfen.

Mac OS X and homebrew

April 11th, 2011

Wie bei allen Dingen, die stark ins System eingreifen, funktionierte bei mir der empfohlene Weg der Installation von ‚homebrew‘ mal wieder nicht. Google sei Dank fand ich (kurz bevor ich alle Haare verlor) diesen wertvollen Link zur einfachen Installation des neuen ‚macports‘ oder ‚fink‘. Ein Befehl in der console und es wuppt! 2 thumbs up to heaven!!! Und hier ist der wertvolle Link.

Kleiner Nachtrag: mkdir /usr/local/Cellar saves lifes!

GIT und TextMate

April 8th, 2011

Einige TextMate-Bundle Commands verwenden git auf der Bash. Dies schlug bei mir (z.B. update Command des cucumber Bundles) mit dem Fehler ‚sh: line 4: git: command not found‚ fehl.

Um auch in den TextMate Bundles GIT verwenden zu können muss man nun unter preferences/advanced/shell variables die Path Variable an seinen Gegebenheiten anpassen (which git sollte dabei helfen). Ich habe einfach den Pfad um usr/local/bin: erweitert. Und siehe da, es lief!

Verschiedene Ruby Versionen parallel installieren

Februar 9th, 2010

Was war das früher für ein Gefrickel! Aber jetzt ist Alles ganz einfach. Sich einfach hier schlau machen.

Rails unter Leopard installieren

April 22nd, 2009

Da kann ich nur auf folgende Seite verweisen, die das wirklich gut abdeckt:

Robby on Rails installiert Rails

Und zur Installation von memcached verweise ich auf:

http://rayvinly.com/articles/2007/11/29/setting-up-ruby-on-rails-with-mysql-on-mac-os-x-10-5-leopard/

Ich steige auf Mac um (ob das wohl gut geht)

April 16th, 2009

Ja, es ist soweit. Heute kamen unsere MacBooks (MacBookPro) und wurden auch gleich aufgebaut und konfiguriert. Die nächsten Tage werden zeigen, ob es einem eingeschworenen Windows-User möglich ist, auch unter Leopard produktiv zu werden. Ich bin  offenen Geistes und willig. Nun zeige Leopard, ob Alles Gold ist, was an dir glänzt!

Java 5.0 – Generics und ihre Tücken

Oktober 28th, 2005

Einmal mehr verschwand ich heute in den Untiefen der neuen Java Tiger Möglichkeiten und verbiss mich an einem Problem, das nicht nur meines sein dürfte.

Soll bei einer parametrisierten Klasse in einer Methode auf Typ-Information (also Parametriesierungs-Informationen; in diesem Fall der Typ-Parameter) zurückgegriffen werden, so ist das schlicht unmöglich, da diese Informationen ja vom Compiler gelöscht werden (type erasure). Etwas rumgoogeln hilft ja bekanntlich (fast) immer weiter und so fand ich diese sehr lehrreiche Seite.
Kurz zusammengefasst: Muss eine Methode einer parametrisierten Klasse auf Typ-Informationen zurückgreifen, so muss diese als Argument übergeben werden. Und hier noch ein Beispiel:


class Test<Typ> {
public String doSomething(Class<Typ> clazz) {
return Other.methodNeedsClass(clazz);
}
}

Anders kann man nicht an die Klasse des Typ-Parameters ‚Typ‘ gelangen. Es wären vielleicht noch Umwege über Reflection möglich, aber davon vielleicht ein andermal.