warpedvisions.org — Stuff to make you think

Essays, how-to articles, and other nonsense by Bruce Alderson.

Rediscovering the interestingness in my Twitter feed

March 18, 2017

Sometime over the last year I stopped paying attention to Twitter. Between the political cacophony of 2016 and a growing list of people I was following, the noise ratio was just too poor to hold my interest. Twitter had become like LinkedIn to me, a service I used to have a professional presence, but not one that inspired or taught me anything. I had given up.

Read more

ūü¶Ą Unicorns and the Shifting Landscape of Computing

April 3, 2016

Now this is where it gets interesting. I’ve been interviewing and hiring for almost 20 years. I have accumulated a bunch of questions I ask people. And while the technologies I talk about have changed, I have always expected certain skills and behaviours from specific levels of software developers. In terms of soft skills this has been very successful, but recently I’ve noticed that the hard skills have dissipated.

Read more

The quest for focus

December 29, 2014

As designers, software developers, and business geeks we thrive on a few things. We seek inspiration. We obsess over details. We work long hours. And we need *focus*.

Read more

Coming full circle (or why I’m abandoning my custom CMS and using WordPress again)

December 12, 2014

As a¬†software designer, I love to¬†design software. As software developer, I love¬†building software. When I¬†dream of better things, I¬†funnel my ideas into new projects. When I don’t¬†have time for all of my¬†side projects, the¬†projects pile up in a corner and gather dust. And when a¬†side project is an unfinished¬†publishing platform it gets in the way¬†of¬†writing.

Read more

The road to and from and (hopefully) back to simplicity

May 2, 2014

I learned almost nothing about writing production code in my early years. And while discovered that I loved to imagine and build things in code, I barely brushed against the principles that would later be required to make real learning possible. My skills didn’t improve much either as my time was largely unfocused.

Read more

Simple patterns: PHP to JavaScript

July 25, 2013

Sending a client data is trivial in most dynamic languages, and PHP is no different. You return a response body with the result of a `json_encode` and your data model.

Read more

HTTP, GET, and fuzzy semantics

January 16, 2013

A developer asked me a seemingly obvious question today: I have an API GET request that requires a JSON body. Is that okay? It’s a good question too. It turns out the answer isn’t as simple as it should be. On principle the answer is, “No, it’s not cool”. A GET is an idempotent request […]

Read more

The myth of uphill

September 3, 2012

Friction works against you. It exceeds your ability to progress. It deflates you, stripping your motivation. It’s the hill you see before starting a difficult project. It’s the gravity that pulls you away when interest wanes. I’m starting a small project for a client today. It’s a simple set of improvements to something I built […]

Read more

Simple sets in JavaScript

June 29, 2012

One of my favourite JavaScript features is its literal object notation. It allows you to declare data structures in JSON, which is a very succinct, C-like syntax. You can use this notation to declare SETs, and the a in b syntax to verify a variable is in a set: /* Declare your set as a […]

Read more

Giga-boxels, the future is big

March 8, 2012

Somehow I missed the recent larger EC2 unit sizes: When I saw this, I immediately thought: these numbers will have K, M, and G suffixes within the next 5 years. Compute units will be sold as 88 mega-ECUs. Imagine 88 giga-ECUs? The ECU is similar to our old measure of computing: boxen (except more virtual). […]

Read more

The facade of uptime

February 9, 2012

While writing a spec earlier today the last few years of progress in server land hit me: uptime is a facade. In the early days, server resources were expensive and scarce. Uptime was sacred. Long running hardware was celebrated, UNIX tools were born, beer was consumed. The problem of focusing on the hardware is that […]

Read more

Real work is boring (but I love it)

December 24, 2011

I had an epiphany early this year: getting good at something isn’t about finding a groove or being especially clever, it’s about honing a method of doing something. Or lots of methods, meticulously crafted, carefully practiced, and well executed over and over again. That’s it. The problem is in discovering the method. It’s harder than […]

Read more

The problem of organization

October 31, 2011

It’s not that these tools and techniques are bad in themselves, but our use of each should be fit into a well tuned approach to building software. An entire project delivery should be tidy, professional, and complete. There are a few causes to the problem of organizational buildup. Our software is limited, our methods need […]

Read more

HOWTO get better at stuff

May 16, 2011

If you want to get better at something, do a lot of it. Throw yourself at practice and real chances to do it. When you want to become great at something, stick with it, obsess over it, and suck up all of the knowledge that surrounds it. And when you want to become truly incredible […]

Read more

On being awesome: just do it

January 24, 2011

Merlin Mann asks us why we’re waiting to be awesome, as he remembers Steve Job’s 2005 Stanford address. It’s a good question: why do we wait? There are all sorts of reasons, of course, but in the end my simple philosophy is: just fucking do it. Sometimes I have to say it to myself out […]

Read more

Tables versus CSS, redux

January 9, 2011

I’m a bit surprised that the argument over tables versus semantic layout is still floating around. It ignores the obvious: Any set of nodes can be rendered like a table Any table node can be rendered like a non-table node There is really no difference between a <div> and a <td>, except for the default […]

Read more

Things I’m still learning, 2010 edition

December 18, 2010

2010 has come and gone. I’ve shipped a few projects, each a number of times. I’ve registered dozens of domain names and dropped a few of the older ones. I’ve started (but not finished) a dozen spare time projects. I‚Äôve had hundreds of new ideas, and a few of them were even interesting. I‚Äôve learned […]

Read more

Exposing design

November 22, 2010

When you describe a design to a group of people, each person imagines something different. Depending on your story and the individuals, understanding may vary wildly. And if it differs enough, the result is chaotic–unpredictable and often negative. You need to fit how you show your ideas to different groups of people carefully, and notice […]

Read more

HOWTO: Directory recursion in Boost (and other tips)

April 23, 2008

Boost’s Filesystem library is an incredible library: it abstracts paths, directories, and stat results. It simplifies coding shell problems in C++, it’s portable, and is maintained by a large community of contributors. The one downside of Boost is that some of its newer libraries are poorly documented. ((Something I want to contribute to.)) Until I […]

Read more