Musings, Written on Infinite Tape

Monday, September 27, 2004

Things for a Bachelor Party in Chicago

A Show
A Sports Bar
A Pizza Parlor
A Card Game
A Fun Restaurant
A Bar
A Game with Pain

Friday, September 17, 2004

Marco had a better camera...

marcocantu.com Borcon2004

He got much better results on his low-light photos. :-P

Wednesday, September 15, 2004


Now I just have to fit this all in my bag! Posted by Hello


...and David with two! Posted by Hello


Dale with one t-shirt cannon.... Posted by Hello


Dale reads off the first Borland Buck. Posted by Hello

Denouement

I can't tell you how glad I am that the Borland crew ditched the Sting music from last year in favor of techno. This session signalled an escalation in the long standing war of the t-shirt cannons. While David I. drew Borland Bucks out of the box for the giveaways, Dale crept to the back of the theater and started the t-shirt barrage. A little while later, while Dale was giving out leather jackets, the lights dimmed, the fog started rolling out, strobe lights flashing, and out came David riding a giant tower and brandishing dual t-shirt cannons.

No prize bags this year (again), but I did get a t-shirt and hat. One guy had a t-shirt land in his prize bag, and another had a thrown baseball cap land right on his head. A good time had by all.

Was it worth it? Yes.

There was a great deal to learn about StarTeam 2005 as it's a major shift and it's new architecture goes against all SCM work in the last 20 years. The idea guys didn't think it would work, the architects didn't think it would work, they didn't believe it when the prototype worked, they didn't believe it when the real implementation worked. They didn't feel fully confident until they actually grabbed a few customer systems and saw that it worked. Randy said they've never done more design reviews, code reviews, or testing on any other project like they did with this.

Tom and I both made a lot of good contacts, both in Borland and in the industry. It looks like there's momentum for a StarTeam User Group to form, which can only be a good thing.

Would I come back? It depends on the content for next year, whether there are new topics or products to discuss.

Now I'm looking forward to a tasty meal tonight and a quiet flight home. I just hope I have room in my bag for all this stuff!


Three for the Road

Went to a talk on Software Maintenance and End-of-Life. The one thing I want to try from that session is some of the metrics. He's suggests tracking whether CRs come from missing/incomplete/incorrect requirements, analyst error, coder error, etc., to try to predict how difficult maintenance will be in the future.

We went over to a talk by Ambient Devices. It was basically the same pitch they had at the booth: For simple data, push techniques (phone, pager, etc.) are too intrusive, and pull techniques (web search, newspaper) require too much effort. Ambient data delivery provides a certain level of elegance and simplicity.

Grabbed a turkey sandwich for lunch, then picked up a couple of books. One, called "Hacker's Delight", has all sorts of goodies to coax performance out of code and understand things like numerical representation. The other one is .NET Patterns, which is what it sounds like. Randy was in the booth, and I asked him where the StarTeam books were. He said maybe he could do a sabbatical to write one, maybe in Hawaii. Yeah, Borland would go for that, right?

The last talk was about using ANT and StarTeam to automate builds. Unfortunately, it was pretty deep on the Java side, so I didn't get as much out of it as I wanted. Ah well, my mind was pretty full anyway.

CLR 2.0 Toys

Brad Abrams, Microsoft's Lead Program Manager for .NET, gave a talk on some of the new features of CLR 2.0.

Console apps are going to get color, transitions and 'animations', keystroke events, and some other features to allow for real .NET console development. He made up a "Console Invaders" game as an example. (That should be on his blog shortly.)

He talked more about the support for .NET stored procedures. SQL 2005 pulls this off by actually hosting the CLR in-proc, and they had lots of demands on the CLR time to provide maximum uptime. When you've got a problem to solve, he recommends taking a close look at whether to use T-SQL or a .NET language, because each implementation path is better for a specific subset of problems.

Delegate invocation is now up to 2 times faster.

They've added, for example, int32.TryParse, which returns a success boolean rather than throwing an exception when it can't parse the input. Much, much faster.

They've added the ability to notify the garbage collector that you've allocated a big chunk of unmanaged space (GC.AddMemoryPressure), causing the garbage collector to dispose of the object more quickly.

Classes can now have some special debugging attributes. DebuggerDisplay allows you to replace the ToString display when inspecting an object with a different format. DebuggerProxyClass allows for a reformatted, easier to read list of fields in the debugger (though you can get back to the raw view with a click).

Tuesday, September 14, 2004


