Civilised Discussion

November 19, 2009


Howdy all, long time no see. There’s a tidy little use-case not being addressed well by existing software… something like:

“You’ve got a song on your laptop, you want to play it on your stereo, but being tied down by a wire is a bummer”

Computers in the living room, yada, yada. If you’re a chump who’s really with it, you have some fancy bo-schmancy media server, you compulsively synchronize your laptop’s music (most computers are laptops now) with your media server, and its plugged into your 13.1 channel dolby ultra-digital super-surround system. Me? I’ve got a busted old laptop plugged into my ghettoblaster. I think I updated its music folder last year.

Phase 1: It’d be pretty cool to make a sort of “free airtunes” that ran on Gnome, OS/X, & Windows. It’d have a speaker-server piece that you drop on your computer by the stereo, and it’d have a client piece that manifests as a notification area icon. Whenever a speaker-server is visible on the local network (zeroconf/rendezvous), you get a pull-down in the notification area to select the speaker-server for output. When music is played in your music player, it comes out through the remote server. By inserting into gstreamer or coreaudio (on Windows?) you intercept data while its still OGG/MP3, and zip it over the wire(less). So… you use your normal music player, and it just happen to tunnel through the network and come out on a stereo across the room.

Phase 2: A really simple queue-based HTML music player that runs on the speaker server. So you can still play directly as in Phase 1, but multiple people can also connect and “queue up” songs to be played in the future. So the queue is a mix of music queued by different people from their local laptops, and its pretty much just a “here’s what’s coming next” list, a play/pause button and a skip.

I think a solid implementation of Phase 1, that was dirt simple to install would find a lot of users. I think there’s some cool places to go with this after Phase 1 too, in the direction of music server player stuff more targeted than “home TV screen media server” stuff. I admit, they overlap a bunch, but I think there’s benefit to be had from a focused attack on music (also small diffs like the focus being local-to-computer music, not synching to a central archive, etc).

Anyway, I’m up for hacking on something like this as a contributor, if somebodyelse(s) is(are) down to be the Big Boss(es). In particular, I’m happy to help with design as desired, write the OS/X client bits, and contribute code on other assorted pieces. I’ll drop by #musicbox on for a couple days to see if there’s interest. So if you’ve got interest in a new project and this looks fun….

First off: Shoes is good. Processing is pretty good. Their stories are great. Programming, it turns out, is way way way more fun when you can just, you know, sit down and program instead of dicking around with libraries, installing shit, configuring shit, writing xml manifest doohickies, and otherwise NOT PROGRAMMING. Programming (making stuff) is good: A.

Secondly: Web pages are bad. Story: friend makes bipolar humor magazine, friend expects to be able to, you know, just put it on the web. Friend discovers putting things on the web not nearly so simple. Seth vicariously relearns: putting things on the web is not simple. This is stupid. It is ironic that we (programmer-technologist-engineer-robotlove narrative-collective) solved WYSIWYG for paper in the 1980s, and paper is a domain that’s not “in the system”. Programmers invented the web domain, we collectively control it, and we haven’t made this rather obvious thing work. I understand many reasons it is this way, partial credit ok?, but its still bad: C- (i know you can do better, see me after class).

Finally: Tablet computers are good, tabletpc is bad. For random reasons, I’ve borrowed a Tablet PC. I had not expected to be so swayed. Its great. WindowsXP doesn’t use it very well, (Vista might be better, I dunno), GNOME barely uses it at all (treats it as a mouse for all intents and purposes), but as a software maker person, it was like seeing a million ways I could design software to use this thing. I desperately wanted to start writing table PC software, and then I remembered it would be useful for, like, 5 people (I’m not counting small tablets like phones and maemo here, they are very cool too, but they don’t have the size or the sort of pressure sensitive wacom like input needed for a lot of what I’m dreaming of). If every computer had a tablet screen, I truly think computers would be a more lively creation oriented… er… medium (that’s really the whole theme of this message: how do we making shit so uncomplicated its feels effortless and fun and lively). Its a night and day difference what you EXPECT a computer to have (e.g. mouse or similar pointer device) vs. optional peripheral. Its too bad the touchscreen didn’t make the cut when Windows codified the mouse+keyboard+pixeladdressedscreen. For tablets, I cried and pooped my pants (yes, that good): A+.

