Programming
-

A Brief Rant about TDD
→: A Brief Rant about TDDI’ve been giving this talk about unit testing UI code lately and of course when you talk about testing, TDD (test driven development) keeps coming up. The question ranges from “have you embraced TDD as the One True Way Of Testing, and if not why not because you’re doing it wrong” and “I have heard that…
-

Over-Engineering Culture, Hacking, and Complexity
→: Over-Engineering Culture, Hacking, and ComplexityI was talking to a fellow escapee of The Conglomerate and we were talking about over-engineering culture. In the sense of “lol things built because it was time for someone to get promoted” and in the sense of complexity. The thing about layers and layers of (debatably necessary) abstractions is that they make things that should…
-

Refactoring and Legacy Code
→: Refactoring and Legacy CodeThe first iOS project I worked on was a big mess that shipped without unit tests. It was a project that had had a number of different directions taken from a product perspective… and the code was like an archeological record of them. Since then I’ve worked on various things, most of which have been greenfield…
-

iOS: Getting a Thumbnail for a Video
→: iOS: Getting a Thumbnail for a VideoBetween various things being deprecated, and the new Photos framework (which looks cool but seemed a bit heavyweight for this purpose) finding this took me a while! When the image picker returns with a video it has a url in info[UIImagePickerControllerMediaURL]. Then we can use AVAsset and AVAssetGenerator to get a thumbnail. // Gets the asset -…
-

Things You Don’t Learn in Technical Interviews
→: Things You Don’t Learn in Technical InterviewsI spend more time than I thought I would thinking about technical interviews lately, because something I’ve been doing is conducting technical interviews for a few startups including Glowforge (they’re hiring!). Since March I’ve done ~36 interviews. Designing hiring systems is hard because you only have partial data – specifically you don’t know who your…
-

Unit Testing on iOS
→: Unit Testing on iOSHistorically, there hasn’t been a lot of testing done on iOS, and we see the results of that every day—regressions, crashes, consistently reproducible failures. As we build more complex applications, manual testing takes more and more time and automated testing becomes increasingly necessary. The biggest challenge of testing on iOS starts at the UIViewController with…
-

Giving a Talk and a Workshop – in Two Days
→: Giving a Talk and a Workshop – in Two DaysSubmitting I have two ways of submitting to CfPs. The first: a carefully written abstract of a talk that I have already prepped, and probably already given. The second: something that I have already been exploring in blog posts, collected into a “here is this thing that I think I could talk about, but I’m…
-

Some Thoughts on Mocking
→: Some Thoughts on MockingWhen do we use mocks and when shouldn’t we? Some thoughts: Don’t Mock Data Structures We wouldn’t mock an NSArray or an NSDictionary, so why would we mock our own data structures? Data structures should be simple and well tested, so we can trust them to behave as they should. It will be…
-

Discoveries About OSS Culture
→: Discoveries About OSS CultureI was hanging out with an OSS-dude (OSS = Open Source Software) for a while, and I learned a couple of things. Firstly – don’t try and buy committed OSS types books. It’s a complete nightmare. Secondly – I’ve reached a better understanding of harassment and open source. And particularly the pushback, which comes from…