Saturday Mar 29, 2014

15 years

Fifteen years ago today, March 29, 1999, I showed up at Sun’s MPK29 building for my first day of work as a student intern. I was off-cycle from the normal summer interns, since I wasn’t enrolled Spring semester but was going to finish my last two credits (English & Math) during the Summer Session at Berkeley. A friend from school convinced his manager at Sun to give me a chance, and after interviewing me, they offered to bring me on board for 3 months full-time, then dropping down to half-time when classes started.

I joined the Release Engineering team as a tools developer and backup RE in what was then the Power Client Desktop Software organization (to differentiate it from the Thin Client group) in the Workstation Products Group of Sun’s hardware arm. The organization delivered the X Window System, OpenWindows, and CDE into Solaris, and was in the midst of two big projects for the Solaris 7 8/99 & 11/99 releases: a project called “SolarEZ” to make the CDE desktop more usable and to add support for syncing CDE calendar & mail apps with Palm Pilot PDAs; and the project to merge the features from X11R6.1 through X11R6.4 (including Xinerama, Display Power Management, Xprint, and LBX) into Sun’s proprietary X11 fork, which was still based on the X11R6.0 release.

I started out with some simple bug fixes to learn the various build systems, before starting to try to write the scripts they wanted to simplify the builds. My first bug was to find out why every time they did a full build of Sun’s X gate they printed a copy of the specs. (To save trees, they’d implemented a temporary workaround of setting the default printer queue on the build machines to one not connected to a printer, but then they had to go delete all the queued jobs every few days to free disk space.) After a couple days of digging, and learning far too much about Imake for my own good, I found the cause was a merge error in the Imake configuration specs. The TroffCmd setting for how to convert troff documents to PostScript had been resynced to the upstream setting of psroff, but the flags were still the ones for Sun’s troff. These flags to Sun’s troff generated a PostScript file on disk, while they made psroff send the PostScript to the printer - switching TroffCmd back to Solaris troff solved the issue, so I filed Sun bug 4227466 and made my first commit to the Solaris X11 code base.

Six months later, at the end of my internship, diploma in hand, Sun offered to convert my position to a regular full-time employee, and I signed on. (This is why I always get my anniversary recognition in September, since they don’t count the internship.) Six months after that, the X11R6.4 project was finishing up and several of the X11 engineers decided to move on, making an opening for me to switch to the X11 engineering team as a developer. Like many junior developers joining new teams, I started out doing a lot of bug fixes, and some RFE’s, such as integrating Xvfb & Xnest into Solaris 9.

A couple years in, Sun’s attempts to reach agreement amongst all of the CDE co-owners to open source CDE had failed, resulting only in the not-really-open-source release of OpenMotif, so Sun chose to move on once again, to the GNOME Desktop. This required us to provide a lot of infrastructure in the X server and libraries that GNOME clients needed, and I got to take on some more challenging projects such as trying to port the Render extension from XFree86 to Xsun, assisting on the STSF font rendering project, adding wheel mouse support to Xsun, and working to ensure Xsun had the underlying support needed by GNOME’s accessibility projects. Unfortunately, the results of some of those projects were not that good, but we learned a lot about how hard it was to retrofit Xsun with the newly reinvigorated X11 development work and how maintaining our own fork of all the shared code was simply slowing us down.

Then one fateful day in 2004, our manager was on vacation, so I got a call from the director of the Solaris x86 platform team, who had been meeting with video card vendors to decide what graphics to include in Sun’s upcoming AMD64 workstations. The one consistent answer they’d gotten was that the time and cost to produce Solaris drivers went up and the feature set went down if they had to port to Xsun as well, instead of being able to reuse the XFree86 driver code they were already shipping for Linux. He asked what it would take to ship XFree86 on Solaris instead, and we discussed the options, then I talked with the other X engineers, and soon I was the lead of a project to replace the Solaris X server.

This was right at the time XFree86 was starting to come apart while the old X.Org industry consortium was trying to move X11 to an open development model, resulting in the formation of the X.Org Foundation. We chose to just go straight to Xorg, not XFree86, and not to fork as we’d done with Xsun, but instead to just apply any necessary changes as patches, and try to limit those to not changing core areas, so it was easier to keep up with new releases.

Thus, right at the end of the Solaris 10 development cycle we integrated the Xorg 6.8 X server for x86 platforms, and even made it the default for that release. We had no SPARC drivers ported yet, just all the upstream x86 drivers, so only provided Xsun in the SPARC release. The SPARC port, along with a 64-bit build for x64 systems, came in later Solaris 10 update releases. This worked out much better than our attempts to retrofit Xsun ever did.

