Author Archives


13
Jul 10

Litigation in open source

To bring attention to a legal problem a friend of mine is having I decided to blog in order for those of you out there with some legal-understanding to remark on the following email conversation and letter.

http://alpha.memetic.org/~adama/observer-tm.txt

http://alpha.memetic.org/~adama/observer-tm.pdf

I’m asking mostly for clarification and advice here, as we see it; as the company didn’t own a registered trademark in the EU and they then decided to pursue that AFTER they’d already threatened Adam. I believe all their complaints to be invalid as they’re pursuing trademarks after threats have already been made. I also believe this makes their trademark invalid as it was pursued purely for the purposes of litigation.

Thoughts, advice and all comments welcome :)


25
May 10

The Posc – A pocket oscillator

Human interaction is important with user interfaces but it’s also important in other areas. Feeling that the actions you take have a real effect is very important. This is very true of musical instruments, the last thing you want from a musical instrument is something like a kazoo which is so far away from producing actual music.

Enter the Posc, this device, invented by a friend of mine is genius. Using a couple of pins to measure skin resistance and a light dependent resistor the oscillations created by the timer ICs are modified. The device is like something built specifically for the purposes of circuit bending, when playing with it you feel how the slightest movement of your fingers over the light sensor  and how your fingers moving across the pins change the sound. It truly is a human experience, I love it, so simple to build and so easy to play.

I was lucky enough to get one of the kits for the device from Jim and Kat last night and I assembled it in less than half an hour. Rather than showing you my awful soldering skills I’ve included an image of the kit instead.

The Posc Kit

The other great thing about posc is that it’s all Creative Commons and LGPL which means the idea can spread wildly, just like GNOME :) You can build one of these devices yourself using the circuit diagrams and tutorials the PCB artwork is even available for those of you who like to etch. Alternatively, you can purchase the kit, including all of the parts you need directly from the sonodrome shop or the makers market.


7
Apr 10

On press, freedom and the digital economy

My history teacher in school taught me some things which weren’t exactly part of the class but were key to understanding history and current affairs without bias. One of these teachings is something I’ll share with you here “If you look at the past you may lose an eye, if you don’t you may lose two”.

I’ve always interpreted this to mean not only that if you ignore the past you’re doomed to repeat it, but also that the past might give you insights over and above what the present time conciousness realises. I truly believe that an understanding of the forces which shaped the present will help individuals understand and effect the present and future.

Following is a verbatim duplicate of the opening paragraph of (sub) chapter 1.1 in the book “Manufacturing Consent”, I want to reproduce this here to help encourage people not simply to look at the dirt that has floated to the surface of things like the DMCA and the Digital Economy bill but to see the reasoning behind these laws from the perspective of organisations who have lobbied for them to come into being, and the governments which ratified them.

In their analysis of the evolution of the media in Great Britain, James Curran and Jean Seaton describe how, in the first half of the nineteenth century, a radical press emerged that reached a national working-class audience. This alternative press was effective in reinforcing class conciousness: it unified the workers because it fostered an alternative value system and framework for looking at the world, and because it “promoted a greater collective confidence by repeatedly emphasizing the potential power of working people to effect social change through the force of ‘combination’ and organized action.” This was deemed a major threat by the ruling elites. One MP asserted that the working class newspapers “inflame passions and awaken their selfishness, contrasting their current condition with what they contend to be their future condition – a condition incompatible with human nature, and those immutable laws in which Providence has established for the regulation of civil society.” The result was an attempt to squelch the working-class media by libel laws and prosecutions, by requiring an expensive security bond as a condition of publication and by imposing various taxes designed to drive out radical media by raising their costs. [my emphasis]

Does this sound at all familiar? Yeah, thought so… These are the tactics used by mainstream media, government and “special interest groups” to manipulate the little guy into following the rules the way that the “ruling elites” have chosen to set out these rules – but remember this isn’t commentary of today’s new copyright laws this is about the laws established in the early nineteenth century. One of these laws was recently used in an attempt to prosecute Simon Sighn, his blog post about it is here. Also take note that the book was written in 1988, long before the DE Bill or DMCA were dreamed up by some corporate fat cats.

I often get criticised as a conspiracy theorist for challenging the way people are told the way the world is. Never delude yourself that the mass media isn’t under fine control by the ruling elite and in most cases actually part of the same system. This isn’t a conspiracy theory, this is the truth of the media, the corporations that control it, the governments which manipulate it and the overall control that the illusion of freedom-of-the-press has on the common man.

