Global Software

We see the internet as being a global network, a level playing field, a way to access all the information and tools we need.

If “we” refers to English speaking members of developed countries, then you’d be correct. But for the majority of the world, that is not true.

I believe that we as creators of software have a responsibility to change that, and I want to do my part.

A big company like Evernote can have its website and tools available in 24 languages, which is great. But what can tiny independent software vendors like me do to make software truly global?

The answer is simple: “Try.”

Continue reading Global Software

Use Perfectionism to Achieve Flow

If you struggle with perfectionism, I understand how you feel. For years, I’ve seen perfectionism as my biggest weakness.

But what if there was a way to work better with perfectionism?

What if perfectionism is not a weakness,
but instead a misused strength?

For me being a perfectionist means living in the constant strain of the gap between what I can envision, and what I can create. And my vision grows faster than my skills, so my choices are: finish imperfectly or not at all.

The common advice is to just “push through” and keep releasing imperfect work until you’re finally able to close that gap.

It seems like sound advice. But taking this approach, it will be years of strain until you get to feel the joy of finishing work and being proud of it.

I will not accept that for myself, and neither should you.
There must be a better way…

How Often are You Proud of Your Work?

Here’s something you may have forgotten:

Pride in your work has nothing to do with its external quality.

Imagine a painter who frequently takes a knife to her work, to the horror of those around her. “Stop! It’s great work!” they say, but she trashes it all the same.

Now imagine a first-time potter, who tries and fails repeatedly to make a small bowl. When he finally finishes, he beams with pride over his misshapen “bowl”.

So which is the perfectionist: the painter or the potter?

They both are.

Why the difference then? Why is one disappointed and strained, while the other is proud and content? Is it temperament? Naivete? Does the painter feel the weight of expectations, while the potter has none?


I spend a lot of time on the floor with my son Zeno, playing with Duplo blocks. I’ll build spaceships or helicopters at his request. He’ll be making random irregular towers, and declaring them to be a “bird”, “elephant”, or “dinosaur”.

He concentrates intently, and when he’s done he’ll clap his little hands and say “Yaay, [z]eeeno!” as he looks at me with a deep and genuine pride.

It seems  we are born knowing this, but somehow forget:

Quality is always relative.

He doesn’t care that my blocks are “better”. He doesn’t care that his aren’t as good as he will later be able to make them. All he cares about is that he did the best he could with what he had.

And in the process, he challenged himself just enough to experience flow while working. Naturally and without being taught to, he practiced deliberately on the skills that were just beyond his reach.

Perfect Flow: In Practice

Naive ambition tries to sacrifice frequency and focus on one big thing, despite being unpracticed. The "gap" requires putting out imperfect work often, regardless of quality. With perfect flow, you start small, and focus on consistent quality.
Naive ambition tries to sacrifice frequency and focus on one big thing, despite being unpracticed. The “gap” requires putting out imperfect work often, regardless of quality. With perfect flow, you start small, and focus on consistent quality.

So how can we work with pride and contentment throughout our lives, not just in some distant and imagined future? How can we quietly persist in getting better, when we feel the constant strain of the “gap”, and the expectations we have of our own great potential?

Start with something just beyond your current reach.
Work in flow as long as you need to till you feel proud of what you’ve done.
And only then, release your work into the world.

If you want to write great novels, start by writing flash fiction. Give yourself completely to the 250 word story you want to create. Want to blog? Focus on short blog posts, rather than long ambitious treatises. Do you want to develop a product? Make half a product, not a half-assed product. Do you want to paint? Paint small and often.

Don’t stop working until you feel the subtle warm glow of pride. The signal that, while it might not be “perfect”, it’s the best that you can do right now.

And know that it is more than enough.

How to Make Better Decisions

You read a lot about productivity out there.

  • “50 Producivity Hacks that will Change Your Life”
  • “The 13 Things Every Successful CEO Does”
  • “17 Reasons Why Your Routine Sucks”

Most of these content-farm articles are just rehashing the same crap. On the other hand, there are people who go very deep on a topic, and risk overcomplicating things (ahem… someone like me!).

Remember though, productivity is just about three things:

  1. Decide on what you want.
  2. Decide on what you need to do to get it.
  3. Do it.

