Saturday, September 7, 2013

New Blog

I have blogged at christiankienle.blogspot.de since 2009. This has come to an end. From now on I will publish new posts at my new blog at thermal-core.com/Blog . The topics will more or less stay the same.

Go to my new blog

Saturday, August 3, 2013

Introducing OCFWebServer

I am glad to be able to announce OCFWebServer to you.

OCFWebServer is a lightweight, modern and asynchronous HTTP (version 1.1) server written in Objective-C. It was forked from GCDWebServer and modified to fit the needs of Objective-Cloud.com and hopefully other people's needs as well.

OCFWebServer is also the foundation for another framework that will be open source as well shortly.

Happy coding.

Thursday, July 4, 2013

Why I am not validating Mac App Store Receipts

When someone buys one of your apps in the Mac App Store you can check a receipt using cryptography to make sure it has been paid for. I am not doing this. I never have. I never will. Why? Because I am still traumatized and excited from childhood experiences. Here is what happened:

As kids, my brother and myself enjoyed playing a video game called "The Settlers". It was a game where you slowly built your own settlement. You could build farms, mine gold, coal and ore and combine your goods to make new stuff.


Source: Wikipedia

At some point the next major version of "The Settlers" came out. It cost a lot. My brother and myself had to save up weeks of our weekly allowance to get enough money. After a couple of weeks saving every penny we finally were able to buy The Settlers 3. The gameplay was great. The story was great. But there was a problem…

In order to expand you sometimes have to fight AI enemies with your own warriors. You create new warriors by combining coal, ore and gold. You use the coal and ore to build new weapons. Your settlers are then equipped with those weapons and turn into warriors. At least in theory. That is what the manual said. That is what common sense dictates. The problem was that our forges produced meat instead of swords. Meat was the last thing we needed in order to build an army.

WE WANTED TO GO TO WAR!

We spent weeks if not months and tried to work around this problem. There must be another way to get weapons. We must have done something wrong. Maybe we needed more gold? Maybe we had to produce a certain amount of meat before the forge finally realized that it was time for war. Maybe we had to burn the forge down a couple of times to make the blacksmith angry so that he produces weapons instead of meat.

We had no luck. All of our attempts to fix the meat issue failed. We gave up because we were not able to really play this game. Without expanding to new territory you ran out of resources quite quickly. And without weapons there was no efficient was to fight your enemies. My brother and myself thought that the meat issue was just a bug. At that time there was no internet for us: No updates. So we went back to do other things.

Years later we found out that the meat issue was indeed a bug but not a bug in the actual game. It was a bug in the copy protection. The Settlers 3 was one of the first games that had a copy protection. It was a special kind of copy protection: If the game thought you had not bought it then nothing special would happen at first. It would still be playable but in a special mode. In this mode coal and ore turned into meat and trees never grew back which made the game unplayable in the mid and end game.

This happened to a lot of people. The copy protection was pretty buggy in that it hit the wrong people: People who bought the game for money. People like my brother and myself.

Now you know why I am still traumatized by copy protection. You never want this to happen to anybody.

But wait: There is more to it.

At some point my brother and myself got a new computer. A friend gave us a copy of a game called StarCraft I but he forgot to give us the serial number for the game.

I have to mention that at it is legal to do that in Germany. Even if he had given us the serial number it would still have been legal to do so - at least to my knowledge.



When you start StarCraft I it plays a nice sound effect and shows a nice intro. This made us very excited. But then the game asked us for a serial key. We had none! Out of frustration I entered a number in the serial number text field:

123-456-789-012-3

Something like that. AND IT WORKED!

We played StarCraft I for months! It was the best game we have ever played. We fought against each other.

WE FINALLY HAD OUR WAR! WITH NUKES! WITH BATTLE CRUISERS. WITH CARRIERS. IT WAS GREAT! 

Years later, StarCraft II came out. Because of that great experience (and because I like to pay for software/games) I bought many copies of StarCraft II: For myself, for my brother and for friends. Today I am a huge StarCraft II fanboy. I am watching tournaments and I pay casters to get access to good commentary. The experience would be even better if Blizzard had decided to relax the copy protection for StarCraft II. The fact that they have a strong copy protection in place may weaken my point but the fact is: I bought StarCraft II not because it has strong copy protection but because I had a good experience with it in the past.

Copy protection can really be bad for your business and make children unhappy and avoid your company for the next 60 years.

Monday, June 10, 2013

Xcode productivity tip: Jump to the next issue

A couple of weeks ago I began to use a feature of Xcode that improved my productivity quite a lot. For some of you this feature may be old news. To be honest: It was old news for me as well. I knew about this feature but I never used it because I could not believe that it was that useful.

Quickly jumping to the next issue

There is a keyboard shortcut in Xcode which let's you jump to the next issue (warning or error). The default shortcut for this is ⌘'. This is extremely handy - especially if you have a "zero-warning policy" because then every issue is worth fixing immediately: You won't jump to an issue which you can fix later or which is not really an issue.

I decided to assign the "Jump to Next Issue" command a simple shortcut just to make things easier for me. Because I have a German keyboard i am using ⌘Ä to jump to the next issue and ⌘Ö to jump to the previous issue.

Update:
You may have to restart Xcode for the new key bindings to take effect.

Thursday, May 23, 2013

Core Data Editor and RestKit

Lasse Moos, a user of Core Data Editor, contacted me because when he tried to use Core Data Editor all he got was this:

(The managed object model version used to open the persistent store is incompatible with the one that was used to create the persistent store.)

We wrote back and forth but with no success. Luckily Lasse agreed to share his screen with me. In that session I had access to his Xcode project and was able to look at the issue first hand. At some point he mentioned that he is using RestKit in this project. When I first had a look at RestKit when it came out I knew that this framework was not made for me. But this is a totally different story. What I did not know about RestKit is that RestKit seems to modify the managed object model at runtime to do it's magic. This is a problem for Core Data Editor because the managed object model of your store file has to match the version of your model which is inside your app bundle.

I know that many people around the globe are using RestKit and I will try to offer some kind of workaround although I don't want to support RestKit in any way. :)

I am glad to finally know why a relatively large user base has problems with Core Data Editor. Thank you Lasse.

Monday, May 28, 2012

Flashcards Pro for iPad released

It was a long journey but I am pleased to announce that Flashcards Pro for iPad is now available in the App Store. Flashcards Pro is beautiful and easy to use application, that helps you learn new things quickly and efficiently. Here is a short video I made that should give you a good impression:



Over the next several months the iPad application will become a universal application that also runs on your iPhone and iPod Touch. The Mac application will also get a major update. The plan is to enable iCloud as soon the Mac application has been updated or the iPad app became universal. If you have feedback please send it directly to me via email.

Saturday, April 21, 2012

Flashcards for iPad: Status

Flashcards for iPad is doing well. The beta test has started approximately one week ago. Flashcards for iPad is more or less feature complete and with the help of the beta testers I am able to work out the rough edges. Once Flashcards for iPad has been released I will work on a major new version of Flashcards for Mac in order to enable iCloud syncing.