Updated: 4/1/2004; 5:13:35 AM.
a hungry brain
Bill Maya's Radio Weblog
        

Tuesday, March 30, 2004

Gates's vision -- and failure thereof. Bill Gates just gave a talk at a Gartner symposium where he predicted that hardware would get so cheap as to be essentially free. This is a pretty visionary idea -- and, I think, plausible enough; you can buy a $0.99 singing greeting card today with more computing power than all the world's digital computers at the launch of Sputnik (multiple Soviet space-programs' worth of cycles for under a buck!), so the idea of powerful, useful hardware going ubiquitous and cheap is pretty nifty and pretty credible.

In the same breath, though, Gates predicts that software won't be free -- though he has no good explanation for this (presumably, it's because universal free software would be bad for his buiness, so he can't bring himself to contemplate the possibility). This kind of blinkered thinking does Microsoft -- which could be capable of pursuing lots of profitable strategies that don't involve fighting the future tooth and nail -- no credit. If the senior management at Microsoft is this head-in-sand over production trends in software, maybe it's time for the Board of Directors to think about hiring a new chief architect and CEO.

I suspect that it was this kind of thinking that led Microsoft superstar David Stutz to write his blazing resignation when he quit the company last year.

Digging in against open source commoditization won't work - it would be like digging in against the Internet, which Microsoft tried for a while before getting wise. Any move towards cutting off alternatives by limiting interoperability or integration options would be fraught with danger, since it would enrage customers, accelerate the divergence of the open source platform, and have other undesirable results. Despite this, Microsoft is at risk of following this path, due to the corporate delusion that goes by many names: "better together," "unified platform," and "integrated software." There is false hope in Redmond that these outmoded approaches to software integration will attract and keep international markets, governments, academics, and most importantly, innovators, safely within the Microsoft sphere of influence. But they won't .

Link

(via /.) [Boing Boing]    


QuickSilver, better than OS X LaunchBar. The most useful OS X utility on my machine has been LaunchBar, an application launcher that makes switching between apps and launching new apps very fast and convenient.

That's changed. Today, I downloaded QuickSilver, a beta app that does everything that LaunchBar does -- but more stylishly, faster and more intuitively -- and also includes a clipboard manager that lets me store the contents of the last 9 copy operations. It's also savvy to your iPhoto albums, your iTunes playlists, your addresss book and your Documents folder. I'm in love. Link

(Thanks, Jeff!)


[Boing Boing]

    

Power-driver for Powerbook trackpads. Sidetrack is a beta, open source replacement driver for the MacOS X trackpad drivers that adds a lot of cool power-user features to your trackpad:
* Vertical scrolling at left or right edge of pad.
* Horizontal scrolling at top or bottom edge of pad.
* Map hardware button to left or right click.
* Map trackpad taps to no action, left click, left click drag (with or without drag lock), or right click...

Link

(Thanks, Joel!) [Boing Boing]    


NES lookenfeel comes to GBA. Nintedo's shipping a Game Boy Advance skinned to look like a first-generation Nintendo Entertainment System controller, with a suite of classic NES games. Link

(via Engadget)


[Boing Boing]    


Reasons to switch from SourceSafe to Vault.

Revision history:

  • 30 March 2004 -- Revised for the Vault 2.0 release
  • 14 July 2003 -- Originally published

A friend complimented me for not doing any "blatant merchandising" here on my weblog. My reaction was one of surprise. Have I really been forgetting to do blatant merchandising on my weblog? :-)

Seriously folks, this article will be the exception, not the rule. Skip this one if you're not interested in windows version control tools. But people frequently ask me why they should consider switching from SourceSafe to Vault, and I would like to answer that question here.

Reliability

SourceSafe has developed a reputation as an unreliable product, often being referred to by derogatory nicknames like "SortaSafe" and "SourceUnSafe". :-) Actually it's not really that bad, but for many developers, data corruption by a source control tool is unforgivable.

Vault was designed from the beginning with reliability as the number one priority. All repository data is stored in Microsoft SQL Server 2000, providing the Vault server with a robust and trusted data store. We also have an extensive and highly abusive test suite which verifies that the integrity of the repository is preserved, even under pathological conditions.

Remote access

