December 2007 - Posts

A while ago I "released" the Symbol Server Transaction Manager. It was a binaries-only, quick-and-dirty GUI wrapper utility I wrote on top of the symstore.exe command-line tool, at the prompting of John Robbins. If you're not familiar with Symbol Servers, symstore.exe, or John Robbins, get up to speed by reading John's still-relevant 2002 Bugslayer article in MSDN magazine, or taking his Mastering .NET Debugging class.

I got some good feedback on the utility, along with some additional feature requests that ran outside the bounds of what the symstore utility offered. That lead me to upgrade my project to include a full-fledged (well, almost) symstore replacement, plus the GUI manager utility.

I've published the project tonight on CodePlex as "PSSymbolStore", and I've released the initial 0.1 beta release.

So what did I add and what did I change?

PowerShell

PSSymbolStore is now founded on a set of PowerShell cmdlets that replace and extend symstore's functionality. (Almost: I need some feedback about a few symstore features and how they might work in the PowerShell world. If you're a symstore wizard - ahem, John - drop me a line.) The initial release includes the following cmdlets, along with full help, including examples:

  • Add-Symbols - Adds symbols to the symbol store
  • Get-Transaction - Retrieves some or all of the transactions from a symbol store
  • Remove-Transaction - Deletes transaction(s) from a symbol store
  • Lock-Transaction - Locks transaction(s), preventing them from being deleted with the Remove-Transaction cmdlet
  • Unlock-Transaction - Unlocks transaction(s), allowing them to be deleted with the Remove-Transaction cmdlet
Symbol Store Manager

The Symbol Store Manager (formerly "Symbol Server Transaction Manager") is basically the same from a UI perspective, but has been massively gutted. The internal changes (MVP pattern, PowerShell hosting, etc.) are all for the better as they fully enable unit testing, which is coming in a future release. I'm looking for feedback on the UI - what I can improve, etc. It's really basic right now. I had started adding a search feature using ShuffleText's Highlight fuzzy search library, but didn't have time to finish it the way I wanted so I've pushed it out to a future release.

Symbol Store Manager

vNext

So what's coming next? I've already mentioned unit tests and searching. I'm also kicking around some UI enhancements. Aside from those features, and finishing up some "paperwork" like installs, I don't currently have a strong feature list. If you have ideas, please either post them as a comment here, or even better on the codeplex project site. For example: would this be more useful as an MMC snap-in instead of a standalone application?

Download PowerShell if you haven't already, and give PSSymbolStore 0.1 Beta a whirl - I hope it's useful!

The XO laptop If you haven't heard of it yet, just google "one laptop per child". Or better yet, visit their website: laptop.org. The "XO" laptop is definitely a unique machine - check out some specs on the hardware, software, and interface. The software approach is admirable:

XO is built from free and open-source software. Our commitment to software freedom gives children the opportunity to use their laptops on their own terms. While we do not expect every child to become a programmer, we do not want any ceiling imposed on those children who choose to modify their machines. We are using open-document formats for much the same reason: transparency is empowering. The children—and their teachers—will have the freedom to reshape, reinvent, and reapply their software, hardware, and content.

Look at the software and tools they're exposing on the laptop. It's a smorgasbord of modern languages (Python and Javascript) and applications (RSS reader, VOIP client). And it includes the kitchen sink: a debugger.

We are using components from Red Hat's Fedora Core 6 version of the Linux operating system; we are tracking the main kernel fairly closely.

We will support five programming environments on the laptop: (1) Python, from which we have built our user interface and our activity model; (2) Javascript for browser-based scripting; (3) Csound, a programmable music and audio environment; (4) Squeak, a version of Smalltalk embedded into a media-rich authoring environment; and (5) Logo. We will also provide some support for Java and Flash.

Applications will include a web browser built on Xulrunner, the run-time environment used by the Firefox browser; a simple document viewer based upon Evince; the AbiWord wordprocessor, an RSS reader, an email client, chat client, VOIP client; a journal; a multimedia authoring and playback environment; a music composition toolkit, graphics toolkits, games, a shell, and a debugger.

Libraries and plugins used by OLPC include Xul, GTK+, Matchbox, Sugar, Pango, ATK, Cairo, X Window System, Avahi, and gstreamer.

I'm impressed by the capabilities of the little green machine, but I'm skeptical as to how much of its capabilities a 3rd world student will actually make use of. But really it doesn't matter. Getting this in the hands of impoverished children (and their families and parents!) will give them books, encyclopedias, a video camera, drawing pads, etc. Stuff that will both educate and inspire creativity. It's already having a positive impact in Peru. Maybe a small percentage of them will delve deeper into the guts of the machine itself (you can pull up a linux shell :) ), but that's not the main intent.

Hannah using the XO laptopHere's the best news: you have until December 31st to buy one of these for an underprivileged child in another country with the Give One Get One program. And, as the name implies, you buy one for yourself also. We purchased one when the program started, and received it fairly quickly. We're giving ours to some friends with small children who live in a poor part of Angola (Africa), so we were able to have both laptops used for a good cause (and we got to play with one before we sent it off :) ).

But you (like most folk) will probably keep the one you get - and good for you! My daughter Hannah played with the XO nearly the entire time we had it out of the packaging, and I was amazed at how quickly she picked up using it, and how it captivated her attention so thoroughly. I wish we could've kept one. There's already a growing body of enthusiasts here in the US. (Chat with them on your XO via Jabber.)

The XO (and more specifically the One Laptop Per Child program) got a 9-year old's seal of approval, and it gets mine as well. Do a good thing and send one to someone who needs it today! Considering how relatively cheap it is to us compared to how valuable (and out of reach) it is to them, how can you not?

If you're near the Indianapolis area tonight stop by the Indy .NET Developer's Association "InstallFest". The registration is filled, but you could get on the waiting list for a free copy of Visual Studio 2008 along with other prizes.  I've got what I think is an interesting demo planned for "demo time". I'm not going to give any details because I wouldn't mind being voted "best demo" and winning a Zune. All very hush-hush, top secret stuff. Oh, and if you're attending: vote for my demo!! :)

Probably most importantly, if you're coming, do make a quick stop at the Walmart located practically next door and buy a toy or three for kids who otherwise won't get any. We really have no excuse not to!

Hope to see you there.

More Posts