Of course, this is very simple, but it’s not easy. For making decisions, we’re constantly fighting the way our brains are wired. It seems that for most decisions we face in our modern lives, our brains are built to focus on the wrong things.

Thankfully, we are “Predictably Irrational”, as Dan Ariely so eloquently put it. And we can dig into the reasons we make poor decisions, and learn how to make better ones.


My favorite kind of books are written by “synthesizers”. People who attack a subject from all angles, trawling data and research and personal experiences, and collecting it into a cohesive framework for you to use. “Good to Great” is one example of this. My favorite team of synthesizers is Chip and Dan Heath.

My well-worn copy of "Decisive". Whenever I have the discipline to stick to the process, the payoff is enormous.
My well-worn copy of “Decisive”. Whenever I have the discipline to stick to the process, the payoff is enormous.


Their book “Decisive” is one of my all-time most recommended. Since the framework breaks down neatly into sections and lists of techniques, I’ve found myself referring often to the book. But, of course, there’s another way to organize structured information: Gingko Trees!

Here is my Gingko tree summary of Decisive: How to Make Better Choices in Life and Work.

Your Supercomputer Mind

During my physics PhD, I spend a lot of time working with supercomputers. Before I had direct experience with writing and running code on supercomputers, the image that came to mind for “supercomputer” was something like this:

The reality is far more mundane:

I’ve never actually seen the supercomputer I used to do my PhD work. It was in Toronto, I was in Montreal, at home in my pajamas.

This was in part disappointing (“What, I don’t get a cool security clearance card?”). But in another way, it was kind of awesome. I’d be sitting in my PJ’s at home sending instructions to a multi-storey supercomputer, and telling it what to do.

Besides making my PhD work possible, I received something else from my work there. Something quite unexpected, that I’ve found very useful to me in my daily life.

I found a new model for thinking about my own mind, that allows me to solve problems without thinking about them.

And it’s one you can practice as well…

Continue reading Your Supercomputer Mind

Decluttering your Extended Mind

Think about the last time you let a great idea slip away.
Do you remember the terrible moment just as it faded, when the only thing you’re left with is the feeling that it truly was a great idea?

If you live and thrive by the ideas you bring to life, you’ll quickly learn to capture all your ideas. You’ll always carry a pen and a small notebook, or some index cards in the back pocket (my approach). Or use apps like Google Keep or Siri, or any of the thousands of note-taking apps available to you.

You shouldn’t have to worry about ever losing an idea again.
But you now have a new, and more insidious problem:

If you can capture every idea, you still risk losing them among all your other ideas.

This problem is far worse, because it can go undetected until it feels hopeless. And when you realize it, idea capture will start to feel less like creative expression, and more like dropping a slip of paper into a giant rolling raffle barrel.

If these were your ideas, how would it feel to add yet another one to the pile?


Efficient Systems Make Things Worse

Having a great system in place, like Getting Things Done, does not solve this problem.
In fact, it could make things worse.

Here’s how:

  • You have an efficient system to capture and process everything.
  • Your capacity increases, leading to a greater volume of ideas generated.
  • Since you can’t act on the influx, most of your ideas go into an ever growing “Someday/Maybe” list.
  • Soon, you reach a tipping point, where adding ideas in the system feels pointless.
  • You get discouraged, and stop using the system.

In a sense, a great system like GTD (which I swear by), can be part of the problem. By being able to handle more ideas and small tasks, GTD increases your capacity.

Without also changing your mindset from one of scarcity to one of abundance, you’ll just end up hoarding more ideas.

You might think that having too many ideas is a great problem to have. But it’s really only useful in the brainstorming stage of any project with a well-defined outcome. Ideas on their own, orphaned from any goal, are simply mental flotsam that clog up your flow.

The Hoarder’s Mindset

We can understand the drawbacks of hoarding ideas via my favorite rhetorical device: the analogy. (this one inspired by my wife’s decluttering of 90% of her possessions.)

If your problem is an overflowing closet, you don’t solve it by getting more storage bins, clever stacking, or “closet hacks”. In other words, you don’t solve the problem by increasing your capacity.

You’re addressing the symptom (“I have too many clothes”) and not the root cause (“Why do I feel inclined to keep things I’m not excited about, and don’t wear?”). Hoarders keep everything because it might be useful “someday”, or because it represents a memory.

