Notes

Contents

Writing code

As a group, software developers don’t practice enough. Most of our learning takes place on the job, which means that most of our mistakes get made there as well. Other creative professions practice: artists carry a sketchpad, musicians play technical pieces, poets constantly rewrite works. In karate, where the aim is to learn to spar or fight, most of a student’s time is spent learning and refining basic moves. The more formal of these exercises are called kata.

Abstraction

From a bit to a few hundred megabytes, from a microsecond to a half an hour of computing confronts us with completely baffling ratio of 109! The programmer is in the unique position that his is the only discipline and profession in which such a gigantic ratio, which totally baffles our imagination, has to be bridged by a single technology. He has to be able to think in terms of conceptual hierarchies that are much deeper than a single mind ever needed to face before. Compared to that number of semantic levels, the average mathematical theory is almost flat. By evoking the need for deep conceptual hierarchies, the automatic computer confronts us with a radically new intellectual challenge that has no precedent in our history.

Organization

One thing that bothers me about my efforts to stay organized, even in light of modern computing tech, is that I still simply have no obvious way to portably sync knowledge, todo lists, notifications, etc. between devices.

Sure, I can use Google Calendar for notifications when I’m in my web browser, but what about at a Linux shell? Can I download my task list into a plaintext format? Can I grep it?

It seems like, for all of our time spent building better technology, all of our efforts at making life organization easy are dominated by vendor lock-in and proprietary data formats. Org-mode is maybe the best thing out there - but it’s a complex beast, and only works marginally well on, e.g., Android.

If you want control over your own data, this is even worse. Then you have to manage a means of syncing it yourself, which is time-consuming and complicated.

Genius

Think Different:

Here’s to the crazy ones. The misfits. The rebels. The troublemakers. The round pegs in the square holes.

The ones who see things differently. They’re not fond of rules. And they have no respect for the status quo. You can quote them, disagree with them, glorify or vilify them.

About the only thing you can’t do is ignore them. Because they change things. They invent. They imagine. They heal. They explore. They create. They inspire. They push the human race forward.

Maybe they have to be crazy.

How else can you stare at an empty canvas and see a work of art? Or sit in silence and hear a song that’s never been written? Or gaze at a red planet and see a laboratory on wheels?

We make tools for these kinds of people.

While some see them as the crazy ones, we see genius. Because the people who are crazy enough to think they can change the world, are the ones who do.

Java

http://www.crosstalkonline.org/storage/issue-archives/2008/200801/200801-Dewar.pdf

Algorithms