Vis a vis web page creation…. I think there’s a rather tasty snack to be had writing an unusual wysiwyg web page maker, that throws up large rambling (“art oriented”?) canvases using drawing, scribbling, built-in lappie cameras, some typing and other shit. Not this boxy professional sort of web page, those are great, but something that flows a little easier (with the tradeoff being, a little more mess). Call it Scramble, or something, just good for putting up a mess of cool shit.

Draw something on a sheet of paper, hold it up to the laptop camera, you see a preview of how it will look inserted (with white areas turned transparent), click button and its placed. You could drag its handles to move/size it. Draw link areas in, and a pop down appears of other pages on your site (maybe pop down of any open tabs in the browser too?). Select a target, or click “new page”. Keep going, drawing sketching, dropping stuff. Allow creation of simple multi-frame animations. It would be especially cool if you have the animation beat-synched (to real audio?). This could be especially cool if it was pen oriented, but I think there’s a lot of potential even using a camera and a mouse. It makes big sprawling 2D spaces. There’s good potential for using the web as a different sort of medium.

I’m a doofus. I added a page from inside the WP interface instead of creating a post. Here’s a response to Paolo from long ago about audio on linux… I mention these because a lot of GNOME people may never have been sucked into the strange world of electronic music apps on Linux, but some of them are quite cool (if crufty), and a lot of fun for programmers.

re: Paolo about music audio on Linux:

The strange thing about audio apps on Linux is they’ve happened (in scores) by a process of acretion. There’s nothing really geared toward people getting started, but the belly of the beast is incredibly rich, though very much geared toward electronic music… much more impoverished for guitar effects. But, yeah, consistently littered with irritating interfaces. As seems to often be the case with Linux, there’s a lot of choice with tradeoffs you don’t want to make, rough gems “on the inside” and one or two semi-polished gems.

The motherload is PlanetCCRMA @ Home put together by stanford’s computer music center. Every time I browse there I find surprising new projects. Two notable apps that are really fun for programmers (but a pain to use in many ways) are:

Supercollider -a smalltalk-esque programming system for putting together music “pipelines”. Its incredibly fast, has VERY rich filters, and they are some of the best sounding in the world (inc. commercial). Supercollider’s filters would make an excellent basis for a more readymade app as well, since its synthesis is done out of process and can be externally controlled through OSC (the next evolution of MIDI). I recommend looking at supercollder just because of its “holy sh*t” factor.

PD – pd is a visual “filter chain” based programming environment. You drop filters, sources, and sinks down and draw lines to connect them together. Its commerical cousin Max uses a nicer widget set, but once you get past the archaic widgets, Pd is quite nice, has lots of inline developer docs, etc.

Neither of these is an end-user solution to the problem Paolo outlines, but a programmer could build his own tool pretty quickly using one of these.

Because LADSPA, the Linux audio plugin API, is pretty well defined (and very simple), it’d probably be easy to hack together an audio effects rack that’s good for guitar “pedal” with a nice GTK interface. I agree that many people would benefit from clear easy to use audio apps like this, especially ones that fit with a clear physical analogue like you’d buy at a music store. If you use LADSPA, and realtime isn’t as critical, you could bypass jack and not require the daemon munging. There’s a lot of plugins. The biggest problem is selecting ones that sound good. There are many of these, and even more terrible ones.

You got me. :-)

October 26, 2008

Rodney’s taken me to task for my silly rhetoric… score! yes content still takes bits on a disk, it exists, I just don’t consider it a very useful category for thinking about what to make. I’m not talking about fanciful abstract users…. *I* never think of my own stuff as content, and I doubt many of you do either….perhaps occasionally in a more sysadmin-y context I do (upgrades, backups, etc).

Abstractions can be valid, but still not illuminating.

But in any case, I substantially agree with Rodney, esp that the set of total document types can’t be sensibly enumerated beforehand (because people ARE quite different from eachother, with the caveat that I believe there are activities/behaviors that large classes of people share, and those can be designed around). It seems pretty limited to only worry about the “desktop”, and I share the hope that Open Source continues to move into other types of computers (go android). Peace bro.