But the underlying fear is simple: “What if I can’t replace it when I need to?”

Our bodies and our brains have evolved over millions of years for a “feast or famine” lifestyle. It’s a deep-seated response, so being in a “famine” mindset is a pervasive feeling. The result?

Hoarding ideas makes you feel idea-poor.

The underlying message you’re sending yourself is “This might not be a great idea, but keep it. Just in case you can’t come up with a better ones later.

If keeping all your ideas, even the mediocre ones, leads to feeling idea-poor, the opposite is also true. Keeping only the best ideas, and trusting yourself to be able to come up with more when needed, leads to something much more important than a well-curated “idea file”.

It leads to sustainable creative confidence.

Achieving Sustainable Creative Confidence

In GTD, the entire process really begins by determining whether an idea or task you’ve captured is “actionable”. I believe this is an absolutely atrocious decision point. It’s true, much of what we think are “todos” aren’t really actionable, and the habit of determining the next action is invaluable. But you could have hundreds of actionable ideas, none of which are worth pursuing.

Add these filters to whatever productivity system you use, and focus on what truly matters to you.

The fix is quite simple, but it takes practice and discipline to follow through.
It breaks down into three steps, all designed to create a tougher filter to use while processing.

  1. Identify things you truly “Must Do” by asking “Can I live with the consequences?”
  2. Check in with your goals, for each idea or task.
  3. Check in with your desired identity, for each idea or task.

I’ll go through each of these in turn.

1. Focus on Consequences

It’s very easy, especially when overwhelmed, to treat everything as being important and urgent. To avoid this, we need a shortcut to understand whether something truly needs to be done or not.

“Is this important?” or “Do I have to do this?” are not helpful because they draw your attention to the task itself, and not the outcome. You can instead use a “What If?” question to trigger your imagination:

What would be the consequences if I didn’t do this?

If you’re honest with yourself, you’ll be surprised at the sheer volume of supposedly urgent or critical tasks that simply do not need to be done. That doesn’t mean that you won’t do them, but having this question first allows you to skip the other filters if you must do the task

2. Check in with your Goals

The second filter is to ask:

Does this move me toward my goals?“.

Again, simple. But it’s so easy to trick ourselves into simply “being busy”, that it’s worth reflecting on your goals not just weekly, but every time you pick up an item or idea to process.

This not only ensures that you’re moving forward with every task, but it also makes thinking about your goals a frequent habit.

3. Check in with your Desired Identity

Think about this: any worthwhile goal you have would probably take a year or more to achieve. And, despite how sure you might be right now, accomplishing your goal might not actually make you much happier.

With goals, how you reach your goals is at least as important as reaching them. And so, you need a way of evaluating whether implementing a given idea would move you toward your goals in a way that feels right. Ask yourself this:

“Would the person I want to become, act on this?”

This question forces you to think about your values, and your desired identity. It also allows you to side-step your fears. If an idea scares you a little, without appealing to this “bold fearless” version of yourself, you’ll find some way to justify not pursuing it. But you’re more able to answer honestly whether your ideal self would pursue it or not.

And, as with checking in with your goals, checking in with your desired identity as part of this process forces you to think about the person you want to become several times a day. As I’ve mentioned before, this simple trick is a powerful way to change.


So much of productivity focuses on the organizing aspect of any system. What lists, what software, how do you prioritize your todos, how do you schedule them, and so on.

But a simple and powerful way to get the right things done is to stop the wrong things from getting into your lists in the first place. It’s not easy, but the reward is being able to focus on the ideas that give you chills, the tasks that truly move you forward, and the challenges that make you a better person in the process.

Two (silly) Techniques for Lasting Change

The following was sent as a newsletter for the end of 2014. I’ve decided to add it here, for the benefit of future readers (hey, that’s you!).

The world is abuzz with people making resolutions, going on diets, signing up for gym memberships, and making promises to themselves. Promises that they know deep down they won’t really keep

Sound familiar?
If you’re determined not to fall into the same trap this year, read on…
Continue reading Two (silly) Techniques for Lasting Change

A Concept Art Approach to Software

Recently I watched “Jodorowsky’s Dune”, a documentary about an epic science fiction film that was never made.

