The Planets – Tympani cam view

I forgot to post about this from last fall.

Merlin Patterson arranged the complete Holst suite “The Planets” for wind ensemble. We got a preview copy. I had also recently purchased a GoPro camera. So I left it sitting on a stand at the back during the concert.

So here is a Tympani-eye view of what the performance was like, with the concert audio synced to the video. It is Tom Johnson’s audio (of Johnson Digital Audio) — if you ever need recording in the Bay Area, he’s the best.

Silicon valley is an odd place. Most of the people playing here are one of three groups: #1 professional musician, #2 music teacher, or #3 computer geek.

A sampling of the geek category: One of the developers of java is over there on the far tympani sets. There are at least 3 or 4 google employees. Two startups are over there in the tuba section. A long-time Apple guy is playing lead trumpet. Other companies represented: Go Pro, Yahoo, Sun, Juniper, Symantec, NetApp, etc. And that’s just what I happen to know off hand. Consultants of every flavor. Hard sciences too: PhD research chemists, bio med researchers, environmental health PhDs, etc.

This is an amazing musical group. In some ways its would make an amazingly diverse and scary tech company too.

Oh. And keep an eye out, the score goes off the conductors stand at one point and he finishes the movement from memory, with proper cues.

*tap tap* Is this thing on?

Let’s see if this thing still works. Anyone there? Anyone still watching this? 🙂

Getting a newer version of git onto CentOs 5

Ah the joys of working with vintage OSes.

So if you add the usual yum repositories to CentOs 5, git and curl are available in the updates repository.

However, if you try to use git and do a push to a web DAV-based repository, say somewhere like github.com, you get the following error:

$> git push
fatal: git-push is not available for http/https repository when not compiled with USE_CURL_MULTI

A quick look at the docs on “git http-push” has this note:

*NOTE*: This command is temporarily disabled if your libcurl is older than 7.16, as the combination has been reported not to work and sometimes corrupts repository.

A quick look at the update repository confirms that the version of curl is fairly old: 7.15. Bummer.

Now, you could probably work around this with Remi’s repository. (It’s a repository focused on providing a current LAMP stack on as many distros as possible.) The trouble with Remi is that he tends to want to upgrade your current PHP and Mysql as part of the process. (curl and Mysql being required packages for PHP.)

If you don’t have the time to test out a full lamp upgrade, you don’t feel comfortable using a one-person repository, or if you already have your Web DAV server running using the RPM-based git and you don’t want to change that out, then you know where this goes:

This is probably the ONLY time in the last decade where I have ended up compiling and pathing a local copy of a program!

So for my own reference, and in case it helps you, here’s how to compile up the latest curl and git in /usr/local so you can move on with the rest of your life:

Step 1. – Install required libs. I’m assuming you already have gcc, make, etc present:

yum install autoconf expat-devel gcc gettext-devel libssh2-devel openssl-devel zlib-devel

Step 2. – Download and install curl:

wget http://curl.haxx.se/download/curl-7.30.0.tar.gz
tar xzvf curl-7.30.0.tar.gz
cd curl-7.30.0

make clean
./configure --libdir=/usr/lib64 --with-libssh2 --enable-shared --prefix=/usr/local/
make && make test && make install

Step 3. – If /usr/local is not in your library path, put it there. Man this is old-school stuff:

echo /usr/local/lib >> /etc/ld.so.conf
ldconfig

Step 4. – Now compile git using your new curl:

wget https://www.kernel.org/pub/software/scm/git/git-1.8.3.tar.gz
tar xzvf git-1.8.3.tar.gz
cd git-1.8.3

autoconf
make clean
./configure --with-curl=/usr/local --prefix=/usr/local/
make test && make install

I actually had make test fail on a minor error. After confirming it was ok, I did a make install

Step 5. – Enjoy a new git on your old box. Update paths as necessary.

An interesting error on “cvsimport” for git.

I’m writing this up in the hope that google might pick it up, and that it might help people in a similar situation.

