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.

The fear!

May 4, 2007

I have the fear.

☠!!!

July 19, 2005

(from Toothpaste for Dinner)

As of now, no one’s balls are safe.

Congrats to Havoc. It was really fun at the guadec party last night (after he’d had a few beers *cough*) when Havoc announced the release of Havoc v 2.0. Everyone was gathered around and slapping him on the back and stuff… moments like this we just feel like a bunch of friends (gathered in some random Commodore 64 bar in Germany, sure).

Camps

May 11, 2005

Gman comments on the discussion between the Mono and Java camps. Just to clarify, I’m not in either camp. I’m in the “lets get gnome moving / language discussions are stupid” camp. If I was in any language camp, it’d probably be the “PyGTK is awesome and mature and has existed for a long time and is uncontroversial, lets use it” camp.

Graydon’s c#/java post, I think rightfully, mostly concludes that Java and C# are more or less same-ish. Dare’s C# for Java programmers document, which Miguel linked to as a more rigorous technical comparison, says roughly the same thing in its “Conclusion” section. I’d paraphrase it roughly as “Java programmers will probably find that C# has more nice extras available than vice versa. Java and C# are similar enough though that useful code has been, and probably will continue to be continue to be ported back and forth between them.“.

Looking through that (old) list of things C# has that Java doesn’t, most of the major ones are now present in Java 5: varargs, generics, foreach, metadata. Most of the rest of them are things that are arguable back and forth as to whether they’re a good idea (I hope everyone learned from C++ that more features != better) such as having a pre-processor. Delegates and Structs stand out as exceptions to this. Structs can, I think, be argued back and forth. Java is in certain ways more determinedly high level than C#, this would be an example of that (not exposing a distinction between stack adn heap). But, on the whole, there have been enough cases where I really do damn well want to allocate things quickly on the heap that this feature seems to be a win for C#. Delegates are quite a bit cleaner than the equivalent Java idiom and very nice. But neither of these is world changing features. Really.

On the flip-side Java has checked and unchecked exceptions. It was an intentional language decision to not include these in C#, I’m sure (just as, say, not including pre-processor in Java was almost certainely discussed and rejected). Some people hate having to catch all the exceptions. Personally, I think it makes code better. I’d trade structs for Java’s declared exceptions any day (perhaps not for delgates through). Java can also, e.g. dynamically instantiate classes from byte streams. But who really cares?

Probably the most practically important difference doesn’t seem to be mentioned in Dare’s analysis, which is the ease with which Mono code will be able to avail of existing C libraries. I think this is very important, and shame on Sun for making this such a PITA with JNI. Unlike this and that language construct I think this will have significant impact on how the language is actually used.

Java and C# remain the most similar major languages evar (that I know of at least). C# is pretty damn clearly an iteration of Java. Its a good improvement, and in turn Java picked up a number of the best improvements and integrated them into its next release. But the differences are not earth shaking.

My personal suspicion is that Eclipse makes a bigger difference (both in terms of productivity and in terms of how clean the codebase is since it makes all sorts of refactoring so easy) than the language construct differences. But then, I am a known IDE junkie.

Oh, I should add that Miguel is absolutely right that JDK 5 has not been replicated in the free software context, and, IMO, shame on the classpath developers for that being true. It was clear which of the JSR bits would be included in JDK 5 long before it was released. ecj, Eclipse’s built in Java compiler which we’ve now extracted as a standalone thing does support JDK 5 stuff, but the class libraries still need to be genericized and such. So you can already do varargs and stuff like that. The main thing that’s missing from the free java stack right now, wrt to JDK 5, is that the standard libraries don’t come in genericized versions so you can’t do List yet. That’s pretty important obviously, though you can write your own genericized classes already.

As I mentioned, there’s a lot of stuff we’re still working on wrt to blogs.gnome.org.

  • One obvious issue is that individual entries, when linked to, don’t show up with the general theme. Also, the blog links to itself in non-“portal” mode by default so it looks like this rather than this.
  • There’s no preview button on the “post to blog” page.
  • The themes aren’t quite as nice as we’d like them to be and have some annoying bugs (like, try hovering over a link that’s already been clicked on, and it goes bold reflowing the text).
  • Image posting from gnome blog. This would be cool.

jrb added blogs.g.o support to gnome blog so I’ll be doing a release of that pretty soon.

Its been a long time coming, but we’re happy to announce a standard site-wide mechanism for hosting your blog on gnome.org. We’re using the excellent NewsBruiser blog software. blogs.gnome.org comes in three delicious flavors, with more to come. You can also design your own template and CSS rather than using one of our stock themes.

Autumn
Black and White
Blue and Green