SourceSafe just does not work well over the Internet. Its design is not based on a client-server approach, so it can be extremely slow when used over network lines with high latency or low bandwidth. Our own SourceOffSite product has become very popular as an add-on which solves this problem. (BTW, a note to users of SourceOffSite: We recognize that many people will remain with SourceSafe. We are not abandoning SourceOffSite. In fact, we released version 4.0 in March 2004.)

Vault was designed for the Internet from day one. It was built entirely in C# using the .NET Framework. The Vault server is a collection of XML Web Services running under IIS. The communication between client and server is HTTP, optionally with SSL for security.

Furthermore, Vault's client-server protocol was designed for the constraints of the Internet. Instead of sending the full contents of a file, Vault can usually save bandwidth by sending only the bytes which have changed. This exchange of "deltas" is used in both directions, from server to client as well as from client to server.

Painless transition

As far as we know, Vault is the only version control system designed specifically to replace SourceSafe. In every way possible, Vault presents a familiar interface with familiar terminology. Every major SourceSafe feature is supported, including things like Share and Pin. Our import tool will move your SourceSafe database into a Vault repository, including all historical information.

Visual Studio .NET integration

Just like SourceSafe, Vault can be used within Visual Studio .NET. This functionality is currently limited because Visual Studio's support for integrated version control is rather poor. As a member of Microsoft's Visual Studio Integration Program (VSIP), SourceGear will be one of the first to provide improved integration when new capabilities become available from Microsoft.

Folder-level Share and Pin

Vault offers some subtle yet powerful improvements to the Share command. Just as with SourceSafe, a shared item is a single item which appears in multiple places. But SourceSafe can only share files, not folders.

When you share a folder in SourceSafe, what really happens is that every file underneath that folder is shared, recursively. On a file-by-file basis, the effect is the same. But if you add a file to the shared folder, it does not appear on the other side of the share. The files themselves are shared, but the system has actually made distinct copies of the folder in which they reside.

In Vault, this share operation is implemented at the level of the folder itself. Just like a shared file, there is really just one instance of a shared folder even though it appears in multiple places. If you add a file to a shared folder, the new file will appear everywhere that folder has been shared. The same applies if you add a subfolder, rename something or delete something. Regardless of what happens to that shared folder, it will be exactly the same in each place that it appears.

This makes it much more useful to share entire libraries or modules between teams. For example, suppose your project decides they want to make use of a class library being developed by another team. You can share the folder containing their entire code tree into your own tree. Using SourceSafe, when the other team adds a file to their library, your build breaks. Using Vault, any change they make will show up in your tree as well.

Pin works at the folder level as well. Suppose you have shared another team's library into your tree but that team has since gone astray and begun destabilizing their code. You can pin your shared instance of their folder to the last revision that was stable.

Atomic checkin transactions

When you checkin a set of changes to the Vault server, the operation is performed as a single atomic transaction. If one item fails for any reason, then the entire transaction will fail, and the repository will be left in the condition it was in before the transaction was attempted. This important feature, unsupported by SourceSafe, prevents a half-failed checkin from corrupting the contents of the repository.

CVS mode

There are two primary patterns for working with a version control tool. One way is to checkout each file before editing, often with an exclusive lock that prevents others from editing the file. When you're done with the file, you check it back in, releasing it for use by others. We call this the "checkout-edit-checkin" style of development. Most SourceSafe users work this way.

Another approach is often called the "edit-merge-commit" style of development. In this style, files in your working folders are usually left in a writable state when you retrieve them. When you want to edit a file, you simply do so. The version control tool will automatically notice that you have made changes. Your changes are submitted to the repository when you "commit" them. However, you may not commit your changes if anyone else has modified this file since the last time you retrieved a baseline from the repository. In this case, you must retrieve the latest changes and merge them into your working copy of the file. After doing so, you may proceed to commit your edited version of the file. The source control tool facilitates this process by helping keep track of the versions and making the merge simple.

Users tend to have extremely strong and divergent opinions about which style is better. Many users do not trust the "edit-merge-commit", preferring the safety of knowing that a given file may never be modified by more than one person at a time. In contrast, those who have used the "edit-merge-commit" cannot imagine returning to the more tedious "checkout-edit-checkin" approach.

Vault was designed to allow each user to make this choice individually. The default behavior is "checkout-edit-checkin", which will be most familiar to SourceSafe users. But those who prefer "edit-merge-commit" are free to configure their client accordingly. We informally refer to this configuration as "CVS mode", since the "edit-merge-commit" style of concurrent development was made popular by CVS.

