April 2004 Archives

Andy Oram

AddThis Social Bookmark Button

Related link: http://linuxworld.com/story/44624.htm

In a recent weblog I highlighted href="http://www.oreillynet.com/pub/wlg/4715#novell_linux_client">
Sun’s odd status in the industry’s evolution to free software.
I pointed out there that Sun has a verbally ambivalent and even
fearful attitude toward free software, and that they still take strong
actions in support of it, including their heavy investment in GNOME
and their choice to release the overwhelming bulk of StarOffice as the
open source OpenOffice.org.

You can’t always get the best information about a trend by
scrutinizing the statements of a corporate executive; like
politicians, executives sometimes have to say one thing while doing
another. Sometimes they have to take a step in one direction in order
to balance a more significant step in the opposite direction. I
believe Sun is wedded to proprietary software and will lag behind many
other companies in adopting free software, but they can still make
significant steps toward the latter.

Public relations were not made easier for Sun with its spectacular
Microsoft settlement. The relative standing of the two companies in
legal and ethical terms can be implicitly measured in the direction
that money went–from Microsoft to Sun–and the size–1.6 billion
dollars–of that transfer. But it would apparently be unseemly for Sun
executives to continue their Jeremiad against Microsoft, particularly
now that they seem to be exiled in Babylon, learning to interoperate
with Visual Studio and other Microsoft products.

All this is a far cry, though, from undermining the GPL. And even more
distant from suing people as SCO has done. Nor can I imagine Sun
trying to prevent hard-hitting exposés of SCO’s tactics, as
done by Pamela Jones in her famous

Groklaw

site.

Now that I’ve provided my own framework for examining Sun, I can let
you loose to read

Jones’s fierce excoriation of Sun president Jonathan Schwartz

in a LinuxWorld article, where all the claims in the previous
paragraph are lodged. Jones’s legal work has shown her practical
approach to idealism as well as her sharp analytical talents. There
are many valid criticisms in the article. But there’s also a strong
dose of attitude. The evidence does not support her major charges, in
my judgment.

Jones installed the Java Desktop System and was insufficiently
impressed by its display of GPL compliance. But Jones, with her legal
background, is much more concerned about licensing than most users.
The fact is that most JDS users will never see its installation
screen. JDS is a thin-client sort of desktop, meant for use on
corporate LANs. It will be installed by a system
administrator. (Admittedly, though, interest has recently developed
among home users.)

Like sparring politicians in this election year, Jones is setting up
to find the worst in Schwartz’s words. I think Schwartz’s ear is not
yet attuned in a fine enough manner to the worries of free software
proponents. For instance, his casual reference to forking fails to
show the depth of concern this danger holds for our community; he does
not do enough to reassure us that no actual forking is taking place.
Certainly, one could find all manner of sinister interpretations for
his boast they Sun is “very bullish on the future of intellectual
property in open source”–but one could just accept it for what I
believe it is, an awkward way of saying that open source is
economically viable. Schwartz’s embrace of DRM is indeed a
disappointment.

Sun is clearly tired of playing a marginal role in end-user computing,
and wants to bust into this huge and lucrative market. This is a major
corporate paradigm shift on their part, and I see no reason not to
wish them well. Part of their strategy is simply to give people what
they want, such as the ability to listen to music and play videos on
their computers. I should point out here that RealPlayer actually
works on the Java Desktop System, whereas I and my colleagues
have found difficulty getting their packages to install on other Linux
systems.

Another part of the strategy is branding Linux strongly with their own
corporate brand, a strategy where Sun is no different from Red Hat or
SUSE. Jones praises Red Hat and contrasts their marketing from Sun.
But last fall I heard Bruce Perens, Nat Friedman, and others rake Red
Hat over the coals for its new licensing policies around Red Hat
Enterprise Linux. Meanwhile, Red Hat sales and stock have been soaring
(while the free distribution it still gives backing to, Fedora, is
earning a lot of thumbs up), and Sun is doing very nicely with the
Java Desktop System. People have plenty of choice in the Linux market;
let them make their own decisions.

I personally don’t feel like the Red Hat Enterprise Linux licensing
regime is one I’d like to live under (although I currently run Red Hat
Professional Workstation on my laptop) and I have a criticism or two
of my own concerning the way Sun positioned Java Desktop System in the
market. But I won’t air those criticisms here because right now it
would just add kindling to the fires that already well-stoked.

Carefully argued and carefully targeted critiques of corporate
policies–such as the ones that free software Java proponents aim at
Sun to make Java completely open–are valuable contributions to
debate. Jones’s article has several of these. But head-on attacks on
a company or the basic business model it has chosen are not likely to
achieve change, or ultimately to win in the court of public
opinion. Punishing a company for crimes not yet committed won’t wash. So let’s not add wood to the Linux-versus-Linux fires,
folks. Let’s save that wood, and use it as industrious beavers to do
create strong structures and improve the ecology for all.

And when I’ve sunk to using a metaphor like that, it’s time to get
off the weblog.

What is Sun’s strategy and how is it different from other vendors?

brian d foy

AddThis Social Bookmark Button

iTunes 4.5 has a lot of ways to get to people to the iTunes Music Store so Apple can get their 99 cents.

When I select a playlist in iTunes, a little cirle with an arrow in it appears next to the name of the playlist. That arrow takes me to the Music Store and sets up the playlist to publish to iMix. Once I have published the list, the circle and arrow stay next to the playlist, allowing me to view or update the published list.

image

That arrow next to Current Favorites takes me to the iTunes Music Store and creates a list of all of the tracks in that playlist that the Music Store sells, which means a lot of the songs in my playlist were missing from the published version. It also creates a nifty, little quilt image from the first 9 unique album covers of the playlist.

image

I can send my published list URL to other people, and through that they can buy individual songs, or the entire playlist (but without a bulk discount). They can do the same things that they can do with the rest of the Music Store too, including listening to snippets of songs.

I do not know what advantage this should have for me, other than sucking away all of my money in 99 cent increments. Every time I visit the Music Store I run across something I want and would never buy an entire album to get. Damn you, iTunes Music Store!

Has iTunes Music Store cleaned out your bank account?

AddThis Social Bookmark Button

Related link: http://www.soundratings.com/

Since publicizing Trustabit, I’ve run across a couple of similar projects. In particular, SoundRatings.com and iRate take advantage of rating systems to make recommendations — and download — unencumbered music.

brian d foy

AddThis Social Bookmark Button

Related link: http://wdb.apple.com/pr/library/2004/apr/21disney.html

Last week, Disney made some of its catalog available exclusively through the iTunes music store, which now has a Disney category in the Browser’s Genre pane.

Besides the classic Disney animated features, the genre includes The Nightmare Before Christmas, A Bug’s Life, and some others I forget to associate with Disney.

Too bad this is an exclusive deal, though. As much as I would like Apple, iTunes, and the iPod to succeed, I do not think anyone should have to use any of those to download music.

brian d foy

AddThis Social Bookmark Button

Related link: http://www.apple.com/itunes/download/

iTunes 4.5 is now available, and the download page explains some of the new things in the iTunes Music Store, including free weekly downloads.

brian d foy

AddThis Social Bookmark Button

iTunes Music Store apparently has a new user agreement, and it seems more generous than the old one. I wish I had saved a picture of the screen, because I only remember these new terms, which is about half of the items the new agreement listed.

  • Publish via iMix (which I have not seen yet).
  • Authorize up to 5 computers, up from 3
  • Unlimited CD burning, with the odd disclaimer that any playlist can be burned 7 times

This may be connected to the rumored, imminent release of iTunes 4.5 and its bevy of new features.

Did anyone bother to read the new agreement before they went back to searching for 80s music?

Andy Lester

AddThis Social Bookmark Button

When did we get so subservient to our new typeset-quality overlords that we have to apologize for anything done by hand? Why do we think that the Times New Roman Bold 24 point medium is more important than a well-written message?

Take a look at this sign from a high school drama department.


image

At the bottom, an apologetic addendum reads “Sorry for the hand written note… computers are not my friend today.”


Look at that sign. It’s wonderful. Its heading is clear, easily readable, and it catches the eye. The three bullet points are well-formed and thought out. The different colors help the reader differentiate between them.


Why would that sign have been any better if it was laser printed in Word? No clip art, or variety of fonts, or anything that any page layout program could offer, would make things better.


