iTunes sharing over VPN

If your are one of those people who have VPN access to their home IT infrastructure you may have wonder why iTunes sharing does not work while connected the the VPN. This is due to a limitation of VPN which does not forward any broad/multicast messages. But there is help! With the tool Network Beacon you are able to send self created beacons over the VPN connection to a remote device. I’ve tried it, and its working like a charm !

Tagged: , , , ,

Das Ding mit den eBooks

20110612-125900.jpg

Immer wie mehr kaufe ich Bücher, bis jetzt jedoch nur technische, im eBook Format. Ich hab das Buch auf all meinen mobilen Geräten immer dabei, kann nach Stichworten suchen und natürlich auch Abschnitte markieren und kommentieren. Ich bin überzeugt, dass sich mein Bücherregel immer wie mehr vernachlässigt vorkommen wird. Einzig, das Ding mit den Lesezeichen hab ich noch nicht so ganz begriffen ;)

Apple hat es leider bis jetzt noch nicht hingekriegt mit dem iBook Store in der Schweiz. Aus diesem Grund schneiden sich meine Finger am virtuellen Papier aus Büchern aus Amazons Kindle Store. Apple wird es nicht leicht haben, wenn sie irgendwann doch noch mit dem iBook Store kommen, da sich Bücher aus dem Kindle Store wohl nicht transferieren lassen werden.

Tagged: , ,

Erster Post mit BlogIt

Dies ist der erste Post mit der neuen iPhone App BlogIt!

Working with XML in Objective-C on iOS

If you are an iOS coder you probably know, there is no XML Framework like XMLDocument for OSX applications. You just have an XMLParser object which is everything else than funny! There are a lot of 3th Party classes for working with XML (just reading or read and write). I’ve tested some of them. They are often very tricky to integrate or not feature complete. For example missing XPath maks your Life with XML hard…

The way to go is TouchXML! This Framework works like a charm! Using this introduction for installing the Framework to your project, lets you use XML data within seconds.

Tagged: , ,

iOS 4.3 direct download links

For all those who woke up this morning and recognized, that their iPhone Beta OS has been expired and iTunes still says: “dude, you’r up 2 date” here are the direct download links:

Tagged: ,

Mein Bruder heiratet

Tja, tatsächlich… Mein grosser Bruder (um genau zu sein 7 Jahre grösser) heiratet. Selbstverständlich gehört zu diesem Ereignis eine entsprechende Website. Corinna und Stefan haben diese von mir erhalten.

http://corinnastefan.ch

Ich wünsche euch Beiden viel Spass damit :)

Tagged: , , ,

XCode und Objective-C 2.0

Ich denke es ist mal an der Zeit meine Eindrück, über die Welt der Entwicklung, aus Apples Auge, ein paar Worte zu verlieren. Im Rahmen meiner Weiterbildung beschäftige ich mich seit 1.5 Jahren mit C/C++. Java habe ich in den letzten Jahren auch programmiert, jedoch sehr wenig. Die meisten Zeilen Code habe ich in PHP und Perl geschrieben – bis jetzt.

Seit nun etwas mehr als 6 Monaten programmiere ich immer wieder etwas in Objective-C. Das Resultat sind zahlreiche Codeschnippsel welche in einem Verzeichnis “Experimente” in meinem Subversion Repository liegen. Effektiv ist eine iPhone App einen kurzen Schritt vor seiner Vollendung.
Der Anfang in Objective-C war steinig, verwirrend und meine Kopfhaut war anfänglich ziemlich wund vom vielen Kratzen. Der Syntax und Aufbau des Codes lässt sich schwer mit dem von C++ vergleichen. Nach langem schwertun wurde mir auch bewusst, dass es komplett falsch ist, diese beiden Sprach miteinander zu vergleichen! Objective-C hat seinen Ursprung schliesslich auch nicht in C++ sondern in C. Alles bereits vorhandene Programmierwissen ausgeblendet, startete ich einen zweiten Versuch mit der Sprache klar zu kommen. Es funktionierte!

Objective-C ist eine “menschenfreundliche” Programmiersprache. Sich ständig wiederholende Methoden, wie z.b. Setter/Getter Methoden wurden komplett vereinfacht. Hier sei angemerkt, dass ich nur von Objective-C 2 spreche!
Was ein C++ oder Java Programmierer unter Interfaces verstehen würde sind bei Apples Sprache Protokolle. Diese sind als Vertrag mit dem Programmierer zu verstehen. Ein Protokoll definiert Methoden die zwingend und solche die optional implementiert werden müssen resp. können. Hält sich der Entwickler nicht daran wird er sich mit dem Compiler in die Haare kriegen.
Wesentlich anderst ist der Aufruf von Methoden einer Klasse. Diese werden übrigens nicht mehr strikt in public, private,protected, virtual kategorisiert. Vielmehr unterscheidet man unter Instanz- und Statischen Methoden. Die Parameter einer Methode werden zwingend beschrieben. Dies macht den Code für den Menschen lesbar, als würde er einen Satz lesen.

