April 2003 Archives

Jacek Artymiak

AddThis Social Bookmark Button

Related link: http://marc.theaimsgroup.com/?l=openbsd-announce&m=105175475006905&w=2

OpenBSD 3.3 is officially out in the wild. Be a good OpenBSD user and help the project. If your finances don’t allow it, consider “OpenBSD tax“.

Now that DARPA funding has been withdrawn, what other ways of financial support could OpenBSD use beyond selling CDs, posters, and t-shirts?

AddThis Social Bookmark Button

Alan Kay - “Daddy, Are We There Yet?”
(The Computer Revolution Hasn’t Happened Yet)

UPDATE: Lisa Rein has posted her Photos and Videos of Alan Kay’s Presentation - Thanks Lisa!

(I will pick a few highlights that appealed to me. For more
coverage on Alan Kay,
see Daniel Steinberg’s “Discussion with Alan Kay”, and
Cory Doctorow’s notes.)

Alan Kay kicked off the keynotes last Thursday with the grumpy (but in a good-natured way) refrain:

“The last 20 years have been boring”

We’ve had 20+ years of “The PC and Business”. As Alan sees it,
businesses tend to learn something, and then stick to it (to the point
where ongoing progress gets stifled) The thought that most things work
“pretty well” is an enemy of qualitative improvement.

Alan sees a real problem in the idea that most people are instrumental
reasoners. The judgement of a tool, or an idea, is done solely on
the current, short-term concerns of that person. Does the new thing
contribute to a current goal?

For me, I don’t mind at all that Alan is grumpy. He has
contributed a lot of very real thinking and innovation to the field,
and with the Open Croquet demo,
showing a shared 3D collaborative space, continues to do so. In
contrast, thinking of another grumpy pioneer, I doubt if we will ever
see Ted Nelson’s Xanadu. My personal opinion is that Ted was a
forward-thinker who was bypassed by the tech of the times (advent of
the web), and did not/would not adapt.

Alan showed a series of old, but still very relevant videos:

  • Ivan Sutherland demoing Sketchpad, in 1963. The amazing thing was
    that this program was object-oriented back then! Ivan was drawing a
    few simple parts, defining and resizing a rivet. The system showed constraints. Very
    impressive.
  • The first video game, Spacewar, on a PDP1, from MIT in 1963.
  • Douglas Engelbart, in 1968, with a mouse, interactively drawing
    on a time shared machine 40 miles away. The machine had 192k
    of RAM, .5 MIP. For those with RealVideo, you can see “THE DEMO” from a Stanford site

…and more. Alan hammered home the point that a lot was
being done in the 60’s because they really wanted the programs,
and were willing to make the effort to get the most out of
the equipment they had. They used machine language. Alan
said that nobody is currently thinking of the stuff that
was being done back in the 60’s. Nobody is reading the papers
that were published then. He mildly chided that nobody reads anymore,
and that all too little attention is being put into teaching kids
advanced concepts.

Some demos of kids using the Squeak environment were very impressive. I want
to skip to the Open Croquet demo. This is a Smalltalk-based 3D collaborative
space, running on top of Open GL. There were a variety of environments
such as underwater, and rolling hills. He showed how to interactively
draw new objects into the environment. The environment is scriptable.
He showed a web page in a window, in the 3d space. (I believe there
will be a video out there from this part of the talk.. I will attempt to track
down the link, and update this in the next day or so — dls)

Clay Shirky - A Group Is Its Own Worst Enemy:
Social Structure In Social Software

David Weinberger has href="http://www.hyperorg.com/blogger/mtarchive/001444.html">excellent
notes on this talk. As does
Cory Doctorow There is also a HydraText (new word I just
made up) at href="http://trevor.smith.name/ETConTexts/ClayShirky.txt">Trevor
Smith’s site. And don’t forget
Clay’s article

Clay has been watching groups for a long time. He sees
patterns in large and long-lived groups that succeed.

The last thing that was good for a group talk before the internet?
“The Table!”

The internet is great for ridiculously easy group forming.

Clay had three main themes: Why a group is its own
worst enemy, What is happening now, and What should we do?

Worst Enemy

Groups often have an undercurrent of sex talk.

Groups often identify, and vilify, real and perceived enemies (I think of Slashdot posters vs. Microsoft — dls)

Groups follow a religious pattern: nominating something that is very protected, and jumping all over anyone that doesn’t hold those same beliefs (example: wandering into a J.R.R Tolkien Usenet group,
and posting something that deviates from the group consensus)

A group structure is necessary, to defend the group against itself.
In the early 70’s, a wide-open access BBS called Communitree got
started. The adults really liked it. Some high school students got
onto to it and started offending the adults. The BBS collapsed
because the adults felt it was being overrun by the students. There
was too much freedom.

Technical and social issues are deeply intertwined.

“Learning from experience is one up from remembering”

Clay feels that people who work on social software are closer to economists
and politicians than programmers. That constitutions are necessary
for a long-lived group. As a group commits to its existence, chances are
they will call to defend themselves.

What Is Happening Now

There is a revolution currently going on. There are lots of people
writing social software.

The downside of going for size and/or traffic on a site, is that you
can’t support group interaction as well. (I’ve seen this time and time again with Usenet groups and large email lists. When enough people in the group want to focus on different areas, there is usually a split. — dls)

Groups can form very rapidly now, via RSS feeds, IRC chats, IM’s.
(my comment: I think that we will see a lot more in the way of
transient online groups, often focused on Location and/or Time. Etcon
showed a lot of Location + Time groups (the Hydra collaborations, for
one). I also think that we will start to see a lot of Time/Event
based groups, getting together online from all over the world at a
given time to share, collaborate, strategize, etc. Some threads of
this point into what Howard and Alan were saying in their talks.
– dls)

Clay has no idea why it took so long for weblogs to come about. We
could have been doing this 8 years ago. We got GeoCities instead!
“Why was there an 8 year gap between having forms, and the href="http://www.pepysdiary.com/">Diary of Samuel Pepys?”

It was the Pepys diary project which convinced Clay that weblogs were not
going to be a short-liven phenomenon. Someone was committing to
do a blog for 10 years.

We are starting to see software that assumes that every group will
have an online component.

What Should We Do?