Where computers and printing help is in mass-produced items. Perhaps if this sign’s creator had to create a dozen of them to paste around the school, it might have been a work savings, but it couldn’t improve the quality.


In the World Of Business, there’s no reason to bow down to the God Of Laser Printing, either. In my web development department, we’ve got Gantt charts and task breakdowns and laser-printed output all over the place, and yet I asked my project managers to create this “dashboard” for each project:


image

That sheet of paper is from a standard 2′x3′ flip chart pad, taped up in our big common area, where everyone can see it from the end of the aisle of cubes. It’s not pretty, but it shows me everything I need to know. Each phase in the project is shown, with a red, yellor or green circle to show its progress. Check marks show what’s been done.


Pen and paper works on the small scale, too. Extreme Programming uses the concept of the “story card”, a 3″x5″ handwritten index card that shows high-level tasks to be done. They’re easily shuffled and reorganized.


Stop assuming that the computer is the way to go!
Step back and consider what your target format is. Is it something you’re mass-producing? Is it something that needs that “professional” look? Maybe you don’t actually the computer to take care of it for you…


(For an earlier blog entry along these lines, see
The Curse Of Designing With Microsoft Word.)

When do you leave the computer behind and take pen to paper?

Chris Shiflett

AddThis Social Bookmark Button

Related link: http://www.phpmag.net/itr/online_artikel/psecom,id,547,nodeid,114.html

As noted in the PHPCommunity.org Blog, the 03.2004 issue of PHP Magazine (print edition) features an article that describes the first few months of the project. The article, PHP Community: Part I, is now available from their Web site.

This is a good article to read if you’re curious to know more about the PHPC project or about my motivation for starting the project. If you’re interested in being involved in the development of PHPC, please see my most recent status report and subscribe to one of the mailing lists.

Many thanks to PHP Magazine for coming up with the idea for this series and for making this article available for free.

Jono Bacon

AddThis Social Bookmark Button

As a user of free and open source software, I have a deep respect for all projects that work hard to produce free software. As a member of this community, I also feel that it is my responsibility to let these projects know when there is a bug or problem with the software; constructive criticism is often one of the biggest gifts you can give to a project, after all, we won’t get anywhere if we keep telling ourselves how great we are. The purpose of this essay is to discuss a theoretical problem that has always faced free software, and is now beginning to materialise in some projects. The problem is that of refining our technology.

Contributors are the backbone of our community. We need hackers, documentation writers, sound engineers, usability testers, expo organisers, advocates and other generous participants. Without these people contributing, we would have no software, or we would have software that is significantly less feature laden and stable than we have now. The problem we are facing though is that every contributor who is getting involved with a free software project is essentially using their spare time and hard work to “scratch their own itch” and contribute the scratch to the project in question. This is not a problem per say, but the problem lies in the fact that not every personal contribution can be merged into the project. As an example, if someone wanted the clock in KDE/GNOME to be displayed in binary, they could write a patch and submit it to these projects. The patch may then be merged and added if it is good. Irrespective of the fact that 95% of the user-base may never use the feature, a patch is often rated on its technical quality and compliance; if it meets the grade it is often added.

We have a difficult decision to make here. Someone has contributed a patch that they have spent their time and effort creating, but the patch adds a feature that may detract from the general direction that the project is heading in. Do you allow the patch and possibly bloat the project up unnecessarily, or do you say no and possibly alienate a contributor? It is a difficult decision to make, and there is no clear option either way. One alternative is providing some kind of additional plugin system where these additional features can be added. This has occurred with various projects to a relative degree of success.

I think the most important aspect of running a free software project is having a sense of direction. Let us take GnomeMeeting as an example. It is quite clear from the direction of this project that there is a very definite and finite direction that the developers are pushing for. GnomeMeeting is aimed at being a light, easy to use, voice over IP application that allows you to talk with your friends and colleagues. In my experience of keeping a beady eye on the project, it seems that the direction has been rigorously followed. The result of this work is an application that is simple and easy to use.

Many would say that GnomeMeeting is a simple example; it has a fairly singular set of requirements and aims. Things get considerably more difficult to manage when you look at more expansive software projects such as KDE and GNOME. I have been involved with KDE to varying degrees over the past four or five years and I love the desktop and greatly admire the people who work on it. The one criticism I do have though is that the sense of direction in KDE seems to be flagging somewhat. As someone who cares about the direction of the project, it seems only right to share these views. The reason why I am writing this in my O’Reilly blog and not in a private email to the KDE developers is that I think some of these points can be heeded by other projects. These points are not only directed at KDE; various other projects may find this essay interesting.

The problem I have seen with KDE recently has been an overload of features that I suspect the target audience will not need. The term target audience is always an interesting concept to get clear in your head, and this concept gets considerably more difficult when you take into account the vast range of users that KDE has amassed. The problem with a project such as KDE and GNOME is that they are essentially trying to please all the users all of the time. These projects want to please those who want a simple to use desktop, those who want to configure everything imaginable, those who want to remove chunks of the desktop and many other weird and wonderful uses. The problem is that you really cannot please everyone all of the time.

Let me share an example. My dad is a Windows user. He needs his computer to write letters in Word, browse the Internet in Mozilla (I moved him over to Firefox, OpenOffice.org is next) and that is about it. My dad is very much a task-centric user. The OS and GUI to him is of unimportance; it is all strange magic that eventually gets him to the point where he is sat in front of Word - this is where he feels comfortable. The Windows control center scares him, he doesn’t like options boxes, he doesn’t care about themes - options are just things that may possibly break the system.

My dad is the kind of audience that I expect KDE to target. He is a novice computer user who just expects things to work. He doesn’t care about half of the stuff that is present in KDE; he only needs the GUI to be able to manage his files and load his programs. The problem is that KDE is getting so feature laden that it is making the environment more complex to use. If I sat my dad in front of the KDE Control Center, I think he would give up straight away. The problem is not so much the way the KDE Control Center is designed; the tree topology works reasonably well, the problem is the sheer amount of stuff in there.

In some ways the GConf concept is a good one. Some features in GNOME may be so specific and advanced that the vast majority of people will not need to fiddle with them. The most common and basic options are available in the general configuration tools, but the more specific options are essentially stuffed somewhere in the background out of view. This is great because the target audience does not see them and is therefore not confused by them. The problem with this technique though is that you need to know obscure GConf keys to get lesser known options to work.

I feel the best option in a situation like this is to make the desktop and configuration available in a series of schemas. You could have an Easy schema that has the most common options available and removes choices that may be too advanced or are not needed by someone such as my dad. You can then have a Medium schema that satisfies those with a tweaking finger. The final option could be All, which is the current situation. The desktop would start initially in the Easy schema and if you need more options you simply change the schema. There should also be functionality to add and remove options and features from your chosen schema. This gives you the ability to tweak your desktop in the way you desire. As an example, if you don’t use Konqueror, you should be able to remove its options from your schema.

This is by no means a perfect scheme and would need to be refined by people with some concrete usability experience, but this would at least improve the situation to make the desktop work in a way that is better aligned with the needs and experience of the user. The more advanced user can always make an easy desktop more advanced, but the less advanced user simply gets lost with an advanced desktop.

Just to re-iterate, I have a great deal of respect for the KDE and GNOME teams. I know many developers personally, and these comments are intended to hopefully make people think of another way of making things work. We are getting to a point with our software where the desktop is going to play a key and integral part to new users and businesses. This means not only refining the technology that we already have, but working together to meet the goals and ambitions of desktop integration with the freedesktop.org project.

Sensible suggestions or random utterings? Chalk your thoughts below…

brian d foy

AddThis Social Bookmark Button

Related link: http://www.prnewswire.com/cgi-bin/stories.pl?ACCT=SVBIZINK3.story&STORY=/www/sto…

I flew out of Detroit’s McNamara Terminal yesterday. In the concourse is an “Online Cafe”, which is really just a cafe with a couple of computers with flat-screen moniters sitting along the wall. I figured they might have wireless access, so I fired up my PowerBook to check.

The entire terminal has wireless access. Although unlimited access costs $6.95 for 24 hours, I could get airport and flight information for free. I

image

This access would be great if I could pay for an hour of it (oh gees, did I just suggest micro-payments? $7 / 24 hours is about 30 cents an hour), but for $7 an hour, I will just do the crossword in the paper. Of course, most people will not be in the terminal for 24 hours, so I think the 24 hours of access is just a way to throw off people as they try to figure out if it is worth it. Somewhere in there is a black-market business in limited-time account trading.