Along with the Solaris 10 release, Sun announced that Solaris was going to be open sourced, and eventually as much of the OS source as we could release would be. But for the Solaris 10 release we only had time to add the Xorg server and the few libraries we needed for the new extensions. Most of the libraries and clients were still using the code from Sun’s old X11R6 fork, and we needed to figure out which changes we could publish and/or contribute back upstream. We weren’t ready to do this yet on the opening day of OpenSolaris.org, but I put together a plan for us to do so going forward, combing the tasks of migrating from our fork to a patched upstream code base, and the work of excising proprietary bits so it could be released as fully open source.

Due to my work with the X.Org open source community, my participation in the existing Solaris communities on Usenet and Yahoo Groups, and interest in X from the initial OpenSolaris participants, I was pulled into the larger OpenSolaris effort, culminating in serving 2 years on the OpenSolaris Governing Board. When the OpenSolaris distro effort (“Project Indiana”) kicked off, I got involved in it to figure out how to integrate the X11 packages to it. Between driving the source tree changes and the distro integration work for X, I became the Tech Lead for the Solaris X Window System for the Solaris 11 release.

Of course, the best laid plans are always beset by changes in the surrounding world, and these were no different. While we finished the migration to a pure open-source X code base in November 2009, it was shortly followed by the closing of Oracle’s acquisition of Sun, which eventually led to the shutdown of the OpenSolaris project. Since the X11 code is still open source and mostly external sources, it is still published on solaris-x11.java.net, alongside other open source code included in Solaris. So when Solaris 11 was released in November 2011, while the core OS code was closed again, it included the open source X11 code with the culmination of our efforts.

Solaris 11 also included a few bug fixes I’d found via experimenting with the Parfait static analysis tool created by Sun Labs. Since shortly after starting in the X11 group, I’d been handling the security bugs in X. Having tools to help find those seemed like a good idea, and that was reinforced when we used Coverity to find a privilege escalation bug in Xorg. When the Sun Labs team came to demo parfait to us, I decided to try it out, and found and fixed a number of bugs in X with it (though not in security sensitive areas, just places that could cause memory leaks or crashes in code not running with raised privileges).

After the Oracle acquisition, part of adopting Oracle’s security assurance policies was using static analysis on our code base. With my experience in using static analyzers on X, I helped create the overall Solaris plan for using static analysis tools on our entire code base. This plan was accepted and I was asked to take on the role of leading our security assurance efforts across Solaris.

Another part of integrating Sun into Oracle was migrating all the bugs from Sun’s bug database into Oracle’s, so we could have a unified system, allowing our Engineered Systems teams to work together more productively, tracking bugs from the hardware through the OS up to the database & application level in a single system. Valerie Fenwick & Scott Rotondo had managed the Solaris bug tracking for years, and I’d worked with them, representing both the X11 and larger Desktop software teams. When Scott decided to move to the Oracle Database Security team, Valerie asked me to replace him, just as the effort to migrate the bugs was beginning. That turned into 2 years of planning, mapping, updating tools and processes, coordinating changes across the organization, traveling to multiple sites to train our engineers on the Oracle tools, and lots of communication to prepare our teams for the changes.

As we looked to the finish line of that work, planning was beginning for the Solaris 12 release. All of the above experiences led to me being named as the Technical Lead for the Solaris 12 release as a whole, covering the entire OS, coordinating and working with the tech leads for the individual consolidations. We’re two years into that now, and while I can’t really say much more yet than the official roadmap, I think we’ve got some solid plans in place for the OS.

So here it is now 15 years after starting at Sun, 14 after joining the X11 team. I still do a little work on X in my spare time (especially around the area of X security bugs), and officially am still in the X11 group, but most of my day is spent on the rest of Solaris now, between planning Solaris 12, managing our bug tracking, and ensuring our software is secure.

In those 15 years, I’ve learned a lot, accomplished a bit, and made a lot of friends. I’ve also:

  • filed 2572 bugs & enhancement requests in the Sun/Oracle bug database, and fixed or closed 2155, assuming I got the bug queries correct.
  • worked under 3 CEO’s (Scott, Jonathan, Larry), and 4 managers, but more VP’s and Directors than I can count thanks to Sun’s love of regular reorgs.
  • been part of the Workstation Products Group, the Webtop Applications group, the Software Globalization group, the User Experience Engineering group, the x64 Platform group, the Solaris Open Source group, and a few I’ve forgotten, again thanks to Sun’s love of regular reorgs.
  • been seen by my co-workers in a suit exactly 4 times (my initial job interview, and funerals for 3 colleagues we’ve lost over the years).

