Memories of Sun

The EU has approved, the Sun/Oracle deal all but done, wait­ing for China and Rus­sia. James Gos­ling’s post shows the poignant side. How long, I won­der, will the blogs.sun.com web­site still be avail­able? How long to give space to memor­ies and reminders?

Some of my own memor­ies of Sun, in roughly timeline order:

Work­ing on the Sun booth at CeBiT in Ger­many (I was work­ing for a Sun reseller at the time). Watch­ing the US mar­ket­ing video at the after-clos­ing party, since the Ger­man mar­ket­ing team decided the video was­n’t appro­pri­ate. I still have the “Power of Sun” music CD, and a scarf with images of Sun workstations. 

Won­der­ing why Sun did­n’t sup­port Motif prop­erly, when all the oth­er Unix vendors did.

Find­ing a pos­i­tion at Sun that made use of the skills I have.

Meet­ings at Menlo Park; long, involved dis­cus­sions on all sorts of secur­ity and iden­tity subjects.

Sit­ting out­side the cafet­er­ia at the Menlo Park office, talk­ing to people.

The Sun-intern­al innov­a­tion con­fer­ence, mix­ing intel­li­gent, innov­at­ive, hard­ware, soft­ware, and oper­at­ing sys­tem people togeth­er, with din­ner on the beach.

The most fun I’d had at work in a long time on a good pro­ject with great people, that unfor­tu­nately fell vic­tim to the Great Fin­an­cial Crisis.

Really good people, know­ledge­able. Sun seemed to have a lot of people with integ­rity and ded­ic­a­tion. Also its share of less-know­ledge­able posers, of course, but the trenches were filled with good people.

There are lots of memor­ies out there; Sun was one of those com­pan­ies with an influ­ence lar­ger than its nom­in­al size. Those of us who were part of it, even if for a short time, won’t for­get it quickly.

Moving to Windows 7 — Part One

The mother­board on my old Win­dows XP box quit while I was tak­ing a break for lunch one day, and I decided to replace it with an updated Win­dows box. So I’ll keep on using a Snow Leo­pard laptop, OpenSol­ar­is serv­er, and Win­dows 7 as well. 

Maybe I was ask­ing for trouble, going with the 64-bit ver­sion of Win­dows 7 Pro­fes­sion­al, but with a quad core Intel box it seemed a shame to not do so. Most of the tools I use every day (like Fire­fox and Pidgin) are easy to rein­stall and thus ignor­able. But there are some that cost me a little more time to fig­ure out. Admit­tedly, it’s a some­what eclect­ic collection.

First off, mail. I use Pegas­us Mail, have for many years, and it suits the way I work. Every time I’ve upgraded, it’s worked flaw­lessly. This time, it took a while before I figured out that I needed to not take the defaults in the install, but rather uncheck the “cre­ate user con­fig­ur­a­tion” box, and then in the fol­low­ing con­fig­ur­a­tion step select “single user only”. After that, copy­ing across the mail and con­fig­ur­a­tion file worked per­fectly to set it up right.

The Palm desktop presents more of an issue. It turns out that you can­’t use a USB con­nec­tion to syn­chron­ize under the 64-bit ver­sion of Win­dows 7, so I’ll have to get a bluetooth adapter to syn­chron­ize my Treo 680. Or get a new phone. I’m still mulling the options on that one.

Print­er: the HP Col­or Laser­jet CP1510 drivers and soft­ware won’t install from the CD. This isn’t really an issue; the default Win­dows 7 driver works fine but does­n’t show you the toner status etc. For­tu­nately, the HP.com web­site has an updated “advanced” driver. Except for, it does­n’t do all the status stuff either, appar­ently. Oh well.

The scan­ner is an ancient one from Can­on, the 3000F. The scan­ning applic­a­tion won’t install. There are no drivers or updated applic­a­tions on the Can­on web site for Win­dows 7. The tool­box applic­a­tion for scan­ning and copy­ing shows up on c|net, at http://download.cnet.com/CanoScan-Toolbox/3000–2094_4-10972136.html (it may be a dead link by the time you read this), but without the drivers it isn’t much use. Hunt­ing around on the web showed that this is a case for the Vir­tu­al XP mode. This con­sists of 2 down­loads, the first of which is 500 MB. The cur­rent estim­ate on our cur­rently floaky DSL link is almost 2 hours to go, so I think I’ll go and do some real work while wait­ing for it to trickle in, and con­tin­ue this post when I’ve made some more progress.

Meeting Productivity

Some months ago, Time magazine pub­lished an art­icle called Why the Office Oddball Is Good for Busi­ness, about how really pro­duct­ive meet­ings need someone in them to stop too much con­sensus too early. The art­icle starts

Want to get the most out of your next brain­storm­ing ses­sion at work? Bring in an oddball. If you can­’t find an oddball, try a naysay­er or even a mere stranger — any­one who can keep things vaguely uncom­fort­able. If that sounds like a pre­scrip­tion for one of the worst meet­ings you’ve ever had, suck it up and go any­way. It might also be one of the most productive.

It does sound like the recipe for an act­ive meet­ing, one in which every­body has to be on their toes, listen­ing for the real mean­ing behind the words. A meet­ing in which those catch­ing up on their email will miss some­thing import­ant. A meet­ing which may not pro­duce agree­ment, but will pro­duce more clar­ity on pre­cisely what it is you dis­agree about. If you’re going to have a meet­ing, isn’t that what you want? A meet­ing to pro­duce res­ults, not just nods around the table from people who aren’t really pay­ing attention?

