Comments Off

100 Years Ago

So obviously I’m kind of into photography (a friend used to say I’m obsessed, but now I’ve gotten him into it, too). I love photography. I love reading about it. I love doing it. I love thinking about it. Every aspect of making a photo, from conception to capture to constitution.

People who follow this blog also know that I’m a fan of Leica. My favourite camera to use is my M3: completely analogue and mechanical. It has no light meter, no auto-focus or auto-exposure or auto-anything. I love it because the photos I create with it are an expression of exactly myself.

This year, the Leica turned 100. To celebrate, Leica has created numerous celebratory products and this advertisement.

OK, fine, you watch it. And you probably think something like “jeez this company has its head up its own ass”, and you’re not wrong. But so does Apple, a company I suspect the majority of readers of this blog would defend. (I’m far from the first to make the Leica/Apple comparison.)

Like Apple, Leica has a history that involves near-bankruptcy. They made a very bad decision with the M5 (firing Steve Jobs), languished for a few years (hiring Gil Amelio), and resurrected itself by returning to its roots with the M4-2 (hiring Steve Jobs back). It’s folklore in the photography community, as is the comeback of Apple in the developer community.

So we’ve established that Leica has a history, but does it have significance? I mean, Apple revolutionized the personal computer – really, it invented the platform. What did Leica do?

The ad holds the key: Leica didn’t invent photography, but it did invent photography. What the hell does that mean? Well, let me tell you a story.

It’s the early twentieth century. There is a company in Germany that manufactures microscopes. The head of its R&D department loves to take walks in the forest, and wants to take photos on those walks. But he can’t. Oskar Barnack has asthma and the only cameras that existed were large, heavy contraptions that one had to carry around. He couldn’t do that without getting an asthma attack.

So he did something marvellous: he invented a new camera. One that could fit into a pocket. Unlike the existing cameras of the time, this one didn’t take photos on 4x5” (or larger) negatives. It used motion picture film, perforated on the edges, to capture images. 35mm photography had just been invented.

The ridiculously small negatives were not welcomed by the existing photographic community, who insisted they were too small to be of value. But a few years later, the first Leica was commercially available for sale, sparking an entire industry into existence.

When the advertisement above says that the Leica took the camera out of the studio and put it into real life, it’s not an exaggeration. It was the goal and motive of the first 35mm camera.

That invention – that little camera created so an asthmatic man could take photos on walks in the forest – it didn’t just change the course of photography, it changed the course of humanity.

So yeah, the ad is kind of pretentious, but Leica is also deserving of the gravitas it implies. Whether or not Leica is a camera worth continuing to use today is another topic, but no one can deny the monumental impact that the company has had on photography, and on humanity.

/Ash Furrow /Comments Off
Comments Off

Documentary Follow-Up

Really happy to share the news that the documentary on the gender gap in the software scene that I blogged about recently got funded today. Really awesome news.

I want to thank anyone who donated money and/or shared this project with others. It may not be my place to thank you, but I'm doing it anyway because this came very close to not happening, and I feel like anyone who helped out should feel good about it. We did it – great work, team!

/Ash Furrow /Comments Off
Comments Off

Price of Film

If your electricity bill increased, would you pay it? Probably. I mean, most people would. The increase in price wouldn’t spark a decision about whether or not you should continue to have a electric connection at home. It is just a fact of contemporary life.

When I first tried film photography, it was a way to explore the medium. When I made the switch to primarily shoot analogue photography, it wasn’t really a decision I made as much as it was the direction of the course I was on. There wasn’t much I could do to affect it.

And when I started having to pay for film and development, it wasn’t really a new cost. Photography, even digital photography, has a cost. Your time to take a photo, to look at it later, consider editing it, editing, and sharing. That’s all a cost – time spent on every photo, which adds up.

(Note: with digital, you take a lot more photos than with film, so there is some savings in your time to consider. It’s not a simple cost increase.)

So when my costs increased from just my time to also include monetary costs, it was comparable to my electricity bill increasing. It was, to me, just a fact of life. An increase in the cost to do my photography that I could not avoid.