Where will I be in 15 more years? Hard to guess, but I bet it involves making sure everything is ready for Y2038, so I can retire in peace when that arrives.

For now, I offer my heartfelt thanks to everyone whose help made the last 15 years possible - none of it was done alone, and I couldn't have got here without a lot of you.

Sunday Feb 23, 2014

The goto fail heard ‘round the world

There has been much discussion online this weekend of what happens when you introduce an extra “goto fail” line into your code, such as making a mistake using a merge tool to combine your changes into those made in parallel to a code repository under active development by other engineers. (That is the most common cause I’ve seen of such duplication in source code, and thus the one I see most likely — others guess similarly and discuss that side more in depth — but that’s not what this post is about.)

Adam Langley posted a good explanation of this bug, including a brief snippet of code showing the general class of problem:

 1     extern int f();
 2
 3     int g() {
 4             int ret = 1;
 5
 6             goto out;
 7             ret = f();
 8
 9     out:
10             return ret;
11     }
which he pointed out “If I compile with -Wall (enable all warnings), neither GCC 4.8.2 or Clang 3.3 from Xcode make a peep about the dead code.” Others pointed out that the -Wunreachable-code option is one of many that neither compiler includes in -Wall by default, since both compilers treat -Wall not as “all possible warnings” but rather more of “the subset of warnings that the compiler authors think are suitable for use on most software”, leaving out those that are experimental, unstable, controversial, or otherwise not quite ready for prime time.

Since this has a simple test case, and I’ve got a few compilers handy on my Solaris x86 machine for doing various builds with, I did some testing myself:


gcc 3.4.3

% /usr/gcc/3.4/bin/gcc -Wall -Wextra -c fail.c
[no warnings or other output]