[APIObjekt sendeAnfrage:anfrage anUrl:url];

Wobei “sendeAnfrage” und “anUrl” keinen Einfluss auf den Code haben. Sie beschreiben ausschliesslich den Methodenaufruf resp. dessen Parameter.

Bemerkenswert ist auch die gewonnene Dynamik dank den Selektoren. Mit diesen können Nachrichten, so werden Methodenaufrufe genannt, an Klassen verschickt werden. Sprich, eine Methode dynamisch aufgerufen werden. Wobei auch erst überprüft werden kann ob die entsprechende Klasse überhaupt auf diese Nachricht antworten kann.
Ebenfalls möchte ich an diesem Punkt noch die Kategorien erwähnen. Angenommen der String Klasse von Cocoa fehlt eine tolle Funktion die ich meinem Programm nutzen möchte, musste ich bis jetzt diese Klasse spezifizieren und dann diese in meinem Code verwenden. Im schlimmsten Fall würde dies bedeuten, dass ich tausende von Codezeilen durchsuchen und meine Klasse anstelle der alten einsetzen müsste. Mit Kategorien kann ich neue Methoden zu bestehenden Klassen anghängen. Somit sind diese Methoden ohne erbrechtliche Geschichten überall in meinem Code vorhanden. Cool, nicht?

Programmieren in Objective-C bedeutet Spass! Schönen Code zu schreiben wird somit einiges einfacher. Nun zur Schattenseite… Ja, es gibt tatsächlich eine!
Speichermanagement wird GROSS geschrieben in Objective-C. Es gibt drei Möglichkeiten seinen Arbeitsspeicher sauber zu halten.

  • Manuelles aufräumen des Speichers
  • Autoreleasepools, welche die Objekte anhand ihres internen Zählers eliminieren.
  • Garbage-Collection

Letzteres wird von den eingefleischten Apple Entwicklern verteufelt zudem gibt es in den iOS Geräten kein GC! Wird beim programmieren nicht äusserst sorgfältig auf den Speicher aufgepasst, beisst einem sein eigenes Programm ganz sicher bald in den Allerwertesten! Ist es soweit, und bei jedem wird dies der Fall sein, greift man gerne auf die Analyse Tools von XCode zurück!

Fazit: Objective-C 2.0 hat einiges vom Zauberstaub der Zukunftsfee abgekriegt! Aber einfach so mal Objective-C lernen ist nicht… Dafür ist die Sprache zu komplex! Hat man sich mit der Sprache angefreundet findet man schnell gefallen an Apples Cocoa Framework. Dieses bietet für – fast – alle Situation einen schnuckelige Klasse bereit. Leider sind diese wirklich zum teil nur schnuckelig. Fehlende Methoden für z.b. Base64 Encoding, HMAC Verschlüsselung und fehlende API Klassen für XML-RPC und REST-API, verhindern eine innige, heisse Beziehung mit Cocoa!
Glücklicherweise findet man im Internet viele fertige Klassen, die dieses Defizit irgendwie, mit viel Klebeband, aufheben.
Noch ein letztes Wort zur Entwicklungsumgebung XCode. Jeder, der mit der Version 3.x gearbeitet hat und die Version 4 gesehen hat, wird mir recht geben, dass die Aktuelle Version (3.irgendwas) mit einem Sportwagen mit Slicks im Regen zu vergleichen ist. Das Teil schleudert und man verliert schnell den überblick und streift mal eine Leitplanke! XCode 4 hingegen, fühlt sich eher wie ein britischer Sportwagen mit einer angemessenen Bereifung an! Die nahtlos integrierten Versionierungs Hilfsmittel lassen jeden Entwickler entspannt arbeiten!

Tagged: , ,

Fehler auf der Website gefunden?

Für Alle unter euch, die Fehler auf der Webseite finden, und mir diese unbedingt mitteilen wollen (gewisse Arbeitskollen verspüren tatsächlich diesen Drang), können dies hier http://redmine.local.zero-one.ch/projects/tspycher-com tun.

Nachtrag:

Oukay, war das wirklich eine gute Idee mit dem Bugtracker?!?!

Apple, nicht nur geile Produkte…

thoughts

Der Akku des über 3 Jahre alten Macbooks meines Vaters ist regelrecht explodiert. Garantie hatte das Teil auch nur total 1 Jahr. Von dieser ist im Normalfall der Akku ausgeschlossen.

Tagged: , ,

Club der Denker::Mitglieder gesucht

Wie kann man ohne grossen Aufwand äusserst schnell zu viel Geld kommen? Ok, diese Frage hat sich sicherlich schon jeder gestellt. Thomas Maurer, guter Arbeitskollege, und ich haben schon oft bei Kaffe oder Redbull darüber diskutiert. Ideen kommen viele, jedoch sind ein sehr grosser Teil davon alles andere als realistisch. ;-) Nun stellt sich aber die Frage, was passieren würde wenn man diese Diskussion etwas organisieren würde? Was würde passieren wenn man diese Ideen strukturieren und polieren würde?

Tagged: , , ,
Page 1 of 212