People who compare the costs of film vs digital are kind of missing the point. A painter would not decide to use watercolour or oil paints because of a difference in their costs – they would use whatever tool would help them to best realize their vision. So, too, is it in photography. Some shots I take digitally. Most I take on film.

So the next time someone says that “digital is cheaper than film” or someone tries to defend film by saying “digital isn’t really cheaper than film, considering X Y and Z”, remember that these people are talking out their own asses. The costs are different for the different mediums, and which you choose is going to depend on your individual circumstances. Why are you taking this photograph? What do you want it to look like? Are there time constraints? Is the lighting suited to one medium or the other? And so on.

Don’t shoot digital because someone says it’s better than film, and don’t shoot film because someone says it’s better than digital. Think for yourself. Try both and make up your own mind. Or stick with what you like because you like it – no need to justify yourself to others.

/Ash Furrow /Comments Off
Comments Off

Get out and Shoot

Been in a bit of a rut lately. Lots of reasons – stress, working a lot, travel exhaustion, etc. I actually wrote an entirely different blog post about hopelessness yesterday, but it was kind of a downer, so I decided not to publish it.

One thing that I've been trying to do is consistently get out and take photos. You can see this reflected in my pedometer. Basically the only exercise I get is walking around taking photos (my commute to work is pretty minimal).

Exercise is a pretty great antidepressant, and it seems to be working for me.

Even in Italy last weekend, exhausted from a day of people, Ashley and I left the party early (about 10pm) and went back to the Airbnb to relax. On our way home, we saw some really cool photo opportunities, so after regaining our breath, we headed out again with a tripod and some cameras. Super-cool.

Segreti on 500px

Segreti on 500px

I also brought a polaroid with me to the conference and got some cool shots with friends, both new and old. I think holding photographs is a feeling that’s been lost due to the advent of digital photography. Regardless of how you feel about the film-to-digital “progression” in society, you have to admit that holding a physical photograph is a far more magical experience than seeing it on a smartphone screen.

So yeah. Photography is relaxing. After yesterday’s panic attack, I walked around and took so photos and I felt a lot better. Expressing one’s self is always cathartic. The exercise it gives me makes me feel better, too.

I’ve been stocking up on film. Ordered some Bikkuri Cases of film to mix things up. I’m not concerned about the “discipline” of shooting only one film or with one lens – the way I do photography now – by exploring the medium with different techniques, films, and equipment – makes me happy.

I’m hoping to shoot through all that before moving to New York in February. I’ll process a lot of the monochromatic film myself, but the lab does a better job of scanning than I do.

I’m really happy that I’ve found something to help me. It’s a form of self-expression, a form of exercise, and for me, a form of therapy. If you’re struggling with depression, I can’t say that photography will help you. But I hope you find something that does.

/Ash Furrow /Comments Off
Comments Off

Why is this Difficult?

Take a ride with me in the way-back machine. It was July in the year of 2014. Times were different – simpler – they didn’t even have iPhone 6’s! A team of documentarians had a goal to create a documentary about software and its cultural impacts on society. Pretty cool, huh? So they put it up for Crowdfunding and easily reach their goal of $100,000. They actually reach 163% of their goal, and kudos to them.

Now let’s return to the present. The bleak, terrible present. Another team of documentary filmmakers has another goal: deconstruct, raise awareness about, and help fix the gender gap in the software industry. No small feat! They too ask for money from the internet, but sadly, they’re not enjoying the success of the first documentary. They’re asking for less money, even, and they’ve yet to break even halfway with less than two weeks to go. Oh, no!

How come? Why are we, as a software community, not giving them the start-up funds they need? Seriously, let’s examine this.

The first documentary has a cool cast – lots of celebrities in our community, mostly white, mostly men – and knowing them by reputation, I know that they have cool stories. But I’ve heard those stories before. I’ve listened to the Grubers and the Marcos on their podcasts and blogs. I know how awesome apps are and that they can change the world.

I chose not to fund the first documentary because it was unclear what its message, its goal, and its audience were. It struck me – though this may be incorrect, it’s just my gut feeling – it struck me as a masturbatory, self-congratulation story about how great we all are and how lucky society is to have us. Hooray! Maybe that’s not their intention, but I wasn’t willing to take a chance and give money to people when I don’t even know why they’re making this film.