Merging Features

The merge features in Vault 2.0 are much improved from Vault 1.x and significantly more powerful than SourceSafe.

For file-level merging, we provide SourceGear DiffMerge, a standalone tool which supports diff and 3-way merge with a graphical display. For those who prefer to use other diff or merge tools, Vault allows the user to configure an external application.

The Merge Branches Wizard makes it easy to migrate changes between folders in the repository.

Blame

New in 2.0: Displays an annotated view of a file, showing which user last modified each line.

Web Client

New in 2.0: Allows basic browsing of the contents of a repository using any web browser.

Vault Client API

A source control system is not just a tool, it is also a platform. Many users need the ability to build custom solutions which interact with their source control repositories, for things like reporting and automated builds.

SourceSafe frustrates in this regard, offering a subset API which is incomplete and sometimes unreliable.

SourceGear provides the Vault Client API, which allows our customers to build custom clients using the same API we use. We cannot yet promise that the API is frozen. We can't brag about the completeness of the documentation yet. But we do provide the source code for our command-line client as sample code. And we try to answer every question about this API on our public mailing list.

History Explorer

Building Vault on SQL Server brings other advantages besides reliability. Using the query capabilities of SQL, Vault's History Explorer offers powerful new ways to view what the changes that have happened in your repository.

Obliterate

An important pillar in the philosophy of source control is that the repository should include every change which has ever happened. Destroying data permanently is equivalent to rewriting history, and should be strongly discouraged.

SourceSafe makes this sin far too tempting by providing a "Destroy permanently" checkbox in the dialog used for deleting a file.

Vault's design is safer. Anything which permanently destroys historical information is called "Obliterate". These features can only be performed from the Admin Client, not from within the regular user client.

Integrated bug tracking

Source control and bug-tracking go hand-in-hand, but SourceSafe is ignorant. Vault currently offers integration with FogBUGZ. In conjunection with Vault 2.1, we will provide a .NET port of our own bug-tracking system, supporting full integration with Vault.

Honesty and Openness

We try to be forthcoming about the areas where our product needs to improve, to ensure that expectations are appropriately set. We would rather lose a sale than obtain a disappointed customer.

Over and over, our customers tell us how much they appreciate this posture of honesty. From our point of view, nothing else would make sense. We know our customers are smart people who develop software just like we do, so we give them the facts. If we can't win your business today, we'll win it tomorrow.

SourceGear

SourceGear is now over seven years old Our list of satisfied customers includes hundreds of names you know, from every industry, from all over the world.

In October 2002 we were named #156 on the Inc 500, Inc magazine's list of the fastest growing private companies in America. Microsoft itself was once a winner of this same award.

SourceGear is definitely still a small company. Many of our customers are several orders of magnitude larger than we are. But companies large and small continue to buy from us with confidence. We are profitable and conservatively-managed, and we plan to be around for a very long time.

[Eric.Weblog()]    

  New Uses for RSS in Education.

Two Rivers Mix: RSS and E-Portfolios

"I do not want to go out on a limb, but I think we have done something for the first time- a combination of two technologiies I have had my paws in this year, electronic portfolios and RSS....

Please do not give me an credit, this is all the creative programming of Audree Thurman, who was developed the Chandler-Gilbert MyEport tool that she has also installed on our server as the Maricopa eP. She had already combined two other streams of technology into this system, an electronic portfolio with a weblog capability. But now another tributary joins the mix.

See the details in Aud's own eP weblog.

This syndication publishes updates from two different areas of an e-portfolio, from the weblog entries (that makes sense), but also updates any document or link added to what is called a 'collection' page (a group of linked media, web sites, and descriptions). But what is really cool is that there are two views of any RSS feed- one is regular old, easily read in any capable RSS reader, RSS 2.0, but there is also a web page view of the same content....

This is just out of the chute, and there are soem more features coming iin the next few weeks. But consider what a tool RSS can provide to teachers, advisors, etc to be able to use a RSS reader to check on the status of a group of students' portfolios.

The rivers are coming together, full speed!" [cogdogblog]

You'll have to head over to Alan's site to click through the examples to see this in action, but make sure you do because it really helps show how little we've explored the full potential of RSS to date.

Tangent: I also love Alan's use of the term "serendipitic web!"

    

 One Bullet Point, Under.....

