who am I?

An ambitious code monkey, mobile app developer, fanboy to none, college student. Director of Development at  (pnotion.com)

where am I?

Memphis, Tennessee, USA

find me on:

Tuesday
Jan242012

FIX: Broken autocomplete / CodeSense in Xcode 4

Xcode 4 has proved somewhat in day-to-day use to be a questional improvement over Xcode 3. No other bug has reduced my productivity more than this dreaded one: all of the sudden, the autocomplete / CodeSense would stop working completely, falling back to only suggesting random, machine-parsed and cached text. 

Who knew UITableViewCells had a nil property?

Restarting, reinstalling Xcode, cleaning and rebuilding all did not work. But here’s a fix to this bug, at least until it happens again in your project.

1) Select your project from the sidebar to open project properties.

2) Select the Project and then Build Settings. Scroll down to “Build Options” to “Compiler for C/C++/Objective-C.”

Select another compiler beside the current. Build your project (ignore any errors and warnings that appear in your project.) Immediately change back to LLVM 3.0 and build. 

When you return to your code and start typing, autocomplete / CodeSense will work again!

 

Wednesday
Jan042012

Midnight City - M83

What an awesome song.

Wednesday
Oct052011

Is the University System Broken?

As a computer science “major” at my university, I often find myself focusing far more time on my non-computer science related studies than my computer science studies. Since computer science topics come naturally to me, these extraneous studies make it very difficult to delve deeper into topics I’m actually interested in.

The university system encourages exploration. That’s fantastic. Yet today, the drumbeat of “everyone goes to college” is damanging. It sets many up for failure; those who would be better suited to tech school end up finding academia difficult. College dropout rates are very telling of the failure of the message; its also proven by companies like Apple who say they can’t find enough skilled workers in the US.

Sunday
Aug282011

A few lessons I've learned in software development

Nothing Earth shattering here, but nevertheless, some things I have learned:

1) Murphy’s law is real and always in force: “Anything that can go wrong will go wrong”

Any environment that software runs in is chaotic. More often than not you’re guaranteed nothing. You can debug all you want on your devices, but once you release software, expect many bugs that you’ll have fun correcting. Don’t make it think you’re a terrible programmer; as they say, shit happens. Read the API/framework documentation: they have plenty to say.

2) Clean seperation of components is vital to your productivity.

As an amateur programmer, it’s so very easy to end up with lots of code that’s tangled and highly reliant on itself — “spaghetti code”. This is okay while you’re learning. Object-oriented concepts are key to breaking down complexity, redundancy, and cranking down maintainence time and effort. 

Saturday
Aug202011

Democratization of the App

So, app stores are no longer a new technology. Apple’s App Store and the Android Market opened for business in 2008. They’ve proven to be cash cows for organizations and developers alike.

I was listening to both the this is my next podcast (from this is my next) and Windows Weekly (a great podcast on the TWiT network) where they both discussed new Nokia devices. One of these devices was beautiful, and run by MeeGo.

The new MeeGo phone looks awesome. But, unfortunately, MeeGo has already been deprecated by Nokia in favor of Windows Phone 7. Dead on arrival. So it will have no good apps. A similar situation with the Palm OS. There are very few good apps on smaller platforms for obvious reasons. Plus, OS developers tightly control the app store experience, and at a whim, can jack up their cut of the proceeds or render your app useless through rejection.

This got me thinking. Why not take the Java strategy of “Write once, run anywhere” to the app ecosystem? It benefits developers and consumers.

Consumers can buy any device they like, provided the OSes are HTML5 compliant.
Developers can write once and deploy anywhere. Both won’t be forced to remain inside the restrictive – even manipulative – silo’d ecosystems of Apple, Android, or Windows Phone 7.

I envision app stores based entirely on the web, allowing access from any device with any OS the monetization of apps. Provided HTML5 includes standardized APIs for advanced device access, of course.

Let me be sure to say that HTML5 has been made out in the tech media to be the savior of the Web. It is still in its infancy. While it still lacks in features that make it usable by content providers — like no ad serving for videos and digital rights concerns — it has been shown that web apps can match the functionality of native apps 70% of the time. With the maturation of graphics standards like WebGL and advanced APIs, that reach could be 95%. WebGL is particularly interesting because it allows scripts – not compiled code – to access the raw graphics processing power of the GPU.

Anyway,

What improvements need to be made to HTML5:
1) Standardized APIs for access to camera, gyroscope, and other hardware components on mobile devices.
2) Safety concerns around WebGL should be addressed.
What developers need to do:
1) Make Javascript libraries for DRM and ad serving for videos. (Developers: You could make a mint selling this to content providers.)
2) Make compelling web apps. If Angry Birds can make a carbon copy of a native app, anyone can.
What web app stores need to do:
1) Provide organizations and developers the ability to monetize web apps.
2) Curate. People enjoy a human touch. Visibility is a major problem in any app store. Today’s app stores are warehouses, not museums.
What mobile OSes need to do:
1) Adhere strongly to HTML5 standards. Many OSes do at the moment, and support for full HTML5 APIs will increase over the coming months.
2) Make the hardware competitive again. You can keep selling media, etc., but hardware should be the main focus. Apps are no longer a killer feature — they are just as commonplace as the web now.

Those are no easy tasks, but many of them are being undertaken.

This will upset the current app ecosystems, but who’s to say it would be a bad thing? Democratization of media through social networking has proven to be good. Why not democratization of the app?