Increasing Ecosystem Co-operation

community, freesoftware, General, gnome, marketing, work 5 Comments

Reposting from Neary Consulting: This is an article accompanying the presentation I gave at MAPOS 08 in London on December 9th 2008.

Moving the Mobile industry from purchasing to co-development in free software communities

Recently, Matt Aslett wrote an article about the way that attitudes to free software evolve over time within a company, using a graphic he got from the Eclipse Foundation, based on some Nortel funded research. Software sneaks in on the ground floor, going from simple use of components to a real understanding of community-driven development, resulting, long-term, in building free software projects and strategies.

Matt sees an evolution in attitudes as the software and its value is discovered at different levels of the organisation, before finally the business development side of the company picks up the ball and drives free software into the heart of the company’s product strategy.

I have also seen this learning process in action, but I would express it differently. People discover the value of the freedoms granted by free software one by one, more or less independently of their level in an organisation – exploring each freedom before discovering its limitations, and thus discovering the value of the next freedom, and qualifying for the next level.

The core freedoms  in the Free Software Definition which are granted to the user of free software are:

  1. Freedom to use
  2. Freedom to modify
  3. Freedom to share, freedom to redistribute
  4. Freedom to participate

As companies start to integrate free software components into their products, they discover the value of these freedoms one by one.

Use

The first thing that people see about free software is FREE! As in zero cost. The days when companies reject a product out of hand because they don’t have to pay for it are gone – Linux, OpenOffice.org, Apache, Red Hat and a plethora of other “free” products have proven themselves in the marketplace, and companies are now prepared to allow free software components into their solutions, after appropriate consideration of the licences involved.

To quote one attendee at MAPOS 08, “why would I want to write a compression library, when I can download the best one in the world from zlib.org?” In the area of specialised components for secure communications, compression/decompression, a commodity kernel, and a bunch of other situations, it is appropriate to use free software components off-the-shelf. We expect them to work, and we don’t expect to ever need to talk to the maintainer.

Free software components are in use like this in thousands of systems solutions and commercial products, often without their authors even being aware of it. The main advantage of this for a systems or product company is a saving of time and money, through having a fully functional component without having to go through a purchasing process, and a reduced software bill of materials. An additional advantage is the simplification of your licensing due diligence, thanks to the relatively well-understood consequences of the various popular free software licences.

The difficulty arises when the software doesn’t meet your needs. In many cases, libraries are written by an individual to scratch an itch – it works for him, but is not quite up to your requirements. As one friend of mine put it: “Open Source: 80% as good as the last guy needed it to be”.

Perhaps it’s software that works on 32 bit platforms, but has never been tested for 64 bit. Perhaps it has not been ported to ARM or MIPS. Or perhaps the author simply never imagined that anyone would want the feature which you find indispensable.

In this situation, you can always ask the software author to write the feature or fix the bug for you – but since there is no client/supplier relationship between you, it is entirely reasonable for a volunteer to put your request on the long finger, or reject it outright.

At this point, you realise the value of having the source code – you can modify the software to meet your needs, or pay someone else to do it for you.

Modify

Being able to modify software that doesn’t quite meet your needs is amazing. This is the way things used to work by default, but the shrink-wrapped software revolution of the 1980s got everyone used to the idea that software was a valuable asset to be protected from public view at all costs. When I worked for Informix in the late ’90s, we used to refer to the source code of our leading product as “the crown jewels”.

With the widespread acceptance of free software as an alternative, developers are no longer surprised when they may see how a program works, and change its behaviour. This ability brings two important and immediate benefits – you have control of the behaviour of the software, and you can adapt it to suit exactly your needs. The old choice of build vs buy has become: build vs buy vs extend.

This situation is common in software services companies which provide vertically integrated “solutions” to corporate clients. You take components where you can find them to speed up initial development, stick everything together with duct-tape, hack whatever you need in whatever libraries you’re using to make everything pass the client’s integration tests, and then publish a set of .tar.gz files somewhere on the website of the company to fulfil any licensing requirements.

This control and ability to tailor a solution comes at a price, however. Over and above the cost of making the changes, your team is lumbered with a maintenance problem. Let’s say that implementing the features you need on top of a component the first time round takes a month. Fixing bugs in the features when it has been rolled out can take another few weeks. A few months later, the upstream product you’re based on goes and releases a shiny new version, with lots of compelling new features that you really want.

