Showing posts with label design. Show all posts
Showing posts with label design. Show all posts

Thursday, February 13, 2025

Some Hurried Thoughts

[An image of an imagined computer keyboard key labeled 'Hurry'.]

Given that people aren't always mindful about what they do, sometimes almost preferring that people make suggestions they can just passively agree to, it's quite a responsibility to make really casual choices sometimes.

For example, in Facebook, the choice of metaphor where we call people “friends” if we connect to them socially there has some amazing ramifications. People dither endlessly about whether to “unfriend” someone, or they lament being “unfriended.” These follow from the choice, though, for the system to refer to these people as in fact friends, like we have in real life. It's a weighty decision to make someone a friend, and a lot of work to hold a friendship.

But what if Facebook had called them “guests” instead? What if the metaphor had been that of a dinner party? Would our expectations of them be different? They'd be the same people with the same capabilities. Would it seem like the same huge thing to disinvite someone, or to ask them to leave the party? People do this, and friendships survive. Also, people invite people who are not really full-fledged friends to a party. Our expectations guide us in weird ways. I've come to think of people I'm connected to on Facebook as my party guests, and it leaves me feeling freer to not worry it's so heavyweight to decide that maybe they weren't right for this party.

In fact, though, I wanted to talk about computer keyboards. There are some subtle and interesting influences there. Some keyboards have a notion of BACKSPACE or DELETE, as well as arrow keys. So people rush to make editing commands that make use of these. There isn't always just one single interpretation, so some keys are jump-off points for imagination.

I used to use Lisp Machines decades ago. Special computers that had support for the Lisp programming language in hardware. But they also had interesting keyboards that were evocative in various ways, with fanciful keys labeled SUSPEND, RESUME, ABORT, etc., as well as even stranger keys like ones with roman numerals (I through IV) or with thumbs pointing in various directions (up, down, left, right).

The SUSPEND key was interesting because it strongly suggested the need to suspend a program in the middle, that one might later RESUME. ABORT presumed you needed to stop things, as often the ESC (“Escape”) key does on conventional keyboards. Prominently featured metaphors that made one want to make their programs use them.

Though I often wondered why there was not a corresponding key marked HURRY. Ought stopping a program without intermediate results be the only way to stop them? [An image of an imagined computer keyboard key labeled 'Hurry'.] A lot of programming technology concerns itself with various ways to communicate stopping a program that's running, but always it's assumed that it has to give up on the idea of a graceful answer if you stop prematurely.

For example, there's a technique in graphics called interlacing where when sending a large image, the bits are sent in an order so that you can start to see the image early in fuzzy form and as more bits are received you can display it in crisper and crisper detail. It seemed to me that there might be occasions where you got tired of waiting for a download and pressed hurry to say “stop gracefully, the fuzzy image is fine.” This technique is perhaps not as relevant now that networks have gotten faster, but when first developed was quite important, and anyway I'm just offering it as a way to illustrate that there can be notions of partial results.

Or you might be doing a search and know that something has searched half of something and is waiting to the end to report results but you just want to see what's done so far, so again you could say HURRY and maybe get partial results instead of the full results.

If output is only to the screen, there's little difference between the abort and hurry concepts I'm describing, but if it's an API that returns a structural value, aborting usually means not returning a value, so having a way to interrupt in a way that caused the running program to return a well-structured partial result instead might create some different interaction styles. Here's a sketch in Python:

from collections import namedtuple

class HurryException(BaseException):
  """
  An exception that could be connected to
  a Hurry key interrupt, if we had such a thing.
  """
  pass
  
searchresult = namedtuple('searchresult', 'found,complete')
    
def hurryable_search(tester, collection_to_search):
  found = []
  complete = False
  try:
    for x in collection_to_search:
      if tester(x):
        found.append(x)
    complete = True
  except HurryException:
    pass  # Allow what may be a partial search
  return searchresult(found=found, complete=complete)
  
def hurry_up():
  try:
    raise HurryException()
  except Exception:
    # If there's no handler, then don't hurry after all.
    pass

Note that there are other possible implementations that, rather than raising an exception, might just dynamically adjust a parameter that controlled the degree of care taken on a search step. I'm not suggesting a specific strategy, just that such strategies exist.

And I could be wrong about the particular examples I've chosen being good ideas. Maybe they aren't the best illustrations. But I'm in a hurry to finish this essay and they were what I came up with in the time I alloted myself, before I told myself to just hurry up and go with what I had.

What I'm really trying to say is that I think the absence of a HURRY key on the keyboard means people mostly don't give a second thought to this question of whether programs should be possible to ask to “hurry up.” People just assume that if the key isn't there, the functionality is probably not needed from the keyboard. In effect, they assume the key is not there for a good reason. But maybe it's just an accident or a failure of imagination.

