Tuesday Oct 02, 2007

Success with USB Audio

I have a home server which I built myself.  I also occasionally use it as a desktop system, especially when I have a long computing session planned, when my laptop would tend to get uncomfortable.  Unfortunately, I've been unable to get Solaris to drive the audio.  I think this is bug 6518184 but despite some hacking with /etc/driver_aliases I couldn't get the onboard audio device to attach.  While I need to get my home machine updated to the last SXDE release in order to really tackle this properly, I found myself really wanting working audio, now.  I happened to stop in at my friendly neighborhood computer shop, and noticed a USB audio gadget for $25 (I actually snagged an open box model for $20), the Vantec NBA-100U. It works like a charm in Solaris thanks to its excellent USB audio support.  Here is what it looks like from 'cfgadm -av':

usb0/2                         connected    configured   ok         Mfg: <undef>  Product: USB Audio  NConfigs: 1  Config: 0  <no cfg str descr>

It's pretty bare bones-- you can see that Vantec didn't even bother to set the Manufacturer string!  Kwality.  Once I plugged it into my USB port and into some cheap speakers, I simply had to start up rhythmbox and everything worked like a charm. The audio quality seems fine to me.  While the device supports 5.1 audio, it does so only under Windows.  Stereo is fine for me.  I should also note that the volume up and down buttons are non-functional both on Solaris and on Macs.  This is no big deal for me as the thing is buried under my desk, and my speakers and Solaris both have volume control.

I realize that cheaper USB audio gadgets can be had, but this one should be easy to find online and seems to work reliably.  It's really nice when it all "just works."

Wednesday Sep 26, 2007

Etude Progress Update

The whole Etude engineering team (except, unfortunately, for Penny) gathered in the Bay Area last week.  We made a ton of progress and we're on our final round of bug fixes.  It has been fun (if a bit nerve wracking) to watch the bug counts drop day by day.

One problem which has been challenging with this project is that we have a number of differently delivered software parts, all of which must undergo some change:

  • The solaris8 brand itself is a piece of software which bridges the gap between Solaris 8 and Solaris 10.  This is something you must add to an Solaris 10 8/07 (also called S10U4) system.  When it is finished, it will be delivered as two packages, SUNWs8brandu and SUNWs8brandr, plus an optional "demo" package.
  • We've got a very few Solaris 8 patches which we require (currently I think there are 6 of them).  Some of these (for example, a fix to the linker, and a fix to ptree(1)) we had to engineer ourselves. And some have been available for a long time and are probably already patched onto most S8 systems out there.  All of these are (or will be) available via the normal patch mechanisms.
  • We needed to add some enhancements to Solaris 10 in order for BrandZ to work solidly on SPARC systems.  While these changes will be automatically included in the next update of Solaris 10, for Solaris 10 8/07 you need to add a patch-- the kernel jumbo patch, in fact (as I mentioned before, this patch is not out just yet).

For our Beta release, we were able to supply workarounds for some of these issues, but for our official release, we need every 't' crossed, and every 'i' dotted. So last week we finally had all of those pieces available (internally) in at least a preliminary form.  Everyone has been busy testing the whole works.  For example, I've done a dry run on a T1000, which looks like this:

  • Install S10 8/07 onto the system (or into an LDOM (logical domain) on the system)
  • Bring system to single user mode
  • Add kernel patch using patchadd
  • Reboot system (or LDOM)
  • Add SUNWs8brandr and SUNWs8brandu packages to the system
  • Configure a Solaris 8 container and install it from an existing system archive
    • This will auto-apply any required Solaris 8 patches to the system
  • Boot S8 zone, and enjoy!

It's nice to see the pieces coming together...

Wednesday Sep 05, 2007

Project Etude, Revealed

Well, it has been a while since I last wrote anything here.  I have been working on a team developing a new project, which we named Etude.  Marc Hamilton, VP of Solaris Marketing, has written about it here.