The cost of integrating your features into the newer version, and doing extensive regression testing before rolling out the new version, might take you another 6 weeks. It is not unusual for time spent integrating your work into later versions to quickly outweigh initial development time and investment. Inconveniently, this is typically effort which is not budgeted for beforehand.

After a company has run into this problem a couple of times, over the course of a year or two, someone will usually suggest that you propose that the features you have developed be sent upstream to the projects you work with – if the feature is accepted, you have solved your maintenance problem, it will be in all future releases of the project, and all of that tricky integration work and regression testing work will get done upstream, as part of normal maintenance.

Redistribute

And so you tell your star hacker Jack that he has two weeks to get your 5,000 line patch down to manageable size by getting your work integrated upstream. (when I said this at MAPOS, no-one laughed – so maybe this does not sound as ridiculous as I thought it did).

He diligently goes to work, cleaning up his code, getting rid of all the warnings, spliting up the big diff into small manageable chunks, creating accounts in 10 different bug trackers, signing up to a dozen mailing lists, creating 47 bugs with terse descriptions, attaching proposed bug fixes, and for major features he sends email telling people that the feature is there and asking for review.

By the end of a frantic month, two weeks more than he was given, he reckons that if everything he’s submitted is accepted, your 5,000 patch will be down to a more manageable 2,000 line patch.

What happens next is… underwhelming.

Major features and bug fixes lie unreviewed for weeks or months. Those that are reviewed need changes which take time and effort. Some patches are rejected outright because they’re too big and the feature is difficult to review.

A post mortem analysis of the project of “giving back to the community” might identify some of the following conclusions:

  • Not enough time and resources were devoted to advocating your changes upstream
  • Personal relationships between Jack and the project maintainers led to a much higher acceptance rate for patches and feature requests
  • The projects were initially evaluated on technical grounds, no thought was given to the developer community underpinning it
  • In some cases, maintainers priorities were ill-understood

There are two common conclusions that people make from this kind of analysis;

  1. It’s not worth it. They don’t want our work, and the time we’re spending is costing us more than maintaining out-of-tree patches
  2. Perhaps if you had engaged with the projects before modifying them heavily, or had been regularly sending contributions, that the maintainers would have been more encouraging, and might have been more prepared to consider your work. If someone from your company was a maintainer or committer already, you would have had a valuable short-cut to getting your agenda implemented in the upstream project.

If you choose door number 1, you will go no further in your quest to really understanding free software processes. This is a reasonable thing to do, but the costs involved are often miscalculated. In addition, the benefits of influencing upstream projects are often vastly underestimated.

If you choose door number 2, you have concluded, in short, that it is madness to include a component in one of your products and exert no influence with upstream projects.

Participate

To have influence, you must understand how the community around a project works. Someone within the team must become an active, trusted member of the community. Once they have gained the trust of the community through their contributions, there may be some procedure to follow for them to become a maintainer of the project, or to gain commit privileges.

These considerations are not technical, for the most part. Friendship and trust are fuzzy human concepts. And this more than anything else brings me to my final point.

Community is hard

For a start, every community is different. They all have different people, different behavioural norms, different dynamics, different forums for communication.

GNOME Mobile architecture

Taking GNOME Mobile as an example, there are 18 projects in the GNOME Mobile platform, with another 10 or so in incubation. Within that, we have a large number of projects housed on gnome.org, and governed by our rules, procedures and conventions. And yet each project has its own set of maintainers – GTK+ is maintained by a committee of around 10 people, EDS is maintained principally by Novell employees, gtkmm has one core maintainer, and so on.

On top of this are a number of freedesktop.org projects, and a couple more which are not under either of these umbrellas. To be an effective influencer of GNOME Mobile, you need to learn the culture of over 20 projects, of wildly varying sizes and baggage.

There are a number of issues to bear in mind when you approach a free software community for the first time. The main one is that while the vast majority of projects think that they are welcoming people with open arms and are very welcoming, if you are a stranger to their land, it is very likely that you will be getting exactly the opposite message.