Alejandro Jodorowsky, an infamous Chilean abstract writer-director, decided to film the science fiction masterpiece “Dune”. The scope of the project was immense, as evidenced even by its opening shot: zooming in slowly from outside the galaxy, passing space battles, pirates, spice freighters, stars and planets, until finally settling on the planet Arrakis.

Here are some of the people who were signed on to the project:

  • Orson Welles
  • Mick Jagger
  • Salvador Dali
  • Dan O’Bannon (writer of “Alien”)
  • H.R. Giger (character designer of “Alien”)
  • Soundtrack by Pink Floyd
  • and many others…

The storyboard, and much of the concept art, was created by Jean Giraud “Moebius”, one of the greatest graphic novel artists of all time.

There are many lessons I took away from the documentary. About overreaching with ambition. About the struggles of the creative process. About vision and leadership and team-building. About excessive sacrifice (Jodorowsky literally gave his son to the project, by pulling him from school and bringing him up as the character Paul he was to play). And about dealing with the loss of a creative dream.

But there is one idea, far more practical, that has been rolling around in my mind since watching the film. And it’s this:

Why are there no professional concept animators for software?

Continue reading A Concept Art Approach to Software

Running a software startup, an eCommerce site, finishing a PhD, and raising son: What I don’t do, to make it all work.

I’ve been balancing a number of things over the past few years, and continue to do so. Yet I’m reaching a point where it no longer feels overwhelming. It’s taken me a long time to get to this point, but recently I looked up from work and realized, “I’m on the right path. I got this.”

I’m finding my flow, and it’s been worth all the struggle to get to this point. I can work on Gingko, and make tangible progress, while not letting any balls drop. I can help my wife, part-time, with her skincare business (everything from logistics, to design, to IT). I can go for walks with my son, do laundry, groceries, read. Spend time with friends. Take time to think things through.

Some have said that I’m “doing it all”, but I want to state emphatically, that the idea of being able to “do it all” is damaging.

In fact, “doing it all” is the primary enemy of a balanced life.

The key lies in what I don’t do. Here are some of the highlights.
Continue reading Running a software startup, an eCommerce site, finishing a PhD, and raising son: What I don’t do, to make it all work.

Communication at the Edge

Why we need a living Tree of Knowledge

We don’t have a medium dedicated to working at the boundaries of knowledge. Such a medium would be immensely powerful for advancing science, education, and governance. It would change the way people live and work.

What we need is a vast, dynamic, collaborative tree structure.

An Example: Unbounded Work and Play

You are a software developer, and though you currently work on writing back-end code for a few clients, you have a constant interest in High Performance Computing.

After you finish your work for the day, you log in to the Tree. In the Tree you are classified as an expert in large-scale galactic simulations. This classification is based only on the work you’ve done in the Tree; not on your age, your location, your language, or your “formal” education.

Because of this, you have a custom feed of “issue nodes” that might fall in your domain. In scanning the issues, you find one titled “Need to run Monte Carlo simulations of galactic rotations, using Hydrodynamics model.”

You’ve done something similar in the past, and though you used a far simpler model for the forces, you are quite sure the basic structure of your code can be applied to this. A quick dive into that issue branch, and the overview nodes tell you that yes, your code could help. You find the root node of your own simulation source code, and drag it onto this issue.

The person who opened that issue might be a PhD student at Brown University, an honours undergrad in Romania, or a bright home-schooled girl in South Africa. In any case, a copy of your code is now attached to their issue, and you probably saved that person hours or weeks of work with one click.

In turn, you’ve been playing with different models of galactic rotation, to see if you can find an alternative to the Dark Matter theory that explains the anomaly (which is listed as a top-level issue in the Astrophysics subtree). You’ve opened your own small issues in your own notebook subtree when you’ve gotten stuck on the physics, and within a few hours received the solutions. You thanked the senders with a click, and kept playing with the code.

Your work might turn up little, but it’s a fascinating area to explore. Still, your account balance from your contributions and solutions has been increasing steadily; it seems experts in simulation are in demand, and soon you’ll be able to devote yourself full-time to working on the Tree. Maybe later you’ll try your hand at molecular biology, another simulation-heavy field where your growing expertise can make an impact.