Which other airports have concourse wireless?

Andy Oram

AddThis Social Bookmark Button

As a public service, I explain here how to get a new top-level domain
approved by ICANN.

Top-level domains–such as .COM and .ORG–remain a hot topic. Millions
of dollars rest on who can get a new one. And a lot of people are
wondering when this odd part of the Internet (the only part
artificially constrained from growth) will start to catch up with the
rest.

Eyes are now on the organization responsible for granting new
top-level domains, ICANN.
The last time it granted new ones, back in November 2000, it required
a non-refundable $50,000 just to submit a request. Forty-seven
organizations ponied up their money; just seven lucky ones got what
they asked for. And nobody outside ICANN could figure out why certain
domains–including such unlikely candidates as .AERO and
.COOP–entered into company of the elect while others did not.

Later, ICANN released a
report
concerning an “evaluation process” and a
purported plan
for “the possibility of moving forward some sort of limited new TLD
program”–both notable for their timidity and lack of any sense of
urgency.

Well, ICANN is in the middle of the process once again, this time for
just three new TLDs. Who will be the lucky one on this go-round? How
can you up your chances if you’re throwing your hat in the ring?

The answer is now available. View the diagram at the link that
follows.

How to get a new TLD approved by ICANN

Is the process any clearer?

brian d foy

AddThis Social Bookmark Button

Related link: http://www.michigan.gov/cis/0,1607,7-154-28077_28233_28254-72930–,00.html

The Michigan Broadband Development Authority, which offers loans to several sorts of groups that want to acquire broadband infrastructure, has a mandate from the Michigan legislature to make loans in the range of $0 - $100 million dollars.

I’d like a $0 loan, please. No, on second thought, make that a dollar. I need a sticker to put on my PowerBook.

How much do you need to get broadband?

brian d foy

AddThis Social Bookmark Button

I went to the Detroit Beer Co. for lunch today. If I did not want to watch TV while I waited for my food, I could have checked my email through their free wireless service. They did not advertise it on their carry-out menu, but right there on the hostess station were two wireless routers and a big sign announcing free wireless access.

I went to Borders to look for a book, and they had huge LCD screens hawking their T-Mobile hotspot, which I can also get in Starbucks. I have to pay for those if I want them, but there is so much free stuff around, why should I?

After that, as I was walking back to the hotel, which also has wireless that pops in and out (and I have my own Airport set up), I had to walk under an awning that seemed to say something more than what its designers had intended.*

image

Now I want like to turn my phone into an 802.11 detector. It is already a camera (it took that picture) and a PDA. Wouldn’t that be cool?

