Posts
Clash of the Coders 2013: Winners Announced
(Author: Tasha Schroeder)
We recently held our second annual Clash of the Coders, a 72-hour app-building marathon where we test our technical prowess and compete for glory. “The winners are dangerously capable,” as Chief Learning Officer Aaron Hillegass says.
It was a very tough call, but Raisin’ Elevens was the top team, with a project they named Krëndler. Team members Mark Dalrymple, Gregg Rothmeier and Steve Sparks took home the trophy and some pretty sweet prizes.
read morePosts
Static Cling
I was hanging out on the #macdev IRC channel on Freenode the other day when someone asked a question: “static has different meanings based on the context it is placed in, right?”. Indeed, it has different meaning. And yet it’s the same. Static is a C Koan.
An Ice Cream Koan static controls scope, which is the visibility of an entity. It tells the compiler “Here is this thing that I’m using, but don’t let anyone else know about it.
read morePosts
Spelunkhead
You can find all sorts of interesting and useful stuff in Apple’s header files. Don’t be afraid to explore them. I usually troll through the headers when a new major SDK version comes out (like IOS 7 probably will be this year) to see what’s new. I also use them for API exploration. As always, when in doubt be sure to read the official documentation. Apple’s documentation is good. It’s also voluminous.
read morePosts
Experimentially Yours
One of the realities in programming these days is job mobility. You end up working at different companies on different projects with different people. And they all have different ways of working, individually and with each other. You can focus on the negative (oh my, yet another style guide and work logging procedure) or look for the bright side. I try to focus on the positive, and try to pick up good habits when I’m on a job.
read morePosts
You Need Source Code Control Now
(2024 update: I’m SO happy that source code control, especially git via github, is ubiquitous, and pretty much table-stakes these days. Saving this blogpost to give a bit of historical perspective)
If you’re already using source code control, you totally rock. You can skip this posting if you wish, but check out Off-Site Backups before you go.
I’ve been a professional software developer (meaning I’ve fooled folks in the paying me money to let me program for them) for the last two three decades or so, and I have always used a source code control system.
read morePosts
Tiny Programs the Atomic Edition
Readers of this blog might notice a pattern in my postings. They’re occasionally accompanied by a small program to demonstrate some interesting point.
Much of the sample code in Advanced Mac OS X Programming : The Big Nerd Ranch Guide are in a similar form: a small stand-alone program that demonstrates some isolated bit of functionality.
I love small little programs. They’re not just a pedagogical tool (even though they’re great for that).
read morePosts
Peek a View
When I’m developing new code, my usual habit is to do a lot of small iterations. That gives me a little bit of success fairly often. I’m not as happy if I have to work for a long time until I can see something appearing on the screen. (plus I enjoy the little dopamine hits every time I get something tiny working)
When I’m writing a new NS- or UI-view, I often write a pretty generic -drawRect: so that I ca see that I’m actually drawing something on the screen:
read morePosts
A Bit on Warnings
I like warnings. I really do. It reminds me that the compiler loves me and is looking out for me. (OK, the compiler at least tolerates me.)
What is a warning? It’s when the compiler notices that you’re doing something that might not be what you really intend. The compiler’s job, ultimately, is to do exactly what you tell it to do. But we’re talking slabs of meat instead of computational machines, we make mistakes.
read morePosts
Bool's Sharp Corners
Update October 2013 – On 64-bit iOS (device and simulator) BOOL is now actually bool, so the sharp corners have thankfully gone away for that platform. For everything else, though…
Objective-C is actually a pretty old language, dating back from from the mid eighties. As such, it’s got some sharp corners here and there due to limitations of early C. Today’s sharp corner is BOOL.
BOOL seems innocuous enough. It holds a boolean value.
read morePosts
Logs Is Logs
Sometimes the simplest suggestions become the most powerful. Back in my first job, my VP of Engineering (Jeff Barr, now AWS über-evangelist at Amazon) told me that he kept a simple text file of what he did over the course of a day. It’s just a quick activity log, without a lot of extra hooplah and gadgetry. I gave a try, and sure enough it’s proven to be a hugely powerful tool.
read more