So before you attack someone for wanting socially responsible healthcare, or someone who contradicts the assumed certainty of anthropogenic climate change, or the justifications for the Afghan and Iraq conflicts, or their liberal views on immigration policy or any of the myriad of things I personally have been attacked for commenting on, or any other contradictory-to-mainstream view that anyone expresses. I hope you stop, think, and read the book Manufacturing Consent, because understanding the propaganda model which is currently in use by the power structure of the western world, is more important than maintaining your allegiance to that system.

Finally, this isn’t a call to arms blog post trying to urge people to protest against the bill with silly twitterings and useless black-placard protests that no-one understands. Its merely a commentary on the situation, and highlighting that this isn’t the first time the common people have had their freedom tempered to suit the people with power.


31
Mar 10

Vala singletons

Just as a matter of interest I asked Juergbi of a way to write a singleton in vala. He proposed the following not-intended to be thread safe method of writing a simple singleton in vala.


class Foo {
Foo () {
}

static Foo instance;

public Foo get () {
if (instance == null) {
instance = new Foo ();
}
return instance;
}
}

I’d be interested to hear comments on the c-code this produces, advantages and disadvantages as well as suggestions for improving singleton support in vala or improving the vala code here in some way.

Here’s some more information on the Singleton design pattern from wikipedia


18
Mar 10

Dear the powers that be,

Please could you fix it for me, to have sound working on my MacBook 5,2 when lucid is released. I don’t know if it works yet but I sure hope it does, manual installs get me down :(

kthanksbye :D


8
Mar 10

Where files go to hide

I’m always losing files in my immense collection of accumulated documents and structures of folders, which have for a long time become slightly less than contextual. Lurking in many depths of paths structured as per; /home/karl/Miscellaneous/Misc/Other/Stuff/Old Stuff/Things from before/A long time ago/ are useful files I barely remember creating.

VFolders - Links to video

VFolders - Links to video

With tracker, and fster we’re edging toward a solution to making everything accessible without the pain of sorting. Using these tools we can build semantic fuse file system. Still in it’s early stages and with lots of features to come, take some time to try it out!

Installing Tracker+Fster VFolders

Install Tracker 0.7.24, for ubuntu users there’s a nice PPA available;
sudo add-apt-repository ppa:tracker-team/tracker-unstable

If you’re using another distribution you can follow the build instructions found here.

If you’re using ubuntu you can install the fster deb file straight from their website.

If you’re using another distribution, or are on amd64 like me you’ll need to build fster, in order to do this you’ll need the following packages;

  • cmake >= 2.8.0
  • fuse >= 2.8.1 (2.7.4 seems OK)
  • tracker-client >= 0.7.24
  • libxml2 >= 2.7.4
  • libattr1-dev

Then follow the build and install instructions as per the fster website; You may need to make /etc/fuse.conf readable by all after install as it seems to be created with 640 permissions.

Using Tracker+Fster VFolders

You need to make sure that tracker has started indexing everything, generally running tracker-control -s will get that off the ground, you can also re-log-in in order to start tracker with the GNOME session.

Start up fster by running fster /path/to/virtual/Virtual/ -d -c /path/to/fster_media_library.xml, ../conf/fster_media_library.xml from your build folder if you built it yourself, not sure where this file is in the deb, please someone let me know if they use it on i386 :)

Now you can browse all of your videos, pictures and music via the semantic data store. Obviously this is just a starting block, and much work needs to be done in the future, for instance figuring out which folders to auto-generate within each folder based on the common relationships of the items, creating folders resulting in sub-queries and features of that nature to be added.

Even now I see a lot of potential in taking this route forward to improving the usability of the file system and nautilus.

GNOME3 and the future of the file system

Nautilus is, as has been previously mentioned due an overhaul. In order to allow Tracker+Fster to exist on GNOME nicely, and be used in Nautilus I propose we focus on improving how devices appear in nautilus, and allowing devices to specify their position, and function in the sidebar, as well as using configurable icons, emblems, backgrounds and other existing features to improve their functionality.

We should consider making the default bookmarks and the appearance of devices and bookmarks more configurable for folders and devices. For instance certain fuse devices might want to appear as default bookmarks as in replacing the home folder with vfolders, these devices or folders could also specify whether or not they wish to display the mount/unmount button. The separators, the positioning, grouping and spacing of the places are all artificially imposed at present. If concentrate on improving these things we can introduce fuse filesystems as first class citizens in nautilus.

By concentrating on the fuse/device integration with nautilus rather than a specific filesystem add-on inside the nautilus UI we keep nautilus small and unbundled from the data store and allow for other fuse filesystems like GNOME Activity Journal with Fuse to benefit from the same improvements.

