 |
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]
|
|
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!"
|
|
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]
|
|
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]
|
|
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]
|
|
© Copyright 2004 William J. Maya.
|
|
|