Lately I have been moving from CVS to git for the storage of my source code. When converting all my projects over, I used tge “cvsimport” function of git. Though a few of them failed. I took some time today and fixed those issues.

When importing a project called “bingo”, I received the following cryptic error:

%> git cvsimport -C bingo.cvs2git -d /opt/cvs/repository/ -A /opt/git/author.txt bingo

Initialized empty Git repository in /opt/git/bingo.cvs2git/.git/
Unknown: error

“Unknown: error” doesn’t help that much. So I added “-v” for some verbosity.

%> git cvsimport -v -C bingo.cvs2git -d /opt/cvs/repository/ -A /opt/git/author.txt bingo

Initialized empty Git repository in /opt/git/bingo.cvs2git/.git/
Running cvsps...
cvs_direct initialized to CVSROOT /opt/cvs/repository/
cvs rlog: Logging bingo
NOTICE: used alternate strip path /opt/cvs/repository/bingo/bingo.
WARNING: file /opt/cvs/repository/bingo/Attic/bingo.html doesn't match strip_path /opt/cvs/repository/bingo/bingo.. ignoring
WARNING: file /opt/cvs/repository/bingo/edit.cgi doesn't match strip_path /opt/cvs/repository/bingo/bingo.. ignoring
WARNING: file /opt/cvs/repository/bingo/giza-face.jpg doesn't match strip_path /opt/cvs/repository/bingo/bingo.. ignoring
WARNING: file /opt/cvs/repository/bingo/Attic/giza-text.jpg doesn't match strip_path /opt/cvs/repository/bingo/bingo.. ignoring
WARNING: file /opt/cvs/repository/bingo/index.cgi doesn't match strip_path /opt/cvs/repository/bingo/bingo.. ignoring
WARNING: file /opt/cvs/repository/bingo/Attic/index.html doesn't match strip_path /opt/cvs/repository/bingo/bingo.. ignoring
WARNING: file /opt/cvs/repository/bingo/triggur-face.jpg doesn't match strip_path /opt/cvs/repository/bingo/bingo.. ignoring
WARNING: file /opt/cvs/repository/bingo/Attic/triggur-text.jpg doesn't match strip_path /opt/cvs/repository/bingo/bingo.. ignoring
cvs rlog: Logging bingo/db
WARNING: file /opt/cvs/repository/bingo/db/bingo-schema.sql doesn't match strip_path /opt/cvs/repository/bingo/bingo.. ignoring
WARNING: file /opt/cvs/repository/bingo/db/bingo.sql doesn't match strip_path /opt/cvs/repository/bingo/bingo.. ignoring
WARNING: file /opt/cvs/repository/bingo/db/dbsave.sh doesn't match strip_path /opt/cvs/repository/bingo/bingo.. ignoring
cvs rlog: Logging bingo/lib
WARNING: file /opt/cvs/repository/bingo/lib/Bingo.pm doesn't match strip_path /opt/cvs/repository/bingo/bingo.. ignoring
Fetching cgi v 1.1
Unknown: error

Now we have some useful detail. If you look at the line I’ve marked in italics, it’s shifting the path to “bingo/bingo” which doesn’t exist and then nothing is able to be imported. Something is causing git to incorrectly adjust the path.

After some googling I found that git is using “cvsps” under the covers. And that you could turn up the verbosity of “cvsps,” by using the “cvsimport” switch -p to pass a “-v” down to “cvsps.” They weren’t kidding. It dials the noise all the way up to 11.

%> git cvsimport -v -p "-v" -C bingo.cvs2git -d /opt/cvs/repository/ -A /opt/git/author.txt bingo