I also think we need to do more in order to detect types of devices and include more device icons, e.g. iPods, Phones, Cameras, Memory cards, and other attached storage devices can have device icons and it would be great if we could try and utilise any and all available icons appropriately, like the icons available in places like Quantum Bits. Using icons and branding, watermarked backgrounds and emblems in nautilus along side the device, bookmark or folder improves the connection between what the words represent and the function of the item. Dropbox is very good at integrating into Nautilus using emblems, and there’s no reason that other folders and fuse file systems can’t achieve the same level of usability with features already present in Nautilus.


8
Mar 10

Carving something beautiful

Image by artcodes

Image by artcodes

Details, often overlooked, are very important, the many details on the corners and edges of the old buildings we all see are just as important as the structure of the building.

I often feel that many new constructions lack these finishing touches, the detail that someone spent a lot of time to ensure looked just perfect. In some ways this illustrates the difference between an architect and a master craftsman of old.

If the intention of the structure is convey a particular essence of grandeur then it is important to build that into the fabric, communicating the impression through design.

If we take a look back it’s the same with the desktop in many ways. If we allow it to become too cold and surgical we will never be loved but may be used. If we make it too active and animated then we may reach a market but may also convey an image of childish interactivity. Somewhere in the middle is a balance, where we use animation, colour and shape in a way which brings together the user interface for the whole desktop into a polished, finished and corner detailed experience which expresses the essence of the GNOME desktop.

I wouldn’t like to classify the essence as a political belief, political beliefs especially those behind free software aren’t important to the end user. Instead I would focus on what GNOME intends to be really good at, the following bullet points were brainstormed during the HIG session at the Usability Hackfest I believe that this is a good starting point for describing the ‘essence of the GNOME desktop’, and that this is something that should be embraced by developers and designers;

  • Simple – No useless options presented to the user, no confusing options
  • Elegant – clean visual layout, no unecessary clutter, alignment of elements
  • Universally accessible – Everyone can use it, 3 – 93 years, no-matter what disability, background, language
  • Obvious, discoverable, learnable – common operations should be visible, should be easy to learn advanced operations
  • Helpful – requiring as little work from the user as possible, staying out of the user’s way, anticipating the user’s needs, presenting them with what they are most likely to need

Indeed there are some things to be concerned about, for instance as I read recently.

“I’m becoming more and more worried about the rounded-rectangle, grey gradient, tango-esque, big-ass padding and even bigger-ass button style that is predominating our little end of UI design lately.”rfquerin

This, it must be said, has some truth in it. Although I do love the idea of tango icons, a standardised pixel sharp icon set with a standard colour palette is very sensible. However, the issue that we’re not really innovating in other ways is a concern of mine, we need to rethink themes, rethink window management, rethink desktop furniture and rethink the rules for colouring and styling our widgets.

Things are most certainly becoming more grey, rounded rectangled, hugely padded UIs but some of this is well placed, some of it not-so. I believe that there is a case for pairing the HIG with a set of Style Guidelines which will help build stylish user interfaces. A lot of the required text for a set of style guidelines exists in parts of the HIG, separating this out and making it appropriately usable shouldn’t be too hard.

Some proposed topics for a set of style guidelines could include; colour matching & palettes, shapes, gradients, lighting, borders & spacing. There should also be some standard documentation somewhere for accessing specific colours from the theme allowing developers to use cairo widgets in tune with the themes colour scheme with ease.

Alberto Ruiz posted recently that we should be more open to design ideas and embrace them rather than resist them. We need to make GNOME exciting for developers and end-users, encouraging designers to become a part of the project and dissect and critique without fear of the reaction.

Making GNOME3 isn’t just about libraries, modules and infrastructure it’s also about improving the experience for everyone and learning from mistakes we’ve made in the past.


7
Mar 10

More on nautilus…

The preferences window is too tall, redundant functionality with icon view and compact layout

The preferences window is too tall, redundant functionality with icon view and compact layout

Little nugget of fail I found in nautilus yesterday… Essentially, the icon view preferences has a use of “compact” which is slightly different to the compact layout. The text beside icons in the icon view preferences leads to effectively the same thing as the compact layout except it scrolls vertically rather than horizontally which is a bad way to scroll in a horizontal icon/text layout.

The options are useless and the compact layout is the correct way to  present this feature. Having all of these preferences in this dialog increases the height of the window to 625 pixels on my theme which is far too tall.