What is it that makes a large, long lived group successful?

Clay’s answer: “It Depends!”

Some things are universally true:

  • cannot separate technical and social patterns/concerns
  • conversation can’t be forked
  • cannot completely program social issues in tech
  • the group will assert its rights somehow
  • members are different from end-users - there will always be some group of users that cares more than average about the success of the group.
  • there will be a core group which “gardens” the environment

Some more:

  • The core group has rights that trump the individual in some situations
  • The one-person, one-vote system does not always work (such as an example to create a controversial newsgroup on Usenet. The people voting against it weren’t going to use it anyway)
  • The people that want to have the discussion are the ones that matter

The WikiPedia works because it
has a “volunteer fire department” that can roll back versions of pages that are attacks.

Groups need handles (not necessarily a full identity). You need to
be able to relate “who said what, and when”. On this note, Clay
states that reputation is not portable from one context to another
(your standing in one group doesn’t guarantee the same in another.
Reputation is earned — dls)
Users have to be able to identify
themselves. and changing identity is considered to be really wierd -
it’s considered a transgression.

Clay thinks that you have to design a way to have members in good
standing. You need barriers to participation. He thinks this killed
Usenet. There must be some sort of segmentation of ability. Social
software needs to have ease of use from the group point of view, as
opposed to the individual. Ways need to be found to spare the group from scaling. Two way conversations do not scale well.

I agree with just about everything that Clay said in his talk. To
get the full picture, you need to jump over to the complete notes (I
notice that the HydraText version, at
http://trevor.smith.name/ETConTexts/ClayShirky.txt has *15*
contributors)

I personally think that Usenet can be saved. I wrote up
an idea back in 1993 for “Virtual Newsgroups”, see my href="http://javajoint.com/archives/2003/04/13/something_old_something_new.html">personal
blog for more on that. The gist of it is that everyone can have
their own personal filter into Usenet. Groups form from users that have filters that coincide (looking for the same keywords in posts,
excluding certain posters, giving preference to others, and so on)

Clay’s talk was especially interesting to me, because I think tech is
giving us the ability to create groups (whether that is our intent or
not - re: Howard R’s billion mobile devices) faster than we come up with
rules/patterns to deal with the social side. Going back to Hydra for
a moment… 15 people were able to work on a document on Thursday.
Could they have done the same two days earlier (say, during the Amazon
tutorial?) Maybe. My observation is that a simple text template,
which came about during the course of the conference, became a sort of
structure so that the group of Hydra collaborators could succeed. –
dls

Should we be farther along by now? Do Instant Online Groups create a need for new rules/patterns? (Hydra)

AddThis Social Bookmark Button

Tim O’Reilly - O’Reilly Radar

“The future is here. It’s just not evenly distributed yet”
– William Gibson

Tim talked about some of the Driving Ideas that guide
O’Reilly. A big theme is: knowing what’s cool, and evangelizing it.

Recognize Alpha Geeks, and leverage their expertise:

  • pay attention to what they are doing
  • recognize who is being looked up to

On the editorial side, O’Reilly looks for disruptive
technologies. Disruptive Tech tends to be bottom-up,
where some grassroots development takes over the scene.
The Mosaic web browser would be one example. It didn’t
come from some big company. It came from college students.

Tim’s view is that Open Source is all about Wide Area
Networking. For more on this particular talk, see href="http://www.hyperorg.com/blogger/mtarchive/001437.html">David
Weinberger’s post

Jo Walsh - Gonzo Collaborative Mapping on the Semantic Web

Jo is working on a collaborative mapping
of points in London.
A couple of interfaces to it are via Jabber (mudlondon@jabber.earth.li)
or AIM (mudlondon) You can
navigate around London via roads and the Tube. Some well-known (and not
so well known) places (such as the Victoria and Albert Museum) can
be navigated to. Try “go Picadilly Circus”. With a little exploration,
you will find links to web sites of nearby shops

The slides to this talk are available in a href="http://space.frot.org/talks/etcon_talk.pdf.gz">gzip’ed file from
space.frot.org If my reading of Jo’s material is correct, the REST
interface to the RDF map of spaces, and connections between them,
could act as a back end to a visual web (or otherwise net-connected
interface), allowing many users to navigate, annotate existing
locations, add new ones, and jump to web sites that have been
associated with them.


When you consider the work being done by Jo, by UpMyStreet.com,
by Joshua of GeoURL.org, and by a multitude of other projects,
the mind starts to boggle. The space of relating the physical
world into the web has a lot of angles and applications. I think
the dimension of time is going to be a necessary component
for many of them. The reasoning will be that for any popular
physical space, you will need a method of filtering out points
in order to discern individual places, events at those places,
and so on.

Stuart Cheshire, Apple - Zero Configuration Networking with Rendezvous

Stuart gave an overview of Zero Configuration Networking, more
commonly known by Apple’s name of “Rendezvous”. The presentation is
available as href="http://conferences.oreillynet.com/presentations/et2003/cheshire_stuart.pdf">an
Acrobat file.

In a nutshell, ZeroConf allows
services from different devices to find each other without any
explicit network configuration.

I say devices, because beyond Macs, there are TiVO Series Two
machines, network-enabled video cameras, printers, and others are
starting to implement ZeroConf.

Going back to the 1980’s and early 1990’s, there were a plethora
of networking protocols to worry about, such as DECNET, Xerox XNS,
and so on. Most of these have died, except for TCP/IP and AppleTalk. (and SMB…)

The point of Rendezvous is, since Wide Area Communications have
converged on IP, why not Local Area Communications too?

Stuart went on to discuss the “three legs” of Zero Conf: Addressing,
Naming, and Browsing. (this is deliberately light, as I appreciate
what the tech does, but am not up to speed on the networking intricacies
– dls)

Addressing

  • ZeroConf picks a random addr in 169.254/16.
  • It sends out an ARP request. If someone answers, it picks a new address.

Naming

  • Pick a desired name in the .local domain
  • Use Multicast DNS to issue a query to see if anyone else is using the name
  • If someone is using the name, pick another
  • mDNS has ongoing passive conflict detection
  • See draft-cheshire-dnsext-multicastdns-01.txt for much more detail.

Browsing