So, just to estate something I said already, but now that you have a bit more context: We spend a lot of time passively accepting that these metaphors we are offered, whether in terms of models of interaction or markings on a keyboard, are the right way to think about things. And we spend far too little time asking ourselves if they're the wrong metaphor or if some interesting metaphor has been omitted. Out of sight, out of mind, I guess.

It's a small point. But I figured if I said it out loud, you might end up passively accepting that it's something you really should think about.

 


Author's Notes:

If you got value from this post, please “Share” it.

The Suspend/Resume/Abort image is cropped from a photo I took of my own Lisp Machine's keyboard.

The HURRY image was generated at abacus.ai using Claude Sonnet 3.5 and FLUX 1.1 [pro] Ultra. Light post-processing was done with Gimp.

Monday, September 23, 2013

The Offudio Project Concludes

The Beginning

In case you didn't read The Offudio Project Begins—or in case it was too long ago to remember—please allow me to briefly recap:

The Offudio Project was a plan to convert my home “office” into a “studio.” The term “offudio” was just a temporary name for the transition. The hope was that giving the planned result a new title, that of “studio,” would give me new power to reconceive my use of the space. As I wrote in the first article:

“I want a space that invites me to be other than I am now, to reinvent myself. For example, art and music aren’t really central to what I am or do now. Maybe they will figure more prominently in the redesign. I don’t yet know.”

—me, October 19, 2012

The project took longer than I expected, in part because I live in a small New England house. I needed a workspace and usually use my driveway. But there was lots of rain and snow for a long time, and I didn't want to do the work indoors. So I waited for spring.

The Transition

Our story today begins with a junky room and a ratty old wall-to-wall carpet. You can barely see the floor at all in this original arrangement. Every bit of the room was used, but even as that was utilitarian, it was also stifling.

The picture at right is borrowed from the first article, and gives you a sense of how much clutter we're talking about.

For a room to feel like it has options, I felt, it must feature unused, outright wasted space. Such space might never be intended to be used, but it sends the visual signal that there are ways it could be used. It invites forward thinking. It isn't the dead end result of long-abandoned hopes.

So the first step was just to remove all of the junk, and the plan was to allow back in only those things that really needed to be there.

As an intermediate matter, of course, that meant cluttering the rest of the house somewhat. In computer lingo, we call that “intermediate expression swell,” the notion that the middle of a project may grow to take up more space than is needed in the end. I was trusting it would fold back down, even elsewhere in the house. Mostly it has.

But it was also an opportunity to go through things I don't use and decide what needed to be there and what could be thrown away or put away into less accessible storage, such as the basement.

The picture below shows the floor after removing a lot of junk. You can see here the place I where soon I'd be putting in some real energy to replace that icky old carpet with hardwood. The carpet was old, dusty, stained, hard to clean, and just unsightly. It needed to go.

I tentatively peeled back the carpet:

It had a liner underneath that was in bad shape. And the floor beneath that was in pretty sorry shape as well:

But after a good scrub and an undercoat of Kilz stainblocking sealer, it looked a lot better. At one point I actually kicked over the can of paint, which was quite exciting. I wish I'd gotten a picture of that. It was like herding cats, but I realized if I just pushed the paint in the right way I could pretty much still paint the floor as I'd intended. I just barely managed to do it without painting myself into a corner, and everything came out fine:

Though if you look carefully you'll see I wasn't yet brave enough to remove the carpet going up the wall. It covered something of unknown nature that I later learned was cinder blocks. But for now I had enough to deal with. It was time to start laying subfloor, and fortunately there was a nice modular solution, called DriCore, available from Home Depot:

DriCore is designed to solve various moisture problems that happen in basements, and this wasn't actually a basement, but it seemed prudent to do it anyway. Pretty much all I had to do was snap it into place, leaving spacers around the outside for it to breathe:

It didn't take long to cover the entire floor:

For a lot of uses, the DriCore would have been fine. Some people just use that as actual flooring. But I was determined to have hardwood, And hardwood needs a certain depth to nail into. Since DriCore is too thin, I added a layer of plywood on top of it. I figured that would make it nice and sturdy anyway. And the DriCore is ridiculously strong, so it doesn't mind the weight:

It was finally time to peel back the carpet on the wall and see what was underneath.

It was cinder block with some 2x4's on top to cap it. They stuck out a ways from the wall, creating a bit of a ledge on some but not all the walls. That came to be another big problem: Every wall had completely different structure along the bottom, so whatever kind of trim was going to be used would have to be custom-made for each wall, and yet would have to join at the corners. I resolved to worry about that later.

I'd done hardwood floors before and I was dying to get to the part where I was laying out individual strips of board. That's the fun part, even if it's also a bit painstaking. And it's what I wanted to do next.

Boards come in different lengths and you have to custom cut the last board on each row to make the length work out:

What I really like about this is that every board is unique. It's like a jigsaw puzzle with no key. If you have the time and patience, it's fun to get the wood patterns from board to board to match up in interesting ways. Here the large knot is actually four boards chosen to come together in a way that looks somewhat coordinated. It's not a perfect fit. But it never really can be. It's just fun to try. Jupiter has its great red spot, and my floor has this:

