Constraints, Chunking and Confidence

Over the weekend, I learned a new tech, and wrote a simple game that runs in a web browser. I used cocos2d-x. In the past, I had done plenty of cocos2d-iphone/swift which has some API similarities. However, with cocos2d-x you code in c++/javascript/lua instead of an iOS ...


Continue reading →

Great Software Teams IMHO

As I am starting to look for my next opportunity, I have been chatting with people and thinking a lot about what makes a great team, because, hey call me crazy, but I want to work on a great team! Aside, a projection. A method without a name. A mixture ...


Continue reading →

Xcode Behaviors for fun and profit

Xcode has some great features that can easily slip by you. Recently I took the time to really take advantage of Xcode Behaviors. Xcode Behaviors allow you to set up a user-defined sequence of events that should happen in reaction to various system events like building an app, executing the ...


Continue reading →

Swift conciseness through functional programming and sleep (Part 2)

I wrote a post earlier which outlined the thought process I went through while slimming down some code in the KeySmash toy project. Make sure you read Part 1 first. I received several great pieces of feedback about that blog post which inspired some thoughts on making the code better ...


Continue reading →

Swift conciseness through operators, extensions, and unnamed arguments (Part 1)

In a toy project, I had the need to intercept all external keyboard keypresses. Something I am always trying to keep a critical eye on when coding in swift is 'Have I made this as concise as possible without sacrificing readability in the name of cleverness/magic/etc? I want ...


Continue reading →

Evolving Swift

When people ask me what I think of the swift programming language, the main thing I think of is hope. For so long, Apple has been on a kind of island in regards to advances in programming languages. It's the nature of something closed to re-enforce it's own tendencies and ...


Continue reading →