In some cases, the extent of the welcome is “go and read wiki page telling people how to contribute to the project”. In other cases, no wiki page exists. Occasionally, you will be told that you’re asking your question on the wrong mailing list, or in the wrong way, or that you should read the relevant documentation first. It is not unusual for people to answer questions with a very terse answer – perhaps a link to a mailing list discussion or web-page where the answer can be found.

In general, all of these things are intended to fulfil a simple goal – get you the information you want as quickly as possible, in a way that wastes the time of people already in the project as little as possible. An admirable goal indeed, but as a newcomer, this is not how people are used to being welcomed. Eric Raymond wrote extensively about this in his essay “How to ask questions the smart way”.

Indeed, one of the hardest things to do as an outsider looking in is to evaluate when a community is healthy and viable, and when it has problems which will prevent you from working effectively in partnership. Few resources which talk about healthy free software community projects exist – “Producing Open Source Software”, by Karl Fogel, is something of a bible on the subject, and should be required reading for anyone considering investing in free software. I have also found some presentations, including Simon Phipps’s 2006 OSCon keynote “The Zen of Free” and “How Open Source Projects Survive Poisonous People” by Ben Collins-Sussman and Brian Fitzpatrick, to be excellent resources in helping identify traits of what makes up a healthy community. Two other useful papers which include metrics on measuring the openness of a community, including its governance model, are Pia Waugh’s “The Foundations of Openness” and François Druel’s Ph.D. Thesis (in French) “Évaluation de la valeur à l’ère du Web ” (PDF – rough translation: “Measuring value in the era of the Web”).

Some of the considerations when evaluating a community are whether there is clear leadership, whether that leadership is an individual, a group, or a company, how the leaders are chosen (if they are chosen), what technological and social barriers to participating in the project exist, whether the community processes are documented and transparent, what recourse one has if one feels badly treated, what the behavioural norms of the community are (and whether they are documented) – the list goes on. Pia’s paper in particular gives a great overview in the section “Open Governance”.

Call to arms

And so I close with a call to arms to both free software communities, and companies planning on developing an “open source strategy”.

First, developers, document your communities. Think of yourselves as guides, explaining the cultural quirks of your country to a newly arrived immigrant. Be explicit. In addition to explaining where and how your community works, document how one gains trust and responsibility. Ensure that a newcomer can learn quickly what he needs to do to become a citizen and from there a project maintainer. I am not saying that it should be easy for someone to become a maintainer. What I am suggesting is that it should be easy to see how one becomes a maintainer before doing it

Next, project managers, software developers, company leaders: please, please, please – save yourself time and money and, when you reach the point where you will be building products which depend on good free software components, let the second thing that you do, right after a technical evaluation, be to evaluate the health of the community. A community where you can earn influence and guide the project to better meet your needs is a better long-term investment than betting on a slightly technically superior solution with an unhealthy governance model.

You are building products that you will be selling, supporting, and hopefully profiting from. In this situation, does it really make sense not to have the developer’s ear?

Tips of the day: Thunderbird

General 1 Comment

I may be the last to find some of these out out, but anyway…

In Thunderbird, if you want to select all messages in a thread, there are two ways to do it. The shortcut, which is revealed in the Edit menu, is Ctrl-Shift-A. I’ve been using this for years (it broke in Thunderbird 1.5).

The other way, which I discovered recently, is to click on the little threading logo beside the +/-. This is extremely useful if you use the mouse to move messages to other folders from the inbox – just click & drag the little thread icon, you’re done.

To move messages to a different folder without taking your hands off the keyboard, install the Quickmove add-on, and configure shortcuts for common folders in the options.

To move messages to the same folder as the last move in TB, use the Ctrl-Shift-M shortcut.

In Mutt, “ESC t” tags a thread and “;s+.” saves it to a given folder.

Update: One more Mutt tip, which I found a few minutes ago: Adding the following to .muttrc sets up a Trash folder – deleting mail in any other folder saves it to trash, deleting in trash really deletes.

# set up trash
folder-hook .      'macro index d "<save-message>=trash<enter>"'
folder-hook =trash 'macro index d <delete-message>'

FFMpeg strikes (again)

General 15 Comments

Trying to build VXL so that I can test out OpenGazer – neither are packaged in Ubuntu – I get this error:

[ 89%] Building CXX object contrib/brl/bbas/vidl2/CMakeFiles/vidl2.dir/vidl2_ffmpeg_istream.o
In file included from /home/dneary/src/vxl-1.11.0/contrib/brl/bbas/vidl2/vidl2_ffmpeg_istream.cxx:24:
/home/dneary/src/vxl-1.11.0/contrib/brl/bbas/vidl2/vidl2_ffmpeg_istream_v2.txx:25:28: error: ffmpeg/swscale.h: No such file or directory
In file included from /home/dneary/src/vxl-1.11.0/contrib/brl/bbas/vidl2/vidl2_ffmpeg_istream.cxx:24:
/home/dneary/src/vxl-1.11.0/contrib/brl/bbas/vidl2/vidl2_ffmpeg_istream_v2.txx:68: error: ISO C++ forbids declaration of ‘SwsContext’ with no type
/home/dneary/src/vxl-1.11.0/contrib/brl/bbas/vidl2/vidl2_ffmpeg_istream_v2.txx:68: error: expected ‘;’ before ‘*’ token
/home/dneary/src/vxl-1.11.0/contrib/brl/bbas/vidl2/vidl2_ffmpeg_istream_v2.txx: In constructor ‘vidl2_ffmpeg_istream::pimpl::pimpl()’:
/home/dneary/src/vxl-1.11.0/contrib/brl/bbas/vidl2/vidl2_ffmpeg_istream_v2.txx:38: error: class ‘vidl2_ffmpeg_istream::pimpl’ does not have any field named ‘sws_context_’
/home/dneary/src/vxl-1.11.0/contrib/brl/bbas/vidl2/vidl2_ffmpeg_istream_v2.txx: In member function ‘virtual vidl2_frame_sptr vidl2_ffmpeg_istream::current_frame()’:
/home/dneary/src/vxl-1.11.0/contrib/brl/bbas/vidl2/vidl2_ffmpeg_istream_v2.txx:348: error: ‘struct vidl2_ffmpeg_istream::pimpl’ has no member named ‘sws_context_’
/home/dneary/src/vxl-1.11.0/contrib/brl/bbas/vidl2/vidl2_ffmpeg_istream_v2.txx:349: error: ‘struct vidl2_ffmpeg_istream::pimpl’ has no member named ‘sws_context_’
/home/dneary/src/vxl-1.11.0/contrib/brl/bbas/vidl2/vidl2_ffmpeg_istream_v2.txx:352: error: ‘SWS_BILINEAR’ was not declared in this scope
/home/dneary/src/vxl-1.11.0/contrib/brl/bbas/vidl2/vidl2_ffmpeg_istream_v2.txx:353: error: ‘sws_getCachedContext’ was not declared in this scope
/home/dneary/src/vxl-1.11.0/contrib/brl/bbas/vidl2/vidl2_ffmpeg_istream_v2.txx:355: error: ‘struct vidl2_ffmpeg_istream::pimpl’ has no member named ‘sws_context_’
/home/dneary/src/vxl-1.11.0/contrib/brl/bbas/vidl2/vidl2_ffmpeg_istream_v2.txx:363: error: ‘struct vidl2_ffmpeg_istream::pimpl’ has no member named ‘sws_context_’
/home/dneary/src/vxl-1.11.0/contrib/brl/bbas/vidl2/vidl2_ffmpeg_istream_v2.txx:366: error: ‘sws_scale’ was not declared in this scope
make[2]: *** [contrib/brl/bbas/vidl2/CMakeFiles/vidl2.dir/vidl2_ffmpeg_istream.o] Error 1
make[1]: *** [contrib/brl/bbas/vidl2/CMakeFiles/vidl2.dir/all] Error 2
make: *** [all] Error 2

To anyone who has ever had to use ffmpeg as a build dependency, errors like this are commonplace – FFMpeg’s developers have adopted a position that copying individual SVN revisions into your product is the best way to use the library, and that releases and API stability are for wusses.

The end result for me is that I can’t build this library, and I have no idea how to go about fixing it. I do have ffmpeg, libavcodec-dev and the other ffmpeg libraries and headers installed (with the charmingly user-friendly and distribution-independent version number “3:0.svn20080206-12ubuntu3”) but they’re not the right version, I don’t know what is the right version, and even if I did, I wouldn’t know how to install the right version in a way that wouldn’t break a bunch of applications.