Stuart stressed how ZeroConf has been kept deliberately simple, by
not adding a lot of configuration options. He used the phrase
“don’t boil our frogs”. DBoF means that if you slowly keep
adding options, pretty soon you are in very hot water and boiled.
He attributes the failure of other networking protocols over
time to DBoF.

Something I will add to the subject of Rendezvous is that it was very
much in use at the conference. If you are on a Mac, go pick up href="http://hydra.globalse.org/">Hydra. It’s an editor which can
handle multiple simultaneous users in the same doc. The site touts its
use in XP (Pair Programming). Hydra 1.0 was released March 31st.
Three weeks later etech attendees were using it all over the place for
collaborative note taking, and came up with a
template to help organize the “who writes what?” aspect. My daughter and I use it at home as a sort
of IM on steroids. The new href="http://www.apple.com/itunes/">iTunes 4 uses Rendezvous to
share music playlists. Another great app is href="http://www.lagercrantz.ath.cx/software/clipboardsharing/">ClipboardSharing,
which shares text and images.

In the context of what the conference is about, Rendezvous is a very
enabling technology. It makes collaboration and sharing easy. No
fussing with computer names and addresses. There are projects underway
to get ZeroConf going on Windows and Linux. Stuart was able to show
a ZeroConf enabled web camera and a printer “just work” when plugged
into a local network. It will be very interesting to see if
Windows and Linux ZC apps start trickling out by the July OSCON.
Keep an eye on dotlocal.org

What’s your view on Grassroots, disruptive tech? Do you think the advent of ZeroConf on Windows and Linux will explode the realm of realtime, local area collaboration?

AddThis Social Bookmark Button

A look back at the Emerging Tech Conference…

Tuesday

Amazon BOF

Amazon is very much into
href="http://associates.amazon.com/exec/panama/associates/ntg/browse/-/567634">web services. They are making it easy for associates to develop
their own front end store, tapping into Amazon for product descriptions,
shopping carts, and much more. The associates then earn referral fees
from Amazon for items sold through the custom front-ends. Amazon
supports SOAP and REST. What’s getting used the most? REST.
(some Web Services Links for more info)

Some of the technologies they use: Linux, Oracle, Perl Mason. If I
heard correctly, the originator of Mason (Jonathan Swartz) is
now working at Amazon. They develop primarily in C/C++, Java,
and Perl.

I would love to see RSS feeds from Amazon. Example: a new book
or DVD in a certain genre (or something that matches a search)
becomes available. I would then see the new offering in my
RSS newsreader (such as NetNewsWire)

As Tim O’Reilly href="http://www.oreillynet.com/cs/weblog/view/wlg/1707">noted last
year, Amazon gets the notion that they can provide a valuable
service to developers everywhere, and make money from it. There’s much more to Amazon than
their Web and phone/iMode interfaces.

Wednesday

Howard Rheingold - Technology Innovation and Collective Action

href="http://conferences.oreillynet.com/cs/et2003/view/e_spkr/1441">Howard
Rheingold kicked off Wednesday with a great talk, mostly revolving around social and political implications of how technology affects us all. Greg Elin is one of several people who
captured href="http://duhblog.com:8668/duhblog/space/Howard+Rheingold+ETCon+Keynote">
a nice outline of the talk.

Some of Howard’s assertions:

  • We are at a pivotal point of technology.
  • We face political assaults on our freedom to innovate (DRM).
  • We are seeing early signs of Techno Collective action.

It has been collective action which has defined civilization, going
back to when humans banded together to hunt.

The web (built on the internet, Unix/Linux, and Open Source) is an
example of Collective Action.

Peer to Peer software, distributed computing (such as href="http://folding.stanford.edu">folding@home), WiFi, href="http://www.socialtext.com">Social Software, and the
WikiPedia are examples of Techno Collective action. The WikiPedia is an example of a collection of knowledge
contributed by collaborators working outside of a traditional hierarchy.

There are Political ramifications to Techno Collective action. In the
US 2004 elections, we will see how the net affects the ability to get
out the vote. It has made a recent difference in Korea and Kenya.
Other examples include the Dean
Meetup
, and anti-war protest organizing.

Howard went on to illustrate the difference between Consumers and Users.

  • Consumers: passive. They receive what is broadcast by the few (media companies that control most of TV, Radio, and traditional print)
  • Users: active. Users actively shape media. They link together for Collective Action. They use the web. Things can spread around the world from a grassroots level extremely fast.

Howard maintains that we must fight to remain users. Our control of
innovation is under attack.

An example worry: Routers that discriminate amongst packets, allowing some to pass, and
dropping others (which would go against the spirit of the internet
– dls)

Howard wants us to think of how to innovate in favor of user power.
One example: How to make micropayments common and easy to use, as a way
of addressing intellectual property issues. File Sharing makes
cultural material available, and Howard believes that most people
are honest, and would pay for music directly. We need to solve
the problem of music and film distribution.

Self Organizing Networks

There are 600 million people online now. Howard wants to encourage
self-organizing networks, and to think of billions of mobile people on
the network.

What will the trust mechanisms be? How will reputation evolve?
Reputation is a function of relationships to others.

Howard imagines a scenario:

You’re walking through an airport, or a street, surrounded by strangers.
Right now, there is no easy way to communicate with them. Soon
there will be the tech where our devices communicate with
those of strangers, flagging us when there is a common interest
or goal.

(my take on this is that I would want to have it shut off most of
the time. Tech has the power to chop up our attention span with
constant interruptions and diversions. In another session, href="http://www.benhammersley.com/">Ben Hammersley proposed the
idea of having things like Instant Messenging automatically go into
“away message mode” when he is developing code, or doing some other
“need to concentrate for a while” (my emphasis) task. Getting back
to Howard’s idea, I think that mobile users will either get
very good at defining when they can be alerted to something, or
will just shut off the capability most of the time)

Some other thoughts from Howard:

Preserve Open Systems, then invent new ones. Think about whole
systems from end to end, and learn from the past.

Link to others, and build systems that enable more links and options
for users. The design of defaults has an important role to play.

Did you go? I imagine Howard Rheingold is happy about Apple’s iTunes/Music Store announcements today…

Jacek Artymiak

AddThis Social Bookmark Button

Related link: http://archives.neohapsis.com/archives/openbsd/2003-04/1862.html