How, when, and what you choose to contribute to is up to you, and you are free to explore, play, learn, and work in whatever area you like.

The Tree that makes this possible

It’s not a new idea that we need a “GitHub for Science”. However, it’s a mistake to assume that the medium for this will look anything like GitHub.

I think it will look something like this:

A gingko tree of someone tackling Fermat’s Last Theorem.

Trees like this are easy to browse, provide constant context, have no disconnected elements, and can go arbitrarily deep.

Self-similarity & Constant Context

Trees, in the idealized sense, have perfect self-similarity. Whether you are reading an overview of the current open questions in Physics, or the particular experimental details of one botanist, the medium is identical. Only the content and the particular branching structure is different.

Once you take the 30 seconds to learn how to navigate one tree, you can navigate the entire tree of knowledge. There are no link trails to follow, no citations to parse and search for. The entire skill of searching through scientific literature, which takes years to develop, is reduced to using the four arrow keys.

A child could do it.
And, I hope, many will.

While it may seem that the scale of this tree would make this effortless browsing impossible, there are two important points that make this medium feasible.

First, you can and will search for a starting point that you already understand.

Second, in navigating this information, you are always going to be exposed first to a broad overview of any given field, before diving in. At each step, you see the context, which helps guide and inform your path through the deeper levels of the tree.

This not only makes it easier to learn entirely new areas, it also helps you bridge over into neighboring disciplines.

Finally, the uniformity of the tree structure could be used to keep discussions and open questions right there next to the research being done, in context. Learning will no longer be about static facts in a textbook (or Wikipedia page), but a dynamic process the way science is really done, full of exciting unanswered questions.

Unlimited Depth Opens Up the Medium

Current science happens at one level of detail, restricted by the archaic medium of paper (or the modern version, PDFs or static HTML, which are only slightly better).

In general, a graduate student will work for years on a given project, and eventually crop this work into a few hundred pages of a static thesis. And then crop it further to a few pages of static text & images.

What happens to all the source code? The raw data? The unfinished work, the unexplored areas? The dead ends? These often amount to months or years of work. Work that needs to be redone from scratch by anyone following in your footsteps.

If you work in a deep tree structure, there is never any reason to discard anything. You can always reorganize your notes, summarize them. Your notes can become your thesis. With some more summarizing and organization at a higher level in the tree, your thesis becomes your paper. And paper, thesis, notes, and source are all linked together and organized in a way that makes it easy for others to understand.

There is another illusion, more subtle, that the current medium of science perpetrates: that work is ever “done”. This illusion is brought about by the act of publication. Something is either unfinished, unpublished, and therefore invisible, or it is published and static.

By allowing for infinite depth, we are allowing for more information to be added in context. And we are also removing the distinction between a researcher’s notebook, and his “published” work. Or, in a sense, we move to publishing people’s living dynamic notes, complete with doubts, unanswered questions, and unfinished work.

This might be a terrifying prospect for some, but that’s an artifact of the reward systems in place now, and is heavily outweighed by the benefit: working this way turns all science into massively collaborative open-notebook projects.

Other benefits

There are a number of other benefits that come from this approach. A relatively minor one: scientists no longer need to paraphrase and rehash the same introductory paragraphs everyone in their field uses… by attaching their paper to the relevant node, layers and layers of introduction and overview are provided automatically.

This Tree of Knowledge would also have a larger effect on education. Instead of testing, we can let students of all levels try to make a contribution, however small, to the Tree. Why must we go through 15-20 years of school before we’re allowed to contribute even a single word, a single question even, to the living body of human knowledge?


The technical challenges of maintaining such a large seamless structure are quite significant. Also, I am not naive enough to think that a single pure hierarchy can contain all of human knowledge & current research. We need to consider how to handle transclusion (i.e. “symbolic links”), whether or how to handle circular references, etc.

There is also the challenge of maintaining Quality and a good signal-to-noise ratio. Wikipedia has shown that this is a surmountable obstacle.

But I think by far the greatest challenge is not technical, but psychological. Besides the fear of working out in the open, we must also recognize that science employment is based on authority, and authority comes from publishing papers in prestigious journals.

If we entirely remove the publication process, how are scientists to be ranked, hired, and paid? Algorithmic ranking based on Tree contributions? Perhaps funding can be applied to “branches” of science quite literally, and the rewards distributed through the subtree? Maybe we would use anonymous peer ranking? Flattr type rewards?