The individual hardwood boards are tongue and groove, so they sort of snap together. Eventually you'd nail them but they go together well enough that you can cut all the pieces and lay them into place to see how they look before doing that. I was pretty picky about this part, so it took longer than it needed to, but at last I got to the other end of the room:

It looked like a floor at this point, but wasn't nailed together:

Doing nailing by hand is hugely difficult, not just because you have to hit so many nails in so short a time, but because you don't want to make mistakes. A bent nail can be a pain. So there are nail guns that help you manage that, and you can rent them from Home Depot. There are automatic guns that do almost all of the work for you, but they seem like an opportunity to shoot yourself accidentally, so I prefer the semi-automatic ones. They make you do more but are harder to set off by accident.

Click here to see what it looks like for someone who is used to it—this is not what it looked like for me doing it. I got pretty efficient at it after a while, but it still took a whole day. The guy in that video would have had it done in just a few minutes.

Basically, you have to go back and open up some space on one end so that you can nail in boards one at a time:

As each line is nailed in, the gap between what's done and what's yet to do slides across the floor:

And suddenly the floor part was done:

Next it was time to paint hat ugly cinder block. Of course, I had to be careful not to get paint all over, so I used the boxes the hardwood had come in to protect the floor, augmenting here and there where I needed extra width by repurposing some already-used Christmas gift wrap. Unfortunately, I had no substitute for using a lot of new, blue tape to cleanly mask the 2x4's:

Here I peeled all of that back up to see how the paint job came out and think about staining. I made a note that I'd also be needing to touch up the wall with a bit of patch to make sure it came all the way to 2x4. The bottom edge here is pretty messy where the two meet:

Now all that remained was the baseboard trim. This was a big puzzle for me, but I had all winter to think about it because it was clear I would need my driveway to do the work, and it just wasn't available. The hardwood instructions had said to leave a gutter around the edge for expansion due to moisture. I've used this room a long time, and it never has moisture, but I followed those instructions. Also, the gap was large, so conventional baseboard wouldn't cover it.

The cinder block itself was easy. I just painted that white. And I stained the 2x4 boards that sat on top of them. It was the gutter that continued to vex me.

I finally settled on the idea of using 2x3 and 2x8 boards. Not wanting to spend a lot, I went to the culled lumber section at Home Depot, where you can buy scrap lumber for pennies. I stained the wood, and then glued the boards to the cinder blocks with an adhesive that was designed to work on both wood and concrete. The gutter was also supposed to allow breathing for moisture from the concrete floor, so I didn't want to seal it in. I put the wood on felt spacers so that it didn't attach to the floor and the floor can slide back and forth if it needs to expand.

The overall look was exactly what I'd wanted. The baseboards are a bit more informal than you might want for some rooms, but this is a room off the garage of my house. This will never be a fine dining room. And yet even for its crude nature, it's got a certain elegance:

The baseboards stick out a bit from the wall and that makes it hard to put some furniture against it. But that has ultimately worked hugely in my favor because it's helped me resist the temptation to put heavy bookcases against the wall—things that would need something to lean against. Instead I've opted for lighter, more airy furniture, and that has contributed to the open look I was seeking for the room.

The Reveal

Finally I could move furniture back into the room.

Staples had chair mats made out of bamboo that were perfect for protecting the new floor from a rolling chair. A desk with a tempered glass top, an open riser to hold up a computer monitor, and a set of translucent stack trays contribute to the open look. I used an oversized cloth bag behind the desk to hide a lot of computer cords that otherwise would have had nowhere to go:

An old armchair, a door desk, and an open bookcase each have that open feel that contributes to the overall room look.

And out in the middle of the room, the floor is pretty and smooth and one can easily slide around in sock feet. It's a pleasant and inviting space where I can sit and read, play music, or even get up to dance when no one is looking, all in a studio that was, start to finish, my own creation.†


Author's Note: If you got value from this post, please “Share” it.

† In the end, it was my own creation, but nothing in the world ever really happens in isolation. Critical ideas and support that led to the creation of this space came from my wife and several dear friends. My wife also patiently suffered a lot of intrusion into other parts of the house by wayward furniture elements that had no home for a while. And, last but not least, my daughter contributed critical construction assistance at a key point in the process. I'm really happy for all of their participation. It wouldn't be the great new space that it has become without all of these inputs.

Originally published September 23, 2013 at Open Salon, where I wrote under my own name, Kent Pitman.

Tags (from Open Salon): aesthetic, recreation, creation, transition, building, hardwood flooring, hardwood floor, flooring, floor, hardwood, reconstruction, construction, retreat, escape, personal space, rethink, redesign, design, not politics, music, art, offudio, studio, office, home office

The first part of this two-part series is here:
The Offudio Project Begins