The Pledge of Allegiance: The PowerPoint version [Slate, via Furdlog]

Almost as good as The Gettysburg Address.

    

 How Do We Move Beyond Baby Steps?.

Big Ideas and Small Solutions

"Innovations are sorely needed for libraries to compete with Google and Amazon. Big ideas can sketch out the future, while small solutions can—in building block fashion—help develop that future.

By 'small solution' I don't mean trivial. Small solutions solve discrete, well-bounded problems and can be pieces of larger solutions. They can move us forward by mixing and matching available components in new and previously unimagined ways.

A number of innovations, which at first glance are completely unrelated, can come together and create important synergies." [Library Journal, via Peter Scott's Library Blog]

Roy Tennant then goes on to list LibraryLookup, xISBN, OpenURL, and Library Groupware, while noting how powerful a combination this all could be.

    

 I'll Let Him Explain the Title.

After much cajoling, Aaron Schmidt has finally started a non-photoblog! Aaron works at a public library within SLS, and he's one of those hip, young, upstarts who likes reference work, people, technology, and the intersection between the three. That's what he'll be writing about over on Walking Papers, where he's already musing about IM, virtual reference, and technology etiquette. Naturally, there is an RSS feed and it's full text. Happy dance time!

    

Outsourcing anecdotes. The pro-outsourcing arguments advanced by economist Daniel Drezner, writing in Foreign Affairs, break no new ground. I was struck, though, by this comment about anecdotal evidence:
When forced to choose between statistical evidence showing that trade is good for the economy and anecdotal evidence of job losses due to import competition, Americans go with the anecdotes. [ForeignAffairs.org, via Dan Gillmor]
I just want to point out that anecdotes come in all flavors. Here's one that you probably haven't heard. Last week, an Indian who runs an outsourcing business in Texas wrote to tell me that somebody threw stones through his office window. ... [Jon's Radio]    

Laszlo Explorer.

Classes and Prototypes. LZX is a prototype-based language: any attribute that can be attached to a class definition, can be attached to an instance of that class instead. This is handy in UI programming, where there are a number of objects with one-off behaviors. It's also handy in prototyping and incremental program development, where it creates the possibility for a novel kind of refactoring. [Oliver Steele]

I didn't realize that the Laszlo Explorer is so dam cool.

Please everyone - go and check this out! Fully interpretive scripting environment.

[Marc's Voice]    

'Macallan' Windows CE Release Due This Summer. On the heels of delivering a new mobile operating system based on Windows CE 4.2, Microsoft takes the wraps off Windows CE 5.0. [Microsoft Watch from Mary Jo Foley]    

Microsoft Serves Up More Windows CE Shots. Microsoft unveiled just last week its Windows Mobile 2003 Second Edition software for Pocket PCs and Smartphones. Second Edition is based on Windows CE 4.2 (code-named "McKendric"). On Monday, Microsoft announced CE 4.2's successor: Windows CE 5.0 (code-named "Macallan"). [Microsoft Watch from Mary Jo Foley]    

Bill Gates Dons His Chief Software Architect Hat. When Bill Gates thinks, Microsoft jumps. Gates recently emerged from one of his sequestered Think Weeks, full of ideas about the next great thing in which Microsoft should be investing. eWEEK chats with Microsoft's chief software architect about mesh networking, WiMax, Web services and more. [Microsoft Watch from Mary Jo Foley]    

Buckyballs are the new asbestos?. Buckyballs -- nanoscale new materials based on inspired by Buckminster Fuller's research geodesics -- are theoretically inert in the environment, seeking out other buckyballs and forming clumps that are too big to do any real harm. Turns out they're not -- a Southern Methodist U researcher who released buckyballs into an aquatic testbed found that they were deadly to micro- and macro-organisms.
Oberdoerster kept young largemouth bass in ten-liter aquariums filled with fullerene-spiked water at concentrations of 0.5 parts per million -- similar to that encountered with more common pollutants in U.S. ports. After 48 hours, the fish were removed and their brains studied for evidence of lipid peroxidation, a tissue-burning chemical reaction that toxicologists use as a standard of biological damage.

The level of brain damage was "severe," Oberdoerster reported yesterday at the national meeting of the American Chemical Society in Anaheim -- some 17 times higher than seen in fish kept in clean water for comparison.

Link

(via /.) [Boing Boing]    


Berlin theme-hotel of great and magnificent weirdness.

I've stayed in some pretty cool theme-hotels, like San Luis Obipso's magnificent and weird Madonna Inn, but now that I've had a virtual tour of Berlin's Propeller Island City Lodge (which styles itself an "art" hotel), I am quietly and determinedly obsessed to pay it a visit. The 40-some themed rooms have a couple of real standouts, like the Flying Bed and Grandma's. I'm moving to Europe in a week -- my first trip to Berlin (when it comes) is definitely going to include a night here.

Link

(via Geisha Asobi)
[Boing Boing]    


AT&T Rolls Out Do-It-Yourself VOIP. AT&T rolled out its do-it-yourself voice-over-IP service on Monday, allowing customers to add a VOIP phone to an existing broadband connection. The service includes a quasi-"presence" feature that will route calls to the appropriate phone. [Extremetech]    

New Fiction by Neil LaBute.

Director and screenwriter Neil LaBute ("In the Company of Men," "Your Friends and Neighbors") serves up his customarily bleak world view in this new piece at Nerve; if your Monday morning wasn't depressing enough already, this should do the trick.

Neil LaBute, "Grand Slam" (Nerve)

[Fleshbot]    

Action Comics #1 scanned and posted. Someone's posted the whole of June, 1938's Action Comics #1 (including the first funnybook appearance of Superman) to the web as a series of medium-resolution scans. Link

(Thanks, Eyes Spies and Lies!))


[Boing Boing]    


Ars Technica review: Dell Latitude D600 laptop. Ars Technica reviews the Dell Latitude D600 laptop. Is this Centrino portable a worthy challenger to the ThinkPad [Ars Technica]    

GDC 04. Back from GDC.

I didn't get the same vibe of angst and despair I got at the conference last year, although I'm not sure I can say why; perhaps employment is up (probably in massive teams), perhaps people have become resigned, perhaps downloadable and mobile games are taking up some of the slack.

On Tuesday, I helped Eric Zimmerman and Katie Salen teach a workshop on social design for multiplayer games. At one point, they had the audience divide into teams and design "offline massively multiplayer games" using materials they supplied--the idea being that you needed to produce a game all the attendees of the workshop could play simultaneously. One group came up with a game that involved spilling a bunch of marbles on the floor, with five teams each scrambling to collect a certain type of marble against a time-limit. Since it seemed unwise to play this in the conference room--to easy for people to get hurt hurtling into tables and chairs--Eric and Katie took everyone out into the conference center. There, security descended, and told us we couldn't play the game. Outside, the same thing happened; clearly, one of the first things you need to think about designing this kind of game is "Consider the liability issues." Eric brought everyone back in and said, "Well, you have to think about the social context in which games are played, and how can we revise this game to deal with that?", which I thought a clever way of recovering, and also getting security off our back. I suggested adding a few new roles to each team--people to block security--as well as a lawyer, and possibly requiring the players to put up some money, which could be used for bail, with any funds left over going to the winning team.

Microsoft had a 'keynote,' scheduled with nothing against it--most of the audience seemed to expect an XBox 2 announcement (which Microsoft had previously said would not be made until E3). Actually, they announced an initiative called XNA, which essentially involves pulling some of the development tools available for XBox, and some available under DirectX, and making both available on both platforms. In essence, it's an attempt to reduce the time and difficulty of the development pipeline (primarily on the code side, but potentially on the art side as well), and therefore a Good Thing. However, they also showed a slide that purported to claim that XNA would reduce the development cycle from 80% content development and 20% polishing to 20% development and 80% polishing--which is, of course, bullshit.

I generally avoid the show floor at GDC--the focus of the conference is the sessions, not the booths--but I did spend a little time hanging out with the Themis guys at the Saga of Ryzom booth--it's a French-developed MMG that Themis is assisting with marketing efforts, now in beta. Looks pretty good.

The awards ceremony was fairly dull and predictable, but I was pleased that Masaya Matsuura, developer of Parappa and Mojibribbon, among others, was awarded. Mahk LeBlanc and Andrew Leker's Oasis, which I've mentioned before, won the IGF award. Later, I was in the green room, while Marc and Andrew were putting together the press release, which also announces that Pop Cap, the largest publisher of downloadable games, will be releasing the commercial edition. And good for them; Oasis has very different gameplay from the puzzle games that typically work in this market, but is quite accessible and a lot of fun; it will be interesting to see how well it does. Dr. Blob's Organism, from Digital Eel, also won two IGF award in lesser categories--Innovation in Audio and Innovation in Visual Arts. I ran into Rich Carlson, Ilka Keranen, and "Phosphorous" outside the ceremony, and they were inordinately pleased. (Rich is a frequent commenter on this blog, btw.)

Raph Koster, Warren Spector, and Will Wright spoke at a session moderated by Eric Z. on designing a love game; Warren took the topic most seriously, but as a result did not come up with a game--more a discussion of why current technology makes a love game difficult or impossible. Raph's game was, in essence, a constrained-narrative romance-story title, and struck me as amusing but probably not all that much fun to play. Will's idea was a WWII romance played out (literally) in Battlefield 1942, with the 'love story' players wandering around while the military gamers fight a battle--essentially, two orthogonal games in the same setting. The idea needs elaboration (e.g., some 'civilian' players might be partisans, and legal targets for the wargamers if unmasked), but actually, it strikes me as very doable--someone should do the mod.

The Experimental Games Workshop was, as always, something of a highlight. The Indie Games Jam, always featured as part of the EGW, this year started with a codebase supporting 2D physics. Essentially, they get a bunch of developers together, start with some codebase, and give them four days to produce something, generating a dozen or more "games" in the process. They generally aren't polished, but are always interesting. Binaries and source are posted to the site (but the ones for this year aren't up yet).