Martin Frid-Nielsen, VP of the DSP unit, kicks off the Meet the Team session. Posted by Hello

(At this point, I'm really frustrated with this camera (my wife's Digital Elph), especially the white balance and flash. Most of these rooms are dim, and all the flash seems to do is illuminate something I don't want, like the projector in this case. And, since I don't have RAW format on this camera, I have a lot fewer bits to work with for contrast correction. Not sure what I could do about it, though. I really didn't want to carry a heavier camera.)


Goodies, part 3.... Posted by Hello


Goodies, part 2.... Posted by Hello


These guys sure know their audience.... Posted by Hello


This looked like a really tasty sandwich, but the beef tasted like _nothing_. Tom agreed. Posted by Hello


Definitely NOT what I want to see on a monitor in the "Virtual Operating Room". Posted by Hello


One of Zigon's favorites, the Visible Human project. Alas, they restructured the DNA exhibit, so I didn't see the Beckman centrifuge this year. Posted by Hello


Tom is stunned by David I's shirt! Posted by Hello


Come to think of it, this IMAX theater is like being inside an Ambient Orb, especially when they cycle the colors of the base lighting... Posted by Hello


Tom tries to find out if he can hook an Ambient Orb to his Unreal Tournament stats. Posted by Hello


Your typical session crowd. Posted by Hello


Randy Guck, Chief Scientist for the DSP unit, gets ready for a talk. Posted by Hello


Lots of people wanted to see Delphi Diamondback. This is about a third of the room. Posted by Hello

Meet the DSP Team

We had a Q&A session with various parts of the DSP unit, including their VP, Martin Frid-Nielsen. It was a very upbeat conversation, and they really were trying to show that they were listening to their users. An important note is that they were going to focus next year on Caliber performance just like they spent the past year on StarTeam. In fact, they let slip that they are going to end the separation between StarTeam and Caliber requirements and try to house the Caliber requirements in the StarTeam repository rather than a separate db. I asked a couple of questions:

Q: What will the StarTeam integration into VS 2005 be like? Will it be better than the current integration?
A: Have you seen the JBuilder or DiamondBack integrations? The ones where your StarTeam client is basically another pane in the "developer dashboard"? That's what you'll see in 2005.

Q: In 5.2, there was a new connection type called "XML over TCP/IP".
A (from John Sileski): We wanted to see how slow we could make our client. :-)
A (from Randy Guck): We had users who needed to route all their StarTeam connections over port 80 for firewall compatibility, and this was a way to do it. Unfortunately, it's incredibly slow. It's so slow that we took it out rather than continuing support. We plan on doing something SOAP-based instead...when we get time.

I also need to look at Estimate Pro sometime, which is a product Borland just bought. I mean, Tom's great with Excel and all, but a better tool for project estimation couldn't hurt.


Distributed StarTeam

<quimby>First I'd like to take this opportunity to offer equal support for all breakfast meats of all creeds in the quest for the ultimate morning meal democracy.</quimby>

Another example in this session of how the new vault design turns conventional SCM server techniques upside down. So, there are no deltas stored on the server. But, to increase performance for clients over slow links, deltas are generated by the server to send to the client if they're out-of-date or merge.

A good description for the way cache agent works at remote sites is that it's a "trickle charger" for remote teams. The cache agents are read-only, since making them writable would cause the potential for merge conditions. They send data in encrypted streams and store the data encrypted on disk. They've also added a new multi-threaded, multi-connection checkout system to try to parallelize some of the checkout behavior. There's also the ability to import and export projects and views between servers, a feature that will let us finally get rid of the old Orchid server.

Future versions will be able to cache all artifacts and metadata. You'll be able to configure each cache server to only cache certain projects (cache agent 1.0 will get all file changes to all projects, and flush files from the cache using an LRU algorithm). Another goal is to have a StarTeam offline mode that makes it act like a PDA: You get your files, work on them offline, then reconnect to the network and resync to the repository.

Birds of a Feather

This ended up being more of a "meet the team" session, where we could all collectively complain about our favorite problems. Randy Guck, John Sileski, and Ron Sauers were there, as well as some ex-Starbase guys like Steve Reynolds. It was proposed that we start a StarTeam user mailing list to provide some peer-to-peer support. Some of the highlights:

  • Setting up LDAP is a pain, because there is no built-in tool (yet) for doing mass DName association. You either have to do it one-by-one or write an SDK app.
  • Support, for those who don't have a platinum contract (w00t for us) is not as good as it used to be. Borland has added more tiers, so the Starbase experts are now a couple of levels deep.
  • We need better SDK docs.
  • The integration between Caliber, StarTeam, and TestDirector may have trouble getting all the links to work bidirectionally.
  • The nAnt StarTeam tasks are quite broken. I may start working with a couple of the other users to help fixing it.
  • They may move to a "major release per year" model.
  • People want what VSTS is calling a Shelf, a lightweight personal view. They want to check in code into a secure place at night, but not publish their code to the mainline.