Running cvsps...
strip_path: /opt/cvs/repository//bingo/
read cache_date 1369173644
read cache filename 'cgi'
added revision 1.1 to file cgi
revision 1.1 of file cgi on branch HEAD
added revision 1.2 to file cgi
revision 1.2 of file cgi on branch HEAD
added revision 1.3 to file cgi
revision 1.3 of file cgi on branch HEAD
added revision 1.4 to file cgi
revision 1.4 of file cgi on branch HEAD
added revision 1.5 to file cgi
revision 1.5 of file cgi on branch HEAD
added revision 1.6 to file cgi
revision 1.6 of file cgi on branch HEAD
added revision 1.7 to file cgi
revision 1.7 of file cgi on branch HEAD
added revision 1.8 to file cgi
revision 1.8 of file cgi on branch HEAD
added revision 1.9 to file cgi
revision 1.9 of file cgi on branch HEAD
patch set 1122909837 cvs Initial import of the old bingo game.
HEAD
new patch set!
cvs Initial import of the old bingo game.
1122909837
patch set 1122911429 cvs Creating a web page.
HEAD
new patch set!
cvs Creating a web page.
1122911429
patch set 1122923863 cvs slowly building out more so folks can edit their own bingo things.
HEAD
new patch set!
cvs slowly building out more so folks can edit their own bingo things.
1122923863
patch set 1122924036 cvs Now access() is in the module and not the CGI.
HEAD
new patch set!
cvs Now access() is in the module and not the CGI.
1122924036
patch set 1122928663 cvs Triggur's card info is comint out of the DB now.
HEAD
new patch set!
cvs Triggur's card info is comint out of the DB now.
1122928663
patch set 1122932744 cvs Now the title graphics are auto-generated.
HEAD
new patch set!
cvs Now the title graphics are auto-generated.
1122932744
patch set 1122935182 cvs Yay for dynamic cards with pages.
HEAD
new patch set!
cvs Yay for dynamic cards with pages.
1122935182
patch set 1123011990 cvs Now with a non-race-condition randomizer.
HEAD
new patch set!
cvs Now with a non-race-condition randomizer.
1123011990
patch set 1123272482 cvs We now officially draw everything from the DB.
HEAD
new patch set!
cvs We now officially draw everything from the DB.
1123272482
forked cmdline: cvs server
string: 'Root /opt/cvs/repository/
' sent
string: 'Valid-responses ok error Valid-requests Checked-in New-entry Checksum Copy-file Updated Created Update-existing Merged Patched Rcs-diff Mode Mod-time Removed Remove-entry Set-static-directory Clear-static-directory Set-sticky Clear-sticky Template Set-checkin-prog Set-update-prog Notified Module-expansion Wrapper-rcsOption M E F
' sent
string: 'valid-requests
' sent
string: 'UseUnchanged
' sent
cvs_direct initialized to CVSROOT /opt/cvs/repository/
string: 'version
' sent
cvs_direct: client version Client: Concurrent Versions System (CVS) 99.99.99 (client/server) cvs-direct
cvs_direct: server version Server: Concurrent Versions System (CVS) 1.11.22 (client/server)
******* USING CMD cvs -f rlog -d '21 May 2013 22:00:44 +0000<;21 May 2013 22:00:44 +0000' bingo string: 'Argument -d ' sent string: 'Argument 21 May 2013 22:00:44 +0000<1 Jan 2038 05:00:00 -0000 ' sent string: 'Argument -d ' sent string: 'Argument 21 May 2013 22:00:44 +0000 ' sent string: 'Argument bingo ' sent string: 'rlog ' sent cvs_direct: rlog: read E cvs rlog: Logging bingo cvs rlog: Logging bingo state: 0 read line: cvs_direct: rlog: read M state: 0 read line: cvs_direct: rlog: read M RCS file: /opt/cvs/repository/bingo/bingo.cgi,v
state: 0 read line:RCS file: /opt/cvs/repository/bingo/bingo.cgi,v

NOTICE: used alternate strip path /opt/cvs/repository/bingo/bingo.
stripped filename cgi
existing file: cgi

cvs_direct: rlog: read M head: 1.9
state: 1 read line:head: 1.9

cvs_direct: rlog: read M branch:
state: 1 read line:branch:

cvs_direct: rlog: read M locks: strict
state: 1 read line:locks: strict

cvs_direct: rlog: read M access list:
state: 1 read line:access list:

cvs_direct: rlog: read M symbolic names:
state: 1 read line:symbolic names:

cvs_direct: rlog: read M keyword substitution: kv
state: 2 read line:keyword substitution: kv