I funded the second documentary the moment I discovered they were looking for money because they’re very clear: they have a specific message, goal, and audience. There is a problem (pretty obvious one if you ask me) with the underrepresentation of women and blacks and latinos and a lot of groups in the software industry, and these filmmakers want to help fix that.

I’m not saying that one documentary deserves to exist more than the other. I’m really not. However, it is kind of telling to me that we fall over ourselves to over-fund a film that discusses how awesome we all are, but can’t be bothered to fund a film that discusses the chronic lack of diversity in the software industry. We like to hear about and share the story of app developers being awesome. We hate to hear about how app developers are actually contributing to a patriarchy that encourages society to simply value men more than women.

I don’t understand why this is so difficult. I really, really don’t. It’s pretty obvious that our society is awfully biased towards white, heterosexual, cis, able-bodied, young men.

Part of what I loved about Cosmos was the history of science that it showed us, and how scientific advancements that profoundly and fundamentally changed humanity forever came from the unlikeliest of sources: priests with no scientific background, indentured serfs who were forbidden to read, women who were only allowed into Harvard as human computers. Forget all the social-justice stuff on why treating people equally is a moral thing to do. Forget all that. If nothing else, you must admit that it is beneficial for humanity to have women working in STEM fields just for the sheer number of discoveries they’re bound to make. How many Einsteins or Newtowns or Sagans have we already missed out on because of our insistence that women are inferior to men? We could be living on Mars by now, for all we know, if we would have changed our society to encourage girls to learn about science as much as we encourage boys to.

Code: Debugging the Gender Gap is on a “fixed funding” project, meaning if they don’t reach their goal, they get nothing and all their backers get a refund. This seriously needs to succeed. Someday, I want to have kids, but do I want my daughter to grow up in our society, as it exists today? Hell no. Would you?

I am literally begging you, please go give these filmmakers some money. Please go tell everyone you know about this project. They have less than two weeks to go, but we can still make this happen.

Comments Off

Functional Programming in Swift

Yesterday, I gave a talk at NSSpain titled "The Future of Functional Programming in Swift". Slides are up here and the sample code is on GitHub.

This was a kind of cool talk for me. I've been doing 50-60 minute presentations lately, but this was only 30. I had a lot to discuss in a short amount of time: I don't believe that functional programming (or any type of programming) should be taught in a vacuum. Context is critical. What is functional programming? Why is functional programming important? When should it be used? How do I get started? These are questions that I tried to answer in my talk.

Photo credit to my wife

This was also a very fun talk to give. I tried to infuse a sense of humour into my presentation, though I don't think many people got my Carl Sagan reference. About the first half was setting up context and the remainder was going through example code in an Xcode playground (sidenote: super awesome tool for teaching, thanks Apple!). Despite one small probem, things went really well.

I think (?) the talk was recorded, so if it gets posted by the conference organizers, I'll put it up here. If you have any questions or comments, please let me know.

Comments Off

Challenging Established Dogma

I’ve been a longtime believer in the power of challenging established dogma and authority. Just ask my mom – she’ll tell you what a little pest I was growing up.

When I was young, my grandmother was a huge influence on me and encouraged me to question the authoritative aspects of society. Later, I met a high school teacher who introduced me to literary critical theory, which kind of sparked everything about who I am today.

So it’s with some disgust that I recently realized that I have become an “authority” in my field. Ew.

Let’s back up a minute.

There is a concept in psychology called the Dreyfus model of skill acquisition. It’s awesome – I think about it a lot when teaching, because depending on my audience, I’ll present the same material differently. For example, beginners in a field tend to see things through a lens that polarizes solutions as “good” or “bad” depending on how those solutions adhere to principles taught by experts. Beginners adhere rigidly to these principles. As learners progress in their field – towards competence, proficiency, and expertise – they learn that knowledge is not absolute and that the things experts teach are only well-informed opinions. Solutions to problems aren’t “good” or “bad” based on how well they adhere to a principle, but rather how well they solve the problem.