Is this stuff really that hard to get right?

Busy December…

community, freesoftware, General, gnome, guadec, home, marketing, running 3 Comments

I’m going to have a busy busy month of December.

La Fête des Lumières

I’ve written about the Festival of Light in Lyon before, and it’s coming around again. I’m going to bring the boys into Lyon with over 1 million other people to walk around cold streets looking at light shows on some of Lyon’s best known landmarks. This year will be bigger than ever, with a €2 000 000 budget, and I have had a sneak preview of some of the installations from training runs on the riverbanks of the Rhône and in Parc de la Tête d’Or. The light shows are always interesting, sometimes a little arty, often spectacular. This year, I would like to bring everyone up to the top of Fourvière to have a view of the entire city.

MAPOS 08

First up, next week I’ll be in London to give a presentation at MAPOS (nothing to do with cartography), the Mobile Application Platforms in Open Source conference. My presentation is titled “Increasing Ecosystem Cooperation”, and will be at 15:30 on Tuesday afternoon.

I will talk about the need for companies building on free software to make mobile application platforms to work actively to develop that platform. I hope to get the message across that building on free software is not a client-supplier relationship, but is more like a research grant or R&D function.

Companies in this space are used to surveying the market, choosing the best solution, and then paying for it, so that some third party will keep improving it. The integrator model which many distributions use, of modifying the basic building blocks according to your needs, and sending changes up-stream after they have been developed, is an intermediate model, which has both positive and negative sides. But what we really need is an active co-development, with companies building on our platform investing R&D dollars into targeted co-operation across multiple companies, to address coherently a problem space (such as the needs of mobile platforms).

GNOME Foundation members are entitled to a 15% discount on registration, for those thinking of going.

Bibliothèque Municipal de Lyon

On the evening of the 12th, I will be participating with a panel including some people from Handicap International’s Centre icom which I visited a few weeks ago. I will be presenting GNOME’s accessibility capabilities to a seminar on Information Technology and Handicap both to show its power and also to advertise its freedom (philosophical and financial) compared to proprietary programs like Jaws.

Christmas run

On the 14th, I’ll be in Aix les Bains, running in the Corrida des Lumières with a bunch of my club-mates from the AAAL – since running 39’10 last month in a 10k, I’ve been hyped about running another competition. I’ve been training well, and Christmas runs are always fun with mulled wine & dinner afterwards.

GUADEC co-ordination

Along with Vincent Untz, I’ll be flying out to Las Palmas on the 15th (oh how life is hard) to meet with Alberto Ruiz (for GNOME), the Gran Canaria Cabildo (the local government), and the KDE eV board members co-ordinating the conference from their end. We’ll be testing out the cheaper hotel accommodation option for the conference (I hope there will also be a “very low budget” option like a youth hostel or a campsite), meeting with local volunteers, and resolving the major issues we need to work out before we ramp up the next phase of the organisation – gathering and scheduling conference content.

Judo

Thomas started Judo this year, and he loves it. I have stayed around after bringing him a couple of times, and the warm-up they do is certainly fun, but challenging. On the 17th of December, Thomas will be having his end-of-year competition, the first time he’ll be in a Judo competition. It’s a bit of fun, really – and yet I hope that introducing an aspect of competition into the activity doesn’t in some way ruin it for him.

Christmas skiing

As usual, Christmas will be on the 25th of December this year. Last year we were in Ireland, but this year we’re going to celebrate with just the family, and the kids will get to wake up in their own beds.  On the 27th, Anne, the kids and myself are going to go into the Alps to meet up with the rest of her family for a week. We’re hopefully going to get in some skiing, go walking in the woods, eat too much, drink too much, and be very merry indeed. It’ll be my second time celebrating the new year in the mountains, and with the cold & the snow it feels like Christmas in the films. I love it.

Go

When Lefty wrote about trying to get a particular type of brush in Japan,the intricacy of the detail of the story made me think of Go. Go is an ancient game with a small number of simple rules, which result in a game of deep complexity and beauty, and a handicap system which allows unevenly matched players to play competitive games.