% /usr/gcc/3.4/bin/gcc -Wall -Wextra -Wunreachable-code -c fail.c
fail.c: In function `g':
fail.c:7: warning: will never be executed

As expected, gcc warned when the specific flag was given.

gcc 4.5.2 & 4.7.3

% /usr/gcc/4.5/bin/gcc -Wall -Wextra -Wunreachable-code -c fail.c
[no warnings or other output]

% /usr/gcc/4.7/bin/gcc -Wall -Wextra -Wunreachable-code -c fail.c
[no warnings or other output]

It turns out this is due to the gcc maintainers removing the support for -Wunreachable-code in later versions.

clang 3.1

% clang -Wall -Wextra -c fail.c
[no warnings or other output]

% clang -Wall -Wunreachable-code -c fail.c
fail.c:7:8: warning: will never be executed [-Wunreachable-code]
        ret = f();
              ^
1 warning generated.

% clang -Wall -Weverything -c fail.c
fail.c:3:5: warning: no previous prototype for function 'g'
      [-Wmissing-prototypes]
int g() {
    ^
fail.c:7:8: warning: will never be executed [-Wunreachable-code]
        ret = f();
              ^
2 warnings generated.

So clang also finds it with -Wunreachable-code, which is also enabled by -Weverything, but not -Wall or -Wextra. (I didn’t see a similar -Weverything flag for gcc.)

Solaris Studio 12.3

% cc -c fail.c
"fail.c", line 7: warning: statement not reached

% lint -c fail.c

statement not reached
    (7)

Both Studio’s default compiler flags and old-school lint static analyzer caught this by default. Though, as I noted last year, warnings about some unreachable code chunks will be seen in some releases but not others, as the information available to the compiler about the control flow evolves.


As anyone who has compiled much software with more than one of the above (including just different versions of the same compiler) can attest, the warnings generated on real code bases by various compilers will almost always be different. There’s many cases where gcc & clang warn about things Studio doesn’t, and vice versa, as every compiler & analyzer has been fed different test cases over the years of bad code that developers wanted them to find, or specific problems they needed to solve. This is why when compiling the Solaris kernel, we run two compilation passes on all the sources - once with Studio cc to both get its code analysis and to make the binaries we ship, and once with gcc just to get its code analysis, plus running it through Oracle’s internal parfait static analyser as well.

Having a growing body of warnings doesn’t help either, if you never do anything about them. This is why Solaris kernel and core utility code have policies on not introducing new warnings and we’ve been making efforts in X.Org to clean up warnings, so that you can see new issues when you introduce them, not lose them in a sea of thousands of existing bits of noise.

Of course, it’s too late to stop the bug that caused this discussion from slipping into the code base, and easy to second guess after the fact how it may have been prevented. We have lots of tools at our disposal and they continue to grow and improve, including human code review (though human review is much less reliable and repeatable than most tools, humans are much more flexible at finding things the automated tools weren't prepared to catch), and we need to use multiple ones (more on the most sensitive code, such as security protocols) to improve our chances of finding and fixing the bugs before we integrate them. Hopefully we can learn from the ones that slip through how to improve our checks for the future, such as adding -Wunreachable-code compiler flags where appropriate.

Wednesday Nov 09, 2011

S11 X11: ye olde window system in today's new operating system

Today's the big release for Oracle Solaris 11, after 7 years of development. For me, the Solaris 11 release comes a little more than 11 years after I joined the X11 engineering team at what was then Sun, and finishes off some projects that were started all the way back then.

For instance, when I joined the X team, Sun was finishing off the removal of the old OpenWindows desktop, and we kept getting questions asking about the rest of the stuff being shipped in /usr/openwin, the directory that held both the OpenLook applications and the X Window System software. I wrote up an ARC case at the time to move the X software to /usr/X11, but there were various issues and higher priority work, so we didn't end up starting that move until near the end of the Solaris 10 development cycle several years later. Solaris 10 thus had a mix of the recently added Xorg server and related code delivered in /usr/X11, while most of the existing bits from Sun's proprietary fork of X11R6 were still in /usr/openwin.

During Solaris 11 development, we finished that move, and then jumped again, moving the programs directly into /usr/bin, following the general Solaris 11 strategy of using /usr/bin for most of the programs shipped with the OS, and using other directories, such as /usr/gnu/bin, /usr/xpg4/bin, /usr/sunos/bin, and /usr/ucb for conflicting alternate implementations of the programs shipped in /usr/bin, no longer as a way to segregate out various subsystems to allow the OS to better fit onto the 105Mb hard disks that shipped with Sun workstations back when /usr/openwin was created. However, if for some reason you wanted to build your own set of X binaries, you could put them in /usr/X11R7 (as I do for testing builds of the upstream git master repos), and then put that first in your $PATH, so nothing is really lost here.

The other major project that was started during Solaris 10 development and finished for Solaris 11 was replacing that old proprietary fork of X11R6, including the Xsun server, with the modernized, modularized, open source X11R7.* code base from the new X.Org, including the Xorg server. The final result, included in this Solaris 11 release, is based mostly on the X11R7.6 release, including recent additions such as the XCB API I blogged about last year, though we did include newer versions of modules that had upstream releases since the X11R7.6 katamari, such as Xorg server version 1.10.3.

That said, we do still apply some local patches, configuration options, and other changes, for things from just fitting into the Solaris man page style or adding support for Trusted Extensions labeled desktops. You can see all of those changes in our source repository, which is searchable and browsable via OpenGrok on src.opensolaris.org (or via hgweb on community mirrors such as openindiana.org) and available for anonymous hg cloning as well. That xnv-clone tree is now frozen, a permanent snapshot of the Solaris 11 sources, while we've created a new x-s11-update-clone tree for the Solaris 11 update releases now being developed to follow on from here.

Naturally, when your OS has 7 years between major release cycles, the hardware environment you run on greatly changes in the meantime as well, and as the layer that handles the graphics hardware, there have been changes due to that. Most of the SPARC graphics devices that were supported in Solaris 10 aren't any more, because the platforms they ran in are no longer supported - we still ship a couple SPARC drivers that are supported, the efb driver for the Sun XVR-50, XVR-100, and XVR-300 cards based on the ATI Radeon chipsets, and the astfb driver for the AST2100 remote Keyboard/Video/Mouse/Storage (rKVMS) chipset in the server ILOM devices. On the x86 side, the EOL of 32-bit platforms let us clear out a lot of the older x86 video device drivers for chipsets and cards you wouldn't find in x64 systems - of course, there's still many supported there, due to the wider variety of graphics hardware found in the x64 world, and even some recent updates, such as the addition of Kernel Mode Setting (KMS) support for Intel graphics up through the Sandy Bridge generation.

For those who followed the development as it happened, either via watching our open source code releases or using one of the many development builds and interim releases such as the various Solaris Express trains, much of this is old news to you. For those who didn't, or who want a refresher on the details, you can see last year's summary in my X11 changes in the 2010.11 release blog post. Once again, the detailed change logs for the X11 packages are available, though unfortunately, all the links in them to the bug reports are now broken, so browsing the hg history log is probably more informative.

Since that update, which covered up to the build 151 released as 2010.11, we've continued development and polishing to get this Solaris 11 release finished up. We added a couple more components, including the previously mentioned xcb libraries, the FreeGLUT library, and the Xdmx Distributed Multihead X server. We cleaned up documentation, including the addition of some docs for the Xserver DTrace provider in /usr/share/doc/Xserver/. The packaging was improved, clearing up errors and optimizing the builds to reduce unnecessary updates. A few old and rarely used components were dropped, including the rstart program for starting up X clients remotely (ssh X forwarding replaces this in a more secure fashion) and the xrx plugin for embedding X applications in a web browser page (which hasn't been kept up to date with the rapidly evolving browser environment). Because Solaris 11 only supports 64-bit systems, and most of the upstream X code was already 64-bit clean, the X servers and most of the X applications are now shipped as 64-bit builds, though the libraries of course are delivered in both 32-bit and 64-bit versions for binary compatibility with applications of each flavor. The Solaris auditing system can now record each attempt by a client to connect to the Xorg server and whether or not it succeeded, for sites which need that level of detail.

In total, we recorded 1512 change request id's during Solaris 11 development, from the time we forked the “Nevada” gate from the Solaris 10 release until the final code freeze for todays release - some were one line bug fixes, some were man page updates, some were minor RFE's and some were major projects, but in the end, the result is both very different (and hopefully much better) than what we started with, and yet, still contains the core X11 code base with 24 years of backwards compatibility in the core protocols and APIs.

Saturday May 07, 2011

New blog, same as the old blog

After 7 years at http://blogs.sun.com/alanc/, this blog has a new URL: http://blogs.oracle.com/alanc/. I'm sure you can figure out the change to the RSS & Atom feed URL's as well - and apologies if the URL changes in those feeds caused your feed readers to determine the posts were all new, though fortunately, I get around to posting here so rarely these days, there shouldn't have been too many.

I didn't realize it until I went back to look for writing this post, but my blog was live for exactly 7 years on the old site - my first post was April 29, 2004 - the site went live a few days earlier, but I was traveling for that year's X.Org conference, so didn't get my account setup and post to it until I got there. They froze blogs.sun.com on April 29 this year to start migrating to the new blogs.oracle.com, integrating the Sun & Oracle bloggers, using the same Apache Roller software Sun used.

Three years later, I joined the people looking back for the third anniversary of blogs.sun.com and wrote “So much change in 3 short years - who knows where the next years will lead us?” — certainly I never expected then that three years after that Oracle would have bought Sun. I can only wonder what will be written in April 2014, on what would have been the tenth birthday of blogs.sun.com.

Wednesday Mar 26, 2008

Too many dry eyes in the house

I've been falling further and further behind on blogging for a while - maybe I'll catch up someday with the cache of posts I have stored in my brain half written (there's a new issue of the X11 DTrace companion, a post on the recent X server security fixes and MIT-SHM regression they introduced, several posts for the OpenSolaris elections which are too late now, and a post or two on X in Indiana bouncing around in there).

This post on the other hand, may actually be early, since Sjögren's Syndrome Awareness Month isn't until April, but I'm posting now since the 2008 Salt Lake City Sjögren's Walkabout is this coming Saturday, March 29, 2008. My mother is one of the organizers, and my sister was going to be one of the walkers until she broke her leg last month. I'm still pledging money to the Sjögren's Syndrome Foundation for both of them though.

For those who haven't heard of Sjögren's — and that included me a few years ago — the About.com article What is Sjögren's Syndrome? and the Wikipedia page on Sjögren's Syndrome can tell you far more than I can. If you're a female who has been noticing problems with dry eyes or mouth, or you know one, you probably want to read more about it, as those can be early symptoms of something far more serious. The foundation estimates 4 million Americans suffer from the disease, and that women are approximately 90% of those.

Even as widespread as that is, it still sounds like one of the random auto-immune disorders they throw out every week on an episode of House and then rule out and you never hear of again. For my wife and I though, it became a permanent part of our lives several years ago when coincidentally both my mother and my wife's mother were diagnosed with it, and they became active in trying to raise awareness of the syndrome in their communities (as you can see in those two articles).

While they've had to adjust to the dryness in many little ways, such as always carrying a water bottle and really appreciating a gift of saliva-inducing Xylitol gum, the constant tiredness is what has really affected them most. They were both busy professionals (a pediatrician and a dental hygenist), active in professional organizations and volunteering in their communities, but have had to cut back as they just didn't have the energy to keep doing it all any more.

Our bodies are mostly water, so you can imagine the problems that happen when various parts start drying up, and that's where the real dangers of the syndrome come in, as the body's immune system starts attacking other systems. While there are treatments available for the effects on some parts of the body, there is no cure, and the Sjögren's Syndrome Foundation is devoted both to research and to spreading the word so that sufferrers can be diagnosed earlier and begin treatments sooner.

So what can you do? If you want to join me in donating, you can do so at either my mom's firstgiving.com page or directly on the foundation's web page. If not, just remember what you've read here the next time you hear a woman near you complain her eyes or mouth are always so much dryer than they used to be and pass it on.

Sunday Jun 10, 2007

Kinda like microblogging meets slow-mo IRC...

I was trying to explain twitter to my wife and the best I could come up with is “kinda like microblogging meets slow-mo IRC,” which didn't make any sense to her. After a bit more trying, “like a web forum with short posts” made more sense to her, but my personal dislike of web forums kept me from thinking of them like that. Fortunately more prolific and more widely read bloggers than I have spent a lot of time describing twitter and it's impact, so you can go read them for a better description.

Twitter is starting to gain popularity at Sun too, both as a new communications method to explore, and as a Solaris-hosted Web 2.0 service. They even have recently been a example of using DTrace to improve the performance of their Ruby-on-Rails platform.

So now you can also find me at http://twitter.com/alanc . I can't promise anything profound or in-depth in 140 characters, but it should get updated a bit more often than this long-form blog.

Thursday Dec 21, 2006

Military usage of FOSS

Sergey, while the thought of software I'm writing being potentially used in military applications to kill others is not pleasant, before you propose a license change to ban military use, have you considered how much they've given back to open source software? Will you be giving up all software that was funded by various national Defense Departments? Start by dropping TCP/IP from your life and let us know how it goes from there.

Monday Oct 30, 2006

Unique?


HowManyOfMe.com
LogoThere is:
1
person with my name
in the U.S.A.

How many have your name?

This site claims that my name is unique in the United States, at least based on their interpretation of Census Department statistics, though I've been asked before in blog comments if I'm “the Alan Coopersmith that co-authored Quadpan with Guppy while at Lockheed in the 80s? A Brown math PhD?” (No, I'm not - I was in grade school and high school in the 80's and have only a Bachelor's degree from Berkeley.)

Google mainly finds just me, though it did turn up an “Allan Coopersmith” who was issued a patent for a dental invention.

The other statistics offered me about my name:

  • There are 305,968 people in the U.S. with the first name Alan.
  • Statistically the 204th most popular first name. (tied with 2 other first names)
  • More than 99.9 percent of people with the first name Alan are male.
  • There are 1,050 people in the U.S. with the last name Coopersmith.
  • Statistically the 25874th most popular last name. (tied with 1020 other last names)

Somehow the gender breakdown doesn't surprise me, though I've been seeing female variants like “Alana” pop up more and more on TV shows and such lately.

[Technorati Tags: , ]

Friday Sep 01, 2006

Chuck Norris' fists are the ultimate unbreakable two-factor authentication.

I was wondering earlier this week what would happen if computer geeks had their own version of “Chuck Norris Facts”, and if so, who would they be about: Richard Stallman, Linus Torvalds, Steve Jobs? Now I know - Bruce Schneier Facts. I have to admit I don't get a lot of them - not sure if they're just not funny or if I'm not enough of a crypto geek to get them. I do think that the top ten are some of the best. I especially liked “Most people use passwords. Some people use passphrases. Bruce Schneier uses an epic passpoem, detailing the life and works of seven mythical Norse heroes.”, “Though a superhero, Bruce Schneier disdains the use of a mask or secret identity as 'security through obscurity'.” and “Bruce Schneier once decrypted a box of AlphaBits.”

So that got me wondering who else could be immortalized this way. The Sun security commmunity could start our own Alec Muffet Facts for instance (“Alec Muffet can crack LiveJournal user passwords just by knowing whose ex-boyfriend wants to stalk her blog, but if you ask him to, he'll change yours instead.”), though we'd probably have to have a long discussion on the internal security mailing list about whether it is too soon to make jokes about what happens when you run Crack on your own ribcage.

A wider swath of the Sun community might have fun with Jonathan Schwartz Facts (“Cutting Jonathan's ponytail doesn't make him weaker, but would make his blog rank drop.”). Perhaps the Solaris community would be able to create a good list of facts about the DTrace team. (“Brian's DTrace probes can observe the state of Schroedinger's cat, but he won't tell because he prefers leaving it as a teaching example.”)

On second thought, maybe this was a question best left unanswered...

[Technorati Tags: ]

Saturday Aug 26, 2006

Download these songs

As a close, personal friend of Al [1], I was priviledged to get notified by e-mail this week that the first single from his new album is now available for FREE download. Of course, because this is Weird Al, the song is Don't Download This Song, a send up of Internet music sharing, Napster, Kazaa, and the RIAA. While I enjoyed it, I still prefer the release from a couple months ago - You're Pitiful, a parody of James Blunt's Beautiful song, which was blocked from inclusion in the album by Blunt's label.

[1] It must be true - the e-mail said so...though anyone can become a close personal friend by signing up on WeirdAl.com.

[Technorati Tags: , ]

Monday Jul 17, 2006

Just like running Windows

I'm in Ottawa for the 2006 Desktop Developer's Conference. I got here last night, about 3 hours later than originally planned - the first time our plane pulled out of the gate in Chicago they noticed a big crack in a tire on the front of the plane that they couldn't see during the pre-flight check because it was on the part of the tire touching the ground. A quick return to the gate was called for, and we sat on the plane for about 15 minutes while they jacked up the front and popped on a spare.

Our second try at takeoff we made it all the way out to the taxiway and were next in line for takeoff, but then sat and sat. Eventually the pilot got on the intercom and said that due to the previous plane “using too much power” our plane's on-board computer was malfunctioning. (I'm not quite sure how that happens - was everyone on the other plane pointing their portable electronic devices at us?) Another trip back to the gate so the maintenance crew could get on board and scratch their heads over it. One of them must have been an MCSE, because the next announcement was that they were going to try to fix the computer by power cycling it. And since it was so integrated into the plane, that meant shutting down the power to the entire aircraft, leaving us in the dark for a couple of minutes and then booting the plane back up.

Fortunately, the reboot fixed the problem, and the third time we left the gate we finally got to take off.

Monday May 08, 2006

MP3 Mirth

Now that Planet Sun is up again, I can be two weeks behind the rest of the world in noticing that Norm Walsh pointed to two pages with amusing MP3s - I liked the Code Monkey song better than the "Dance Monkey Dance" monologue, but found more amusement in the other routines by Ernest Cline, such as Nerd Porn Auteur (in which the ideal woman wants to make love until it's time to watch Battlestar Galactica) and his riff on the classic 80's show Airwolf, which I spent much time watching while doing homework in high school. Of course, the talk on working in Tech Support hit home, having spent too much time answering user questions in past jobs and having a number of friends still working in the tech support centers of various companies.

[Technorati Tags: ]

Saturday Feb 04, 2006

ALS on ER this week

This week's episode of ER, featuring James Woods as a patient with ALS, particularly caught my attention for two reasons:

1) The flashbacks illustrating how his condition worsened over the years provided a better illustration of ALS (better known in the US as “Lou Gehrig's Disease”) than I could remember seeing before. My grandmother died of ALS when I was only 2, so I don't remember much about it - my knowledge of ALS growing up was mainly knowing it was why my grandfather was always one of my biggest sponsors in the MS Society read-a-thon in grade school.

2) It's the first time I'd actually seen an on-screen keyboard similar to the GOK on-screen keyboard for GNOME used with an eye tracker as it was designed for. I've seen Peter give demos using a mouse and most of our testing when we worked on the parts of X that had to interact with it was done in the same way. (I was amazed at how fast he seemed to be able to enter long complex phrases with only his eyes considering how clumsy and slow we are using it with full use of a mouse, but that is probably a mix of portraying familiarity with the technology and dramatic license to keep the flow of the dialogue moving.)

[Technorati Tags: , , .]

Wednesday Jan 25, 2006

Now that's a zoom lens...

Google's updated satellite images let you really get in the action - you can even see a football game in progress in the Cal stadium or the Chicago skyscrapers leaning on each other where they pasted together photos taken from different angles.

[Technorati Tags: , , .]

Thursday Jan 05, 2006

Where did December go?

Almost a month since my last blog post, though I didn't mean to go that long. I planned to write more about the Solaris Desktop Summit, but didn't. There were more good talks from people like Rod and Bart, who I'm fortunate to be able to grab in the hall for a chat most any time, but most of the JDS team members were getting their first in-depth time with them. Fortunately, while I failed to write more, other people there like Glynn, John, and Brian covered it well in their blogs.

I did miss much of one of the days of the summit for meetings back in the Menlo Park office, including interviewing a candidate to fill the opening in our group. Since the person we were interviewing had an interest in working for an "open source company" I brought him with me back to the summit, which was an interesting experience. In some ways, it was like a massive group interview, getting a lot of people he'd be working with to talk to him and for him to get a better sense of our place in the company and who we work with. Unfortunately we haven't been able to fill the position yet, and are back to sorting through resumés this week. (If you're an X hacker looking for a job at a old school Unix vendor evolving into a new school open source company, it's not too late to drop me a line.)

After the summit was done, it was time to work with the rest of the X.Org crew to finish up the X11R6.9 & 7.0 releases, which I was also going to blog about, but didn't find time to do. We got them polished off and officially released on December 21. It was three months later than originally scheduled, but the foundation laid in the 7.0 modular release should make it easier to keep future releases on schedule and easier to package and maintain in the future. Thanks to everyone who helped or sent in words of thanks and congratulations afterwards. Sun's “Chief Open Source Officer” even held up my role as X.Org release manager as one of the examples of ways Sun is actively supporting Linux by contributing to projects like X.Org, GNOME, and of course OpenOffice.Org.

Wrebbit Puzz3D San Francisco PuzzleAfter all that, I was ready to go offline for the week-long year-end holiday Sun US employees get off from Christmas to New Year's, and so didn't catch up on any missing blogs then either. The closest I came to anything productive that week was working with my wife on both preparing to move our spare-time project website to a faster server/new ISP, since the old 300Mhz server it's been on the last five years is really showing it's age, and on building the 1500+ piece 3-D puzzle of San Francisco she bought for Christmas. (Unfortunately, I didn't get any pictures of ours assembled, so the one here is from the puzzle maker's web site.) Of course, the puzzle assembly was done by putting together a lot of little modules and then rolling it up all the pieces into a big interlocking finished product, so even there I couldn't completely escape the echoes of the X.org modularization process.

So now it's January, and I'm back at work, rested and refreshed and with enough projects on my "Todo Now" list to keep me busy all month long, including (in no particular order):

  • Checking in the X11R6.9 final release to Solaris Nevada (done today!) and then backporting to Solaris 10 Update 2. (See this note I wrote to the xwin-discuss at opensolaris.org mailing list for details on the X11R6.9 & 7.0 plans for Solaris.)
  • Helping the Solaris x86 Platform Drivers team get the nVidia Accelerated Graphics Driver for Solaris integrated into the Solaris install.
  • Working with the Solaris Trusted Extensions (formerly Trusted Solaris) X team to take the XTSol multi-level security X extension port they did to Xorg 6.8.2 and make it ready to integrate with our Xorg 6.9 builds and port it to the Xorg 7.0 modular builds in preparation for releasing it as open source.
  • Finishing up the work to release the Solaris Xorg modifications, build scripts, and packaging to the OpenSolaris X Window System Community.
  • Doing the dtlogin and xscreensaver pieces of the "CoolStart" project for Solaris you'll see more about in a bit.
  • Watching Stuart go crazy getting everything ready for next month's X.Org Developer's Conference in Santa Clara.
Hopefully I'll be able to squeeze in a little more time for blogging between all that.



I almost called this post Wake Me Up When December Ends, but then while radio-channel-surfing in the car on the way home caught the end of the song whose title I'd be twisting, followed by a sound I think might be one of the signs of the apocalypse: "You've been listening to Green Day on the John Tesh Radio Show" and I couldn't bring myself to do it any more.

[Technorati Tags: , , , , .]

About

Engineer working on Oracle Solaris and with the X.Org open source community.

Disclaimer

The views expressed on this blog are my own and do not necessarily reflect the views of Oracle, the X.Org Foundation, or anyone else.

See Also
Follow me on twitter

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today