[As an aside, it's weird to have a code name you selected cross the lips of senior executives several months later] 

In a nutshell, we've built a Solaris Container (or Zone) which is capable of running the Solaris 8 user environment.  We have also created a capability to perform P2V (or Physical-to-Virtual) transformation of existing Solaris 8 systems into containers running on a Solaris 10 host.  This is an enabler for rapid migration of legacy Solaris 8 environments onto modern, environmentally friendly, cost effective hardware.  And onto Solaris 10.  The idea is to break up the upgrade tasks into chunks, allowing the hardware and OS to be upgraded, while continuing to run legacy environments.  Next, the legacy environments can be used until they are retired, or redeployed into Solaris 10 containers, or into logical domains.

I will write more about the why and the how of this project in a future blog entry.  (And Marc does a good job of explaining some of the why in his blog, so go there for more background).  But for now, I want to expand upon the what.  The notion of a Solaris 8 container was not a new one when we began to look at this problem early this year.  But with the completion of the BrandZ project, we had the tools in hand to make a serious attempt to realize this idea.  BrandZ was originally developed so that we could have a "Linux Zone" but the core "brand" framework is really very flexible (and is now more so, thanks to our work).  It allows the development of a variety of OS personalities atop Solaris 10.

So who built Etude? I'm very lucky to be leading a group of seasoned and incredibly talented engineers: Bill, Ed, Jerry, and Steve (no blog), and Penny on documentation.  We worked at something of a breakneck pace to assemble a prototype, which we had in hand by late April. Since then, we have worked to convert the prototype into a production quality offering.  I'll try to say more about that later.  Along the way, we've had a lot of help from many corners of the company-- people too numerous to list.  I especially want to thank Bill Franklin, Jerri-Ann, Joost, Susan, Allan, Richard, Tim and Liane.

Ok, so I'm anxious to show off our creation. First, let's archive a Solaris 8 system using the Flash Archiving tools. If your S8 system is patched up to date, you already have these tools installed. Alternatively, you could use CPIO or ufsdump or some other tool to create a suitable archive:

s8-system # uname -a
SunOS s8-system 5.8 Generic_108528-29 sun4u sparc SUNW,UltraAX-i2
s8-system # flarcreate -S -n s8-system /net/s10system/export/s8-system.flar
Determining which filesystems will be included in the archive...
Creating the archive...
Archive creation complete.
s8-system #

[Note to our beta customers!  In the beta version of Etude, support for Flash Archives is not present, so if you use this blog entry as a substitute for reading the documentation, you will be disappointed.  Please ensure that you carefully read the supplied instructions] 

In the above example, I've simply used NFS to place the flash archive onto my Solaris 10 system, but you could use any method for moving files around. Now, we'll head over to the Solaris 10 system and create a container suitable for use as a Solaris 8 environment...

s10-system # zonecfg -z s8-system
s8-system: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:s8-system> create -t SUNWsolaris8 zonecfg:s8-system> set zonepath=/aux/zones/s8-system zonecfg:s8-system> add net zonecfg:s8-system:net> set address= zonecfg:s8-system:net> set physical=e1000g0 zonecfg:s8-system:net> end zonecfg:s8-system> add dedicated-cpu zonecfg:s8-system:dedicated-cpu> set ncpus=2 zonecfg:s8-system:dedicated-cpu> end zonecfg:s8-system> commit zonecfg:s8-system> exit s10-system # s10-system # zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / native shared - s8-system configured /aux/zones/s8-system solaris8 shared

The last part (setting ncpus=2) is not strictly necessary, but is a good example of how easy it is to allocate CPU resources to containers starting in Solaris 10 8/2007. Jerry (who led that work) and Jeff Victor have written more about this capability here and here.  (By the way, Solaris 10, 8/07 was launched yesterday, and includes BrandZ and many other enhancements to the containers infrastructure.)

Now that we've configured the zone, we need to install it.  We'll use the flash archive we made to do so:

s10-system # zoneadm -z s8-system install -a /aux/flar/s8-system.flar
      Log File: /var/tmp/s8-system.install.104490.log
        Source: /aux/flar/s8-system.flar
    Installing: This may take several minutes...
Postprocessing: This may take several minutes...

        Result: Installation completed successfully.
      Log File: /aux/zones/s8-system/root/var/log/s8-system.install.104490.log
s10-system # 

That's it! We've now installed a Solaris 8 container! Let's boot it up, and log onto the console, and see what happens:

s10-system # zoneadm -z s8-system boot; zlogin -C s8-system
[Connected to zone 's8-system' console]

SunOS Release 5.8 Version Generic_Virtual 64-bit
Copyright 1983-2000 Sun Microsystems, Inc. All rights reserved

Hostname: s8-system
The system is coming up. Please wait.
NIS domainname is mpklab.sfbay.sun.com
starting rpc services: rpcbind keyserv ypbind done.
syslog service starting.
Print services started.
The system is ready.

s8-system console login: root
Sep 5 17:55:52 s8-system login: ROOT LOGIN /dev/console
Last login: Wed Sep 5 13:11:37 on console
Sun Microsystems Inc. SunOS 5.8 Generic Patch February 2004
s8-system # uname -a SunOS s8-system 5.8 Generic_Virtual sun4v sparc SUNW,Sun-Fire-T200 s8-system # psrinfo 0 on-line since 08/29/07 13:32:21 1 on-line since 08/29/07 13:32:23

We could have also performed a sys-unconfig(1m) on the Solaris 8 image during the container installation (by passing -u to the installer). In that case, we would have been asked to answer the usual system identity questions. This zone can be cloned, moved around, renamed, attached/detached and manipulated like any other. You can even install it atop a ZFS filesystem, and from the global zone, use DTrace against the applications running inside of it.

Most importantly, you can run real workloads. Building on the Solaris Application Binary Compatibility Guarantee, we have done the difficult work to make sure that your applications will work successfully inside of these containers. This includes software such as databases, application servers, Java programs, web servers, and more. We've also utilized the amazing array of test suites we have available in-house.  You can even do software development inside of Solaris 8 Containers, building binaries which will run on any Solaris 8 (and 9, and 10) systems.

You can also patch these containers using the same tools you use to patch Solaris 8 (and using the same patches). We've even pulled down hundreds of Blastwave packages to test gnome, KDE, and lots of other applications available there. You can run your favorite ancient desktop environment: Solaris 8 was the last version of Solaris to include OpenWindows. So here's the obligatory screenshot from the wayback machine: Netscape 4.x, Java 1.3 and some other miscellaneous stuff all running atop the OpenWindows environment.  Running on emulated Solaris 8, on Solaris 10, on a T2000. A weird blast from the past mixed up with the present day.  (It's interesting to think that today's whizzy desktop applications will in a few years look just as antiquated as OpenWindows and Netscape 4.x do today).  Click the image to zoom in.


That's all I have time for tonight.

If you're interested in hearing more about this technology, talk to your local Sun Representative. Or if that fails for any reason, send me an email (my-firstname dot my-lastname @sun.com will do the trick) and I'll try to hook you up with someone helpful (please put "Etude" in the subject line).

Thursday May 17, 2007

cr.opensolaris.org goes to Beta

I am happy to announce that cr.opensolaris.org, the OpenSolaris code review site, is now in Beta. For now, the site automatically grants an account to anyone with a contributor grant or better. For more on the "grants" system, see article III, Section 3.3 of the OpenSolaris Constitution.

For now, new accounts get created periodically by me running a script -- eventually this will update hourly. So if you don't seem to have an account now, let me know when you've got your grant.  Update 5/27/07: I set this up to auto-update every 20 minutes.

So take a look, give it a spin, and see if it works for you-- and please let me know, good or bad. Keep in mind that this is a Beta, so things might be in flux over the next few weeks. Also: if you think you should have an account (because you have a grant) but don't, please let me know.

Happy code reviewing!

Monday May 07, 2007

cr.opensolaris.org, a work in progress

A while back I wrote about online codereview.  And Stephen has been hassling me to move my existing code review site, cr.grommit.com (hosting graciously provided by Steve Lau) over to the OpenSolaris.org infrastructure.  So I have been slowly chipping away at all this, and now have some progress to report.

Gary was kind enough to provision me a zone in the OpenSolaris infrastructure.  As such, I've started to bring up the new cr.opensolaris.org codereview site.  Thus far, I have been working on getting mod_layout working so that we can decorate user supplied content with a little header and footer.  This was a bit of a pain because the Apache bundled with Solaris is compiled with the Sun compilers, which are not installed on the datacenter systems.  Only gcc is available (as it is in general on Solaris 10, under /usr/sfw/bin/gcc).  So, I did the build elsewhere-- but I wonder what customers do when faced with this problem?  I wonder if we could use our "compiler wrapper" technology (which we use when building the OS under both compilers) to help us to bridge this gap?

Once I got that squared away, I brought up Apache with some stubbed out content.  Here is the beginning of the home page, and here is a sample code review with the decorations in place (that bar at the top is being dynamically inserted at page transmit time by mod_layout).  What do you think?  I'm pretty pleased about the way it looks, which was inspired by a similar "link bar" feature in gmail.

There is a bunch of stuff left to do: I'm going to change the account management around so that cr.opensolaris.org participates in the opensolaris.org SSH key management scheme.  My working idea is that anyone with a contributor grant will be able to upload files.  The rssh stuff needs to be moved over from grommit.  Existing user data needs to move over.  The main page needs an overhaul... and probably a bunch of other stuff I haven't thought of yet needs to be done.  Hopefully in another couple of weeks it will be fully up and running.

Thursday Apr 12, 2007

Some work on libMicro; Mercurial transition notes

I decided to help out Bart and Phil by opening the libMicro project. The source for libMicro has been open for a while (hosted in the performance community), and internally, Bart kept it in a Teamware workspace.  But now we've got it officially ensconced in a project of its own, and the source has been moved into a Mercurial repository. As a result, you can now browse the source online!  I've also been attempting to make some improvements to it which you can also examine.  Here are some notes which might be useful to other folks making similar Teamware-to-Mercurial transitions:

  • There are some good directions here for setting up a repository.
  • You'll want to set up a personal ~/.hgrc file because you probably want to associate your email address with your putbacks.  (So that you can be e.g. Joe.Smith@sun.com and not joe@mymachine.eng.sun.com. See hgrc(5). Note that if you've set your repository to send notifications to a list (like xyz-discuss@opensolaris.org) this is especially important. I set the from= and username= directives.
  • You should set up an hgignore(5) file for your repository.  The idea is to tell Mercurial which files it should definitely not care about.  Things like .o files and generated binaries.  .hgignore is just another file which you can check into your repository and version control.
  • You may wish to go through your source files and remove and SCCS detritus (like #pragma ident directives) since Mercurial doesn't use these.

Kudos go to the OpenSolaris infrastructure team: The Mercurial infrastructure just works (perhaps with the exception of the email caveat I mention above).  That said, there are a couple of minor improvements I'd like to see:

  • A link from the project page listing the repositories, including: committers, repository URIs, links to the source browser, etc.
  • In the administration GUI, the repository URIs  are not displayed, and should be.
  • A way to display recent commits on the project page.
All in all, I've had a very positive experience with this new set of tools.  I think the trajectory here looks very, very promising.

Friday Mar 23, 2007

Thinking about online code reviews...

Recently the OpenSolaris community conducted a poll about priorities.  I took note that Deploy a public code review facility on opensolaris.org came in at #3 on the list.  Of course some of you already know that I already run a public code review facility for the opensolaris community: cr.grommit.com.  It turns out that I've learned some valuable lessons from that experience:

  • It's possible to roll out such a facility without a lot of fancy web application infrastructure (cr.grommit.com is "powered by" shell scripts).  I built a useful facility with fairly stone age tools.
  • Running the infrastructure in a zone (graciously donated by Steve Lau) means that I can have some autonomy.  Steve provides me a special ZFS filesystem to which I can dump data for him to backup.
  • Providing rsync access makes posting codereviews an automatable process.
  • Providing public-key-only ssh-only access means that I don't worry much about security.
  • mod_pgheader is really useful for this sort of application.  I use it to add google analytics to all pages on the site (including user content pages).  We might want to use to add some OpenSolaris.org site navigation as well.

Having talked to Stephen and Steve since the poll closed, I think we'll be rolloing cr.grommit.com over to something like cr.opensolaris.org in the next few month.  Being part of the opensolaris.org infrastructure is exciting because we can remove our ssh key management scheme, and use the SSH keys which users provide.  The net effect is that the same key you use for voting will also be useful for posting codereviews.

Of course at the same time I'm very busy on a new project (more on that some other time), enhancing OpenGrok, et cetera.  So it will take some time to get community priority #3 squared away.  I've tentatively set the following goals for the re-work and migration:

  • RSS (or ATOM or whatever) feed of posted codereviews; also a mailing list with the same.
    • To do this we may want some more enhancements to webrev to generate a file of metadata suitable for use by a feed generator (perhaps we need a UUID for each codereview for disambiguation?  What about codereviews which get reposted or updated?   This will be an interesting challenge.)
    • May also want to enhance webrev to be able to rsync things directly, like: webrev -o rsync://cr.opensolaris.org/...
  • Integration with the opensolaris.org SSH key infrastructure
  • Resolution of the spam problem-- today I approve each account request.  If you start posting inappropriate materials, I'll just delete your account.  If we move to a more automated system, we'll need to cope with this somehow.  Perhaps you must have at least a "contributor grant" to post?
  • Reskinned website which fits in with the OpenSolaris site look and feel.

 If you want to help out, most of the above could be broken off into separate tasks.  Since the community has agreed this is a priority, you could volunteer to help out and know that your contribution would be deeply valued.

In the future, I'd like to see a truly collaborative online code review system integrated right in with our RTI system-- something like Mondrian perhaps.  Stephen and I have talked about such a system several times over the past couple of years.  Mostly the issue is that it is a really a big commitment to build such a tool.  If we're lucky, we might be able to integrate some existing pieces together (some bookmarks in this area:  http://www.cenqua.com/crucible has a great demo; http://jcodereview.sourceforge.net/, http://www.notesfromatooluser.com/2006/12/online_code_rev.html thoughts on why these tools "suck", http://cvw.sourceforge.net/cvw/info/docs40/jcvwscreen.php3, http://www.laatuk.com/tools/review_tools.html).

Tuesday Mar 13, 2007

T1000/T2000 Firmware well worth getting...

I've been using Sun's T1000 and T2000 systems frequently, as they are ideal candidates for the kinds of server consolidation tasks our customers are busy performing using zones. One thing that has been irritating about these systems is that the console is very slow-- a fact not lost on several of our users (here, here, and in other places). Recently I've been updating a few of our T1000 systems to the latest firmware revision (for T1000 and for T2000), and the console text output seems to be much faster-- probably still not fast, but nicely usable. It is now not so slow that I wouldn't use the console for minor maintenance work.

The firmware update is pretty painless: just place the firmware image on an FTP server, and follow the instructions.

Thursday Jan 18, 2007

Building a Tidy Home Server with OpenSolaris and ZFS

I've seen a number of mailing list posts recently of the form "I want to build a server for my house which uses ZFS.  What should I buy?"  Step one is to list your requirements.  Here are mine:

  • Modest CPU and RAM (= low cost, low power, low heat, low noise)
  • About 150GB of net usuable storage (ZFS makes it easy to grow your storage over time, so I figured I could take advantage of the low cost of "older" drives)
  • Small form factor
  • Quiet
  • Low cost

So this weekend I set out to build such a machine, encouraged by Tom Haynes' success building a box from scratch.  However, I'm lazy, so I wanted to balance do-it-yourself with do-it-easily.  After a visit to my local (very good) computer shop, Central Computers in the bay area, I settled on the following component list.  I could have gone with a machine from Shuttle, but to accommodate more than two drives would have been expensive.  I settled instead on a bare-bones kit (which means case, power supply and motherboard pre-assembled) from Asus.  Here is the required parts list:

So here's the build process, in pictures.  If you want to see any of the pictures up close, just visit the my smugmug gallery page.

The components, as purchased.

Unpack of the barebones box.

I opened the case to find a tangle of black ribbon cables, which I promptly removed.

I left the one ribbon cable I would need for the DVD drive (why aren't these things SATA, also?) and plugged in the supplied SATA cable.

After removing the back side of the case, I was better able to route the IDE ribbon cable; this also provided needed access for screws which hold the drives in place.  I also added in the drives at this point, although for some reason I forgot to take pictures.

I also connected the DVD drive.  At this point I noticed an important warning on the case back...

Adding in the single 1GB DIMM was straightforward, although more pressure than I am accustomed to was required:

Coffee Break!

Time to add the CPU:

And to examine the heatsink provided by AMD.  The fuzzy grey stuff is the thermal paste.  I made sure to look carefully at both the heatsink and the attachment point on the motherboard to be sure that I got things to contact properly.

All components in place!

Because the kit included only one SATA cable, at this point I had to make a quick run to my local electronics retailer, and I picked up some nice goodies to add to the case.  First, I wired up the second drive, and replaced the ATA ribbon cable with a nicer rounded cable.  In my experience, these are just easier to work with.  I also secured the SATA cables out of the way using a velcro cable tie (you can buy big rolls of hundreds of these at Home Depot for a few dollars).  I also used cable ties to secure unused power connectors and generally improve the organization of the wiring:

I also found these amusing "slot caps" from Vantec, which I had fun installing.  In theory, they keep the dust out of unused slots.  In practice, they just look neat.

The caps were sized for PCI slots, so I had to do some surgery to get them to fit on the PCI-Express slots in the case:

The kit also included DIMM slot caps:

Hopefully the airflow through the case will be good enough.  I think the biggest concern is whether the drives will be cool enough.

The new box, looking tiny compared to the 2001-vintage machine which it replaced:

Solaris booted smoothly and with no problems:

I kicked off the installer and watched some TiVo.

Here's the case, suspended from my home desk via a neat metal arm which came with the desk.

Once I get all of my services configured, I'll post some notes about the software side of things.  While no PC is perfect, this little box looks like a winner for a small home server.  Assuming cooling and power budgets will allow, I should be able to expand to four drives with little effort.

Tuesday Jan 16, 2007

I2O should go...

I've spent the past two weeks in Costa Rica, which was a really great trip.  Pictures are forthcoming.

To get myself back in working shape, I've spent some time today working on a pet project, the removal of the Solaris I2O framework.  I2O is long defunct and this particular piece of code weighs in at some 22,000 lines.  In the past when I've looked at this, I've spent time researching the state of I2O (including authoring the I2O Wikipedia article).  Today I started in on the code changes, which took only a little time.

If you can think of a reason I2O support should remain, or know of someone actively using I2O, please drop me a line...

Wednesday Dec 20, 2006

Webrev revised

I recently putback a bunch of work on webrev, a tool which produces HTML-based code reviews.  webrev is much older than web-2.0 generation tools like Google's Mondrian and other commercial code review tools I have seen, but it has done a good job for us for many years.   That said, webrev has built up a long "wish list" of improvements that folks would like to see, evidenced by the dozen or so RFEs about webrev I found in our bug database.  Another problem is that a lot of folks at Sun have been using hacked up versions of webrev for many years, leading to a proliferation of different versions.  As I started working my way through these, I set the goals of my project as follows:

  • Improve the functionality to encompass common wish-list items
  • Clean up the implementation in preparation for Subversion and Mercurial support (which other folks have been prototyping)
  • Redo the command line interface so that simply invoking 'webrev' from the command line attempts to do something useful; rework the options processing to be more extensible and add new options.

Once I talked things over on tools-discuss@opensolaris.org and got some additional suggestions I finished the implementation and putback the fixes. You can see the results here: [old webrev] [new webrev]. Here is the heads up message I sent out about the work, and a quick rundown of the changes I made:

  • You can now run 'webrev' standalone and expect it to "just work." If you have 'wx' initialized, it will use that. If not, it'll use Teamware (and soon, Mercurial and Subversion).
  • Webrev now emits a GNU-patch compatible patch of the changes and a PDF version of the codereview.
  • An "OpenSolaris" mode is now present: use it via 'wx webrev -O' or 'webrev -O'.
  • As might be obvious from the above point, wx now passes arguments to 'wx webrev' on through to webrev.
  • The command line output has changed. Here is a sample:
    $ webrev
    SCM detected: teamware
    File list from: 'wx list -w' ... done
    Workspace: /builds/dp/webrev-fixes
    Compare against: /ws/onnv-clone
    Including: /builds/dp/webrev-fixes/webrev-info
    Output to: /builds/dp/webrev-fixes/webrev
    Output Files:
    patch cdiffs udiffs wdiffs sdiffs frames ps old new
    patch cdiffs udiffs wdiffs sdiffs frames ps old new
    Generating PDF: Done.
    index.html: Done.
  • Teamware-only operation (i.e. when wx is not present) is improved. For example, you can now easily compare the gate against the clone:
         CODEMGR_WS=/ws/onnv-gate webrev -p /ws/onnv-clone -o ~/gatechanges
I also made these improvements:
  • Improved man page
  • Implemented a common color scheme and visual design
  • Delta comments are now shown at the top of each file
  • Printing support via media=print stylesheets
  • Support for generating webrev against previous webrev
  • Overhauled command line parsing including new options:
    • -o <outputdir>
    • -i <include-file>
    • -p <compare-against>
    • -w <wx-file>
    • -O [OpenSolaris mode]
    • -l <options to putback>
  • Cleaned up and improved index.html page.
  • XHTML compliance (or close)
I'm optimistic that folks beyond Sun will find the new webrev useful, particularly once we get Subversion and Mercurial support dropped in.

Thursday Nov 16, 2006

Cool Desktop Backgrounds

Jim wrote me to tell me that this photo of my laptop:

Cool Desktop Background 

is the most popular in his flickr photos from Korea Tech Days, and that he was getting requests for copies of the desktop backgrounds.  Good News!  You too can have them-- they appear in the Solaris Express Community Release starting with (I think) Build 51.  You'll find them in the "Desktop Background" preferences along with about two dozen other cool backgrounds.  Enjoy!

Monday Nov 13, 2006

Departing Incheon

Well, it's been a hectic and exciting week in Seoul; I'm currently sitting in Incheon International Airport, connected to the free wifi service which seems to be available.  Steve and I did two customer visits (both with top-5 Korean companies) and participated in Tech Days as speakers on the OpenSolaris day.  I also got a chance to see Seoul, a little, and the DMZ, a lot.  My pictures are over here-- although this represents just a rough cut.  I need to go through and categorize and caption each one, and I have some more which I need to upload.

In the spirit of Steve's blog entry, here are some things I observed about South Korea:

  • Things are very clean.  The dirtiest places I found were the flea market, and McDonalds.
  • Our Hotel, the COEX Inter Continental, was very nice.  The breakfast buffet (which for us was included in the room charge) was outstanding.
  • Service is everywhere, and things I am used to doing for myself as an American are often done for you-- doors are held, bags carried, things are cleaned a lot.
  • The metro system is pretty easy for a foreigner to use, with everything signed in Korean and in English.  Unfortunately the ticket machines are not signed in English.  The metro is cheap, but the high frequency of stops means that a trip across town could take two transfers and 40 minutes.
  • People are well dressed and (especially the women) very fashionable.
  • Shopping is an intense and exhausting experience, especially on the weekend when everything is jam packed
  • Traffic is incredibly awful, and there is no rail service to Incheon airport.  Supposedly one is being built, but why would you open a brand new airport without having the trains ready?

This internet connection is going up and down.  Here's one photo for now, of the Joint Security Area in the DMZ.  Across the halfway point of the light blue buildings lies North Korea, and their big "visitor's center."  I'll post more photos later. 

The Joint Security Area, DMZ, South Korea 


    [Update: for some reason the post didn't work, but I was able to actually post it when I got home...  More pictures soon]

    Thursday Nov 02, 2006

    Off to Korea for Tech Days

    Well, I've been too long in not blogging. I'll try to do better.

    I'm excited to be heading to Korea with Steve Lau and others for Tech Days next week. It'll be nice to get to hang out with Jim, too.  See you there! I'll post some photos to my blog as the trip progresses.

    Monday Jun 26, 2006

    Solaris 10 6/06 Released (now with ZFS!)

    Update: Downloads should be fine again

    Update: we're having a software configuration issue on the SDLC and so the downloads may not be available at the moment. They should be working soon.

    Today Solaris 10 6/06 shipped, marking the first supported release to include ZFS, Sun's new filesystem.

    For a engineers like Jeff, Bill, Matt (and many more) who have spent years perfecting ZFS, today marks a big milestone on a long road. Congratulations to Jeff and the whole team!

    A What's New guide is available and downloads of S10U2 are available immediately. A brief summary of some of the new features:

    • ZFS, Sun's revolutionary new filesystem
    • Predictive Self Healing for x64 systems
    • Predictive Self-Healing SNMP trap support
    • Postgres bundled
    • vold service conversion to SMF
    • IPv6 for IPFilter
    • More UDP and TCP/IP performance improvements
    • In-kernel SSL proxy for SSL performance
    • PCI Express support on x86 systems including hotplug
    • Native SATA framework
    • gnome-pilot support for PDA synchronization
    • Xorg 6.9
    • Realplayer

    Kernel Gardening.


    « July 2016