If DARPA says that they withdraw funding of a “security fest” aka. OpenBSD hackathon “due to world events and the evolving threat posed by increasingly capable nation-states” it makes one wonder how long we’ll have to wait for all Open Source software and technologies to be declared “weapons of mass destruction.”

The story unfolds on the OpenBSD Journal.

David Sklar

AddThis Social Bookmark Button

Related link: http://www.nytimes.com/2003/04/23/obituaries/23CODD.html

Edgar Codd, who laid the foundations for relational databases, died. He worked for IBM, but a scrappy startup (Oracle) was quicker to seize on his revolutionary ideas than his Big Blue Employer.

Andy Oram

AddThis Social Bookmark Button

Related link: http://www.eweek.com/article2/0,3959,1033071,00.asp

Dinosaurs 1, Mammals 0. The cumulative effect of events like these
would be to force Internet users back into atomized consumers
passively and helplessly waiting for oligopolic service providers to
roll out whatever anemic new services they choose.
It’s significant that this new threat to
innovative technology comes during this year’s

Emerging Technology Conference
. Our weblogs from the event are
already teaming with warnings about the DMCA and worse.
I raised

alarms

at last year’s conference as well.

chromatic

AddThis Social Bookmark Button

Related link: http://www.linuxhardware.org/article.pl?sid=03/04/18/169209

LinuxHardware.org examines the state of gaming in Linux. Though the article concentrates on commercial games, it’s amazing how much is actually happening.

chromatic

AddThis Social Bookmark Button

Related link: http://www.oregonlive.com/business/oregonian/index.ssf?/base/business/1049461116…

I attended the hearing for Oregon HB 2892. There are good arguments on
both sides. I’d really like to see the state use Open Source software
everywhere it makes sense (and it makes sense in many, many places). However,
one clause in the original bill required written justification for choosing a
proprietary package. This adds too much work to the procurement process. The
revised bill href="http://www.oregonlive.com/business/oregonian/index.ssf?/base/business/1050666959318260.xml">wisely
removes this requirement.

Of course, several proprietary software companies and related organizations
oppose the bill, for obvious reasons. Aside from legitimate concerns about
written justification, their testimony was predictable. Some believe that
asking the state to consider open software is an attempt to destroy the
software industry. Others claimed that the cost of supporting open source
software and retraining people to use it far surpassed the cost savings of not
paying licensing fees.

(One fellow claimed, astonishingly, that proprietary software’s big
advantage is that you can buy it outright and use it forever, whereas you could
never own open source software. I wanted to ask him for a single example.)

A far more insidious claim is that, though companies like Red Hat and IBM
provide support for open source software, they have economic compulsions to
distribute lousy software. “Obviously”, the argument goes, “good software
needs no support.” If you’re charging for support, why bother making good
software?

I’ve never understood this argument. Driving back from Salem, I realized
why. It misunderstands the fundamental realities of open source
software.

Take a hypothetical GNU/Linux vendor called Mauve Pants. According to this
argument, Mauve Pants could be distributing buggy and unusuable software,
charging lots of money to file bugs and explain workarounds, never intending to
fix the bugs, improve the documentation, or improve the interface.

In other words, Mauve Pants intends to get rich by writing terrible
software.

That argument conveniently ignores several important points:

  • Mauve Pants is not the sole vendor of this software. Anyone can distribute
    or sell open source software.
  • Mauve Pants is not the sole source of support. Anyone can provide support
    for open source software. A competing company called Taupe Pants wouldn’t have
    to rely on years of experience as end-users to know the software. They have
    access to the source code itself.
  • Mauve Pants is probably not the sole developer of this software. Mauve
    Pants probably didn’t even start the project. Anyone can fix the bugs
    in the software and feed the changes back to the original developer — or clone
    or fork the project.
  • Mauve Pants is not in control of the data formats used by the software.
    Anyone can write a compatible program.

In other words, because there’s no vendor lock-in with open source
software, the argument is entirely without merit. Mauve Pants has to compete
in a free market on their services and support. If they do a poor job, there’s
room for Taupe Pants to do it better.

A proprietary software company has more opportunities for evil. They can
lock customers in with proprietary data formats. They can write terrible
software and drive the competition out of business with exclusivity agreements
and product bundling. They can charge tremendous amounts for support
contracts.

Perhaps the BSA should consider its own ranks before spreading myths about
open source software.

That’s my opinion. What’s yours?

AddThis Social Bookmark Button

I have two G4 towers and several beige box PCs sitting in a spare office. The towers sit on display on top of a desk, and several times a week a curious passerby will ask me what I plan on doing with those machines. I can see the gleam in their eye as they begin to mentally drool at the thought of having one of those sleek boxes sitting on their desk. The PCs are all stacked and sitting under the desk. No one ever asks about those. I guess they aren’t pretty enough.

The two towers take up the same cubic space as four PCs. I can’t stack them or lay them on their sides. I can’t place them on a narrow shelf (too tall) and they must be balanced carefully if stored upon wire shelving (convenient carrying handles fall between wires). Though the cases can be easily opened and PCI cards exchanged, have you tried to replace the built in DVD drive? Difficult.

Look at the trend in corporate desktop PCs, it is to smaller integrated devices. I could put ten small form factor (SFF) PCs in the same space as these two towers. The SFF PCs will fit under or beside a monitor, and could even be mounted on the under side of a desk. Sure, you could claim that the iMac is a small machine, but is it stackable? Can I store dozens of iMacs on a computer room floor without fear of cracked LCD panels or broken swing arms? Can I carry more than two of them at a time?

If Apple has an interest in the corporate desktop market they need to produce a machine that fits the needs of that market. As a system administrator I want computers that store easily, don’t get scratched, have parts I can easily interchange, are easy to carry by the armful, can be deployed in a variety of environments, and finally, I need computers that aren’t so sleek that all my users are fighting over who gets the prettiest one.

Should Apple make this mythical corporate desktop it needs to be much cheaper than the current G4 tower. Not only can I fit ten SFF computers in the space of two G4 towers, I can purchase all ten at the same cost.

Is Apple the Honda of the computer world? Building innovative machines, but lacking the diversity of models to be the next Dell?

Kevin Bedell

