I love this time

One of my favorite traditions in the Inkscape release processes is the about screen competition. We have a history dating back to our roots that each release has a different about screen showcasing the new features of that version. It's amazing to see the changes as new features get added.

Ryan has put together a nice montage of the previous six releases:

Inkcape about screens

You can see all of the about screens in the museum of Inkscape about screens. Join the contest, your work could be there!

posted on Thu, 20 Dec 2007 at 11:52 | permanent link

Music, remixed

Just about everyone has noticed that the business in the music industry is changing, how it will end up is the hard question. There are some interesting experiments. The recent Radiohead album which allows customers to choose a price. A local band to me, the Wax Apples, is allowing fans to pre-fund the album in production through their "Honorary Executive Producer" program. (Good band, you should check them out)

The largest cost of "big media" production of music is marketing. From promotion to payola the costs are staggering. An interesting post on BSL talks about how current marketing concepts fail and today it is more about building community. I think this directly applies to music. Which means bands should spend more time developing their "cult" rather than convincing radio stations to give them playtime. The radio stations will play the music if enough people want to hear it in order to sell their ads. They should take a bottom up instead of a top down approach.

This isn't a new concept. The Greeks had a crazy idea where they thought that government should be bottom up, and called it Democracy. We've already seen the failure of the largest centrally directed economy ever. And, there's a small website called Wikipedia that is taking advantage of distributed production.

There are many things that the "Web 2.0" changes are about (yeah, I'm tired of that name too): collaboration, community and connectivity. A significant one is looking at decisions and production from the bottom up instead of the top down. This will effect the music industry just as it does everyone else. An exciting time to be alive!

posted on Fri, 14 Dec 2007 at 14:00 | permanent link

Marketing doesn't understand

Fazio slogan: We care as much about your apperance as you do.

You see, I'm an engineer. I don't want you to care about my apperance as much as I care; I want you to care about my appearance as much as other people care.

posted on Sun, 09 Dec 2007 at 16:49 | permanent link

Who cares when we quit?

At UDS we talked a lot about how a users leaves the system. We're of the general feeling that the mammoth dialog that's in Ubuntu today isn't the way of the future. But, what is it? Much of that discussion is now going on in the ExitStrategy wiki page.

One of the things we realized is that we'd really like to give more information to the user when they're leaving. Which programs have unsaved data? Who will complain when I leave? Can I just say no to all of them? We don't really have a way to find all of this out, and to enforce our choices. Assuming every application has session management: how should we do it? That lead me to the spec for XSMP. Being a graphical person I immediately jumped to "Client State Diagram" in the table of contents. Let me show you the "diagram":

Text based diagramming

So that encouraged me to actually create some diagrams using Graphviz with a little bit of cleanup using Inkscape. I think these are much more in the spirit of diagrams. (they could use more cleanup though)

XSMP Session Manager State DIAGRAM
XSMP Client State DIAGRAM
XSMP Session Manager State Diagram
XSMP Client State Diagram
( Dot | SVG | PDF )
( Dot | SVG | PDF )

It looks like we can "query" whether the application is going to interact with the user by asking it to save everything, and if we get an Interact request we say "Just Kidding" with a ShutdownCancel. It seems likely that everyone who wants to interact with the user would be doing so for some sort of unsaved data, though we are not guaranteed that. Here's what I'm thinking in a sequence diagram, help from MSCGen and Inkscape.

XSMP Sequence for checking save
XSMP Sequence for Checking Save
( MSCGen | SVG | PDF )

While I think this could work, the "A bunch of work" area of the diagram scares me. If an application doesn't want to interact there is potential to do a large sum of work before communicating back to the session manager which could effect our interactivity. Especially considering one goal was to decide whether the menu item was "Quit" or "Quit..."; which would have to be done every time the menu is opened.

In a nutshell, we need to cache this data somewhere so that we're not asking the applications every time. They should push it. One place is to add another property to the XSMP that states you have unsaved data. Another would be a window manager hint. Heck, we could invent our own DBus API (everyone's doing it) for the information.

Independent of implementation, having this data would be good for shutting down, but I think it has other significant impacts to the user experience also. Currently most applications change their title message to include a * when the file is modified, seems silly that we have to encode this into a string. If we had this information somewhere that the window manager could get at it, the WM itself could take care of this notification. Perhaps changing the title bar color, making it less wobbly, or simply putting a nice themeable star at the top.

The other advantage of having this value independent of the sequence diagram above is that we don't want applications to ask for interaction. No, really. It would be better if they were to save the file temporarily someplace else, and then restart in the same place they were before; including the undo/redo buffer reestablished. In this way logging out becomes a non-destructive operation. You don't loose your state, but you also don't have to commit to a particular version of a file.

At the end of the day I think we'll have to try the query that I've outlined here, but I'm unsure how many apps will correctly support it. But, we need a better long term solution for all apps and future user interactions.

posted on Wed, 05 Dec 2007 at 01:24 | permanent link