cvs_direct: rlog: read M total revisions: 9; selected revisions: 1
state: 3 read line:total revisions: 9; selected revisions: 1

cvs_direct: rlog: read M description:
state: 3 read line:description:

cvs_direct: rlog: read M ----------------------------
state: 3 read line:----------------------------

… and hundreds more lines.

And the important point is highlighted in italics again. I found it by searching for where that “strip path” changed.

There is a file called “bingo.cgi” in the root of the project called “bingo.” And that is what is mussing things up.

I’m assuming that something about how cvsimport interpolates file types has it strip the extension off it. There must also be a routine that checks the directory path by looking for the project name on the end of the current working directory. When the two collide, “bingo.cgi” makes cvsps think it needs to change to “bingo/bingo” as the repository path.

So the simple solution? I renamed project “bingo” to “bingo1” before importing it into git. And it worked perfect.

Isn’t it funny how the weird errors so often come down to something like a file name.

Free awesome recital!

Wow. It’s been a while since I posted here. I should get back to this and posting more often.

Recital Flyer

Recital Flyer

If you’re in the SF Bay area and are looking for some fun culture stuff on the cheap, a wonderful, WONDERFUL guest artist will be presenting a free concert.

Lydia Busler-Balis made her performance debut at the Boston Symphony at 16. Let me say that again: SHE MADE IT INTO THE BOSTON SYMPHONY AT 16. (You know — John Williams’ orchestra) From there she was in the New York Ballet for a while before backing out of a permanent seat to focus on her children, composing, and improvisation works.

She’s visiting the bay area and doing several master classes, performing as a soloist with an ensemble I am in (the Ohlone Wind Orchestra) and other such things. Stanford is sponsoring a free solo recital as part of their support of visiting artists.

Can’t beat having a word-class recital for free, eh?

Ohlone Christmas Extravaganza!

This Saturday, Dec 8, at 2pm in the Smith Center on the Ohlone Campus in Fremont, CA we’re having our 5th annual Christmas Extravaganza.

I play in 3 of the 5 groups. This shall be awesome!

More info over on: http://ohlonewindorchestra.org/ and tickets can be bought online or at the door.

Le sacre du printemps

I’ve been struggling with how to write this one in a way that is interesting and conveys how much of what is about to happen is full of awesome. But it is hard. So let me try talking about the piece first:

The Rite of Spring, is a ballet that was written by Igor Stravinsky in 1913. You might remember it as the music for the dinosaur-segment in the original Fantasia.

It is amazing, dissonant and violent music. The ballet was depicts pagan rituals in pre-Christian Russian. Having had a major success with his previous work, The Firebird (which you might know as the music in the volcano-vs-nature ending of Fantasia 2000) Stravinsky’s new work was highly anticipated.

The piece and its content was so different and controversial, that there was a riot at its first performance.

To imitate the strained sounds of unpracticed religious voices, Stravinsky uses instruments in unusual registers as well as some instruments rarely seen in orchestration: bass trumpet, alto flute, gurio, etc.

It’s hard to underscore how much of a leap forward this music was. It is incredibly harmonically advanced, with heavy use of dissonances. The idea was to convey a pagan sacrifice after-all.

It is incredibly difficult to play. This is probably the hardest standard-repertoire piece there is for orchestra. The rhythm is intricate, complex, and the meter shifts constantly. It’s one of those pieces that if you get off on a measure, there are very few points for you to pick-back up on. The solo passages are incredibly difficult. For example, the opening bassoon theme statement is some of the highest notes written for bassoon.

Basically put, the music for rite of spring is easily one of the top three landmark works of the 20th century. It changed the genre of orchestral music. Aaron Copland characterized The Rite of Spring as the foremost orchestral achievement of the 20th century. Its greatness is why Stokowski insisted for it to be in Fantasia.

All of that is a long introduction to this interesting point: Many professional groups can’t play this piece well and almost no amateur groups can. The conducting alone is beyond most amateur conductors. Someone like the the San Francisco Symphony can handle it well, but I never expected that in my lifetime I would have a chance to play this piece. Much less, in a group that could play it well.

