Posts

The 3 Skills You Need to Build in Your Programming Students

No matter what platform or language you’re teaching, it can seem like a daunting task. I teach iOS to beginners, and it’s a lot to take in. There’s the language, the programming logic, platform conventions, all the libraries. That’s a lot of things to cover, and it can seem overwhelming.

Read full post...

Echelon 2014

Read full post...

Day 4: Less

On Day 4, I try out Less.

Read full post...

Day 3: CSS animations

On Day 3, I play with CSS animations.

Read full post...

Day 2: Underscore.js

On Day 2, I tackle Underscore.js.

Read full post...

Day 1: jQuery

On Day 1 of the 30 Day Challenge, I tackle jQuery, the Javascript library.

Read full post...

30 Technologies in 30 Days

THIS. IS. JAVASCRIPT.

THIS. IS. JAVASCRIPT.

Read full post...

Playing with the Leap Motion controller

I've been wanting to play around with the Leap Motion controller, and the recent Codeaholics hackathon was perfect for it. We got a full weekend to mess around with the device and SDK. The 42labs also had a number of other cool toys like the Oculus Rift and the Sphero.

Read full post...

WIDS 2014 - Part 3

Day two of the conference was held at the other big startup/tech campus, the Science Park. Getting there was three trains and a bus away, so that was a bit of a bummer. The "Getting Here" section of their site says they are "strategically located in the middle of Hong Kong". No, Science Park. You are not in the center. Yes, if we dug up all the soil in Hong Kong you'd be near the center of gravity, but the people live over there. That's like Hastings, Nebraska billing itself as "Strategically equidistant from both New York and San Francisco".

Read full post...

WIDS 2014 - Part 2

Maxime Bélanger's talk was one of my favourite from the conference. The talk was primarily about how Dropbox hacked the OS X Finder to display the classic syncing overlays on top of file icons. The level of modification is pretty insane, and I was quite surprised the extent to which Dropbox messes with the Finder. The core idea is to write low level Darwin code that gets a foreign process (the Finder process) to run code from a custom memory location you have allocated. This allows you to run a bit of bootstrap code which you can use to link against an actual dynamic library. At this point, you can finally start working with the Objective-C runtime, and swap out the implementation of Finder methods with your own method. Dropbox uses this trick to add the syncing state to the file data, as well as swap the built-in icon rendering method with their own.

Read full post...

WIDS 2014 - Part 1

I can mark "attending a conference" off my todo list now. There are an increasing number of monthly dev meetups in Hong Kong, but WIDS (the World Internet Developer Summit) is the only conference. Sure, the name's a bit bombastic and it sounds like a Justice League of developers coming together to save the Internet, but it's a proper conference! Speakers from big name companies! Multiple tracks! A name tag!

Read full post...

Testing webpages on mobile devices using SimpleHTTPServer

When developing websites, you usually want to test it out on a mobile device. Resizing your desktop browser gives you an idea of the way the layout changes, but you'll usually find subtle differences in layout and scrolling when you try it out on your phone.

Read full post...

Creating Xamarin.iOS bindings for a native library

This past week I've been checking out Appsee, a cool app user analytics tool. The app I'm integrating this into is built using Xamarin.iOS, which Appsee doesn't support out of the box. This means creating a C# binding for the Appsee static library. I got it working after some Googling, and I thought I'd put together a post documenting the process.

Read full post...