Monumental Valley

Monumental Valey normally speaking I don't really like gaming on the iPad. call me old fashioned but I like a controller with some physical buttons on it. To me even PC gaming is somewhat off because of the keyboard and mouse1. That said there are games that fit the platform so good that I can fully enjoy them without filling handicapped by the lack of a controller. Monumental Valley is such a game. Inspired by Asher drawings the game utilizes impossible geometrics to make some interesting puzzles. You are guiding Ida, a princess through the impossible geometric world manipulating it to make paths for her to walk. The graphics are stylized and beautiful. The game is challenging, if somewhat short (It took me a little over an hour to finish). if you enjoy puzzles and some dimensional thinking you should definitely pick this one up.

  1. I know it is better in absolute terms. I just prefer a controller. 

Dispatch App

Managing my email is not something I am good at. I have way to many email addresses I need to check several time a day and they all have way to full an inbox.

Last year I tried twice to remain at inbox zero, and twice I have failed. If things didn't work well with the desktop mail apps, i wanted to try iOS apps to manage my mail. I tried both boxer and triage. Both looked promising on paper but just didn't work for me. Boxer had all the making of a great mail app, but I already had a todo app and a reminder app. Using a different one for my mail was really not helpful. I pretty much gave up on keeping my email organised.

Then along came dispatch. I have been using dispatch for a week now it works perfectly for me. I can swipe to easily archive or delete. I can send emails to Things, create reminders, send texts to drafts and create calendar events. All that I need. Dispatch has finally made it possible for me to quickly and easily process my email and get data from the email message to where I need it to be. After purchasing it, I had within 1 hour arranged all my email and have been able to keep everything clear since.

I am sold.

NSXMLParser and error code 4

Today I had one of the strangest bugs I have seen to date. I am working on an iOS app that does  a lot of communication with a web app api. the communication is done via XML. Since the web app requires autherntication, I am useing specific requests and placing the response xml in a string.

NSXMLParser requires a NSData object to init with data. Following the conversion cod eI found on Apple's site I did the following:

NSData *xmlData = [NSData dataWithBytes:[xml dataUsingEncoding:NSUTF8StringEncoding] length:[xml lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];

Passing the xmlData through to the parser ended in me getting an error 4, which means document empty. I tried everything. Printed out the xml string to see it was full, compared length of data and string, releasing the parser. Still error 4. For the heck of it I tried giving the parser a nil for data. That gave an error 5. Trying to give an empty NSData object also gave error code 4. After 3 hours spent in google and stack overflow I was not even a small step further.

I really didn't know what to do when, while scanning all these pages I saw a piece of code of converting the string to data without giving the length. for the heck of it I decided to try this:

NSData* xmlData = [xml dataUsingEncoding:NSUTF8StringEncoding];

What do you know it worked. No idea why. Naturally. I wanted to know what the length of the data object was now. I was fully expecting it to be bigger than original. To my surprise it was the same length as the string. The same length I was giving it in the first call.

Why this now wrks I have no idea. The first and the second calls should give the same results, yet somehow they don't. If you got this problem, then converting without giving the function a length. Good luck and happy programming.