Jonathan Harris writes in heartwarming detail about the highs and lows in his life, his work, and overcoming creative blocks in Navigating Stuckness.

Jonathan ends his essay with some hugely uplifting advice:

In life, you will become known for doing what you do. That sounds obvious, but it’s profound. If you want to be known as someone who does a particular thing, then you must start doing that thing immediately. Don’t wait. There is no other way. It probably won’t make you money at first, but do it anyway. Work nights. Work weekends. Sleep less. Whatever you have to do…

We have these brief lives, and our only real choice is how we will fill them. Your attention is precious. Don’t squander it. Don’t throw it away. Don’t let companies and products steal it from you. Don’t let advertisers trick you into lusting after things you don’t need. Don’t let the media convince you to covet the lives of celebrities. Own your attention — it’s all you really have.

I could go on and quote the entire article, but please save me the trouble and lend 10 minutes of your attention to reading this.

Make art, not money

Creative code is an experiment with the goal of surprising and delighting. Make something useless. Because it might help you become a better engineer. Don’t quit your job, but take a day off and try.

A great talk by Brad Bouse on the benefits of creative coding, experimenting, and trying something new. This applies to any creative industry, but it’s especially true in tech. There is always something to be gained from making experiments.

So someone stole your idea, eh? Kent Fenwick:

When other people ‘steal’ your ideas, remember a few things:

  • They were never your ideas
  • Ideas are a dime a dozen, execution is where the dollars lie
  • Some of your ideas must be good. The next time one comes up, stop thinking, stop talking and start doing.

An idea without execution will remain simply that: an idea. Or as my friend Brendan Dawes likes to put it, Talk - Action = Shit.

Creating something new, be it words, art or code, can give you an incredible high. Michael Lopp, aka Rands, agrees:

For me, the act of writing creates the builder’s high. Most pieces are 1000+ words. They involve three to five hours of writing, during which I’ll both hate and love the emerging piece. This is followed by another hour of editing and tweaking before I’ll publish the piece, and the high is always the same.

I hit publish and I grin. That smile is my brain chemically reminding me, Hey, you just added something new to the world.

This is why Rands writes, and it’s why I write code. Coding, like any decent creative process, is a demanding pursuit. When I’m stuck in a coding problem, I hate computers, those stupid dumb metal bricks. But really, I know it’s my fault. I need time. Time to think.

I take plenty of time. I bang my head against a problem for hours. Days. Weeks. Slowed. Stuck. In a mental maze. A maze I made.

And then BANG! From nowhere an adrenalin rush, that aha! Eureka! At once I rush over to my desk and bash on the keys with the solution. I feel slightly smug — a bit too pleased with myself. That is, until the next problem.

As Jacob Mulligan puts it, it’s the coder’s high. And I’m an addict.

Our web development workflow is completely broken

Kenneth Auchenberg speaks at Full Frontal 2013 about today’s web development workflow. He argues that developers should be allowed to use whichever code editor they prefer, and not be forced to use the different developer tools bundled within each browser.

The open web follows standards. We have agreed upon everything that is running within the browser. But our interface to the browser doesn’t follow any standards. We need to change that.

Kenneth goes on to demo his RemoteDebug prototype — an initiative to bring a common remote debugging protocol to all web browsers. I for one fully support it. I hope it gets the recognition it deserves.

Smoothing equations: a simpler way to ease variables

Smoothing is a quick trick I use all the time when I want to make an interactive element move more naturally, or if I want to even out some erratic numbers (sensor data, I’m looking at you).

The most basic way to change a number is this:

value = newValue;

But that will only set value to newValue immediately. What we want is a way to gently and incrementally change value to newValue. To do that, the simplest smoothing equation is this:

value = (newValue + value) / 2;

This sets value to the average of itself and newValue with every update. Let’s say value is 100 and newValue is 200. Run the above equation a few times and you’ll get this:

100
150
175
187.5
193.75
196.875
198.4375

…and so on until it becomes almost exactly 200. This is fine, but we have no control over the rate with which this smoothing changes. So I bring you another magic smoothing equation:

value += (newValue - value) / rate;

If we ran this bit of code with value as 100, newValue as 200, and rate as 2, we would get exactly the same results as above. But! Now we can change the rate variable to any number we like, greater than 1. Let’s try 5:

100
120
136
148.8
159.04
167.232
173.7856

…and so on until it eventually becomes exactly 200, but this time at a slower rate. Let’s try that again with rate as 1.1:

100
190.91
199.174
199.925
199.9932

…and we’re almost at 200 already!

These two equations are a cheap and simple way to smooth a variable. It’s mostly useful for smoothing a variable which is always changing, such as the position of an object in a game or an interface. If you’re making one-off animations however (such as, the user presses a button and an animation occurs), you’ll probably want to use more sophisticated easing equations.

Check out this interactive demo of the rate-based smoothing equation.

Move your mouse around and watch as the pink dot chases to catch up. Then try adjusting the rate to see the difference in smoothing behaviour.

Youssef Sarhan from Hypercube on apps verses the web:

The web is a bright jewel in the crown of human creation. Nobody owns it. It exists independent of what we do with it. It has no motive other than to facilitate human expression. It is, in fact, evolutionary by nature, and it would befit us to reflect on the matter.

The notion of a centralised approving agent acting as a gatekeeper is antiquated and forever invalid, it’s the very system the web has destroyed.

Christoph Ono pleads for designers to stop redesigning Facebook. There are many more UIs that need design help:

Facebook, Twitter and iOS 7 already are amazing. While tweaking the icon of the Photos app might make a small difference, there are so many ways to make a bigger difference.

I’m sure many companies that don’t have the expertise in-house would be interested in working with (and paying) pro-active designers in upping the quality of their products.