It is a game steeped in the kind of tradition that Lefty talks about – professional Go tournaments are played on goban cut from a particular type of rare wood, with white stones made from the carved and polished shells of a specific type of clam, gathered on a single beach in Japan, and the black stones being made from slate mined in a single mine. The Go board is elongated, just enough to make it appear square when you are sitting in front of it, and the size of the black and white stones are slightly different, to compensate the visual impression of white stones appearing larger.

I’m back playing regularly (mostly, unfortunately, with GNU Go, who is more than a match for me on bigger boards) and have taught Thomas the basics. He’s caught on surprisingly rapidly – he’s up to the stage where he can beat me in a 9×9 game with 4 stones. Go is a very intuitive, rather than analytical, game, and some of the key concepts like influence, “good shape”, life and death are quite abstract, making it a game that children can “get” quicker than adults.

I’ve also found parallels between the ebb and flow of a Go game and free market economics. The core principle that the goal is not to kill your enemy, but simply to reduce his territory while protecting yours through strategically placing your stones to create influence and strength, matches closely my ideas of how markets work.

Phew! That’s a lot of “stuff”.

France’s right is left

General 10 Comments

Warning: political opinion

On a day of yet another national strike in France, with 60% of teachers on strike (according to the unions) in protest against a recent law on minimum service in schools and other education related issues, I have been thinking about how politics in France is so different to what I knew in Ireland, and what I’ve read about during the recent US presidential campaign.

In France, as in many countries, there is a long-standing tradition of talking about politics in terms of the left and the right. And unlike in the US, it’s considered OK to be a socialist – or even a communist – and we have parties that score between 2 and 5 percent in national elections with names like “The Worker’s Struggle” or “The League of Revolutionary Communists”.

While I think of my political leaning not as one-dimensional, but as multi-dimensional. Your political identity is defined by your relative position on a whole range of subjects. Questions that are interesting to me: what is the place of the state in education, social security, job creation? What should we consider a public service, and what is in the realm of private enterprise? What are the responsibilities of the individual to the state, how much freedom does the individual have, and how much right does the state have to define and limit that freedom? What should the spending priorities of the state be?

When you phrase things in this way, it’s clear to me that the “right wing” of French politics is actually quite left-wing:

  • France has a very high rate of social insurance – over 45% taken off every paycheck to pay for pensions, unemployment benefit, healthcare, which is supported by both the right and left wings.
  • On top of this, France has a progressive income tax system, which pays for things like the education system, public transport, the army, the environment – all the usual government expenditures
  • Universal healthcare of a uniform standard is a fundamental principle in France, which is supported by both the right and the left. You don’t get better healthcare if you pay more here
  • Free education, right up to third level education, is considered a fundamental right in France, and the public primary & secondary school system is of a very high quality

On all these issues, both the right and the left in France are in agreement – the role of government is to provide a minimum level of infrastructure, education, healthcare and social security to all of its citizens, in particular those who are living in precarious conditions.

And so I have come to the conclusion that the French right wing majority party (the UMP) is really a fiscally center-left wing party with a slight authoritarian leaning.

I had written a lot more on the areas where the government is trying to cut costs – suffice it to say that I think most of them are reasonable and necessary, and I think that most of the unions in France are, on the contrary, being unreasonable in expecting things to stay the same. It’s funny, but it is the left wing in France today which is more conservative (“leave things the way they are”) and the UMP which is being more progressive.

To be honest, I with that the center-left party (PS) would tackle some of those social questions I asked earlier head on, clearly elaborate their values, and identify their priorities based on those values. I think that their message would be well received.

Boeuf Bourguignon

General 6 Comments

I don’t cook often, so when I do, it’s an occasion worth marking.

Boeuf Bourguignon

Boeuf Bourguignon

Boeuf Bourguignon (for 6 people)

Ingredients:

  • 1.5kg decent beef, cut into nice sized chunks
  • 6 big onions
  • 6 carrots
  • About 250g of mushrooms
  • 100g chopped rashers (lardons, for the frenchies out there)
  • About 50g of butter
  • 3 soup spoons of plain flour
  • A few leaves of bay leaves (thanks J5 for the translation of laurier) and a few twigs of thyme, 12 whole cloves, 12 whole peppercorns, salt to taste
  • 1 bottle of drinkable red wine (I used a cheapish bottle of Côte du Rhône)