Content doesn’t exist

October 25, 2008

I like what Mark’s saying.

  1. A lot of people do not understand folders…at least, not the same way most of us do. Even if they do, they may not be fluent enough with the folder structure to particularly want to dig around looking for things.
  2. A fix that’s not at the level will be confusing…at least, in some situations

Its great to see people getting hungry to hack on the main shell. Here’s some thoughts…

Content doesn’t exist. 

  • Q: Dude, what are you up to? A: Editing content, brah. 
  • Q: Fuck we got back late last night, you go straight to bed? A: No, I had to download a bunch of content before my flight.

Content is a bullshit word that means: “I admit there’s stuff that’s more important than my program and should be the focus, but I haven’t thought about it much“. Interesting note: outside the application programming world, content is also a bullshit word. E.g. in sales content means “that important stuff we’ll insert here or write later to make people agree with us“. E.g. in web development, content means “that important stuff I’m going to try and create a framework/layout/appearance/whatever for without having to specify“. Content is from the language of weasel-ese.

But I’m too hard on the word, there’s really nothing wrong with it, and I appreciate the implicit recognition contained in the word about what’s really important to users. This is a long-winded way of stressing (and I can see there’s lots of this going on already)….


And because the way we talk about things influences how other people think about them….


I suspect an abstraction/metaphor for dealing with content will only go half-way, because the rest of the distance is gotten by specifics, some of which are do-able without AI, and some of which are not.

An image is a very different beast from a song. A photo I took myself is a very different beast from a logo I downloaded from A photo I just took is a very different beast from a photo I took 4 years ago. When I’m emailing my grandmother, a photo I took this morning of her eating cheesey poofs is a slightly different beast from the 400 photos I just copied from my camera.

Its simply not possible (and hence, not a good idea to even try) to do the ultimate interface…. “give me that thing I want right now”. I’m not a big fan of automatically populating lists according to some fancy algorithm that doesn’t really know enough to get things right, and hence results in unpredictable results. That just gives me more things to skim through before I have to fall back on manual categorization.

Even relatively simple algorithms like “most frequently used” (e.g. in the Windows XP start menu) can be, at times, annoying. Its all about balance, balance, balance, and good taste.

I’d suggest making a long list of magic that you’d like to see in an interface. Some of it you can do, and some of it you can’t, but its cheap to dream bigger, and you’re more likely both to notice where abstractions (of any sort) will be limited and specific if…then statements are in order, and to improve the relevance of your abstractions. The point is not to support everything on the list, even if it were technically possible, there’s no good UI for most of these without un-doable-AI. The point is… feed your super-smart pattern matching brain with specifics so it comes up with GOOD generalizations.

  • If I just edited a photo in gimp, I’d like it to be really easy to attach (woah! idea, what if the file dialogue had a “stuff that’s currently open in another program” section with little thumbnails??? maybe it’d make for great workflows… you’d open a document (see my hands are dirty too! document is no better than content) once, and then it’d be stinking easy to get at in other programs… see, typing out these lists is already giving me ideas)
  • If I’m an active google doc user, I’d like to have google docs easily available in OO, maybe even interspersed in my open file list. Maybe it’d be cool if all my OO documents available in gdocs too, dunno.
  • If I just uploaded a bunch of photos from my camera, I’d like them to be really easy to get at when I use gimp
  • I want to be able to read any web pages I browsed in the past week offline, which is sort of a BS generalisation, but in particular I want to be able to read any stuff pertaining to API references, so when I’m programming in the park I can still get at all the great tutorials I read earlier
  • I want new music I add to my computer to immediately show up in my music player, maybe the same way itunes deals with a CD…. maybe I don’t want it added to the library, but I want a “New Music” section or something that I can click “Import” and “shwooosh” its copied to my library.
  • …and on and on….
Beware the emotional thrill of pretty screenshots
Things feel different when you use them. Its easy to go “oh, that looks good, I feel happy”, but you can end up in a world of thumbnails everywhere you don’t need, fancy graphics, and not as much usefullness.
Beware getting too attached to something before you see if it looks pretty in screenshots
Its gotta be doable in a 2D UI, and its gotta look good.
Oh well, my sauce is getting weak toward the end here. Tootles.