They also dropped one goody where they said, "When the PM announces it tonight at the Meet the Team, pretend you're suprised." It's a good thing, if we were using Caliber.

Five Nines

Randy Guck, chief scientist for StarTeam and CaliberRM, gave a great talk on increasing uptime for StarTeam servers. Most of it was fairly industry-standard stuff: backups, recovery plans, failover, clustering, etc. The cool part was his description of how the new StarTeam 2005 vault works.

First, the old vault (VaultI). Each file in the repository is stored in the vault archive. The initial file is stored in full, and revisions are stored as deltas (except for binary files). That composite file may also be compressed, based on filename extension. When you check out a file, the server looks up the correct offset into the composite file in the database, reconstructs the file, and places it in the cache, where it is then streamed to the user. If I need a different revision of that file, we go through the same process all over again. The fact that you need the database to be in exact sync with the files at all times, because of the offsets and deltas, is why StarTeam has to be locked to perform a backup.

Here's how VaultII works: Each instance of a particular file is stored on it's own, with a filename that is also it's md5 hash. The database then tracks each revision of a file by its hash, rather than by a name and offset. The server, when the file is written, automatically determines if compressing that file would have any benefit and chooses the compression type on a file by file basis, so you'll have files in the vault that are just "md5", and some that are "md5.gz".

But doesn't this mean we have a lot more files? For any given set of file contents, there is only one file in the vault. So, if you have the same file checked in to multiple projects, or if you check in identical revision content, the database points to the same vault file because the md5s all match. Their research with customer-donated databases found that 20-40% of files in the vault end up being redundant, so a lot of the space concerns are offset. From a user perspective, this means that, at most, the file may have to be decompressed before sent over the network (unless the user has link compression turned on).

How does this help with backups? Well, when you do a backup under the new system, you first do a backup of the database (which can be done while the db is live). With that snapshot, you can then copy/replicate/backup the vault archive at will, since any new content that goes to the vault is not referenced by the database. Sure, you may have a few extra files in your vault backup that aren't in the db, but that's ok. If you had to restore from the backup, the user would have to check in any work that occurred since the backup, but the server would notice that those file contents were already in the vault, so it links the file that's already on disk, and you don't end up wasting space (unless a user doesn't bother to check in something that was lost in a failure, but that's his fault).

But, there's lots of revisions we don't use. Defaultworld.wld in Biomek, for example, has over 900 binary revisions, and we don't use that file any more. Isn't this wasteful? Turns out they've added a feature where you can ask the server to archive old revisions. The admin can then burn those to disk and store them away. If a user tries to reference that revision, they get a message saying that they need to get the admin to restore that particular revision to the server. The admin restores the file, and the user is happy, all live and without downtime.

I've got some good pictures of this in the slides, and I'll cover it in more detail if people want. I'm going to a "Birds-of-a-Feather" session for StarTeam users next, and hopefully I can get some more detail out of the devs. There's a meet the StarTeam developers session tonight as well.