It’s nice to be surprised.

The conductor of the “good” band I play for, the Ohlone Wind Orchestra located a band transcription of the work. It was in the Illinois State band archives and is an incredible transcription. It’s nearly 30 years old. Yes, it’s a beast of a piece to play: It’s been played twice in those 30 years.

This Sunday, it will be played a third time. We obtained a copy and permission to perform it. And we have been rehearsing it. Spending a double-dose of time on it. It’s as much of a bear as I expected and it’s been kicking us around hard. But we are finally getting our musical hands around it.

And that’s what this post is about. I’ll be performing it tomorrow, Sunday, May 6th, at 2pm, on the hill up in Fremont, CA. (Tickets and info here.)

You are very welcome to come and here it. We’re pairing it in a concert with a few classic band tunes (a Holst suite, Hindemith’s Symphonic Metamorphosis , and R.R. Bennet’s Victory at Sea) but The Rite will take up the other half of the concert.

It’s been amazing and it’s going to be amazing. Hope I see you there!

Otherwise, have fun following that link for the SF Symphony above. They have their performance up on youtube in 4 parts.

Writing tips…

I found these fairly interesting. Eight tips on how to a short story, but Kurt Vonnegut:

  1. Use the time of a total stranger in such a way that he or she will not feel the time was wasted.
  2. Give the reader at least one character he or she can root for.
  3. Every character should want something, even if it is only a glass of water.
  4. Every sentence must do one of two things—reveal character or advance the action.
  5. Start as close to the end as possible.
  6. Be a Sadist. No matter how sweet and innocent your leading characters, make awful things happen to them—in order that the reader may see what they are made of.
  7. Write to please just one person. If you open a window and make love to the world, so to speak, your story will get pneumonia.
  8. Give your readers as much information as possible as soon as possible. To hell with suspense. Readers should have such complete understanding of what is going on, where and why, that they could finish the story themselves, should cockroaches eat the last few pages.

Wonderful stuff.

SSD, Macbook Air, and CPU

Some of you folks know me as an Apple user. I dont evangelize, as that never does any good, but I have been using apple computers off and on since about 1990-ish.

On my last major job-switch (which has been an amazing 6-month roller-coaster of a ride, that I hope to be able to post about soon) I had to turn in my laptop. The previous 2 jobs had been kind enough to furnish me with a Macbook pro at each location.

When I found myself out of the last job and looking at possibly working for myself, I decided it was a good time to again own my own laptop. The trouble was I didn’t have a pile of money. After fidgeting back and forth on price vs CPU, I ended up going with the Macbook Air. It was cheaper and I wanted to try an SSD based system.

My god. Why didn’t I do this ages before?

First off, this post is not about the device being a sexy Apple product. Yes, it is: It is tiny, light and sexy. And that is very handy as I am often going from job to job and carrying my laptop in a bag. It has a high sexy factor.

But I was worried about RAM and CPU limitations. It has a weaker CPU and less RAM, and I use VMware regularly, various heavy media programs like photoshop and after effects, and also do programming and databases.

I had had several friends talk about how much of a performance boost an SSD hard drive was. So I gave it a try.

I am not kidding when I say: SSD hard drives are probably the biggest single technological improvement I have installed in a computer since optional math coprocessors.

Everything about our applications and modern computers involve I/O to the disk. In short, the benefit of an SSD hard drive massively swamped any slowdown from lower RAM or a weaker CPU.

As of tonight, 6 months later, I’ve hit my first real program where the CPU limitation shows: encoding HD video from a previously MPEG encoded NTSC source. Only when belting down full-screen video is my machine working hard. Oh, its encoding at 0.75x playback speed or so. And everything task-swaps around it. I’m posting now, with no noticeable lag in my browser. The only limit I am feeling is it is taking longer to encode. Nothing else is effected.

Over Christmas I bought my brother a computer. It was a parts-kit special and I got a decent mid-range motherboard and made sure it had and SSD harddrive. The machine goes from boot to functional windows desktop in 17 second. A big chunk of that is waiting on BIOS screens with timeouts.