This is really useful to me as an educator. If I’m speaking to a beginner, confidently making generalizations will help them learn the fundamentals. Beginners need simplified models. Later, with intermediate students, I try not to make these generalizations because they’re no longer useful – I try and show them that what I teach is really just my opinion, and that they ought to question it. But if I try and tell someone that a fundamental principle is just an opinion too early, they won’t have confidence in what they’re learning. It’s a tricky balancing act.

So anyway, I came to the realization that I am part of “the man” of iOS developers – pushing my dogma wherever I write – when a reader wrote in with a question. (I am publishing their question here anonymously with their permission.)

I was reading your blog post here: - and had a question. You mention it would be "very, very bad" to make the UITableViewCell the delegate/dataSource of the UICollectionView, but you give no reasons. Why?! (but seriously, I am very curious - what are your reasons for that declaration?)

I look forward to hearing from you!

What an excellent question.

Why is it excellent? Because here in this moment, we see them question the established dogma of iOS. I wanted to encourage the person who wrote me to ask more questions like this one, so I gave them a thorough answer.

Thanks for writing me with this question. I think that questioning dogma is important in our field.

In this case, the dogma is something fundamental to the way that Apple, and most of the community, recommend architecting iOS apps: Model-View-Controller. In MVC, all objects are classified as either a model, view, or controller, and only one of those. So a view isn’t a controller, etc. In general, controllers serve as datasources for views because they have access to the model objects, which views do not. These controllers mediate the conversation between views and models.

So a view acting as a datasource implies that the view has access to the model data, which should not happen in MVC.

Why does this matter? Well, MVC isn’t something extra to be added to app code. It’s a framework that restricts what we can do. It’s certainly possible to write an entire app using a single file, or only a few classes, but we don’t do that because it makes it hard for us to reason about what code lives where. It may be more convenient or faster to write code using fewer, larger files, but maintaining this code is very time-intensive. So we use MVC to restrict how we structure code.

Sometimes, it’s convenient or even necessary to break the rules of a framework like MVC, but we should only do so as a last resort, with solid justification, and proper documentation about our reasoning.

Instead of just saying “because of MVC”, I chose to give an opinion. Remember, that’s all rules are – opinions – and opinions, no matter how well-informed they are, should be questioned. Especially in our field, where the environment that opinions are formed in changes so quickly.

I find helping developers learn and grow to be incredibly rewarding and I’m always trying to improve my teaching skills. If you’re a blogger or an OSS contributor or you answer questions on Stackoverflow, remember the Dreyfus model of skill acquisition. Sometimes a generalized rule is what a beginner needs, but eventually, those beginners are going to start challenging those generalizations, and that is awesome. Do not discourage this behaviour.

Comments Off

Your First Swift App

This morning I launched my new Swift book, Your First Swift App. It's a work-in-progress that will be updated as I write more chapters; currently, the first three of eleven are finished. All of the code is available on GitHub and will be updated as I go. Anyone who bought the older version for iOS 6/7 with Objective-C should have already received a coupon for a free copy of the Swift version.

This has been a struggle for me. I actually expected the book to be completed by the time Swift hit 1.0, but I struggled a lot over the Summer with depression. Only over the past few weeks have I gotten the motivation to continue. I'm grateful to my wife and friends for supporting me through the past six months.

To the degree that you're comfortable helping me spread the word about my book, I would be grateful for any tweets or blog posts about it. Thanks a lot, everyone.

Comments Off

Anyone Can Learn

I've started a project called "AnyoneCanLearn". You can read the information there for the goals and values and everything; this blog post isn't about promoting it or explaining it. It's about providing my motivation.

For a long time, I've been asked questions about iOS development. People email me or tweet at me all the time because they have questions about one of my books or open source projects. I love getting these emails and I try my best to respond to each one in a timely manner. Usually, though, if the question is novel, I'll suggest asking it on Stackoverflow. That way, others can benefit from the answer I put there. My common refrain has been "open source your question so they can open source the answer", and I've thought this was a good idea.

The other day, I asked a question on Stackoverflow about a topic that I am a beginner in. And one of the comments struck a nerve with me. It was unconstructive and inflammatory, and it was from someone with over 60k reputation points on Stackoverflow. I felt pretty hurt, and I've grown thick skin.