If you’re currently hosting your blog on gnome.org using software installed in your user account (such as pyblosxom), we would strongly encourage you to move your blog over. Its very easy to import an existing blog, and it will reduce the opportunities for gnome.org to be craxzor3d.

  1. Who can get one? Anyone with a GNOME cvs account can request a blog.
  2. Why does blogs.gnome.org redirect to planet.gnome.org? Individual’s blogs can be found at http://blogs.gnome.org/username . We decided not to provide an aggregator for blogs.gnome.org blogs since its pretty much an arbitrary set (unlike planet gnome which in theory aggregates the most interesting gnome related blogs).
  3. _______ doesn’t work Please e-mail seth@gnome.org and jrb@redhat.com or talk to us on IRC.
  4. Why’d you use NewsBruiser?

    NewsBruiser is a bit of a dark horse, but it matched our needs most closely:

    • Supports multi-user site installs
    • Is straightforward and focused on letting people write and read blog entries
    • Makes it very easy to import entries from an existing blog (it has a few different types of importer, including a bloxsom importer, but we’ve found the RSS importer works best and should work with the most blogs)
    • Has a reasonable web-based per user setting system
    • Can be arbitrarily themed / templated by users, but also allows for stock site-wide themes
    • Has a web form for posting entries
    • Supports MetaWeblog for posting entries using tools like gnome blog
    • Is written in a language we can reasonably extend and maintain ourselves, if necessary (Python)
    • Has a helpful and responsive maintainer
    • Did not require per-user SQL accounts (NB doesn’t use SQL at all)
    • Stores blogs in a simple format so we aren’t necessarily tied to the software, say, 4 years down the road (NB also allows users to download all their entries as a tarball w/o sysadmin intervention, a nice bonus)

    Actually, if you look through this list its not a particularly exotic list of features, and its really a shame that given how much blog software has been written NewsBruiser is the only one (we could find) that supports these features.

Getting a blogs.gnome.org account

  1. In the next week or so, just pester either jrb or I on IRC (or by e-mail, though I personally prefer IRC). We’ll need your gnome.org username. Long term, people can email accounts@gnome.org instead. Anyone with a CVS account can request a blog.
  2. Visit http://blogs.gnome.org/yourusername and login using the password we provide to you.
  3. Click import to import from an existing blog (if you have one). We’ve found the RSS importer to work best.
  4. Click configure (should be one of the links replacing the login box after you’ve logged in).
  5. Setup your blog information on the first page. We recommend you use your name for the “Notebook Title” so that its easy for people to tell who’s blog they’re reading. Click the submit button at the bottom of the page when you’re done.
  6. You can change the theme (or define your own theme/template using the “no theme” option) from the “Look and Feel” configuration page.

Test

May 6, 2005

Post

New Planet Gnome Look

May 1, 2005

Its rough, its dirty, its still pretty cool. Diana and I originally put together a mockup for the RH blog aggregator, to replace the existing monstrosity:

It sounds like the RH blog aggregator will be moving to Planet soon anyway, so I thought I’d get an early start on the template/CSS munging. And since I was already doing it for Planet, I figured, why not take a whirl at the Planet I know and love?

Here’s Planet Gnome with the new template/css. Obviously I’m not running the planet.py updater periodically, so its fixed where I left it last night. Lots of little cleanups left to do, like using day names instead of dates, hardcoding the little image sizes to improve render speed, making it work at narrower sizes, make titles link, etc. There’s also a couple visual details off relative to the mockup (some of the spacing, the blog entry titles should be darker which looks better and is easier to read). I chose the colors 10 seconds ago, so they suck :-)

This design isn’t just purty, its designed to improve reading too.

  • The primary contextual information used for orienting the conent of a blog entry is “who”. I think most regular readers are picking up the “who” from photos, so those are visually distinct off to the left.
  • The name and face are also grouped closely together, which should help people build the association.
  • Your eye can skim down the un-noisy left hand side (also note that we break days using a color band with the day name, so the lightly coloured bar at the left is basically the orientation/skimming bar) to find entries
  • Once you’ve located the start of an entry (this isn’t just for “searching” through the page, its a frequent orientation procedure while you read), your eye shifts over to the text in a familiar left-to-right reading direction (compare with the existing layout where people’s eyes tend to try and scan on the right which is mixed with noisy text, then once they are oriented/context loaded as to the person, have to scan left and find the start of the text line to read… the little bits of extra work add up :-).
  • Most of the white on the page is inside the actual blog entry content boxes (in the word balloons). Restricting white like this draws your eye into the boxes. This reduces some of the visual overload problems in the existing pgo (its even worse in the RH blog aggregator right now). In other words, the layout draws your eye into the text, which is what the blog is really about, and also keeps the amount of text from seeming overwhelming (which is what “wandering eye with no strong visual reference” tends to do to people). The existing pgo has a strong wandering eye effect, which seriously discourages people from actually reading, whereas if the text seems more managable people are more likely to dive in.
  • I think the titles of blog entries are usually useless, so I almost dropped them altogether, but didn’t, as you can tell.
  • We avoided strong visual lines and dividers to make it easier to pleasantly “read through” the whole page. Lines get in the way of your eye, so they should only be used when you actually want to disrupt or control the eye’s flow.
  • As far as high level design goals, I think the “word balloon” increases the feeling of attribution. Its suggestive that there’s a real person saying these things. I think its less of an issue for pgo, but for Red Hat that both improves the humanness of the blogs (the main reason companies are starting to have them, I think), and it makes it clear that the statements are individual opinions. Its subtle, but I think it has impact on how people interpret the information.
  • The width of text is restricted. Its easier to read relatively narrow text columns.