Archive for February, 2009

Angela Hewitt Solo Piano Performance at SJSU

Friday, February 27th, 2009

Angela Hewitt performed “Partita No. 56″ and “English Suite no. 6″ by J.S. Bach, and “Sonata in D Major, Opus 10, no. 3″ and “Sonata quasi una fantasia in C-sharp minor, Opus 27, no. 2″ by Beethoven on piano at the San Jose State University Music Center tonite.

She played a Faziolo piano, her favorite brand. Piedmont Piano Company of Oakland company arranged the equipment loan for this performance.

Angela sounded great – her technical mastery is profound and surreally perfect. I sat about the sixth row center and got to watch her play up close.

The audience members I talked to appreciated her virtuoso but flowing style – her signature. She started at 8 pm, which was a little late for the audience to attentively focus.

We’re both from the Toronto area – she was one of my favorite pianists after she won the Bach competition in 1985 – so it was great to see her still performing. I can remember how electrifying her first J. S. Bach CD was back then (on DG.)

She’s 50 now but still looks 30!

mercurynews.com: Pianist Angela Hewitt in San Jose is outrageously excellent adventure
Youtube: BC Global TV: Angela Hewitt on a FAZIOLI at Showcase Pianos
wikipedia: Angela Hewitt

Sun Grid Engine (SGE)

Friday, February 20th, 2009

SGE LogoSun Grid Engine (SGE) is a free and Open Source batch-queuing software system for scheduling and managing computer jobs on a cluster of computers. The jobs themselves can be single or parallel processing.

I’ve had the opportunity to administer a small cluster (a dozen linux multi-core nodes dedicated to running EDA applications) for a while and can say that SGE is pretty amazing:

  • free
  • lots of scheduling and resource options
  • command-line, Motif graphical UI interface (qmon) and web UI (xml-qstat) and also Perl modules
  • fairly good documentation
  • trivial to setup on a new client node (one startup script)
  • consumables resource concept, for example limited application licenses
  • is likely the standard for departmental or single-campus job scheduling.

How does SGE differ from other similar software? SGE doesn’t focus on process migration like Mosix did, since SGE is not kernel-level. It does support kernel or application checkpointing.

Any engineer or scientist can read the SGE User Manual, install it, set up a single queue, and go live in an hour using the defaults without any training. As long as the cluster networking is reliable and jobs are submitted correctly, SGE should run with nearly zero administration.

But I would recommend that anybody with “Grid Administrator” in their job title interview their users for grid requirements, then take a class. SGE has a lot of options, and a class will end up taking less time than googling around endlessly or testing changes on a live production grid.

Some of the questions to ask would be:

  • how many compute nodes will be available?
  • how many queues do you foresee? purpose? priority?
  • how long/how much memory/how much CPU/how many cores do each type of job need?
  • does the user care about calendar execution time of jobs? (in EDA, engineers do)
  • is there a need for a failover master (known as a shadow master in SGE terminology)?
  • what access control will be needed?
  • what job accounting will be needed? (SGE has a fairly sophisticated backend for reporting)
  • will interactive jobs be allowed?
  • will the cluster be dedicated server nodes, or also include user desktops?
  • what commercially-licensed software applications will run on the grid? are there enough licenses? (SGE supports some licensing servers, such as FlexLM)
  • what local software needs to be modified or written to support the grid? a submit wrapper?
  • what end-user training and documentation will be available?

SGE can also be used for “cycle-stealing” (running jobs in the background on end-user workstations) by installing a sensor program to check the clients and suspend or resume jobs based on interactivity or load. Some issues would be swapping out user jobs under memory pressure, and reboots by end-users.

What’s interesting is that some grids run multiple job schedulers, usually a primary one plus a SGE “backfill” one.

wikipedia: Sun Grid Engine
Condor HPC Project
MarkMail: Gridengine Forums

IMUG: Emerging Localization Technologies: Crowdsourcing and Machine Translation

Thursday, February 19th, 2009

Anna Schlegel from Acclaro gave a talk on “Emerging Localization Technologies: Crowdsourcing and Machine Translation” at IMUG tonite.

Anna Schlegel is currently Director, Localization at Acclaro and previously was Director of Globalization at VMware, VeriSign, and managed localization and web globalization teams at Xerox and Cisco.

She’s a Catalan originally from Spain.

Her talk focused on the issues and tradeoffs with machine translation and crowdsourcing of translation.

These technologies are of interest to product managers who want to save time and money and perhaps gain more independence from vendors. Traditional human translators can do 2,000 to 3,000 words per day, while MT post-editors can finish around 10,000 words per day.

Also, some clients have simply too much text to translate for a reasonable budget or timeframe, so automation looks increasingly useful. Examples would be search engine result pages, for example.

Anna gave a demo of the translation management interface that Facebook has provided for users. It allows multiple volunteer translators to discuss efforts, divides the remaining work into daily portions, and has a Top score table for biggest contributors.

She also talked about istockphoto.com and a tshirt web site as examples of businesses that rely and flourish on the basis of crowdsourced creativity.

There was a great turnout – we almost ran out of chairs.

Thanks again to Apple for hosting IMUG each month.