(Oh, and if you have questions, throw them in here as comments, and I'll try to answer them.)


Note to Troy: probably not the best example of graphics within an installer. Something just ain't right with that. Posted by Hello

Need more meat!

Tom and I skipped breakfast at the convention hall and ate at the hotel instead. If I'm going to break with my normal routine and actually eat breakfast, there had better be bacon involved.

Installing the DiamondBack stuff in the background as I type this. I've got an hour or so break, since I had no desire to see the Java keynote.

My first session of the day was entitled "Automating Code Reviews". Sounds pretty cool, eh? Well, my first impressions weren't good, as the presenter showed up five minutes late. Then, he lead off with a 30 minute spiel on what code reviews are and why they're important. I'm sorry, but if you give your talk the title "Automating Code Reviews", you should assume that your audience had done code reviews and recognized the need for some automation. This talk was another sign that the conference committee needs to more closely regulate their level structure. It was listed as "advanced", and we barely even touched on the tools.

The speaker also didn't field questions well. One user expressed displeasure that the JBuilder wizard generated code, unmodified, does not pass the default metrics and audits in Together. The speaker kept thinking the user was complaining about Together, when in reality it's the JBuilder guys who need to tighten up their wizard code (eat their own dog food, etc.). Another person asked if Together would support annotating a block/method/file to tell the audits and metrics to skip that code for a particular test. For example, ignore for a given method that it has too many parameters, because we have manually examined it, blessed it, and don't need the tool reminding us every time about it. The speaker kept saying, "Well, you could disable the rule," and "You can adjust the boundary conditions of the rule," but those changes apply across the project. He never quite got it.

In retrospect, I wish I had gone to Danny Thorpe's talk on new features in the Delphi compiler instead. (Tom expressed some interest in seeing what would happen if you put Danny and Bob B into a room together and asked them to design a compiler. Sounds fun to me!)


Even my early, non-Terp-ified version of our Bootstrap utility looked better than this... Posted by Hello

Monday, September 13, 2004

"And I got the bits to show for it!"

After a horrible dinner (Bad, evil pizza-like substance. Think spaghetti sauce on inch-and-a-half thick bread with barely warmed cheese and pepperoni. All the "crust" was good for was soaking up the grease. Tom and I abandoned it after a single slice.), everyone jammed into one of the rooms for a whirlwind tour of DiamondBack, their new combined IDE for Delphi.NET, Delphi for Win32, and C#. Yes, finally a new Delphi Win32 compiler. They covered a lot in an hour and fifteen minutes, so much that it went by in a blur:

  • Function/Procedure inlining, both in Win32 and .NET. (The Borland .NET compiler does some extra inlining analysis that goes beyond what the JITer does.)
  • Finally, a "for x in List do" construct. Only a few years behing there.
  • The Delphi 8 IDE got rid of the floating designer. The new IDE brings it right back, to many cheers.
  • A new goody called SyncEdit. Select a bunch of code, and terms that show up more than once get underlines. Change one of those underlined terms, and all instances of that term in the selected block change right along with it. This can be a lazy programmers dream...Write up a function with a loop that uses "i' for the counter variable, then change all the i's at once when the code's done to myFancyCounterName. That saves an awful lot of typing.
  • Better Undo and Backup stacks, including revision history without StarTeam. The IDE will save a user-definable number of past versions, and you can scroll back through them, revert, and diff revisions, all in the IDE.
  • The same IDE debugs Win32 and .NET code, in the same solution, at the same time.
  • The CPU view for .NET shows, in one place, the line of Delphi code, the generated IL, and the JITed assembly. Shiny.
  • ECO (their model-driven architecture) can now pull in an existing DB and generate business objects and models from it. They did the Northwind DB as a live demo.
  • dUnit and nUnit built into the IDE.
  • StarTeam built in, too!
  • ASP.NET deployment tool looks like Araxis for FTP, highlighting files that are different, missing, etc.
  • Built-in "Extract Method". Using that code a lot? Highlight it and click extract, and it generates a method out of it, including figuring out the parameters and their in/out requirements.
  • Forget to declare a variable? Right click on it to add it to the var block (and add the var block if it wasn't there).
  • Forget to declare a field? See above.
  • Got a string literal? Right click to make it a resource string instead.
  • Need to rename a class? Ask, and you get a list of all the references to that class, and a confirmation that you want to update those references with the new name.

That's a lot of stuff, and I didn't even mention the 10 minutes of DB-related material. It was hard to take it all in, but they handed us the latest build on the way out, so I now have something to torture on the way home.

Tom and I grabbed a better dinner at a diner down the street. I've got half a ham-and-cheese sandwich ready so I can avoid another lame meal.

Squeezing Performance Out Of Custom StarTeam Apps

Most of the expense in SDK apps comes from round trip transactions with the server. The SDK is set up to cache as much as it can, but you can easily throw the gains away if you're not careful.

To start, if you've got a performance issue, the SDK has a NetMonitor class. When turned on, this class provides detailed timing and bytecount information for each command. This data can be used to help identify chatty code.

When you read a property on an Item, the server grabs all the properties on the object (figuring that's the common case). If you're going through a thousand objects, this can be really slow since each object is handled individually. Instead, the populateNow() method should be used to select a subset of properties and grab them all in one shot. You can use that method on folders, including a depth parameter, or you can use an ItemList to gather objects from around the project regardless of folder structure, or for digging through object revision history. NetMonitor provides some extra help here to, noting in the log anytime a property is retrieved on an object that wasn't cached.

Of course, MPX would make this all very cheap, as changes to the properties on an object would be pushed to the client rather than pulled from the server. MPX also lets you do events (right now in Java, SDK 2005 adds support for COM and .NET events).

Enterprise Advantage Details

Steve Reynolds, former Starbase employee and chief architect of what became EA, talked about the customization features in EA. Custom workflow and custom forms allow for users to change the StarTeam UI to fit their process directly. There are also UI widgets that are pushed out to individual StarTeam users (if you use the Cross Platform Client).

For us, the custom workflow and the included MPX server are pretty compelling, though it's a significant investment. Custom forms might be useful, especially for CRs, if they can be applied on a project by project basis. Imagine a UI where Biomek DCRs have fields like "firmware version" and "instrument serial number", while SAMI DCRs have a required method and .spack fields.


StarTeam 2005

Let me see if I can get your attention....


  • A new SDK built natively in .NET.
  • A new client built natively in .NET.
  • Hot backups, so no more downtime.
  • Vaults can span disk volumes, and you can have multiple vaults
  • Archive and restore projects (and, as a consequence, move projects between servers).
  • Files no longer stored as deltas, which trades space for a huge speed boost, and....
  • Automatically chooses the best compression method, and....
  • Files in the vault are identified by MD5 hash, so the same file checked into two different projects will only be in the vault once as long as the hash matches.
  • MPX cache servers, which extend the MPX architecture to include files rather than just metadata. This will be a huge win for our remote sites, especially Salzburg. (When we get the MPX addon, that is.) The system is smart enough to find the "closest" cache server that's up and running, making it work even for less-stable connections.
  • A new bulk checkout utility that takes advantage of new streaming techniques and the cache servers to increase check out speed by as much as an order of magnitude.
  • It used to be there was a 4GB limit per archive file (tip and all revisions for a given file). This was awful for people who had media assets. The new vault structure has a limit somewhere in the petabyte (2^50) range.
  • Penalties for deep reference trees are gone.
  • Session timeouts are gone for users with fixed licenses.
  • No more client activation keys. You license is managed by the server.
  • The upgrade to version 2005 can be done piecemeal. The upgrade can occur in the background (at a performance penalty, of course) or on demand.

The quote from the development team when their own server was upgraded to ST 2005 was, "Did we buy a new server for that? No??" Look for it in November.

Lunch with a Borlander

We had lunch with Joe Schulz, a senior Solutions Architect. He's kind of a sales guy, but he also sits in technical teams, so he had some interesting perspecives. He was one of the founding members of the company that created CaliberRM, so he's very familiar with it.

Lunch was at a nearby Italian place. Tom got a calzone that ended up being as big as his head. In all, a much tastier (and quieter) lunch than the standard conference fare.

I'd like to discuss with Tom what I should place in public view. More later.

Biased Benchmarks or Cool Code?

The Microsoft keynote...always a good place for grand exaggerations. There were two topics of note here.

First, they talked about .NET usage in SQL Server 2005. They wrote a "stored procedure" into a Delphi.NET class, which rifled through some rows, parsing for a particular substring in a column. They compiled the assembly (dccil has a --clrversion switch where you can target any CLR you want) and uploaded it to the server. They also had the "equivalent" implentation in T-SQL. When run (including a cache clear to remove any accidental optimization) the .NET implementation took ~200ms and the T-SQL implementation took about ~20,000ms. I don't think I trust those numbers, and hopefully Bob Z and I can do some experimentation.

That took long enough that they went through a hurried demo of Team System with Caliber. It looks like Caliber requirements are first class citizens in VSTS. Too bad we won't be using them.

StarTeam Security Untangled

This was an interesting session, once the speaker turned his mic up. I won't bore you all with the details, but the complexity of this topic illustrates why I don't let anyone else work with access rights. They don't quite work in the same way as traditional, Unix-style permissions.

One neat drop, though, is that the StarTeam 2005 SDK will have new tools to provide a human-readable reasoning for why a user does or does not have access to a given object. There were also more hints about the .NET version of the SDK.

"Software creators are gods..."

The morning kicks off with the standard, sub-standard breakfast. I'd forgotten how much I didn't enjoy it last year.

The first general session started with a local Taiko drum band playing, with David I joining in at the end. (This time, he wasn't hamming it up. He must have put some decent practice into it.) The stupid spotlights are still in my eyes.

The session was about Software Delivery Optimization (mmm...buzzwords), given by Boz Alloy, the head of their R&D department. The new goal is to not just have ALM, where development data can move from phase to phase, but to use that data to add "focus, precision, and control" to the lifecycle. Boz points out that we're like the cobbler's children. We write great tools to make other businesses work better, but we haven't had time/money/etc to write tools to optimize our own business.

They are rolling out three initiatives in parallel to provide more useful data to all stakeholders:
  • Project Themis: Teamwork foundation for Analysts, Architects, Developers, and Testers.
  • Project Hyperion: Visibility and predictability tools for Project Managers, IT, and Operations.
  • Project Prometheus: "ERP for Software Delivery" Tools for managing external forces for Business Managers, CIO, CFO, and other executives.

What they hope to provide is a better dashboard for all the various roles in the project: "in the weeds" view for the developer all the way up to "pretty pie charts" for the CIO. At the end, they also announced the following soon-to-be-released products:

  • JBuilder 2005
  • StarTeam 2005
  • CaliberRM 2005


David I on the Taiko drum. This is a great way to wake people up in the morning, but probably not so great for those in the audience with a hangover from last night. Posted by Hello


Tom has no touchpad-fu. Posted by Hello

Sunday, September 12, 2004

Can you tell I brought a camera this time?

(Ok, total aside here. I get back to my room after the opening party, and what does NBC have on? The Perfect Storm. Is it just me, or is that just wrong given recent meteorological happenings?)

Tom and I headed over to the convention center about a half hour before the show starts, and the place is a ghost town. By this point last year, it was packed. So, we sit down and have a snack. A friend I met last year, Ben Hayat, comes by. He echoes my concerns, "Where is everybody?" Ben pointed out that there wasn't going to be the same number of product launches this year and that this wasn't a PDC followup. Fair enough. We discussed some of the shiny new things we were looking forward to in VS2005, especially Click-Once.

So, about 5 minutes before the start, a crowd materializes out of thin air. I swear I didn't see them come in. It's still a smaller crowd than last year, but it's certainly a quorum. The doors open, and we walk into what can be described only as one of those 1337 assembly demos. Various ambient and techno songs and shiny 3d imagery filled the room. As the start time passed, the music shifted to Blue Man Group, which improved my mood greatly. Tom, on the other hand, still had a plugged-up ear from the flying and was having trouble hearing anything but bass.

So, the room crew tried to get the crowd going with Your Attention Please by BMG. Then, David I stirred it up a little more with It's Time to Start. (I may have the wrong titles. Check the BMG album "The Complex".) When he got on stage, he was (unexpectedly, by his account) joined by two dancers in red foil wigs and platform shoes. (My only pictures were really blurry.) These people have way too much fun thinking this stuff up.

The theme for this year is "Software Delivery Optimization", a theory the CEO of Borland describes as "ERP for Software Development". As soon as I figure out what the hell he meant, I'll let you know. The big new toy at the show this year is Delphi "DiamondBack", the next version. And this time, they really, truly swear that there will be a new Win32 compiler this time. They showed a brief video of DiamondBack, but the launch is tomorrow night and the text in the video was so blurry that it was illegible, even on the huge projection screens.

The new CTO, Pat Kerpan, showed off some concept work of the "Developer Dashboard." Some of the highlights:
  • Chat avatars that change "mood" based on that person's current ratio of open to fixed CRs.
  • Audio-based cues to code quality. Run a static analyzer against the code, take the results, and feed them to a music randomizer. The more problems, the more "off" your music sounds.
  • Ambient Orbs (or their onscreen equivalent) to represent current project status.

That was the shiny stuff. The awards followed, most notably the announcement of a $1 Million gift to Carnegie Mellon.

Then, Dale Fuller started firing t-shirts into the crowd with his air cannon, at which point we darted over to the welcome reception. It was pretty similar to last year. Video games, air hockey (Tom's an animal, and has the bruises to prove it!), foosball, and gaming tables. Along with the meal tickets was a 500 chip ticket, so I played some poker hands. Got down to 50 chips, went all in with A-c 9-c, and (as Dr. Sherman would say) lo-damn-and-behold, 3 clubs on the flop. Took 250 with that hand and cashed in for the impending raffle. No win for me though, so I headed back to the hotel so I could share my exciting evening with my loyal fans :-)

And yes Payne, that roast beef was really tasty.


DAAAY - TO - NAAAA! (Worst...one word video game song...ever...) Posted by Hello


This one's for Payne. Posted by Hello


This was the "Future Development Dashboard" idea. The three orbs in lower right are Ambient Orbs. If you don't know what those are, get thyself to Thinkgeek! Posted by Hello


David I. does "Rock Concert Movement #3." Ready? Go. Posted by Hello