Matt Condon

Full Stack & iOS Dev · The MVP MVP

Hacking New York

Sunday, August 03, 2014

The presentation was under 3 minutes. Reading this blog post will probably take longer. I’m sorry I got your hopes up.

At Magnetic I built SmartTags with Patrick. If you want to learn more about what Magnetic does, check out this blog post!

We learned us some data science with Hadoop. Hadoop? More like HA-DOPE!

Megagames are Mega Fun

Monday, July 28, 2014

The USA’s First Megagame

… hosted in NYC and organized by hackNY Fellow Shy Ruparel!

WTF is a Megagame?

In general, a megagame is just a large gathering of gamers, all playing the same game. This is a pretty vague definition.

Watch the Skies! is a megagame developed by a British game designer and previously held in Britain. Shy, saw the game and decided to host the first instance of the game in the US.

As you can imagine, this required an absurd amount of planning, incorporating game design, rule modifications, community management, food services, event scheduling and hosting, and more. I’m extremely impressed that Shy and a few other volunteers made the event such a flawless experience.

Watch the Skies!

The gist of Watch the Skies is that there are 8 super powers in world in 2020 and the existence of aliens has been known since the 50’s when governments covered up various extraterrestrial sightings and skirmishes. For the most part, the aliens have kept to themselves.

Except in 2020, a new mysterious force has taken hold of them.

Suddenly, the countries of Earth, each made up of 4-5 human participants, must join together (or not!) to defeat (or help!) the alien menace (alien saviors?).

Suffice to say, there was a lot of cooperation, coordination, secrecy, and backstabbing. It was awesome.

The game map.

Tweaking the Obj-C Runtime

Friday, July 25, 2014

iOS Internals and Runtime Modification

Obj-C Runtime and Message Passing

Objc is runtime-oriented language, meaning a lot of decisions about how to run a program is deferred to when the program is actually run. A good example is that when a method is called, the system determines at runtime whether or not an object responds to that message. Following that, it also decides which method is executed.

Because of this dynamic nature, you can alter a program at runtime and it will “just work” because the compiler doesn’t care about the future existence or non-existence of methods or properties.

Obj-C also uses message passing, effectively equivalent to calling a function attached to an object. The difference is that Obj-C objects can either respond to a message or redirect it to another object, dynamically.

As a side effect, you can send messages to nil and not face repercussions, because the message just isn’t handled by anything.

Every time you “call a method” in Obj-C, you’re actually passing a message to an object that should be able to receive it. Every time a message is passed, the runtime dynamically finds the location of the resulting function in memory in a lookup table and calls the function.

This lets us do some awesome stuff.

Want these posts in your inbox?

Woo hoo! You'll get (infrequent!) emails from me.

Whelp, some of the duct tape holding the internet together broke. Try again?
Only this content (and infrequently!), because that's just how I roll.