The EGW this year was 3 hours long, which I think is a mistake; yes, it's been rushed in past years, but it became somewhat tedious over time. Among other things, two academics presented papers without demoing original games--both speeches were interesting, but I don't think they really belong in this venue. I'd suggest axing that in future years.

On Friday, I spoke at a panel on mobile game technologies along with Adrian Sack of Ideaworks3d (note to Adrian: your pop-up doesn't work in Mozilla), Seamus MacAteer of Zelos Consulting, and Misha Lyalin of Reaxion. We were fairly dull, I thought, which is too bad, since both Adrian and I (at least) are capable of being pretty funny. (Last year, I interviewed Adrian for a video to appear on the Forum Nokia site; while preparing, he said "So--what's my motivation? Oh that's right--I'm trying to get rich.")

GDC is not where you go to see game demos (E3 is better for that), but I was taken with a game under development at Harmonix, the developers of Amplitude and Frequency. The title is Antigrav, and it's a skateboarding game--but requires ownership of the EyeToy. You control the character physically--leaning to turn, jumping (literally) to jump, and so on. An attempt to turn the EyeToy into something more than a toy, in other words.

A tad tired at present, but hey.

[Games * Design * Art * Culture]    

MSDN's XML Dev Center opens.

Dare Obasanjo links to MSDN's new XML Developer Center. Jeremy Wright emailed this to me and said it's great.

[Scobleizer: Microsoft Geek Blogger]    

Sam Gentile's new .NET app: parental control for cell phones.

OK, here's one back on the .NET side of the fence. Sam Gentile, who's one of the most talented C++ guys I've ever met, blogged what he's been working on for the past 10 months: bcgi Mobile Guardian. It is a .NET-based service that lets you manage wireless phone usage and expense. For families. Groups. Or even just yourself. Congrats Sam on getting this baby out!

"As a parent with children, I feel proud to have designed the architecture of a product that will help parents manage their children’s wireless phones balancing concerns safety, usage management and financial restraint; a product that will matter in the world."

[Scobleizer: Microsoft Geek Blogger]    

Google's personalized search lets you adjust your search result live.

When Yahoo came out a few weeks ago I noted that it messed up an opportunity to come out with a cool feature that'd get it noticed by Google. Well, today, Google adds personalized chat. I notice that after you personalize Google, you can adjust a slider and get a different result set. That's exactly what I asked for.

Now, imagine that you had a Google with 100 sliders (Google's engine has 100 variables). Don't want to see any weblogs in your result set? Slide a slider and they are gone.

[Scobleizer: Microsoft Geek Blogger]    

© Copyright 2004 William J. Maya.
 

March 2004
Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
Feb   Apr


Click here to visit the Radio UserLand website.

Click to see the XML version of this web page.

Subscribe to "a hungry brain" in Radio UserLand.

Click here to send an email to the editor of this weblog.