In any case, it is a challenge, and one that will need a solution. But solving it is not insurmountable, and will have more to do with behavioural psychology than with technology.

The road ahead

At the moment, the use of trees to work with text and images is very new. Mindmaps have done this for a time, but are focused on recall & consolidation. Outliners are focused too much on the structure of a body of work, and are not good at displaying the content.

Our own Gingko word processor is, I believe, a small step in the direction we need to move towards. Structure and content are seen at the same time, the context or overview is always in view, and the content can be extended to contain not just text & images, but also source code, data, dynamic graphs.

If the sum of human knowledge were a book, we already have Google as its index, and Wikipedia as its glossary. What we need now is a tool to serve as the blinking cursor, where the real action is.

(Note: this was originally published as a article)

[Video] How to Write a Great Research Paper

Writing is something that’s extremely difficult to do well.

It is, after all, a form of telepathy. Transferring hazy ideas from your mind, onto an external medium, in a way that some other mind (that you have not, and may never meet), can digest, so that they end up with that same idea in their minds.

I stumbled across this video, and thought I’d share it with you, as well as highlight a few of the points and how they apply in Gingko.

Don’t Wait: Write

“Writing is how we work through ideas, not just share them…”

I thoroughly agree with this statement. If you’re doing research work, or any long and winding creative process, you should be writing daily. Even if it’s just for yourself.

During my PhD work, I often found that writing was a great way to keep the thread going day in and day out. I would keep a detailed log of what I was doing, and why, and towards the end of the day, tell myself what the next step would be.

This is similar to Ernest Hemingway’s advice, by the way:

You read what you have written and, as you always stop when you know what is going to happen next, you go on from there. You write until you come to a place where you still have your juice and know what will happen next and you stop and try to live through until the next day when you hit it again.

– Ernest Hemingway, 1958 interview with George Plimpton

Besides keeping a log & picking up the thread, writing in Gingko as you go is a way of maintaining perspective. You are not simply keeping the thread day in and day out, but if your journal is tree-structured, you can do the same for every week, month, and quarter. This keeps you from going down the blind alleys that litter any creative work.

In a nutshell, this constant perspective could very well save you years off a PhD (or novel, or any other ambitious writing project).

Identify your Key Idea

This, I believe, is the single biggest challenge in the way PhD’s are pursued (at least, from my experience and interviews). And a simple diagnostic is in the title.

Here is the title of my PhD in physics: “Flexible polyelectrolytes: like-charged attraction,
linear stability, and long-term structure”.

Quick: Can you tell me what question I’m answering? Well, neither can I. In the end, I wrote a “topic” thesis, where I “did studies” about some system, but came up with no concrete answers to any specific question. My paper is about flexible polyelectrolytes, but doesn’t firmly answer any one question posed about flexible polyelectrolytes.

Can you answer these about your own work?

  1. What question does your research answer?
  2. Or at least: What more refined questions does your research allow you/others to ask?

The talk presented above does make a good point: you won’t know at first what your single key idea is. But you must keep searching for it.

There’s an oft-repeated statement from journalism that applies: given a day to write a story, a good journalist would spend half a day crafting the right Title and Lede.

For you research, what’s your title? For your screenplay, what’s the logline? In Gingko, what is your root node?

That one sentence deserves more thought than any of the nitty gritty problems that your work presents you, but it often gets no thought until the end, when it’s likely too late (as it was for me).

Put your Readers First

In writing out the core findings of your research, it’s very tempting to go all out on the details. But don’t forget that for your readers, this is all new, and that you are likely suffering from the “Curse of Knowledge” (you can’t imagine what it’s like not to know what you already know).

I find that in this case, using Gingko’s card tree approach can really help. First, describe any given portion in concrete and intuitive terms, as if you were giving a presentation on it. And then, you can expand on that idea by adding 2 or 3 child cards with more detail. And so on until you’re satisfied.

You no longer have  a conflict between “dumbing down” your idea, and presenting all the details. you can do both.


There’s a great deal of good advice in this talk, especially when he touches on general principles of writing as opposed to going over specific structures and outlines. If you’re doing any serious writing, I recommend this video.