Interesting Event Since Unix Epoch

Friday, February 13th, 2009

Keep an eye on your computer today for an interesting event in Unix time.

Here are some useful Unix commands:

$ date -d @1234567890
Fri Feb 13 15:31:30 PST 2009

$ watch -d -n 1 date +%s

cnet.com: Time for Unix nerds to celebrate 1234567890 Day
cnet.com: Square Root Day revelers to party like it’s 3/3/09
cnet.com: National Pi Day? Congress makes it official

Customizing Buildbot Forms

Tuesday, February 10th, 2009

Buildbot LogoI’ve been using Buildbot for several months to do both immediate and nightly builds of hardware RTL and software projects in svn.

Buildbot is fairly useful for what it is: a free, Open Source, standalone continuous integration (CI) tool that supports several revision control systems and has several display methods.

CI is very useful for doing automated building and testing of projects with more than one developer or department, or testing on multiple platforms. Being alerted to fix freshly introduced bugs is much easier than way down the road.

Buildbot is written in Python using the Twisted framework. The configuration files themselves are written in Python.

Most Buildbot administrators will also need to modify the Buildbot source code at some time to get the precise behavior they need.

Based on irc traffic on freenode#buildbot, I would say that most installations are customized, but that most of those changes are not contributed back.

Some of the reasons for that are uniquely local requirements, divergence from the trunk, and that usually the changes would be made by non-professional programmers – release or test staff – who modify just enough to get it running and don’t have any authority to release work products.

It’s generally recommended that programmers new to Buildbot start with the relatively simple status classes (irc, waterfall, grid) first to build up a reasonable comfort level before tackling the build classes.

(I started by enhancing the words.py irc class.)

My complaint about the build classes code is that the instance and class names basically all look the same – BuildXXX – so reading and tracing code is a challenge.

Recently I had to update the “force build” form to add a “Fresh checkout:” checkbox option.

Here’s the changes I had to make to update the form, submit the value and pass it to a script:

web/base.py:

+ make_row("Force fresh checkout:",
"<input type='checkbox' name='fresh' />")

web/builder.py:

from buildbot.process.properties import Properties

fresh = req.args.get("fresh", [""])[0]

req = BuildRequest(r, s, builderName=self.builder_status.getName(), properties=Properties(fresh=fresh))

my_build.py:

from buildbot.process.properties import WithProperties

factories.addStep(ShellCommand, description="checkout",
command=['/shared/common/checkout', "/shared/common/work", WithProperties("%(fresh:-off)s")],
haltOnFailure=True)

An example of a common builder property is buildnumber, which you can pass to a script with:


... WithProperties("%(buildnumber)d")

To customize notifier emails, update status/mail.py like this:

for log in build.getLogs():
s = "%s" % log.getStep().getName()

num = build.getNumber()

m['Date'] = formatdate(localtime=True)
m['Subject'] = self.subject % { 'result': res,
'projectName': projectName,
'builder': name,
'step': s,
'build': num,
}

Then the step and build parameters can be used in the config files:

notifier = mail.MailNotifier(builders=["myproject"],
fromaddr="buildbot@example.com",
extraRecipients=["SW@example.com"],
subject="buildbot %(result)s in %(projectName)s on %(builder)s for build %(build)d - failed on %(step)s",
sendToInterestedUsers=True)

wikipedia: Buildbot
Google Code: buildwatch for Mac

Like Aviation? AOPA Needs Your Support

Monday, February 2nd, 2009

AOPA LogoIf you’re a pilot, plan to be a pilot, or just like airplanes, then join the AOPA or renew today. The AOPA promotes aviation and protects flying privileges.

The United States government is planning to regulate small airports the same as those that serve scheduled airliners, including pilot and passenger scrutiny and onerous inspections, with a program called the Large Airport Security Program (LASP).

If LASP passes, the freedom that GA pilots have historically had in the USA will be a memory, as it already is in Europe.

What can you do?

(I am a lifetime AOPA member and 2009 PAC contributor.)

Pilots turn out in force to tell TSA impact of security plan
Kan. officials urge DHS secretary to rethink security plan
GA Security Sting An Error
Electronic Advance Passenger Information System (eAPIS)
aopa.com: Security Directive 8F (SD-08F) Badge requirements “without clear rationale”

Super Bowl XLIII 2009 – What a Game!

Sunday, February 1st, 2009

Every year I watch the Super Bowl at a local hangout. Even if there’s no excitement on field, the party or ads make it worthwhile.

This year, the game took center stage. One expects some caution in the big game, but this was a no -holds barred war.

The second half was the best football action I’ve ever seen. Both quarterbacks, Kurt Warner and Ben Roethlisberger, plus Fitzgerald and Holmes threw, ran and received flat out like there was no tomorrow.

A linebacker doing an interception and 100-yard return for a goal? Check.

A tiptoe catch in the 35 seconds to go ahead? Check.

Cliff-hangar to the last play? Check.

Bruce Springsteen and his band performed at half time.

The ads were pretty juvenile overall, though the cash4gold.com ad with MC Hammer and Ed McMahon was strange enough to catch attention. GoDaddy was even less PC than usual, featuring Danica Patrick and a cast of shapely women.