AddThis Social Bookmark Button

Sun stood with one hand on her hip and the other twirling her long, pretty
blonde hair. “I really like Linux. I think he’s really got it together. I mean
he has so much energy. I can definitely see myself as Mrs. Linux.”

Novell, an equally attractive brunette, stood next to her. “Linux has gotten to
a point in his life where he’s ready to settle down. He’s maturing. I think he
sees how much I can add to his life right now. I hope he doesn’t break my heart
- I’m really falling for him!”

These two girls - beautiful and smart like all the others - were here to compete
for the hand of Linux. They all felt that if only Linux got to know them better,
he would see that *they* were the right choice for him.

IBM, a tall, lithe salesperson from the Northeast, was sure that she and Linux
would be the perfect couple. “I can help him grow so much - I have so much to
offer. I know if he really got to know me he could see that I’m perfect for him!
I’m smart and service-oriented and would make Linux a great wife - I know it!
And I’d be happy to let him port his kernel to my mainframe.”

And HP chimed in, “That California girl, Sun, had her old boyfriend Solaris drop
her off at the airport on the way here. She’s definitely on the rebound.” HP was
stunning in an evening gown and heels, but was still carrying a football. “Hey
Linux, let’s you and I go play some catch! You can be my ‘Mr. Touchdown’ any day!”.

For his part, Linux wasn’t sure that any of the girls were really right for him.
“I know I’m not a kid anymore and that I need to be more mature to continue to
grow as a person.”, he said, “I’m just not sure that I’m ready to settle down.”

Linux knew that all these girls had been involved with his older brother Unix
years earlier. “That was a complete mess! They all fought over him and could
never agree on anything. It was like they all wanted to ‘own’ him. Unix never
recovered - he has a split personality to this day!”

As they all gathered for the rose ceremony that would decide who Linux picked,
Linux was restless. He didn’t feel right committing himself to any one person.
Finally, he spoke.

“I can’t commit to just one person”, he began, “so I choose ALL of you. But
here’s how it has to go.”

“Number one: We have to have an ‘open’ relationship. I need to be able to be
with any of you - or even with someone new if they come along. But *you* can be
with anyone you want as well. I only want you to be with me if I add value to
your lives - if I stop adding value, you’re free to move on.”

“Number two: Our relationship will be a ‘meritocracy’. That is, I’ll spend the
most time with the ones who are most dedicated to me and who add the most value
to my life. Don’t expect me to come when you call - expect me to show up when
you’ve got something to contribute.”

“Number three: Even though you can all add things to different parts of my life,
you have to all agree to accept my basic personality. I can’t be more than one
person and still be me. And I don’t want to end up with split personalities like
Unix did!”

Around him stood a bevy of beautiful, intelligent woman with sad looks. He could
see he’d disappointed more than a few. But hopefully they would see that this
arrangement was best for *all* of them. Hopefully they would come to realize
that together they could build a life that was better than any one of them could
build on their own.

Someone then walked up and handed him a note - another plane load of girls had
just arrived from Japan. “Wow!”, he thought to himself as he turned to welcome
them all in, “I don’t know how I’m going to manage this!”

Schuyler Erle

AddThis Social Bookmark Button

Related link: http://www.discover.com/may_03/gthere.html?article=featoil.html

Discover has an article on thermal depolymerization: An industrial process that takes ordinary organic waste… and produces light, crude oil. (via MetaFilter)

Uche Ogbuji

AddThis Social Bookmark Button

First of all: Use my suggestions and any other information in this note at your own risk. PostgreSQL is a serious DBMS (though its core developers sometimes don’t even seem to recognize this themselves) and you should be careful before taking any steps that could affect your important data.

Between the muck-ups of Red Hat and PostgreSQL, you are likely to face some nastiness if you are upgrading to RH9. First of all, be sure to pg_dumpall to back up your current instances before the upgrade. The upgrade will replace the PG 7.2 RPMs with 7.3 RPMs, and these are incompatible versions, so you will have to blow away the current instances, using something such as:


rm -rf /var/lib/pgsql/data/*
rm /var/lib/pgsql/initdb.i18n

Then you can start the PG 7.3 using /etc/init.d/postgresql start and restore using pg_restore. But even this may not be straightforward. As it says in /usr/share/doc/postgresql-7.3.2/README.rpm-dist:

The 7.2 to 7.3 migration can be quite difficult, even to the point of requiring hand-editing of the dumpfile.

This whole situation is a mess. See this posting for an exchange that gives an example of the problems this is causing for users. I hope a little forewarning helps minimize the problems you face upon migration.

Uche Ogbuji

AddThis Social Bookmark Button

I just upgraded from RH8 to RH9. My earlier instructions for getting Prism II worked just fine, using the linux-wlan RPMs compiled for RH9. According to this article, Red Hat improved things for users of WaveLAN wireless cards, but I think we Prism card owners still have to dance for our fix. The modules I ended up upgrading to (using “rpm -Uvh”) are kernel-wlan-ng-0.2.0-7, kernel-wlan-ng-modules-rh9.8-0.2.0-7 and kernel-wlan-ng-pcmcia-0.2.0-7, all for i686.

AddThis Social Bookmark Button

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

Arriving home early from work one day, and after feeding the cats, I realized I had about thirty minutes before my wife would come home. I decided this was just enough time to wipe Windows 2000 off her laptop and install Linux. Earlier that day I had tested the Knoppix distibution and its hard drive install program and decided both were a good fit for my wife’s machine and her computer needs, which are quite basic.

For those who aren’t familiar with it, Knoppix, which is based on Debian, is probably the easiest and safest Linux to setup and use. It is easy because it does an excellent job of detecting and configuring your hardware. It is safe because Knoppix runs entirely off the CD and never writes anything to your hard drive unless you tell it to. That means you don’t have to worry about partioning your hard drive or losing information. Just stick the CD in your CD drive and boot your PC.

Knoppix comes with some very nice programs such as the KDE desktop (an attractive gui similar to Windows), OpenOffice.org (an MS Office replacement), KOffice (an up and coming office suite), Mozilla (an awesome web browser), several games including Frozen Bubbles (very addictive), and Evolution (an Outlook clone with virtual folders that create a very powerful way to organize your email).

Even people who do know about Knoppix aren’t necessarily aware that it comes with a script, called knx-hdinstall, that makes it very easy to install Knoppix to your hard drive. On my wife’s laptop, an older model Dell, Knoppix, in both its CD and installed forms, correctly configured video, wireless networking, sound, and USB. A combination that confounded the Red Hat 8 installer a few months ago.

My wife arrived home five minutes early, and I was still in the process of configuring her account. A few minutes after that she was surfing the web for figure skating information and checking her email.

Do you want to actively encourage others to try Linux? Make it easy on them by burning a copy of Knoppix, and you’ll be insuring that their first Linux experience will be both painless and encouraging.

Schuyler Erle

AddThis Social Bookmark Button

An article, entitled "The Hundred-Year Language," recently appeared on Slashdot, in which the author, Paul Graham, speculates about what form programming languages might take in another hundred years, and what kinds of lessons we can draw from contemporary languages in theorizing about the shape of computer programming in the next century.

Before continuing, I feel compelled to offer the disclaimer that I am, in fact, a professional Perl hacker. I say this because the first thing I took away from Graham’s article is that I was able
to guess that he was a LISP hacker well before I got to the end of the
article — and, unsurpringly, he turns out to be a LISP hacker. This quote was the real
giveaway, of course:

I have a hunch that the main branches of the evolutionary tree pass
through the languages that have the smallest, cleanest cores. The more of
a language you can write in itself, the better.

Sounds a lot like LISP, doesn’t it? Now, the notion that Graham propounds that “cruft breeds cruft”, as he puts it, is a very
valid critique of Perl 5, for example. Granted, the Byzantine nature of Perl 5’s core is well-known, and this may be said to be the source of some of the problems we often see in larger Perl-based applications, and is also the big thing that most Python lovers seem to loathe about Perl. But, with that simple assertion, I think Graham glosses over the essential lesson of Perl,
which is that expression via computer programming languages is less of a
mathematical skill, and really more of a linguistic skill. And, let’s face
it, human languages are crufty, and our brains are wired to deal with that
complexity, and to leverage the richness of expression that comes along
with it.

I’d say that the brilliance of Perl, and the reason why people write more
big applications in it than they do in LISP, has a lot to do with how each language maps to the way that people think about problems. I
think Perl, for all its cruftiness, in some ways takes better advantage of
our innate linguistic and cognitive faculties than a language with a
“purer” syntax like Lisp. By contrast, if we were to take Graham’s thesis
to its logical conclusion, we would expect all programs in the 22nd
century to be written for virtual Turing machines, which seems really
unlikely.

As such, any “language of the future” really needs to take both of these
competing needs — clarity of abstraction versus richness of expression –
into account in order to be truly successful. Some people have expressed concern about the apparently burgeoning complexity of Perl 6 — that it will, like the C++ Standard Template Library, become host to such a wide array of elegant solutions that no one in their right mind will be able to make head or tails out of it. Any language that seeks to make the trade-off between clarity and expressiveness will have to do so by trying to optimize the distribution of load between the language syntax and its set of standard functions, a notion that chromatic refers to as the Waterbed Theory — i.e., push down the complexity in one place, and it pops back up somewhere else.

If we were to try to come up with a short list of modern contenders for the Hundred-Year Language, I’d probably start with Python, Ruby, and maybe Perl 6, when it comes out. Each of these languages makes a noble attempt, in their own separate ways, to bridge the divide between clarity and expressiveness by making certain trade-offs. But though Graham is absolutely right that
the core of such a language needs to be as simple as possible, it seems we need to take a closer look at the other half of the picture.

Schuyler Erle

AddThis Social Bookmark Button

Recently, Peter Sergeant made an appeal to the Perl community for assistance in finding bugs in his Rich Text Format parser, better known as RTF::Tokenizer, which he hopes will be the centerpiece of a whole suite of Perl modules for manipulating RTF documents. As an incentive, Pete offered to donate $10 to the Perl Foundation for every major bug reported. Also, he announced separately that he was looking for examples of certain RTF features to exercise certain aspects of the tokenizer.

After learning about his project, I suggested to Peter that he might consider using a web spider to automatically locate and assemble a corpus of sample RTF documents that he could use to stress-test his toolkit, as bits of it get written. His unhesitating response was, to paraphrase, "Great idea! Can you help me out by writing it?"

So, of course, I agreed to do so, and my first thought was — why write a spider to search the Web when Google’s already indexed the thing for us? Google already supports a very nice filetype: parameter that allows you to specify the document format you want in your search results, so, to that, I just added +the, to request any RTF document with the word “the” in it — i.e. most of them — and voilá!

Naturally, doing this programmatically, and in such a way that adheres to their Terms of Use, necessitates using their amazing SOAP API. You need to first register with Google for a developer key in order to access the service, but all they want is your name and a verifiable e-mail address, so the whole process of registration took only a couple of minutes.

Next, following the directions and borrowing some sample code from Rael Dornfest’s weblog entry on the subject, I was able to quickly hack together a script that asks Google for RTF documents containing common English words, and then fetches those documents off the Web, storing them to the local filesystem with a filename based on the MD5 hash of the document. This has the advantage of ensuring that each document has a unique filename in the directory (more or less), and gives us a way of figuring out whether or not we already have a given document in our corpus, if it turns out to be accessible via multiple URLs. Finally, the script builds a YAML index of where each file came from, for future reference. (Although this index could have been encoded in anything, including plain, whitespace-separated text.)

Anyway, the following script performed extraordinarily well, downloading 3,295 unique RTF documents from the Web in a little over three hours, for a total of over 425 MB of data. The process required 400 Google search queries to find these body of RTF documents — which is well within the daily limit of 1,000 per user. Apparently, according to Peter, between 1 and 2% of the documents in the corpus turned out to not even be remotely valid RTF, for whatever that’s worth. Also, the script could probably be optimized to perform this task an order of magnitude faster, but time was not of the essence for me, so I leave that as an exercise for the reader.

The thing that I was amazed by, and the thing I want you to take away from this little tale, is the sheer elegance of the Google web services API. It was trivial to program against, and it just worked, the very first time.

The code from my script follows, or can be downloaded here, in case you’re interested. Happy hacking!


Listing: rtf-catalog.pl

#!/usr/bin/perl -w

use LWP::Simple;
use SOAP::Lite;
use Digest::MD5 qw( md5_hex );
use YAML qw( LoadFile DumpFile );
use IO::File;
use strict;

my $key      = shift(@ARGV) or die "usage: $0 <google_key> [<catalog.yaml>]n";
my $type     = "rtf";
my @words    = qw( the is of and );
my $cat_file = shift(@ARGV) || "catalog.yaml";
my ($catalog, $seen);

if (-r $cat_file) {
    warn "* Loading catalog from $cat_file ...n";
    $catalog = LoadFile( $cat_file );
    $seen->{$catalog->{$_}} = $_ for keys %$catalog;
} else {
    warn "Can't load catalog from $cat_file. Creating a new one...n";
    $catalog = {};
}

my $start  = 0; # $catalog->{START} || 0;
my $done   = 0;
my $word;

$SIG{INT} = $SIG{HUP} = $SIG{TERM} = sub { $done++ }; 

warn "* Initiating Google search service...n";
my $google = SOAP::Lite->service("http://api.google.com/GoogleSearch.wsdl");

until ($done) {
    if (not $word or $start >= 1000) { # Google doesn't return results > 1000
        $word = shift @words; $start = 0;
        if ($word) {
            warn "* Now using search term '$word'n";
        } else {
            warn "* Run out of search terms! Done.n";
            exit;
        }
    }

    warn "* Querying Google for results $start + ...n";

    # key, q, start, maxResults, filter, restrict, safeSearch,
    # lr, ie, oe
    my @params = ($key, "filetype:$type +$word", $start,
        10, 0, '', 0, '', '', '');
    my $result = $google->doGoogleSearch(@params);

    for my $item (@{$result->{resultElements}}) {
        last if $done; # someone hit the stop button

        my $url = $item->{URL}; # make sure it's RTF
        next unless $url =~ /.$type$/o;

        if ($seen->{$url}) { # already have it.
            warn "= $urln";
            next;
        }

        warn "+ $urln";
        my $data = get( $url );
        unless ($data) {
            warn "Can't load $url?n";
            next;
        }

        my $md5 = md5_hex( $data );
        $md5 = substr($md5, 0, 16); # leave somewhat manageable filenames
        my $file = "$md5.$type";
        if (-r "$file") { # Already have it.
            warn "| $url = $filen";
            next;
        }

        my $fh = IO::File->new(">$file");
        unless ($fh) {
            warn "Can't write to $file??n";
            next;
        }

        warn "  -> $filen";
        $fh->print($data);
        $fh->close;
        $catalog->{$md5} = $url;
        $seen->{$url} = $md5;
    }

    warn "* Writing catalog...n";
    DumpFile( $cat_file, $catalog );

    $start += 10 unless $done;
}

What kinds of novel uses have you found for Google’s web services API? Can you recommend any improvements to this approach to document corpus building?

Uche Ogbuji

AddThis Social Bookmark Button

Related link: http://www.pycs.net/altis/2003/04/04.html

Many Python boosters have looked for a good word to place Python among programming languages. We believe it has all the best qualities of “scripting” languages and “application” languages, such that neither term really does it justice. Kevin Altis and Ward Cunningham came up with “agile”, and this seems to appeal to some at first blush. I’m not so sure yet, but it’s an interesting idea. See full text for more.

When Kevin posted this idea on the Python-n-business forum, and someone asked him exactly what he was on about (”I have a qualitative sense of what you’re getting at. Can you define just what you mean by ‘agile’ though?”), Kevin expanded thusly:

“”"

It’s like art, you know it when you see it. ;-)

But seriously, For over a month I was just looking for a better way of
describing Python that sounds right and positive and the best I could come
up with were terms like nimble, which happen to be part of the definition of
agile:

Characterized by quickness, lightness, and ease of movement; nimble

Ward made the leap to saying agile. He also stated:
“Well, there are agile languages and agile methods. When you put the two
together you get agile squared.”

So, at this point I don’t have a set of [tenets] of an agile programming
language, but Ward and I were planning to put together a list of the things
that make a language like Python so special. I’ve got a rough list that I
started on the plane trip back from PyCon, but it needs to be fleshed out a
bit more and then refined so the message is tight. You’ll notice some of
this comes from the success stories intro, Dana Moore’s slides, Stephan’s
Python pages… Ward and I will probably drink beer and revise some more
Monday night after the Portland Python user group meeting.

  • excellent for beginners, yet superb for experts
  • highly scalable, suitable for large projects as well as small ones
  • rapid development
  • portable, cross-platform
  • embeddable
  • easily extensible
  • object-oriented
  • you can get the job done
  • simple yet elegant
  • stable and mature
  • powerful standard libs
  • wealth of 3rd party packages

And I don’t know where this should go, but I want to get the message out
that “Programming is fun again!”
“”"

Jacek Artymiak

AddThis Social Bookmark Button

Related link: http://swpat.ffii.org/papers/eubsa-swpat0202/prop/index.en.html

The proposed amendment is here. The FFII’s Call for Action explains what you need to do and how. Also, you can sign the petition here.

Uche Ogbuji

AddThis Social Bookmark Button

Related link: http://www.gurulabs.com/RedHatLinux9-review.html

I’m sure I’m not the only one tired of the ubiquitous software reviews that basically say “I installed it. It was kewl, except for the installer gee-gaw that should have been a doo-dad, so I’m giving it a 9/10″. This review, on the other hand, actually informs you about what you’ll find in Red Hat 9, and does the job very knowledgeably. Kudos.

Uche Ogbuji

AddThis Social Bookmark Button

Related link: http://news.com.com/2100-1012-996528.html

Quoting myself, with some additions and editing, from http://lists.xml.org/archives/xml-dev/200304/msg00321.html:

MS Word is the biggest cash cow MS has. Yes, more so than Windows, as I
understand it, because they have to provide much deper OEM discounts for the
latter. It would seem MSFT is trying to mold InfoPath
into another cash generator, effectively by up-selling to the large base of MS
Word users that could afford it.

First of all, the archives are littered with the remans of up-sell schemes from
well-established commodity or low-end products. When people have made you
number one at the low end, it is usualy for very different reasons than the
ones that would motivate them to upgrade with you at the high end.

You may say then that the opportunity cost to MSFT here is no more than the
failed marketing expenses for up-selling InfoPath, but this case is even more
dangerous than any other up-sell scheme. In this case, the “feature” they are
trying to up-sell is really just a fix for one of the biggest complaints their customers
have had about the low-end product: the difficulty of getting manageable
information from its output.

It would make sense to establish InfoPath at the baseline in order to improve
the value of a product that they already know is profitable, and thus stay
ahead of competitors. Instead, they are costing themselves goodwill at the
low end at a precise time when their cash cow is under threat (when InfoWorld
rates OOo within a point of MS Office itself and customers look at the cost
comparisons, this spells trouble: not immediately, because a great many still
just buy what’s bundled, but any manager of a successful product understands
such threats).

Whenever people tell MSFT to open up its data formats (this does not mean give
away products for free, as should be obvious), there is always somone who
pounces, talking about how those folks just don’t understand business. This
rebuttal is usually nonsense: openness has always been good business when pursued at the right time. All industries with mass
markets go through initial periods where bubbles inflated from proprietary
advantages swell profits. They then eventally settle down into commodity
businesses where margins are tight, competition hot, and true innovation (along
with luck) becomes essential. This has happened in consumer computing except in
the couple of areas dominated by Microsoft. Such market shifts is usually marked by a big increase in openess and industry standards, which is indirectly driven by customer imperatives. This will come to pass for computer software as it has for hardware, whether MS likes it or not.

MS has been very skillful at maintaining their bubble, but anyone with eyes
can see that it is about to pop. Hardware manufacturers, under the same
market pressures, have sliced the cost of computers so that it is rapidly
approaching a situation whereas when you plunk down $600 for a Windows PC,
you’re paying $300 for the hardware and $300 for Windows and Office Lite. Ths
is not a tenable situation, and MSFT sems unable to see their own risk.

Do you think Walmart started selling $300 PCs with Lindows because they’re
open-source-loving commies? No. Thy did so because Walmart is every bit as
esablished and ruthless a business as MSFT, and they see the market
inefficiencies of the Windows bubble, and they’re happy to work arbitrage. There will be more and more people lining
up to provide consumers with choices that redress these inefficiencies, and
unless MS fundamentally change their DNA, they could be end up
collapsing when their bubble bursts, rather than surviving by adaptation to
the marketplace.

Opening up the connection from the Office UIs to information with tools such
as InfoPath would have been signs of such a change of DNA. There would have
been nothing charitable about it: they would have just started to understand
where they desperately need to retain a superior value proposition.

Now we’ll get to watch the market at work, in all its ruthless glory.

Kevin Bedell

AddThis Social Bookmark Button

While doing some research on embedded Linux I ran across what has to be the coolest nerd gadget ever. It’s a “personal space assistant” that runs an embedded version of Linux on a Pentium III processor.

This item is a bit bigger than a grapefruit is size and you can carry it in one hand. Some of the cool features?

  • Microphone
  • Video Display Unit
  • Environment Sensor
  • Wireless Link
  • Range finder
  • Motion Detector
  • Search Light
  • Inventory Scanner
  • Video Camera

It even has a “Micro Propulsion Unit” in case you get stuck in space somewhere and need to get back to ship.

Check it out in this write-up on linuxdevices.com.

Andy Oram

AddThis Social Bookmark Button

Related link: http://news.com.com/2100-1012-996272.html

The slight loosening of conditions for licensing Windows CE has gotten
a lot of coverage in the press, but this critical viewpoint has not.

There is nothing unusual about a company trying to benefit by re-appropriating the work
done by people to whom it offers source code. Netscape/AOL, for
instance, explicitly said in its Mozilla license that it could take
any changes back and use it in proprietary products.

Is this the reason for the changes to shared source licensing?

Kevin Bedell

AddThis Social Bookmark Button

An article in today’s New York Times [nytimes.com, registration required], outlines a major shift in Microsoft’s attitude toward opening up its source code.

The new Windows CE licensing program announced yesterday will for the first time allow licensees to directly modify the source code and ship the product with their changes. The licensees will even ‘own’ rights to the changes for 6 months - at which time the licensee has the option of licensing the changes back to Microsoft.

This new licensing approach does not apply to the main Windows operating systems.

This approach, while a significant improvement over previous licensing terms, is still a small step when compared with embedded Linux. With embedded Linux, users have always had access to the source code and the ability to extend it.

It should be noted that, while Microsoft has a near monopoly in desktop operating systems, the market for embedded operating systems is much more competitive. In that market Linux has a much stronger position. Given the competitiveness of the market, it’s not surprising that Microsoft is being forced to compete in this way.

While most of the talk around this new licensing approach has been centering around the ability to add new features, my bet is that it’s probably at least as much about security. By opening up the source code to these partners, Microsoft is increasing the ‘number of eyes’ on the code. This should pay immediate dividends in making WinCE more secure as well.

To me, this is just another demonstration of two of the major strengths of Open Source:

  • Innovation - by opening up the source code, Microsoft will gain from the insight and expertise of the users of its software. This ‘innovation advantage’ is a phenomenon being seen all over the open source landscape.
  • Security - by opening up the source code, Microsoft also increases the number of eyes on the code - and increases the chance the security flaws will be found and fixed.

I’d challenge them to take the next logical step as well and put bug lists on-line for everyone who has access to the source code. This would accelerate the rate at which both innovation and increases in security occur.

Jacek Artymiak

AddThis Social Bookmark Button

Related link: http://www.frankston.com/?name=ImplementingVisiCalc

Bob’s account of how VisiCalc was implemented teaches us an important lesson in product design. It’s a classic that every developer ought to read and come back to whenever he/she thinks that the users are complaining about petty silly little things.

“Working with online systems we deployed the program by simply giving others access and could quickly evolve the program as we learned how it was actually used. The process worked best when we were also users.”

“The goal was to give the user a conceptual model which was unsurprising — it was called the principle of least surprise.”

“In addition to prototyping, Dan put together a reference card for users. If we couldn’t figure out how to explain a feature on the reference card we would change the program. The original method for copying formulas was too complicated so we just changed the design rather than try to explain it.”

Matthew Langham