Which is not to say that every meet­ing should be uncom­fort­able; lots of meet­ings are to hash out details where people agree on the basics. But it’s amaz­ing how often people think they agree about some­thing until they’re chal­lenged to explain it in detail, which is where they dis­cov­er they dis­agree on the explanation. 

Wheth­er any per­son rais­ing uncom­fort­able issues is wel­come depends on who’s run­ning the meet­ing, wheth­er they’re look­ing for res­ults or, instead, look­ing for uncrit­ic­al approv­al of what they want. I’ve also seen cases where the per­son run­ning the meet­ing claims to want the uncom­fort­able ques­tions asked, but in real­ity does­n’t. it’s hard, allow­ing the dif­fi­cult ques­tions. Answer­ing them is tough, admit­ting you don’t have answers to all of them can be tough­er. So the tend­ency is to squelch the ques­tions, usu­ally by squelch­ing the ques­tion­er. I sus­pect this tend­ency con­trib­utes to a cer­tain num­ber of busi­ness failures.

Dead Links

In the gen­er­al spir­it of tidy­ing up before the Christmas/New Year peri­od I used a link check­er on my blog (Integ­rity on the Mac, I’ve also used Xenu on Win­dows). And dis­covered a bunch of 404s. Some were to sites that still exist but either reor­gan­ized without set­ting up 301 redir­ects, or deleted the con­tent I linked to. Some were to sites that don’t exist any more. I guess part of the price I pay for being part of the spi­der­net that is the web is mak­ing sure my little bit of it is reas­on­ably tidy, so I’ll be delet­ing dead links (though not con­tent) over the next little while. This does raise the issue of the con­tent in cases where I may have referred to, say, a busi­ness that does­n’t exist any more. I’m think­ing I’ll make a small note in cases where it seems to mat­ter, with the determ­in­a­tion of “seems to mat­ter” being some­what arbitrary.

I installed and activ­ated the WP Minor Edit plu­gin for Word­Press and will mark all these changes as minor, so this should­n’t lead to the Atom feed being discombobulated.

lynx and mod_security

I’ve been imple­ment­ing more web sites recently; it appears to be one part of the tech­no­logy mar­ket for which there is still demand. One of the things I push when I meet with cli­ents is access­ib­il­ity, so I figured I should test my own sites and make sure they’re reas­on­ably access­ible. Lynx is one tool to use to check access­ib­il­ity (as well as being a good basic text-based browser). I was a little flum­moxed when I got back a 406 http error, which usu­ally means the user agent can­’t read the char­ac­ter set, lan­guage, or encod­ing the web site uses. Even the most basic text html page was rejected.

It turned out that my ISP had mod_security enabled (good) and con­figured in such a way that lynx was banned (not so good). Ban­ning lynx seems to be a fal­lout from a quick way of con­fig­ur­ing mod_security by fil­ter­ing out keywords that might be used in hack­ing attempts. Per­son­ally I can­’t see the point as lynx can be told to use a dif­fer­ent user agent string if need be, and people who want to hack your site will likely know how to do that, and I can­’t under­stand how people use lynx to hack a site either. Mind you, I don’t hack oth­er people’s web sites, so I don’t know the tools people use who do. Any­way, the ISP cheer­fully took out the fil­ter caus­ing the prob­lem, but in the mean­time my IP address had been flagged by mod_security for try­ing to bypass the fil­ter too many times, so I was com­pletely banned from my own site, as well as every oth­er site that hap­pens to be hos­ted on the same server. 

Even­tu­ally we cleared up that little prob­lem as well, and I could get back to tweak­ing my style-sheets and HTML to be more access­ible. There’s a bit more to do yet, but I’m get­ting there. And I’m grate­ful for an assidu­ous ISP (Cana­dian Web Host­ing) with a sup­port team that works late on Fri­day nights.

Python and the Mac

I wanted to run a python pro­gram on my Mac that was ori­gin­ally writ­ten for Linux. Should work just fine, right? Well, not quite. Giv­en it took quite a while to fig­ure out pre­cisely what I needed, I’m writ­ing it up for next time I need to do this.

The first prob­lem was an error mes­sage triggered by the fail­ure of import gtk. The first assump­tion was that I needed to install python-gtk2. For­tu­nately I’d already installed XCode. The easi­est way to pull in pack­ages for oth­er code is to install some port soft­ware; I picked Mac­Ports. Installing that does­n’t take too long, and it sets up the right depend­en­cies and envir­on­ment vari­ables. Then comes the fun stuff, installing the oth­er pack­ages. This takes some time, although being almost an auto­mat­ic pro­cess makes it rel­at­ively easy.

The first thing to install was python_select, since I wanted to use a ver­sion of python oth­er than the default 2.4, then the right ver­sion of python-gtk. For python 2.5, that meant

sudo port install python_select
python_select python25
sudo port install py25-gtk2

The pro­gram still did­n’t run, with the same gtk error mes­sage, so after vainly edit­ing path vari­ables etc, I looked at the source, and added 

try:
      import pygtk
      pygtk.require("2.0")
except:
      pass

before the

try:
      import gtk

lines. This worked, and the pro­gram moved onto the next miss­ing package.

Repeat­ing for libxml2, and libxslt:

sudo port install py25-libxml2
sudo port install py25-libxslt

and my pro­gram finally worked.

Check­ing what was installed where is easy: port contents package-name where pack­age-name is the name of the package. 

It looks like things work a lot bet­ter than they did just a few months ago, if all the art­icles I found on how to get libxml to work with python on the Mac are any­thing to go by.