So while I might like a Macbook Air, the big take-away is you need to buy SSDs for your computer. Seriously. Put the OS and apps on it and use your big honking drive for other media if it is a size constraint. It is a fabulous improvement.

A regional rant.

The name “San Francisco” is a 4 syllable name. It is a name that is easily shorted in conversation to “‘Frisco” or “San Fran.” Both are what I would think as friendly slang and only use in that context.

There are some people in San Francisco who take offense at this. They have pride in their city and would like you to say it’s name properly. And I do not have an issue with that. Indeed, thanks to being a Navy-brat, I’ve pretty much been a non-native wherever I go. I tend to quickly pick up on what are the local customs and terms and mirror the language around me. Usually you pick it up via a secondary cue (a pause in timing, or the fact the person you are conversing with never uses the shortened name, etc). But it means enough to some people, it is an egregious enough error, that I’ve been politely asked not to do it. And I’ve happily complied.

There is, however, a very arrogant minority. Usually the reaction you get is rather extreme. Dare to utter the word “Frisco” and the retort you receive is often accompanied with a laden sigh and then given in the tones one would use to address the guy that just made a pig-fucking joke in a church social. It hardly ever varies from this sentence:

“The full name is San Francisco. Or if you must use something else, it is The City.”

I don’t know why, but such derision, clothed in apparent grammatical superiority really flips my bit.

If I catch you parroting this, I might ask you why you are bothering to follow the 1872 edict of a crazy man this town decided could proclaim himself king. (See: San Francisco’s Emperor Norton.) But that’s not what bothers me.

I’m annoyed on two points: #1 the supposed correctness of the name of San Francisco and #2 San Francisco being so important it should be called “The City.”

Point #1 – If you are going to correct me on finer points of language, you’d better be damned sure you are right. The full name you are grasping for is “Mission San Francisco de Aziz.” At least, that’s the full name of the Mission the town was renamed after. If you really, really want to get technical, it is currently the “City and County of San Francisco” as chartered by the state. It’s the only consolidated city-county in California, didn’t ya know? There was about a decade starting after the Mexican-American war where it was named just “San Francisco,” but that has changed. You really should be more up to date than using terms from the 1850. Any discussion after this point of common usage of names negates the initial argument.

Point #2 – The previous point is really pedantic. This gets to the real core of my rant here: Calling it “THE City.” Sometimes it is intoned “THE City” and sometimes it is “The City” — but always with a capital “T” in how it is delivered.

I’m fairly sure I’ve only heard residents of San Francisco championing it as “The City.” These are the same people that often talk of San Francisco as a part of “Silicon Valley.” (It’s not. That’s another rant.)

It’s a popular enough thing that you see these T-shirts floating around. A nice circular outline around the Golden Gate bridge and a title of “The City” on the upper edge.

“The City.” Cute eh? What could piss me off about it?

I think it’s the attitude. The opinion that this place is the center of all things. It’s propaganda.

I’m sorry. I have bad news for you. As a generic term, “The City” can only refer to one place in the US: and that is New York City.

San Francisco doesn’t even rate a suburb of NYC. It has a cute little block or two of skyscrapers and then sprawls for a few miles on a point of land. That’s fucking it.

That’s an IMPRESSION of a city. That’s a scented candle with the flavor “city.” The place rolls up and is quieter after 9pm than my college campus was.

I will give you that San Francisco does have world class homeless, trash and graffiti. And it has roads worse than pre-dig Boston. I guess you can be proud of having the down-sides of a large city.

But lets face it: the only interesting part of San Francisco is a few blocks of waterfront and a big red bridge that GOES FUCKING NOWHERE.

Why does the bridge go to nowhere? Because there’s not enough city to need that bridge. At least Philadelphia’s similar 2-mile long suspension bridge built in the 1930s was built to connect two major harbors.

So if you want to sneer at me about “THE” city, you’re going to hear what a real city is.

Grow up already. It’s like arguing “my dad can beat up your dad.”