Eventually we can also remove the tree options, as they don’t apply to a view they apply to a sidepane therefore they’re in the wrong tab anyway. Also this could be removed as an option completely leaving a gconf key for distributions to configure.


5
Mar 10

Usability Hackfest 2010

Last week GNOME decided to get a bunch of interface and interaction designers together into one place so we could revolutionise the desktop, or at least carve a path toward a ubiquitous GNOME desktop. Held at Canonical’s offices in Millbank tower the hackfest was a bustling affair with the attendees growing every day.
Initially there was an intention to create a structured approach to the process, unfortunately as is often the way in open source this ended up being an exercise in hearding cats. Sporadic groups broke off the work on specific issues more or less on an adhoc basis. I tended to join groups that interested me, so please forgive the fact that this writeup is a little single minded.

The first day was spent opening up the floor to issues that were of interest to individuals in the group, noting down what could be worked on and what should be worked on, specifically of interest to myself was the state of nautilus, the GNOME Human Interface Guidelines and a bunch of minor issues that popped up. I’ll cover each of the topics in some sort of order.

Extra Pain

A great deal of discussion was held on nautilus, between many of the individuals involved, bringing a conclusive solution to the nautilus problem is a difficult one. Firstly, Garrett mentioned a very important point, the word “Manage” is terrible for the user, so maybe we should consider renaming the GenericName of nautilus to Document Organiser. Personally I like this idea, it removes an obvious barrier to the user, that barrier is the fear of the word “manage”, this also makes sense when considering in my /usr/share/applications/ folder I have an entry for File Manager, File Management and File Browser… *sigh* who knows why we tend to overuse the word manage but we should bear in mind the common user fear of words which sound like they lead to complicated or difficult things.

Breadcrumbs were also an important topic, firstly GTK+ has a terrible breadcrumb trail which doesn’t adequately explain where the user is. Sometimes I’ll view a folder, go back to the previous folder then delete the folder I was in. Currently this will leave a button in the forward direction which doesn’t exist. Clicking on this button will then generate an error. We looked upon the nautilus-elementary design for the Nautilus UI with favour, in this UI the breadcrumb bar has been moved into the titlebar, changed to match a canonical developed breadcrumb bar used in the ubuntu software store, some redundant buttons removed, or improved (combined stop/reload button) and the sidepane has been updated to have a greater space between the places.

All together nautilus-elementary is a very good design, although may suffer from some accessibility issues at present those issues will be easy to fix.

We all considered the new “extra pane” feature extra pain, the tabs in conjunction with the extra pane especially bad, the brainstorming session on Nautilus that included myself, Garrett LeSage, Jakub Steiner, Mairin Duffy, Hylke Bons and Allan Day was extremely productive. We came up with the idea of having a button bar at the bottom of the nautilus window, offering contextual options for modifying selected objects also all were agreed that increasing the spacing between places to increase the size of the drop target would be a good thing, and a general redesign and removal of useless features a positive thing. Specific features we considered to be useless are;

  • Notes – We’re not sure if these are persistent or how and where they are stored
  • Information – What information? The number of items in a folder, some basic stats about a file?
  • Tree – Duplicated functionality in the main view, the sidepane is not wide enough for a decent tree browse
  • History – Duplicated functionality from the back button
  • Tabs – This will cause some flaming I’m sure, but really, we should be looking at better window management for nautilus rather than tacking on a fashionable feature to the UI. I’ve used tabs, and have found them usable, but I’d much rather have my windows organise in a better way without the need for tabs.

Even emblems has failed to become as useful as it could be, so this leaves us with the proposition of should we just remove the sidepane view selector and instead concentrate on improving the general appearance and usability of the places sidepane? I think we should, how much code would be removed from nautilus? Answers on a blog comment ;)

So the emblems feature is useful however it isn’t positioned well and we didn’t come up with any specific solution to this. My personal opinion is that we should find some way of integrating this functionality into our bottom button bar concept at the same time integrating tracker metadata features and functionality in much the same way in the same place. In fact wouldn’t it be nice if there was a Nepomuk ontology for dealing with emblems…

Wireframe by Allan Day, Visual improvements added by myself

Wireframe by Allan Day, Visual improvements added by myself

GNOME Guidelines for being human

The GNOME HIG has fallen into a state of duplicated information, overly information dense and out of date. Matthew Paul Thomas of Canonical has the opportunity to update the HIG and do the actual work, but we all wanted to make sure our thoughts were included. We produced an adhoc document to voice our gripes in the most up to date version can be found here.