Waves Hand

May 18, 2007

To those who have checked out the URL, its a total coincidence that something exists there that happens to look like a partial implementation of the mockup. You see nothing. *waves hand*

Observation: from patch review to file managers, most computer software seems to be software to deal with messes created by computer software.

Which I’m not saying isn’t an important or totally legitimate need, because it is.

What I really want to get at, and if you know me at best I’ll meander circuitously around the topic allowing you to fill in the gaps, is something like…. we need to start conceptually considering computers as a single product, and trying to think about their improvements from that standpoint. The all-encompassing world-enveloping effect computers have on their serious users (engineers, designers, all of us) is such that we fail to adopt this stance, and don’t often recognize that much of what we do really isn’t an improvement on a world without computers. If GNOME, or whatever, started really measuring its impact relative to a world without computers… took complete ownership of that large a design problem, that would be epic. Impossible, but epic (epics rarely are possible, that’s why they are amusing before we descend once again into a world of indulgant self stimulation).

While I’ve always mildly adopted this view, a recent event recalled a past event that brought it back into focus.

Recent event: I spent the past week working on a debt related project (this, besides epic amounts of money, is one of the cool things about consulting… you get so many new ideas all the time) , redesigning some of the deeper interactions (and some surface stuff as needed) for a debt consolidation community. The thing is hideous from a techie standpoint AND from a design standpoint. The site is pretty much a bunch of forums which are pretty much stock phpbb things where people discuss the problems they have with credit card debt, how to escape and whatnot, and a service that redirects people looking for debt consolidation loans to loan providers that won’t rape them (these are harder to find than I would have ever believed… and I started out suspicious of this industry… my fears have been confirmed and then some). Its pretty vanilla and nothing that would excite the techie in me. But here’s the thing… well, I’ll let you judge. They have all these stories of people in debt, which, frankly, moved even a nihilistic left coast bourgeois fuck like me. I mean, some of these people were talking about killing themselves over this. And the work I did could easily help 50% more people (= tens of thousands) find this community and figure out how it works. Cool! That seems worthwhile, and that sort of concrete “make the world better” goal seems to be missing in most computer projects, at least for me.

But altruism is often dull, and usually overrated. So lets be selfish. Lets forget all the people in different social classes or whatever… what would make my world better. Actually better. Not slightly pretend better, but “I’m a happier person” better (actually, I just borrowed this phrasing from another project I’m working on… I’ll post a mockup later). Come on, be creative. Are computers really making our lives better? I dunno. On the backend…. I think so. I like how fast I can receive mail. I like how cheap many things are. But even there, I start to get suspicious. And I don’t mean this as some deep philosophical puzzle. But I’m drifting off point again.

Oh yes, the past event that I was reminded of by working on the debt website. This doesn’t sound sexy either, I guess my tech-libido is low today. Oh well. But it was a comic posted on the door of a sysadmin at Stanford’s Center for Computer Research in Music and Acoustics (CCRMA) while I was a student there. I think I was a sophomore or something, and I’d just started taking product design curriculum. Anyway, it was a picture of a keyboard with phrases on each key like “make coffee”, “pick up kids from school”, “fix relationship with husband”, etc. I don’t remember the caption, but I’m sure it was just hilarious. :-P Anyway, the image has haunted me a bit. I couldn’t find it recently, so if you have any idea what I’m talking about, I’d love a clue as to what comic it was, what date, etc.

Contextualize things. Those are real problems my friends. Computers are absorbing, they are large and vast and hairy and beautiful. There can be little doubt. But what do they really touch? Can we challenge ourselves to grow beyond? I think this is why I have become increasingly bored with computers (hi everyone who hasn’t heard from me in a year or so ;-). They touch so very little. It all seems a tiny bit pointless after a while. Now, I see there are some points, and I’m very glad there are people finishing off those points, just as I am very glad there are accountants, bank managers etc. But its not a context I would do very well in.

A popular “design 101” excercise is to basically start making people list all the “problems in the world” they see. Count how many you think you could solve with computers (hint, for most people this list would be very small, if your list is very long… um… do what you like but I’d personally look for more stimulation).

In conclusion, lets grow fat and sassy together. Its 5am. Fuck.