* )( is the war-chalking symbol for an open network.

Where have you found unexpected Wi-Fi access.

Andy Oram

AddThis Social Bookmark Button

Early in the campaign to free Mordechai Vanunu, the Israeli nuclear
whistle-blower, I bought a T-shirt that showed Vanunu’s face and
quoted the epiphanic Biblical passage where God says to Jeremiah, “I
gave you as a prophet to the nations.” For a long time I was a bit
embarrassed by that grandiose quotation. But today, as Vanunu is
released from prison, I sense that it is accurate. Vanunu resembles a
prophet in many ways: testy, unruly, over the top in his
pronouncements, incapable of delivering a message without delivering
discomfort as well, but ultimately, in a deep way, correct.

The world of 1986, when Vanunu revealed that the Israeli government
had assembled a nuclear arsenal of hundreds of weapons, is different
from the world into which he is re-emerging (with his ultimate freedom
still undetermined–he may be barred from meeting with journalists or
leaving Israel). Vanunu, a principled pacifist, blew the whistle on
the Israeli government in the hope of pushing forward disarmament the
world over. He boldly put forward the proposition that nuclear weapons
do not make us safer, but rather put us more at risk. The world he
re-enters is a confirmation of his warning.

The Israeli government was incensed that Vanunu had revealed its
secret, but who expressed surprise at his revelations? None of the
Arab countries batted an eyelash. Washington yawned. The only people
from whom the Israeli arsenal was a secret were the world’s
public. After Vanunu, normal Israelis had a chance to debate the
nuclear option. Most of them, of course, ignored and excoriated the
prophet. It’s still open to debate whether Israel needed its weapons
to stay alive. After all, it managed to win over its enemies in every
conventional war. We know its weapons make everybody around it less
safe.

Today, Asia is awash in nuclear weapons. The end of the double
hegemony of the U.S. and the Soviet Union in the Cold War era meant
that a lot of countries couldn’t depend on a nuclear umbrella from a
super-power and decided they had to get a bit of their own.
The Bush administration has largely abandoned any reasonable program
to get North Korea to give them up (it would require a guarantee of
their safety), and both the Americans and the Europeans realize that
weaning Iran away from its program will take much longer than they had
hoped.

Outside Asia, even leftist Brazil is teasing us with a possible
nuclear weapons program. As one speaker from the
American Friends Service Committee
said at an event I organized around Vanunu (an event I held at my
synagogue, angering the Rabbi and many synagogue members), “Any
technology that’s fifty years old is hard to keep secret.”

Vanunu was recently quoted in the press as saying that the Zionist
state should disappear and that Jews should live in a Palestine
controlled by the surrounding Arab majority. This is again the
hallmark of a prophet. The question is not whether the idea is
shocking to Zionists. Vanunu has never claimed to have easy answers.
The question is whether his statement is a stark recognition of
reality.

What is the effect of the nuclearization of world politics?

brian d foy

AddThis Social Bookmark Button

Related link: http://www.ddj.com/articles/2004/0405/

Matt Stephens and Doug Rosenberg (co-authors of eXtreme Programming Refactored: The Case Against XP) wrote “The Irony of Extreme Programming” for the latest Dr. Dobbs Journal (which you can also get online with a membership).

They point out some of the things that I have thought for a while: eXtreme Programming (XP) has a lot of nice ideas, and it mitigates some problems, but it is neither a religion or a cure-all. In fact, it can create some problems of its own if not used well.

I like that they step back from the hype to look at some of the problems. I think the programming world (or maybe just the world, unqualified) tends to get too caught up in using a particular process or technique, even if common sense says something else. I have often told those close to me that if they cannot criticize their favorite thing, they do not know it well enough.

They quote an email one of their readers sent them:

The pair programming is mind numbing. With this XP stuff, software development is no longer a professional occupation, it’s just another type of assembly line work.

Different people have different ideas about that, and as I write this from Detroit, home of the Henry Ford Museum, I wonder if those great innovations I learned in elementary school, like division of labor and the assembly, caused the same reaction. I would certainly expect that demoting a master craftsman to the assembly line would cause some problems, so why do some shops insist on doing that to senior developers just so they can say they practice XP?

brian d foy

AddThis Social Bookmark Button

Sleepycat Software, the guys behind Berkeley DB, had an ad in a recent Dr. Dobbs Journal with the hook “Where’s the sleeping cat?”

The rest of the ad copy told me where the sleepy cat was (the usual suspects—Linux, Apache, and so on), saying “you may very well have used Berkeley DB without knowing it.”

I like the idea of this ad. Perhaps Perl and a lot of other infrastructure workhorses could do the same thing—so “Where’s the Camel?”

Have you seen good ads for open source products?

Andy Oram

AddThis Social Bookmark Button

Related link: http://www.mysql.com/news-and-events/users-conference/

If you attend enough computer conferences, you run into
every occupation on Earth. At the
MySQL Users Conference
last week, I sat next to a person at lunch who announced
proudly that his job was to destroy data. He works for a
firm that specializes in data services for law cases, and at
the end of many cases the judge orders the total destruction
of data related to the case.

On the other side of me, at that lunch, sat a database
administrator whose facility is planning a migration from
Oracle to MySQL. A few years ago, people might assume a site
would start with MySQL and move up to Oracle as its needs
grew. Now there’s a quiet trend in the other direction. (I
should mention here, though, that MySQL managers downplay
the obviously competitive situation and like to say that the
different products are for different markets.)

My lunch partner said his firm would save an enormous amount
of money on both licenses and support. I was left with the
impression that Oracle took a big risk by moving from a
perpetual license to a four-year one: they set the timetable
for this company’s move.

In this article I’ll cover:


The business model: why did MySQL grow so fast?

MySQL represents the most impressive market success, exceeded only
perhaps by Apache, in free and open source software. In terms of
installed base, MySQL has left the technically impressive rival
PostgreSQL in the dust. It has marginalized mSQL, SQLite, and SAP DB
(the last of which I’ll return to
later).
It has started to challenge the proprietary database
companies on their own turf, as already mentioned. Nobody
can say why licensing costs for proprietary databases have
plummeted in recent years, but one suspects that it’s due to
MySQL’s competition, as are the large discounts Microsoft
has offered certain customers.

Not convinced yet?

  • MySQL AB claims an installed base of five million systems,
    the largest of any database engine.

  • The mysql.com domain sees almost as much traffic as
    ibm.com.

  • Six hundred attendees flocked to the recent conference.

  • MySQL AB has recently started, and has been heavily
    marketing, its own publishing outlet,
    MySQL Press.

  • MySQL has made the use of a database so commonplace that
    industry observer Clay Shirky, in his recent article
    Situated Software,
    writes:

    You can of course build these kind of features [rapidly
    developed applications for small, localized groups of users]
    in other ways, but MySQL makes the job much easier, so much
    easier in fact that after MySQL, it becomes a different kind
    of job. There are complicated technical arguments for and
    against using MySQL vs. other databases, but none of those
    arguments matter anymore. For whatever reason, MySQL seems
    to be a core tool for this particular crop of new
    applications.

So how did MySQL achieve this charmed status?


A textbook case of a disruptive technology

MySQL, first of all, illustrates in almost pure form the
sequence of events Clayton M. Christensen documented as a
“disruptive technology” in his ground-breaking book The
Innovator’s Dilemma
. Early versions of MySQL lacked the
basic features, such as ACID transactions and referential
integrity, that experienced users expected from a relational
database. In a pattern familiar to anyone who has read
Christensen’s book, knowledgeable observers dismissed MySQL
as a toy.

But MySQL’s very simplicity made it so small and fast that
it quickly won over small users who wouldn’t even understand
what they were missing and how to use the fancy features
offered by “real” database engines. In particular, MySQL
proved ideal for the exploding area of dynamic Web content.

Most indicative of its mantle as a true disruptive
technology, MySQL proved that many of the missing high-end
features weren’t as indispensable as people used to
claim. For instance, referential integrity (jeez, who could
be opposed to integrity?) wasn’t required in a database
when it could be achieved in the application code, often
more reliably. You could also achieve efficient locking
without row-level locks; in fact, supporting row-level locks
took so much overhead that the application was almost better
without them.

Having rewritten the rules for what constituted a useful
relational database engine, MySQL AB proceeded to invest
resources to implement the very features which they were
originally sneered at for lacking. Bit by bit they have
added check-off items to their T-shirts. And what’s most
interesting is how they found the resources to pull off this
kind of upgrade cycle.


The importance of dual-licensing

Of course, any agreement under which you release free
software (other than the public domain) is a license, but
“licensing” usually refers to selling licenses. And MySQL AB
has become one of most successful companies with a
completely complementary dual-licensing model: they offer
everything under an open license for certain users, but
charge money for everything under other circumstances.
(These circumstances will be discussed further down under
The licensing of free
software
.”)
As we’ll see, the parallel existence of GPL licensing and
commercial licensing leaves a mark on every aspect of the
company.

The CEO of MySQL AB, Marten Mickos, said that more than half
of their money comes from license fees. This contrasts with
an impression of open source software left by Novell vice
president Chris Stone in his keynote (described
later).
Stone, claiming that Novell had already settled on a
maintenance model for revenue, suggested that, because of
this, the move to open source will not be as hard for Novell
as for other traditional computer companies. The remarks
implied that an open source business model has to be a
support model, but MySQL AB staff pointed out that support
contracts have been shown to be insufficient to fund software
development. It may be enough in the future, but it’s not
yet.

The other side of dual licensing is equally important. In
terms of adoption, open licenses do more for a software
project than twenty thousand billboards and glossy ads. The
GPL allowed MySQL to penetrate millions of sites that would
never have otherwise known about it.

But the GPL also created a hotbed of user participation that
can be witnessed to this day, as MySQL AB employees
repeatedly ask their users for feedback. MySQL AB also
benefits directly from contributions; for instance, its most
feature-rich storage engine, InnoDB, started as an outside
project.

But MySQL would have remained a stepping stone to other
databases for many people, were it not for its continual
growth and improvement. This rate of improvement is not
exceedingly fast (managers stress that they always check for
stability, correctness, and performance before releasing
enhancements) but it’s fast enough to give customers the
impression that features are worth waiting for–that what
they want will in due time be added to the product.

And there’s a symbiosis between technical development and
payments for licenses. Each requires the other. If a
substantial body of enhancements to MySQL grew up outside
the company–even if they were put under the GPL and MySQL
AB could incorporate them into its version of MySQL–they
would not be part of the value MySQL AB could offer paying
customers. There would thus be few paying customers, and MySQL AB
could not afford to hire people to keep up development. In
order to keep up with customer needs, MySQL AB has managed
one of the coolest tricks in open source development:
keeping most development in-house. And making users happy
about it!

Founder David Axmark told me there’s tremendous power in
having a product unambiguously associated with a single
company. Whereas Linux and Apache belong to everybody and
nobody, MySQL is taken seriously by large companies with
money to spend because there’s a company that owns a
trademark on it and markets it like a proprietary product.

So MySQL succeeds at maintaining two faces. To paying
customers, it’s a traditional, responsible vendor. To
programmers and database administrators, it’s a flexible,
responsive network of independently-minded developers in
free-software style.


SAP adds its muscle

Nobody would be sorry to have the backing that comes from
such a large and well-established corporation as SAP. But in
addition to SAP’s prestige and endorsement of MySQL, what is
the main contribution of the partnership?

Not MaxDB. This is the new name for SAP DB, and was honored
with several sessions at the conference, all poorly
attended.

And probably not the money SAP invested in MySQL AB as part
of the partnership they announced in May 2003. Certainly
this helped to spur the enormous hiring campaign MySQL has
been on during the past year. (They announced that they
doubled the size of their company to 134 staff.)

The impression given by Kaj Arnö, in his presentation
on the SAP partnership, was that the best part lies in the
expertise SAP brings to areas where MySQL needs to upgrade.
SAP DB contains a number of features that MySQL AB would
like to implement, and through the partnership they can do
so much more quickly. In particular, MySQL 5.1 is supposed
to contain server-side cursors, views, standard error
handling, standard security handling, schemas, and
constraints.

There are three reasons for incorporating SAP DB features
into MySQL:

  1. They are genuinely useful.

  2. They are needed to run SAP.

  3. They are ANSI-compliant.

We have to start with the understanding that complete
compliance with the ANSI SQL standard (one always has to
ask, “Which standard?”) is pretty much impossible. See, for
instance, the negative assessments by SQL standards experts
Michael M. Gorman
and
Peter Gulutzan
(the latter now a MySQL AB employee). But MySQL AB would like to
approach compliance with the core SQL standards. They don’t plan
complete compliance even with this limited part, because it would
require them to sacrifice other crucial selling points: speed, and
ease of use and management.

Meanwhile, Arnö laid out a roadmap for merging MySQL
with MaxDB, beginning with a proxy that translates the
protocol used by a MySQL client (and eventually, the
particular syntax of MySQL commands where they differ from
MaxDB) into a format a MaxDB server can recognize.


The licensing of free software

As I said
earlier,
dual-licensing is central to MySQL’s business model. So
under what circumstances must you license MySQL? There’s a
“nice guy” answer that’s fairly clear, and a formal legal
answer that’s considerably murkier.

The nice guy answer is (I believe I am quoting Monty
Widenius directly here): “If you distribute MySQL for free,
you get it for free, but if you charge money for it you give
us money.” I believe this covers most cases neatly. For
instance, I think everybody agrees that a store can run its
inventory application on MySQL, or an airline book tickets
through its Web page backed up by a MySQL database, without
paying for it. These businesses are not making money by
distributing MySQL; they’re just users. And I’m pretty sure
the GPL covers them.

Most situations requiring payment are also clear. If you
enhance the MySQL source code in some way and sell it
without distributing the source code, you have to pay a
license.

But what about the case of the application service provider?
This is a common problem in GPL-land that I don’t believe
has even been resolved. At a Birds of a Feather session at
the MySQL conference one evening–a session well attended by
about 25 very interested people–one programmer for a game
company laid out a situation where they run their multi-user
game on a server backed up by MySQL, and distribute only a
client. Do they have to pay a license? After all, they’re
not distributing MySQL itself.

Zak Greant, a long-time MySQL public figure (listed in the
conference brochure as their “community advocate”) said the
game company should pay. The game could not run without
MySQL, and the client was the means of access by paying
customers.

Several attendees then tried to extend Greant’s
reasoning. Why, then, shouldn’t users of Web browsers pay
license fees for accessing Web pages backed by MySQL? Well,
besides the absurdity of trying to enforce such a payment
regime, the Web server does not use a proprietary,
specialized protocol as the game does.

I found Greant’s argument strained, but I appreciate the
need for MySQL AB to share in the profits from services that
depend on MySQL.

(UPDATE, April 22: Zak wrote to explain the thinking behind
asking a game company to pay a license on a system where the client
and server use the MySQL protocol. It makes a lot more sense now. If
the client and server communicate using the MySQL protocol, the client
is no doubt written with the MySQL library that implements the
protocol. (Who would reinvent the wheel just to save a few bucks?)
Under the GPL–although perhaps not the LGPL–the game client is an
extension of MySQL and qualifies for the commercial license.)

The length and heat of this late-night
argument shows that open source licensing still has to shake
out. But let’s remember that proprietary licensing is an
even deeper pit.

There are clauses in most software licenses (such as
prohibitions of reverse engineering) that are flat-out
illegal. Many more clauses are so ambiguous that any guess
about their interpretation by the courts would be as good as
a coin flip. Many organizations probably pay a lot more in
license fees than they’d have to pay if they took the time
to examine the licenses with a fine-toothed comb and showed
a willingness to go to court. And of course, we’re still
arguing over what’s covered by fair use, what constitutes a
trade secret, and whether the DMCA outlaws Web links to
illegal code.

So let’s see if we can pull ahead of the pack in free
software. Let’s see whether the field can establish a system
that’s readily understandable, fair, and conducive to
growth. I’ll return to this question when covering
Brian Behlendorf’s keynote.


Cluster around and take a close look

My own close look at the new MySQL Cluster product leaves me
puzzled, and several other people I talked to at the
conference had the same feeling.

At recent LinuxWorld conferences, I’ve noticed several
companies marketing cluster solutions that support MySQL.
MySQL AB has apparently decided these companies had a good
idea. At this conference, they announced their own
clustering solution and offered several sessions on it.

MySQL Cluster is a separate network of nodes that replicate
data through striping. The key for each table row (which is
added behind the scenes if the programmer does not specify
it) is hashed to determine which nodes store the row.

At the MySQL server, the clusters are supported by a new
storage engine (a.k.a. table type) that has many of the
features of InnoDB, but apparently not all. Other than
specifying the new storage engine, programmers don’t need to
make any changes to their code, although some types of
optimization are different when working with clusters.
Developer Mikael Ronström–who has been working on this
technology for over 15 years and did an implementation for
phone company Ericsson before coming to MySQL AB–claimed
that MySQL AB offers five to six nines of availability.

Now for the catch. All databases handled by the cluster have
to be stored in primary memory. One can spread the data
across several nodes, but their combined memory is a limit
on the size of databases.

In discussions, it seemed to several of us that any company
willing to devote 6, 8, or 12 systems to their database will
have more data than fits in a few system’s memory. MySQL
Cluster will add disk storage eventually, but it will take
some time to come, and when it does it will probably erode
some of the vaunted speed advantages of MySQL Cluster. For
instance:

  • Updates will no longer be so fast (nearly as fast as reads,
    currently).

  • Restarting nodes will take longer.

  • Restarting as the main way of recovering from
    inconsistencies may become less appealing.

Emic Networks
gave me a data sheet that compared their product, Emic Application Cluster, to
MySQL Cluster. Everybody is very polite about these matters, of
course, and says that different products are appropriate for different
markets. Essentially, MySQL Cluster offers speed–particularly for
updates–whereas Emic offers larger data sizes. Emic is also more
robust at handling soft failures, such as a node overwhelmed by a high
volume of queries. The key market for MySQL Cluster seems to be
telecom (where the technology emerged), whereas Emic has customers in
more traditional business areas.


So, what is Novell’s Linux client environment?

Not desktop! No–a Linux client. That’s the word I heard
from keynote speaker Chris Stone, the vice president on
whose advice Novell spent 250 million dollars to buy the
companies Ximian and SUSE. When I asked how Novell would
combine all those assets into something new and
synergistically superior, Stone said he couldn’t announce
anything yet, but promised something he called a “Linux
client environment,” something “completely new and
different” and “much better than simply substituting Linux
desktop systems for Microsoft desktop systems” as
Münich did.

Stone also said during his keynote (perhaps in answer to the
anticipated questions about Ximian being based on GNOME
while SUSE features KDE) that people shouldn’t ask “KDE or
GNOME?” but rather that, “The money lies in giving each
customer what it needs.” This might be a Linux-based kiosk
for call centers, a PDA environment for mobile users, and so
on. Specialization is the path to success.

I thought, as I listened to Stone’s keynote, how vendors
switching to open source tend to go through stages.

  1. First, a tentative recognition of the historic shift to free
    software.

  2. Then a phase of loudly announcing over and over (in words attributed
    to Steve Jobs), “We love open source.”

  3. A mingling of their traditional proprietary offerings with
    open source software they licensed from elsewhere.

  4. A serious commitment to adding value in the open source
    area. Further stages are likely to emerge, but I haven’t
    seen them yet during the evolution of major vendors.

HP appears to be in the third stage, whereas IBM has reached
the fourth. Apple lies between the third and fourth stages,
because few people use Darwin on its own (or other software
released under a free license by Apple). Sun is the outlier
here, having jumped into the fourth stage through its
release of OpenOffice.org and JDS, while barely sticking
their toes into the second.

Stone’s speech reflected the second stage of development,
and Novell’s offerings the third. They already sell a number
of their products on SUSE, and can use them to tie together
SUSE with Netware. These products include Novell’s directory
offering, eDirectory, which offers single signon and other
sophisticated identity services, and their clustering
filesystem, Novell Storage Services.

While the 250 million dollar expenditure shows the grit in
Novell’s teeth as it determines to reach the fourth stage, I
can’t say they’ve reached it yet. Ximian is still Ximian and
SUSE is still SUSE. But Stone is hinting that Novell has a
broader vision, and in fact sees the Linux market as broader
than most conventional vendors do.


Snips from the discard bin

Brian Behlendorf of Apache likes to see software development
as an art as well as a science. In his keynote he decried
the approach to development where “software engineers as
cogs.” He also described some of the government efforts
around the world to move from proprietary software to open
source software, driven by pressure from U.S. companies to
get serious about enforcing licenses, and the resulting new
laws that countries have to pass to conform to World Trade
Organization regulations. “The WTO is the open source
software field’s best friend,” Behlendorf put it.


Apple Computer faces a challenge that precisely mirrors
Linux: having captured hearts and minds as a desktop system,
Apple’s Macintosh is trying to push its way into heavier
applications as a server and a basis for clusters. Dr.
Ernest Prabhakar of Apple gave a keynote listing the many
levels where Apple uses free software and insisted they try
to conform to standards when innovating (”to enhance and
open, rather than embrace and extend”). And in classic free
software style, Apple includes development tools on every OS
X system shipped–and not just standard tools such as
gcc, but Apple’s finest programming
environments–so that every user in theory can be a
developer.


Why would
Trolltech,
the vendors of the cross-platform Qt toolkit, show interest
in a conference about a database? While Qt is most famous
for building interfaces–particularly as the basis of the
KDE desktop–its APIs form an umbrella over a huge range
programming activities. Now these include connecting to
relational databases. Thus, Qt takes its place next to Perl
DBI, JDBC drivers, and other APIs from the many other
languages that interface to MySQL. And I suppose this is a
benefit to people who want to build interfaces for many
different platforms, because they can settle on a unified
programming style and expect such conveniences as having
data types from different parts of the application conform.

Most of the API is familiar to any programmer who has made a
connection to a database, but Trolltech went a bit farther
and offered a C++ class that replaces SQL altogether. This
was perhaps going too far. SQL syntax is very flat and very
frustrating–a legacy of its origin in the 1970s, when
language designers expected end-users to type in their
queries manually–but it fits the job it has to do. Trying
to specify the same activities in C++ syntax is even more
awkward and less streamlined. Trenton Schulz of Trolltech
told me that many people expressed the same opinion I had,
and that the non-SQL interface might be removed.


The annoying but irreplaceable syntax of SQL continued to
show its face in MySQL Query Browser, a new graphical tool
for viewing and manipulating data from a MySQL database.
This tool is in some ways an IDE for writing SQL, complete
with such debugging aids as single-stepping and breakpoints.
In other ways, the tool is just a convenient way to look at
and change data, or compare two results from different
queries.

What are the important trends in MySQL adoption?

brian d foy

AddThis Social Bookmark Button

I had to fly Northwest today. I did not get to make these plans, and was not very happy about the airline choice (but once I got to Chicago and saw exclusively Northwest planes I understood). Since I was new to Northwest, I had to stand in their general public line rather than zip through the frequent flyer bow-and-curtsy line.

I got up to the self-service kiosk and started to read the instructions, which were clear, but before I could do anything, a supercilious employee appeared at my elbow and started to help me. Then I realized that everyone else using a self-service kiosk also had a Northwest employee helping them, although everyone else seemed to have a friendly valet.

I got through the self-service check-in with much finger pointing by my personal valet, until he looked at my bag and sighed “That’s overweight, so you have to pay more”. I ended up standing in another line, so I could complete my self-service check-in by talking to a real human, as soon as one was available.

According to one of the kiosk valets, who told me that he only has this job because he is too old to quit, Northwest axed their staff in favor of the computers, and it has no plan to deal with people who cannot check-in through the kiosks, so they have only one ticket agent working at a time. We were in the limbo line—the one ticket agent had to serve all first class and frequent flyers in line before she could help us, and people kept getting in the first class line.

A soldier on his way back to the middle east got put in the limbo line behind me since his two duffel bags were overweight (we can stuff a lot of junk in those bags). Then, an entire family had to stand behind the soldier because there was a problem with their ticket. So much for computers replacing real live people.

This little exercise only made us 45 minutes late to the gate, but the plane was one and a half hours late itself so it all worked out.

Have computers automated inefficiency and frustration in your life?

brian d foy

AddThis Social Bookmark Button

Today my wife and I checked in to the Hilton Garden Inn in Detroit, where we will live for the next month. The hotel has free internet, and the instructions say that I simply have to plug my laptop into the data port and access a starting web page. We want to use two computers though, so the single data port is a bit of a problem.

Instead of following the instructions, I plugged in an Apple Airport. I figured that I would have to do a bit of gymnastics to get networking magic to recognize the Airport since it cannot access a web page, but when I tried it from my PowerBook, it just worked. The NAT stuff must handle all those details for me. My wife was online in a couple of minutes with her iBook. We both got free high-speed internet, set-up in under four minutes just by plugging things in.

It gets better though. When I checked the wireless icon in my menu bar, I found that the hotel a wireless access point too, and that I could connect to it. The signal strength was much weaker than the airport six inches from the desk, so I do not need to use the hotel wireless. The last hotel I stayed at (The Comfort Inn in Warwick, RI, four days ago) had pay-per-day wireless access, so my wife and I had to pay individually since we could not hide our two computers behind an Airport.

But it does not stop there. I can print to the laser printer in the hotel business center, and do it from my hotel room. I can do it directly, it says, or I can access the PrinterOn website and upload files along with some special codes found on the instructions, and the stuff magically shows up in the business center. If I cannot upload the files, I can email them to a particular address with a couple of markers at the top of the email that tell the printer what I want. And, at the Hilton Garden Inn, it is free.

Life is good.

Which other hotels have free high speed access?

Jacek Artymiak

AddThis Social Bookmark Button

Related link: http://undeadly.org/cgi?action=article&sid=20040409000001

Daniel Hartmeier took over the job of the editor of the OpenBSD Journal after James R. Phillips and Jose Nazario announced their resignation on April 1, 2004. This is excellent news for the OpenBSD community. We all thank James and Jose for their excellent service to the OpenBSD community.

brian d foy

AddThis Social Bookmark Button

A couple of days ago, I got back from 15 months of active duty with the Army. My home office is a mess. I dumped out all of my bags and my foot locker onto the floor, and I am trying to separate the mess into several piles. Mountains of mail and magazines take up all of the space on my table, and my desk barely has room for my laptop.

Somewhere in all of that mess, I set down my cell phone yesterday, but I have not really wanted to use it, so I have not bothered to look for it. I could probably call it and find it quickly by looking for the vibrating thing (or better yet, let my cats find the vibrating thing), but that means I would have to find my cordless phone too.

Since I have been back, I have had to update a big portion of my address book and I can now actually use iCal. The Nokia 3650 can sync all of these things, and I want the updated versions to show up there. That is, if I can find my phone.

I noticed, though, that I have Salling Clicker running, and it tells me that my phone is in range, so it must be on this side of the apartment. And, if it is in range, I can sync it.

iSync has no problem, and it connects to the phone, updates the address book, calendar, and To Do items. Wireless networking means not only do I not need to find the missing cable, but I do not even need to know where the phone is.

Wouldn’t it be nice if my Mac could point at my phone, or the access point?

Jacek Artymiak

AddThis Social Bookmark Button

Related link: http://www.netfilter.org/news/2004-04-15-sitecom-gpl.html

It looks like Sitecom GmbH got themselves into trouble by not understanding what are the obligations of using GPL-licensed software.

Once again we are reminded that freedom does not equal anarchy. GPL-licenced software is not public domain software; it is free for the taking, but when you start modifying it, you are asked to share your modifications with the world.

Fortunately, there are more business friendly licenses, like the BSD license and its many variations. They are particularly suitable for embedded systems, hardware firewalls, etc.

Sitecom probably wouldn’t have gotten themselves into this legal knot if they used pf.

Tony Stubblebine

AddThis Social Bookmark Button

Updated: I’ve added a FAQ section at the bottom.

We just launched O’Reilly’s single sign on system. Effective immediately you’ll be able to access oreilly.com, Safari Bookshelf, O’Reilly Network, MacDevCenter.com, ONDotnet.com, ONJava.com, ONLamp.com, Perl.com, WindowsDevCenter.com, and XML.com using a single account and password.

We hope you find this system more convenient and intuitive to use.

There are several additional sources of information.

  • Existing users will receive an email with more information about their account.
  • You can also read the official system bulletin.
  • If you’re having account troubles, send email to accounts@oreilly.com

This is a big change for us, so we’ll be keeping a close eye on the changes over the next few days. If you have any questions or concerns I’m happy to address them here or through email.

Frequently Asked Questions

Why can’t I login?

You need to login with your email address now. A lot of our sites previously required a user id.

Your password may have changed or you may no longer remember your password. Click the “Forgot your password” link on the login page. You will receive a numeric password that will allow you to access your account and reset your password.

Why did my password change?

If you had more than one account on our sites we reset your password. You should have received the new password in your email. If you didn’t receive an email, you can retrieve a new password from the “Forgot my password” link.

You’ll be required to change your password when you login

What’s a screen name?

We’ve kept your old login name around for use as a screen name. It’s now your public identifier on our sites.

Why did my screen name change

In cases where two or more users shared a screen name, we incremented the duplicate names.

This eliminates confusion across our sites where chromatic on OReillyNet may not be the same user as chromatic on XML.com. There would now be a chromatic and a chromatic1.

I’m a Safari customer and I can’t login

You may not have signed up for Safari through O’Reilly. Try logging in through http://search.safaribooksonline.com. You will be automatically directed to the correct Safari portal for your account. You can read more in this note to Safari customers.

Why didn’t you give more warning/communicate this better?

This is a big change for us and for you. We’re reading all of the emails and comments and adding new information to this weblog. Please check back as needed. If you want personal help from our Support Group send email to accounts@oreilly.com.

Jono Bacon

AddThis Social Bookmark Button

I have been a part of the free and open software world for about seven years now, and one area that this community has been overflowing with is the excitement about the software we use. This excitement is typically tied together with enthusiastic advocacy, and in some cases ranting, about how great this software is. Promises of how things are so much more stable with this free software and the bountiful up-times of servers are often bandied around. I am guessing that that Netcraft get one or two hits after such advocacy.

Now, don’t get me wrong here folks; I am not knocking advocacy in any of its forms, but there is no doubt that some members of the community are so psyched up about the software that only one side of the story gets painted. As an example, we know that Linux is:

  • Stable
  • Secure
  • Low cost
  • Not vulnerable to virii
  • Entirely free
  • Supported by a great community
  • Supported commercially
  • . . .

All good stuff, yes. What often does not get expressed in this wonderful picture are the rather more negative aspects of Linux:

  • Often difficult to use for newcomers
  • Hardware installation can be a pain
  • Lack of application support
  • . . .

Before you all email me with complaints and suggestions that these disadvantages can be overcome, I know that many of these are being actively worked on. The point I am making is that Linux is not perfect; nothing is. Linux has its fair share of flaws and incapabilities. If advocacy is to be true and fair, these flaws need to be outlined also.

The key issue with flaws in free software is that the open source model is the solution. Yes, Linux may have these flaws but they are all being actively worked on by a community of interested users. When there is a problem within the software that drives the community, it is going to piss someone off enough to make them work on a solution. This is the classic case of scratching your own itch but sharing the back-scratcher with everyone else. So long as the software in our community is open source, I can see no reason why problems cannot be overcome. Admittedly, there are certain legal issues with DRM and other areas that will be difficult to overcome, but the technological challenges that face us are certainly achievable. We are a technically capable bunch and in many ways we need to push areas that are not as technically challenging but still important. Classic examples of this include documentation, training materials, demonstrations, representing the software to charities/governments/education and other areas.

A useful motivational technique with the free software community has been to always look for areas of weakness and attempt to apply your abilities where possible. Everyone has a skill that is useful and even if you have few creative or technical skills, there are always opportunities to contact organisations and groups in your area and have a chat to them about the benefits of this software and what it can do for them. Remember though, always offer a balanced and objective view. The last thing any of us want is for everything to be hyped and built up to an unobtainable level. In these cases (and this happens more often than you would imagine) disappointment is the only response. This is not a failing on the part of the software, but a failing on the part of the advocacy; no software could achieve the lofty features promised.

Before I finish up, let me plant one other technique in your mind for pushing this software into more places. If someone asks you for help and you are able to pop over and give them a hand, only promise to help if they will perform a similar good deed for the community. As an example, if you are going round to a pals house to help them install Linux, only do it if they will make a promise to use their skills to do a similar good deed such as writing up a HOWTO or helping someone else. Their deed does not need to be anything technically challenging, just something that helps out. This may sound a simple and idealistic approach to helping people but it really does work. Not only do they get the help, but you feel like you have helped two people and someone else will get further help too. This benefits everyone involved.

Do you think advocacy really works? What other techniques can we use to fairly promote this software?

Kevin Bedell

AddThis Social Bookmark Button

I’m convinced that what the Linux community needs is its own Steve Jobs.

We need someone who can envision something so insanely great that everyone who sees it will want it. They also need to be able to lead the development team that creates it.

But is Linux ready for insanely great products? I think so. In fact, I’m sure of it.

Some say that Linux is too hard to use - but look at Motorola’s new Linux-based phones (PDF link). Look at Tivo. Look at Google, for that matter. All these are based on Linux and none of them are hard to use.

And what about hardware compatibility? Well, if you’re building custom hardware, then compatibility’s easy.

Think of Jobs’ beloved Macintosh — hardware compatibility was easy since you could only buy the machines from a single vendor (who also happened to write all the software).

So what would an Insanely Great Linux product do? Well, check out the Linux Toys site to get some ideas. Maybe it would be a Music Jukebox or a Home TV Recorder/Player.

Given the advances in embedded Linux development toolkits and all the very small Linux machines that people are selling now, it seems like it would be pretty easy to mass-produce customized, single-purpose devices.

All we need is someone who can look at what’s happening today with embedded Linux and see custom hardware and super-cool consumer products.

Steve Jobs did that for the Mac. Who will do it for Linux?

Andy Oram

AddThis Social Bookmark Button

A couple people have told me that the hot new VC quarry in the Silicon
Valley is social networking–a whole herd of new services such as
Friendster,
Orkut,
LinkedIn,
and a number of major companies soon to join them. One friend of mine,
after complaining about the uselessness of social networks, begged me
to invite him into one–because he’s doing research to help his a
company he consults with develop a competing social network.

The experiment

Reluctant to add more information overload to my creaking virtual
shelf of resources, I joined a couple social networks some weeks ago
after being pushed by various colleagues, including my boss’s boss. I
wrote up my

initial impressions

but didn’t feel I had really explored the medium. So I decided to try
a formal project that would acquaint me with the medium’s strengths
and weaknesses, and give a first answer to the question of whether a
social network could help me where my usual channels of getting
information could not. Since I’m married and have a job and friends
and leisure activities, the test I chose was to find someone in an
established discipline who could direct me to research in that
discipline, one which I knew little about.

The subject was reading–in particular, whether twentieth-century
media such as radio, television, and the Internet have changed
people’s expectations when reading and their ability to absorb
information from books. (I’ll probably get more useful responses from
readers of this blog than from anything I’ve done up to now–but I’m
giving away the ending to my story.) The information was not
arbitrarily chosen for the sake of experiment; I really need it for a
presentation I’m writing on trends in technical documentation, to be
given at the upcoming

O’Reilly Open Source Convention
.

I had already tried my usual ways of finding information: web
searches, a relative in the field of education, a contact I had
developed from an article I wrote about

Marshall McLuhan
,
a mailing list he pointed me to, and a couple similar gambits. None of
them helped me, although I got encouragement that information on this
subject did indeed exist. So I turned to searching my social networks.

One of the most popular networks proved right away to be unsuitable;
it allowed searches only on a few characteristics such as whether
someone is married. I assume more flexibility will be added in the
future, but for the moment I can use the network only as yet an extra
(unneeded) mail service, one where most of the messages are in
languages I understand only at the pidgin level.

Another network had a sophisticated search system that impressed
me. It was based on metainformation such as geographic location and
industry, which users are encouraged to fill out when they join the
network. Here is an example of the benefits that accrue when people
take the time to provide metainformation. The buzz over social
networks has apparently seduced them into taking this time, but
they’re not likely to do it often. Metainformation would help me find
documents these people have written, but they’re not likely to
attached metainformation to their documents. In fact, they’re not
likely to update the metainformation they already have here when
changes take place in their lives.

So I did two searches, setting the industry to “Higher Education” and
sorting search results by “Keyword Relevance.” I left other
metainformation as general as possible so I could search for
anybody. First I sorted for the term “reading,” then for “cognition,”
and finally for “cognitive.” The last term proved most fruitful,
judging from the brief descriptions I read of the people it turned up.
I thought the search and sort was intelligent. The top choice that the
search presented to me in terms of keyword relevance was also my top
choice based on the descriptions–and ultimately the person I
corresponded with.

Now for the downside. My top choice was more than four degrees away
from me. That meant I had to contact her cold, just as if I had found
her name in a journal or on a web site. That’s fine with me, but it
eliminates much of the point of being in a social network.

On the other hand, another of my choices was three degrees away, which
mean I could not contact him cold even if I wanted to, but
had to go through the two intermediate people. This effectively meant
introducing a delay of several days (and bothering the intermediate
people), which eliminates much of the value of online connectivity.

As it turns out, the network itself introduced an artificial delay
into my direct request to my top choice. So the response from her (she
approved my request for contact) took four days, only one day less
than the response from the person who was contacted through two
intermediate degrees. (The latter person rejected the contact because
he did not have the information I wanted–in other words, I guessed
wrong from the descriptions he provided on the network.) A third
request I made is to someone four degrees away and is still listed as
“en route” after ten days.

So how did I do? My top contact provided me with detailed names,
university departments, and terms to search for. So I think my use of
the social network was worthwhile. So far, I have not found the level
of (possibly simplistic) detail I was hoping for; the people she
mentioned are into abstract concepts like “computational modeling” or
at best “sentence comprehension.” I didn’t expect that I’d have to get
an advanced degree and learn to do my own experiments in order to
develop some general insights for my talk. But I can’t say I didn’t
get what I asked for.

Some conclusions

I’m not taking myself off the social networks yet; I’m intrigued by
what I achieved through this one experiment and would like to see how
they develop. But I have a few useful observations based on my small
experiences so far.

The artificial concept of “degrees” actually puts barriers in the way.

For most tasks, I’m more interested in what people know than whom they
know. But the primary criterion by which social networks rate
people–and really their whole raison d’être–is the distance
between people socially. If I have to contact intermediate people to
reach someone I’m interested in, I add a lot of extra time to the
contact while straining my relationships by imposing burdens that
offer my close contacts no rewards in return.

Anything over the second degree is equivalent to anonymity.

I might care whether Bill knows Bruce, should I care to get know
Bruce. But I don’t care whether Bill knows Bruce who knows Betty. At
that point, I have no way of judging the value of a personal
connection. The premise of the social network is like that of a
country club that requires endorsements for people to join: when
someone you trust marks someone else as trustworthy, it’s supposed to
influence your behavior. But the connection gets attenuated very
quickly. The main difference between recommending members to an
exclusive country club and having friends on a social network is that,
when you recommend a friend for a club, you understand clearly such
things as:

  • what kind of activities go on in the club
  • what criteria make a good club member
  • what rewards flow from being in the club
  • how important it is to be part of the club
  • how important it is to keep inappropriate members out of the club

and many other subtle social aspects of the club. All of these
criteria are missing from social networks; they’re too broadly
defined. I’ll repeat what I said in my
earlier article:

I know a lot of people because they’re interesting for one specific
reason or another, and none of that means they’re fit for some
particular task that somebody else has defined.

How do you say that something relevant to one relationship is relevant
to a different relationship with a different person?

For what I needed in this experiment, search was more important than
social networking. I think the goal of the social networking services
is to become more than search services, and to turn into true
communities. (In fact, one offers a service called “communities,”
which appear to be much more than newsgroups.) I don’t know whether
that will work, what the services need to make it work, and whether
the communities are enhanced by the “degrees” model of social
networking.

Let me end by suggesting an exciting new networking opportunity that
is not online and is very direct:
Beyond The Soundbite.
This political discussion was started by a relative of mine who was
upset by the inability of most people to find good sources of
information and good fora for discussing keys issues of our day.
Examples of such issues from Beyond The Soundbite’s home page
include:

  • Is "No Child Left Behind" good for education?
  • Should the USA adopt protectionist measures to save jobs?
  • Has the new Medicare bill made the crisis over health care better
    or worse?
  • How important is the deficit?

Beyond The Soundbite is intensely local and personal. The organization
brings in speakers and conducts roundtable discussions. The goal is to
build up trust among people with different political backgrounds and
keep them coming back over and over so they can deepen their
understanding of each other’s views. This is an old-fashioned kind of
community-building, quixotic perhaps in an age where people don’t even
walk to the edge of the block their house is on. But I think we need
it and I hope it spreads.

What are your results with online social networks?

Jono Bacon

AddThis Social Bookmark Button

The web is a pretty important medium to me. It is a medium that I spend all day, every day using, and it is a medium that I create content and media for. This content and media comes in the form of writing and specific web tailored content such as web pages and scripts. Like many other developers, have spent many a moment with gritted teeth trying to get my pages working in every browser. I have grown to learn the ways of the web, and this medium never fails to throw something new at me.

Despite the fact that we have languages such as PHP, Python, Perl, ASP and Javascript to make our web applications more dynamic, there is no doubt that the web is very much a limited medium to work with. This limitation is not from the processing angle; these languages give me the kind of processing available in system languages. No, the web is more limited in the realm of the user interface.

Within the web you have the fundamental GUI controls such as text boxes, buttons, checkboxes, radio buttons etc., but the user interface is distinctly limited. If you look at the full range of user interface controls typically associated with a graphical interface, many of these controls are missing from the web browser. Examples of this include tabbed pages, icon panes, context sensitive/pull down menus, toolbars, drag and drop and paint device widgets for handling document centric applications.

I know that many of you reading this will claim that a number of these user interface elements are indeed possible within a web environment. Yes, I agree that you can create JavaScript menu’s, you can emulate drag and drop with DHTML and with enough coding you can create similar UI elements within the browser. Although possible, much of this is a hack. These elements are not supported out of the box at an API level but are simply being re-implemented within the application. This means that if you want to do anything more experimental within the web browser environment, you need to re-implement many of these user interface elements that are not supported within HTML. This in itself limits the platform for creating more dynamic applications that require more complex user interaction. As an example, if I wanted to create a word processor, handling the main document area of the word processor would take some pretty serious UI coding. Much of this would be handling events and implementing methods to respond to these events. Although this would be required when writing a similar application with a typical GUI toolkit such as Qt/GTK, the issue with the web is first coding these special emulated complex widgets and then actually making your funky UI work in all browsers. This is a nightmare with this level of complexity in UI design, so what do we do?

I am a firm believer that web applications need to be tuned to the platform and context that they are being developed for. A website selling inflatable sheep needs to be accessible in all browsers and for all platforms; it is a public resource and should handle the different platforms that the public use. With regards to custom applications for specific clients/environments however, we can focus on a single browser platform; this is common within intranet application development. This is where Mozilla is pushing the potential for Mozilla dependent web applications with its XML User Interface Language (XUL) framework.

I have been playing with XUL recently and I have been really motivated with the potential for building truly interactive system type web applications. You only need to take a look at the Amazon application that is bandied around by pro-XUL hackers to see an example of what is possible with it. This framework not only brings the web browser out of the dark ages in terms of the potential for interaction, but the Mozilla developers made the right choice and picked XML as the language for specifying user interfaces. This choice not only makes user interfaces extremely easy to construct (with the benefits of XML DTD validation to boot), but the fact that the interface code is in XML also opens up a whole world of potential for further processing of this interface code. There is no reason why someone could not write a thin compatibility layer to convert XUL interface code to a fake table/div/image based interface for none-XUL browsers.

The exciting thing about XUL is not XML though. The truly inspiring aspect of XUL is the potential to standardise on Mozilla as a platform for developing complex applications. Many years ago I used to ramble on to bleary eyed people how I believed that the application space will move from the system to the web. At this time the web was beginning to take off and it seemed logical that everything should move into this area. People seemed to love the fact that they could check their email from the office/home/PDA/fridge with web based email, so why not push things forward with document centric applications?

With the on-going roller-coaster of Open Source software we also have a great potential for web based ports. Who is to say that at some point in the future an OpenOffice.org XUL based port is possible? How about a XUL based GIMP or Quanta? Admittedly, XUL still has some more advanced user interface widgets missing at the moment, but the fact that so much has been made available in the current versions of Mozilla, we can see the potential for this framework.

Application developers are going to need to consider how much user interface code is hooked into application logic. This is of particular importance if cross platform support is one of the goals of an application, and particularly if this cross platform support should be native and not byte-code running on a virtual machine. The problem we have here is that the operation of a button works pretty much the same for a user in a Qt/GTK/Windows/Mac OS X/QNX application, but the implementation of this button for the developer varies between these different GUI interfaces. This is an area where XUL again has some real potential for developers. If a developer was to write all UI elements in XUL XML instead of native code within the application logic, the XML could be converted to this native toolkit code using a compatibility layer. This technique of using an XML layer is used to a point in other systems (such as with Qt Designer when creating Qt interfaces), but the key point is that XUL should be the standardised XML language for handling these interfaces. This could dramatically open up the potential for a new breed of web based applications that could be cross platform and cross browser based if the W3C were to adopt XUL as an official recommendation.

I know that some of this is a pipe dream at the moment, and some parts of this vision are not quite there yet. There are also some issues with how system level processing works differently to web based processing. The point I am drilling here though is that XUL is great opportunity to strike a balance between different platform dependent applications.

The Mozilla project is proving to be capable of not only creating a strong and impressive suite of applications, but is also using the combined intellect of the development community to harness the potential for not only Mozilla based development, but development in general.

What do you think? Does Mozilla give us this potential or is this really just a pipe dream? Scribe your thoughts below…

John Catsoulis

AddThis Social Bookmark Button

Related link: http://www.embedded.com.au/devsys.html

Since Designing Embedded Hardware was published, I’ve received lots of requests from readers wanting to purchase computers based on the book. To meet this need, I’ve developed some small and versatile embedded computers ideal for newbies’ experimentation. They are designed to be easy to build, easy to program, and with a range of features to make them adaptable to a variety of applications.

I’ve tried to keep the costs as low as possible so as to make the entry-level bar as low as possible. You can purchase a complete system ready-to-code, or just a blank circuit board if you want to source your own components or modify/hack the design.

If you develop application code based upon these designs and want to turn your creation into a product, there are also royalty-free technology licenses available.

More designs are on their way, so watch for them in coming months.

Advertisement