The main focus of the HIG as discussed should be to help developers make the right UI decisions early on, and to help developers adjust their application towards compliance, this is especially evident by the proposed smoke testing pages. The concept of introducing a pattern library was discussed in some ways also, and the eventual outcome of the new HIG will probably be based on this concept with a few common UI layout concepts which are described in detail dealing with alignments and layouts moved over into its own section and consolidating shortcut and accessible keys into a single topic, along with many other elements of the HIG discussed I think we formed at least a starting path toward our ideal HIG.

The GNOME Shell

There was lots and lots of discussion regarding the shell, and I don’t think I can give an overview here of the eventual outcome of these discussions. Seth created a great write up about the shell, and I’ll be following up soonish with a path to implementing some of his specific ideas using tracker and zeitgeist.
Things I’d like to mention regarding the shell;

  • Supporting NVidia and binary drivers *must* be a priority for the development of Mutter, currently the performance is apparently unbearable. Ignoring binary driver support and a lack of cooperation with device manufacturers makes the GNOME desktop worse not better*.
  • Changing the whole screen in order to launch an application makes me a bit queesy.
  • Having a top panel rather than a bottom panel inhibits direct access to my Chrome tabs, and in the future may get in the way of other UI design experiments like this. Seth tried to emphasise this and suggest the use of a global menu, which I think should happen in place of the titlebar for maximised windows and therefore sit at the top of the screen. However I’m not convinced it’s an ideal solution for unmaximised windows as you then have to click at the window you want to access the menu, then click on the menu when it appears.

Grandma we love you, grandma we do?

Seth put great empasis on the fact we’re designing our desktop for our grandmas, and while my grandmother would love to use a computer this is unfortunately impossible as she’s been dead for some years, and the unfortunate fact is that if we keep designing for an aged population eventually we may get more users with the rate of medical breakthroughs prolonging our grandma’s lives but this isn’t really the market we should be trying to get into, more a market we meander into as a result of good use of paisly and chintz in the themes**.

It was mentioned by Seth that we should design our desktops for ourselves as we have the same goals as most of our users, but I disagree, I think designing for ourselves makes things far too short sighted and far too narrow. We as engineers have specific needs we may focus on (see Extra Pain), and by doing this we may introduce new confusing UI features for our userbase. In my opinion we should do a Nintendo, instead of designing for a certain age group as Nintendo did for so many years, targetting each platform at very young children, we should look at their approach for the Wii, as one Wii designer put it “Design for the ages 3 to 93″ creating the everyman desktop – where we don’t confuse users with dramatic language, clustered user interfaces with a billion options but at the same time we want to make it beautiful and usable by everyone.

Personal Gripes

  • Our GTK+ popup menus should have a little arrow pointing to where the click occurred, with compositing enabled this should be the default of the design.
  • Relying on contextual popup menus for major operations is also a bad thing, and part of the reasoning behind our bottom button bar idea for nautilus.
  • Near screen edges, combo boxes leave a block of empty space in order to try and ensure that the previous item is selected when a user clicks and clicks again immediately after. However leaving a scrolling space which is empty is not an ideal solution, in fact it’s a horrific flaw in usability. Recently I’ve noticed that Pidgin fixes this issue by moving the combobox directly out of the way of both the button and the encroaching screen edge. This is a better way of dealing with this issue, and should be adopted into the toolkit.
Terrible way of dealing with scrolling near screen edges in comboboxes

Terrible way of dealing with combobox items near screen edges

  • Our combobox and combo entry is inconsistent, if we’re going to use a specific design for combo box that design should be *identical* in the combo entry. There’s no specific need for them to be different as far as I can tell, and therefore these widgets should be brought into a single consistent design.

* The better/worse distinction here isn’t any overblown ideological distinction, it’s a matter of user experience the user wants fast graphics, so they can play games like Enemy Territory: Quake Wars without being turned off to our desktop by bad general support for binary drivers. The user doesn’t care about a free software philosophy they care about free software to help them get their work or play done.

** Yes, this is a joke.

This post was brought to you by Codethink Ltd.

25
Feb 10

Awesome applet I’d never seen

So, say you want to be able to hit your close button by throwing your mouse to the top right corner of the screen… Argh! UI fail, we have a panel there :/

Fear not, an applet exists to allow you do do this! I’ve only just seen this, and I don’t even use a top panel, or a bottom panel after recently converting to docky, but here’s the link to something awesome ;)

http://gnome-look.org/content/show.php?content=103732 GNOME-look.org surely is an underutilised resource ;)

Thanks to Antonio Roberts, who joined the hackfest today for pointing this out…