Preparation:

Cut the onions up into big chunks, and lightly fry them with the rashers in the butter. Remove them, and then brown the meat in the same pan (fairly high heat, just for a minute or two). Sprinkle the flour on and keep going until it’s turned kind of golden. The flour & butter will do the same job as a roux and thicken the sauce.

Move everything (beef, bacon, onion) to a big pot, add the red wine, peppercorns, salt, cloves, and herbs. Leave it cooking on a really low heat (the wine must not boil, or your beef will be leather) for about 2 hours.

Peel & cut the carrots into biggish chunks, wash & chop the mushrooms (again, I like chunky), and when the sauce is nicely reduced, add them to the pot. Leave the lot cooking (still on low heat) for another hour at least.

Serve hot, with boiled or steamed potatoes (you can add them to the pot for a few minutes after boiling and before serving if you like that kind of thing) and a nice Burgundy red.

Best thing about this? You can prepare it in about 20 to 30 minutes at lunchtime, and leave it cooking all afternoon, when it’s done, take it off the heat, and reheat it when your guests arrive. This works best if you work at home.

Congratulations Jono

General 1 Comment

Jono: Congratulations on the release of Denied by Reign – I must admit it’s not my cup of tea, but I’m looking forward to the first non-metal remixes/covers of it.

If it’ll help the advancement of your plan for world domination, I’ll happily leave the album scrobbling on last.fm – playing on repeat all night with the speakers off 😉

Just so long as my neighbourhood radio ends up having more Nina Simone than death metal.

End result

General No Comments

After all the to-and-fro of an afternoon on the phone with various departments saying it wasn’t their problem, I finally got on the phone with the French company that (allegedly) has the event box. Unfortunately, with the information I have, they can’t find it. They might have it, it might get to me soon, but as the guy said, “If you send stuff with the postal service, we don’t guarantee a delivery date”. Helpful.

So the event box is on its way, it’s probably in France, but no-one can tell me where, or when I might expect to receive it. So I’ll be spending tomorrow morning printing up some posters and hand-outs for an impromptu stand, I’ll bring my laptop, an N800 and an N810, my go-ban, and we’ll figure out the rest as we go…

If I arrive late at La Doua tomorrow, GNOME-fr people, you’ll know why.

DHL phone service

General 1 Comment

Apart from a very pleasant Julie, everyone I’ve talked to from DHL today has been shockingly disagreeable. I’ve gone from people hanging up after 5 seconds (raises the agerage number of calls) to one woman who insisted on interrupting me half way through every sentence.

At least you can get them on the phone – I spent over an hour talking to no-one on the Coliposte telephone service. Coliposte have it all worked out. “If you want to talk to automated service A, press 1. If you want to talk to automated service B, press 2. If you want to talk to a human being, please hold until you get bored and hang up.”

Delivery service telephone helplines: turning good days into bad since 1982.

Decision time

General 9 Comments

I bought some shares in Sun a while back when they were pretty cheap (pre-reverse split, around $4) – I really liked their product line, and liked the noises I was hearing around their free software strategy. For a while, the share did well, at one stage I was up about 50% when the share went over $6.

But then there was a series of things that seem to have shaken confidence – the ticker name change to JAVA seemed about as gimmicky as McCain “suspending” his campaign, the reverse split sent completely the wrong message to the market (another cosmetic change, but one that sends a message that you think the price might be going down), and from the heady days of 2007 when we had 5 straight quarters in the black, Sun’s back in the red for the last couple.

With shares now down to pre-split levels, Sun’s lost 80% of its market value in the last year, which leads me to think that one of three things are true:

  • Sun is going down the tubes, and the market is singing their requiem – in which case I should sell at a loss, take whatever I can get and call it quits
  • Sun is a prime acquisition target – I should probably hold onto my shares in that case and get a little more than current market value
  • Sun is a company that will survive and thrive again, and it’s currently undervalued due to the crisis – in which case, I might consider doubling down

Obviously I’m no market expert, and how the share price goes over the next month or so will depend on earnings announced at the end of October – the way things are going, you have to expect those results to be bad. I’m not one to ask for advice like this usually, but I’d appreciate people sharing their insights on Sun’s prospects.

« Previous Entries Next Entries »