February 2012
4 posts
Entitled
This post is inspired by Marco’s excellent piece: Right versus pragmatic.
I grew up in a small village. When I was 13, I didn’t really have money to buy
music, but I still saved up and went to the record store so I could buy
Americana. When
I was 15, I got my first computer-job (as a php programmer). One month, I even made 1000
guilders (which was a lot for me). On Saturdays, I would...
Accessing an API using CoreData's...
Note: I’ve also posted this article on github as gist, for better readability of the code: nsincrementalstore.markdown.
In this article, we will see how to use Core Data for accessing your API.
We will use the Bandcamp API as our running example. I’ve only been
experimenting with this code for a few days, so there might be mistakes in
there.
One of the problems with accessing an...
I Use This
I was inspired by people writing about their setup on The
Setup, so I decided to write about my own setup.
Hardware
I use a Mid 2010 Macbook Pro 15” with an SSD. I only switched last week, when my
old hard drive was about to die. I don’t use any external screen, keyboard or
mouse. Because I travel a lot and work from pretty much everywhere, the HD
display is really convenient. I...
Becoming a better programmer: Test-Driven...
As I’m enjoying programming again (and more so every week), I started to think
consciously again about improving myself as a programmer. After a recommendation
of breun I started reading Clean Code, which I can definitely recommend.
One of the things I have always felt bad about professionally is not doing
Test-Driven Development. Back when I was programming Haskell a lot I did do a
lot of...
January 2012
9 posts
How I write my code
Recently I saw a couple of posts on how people write their code. I found it inspiring, and part of the reason I’m writing this article is that I don’t
know how I write my code (not explicitly, at least).
Most of the time, I know what I’m going to build a few days, weeks or even
months beforehand. During the time between idea and building, I think about it.
I don’t set...
Take the money
After yesterday’s post about speaking
up, I got some questions
about what my responsibility is as a freelance programmer. Am I qualified to
judge other people’s business ideas? And if so, should I tell them if it’s a bad
idea? I’m a computer programmer, maybe I should just stick to what I know.
The question I’m trying to answer is: “Should I just take the...
Speaking Up
Deciding when to speak up is one of the things where I feel I haven’t yet figured it
out at all. I don’t know when or how to do it.
In high school, a friend of mine didn’t like her boyfriend anymore. I told
her that if she really feels that way then she should break up with him. The
boyfriend (who was a good friend of me as well) was, understandably, quite angry
at me. From...
Focus
When people tell me their startup idea, it often happens that they are trying to
solve a huge amount of problems. This happens mostly with people who do not have
a lot of experience in startups. These people are often very ambitious but don’t
have the skills to execute themselves.
For me, focus has always worked in business. The first company I started, we
didn’t really know what to...
Willpower
I hate flossing. My dentist insists that I do it, and after each visit I promised to do
better next time, but never followed through. I wanted to, but I lacked the
discipline to do it.
Some two months ago, I decided to do it differently. Instead of using my
willpower, I tricked myself into creating a habit. I grabbed a big piece of
paper, made rows and columns, creating about 60 large squares.
...
Freeform blogging
In the last days, I tried to do more freeform blogging. I’ll write about
whatever’s on my mind. Some pieces might be about something I’ve been thinking
about for months, others might be something I just thought of in the shower.
I will try not to care too much about things like ‘target audience’. My goal is
to become better at writing and to help myself think....
My perfect co-founder
Being a programmer, I have long thought about my ideal co-founder. I’ve started
a company with somebody who’s got almost the same skillset as I have (except
that he could do bookkeeping as well). This worked for two years, but I
didn’t like the direction we were going in. After that, I started a startup with
a mathematician, analyzing big data. Here, we couldn’t agree upon...
On Breakups
Not too long ago, I went through a breakup, or to put it another way: I got dumped.
Fortunately, this wasn’t the first time I went through a breakup. Everybody
handles it differently, but these are the sort of things that help me deal with
it:
I meet a lot of friends and talk about it. I go out to bars where nice girls
hang out, just to reassure myself that there are more girls out there....
December 2011
3 posts
Radical Honesty
On Hacker News, I read an article about Radical Honesty today: I Think You’re
Fat. It really appealed to me.
Over the last year, I’ve tried to be more open and honest myself. Not radically
honest, though. For me, it was important not to hurt other people’s feelings.
However, when you think of it, you can hurt people more by not being honest.
Suppose a friend lets you wait for...
CocoaPods
I just upgraded one of my projects to use
CocoaPods. CocoaPods is a library
dependency manager for XCode projects. You can use it in a way similar to Ruby’s gems or Haskell’s
cabal. The project is just starting, so it’s a little rough, but it does the
job.
I think this can make code sharing for iOS developers a lot easier. I’m all for
reusing code, but it used to be quite...
November 2011
5 posts
Hard Decisions
Over the last few weeks, I was asked three times (by two different companies) to
become the development lead (i.e. CTO). Both of these companies are really quite
awesome, and I can see them become very succesful (actually, one already is
quite succesful). I strongly considerd saying yes to both positions, but ultimately decided not to
do it.
One of the companies already makes good profits, the...
Satisficers vs. Optimizers
I just finished Fooled by Randomness by Taleb, what a great book. In the last
chapter, he compares satisficers and optimizers: suppose you’re having dinner
with a friend who knows exactly when his train leaves. He optimizes his dinner,
hurrying away from the table just before his train is about to depart. Your
friend is an optimizer.
I am aspiring to be more of a satisficer: I don’t...
Survivorship bias
Of all the jobs I’ve had, being a solo entrepreneur is the fairest job. I am
directly responsible for my own income. I have nobody to blame if things go
wrong, technically, financially or otherwise. This makes me feel very
responsible for everything I do. Compared to working with more than one person
or (worse) working in a company, my work influences my results so much more.
The danger is...
On Running
Running gives me a lot of energy. After a run, there is the runner’s high: the
released endorphin in my brain makes me feel great.
Training, races and continually wanting to get better makes me push myself. I’m not pushing too much, for risk of over-training, but I am constantly overcoming barriers and
improving. After running my first half marathon a few years ago, I felt on top
of...
Met has launched
Today is the official release of Met. I will send out a press release to all the
Dutch iOS websites, and will send out an press release in English tomorrow. The last
few weeks have been quite an adventure. I documented all the steps of building
Met on this weblog, starting with choosing an idea and ending with submitting it
to the App Store.
For those that haven’t read the story yet: Met...
October 2011
15 posts
HTML5 is no silver bullet for apps
I sometimes hear people tell me that they are going to let their next app be
an HTML 5 app. This way, they can write for both iPhone and Android at the
same time. This seems like a big win.
Although iOS and Android are very similar, both being touch-based and mobile,
they are also quite different. For example:
On Android, if you want to go back to the screen you just came from, you press
the...
Reaching a plateau
While I was traveling last month, I met a lot of great people. One of them was a
73-year old woman who had been very successful in her life. She was a professor
at a well-known university in the USA and has now retired to Spain. She is still doing
amazing things.
I asked her: “What’s your secret to success, apart from working hard and being
intelligent?”. She said:...
Met In The App Store
This morning at 10:11 GMT+1, version 1.0 of Met was submitted to the App Store.
It’s been quite an experience, blogging about everything, from before there was
an idea until the App Store submission. I will write a recap of everything next
week.
In the last few days, I’ve been helping out with an ultra marathon, and met a
lot of interesting and inspiring people. There was a 73-year...
New build, first website, press plans
Yesterday I released a new build. In this version, you can also change the date of
events (which means you can add past events) and add new contacts from within
the app.
Today I set up a first webpage for Met. I really like the design of With, and I let
myself be inspired. Admittedly, the website is quite
minimal, but I think it should be enough (for now). I also found a good domain
name, which...
How I Will Design My App Website
For Met, I need to design and build a website, and in this post I’ll show
some of best the app websites I’ve bookmarked and try to explain why I like
them. My definition of “best” in this case mostly means beautiful. I don’t know
how they convert visitors or any other performance, so that’s something I need to measure myself.
Screenshots
Perhaps the most...
Week 3: An App in Four Weeks
Today marks the end of Week 3 of my App in Four
Weeks
challenge.
This week I chose a
name. I
designed an icon and overall style for the app. I then spent quite some time
implementing autorotation, and getting it exactly right. There is now a passcode
lock too.
By nature, I am not a perfectionist. Whenever I see that something works, I tend
to lose interest in finishing it. For me, shipping...
New build and screenshots
A new build should arrive in the inbox of the beta testers right about now. It’s
almost the same as described yesterday, except with less bugs. My energy is a bit low today,
so instead of text, here are some screenshots of the current state of the app.
Rotation fun
Today I spent a lot of time implementing landscape orientation, next to portrait
orientation (as this gives you a bigger keyboard). However, in the end I managed
to nail it, I think. Everything resizes, moves around and plays nice with
showing and hiding the keyboard.
I also added hover effects for the passcode buttons, designed the section
header, changed the passcode screen slightly, added...
Introducing Met
After yesterday’s post, a lot of people contacted me with ideas for a name.
Thanks Pim, Martijn, Miles, Wilfred and Fabian (I hope I didn’t forget
somebody). Some liked James, some liked Meetups, all with good reasons.
However, one reply stood out: Jurriaan had an idea for a
more minimalistic name: “Met”. Short and to the point. It’s about who you met.
The best...
Beta and Branding
This is the start of week 3 of my One App in Four
Weeks
project. Last Friday, I sent out the first beta version, and just sent an update
(with mostly bugfixes).
Martijn Reintjes suggested that I should change Checkins
to Meetups, and I couldn’t agree more. I wasn’t happy with Checkins to start
with, and this makes it a lot simpler. Thanks dude!
Because I wanted to be future-proof,...
iOS products are a local optimum
This morning, I was sitting in the booming heart of Seville, sipping my café con
leche and reading The
State of the Art is
Terrible
by Zack Morris. A great read indeed.
It then finally dawned on me: most apps are a local optimum. This includes
most of the apps I’ve worked on, including the most successful ones. Another
fine example is the gorgeous Thermo app. Even though I love using it,...
Week 2: design improvements
This post is about Week 2 of my One App in Four Weeks project.
This week was a bit strange, in many ways. For me, it didn’t feel like a productive week. On Monday
and Tuesday I got some things done, Wednesday I was travelling (but thinking)
and Thursday I spent most of the day creating a custom design in Photoshop. I
then decided that it wasn’t good enough. Instead, I chose to go for...
RIP Steve Jobs
When I started to read the news this morning, I couldn’t believe it. It felt very surreal. Not completely awake yet, I opened up other news sites to make sure it wasn’t a mistake.
I’m not sure how I feel. Mostly, I feel love. I am impressed by the products Apple made and the inspiration they gave everybody. If there’s one company that I love, it must be Apple. And loving...
Selecting People Faster
Today, I fixed some minor things in the code, and simplified the workflow. In
the previous version, when checking in, you were presented with a list of
people. After that, you could do the checkin.
In the current version, it works much like sending an email or sms: you start by
typing somebody’s name, and you will see a list of people below (see the
screenshot). After you click
on a name,...
Start of Week 2
Today is the start of the second week of the One App in Four
Weeks
challenge.
Last Friday, I added tabs to the application: one for the most recent checkins,
and one for the list of contacts. More tabs will probably come, such as search
and settings.
This week, I will try to get the functionality done. I need to add a Person view
(after you press on a Person you see the history), fix some...
September 2011
19 posts
One App in Four Weeks: Week 1
This Monday, I started One App in Four
Weeks.
I started by posting a list of ideas. The third idea was the most appealling to
people (although I still want to build the other two as well, but not now), and
I got some great feedback from everybody.
I selected the idea and defined the Minimum Viable
Product,
which is quite simple: you can check in to people, add a time and note to that
checkin and...
Sketches and ideas
Although I was traveling yesterday, I sketched some small mockups for the
Contacts app. The idea for the app had come when the genius Lucas Tieleman explained to me
how he keeps a small book with notes about everyone. Yesterday he sent an email
with the notes he had about me: it’s fun and only freaked me out a little
bit (not as much as I expected). He’s a very early adopter of new...
Check In to People
As I wrote in yesterday’s post, I’m going to build an app in four weeks. Now
I’ve chosen the idea that I’m going to build: check in to people. This will give
you an archive of when you met people. After you check in, you can add notes and
maybe pictures.
Yesterday I’ve thought about the next steps and about the minimum viable
product, and researched existing apps.
...
One app in four weeks: kickoff
When I woke up this morning I heard the sound of the Mediterranean sea and saw
palm trees out the window. Yesterday night I arrived in Malaga, Spain. I’ll be
slowly travelling around the area for the next few weeks. I probably won’t be
working full days, as it’s very beautiful here, and there are a lot of things to
see and do.
Originally, I had a nice plan for my work-related...
Trust your geeks
15 years ago, my local library had a night about “The Internet”. At that time, I
read bits about it in a science magazine, and I was fascinated and
persuaded my dad to take me there. That night, a guy came and talked to us about
what the internet was, and what you could do. He sent an email to the White
House, and got a reply within half an hour! I was so drawn to this new
technology,...
Niche and Top Lists apps
At yesterday’s CocoaHeads meetup, I was discussing with Ben the marketing
strategy for his app, Captio. It is aimed at people who want to capture their
notes quickly: as soon as you open the app, it shows an input field, end when
you press Send the note is emailed to yourself. It’s been my favorite app for
a long time.
The problem with Captio is that it is mostly useful for a niche...
TrackMe plans
Last month, I made € 99.54 from selling TrackMe. The first day I sold about
60 copies, and the rest of the sales was spread out over the month.
The reason why I sold so little is that I didn’t do any marketing. I set up a
blog for the app, and talked about it on this blog. I announced it on Twitter,
and wrote a blog post about 10 cool things you can do with a GPX
file.
I would promote it...
Communicate Often
This advice is for freelancers: please communicate as often as possible. When
somebody hires you, they want to know what’s going on. Sometimes you get so
caught up in trying to make a deadline or staying productive, and forget to
communicate. For a client, this can be frustrating, because it looks like
nothing happens (while you were even busier than you would normally be).
In my opinion,...
AirBnB for dogs
Are you thinking of building a new website? Or an app? AirBnB for dogs? A
Groupon/Twitter/Facebook mashup? Mobile first? Sometimes it’s kind of hard to see, it looks like all the good ideas are taken already, and we can only combine existing ones. It’s all kinds of products. As an app developer, I sometimes think all the apps are already built.
I had a perfectly good idea two months...
Lost In Translation
One of the hardest part in software development is communication. I don’t mean
network communication, but person-to-person communication. This is one reason
why it’s so convenient to work alone on your pet projects: you don’t have to
communicate at all.
Every time you communicate, there is noise in the signal. Because both parties
have different backgrounds, you lose part of...
Be Visible
Whatever you are doing, make sure you’re visible. Don’t fear embarrassment and
publish yourself, in whichever form. Here are three stories:
Twitter
As I wrote in an earlier post, I became iPhone developer by chance. Just
for fun, we created a game called CookieCombo to play around with the
iPhone SDK, which came out a few months earlier. We tweeted about it, and got
two instant...
Crossing the chasm between design and code
Recently there was an excellent post by Mike
Rundle
about how one person can be a designer and programmer at once.
I think having a designer and programmer in the same person is a great idea. I
wish I would be better at design (not only do I lack experience, I’m also not sure if I would
have the patience to become a good designer).
When I’ve worked with designers before, I...
So, you want to build an app together?
If you do have an idea for an iPhone app, I want to ask you these questions.
These should hopefully validate your idea and commitment.
Does it exist already?
Have you searched the App Store and the internet? Also for different keywords?
If it does exist, how are you going to differentiate?
How will you make money with it?
Will you sell the app, or make it free? Will it be ad-based? Do you...
TrackMe: 10 cool things you can do with a GPX file →
trackmeapp:
In this post, we will look at 10 cool things you can do with a GPX file. To
track your GPS location into a GPX file, you can use an application like
TrackMe. 1. Visualize it Using a tool like GPS Visualizer you can plot
your GPX file on a map. They provide a number of different options…