Thursday, November 3, 2011

Using Xcode 4.2 with iOS 3.x

It had been a while since testing on an iOS 3.1 device, or even an ARM6 device. Being that I had since switched to Xcode 4.2 and LLVM, everything was broken. It seemed by "fixing" one issue, I was causing another. It all started when I could not run my app on an Arm6 device...

Problem #1: ARMv7 has become a default

Depending on what you read there are a few solutions, but I found what worked the best was to make sure the 'Architectures' build settings look like this:


Note: 'Build Active Architecture Only' is set to 'NO' and 'armv6' was added to 'Architectures'. Great, but this will cause...

Problem #2: Crash on iOS 3.1.3

Something like: Symbol not found: __NSConcreteStackBlock

Adding a linker flag will do the trick, see here: Solution on Stack Overflow

This will in turn cause....

Problem #3: Crash in Simulator on Game Center Authenticate

Luckily we do not need our new linker flag for the simulator so we can make the flag conditional - excluded from simulator builds - as seen here:



Problem #4: Proper Architecture Conditional Build Settings

I am not 100% certain on this, but I don't feel the need to be. If you set conditional build settings on arch. (eg, THUMB, or Preprocessor Macros), the ARMv7 one will be ignored. So if you have a macro set up like so (pardon the formatting, Blogger's editor really is terrible):

> Preprocessor Macros
-Debug : MACRO1
----Armv7 : Arch MACRO2
----Armv6 : Arch MACRO3

On an Arm6 Device only MACRO3 will be defined (as expected), but on an Arm7 device, only MACRO1 will be defined. That is my current experience anyway. So use caution.

Sunday, October 16, 2011

App Engine: Switched to Python 2.7 + HRD

I just transitioned 100% of Zombie Highway's traffic from the old app to the new shiny one running Python 2.7 with concurrent requests, all running (by requirement) on the high replication data store.

One error that cropped up moving to the webapp2 framework:
File "/base/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 129, in _StartResponse     raise InvalidResponseError('headers must be str') InvalidResponseError: headers must be str

This was caused by my redirects which were using unicode strings. I simply had to wrap the URL in a str() and all was fine. (to be clear: self.redirect(str([URL])))

Stay tuned for more data on the effect of concurrency and the HRD.

Wednesday, October 20, 2010

Tuesday, October 19, 2010

Andy Rubin Responds to Steve Jobs - Proves His Point

Here is the link to Andy Rubin's (VP in charge of Android) tweet in response to Steve Jobs' earnings call rant, in part, about Android:


Sigh. The entire purpose of Steve Jobs' rant was to point out that, in the end, what matters is what users want. He fairly states that some people will want Apple's integrated approach and others will want Android's "fragmented" approach. "Fragmented" is Steve's half-truth redefinition of "open".

Rubin's response? UNIX commands to check out and build Android!?! Steve just said they are going for users that don't care about that! He thinks they care about having a great phone and a ton of apps.

Tip for Andy: Next time, tweet about an advantage of your system because it is open, not simply state with UNIX commands that it is open in one sense of the word.




Wednesday, October 13, 2010

Social vs AAA Gaming - Oversimplified

An editorial over at Gamasutra that attempts to tackle the animosity between the Social and AAA gaming camp:

http://www.gamasutra.com/view/news/30587/Analysis_In_An_Era_Of_Anguish_Game_Design_Searches_For_Its_Soul.php

The article touches on several issues related to this conflict, but I only carry (strong) opinions on one:

I take no issue with "social games" - in fact, I find them to be quite fun. What I take issue with, and what this well written editorial doesn't address, is to what end the "social" aspects of a game are engineered.

In my mind, many of the big social games (Farmville, etc) do not use their social features to enhance gameplay or to add emotion to a narrative. Instead, they use the their social features to drive emotional (real or perceived) purchases. This especially concerns me when children are the customers.

If the social features of a game, simply enhance the story, improve virality, or reduce turnover - you'll hear nothing but praise from me.

Friday, July 16, 2010

iPhone 4 Presser

CNN always finds the "best" quotes:
"From a customer's point of view, this is a really unsatisfying response, because a lot of people feel like the bumper cases -- or cases of any kind -- are just not that pretty," said Dylan Tweney, an editor at Wired.com. "They definitely make the phone look less attractive than it does by itself."
So, let me get this straight, the problem is that the design of the phone is causing the issue (according to much of the press), but the solution to the problem - which is to change the design - is not acceptable? While the bumpers might not represent the most attractive possible solution, I doubt Apple will be able to solve this "problem" without taking away from the elegance of the phone.

But I feel like I'm just pouring fuel on the fire. Want a solution that allows you to enjoy your phone and not detract from the design? Just use the phone as is... because for 99% of the users that are quietly enjoying their awesome new phone - it works just fine.