I put myself in the shoes of a beginner asking their first question online and imagined the kind of attitude that they'd get from developers. A friend on Twitter pointed out that it's even worse for women. And I got thinking. Wouldn't it be awesome if there were a place that provided resources for how to ask good questions? For how to answer questions with respect? And just generally how to make being a software developer a more awesome experience?

After talking it over with my wife and some friends, I decided to pull the trigger. Maybe this will be a flash in the can and fizzle out, but I really do hope that it becomes something that helps learners and teachers contribute to their communities in more positive ways.

Comments Off


So yesterday happened. This happened. Ugh. Whatever. Apple’s made bad decisions before and they’ve survived.

But this is not a post discussing the Watch. Well, it is, sort of. I want to talk about the event itself.

Apple hyped the shit out of this. Their invitations were sent out indicating that this was going to be held at the Flint Center, where they announced the original Macintosh. It’s a bigger venue and it invokes bigger kinds of product announcements. OK, fine.

Not only did Apple have a livestream (of sorts), they also had their very own liveblog about the event. That’s a first. Whatever.

The presentation starts with an Ok Go-esque inspirational video describing how we can make the world a better place (together!). I mean, I’ve seen these kinds of videos before – they make you feel good about buying Apple stuff and working on their platforms. Just like the one that shows how blind people can finally use their iPhone to go for walks in the forest. Standard fare.

So then the event really starts.

Blah blah iPhones blah blah Pay blah. Whatever, everyone’s at this event because they want to see what Tim Cook is going to announce that will change Apple’s history. They want to see the next chapter in their story, or whatever. So at the “end” of the presentation, Tim Cook does “one more thing…” And it’s here in our story that I begin to have a problem. But I’ll finish recounting the events, first.

Blah blah Watch blah blah Pay with Watch blah.

So it’s a wearable that does … what the other wearables do. (I promised myself I wouldn’t complain about the goddamn watch – that’s another blog post). Near the end of the presentation, Cook says something… interesting.

So now, the foundation of Apple is built on the best personal computers in the world, the Macintosh; the best tablets in the world with iPad; the best phones in the world with iPhone …; and now adding Watch.

The foundation of Apple. The foundation of Apple. Really. You know how something becomes the foundation of a company? By being a unparalleled success. Like those iPods that you kind of failed to mention there. The Watch isn’t even launching this year and you’re saying that it is now part of the foundation of Apple? Right up there with iPhones?

Uh huh.

OK, well at this point U2 comes on and I turned off the livestream. But I was thinking about this. About what Tim Cook said there, the hype, the anticipation, everything. And I got a bit upset.

Tim Cook used the “one more thing…” line that Steve Jobs was known for. It’s been about three years since Jobs death, which I think is a bit soon, but it’s his choice to use it. What bothered me, though, is that invoking Jobs’ words was just part of the large machine Apple designed to hype up this announcement. He knew that nerds would go crazy over those three words, so he used them. Regardless of whether or not you hold Steve Jobs in high esteem, the decision to use those three words is a calculated move designed to increase people’s awareness of this product.

And that’s when it kind of hit me.

Apple is just a company.

I like Apple as a company. They make fantastic products. They run their company in ways that I admire. But more than that, I had always kind of thought that while other companies were just in it for the money – Samsung is an easy target here – Apple was in it for something else. I was tricked into thinking that Apple’s motivations were somehow more noble than those of Samsung. But they’re not. They’re both just companies and they both just want to make money.

Those videos I mentioned earlier? The ones that make us feel good about being iOS/OS X developers? The ones that make us feel good about buying Apple products? They’re only there because Apple wants to make more money. That’s all. Like, “hooray blind people use iPhones” and everything – I’m really glad that Apple makes their devices accessible – but I don’t really believe Tim Cook’s assertion that they don’t consider the ROI of accessibility. Not anymore.

So yesterday happened. Apple showed its cards, the whole of Twitter exploded in one giant nerdgasm, and I realized that they’re just a company like any other.

And it broke my heart a little.