Coding at Walker Interactive Systems

My time at Walker Interactive Systems, a now defunct Mainframe financials company, served both as my transition out of the Army and into the civilian world, and as my introduction to life as a professional programmer.  It marked a rapid change in many of my attitudes about life, software, and business.

When I started at Walker, the company had recently gone through a round of layoffs, and was just recovering enough to start hiring again.  Many of the people on staff around me were veterans of the company, somewhat jaded, and ready to move on.  When I started in January of 1997, there were two other developers on my Group:  Laura and Tony.  By the time August rolled around, they were both gone.

I worked in a group developing internal software.  The end users were primarily the consultants of the company who customized the software for the end users.  Overall, the company sold a suite of financial software:  General Ledger, Accounts Receivable, and the like.  The software ran on IBM System 390 mainframes.  Customers were behemoths like AAFES, and one of the Airlines (I think United).  The primary software was designed to run on a 3270 terminal:  a fixed size, fixed font terminal run on a screen by screen basis.  It was an old technology.  Keystrokes were scanned and processed by the terminal software and stayed on the local system until an explicit “Enter” command would send the whole buffer back to the mainframe.

My team was responsible for turning these screens into an API that Visual Basic programmers could use, a process known as screen scraping.  An off line process would read the database of screens, including position and length information, and store it in a database on client side.  Code inside the applications would act like a terminal, buffer up the changed information, and send it back and forth to the mainframe.  The code to execute this was split into two pieces, one for the UI and one for direct communication to the mainframe.  When Laura left, I inherited the front end.  When Tony left, I got the rest.

Microsoft technology was then at the DCOM stage.  What had started as Object Linking and Embedding had evolved into a development philosophy that pervaded the various flavors of the Operating systems at that time:  Windows 95, NT4.  I became a student of the component object model, learned about monikers and marshalling, reflective cross language interfaces, and remote procedure calls.  Wrox Press provided most of the information I needed, and Stacey’s bookstore graciously provided me access to spend a portion of my salary to purchase the books I needed.

The first thing I did was a rewrite of the UI code.  This was less a matter of Hubris and more a matter of it being easier to learn by writing than understanding the existing code base.  The existing code was in C, and I was immersed in C++.  The existing code was a series of dynamic link libraries for the non-preemptive-multitasking version of windows that had been forward ported to Win32, but that had much of the vestiges of the older systems.  The old code was more error handling than anything else.  My version had the benefit of focusing on a single platform.  Since I had the freedom to develop the code from scratch without worrying about backwards compatibility, it made it much easier to make the new code re-entrant, something that the old code had to work to prevent.

One big lesson learned from this effort was to respect the amount of embedded knowledge that there is in a pre-existing code base.  After the first release of my code, I spent a lot of time fielding bug reports from the UI developers about features I had missed.  I learned the value of having a quick-to-run debugging code driver that allowed me to easily reproduce their problems.  The integrated debugger was invaluable in stepping through, viewing what was actually happening, and allowing me to quickly make and distribute fixes.  I got the notion of step through your code drilled into my bones.

When adapting the Gateway code, I had to deal once again with the rapidly changing API from Microsoft.  The older method of remote procedure call was deprecated.  DCOM was the new hotness.   After much trial and error with their Interface Defintion Language (IDL) and SAFEARRAYS I finally got a simple network service to run.  Since my version was expected to be remote, we had reduced licensing from each client machine to a single NT server as well…or at least the potential to do that.  Not sure if the company ever followed up on it.

Of course, all of this distracted me from what I was “supposed” to be working on:  the replacement for the screen scraping which was an asynchronous messaging layer.  This was my first exposure to the recurring theme that I will state here as a rule:  Never name a software project Phoenix.  Really, do you want to imply that your project will go down in flames, dying time and time again?  This project phoenix was no different.  The concept was good:  pull out a section of the cobol code that could be executed as a standalone transaction.  Turn this into an asynchronos message and let the developers send the message to the mainframe.  The reality was that so much of Walkers code would needed to be restructures that even after we got the messaging layer working, the concept was unusable.

One of the end goals of the messaging layer was to work with Data Bound Controls.  There are things like spread sheeets and fields that can be bound to a column from a database query.  Since that meant playing nicely with the Microsfot database technoligies, I dove in and made the messaging layer an OLEDB Provider.  If this doesn’t scare, just be glad and move on with you life.  If this does scare you, then you know way too much about microsoft technologies and I feel somewhat sorry for you.  Basically, I had to learn about the technology that microsoft was then pimping as a replacement for ODBC, a tehcnology which never really should have caught on, and a technology that should be quietly taken out to the back 40 and shot.

One bug while developing the OLEDB provider took me two weeks to track down and fix.  THe mistake was mina and mine alone.  I was apassing in a NULL to a field that required an allocated structure.  THe problem was that, while I owned the calling and implementing code, in the middle it had to go through a microsoft technology called Active DAta Objects (ADO).  This particular API was closed source.  I could see only the disaassembly of the executing code, which didn’t provide the context I needed to deduce my mistake.  This adventure really sold me on the concept of Free (as in Speech) Software and Open Source coding.  I had just started experimenting with Linux, and this really drove home why the development model was so successful.

The very tail end of my time at Walker was spent learning about Java.  IBM was pushing Visual Age, and the company was planning a bitg transition. Walker really suffered from the .com boom:  people fled to cooler, more interesting jobs throughout 1998 and 99.  I left in the summer of 99 to go to Fort Point Partners, a botique services company that was pretty focused on ATG/Dynamo and eCommerce.  Soon after I left, I happened across a group of former co-workers there.  We chatted and they let me know that the company was then very Java and Websphere focused.  Not long after that, Walker was acquired and then passed on to the corporate afterlife.

What’s wrong with me

(Lyrics Composed while jogging some years back and dedicated to my wife)

When I was a little boy

I had a schoolyard crush

There was a little dark haired girl

I wanted very much

Instead I go rejection,

delivered brutally

Hey, what’s wrong with me?

Starting out, a first career

my enthusiasm burst

When the time came to evaluate

my performance was the worst

I worked so long, I tried so hard,

oh no, this cannot be

Hey’ what’s wrong with me?

Looking back at all my life,

have I done the whole thing wrong?

When will I find happiness,

and where will I belong

We shared a dance we shared a kiss

The kiss was very nice

you called me back to break our date

but then you called me twice.

A brand new occupation

that fits me perfectly

there’s nothing wrong with me

nothing, major, wrong with me.

(Inspired by the standard “Everything happens to me”)

Parsing and Inversion of Control

Parsers are essential to the interface layers of an application. A message based system requires a socket listener that will convert the contents of the stream from the network into usable collection of objects. In an inversion of control container, these request scoped objects should be registered instances in the container in order to build/fetch more complex objects, potentially of longer lived scope. Parsed request scope objects should be of classes that enforce invariants, but often will be simple strings in language specific form; char * or std::string being the most common for C++.

Take the example of a userid passed in as part of the request. There really is no format that this string conforms to other than, perhaps, some constraints of the system. To create an immutable UserID class may really just force casts to char * or std::string when the UserID is to be used.

There are many objects, specifically request scoped objects, that need to be created based on the runtime values provided by the system. In a pure Inversion of COntrol (IofC) environment, the parser would create each, and then add them to the container. This may require a large amount of coding in a manner specific to the IofC container. One goal of IofC is to minimize the amount of work that is specific to the container.

Many API’s handle this by creating a map. In the Java HTTP Servlet API, the request object has two string to string maps, one for parameters and one for cookies. This may be a good middle ground between two APIs. A better approach is what Struts does using the Apache Jakarta PropertyUtils API. The Action field of a form specifies an URL that in turn starts with a java object of type Action. THe action is configured in an XML file (Ugh!) that specifies the subclass of ActionForm. The request parameters are bound to the properties of ActionForm using the Java Bean coding convention. Thus a parameter user.homePhone.areaCode =415 would force the reflection equivalent of:

action.getForm().getUser().getHome().setArea(“415″);

One problem with this implementation is that any exception thrown at any point of this binding would force halt to the entire setting of parameters. The net effect is lots of Struts specific coding. Personally, I am not a big fan of getter/setter dependency injection, as it tends to violate the precept that classes enforce invariants. It doesn’t have to, just that code written that way tends to be of the nature where an object can have an invalid state until the setter is called. However, the setter approach does work well with builders, if the set method can be called multiple times in the role of “BuildPart.”

When discussing the marshaling layer we can often think in terms of combing interpreters with builders. The interpreter is responsible from converting from the marshaled format to object format for simple data objects. Each of these objects is added to a larger complex object. In terms of the Builder pattern, the interpreter plays the role of the Director. Only once the entirety of the message is parsed will the director call GetResult. Exceptions thrown during the parsing of the message are collected up so that they can be reported in bulk.

One common objection to this style of programming is the cost of multiple exceptions thrown during the parsing stage. Reducing the number of exceptions thrown should be a performance tune performed after the system is operational. The general structure is to split the parse of a data object into a three stage process. First create builder that takes the object in string form. Second, ask the builder if the marshaled form is valid. Third, fetch the object from the builder. If stage two returns false, add an error to the collection of errors and short circuit the building process. Note the higher degree of complexity over performing the parsing in the constructor. The constructor has to validate the format it is given from the builder, or has to know about the builder object, creating a bidirectional dependency. The logic in calling the builder and the return code has to be coded by hand or has to fit into some larger framework.

The degenerate case also seems to be the most prevalent: confirm the format of the data objects, but then transfer them around as strings. The problem with this approach is that each layer of the application will be written not trusting the other layers, and the objects will be re-parsed, potentially following different rules. From the increase in code size, complexity, and potential for error, we can infer that we should avoid this approach.

Since the builder can be created with minimal dependencies, and most of these can be defined statically, it should be a request scoped component defined in the IofC container. We have to decide at what point in the parsing process do we switch from a general purpose parser to a specific class dedicated to the data coming off the socket. Ideally, the message format provides a way to specify the message type and version early in the stream. This can be the key used to fetch the specific parser. The stream coming off the socket should conform to one of the standard types of the language. In C++ this means something out of std::. The parser can depend on the builder. After the parsing process, one last call into the IofC container kicks off the business processing, that which takes the parsed message and does something with it. At this point we can use something as simple as a functor: Everything is in the IofC layer.

There is a lot here subject to interpretation. The stream may or may not be encoded according to a public protocol, a language specific feature, XML, UUEncoded, encrypted, compressed, and so on. A pipeline can handle the transformation. Converting from stream to objects may use this pipeline, or be a portion of the pipeline, converting from a character or binary based stream to a stream of objects. The issue here is always how to get the objects available to the container without too much container specific logic. If the value comes in key value pairs, the key needs to provide enough information to determine which instance of which class to create.

Since your inversion of control layer should be minimally invasive, you don’t want to have each call in the building of the input validation require knowledge of this layer.  Something about the network protocol is going to be unique enough to pull in the processor for your code.  This is going to be the  URL, the message type, or something unique to your protocol.  The should be enough to select the interpreter and the  builder objects, connect them, and let the parser become the pump from there on out.  The builder should registered  in the Inversion of COntrol container.  When something needs the end product of the build process, it should get this from the container, which will delegate to the builder.  This should strike the right balance between type safety and flexibility.

Blinded by the Light

Springsteen’s version of Blinded by the Light was never a hit, but he still plays it in concerts to this day.  He’s changed the orchestration, end even done it as a Latin number.  The obscure lyrics have long caused much discussion as to their meaning.  Springsteen wrote this song when he was in his early 20s, and before he had any success as a recording artist. He has stated that it was based on his experiences as a young musician and was based on people he met. Many people have tried to show that this was a song about drugs, or about sex. Springsteen has often written about love and sex. He’s alluded to drugs, but never sold himself as primarily a druggie. I suspect that, while both sex and drugs are reflected in the song, the song is not primarily about either, but is instead a description of the adolescent life of a musician.

The inner rhymes of the song provide a great sound, but seriously constrained him as a lyricist. He often had to choose a series of words that sounded good together, not necessarily that were the most direct way to describe what he was feeling. The burden is on the free words, the ones that don’t rhyme, to apply the connotation of the line of the song. What is most telling is where he chose not to rhyme. These words we have to assume he chose more deliberately.  Because the style of the song is so constrained, it actually frees him from having to mean one thing, and instead can paint a picture with words that have multiple meanings, no one of which has to be the true one, but instead just have to be true to the theme of the lyrics.

Madman drummers bummers. The word madman is telling here, as it doesn’t rhyme, it strains the rhythm, and it leads of the song. [Update: Vini "Mad Dog" Lopez was the Drummer of the E-Street Bad] There is a sense of insanity, of hopped the up emotion that would cause one teenager to call the other a Madman. Drummers is both a music reference and again that sense of rhythmic energy, the pulse of life. Bummers: not everything is going to go well, and already we have a warning that there are things going on that will bring you down, bum you out, cause you to crash. Indians in the summer. Here I suspect the Indian refers not to a Native American, but to the motorcycle. In the north, you can’t ride in the winter when it snows, so the bikes come out in summer. The motorcycle is the symbol of freedom, and the cause of many young men’s premature death. The motorcycle shows up dominant in another Springsteen classic: Born to Run, where it is referred to a “Suicide Machine.” It is the mode of escape, the tool of the young. Did Bruce mean this? Possibly. [Update: `The Indians` were Bruce's Baseball Team] It is not a rhyming word, and so was chosen more deliberately for meaning. With a teenage diplomat. The diplomat is suave, sophisticated, a term of maturity. This is at odds with the teenage modifier. The juxtaposition gives a sense of awkwardness, of just coming of age that pervades the song. A diplomat is also a person responsible for representing one culture to another. As a musician, Springsteen is a representative to the cities and towns he visits, and to the people of the older generation.

Down in the dumps with the mumps. Since mumps is a rhyming word, I was at first tempted to pass it off as simple alliteration as opposed to any real meaning. I don’t think it means a literal sickness, unless it was one in the past that lead to missing out on opportunities, but a disease as serious as the mumps would put our hero our of commission. The mumps causes mumbling from swollen salivary glands and testicular swelling. Here the mumps make more sense as a metaphor for teenage awkwardness (mumbling) and sexual frustration. It is telling that the mumps is a disease that gets more serious as you get older, that it is less serious to have as a child. The adolescent pumps his way into his hat. Pumps is a sexual word, and at a first reading I thought this was a metaphor for masturbation, but no self respecting teenage guy would jack off into his hat if he had any other option. I suspect that the pump refers more to a combination of fidgeting and perfectionism exhibited by the teenager to get his appearance just right before going out into the public. He’s not just putting on his hat, but making multiple small adjustments that look like pumping. [Edit:  A Hat could be a slang term for a Condom, leading to a sexual interpretation of this whole stanza. Bruce claims this line is self explanatory.]

With a boulder on my shoulder: Muscles. Our man has been working out, or has just started developing. It also is sounds like the expression “chip on his shoulder.” He doesn’t just have a chip, he has a boulder. So that he feels not only that he has something to prove, but that he has some thing huge to prove. [Edit:  also seems like a reference to Sisyphus, the spirit in Hades serving an eternity pushing a boulder up the hill. Another relevant Greek reference is Atlas, the Titan that held the World on his shoulders] Feeling kind of older: He’s starting to feel more adult, but just kind of, he’s still part kid. I tripped the merry-go-round: We have here the first fairground reference, but it fits with the theme of summer, recreation locations, the kind of gig a young musician would get. It also might be the other job of a kid who gets to play in his band, but doesn’t make enough money that way to survive. So he runs the merry-go-round as well. The key word here is tripped. It harkens back to “trip the light fantastic” but also to tripping a circuit breaker. The question was whether the tripping was accidental or intentional: the result of it being his job, or of a childhood prank. The merry-go-round could also be a metaphor for starting off the music of the band, the lights,and the dancing that is the teenage equivalent of a ride on a merry-go-round. While any of these might be what he originally meant, I think it is the plausibility of multiple definitions that really makes the line work. They all connote the same theme, the same feel.  With a very unpleasing wheezing and sneezing the calliope crashed to the ground. Here is the first bummer.  If we go with the explanation that it was the young man’s job to run the merry-go-round, than this means that something went mechanically wrong.  If it was a young prank, then he broke the machine.  If it was the band, then something went wrong on stage.  A Calliope is a musical instrument named after the Greek muse of epic poetry, fitting for the epic length of these lyrics.  The instrument made sound using steam and pipes, much like an organ.  Even if the merry-go-rounds music was not strictly speaking generated by a calliope, it was something similar enough that the word fits.  The sneezing and wheezing would have described a malfunctioning steam organ as it was falling apart.  Since the calliope was a keyboard instrument, it would have also been an acceptable metaphor for an organ or electric piano, or even the entire band in a stage performance. [Edit: If we go with the sexual interpretation, this implies an awkward first sexual experience, complete with being somewhat put-off out by the strange noises both he and his partner made during the act.]

Some all-hot half-shot was headin’ for the hot spot snappin’ his fingers clappin’ his hands. At first read this appears  one of the more straightforward lines in the song.  Half shot probably means that he got a hold of some alcohol before headed out, and was buzzed, but it could also mean that he was still a half kid.  He knows the music is going to be playing, and he already is anticipating the experience.  But hot spot is another word with multiple meanings.  The connotation could also be sexual, he’s headed to a tryst.  Considering the later lines of this stanza, that also makes sense.  It is even possible that both meanings are intentional:  going out with the possibility or likelihood of hooking up, dancing as a mating game, and barely contained and visible expressed excitement at all of the possibilities.

The object of the song switches from male to female.  And some fleshpot mascot: A fleshpot is a strip tease cabaret.  Men would be lured in with promises of sex, gotten to pay for booze, and kicked out without receiving any sexual favors.  A girl that would be the mascot could either be the girl that stands in the door and tries to entice men in, or could be a younger girl, adopted as the mascot of the older, more jaded women that work inside.  More likely it is a younger version of these girls, still young, but perhaps a little trashy already.  Maybe more  comfortable in the scene, but not by much.was tied into a lover’s knot: She’s involved with someone.  This involvement has tied her in a knot. with a whatnot in her hand.  Since whatnot is a rhyming word, and it makes the line work out well.  It is a filler word:  anything you can’t or don’t want to describe is a whatnot.  It could be a condom, a joint, a crumpled up piece of paper with a love note on it, a bauble won at some stand at the fair.  It has meaning to her, to the tryst, and is left to be filled in by the listener.

And now young Scott with a slingshot: It isn’t clear if were returned to the guy from two lines prior, the all-hot half shot.  It does not matter.  The experiences are in some ways universal, and are certainly spread over multiple people.  The slingshot could be many things:  an actual slingshot, which is both a child’s toy and a weapon.  As a weapon, it could be euphemism for a gun.  Since a slingshot has a rubber band, it could mean a condom.  Again, the ambiguity reinforces the blurry line between childhood and adulthood, between play and serious actions. finally found a tender spot the tender spot could be that he sweet talked his girlfriend into having sex, or he found a place secluded enough to have sex, or just that he found a tender spot in a girl’s heart that he was allowed to progress to more intimacy.and throws his lover in the sand: the kind of rough move a young kid might do, unaware of his own strength, swept away in the action.  The sand implies a beach, playing again on the theme of a recreation location.  The theme park and beach combination would fit in well with the New Jersey shoreline, probably the most important summer spot in the Boss’ home state.

And some bloodshot forget-me-not, bloodshot could be a reference to bloodshot eyes from smoking pot, or the blood from first sex, or as a result of the roughhousing in the previous line.  It could also imply blood engorged, as in one who is ready for sex.  It seems to refer to a girl again, maybe the same one from earlier in the song or a different one, as the experiences, if not universal, were certainly common amongst a good number of the people in the song. A forget-me-not is a flower, which would reinforce that he is talking about a girl, a pattern he uses again later.  That she’s called a forget-me-not can means either that the girl is unforgettable, or that she is worried about being taken advantage of, of being forgotten. It is this kind of dual possibility that loads this song with meaning. whispers daddy’s within earshot: once again we are reminded that these people are still half kids, worried about parents, and some even accompanied by them on these summer excursions.  These actions are illicit, below the radar of the parents and older generation.  Is it sex, drugs, or just sneaking out at night?  save the buckshot: buckshot may be a euphemism for his ejaculation, but it could also refer to any explosive action, anything that would kick of like a bullet. turn up the band, perhaps they are listening to music and she wants the radio louder to cover their activities.   The similarities of the situations in these four lines suggests that this is all about to one couple, hooking up secretly.  The main thing that challenges this notion is the non-rhyming words, the simple ones that could have more easily connoted that young Scott was the half-shot or the two girls were the same girl.  More importantly, the fact that he repeats the word some connotes different people:  Some fleshpot mascot, some bloodshot forget-me-not. If he wanted us to believe that they were the same person, he could have just said and the bloodshot forget me not.  If he wanted to signify that the girl getting thrown in the sand was the same girl from the last line, he could have used but the bloodshot forget-me-not.  Instead, the word some implies that we know the type of person he is describing,  there are more than one.  Thus, this really seems to be a collection of personalities, probably an amalgam of experiences collected over time.

Blinded by the light. It is both the title of the song and the most repeated line in the song. I’ve been on stage, and been blinded by the spotlights shined on me. I suspect that Bruce knew that feeling all too well when he was inspired to write this song, and that he is describing both that physical disorientation and the emotional overload of being young and the center of so much attention. The original (not the Manfred Mann) lyrics follow with Cut Loose like Deuce. He has stated explicitly that a Deuce refers to a sports car. The Manfred Mann version (at least as it is printed in the lyric sheet) is revved up like a Deuce. They have slightly different connotations. The revved up means potential, wanting to cut loose.   Cut loose here means that the car is already speeding down the road. A Deuce would have been an old car at this time, but possibly the kind of old car that a young kid would be able to get his hands on. Another runner in the night…As a musician, he was not only playing at night, but interacting with people in “go out and party” mode. As an adolescent, night was when you can get away with things. Runner: high energy, a kid full of hormones, young and dumb and full of come. But another runner: this is a common pattern, the person is joining the other runners out there, the other party goes, the other adolescents trying on adult life, love, drugs, rock and roll, and responsibility.  I suspect the primary person cut loose is the Boss himself:  touring with a band, just out of high school, the freedom must have been both exhilarating and bewildering.

She got down but she never go tight: Got down is an expression with many possible meanings: dancing, giving a blow job, depression, getting drunk. The key is the word “But” meaning that what ever she did, it wasn’t as serious as what comes next: Got tight. While it might be tempting to use the modern slang meaning of tight as a girl that is really attractive, this song came out about 25 years before that usage. Tight can mean drunk, but that is a little bit more British than Bruce would have used. Tight can also mean a virgin, but that seems at odds with the rest of the song about first experiences, and a virgin starts tight and then becomes less so, so one wouldn’t get tight. The only obvious slang meaning left is to be in tight with the crowd, and this may make the most sense. She got down, but she never got tight: she danced well enough to be well regarded, but wasn’t quite accepted into the the inner circle. This seems to be justified by the following “but she’ll make it alright.” The girl here is still looking for social acceptance, she hasn’t quite found it, but there will be other nights, other events, and the rest of her life. She’s alive, she’s healthy, she still in the game, if a little older and maybe wiser.  [Edit: a sexual interpretation is that she had sex, but not with someone that she is going to be with for the long term.  A fling.] Since this refrain is repeated but referring to other characters, both male and female, this seems to be the unifying theme. Early adulthood is hard, but the scars it leaves help define who you are. This theme jives well with the rest of Springsteen’s songs, especially those off of his first album.

The next verse is reserved for two characters, both authority figures of sorts.  The first is described as Some brimstone baritone anti-cyclone rolling stone preacher from the east. Brimstone refers to fire and brimstone sermons, the bartone to a low, rumbling voice, implying an older man.  An anti-cyclone is a high pressure system that brings fair weather…perhaps he’s full of hot air.  As a rolling stone, he is a migrant.  Maybe he’s a rolling stone in the nature of the other musicians, and as such he’s giving the younger musicians pointers.  A Dictaphone is an old voice recording device.  Dethrone the Dictaphone could be a hint as to what was happening in the recording industry:  moving from records to tape.  Hit them in their funny bone could mean stage presence, make them laugh, be larger than life. that’s where they expect it least. You have to do something when you perform to set yourself apart.  The repeated one syllable in this couplet reinforce the baritone sound, giving a little weight of years to the preacher.

The other character is The new mown chaperone,  someone young thrown into a position of authority, something he’s not yet comfortable being.  He’s out of the action, in the corner all alone watching the young girls dance. He’s trying to keep aloof.  Now comes a great line:  some fresh sown moonstone was playing with his frozen zone to remind him of the feeling of romance. Perhaps this is a drug reference, but I suspect not.  Moonstone was a song by Cat Stevens that came out in 1967, so Bruce would very likely have known it.  In moonstone, the singer talks about something, likely some one that he caught just a glimpse of, that keeps coming back into his mind:

saw a flash, then a sparkle from a moonstone
Then the mist started, started to clear
I saw a face, a face in the moonstone
And then it started to disappear

Perhaps he saw someone that caught his eye, or maybe the band had just played the song, and it stuck in his mind as an ear-worm.  Either way, it was messing with a portion of his spirit that had been frozen, most likely hurt by a romance earlier in life.  He is not immune to the sexuality of the scene.  It is possible that these two guys are one and the same, but they seem to be different for the same reasons listed above.

The refrain ends differently this time: He got down but she never got tight, but he’s gonna make it tonight. Again, suggesting that the couple got together, here it seems to refer to the chaperon above, hooked up, got shut down, but he’s going to make it…hey are older ,and sex is perhaps less formative for them.  It isn’t their first time, so perhaps it is less important to be in love in order to have sex.  Or perhaps just the experience of a near miss is enough to get his  frozen feelings moving, to rejoin life, and start playing the game again.

Some Silicone Sister: This seems to be a pretty straight forward reference to a woman with a breast implants.  I suspect that sister does not have a racial meaning, but it might.  with her manager’s mister:  She has a manager.  A Boob job wasn’t cheap in 1973, and wasn’t that common either.  A woman with implants was probably either rich or in show business.  Since she has a manager, it implies the later.  But she isn’t just with here manager, but her manager’s mister.   Perhaps her manager is a woman, and she’s with the her manager’s husband.  That seems like a stretch.  It could refer to a device that sprays mist, either for perfume or something, but that seems weak, unless is was some form of drug paraphernalia, but again, it seems like a stretch.  Mister implies something masculine.  It may mean that she has her manager’s manhood tightly under control. Told me I got what it takes: if she is in the music business, she thinks Bruce has the potential be be big.  I’ll turn you on sonny to something strong if you play the song with the funky break. She’s older, and hitting on him.  She’s tried to turn the tables:  I can make you big.  She tries to be manipulative:  she’s asking him to change his set list.  She promises to turn him on to something strong:  implying both sex and drugs.  She is either a powerful woman and maybe just a little desperate for validation from a you rising star.

Go-kart Mozart repeats both the music and amusement park themes from earlier in the song.  Either word could be the metaphor.  If Go-Kart is supposed to be a metaphor, and Mozart implies that this character is a musician, than the Go Kart could refer to the sound of an electric guitar with a lot of distortion.  If the Mozart part is the metaphor, than this could just be the guy that runs the Go Karts, [Edit: or is very gifted as a mechanic].  Was checking out the weather chart to see if it was safe to go outside. If Mozart here is a guitarist, then chart probably refers to sheet music.  It is possible Weather chart refers to music from the group Weather report, a Jazz fusion group that was just starting on the scene in the early 70s.  Go outside might mean playing outside the changes, getting funkier, getting more risky with the music.  Of course, the great thing about this kind of poetry is that it supports a great degree of  flexibility of interpretation it supports.  The weather chart could be the paper, and looking at the weather for the rest of the night, a fairly banal interpretation.  Or it could be the racing forms and Mozart is afraid of running into his bookie.

An Early Pearly is a type of white flower, and is also referred to as a she, another case of referring to a girl as a flower.  In this case, a Pearl white flower, both implying virginity, and the term Pearly Whites, a big smile.  Or perhaps her name is Pearl, and so she got the nickname Early Pearly.  Or it could imply that she get physical early in a relationship.  Little does imply that she is young, perhaps another adolescent.  Came in by her curly-wurly A Curly Wurly is a candy bar.  Curly hair, appearance, a girly look.  Or a girly Car.  Asked me if I needed a ride.  She’s hitting on the singer.  Hey, it is Bruce!  But I just noticed that the lyric sheet says came in by her curly-wurly.  This might be a typo, as I think Bruce sings it the other way around.  A  reference to pubic hair, and thus another sex reference seems a trifle crude, especially since it seems more that she is propositioning him.

There are a lot of lines still to go in this song, but I feel like they are not so impenetrable.   [Some additions from  from here to the end, providing my detailed analysis]

Oh, some hazard from Harvard was skunked on beer playin’ backyard bombardier

Harvard boy, drinking and doming something wild in the backyard.  Sounds like a house party.

Yes and Scotland Yard was trying hard, they sent a dude with a calling card,
he said, do what you like, but don’t do it here

Well I jumped up, turned around, spit in the air, fell on the ground
Asked him which was the way back home
He said take a right at the light, keep goin’ straight until night, and then boy, you’re on your own

Scotland yard is the home of the British police, and so that stanza seems to refer to a run in with the authorities, getting run off, a house party broken up by the police.  Bruce tries to impress, tries to sweet-talk, but gets told to head out of town.  straight until night seems like a Peter Pan reference.

And now in Zanzibar a shootin’ star was ridin’ in a side car hummin’ a lunar tune

Zanzibar sounds like the name of a  bar, a bad pun, trying to play on the exotic locale.  I picture a dive with a Neon sign out front with a picture of a palm-tree and a martini glass.  Lunar toon is both a reference to songs like  Moonstone or Moon Dance, or just the  addled moaning of someone that is high,  but also Looney-tunes, Bugs Bunny and so on.  Again, the crossover from child to adult.  Sidecar is a motorcycle reference, but also to someone that plays a supporting role, that doesn’t get to drive, not in control of his own destiny.

Yes, and the avatar said blow the bar but first remove the cookie jar we’re gonna teach those boys to laugh too soon

Avatar is a leader, the person directing the action.  Perhaps an older musician or manager.  Remove the cookie jar is the cookie jar the tip jar or the stash of weed? Possibly the venue owner decided not to pay them in response to some clownish behavior, to teach those boys to laugh too soon.  Or is this payback for a bar owner that stiffed them?

And some kidnapped handicap was complainin’ that he caught the clap from some mousetrap he bought last night,

Well I unsnapped his skull cap and between his ears I saw
a gap but figured he’d be all right

Members of the band or friends experiment with beer, drugs, prostitutes–mousetrap seems to be an interesting euphemism–and yet they all survive.  The kidnapped handicap sounds like a similar reference to the sidecar, someone that had to be taken out to the bars under duress of both the escort and the escorted.  A wing-man that ruins chances. It may be that a degree of growth has happened to the band by these later stanzas.

Mama always told me not to look into the sights of the sun/Oh but mama that’s where the fun is: This is the ultimate line of the song, and seems to sum it up nicely.  We’re old enough to make our own choices, we may knowingly choose to something dangerous, but we do so to live fully.  This song  is a youth anthem, not necessarily promoting sex, drugs, and rock and roll, but describing how alluring the lifestyle is to kids on the cusp, but also to reassure that many kids go through this and are OK.  They’ll be singing “Glory Days” a decade later, just like Bruce Springsteen was, and he hadn’t even hit his prime.

Inventing a new scale

I’ve learned a lot about improvisation in the past few years.  One of the tricks of Bebop is that it extended the scale from 7 distinct notes to eight.  This is important since there are 8 beats  per measure.  The added note was typically one that made the chord tones fall on the downbeats of a run.  For instance, if the chord is C Major ( C E G B) the bebop scale adds the G#.  The run (from low to high) is C D E F G G# A B C.  For a C dominant 7 ( C E G Bb) the added note was the B natural and the run would be C D E F G A Bb B C.

I decided to take this a step further.  One other rule of Jazz is to avoid playing the root tone, to delay resolving the riff.  So let’s take the root out of the scale, and “define” the ninth as a good tone.

When playing over a major chord, you also want to avoid the fourth, as it clashes, and not in a good way.  A standard replacement is the #4.

Another rule:  Only the downbeats of the run have to be in the scale.  The upbeats can be any passing tone.

Add these together and a fairly simple pattern emerges.  Let’s start the run on the 3rd (since we are avoiding the root).

E

We skip the 4th and go to the #4. Then to then next chord tone.

E F# G

We next want to hit the major 7th.  We can chose either the 6th or the b7th, but it seems to make more sense to stay inside the scale than go outside.

E F# G A B

Skip the root, and try get the next beat on the ninth.  Only note left to chose is the b9.

E F# G A B C# D

Let’s get back to where we started.  Only transition note available is the #9.

E F# G A B C# D D# E.

Play it over a Cmaj7.  Start with any of the downbeat notes.  Doesn’t take too long to get used to the sound.

For a C dominant 7th I’d probably adjust it to this:

E F# G G# Bb C# D D# E.

But there is a lot more leway in a dominant 7th.

Even more musings

  • Being able to function with little sleep is an essential skill for an Army Officer.
  • You are never more aware of the style or quality of the pavement as when you are on Rollerblades.
  • It rarely saves time to go a longer route when trying to avoid traffic, but it makes you feel like you are making more progress since you keep moving.
  • It’s not that I wasn’t as big a geek as I thought I was, it is that fewer people knew it than I realized.
  • SQLWCHAR != wchar_t
  • The last exchange between Fezzik and Inigo (“Fezzik, you did something right for once.”  “I won’t let it go to my head.”  Should have been a rhyme.)
  • I’m way too aware of the chord changes when I listen to music.
  • Listen to Leo!
  • Hire smart people and then make them do menial tasks is the basis for too many companies.
  • Cygwin makes working on Windows merely distasteful.
  • Just because we elected a Black man President does not mean that racism is defeated in America.
  • You would have to go back before sliced bread to find an invention greater than the Thera Cane.
  • I here-by dub anger derived from problems while developing software “Code Rage”
  • Kind of Blue. The best Jazz starter drug I know.
  • Power putty is liquid, it just flows really slowly.
  • If you haven’t used your waffle iron to make grilled cheese sandwiches you are wasting its potential.
  • I have embraced my inner geek, since my outer geek is getting all of the attention and my inner geek was feeling neglected.
  • I swear I will learn how to type someday.
  • Looks like the answer wasn’t 42…it was 44.
  • When the build system takes too long, avoid the build system.
  • Puff the Magic Dragon still makes me tear up at the line “A Dragon lives forever, but not so little boys.”  If you have a kid, you’ll understand.
  • Few things are more fun to argue about than fascism in Starship Troopers.

Book Ends

The last two nonfiction books I’ve read are Black Hawk Down and  In a Time of War. The two nonfiction books have both dealt with wars that have happened since I became an adult.  In a Time of War chronicles some of the members of West Point’s class of 2002 as they progressed through the Wars in Afghanistan and Iraq, mostly Iraq.  Black Hawk Down retells the events of the Battle of Mogadishu in October of 1993.  Both these books strike close to home for me.  They present a set of delimiters around a pattern within the  U.S. military involvement overseas.

In October of 1993, I was in my final month of the Infantry Officer’s Basic Course at Fort Benning Georgia.  Within the year I would  arrive at my first Regular Army unit, the 25th Infantry Division.  The Ranger platoon leaders in Somalia were class of 1990 grads, the seniors when I was a Plebe.  The soldiers to my left and right at Rangers school, the ones from Ranger regiment, would go and serve with the men that fought in Somalia.

Mike Palaza, a 1991 West Point grad and fellow Alumnus of Stoughton High School stated that he wasn’t going to marry his girlfriend if he was headed to Somalia:  he was headed to the 10th Mountain and knew that he’d be deployed.  He was being melodramatic when he said that he wasn’t going to get married before going to Somalia. “I won’t make her a Widow.”  But they got married and he deployed there anyway.  He is still alive and well.

SSG Franklin was my senior squad leader when I got to my Platoon in Hawaii.  He had a Combat Infantryman’s Badge from his deployment to Somalia.  He claimed he hadn’t really earned it, just had done a lot of Cordon and Searches in houses looking for weapons.  When I went to Haiti, I had a team leader in my platoon who said comparable things.  It seems that for most of the deployment in Somalia, the US forces were considered a neutral force, just there to help distribute food.  It wasn’t until we decided that Aidid was the bad guy that things went south. It is hard to hear these two points of view and then read the chaos and hell that was Mogadishu during the events told Black Hawk Down.

If you look at the chain of events from the time I graduated High School up to the present situation in Iraq and Afghanistan, there is a continuing narrative.  With the fall of the Soviet Union, we stopped paying attention to the Mujhadeen in Afghanistan, and we lost interest in the Iran/Iraq war and it’s effect on those countries and the region.  Saddam Hussein didn’t get the message that we wouldn’t tolerate an invasion of Kuwait.  By responding, we put American troops on the Arabian Peninsula. The mujahideen fighters, trained and equipped by the United States, now turned their enmity against us.  We were already questionable allies due to our support of Israel, so it wasn’t too hard to make us the bad guys. Al Qaeda has claimed responsibility for inciting much of the violence in Mogadishu in 1993.  It was these actions that lead the US to drive Osama bin Laden out of the Sudan (a short jaunt away across Ethiopia) where he was then building the terrorist network that later attacked American 2001.  He claimed that they learned the US could be chased from a country by making it take casualties.

What was clear from reading the book and from what little I’ve studied is that we misread the situation.  Aidid was willing to let the United Nations help, but he was the real power in Mogadishu.  In the news they called him a “Warlord.”  He was the single most powerful leader to come out of the Somalia Civili war.  Not that he was undisputed, there were many such powerful men, but he had a larger power base than the others.  When the US decided that he was not to be allowed to participate in the future government, they turned a potential ally into an enemy.  Yes, he was a vicious man, but the country was known for brutality, he was just more successful.  Yes, he killed UN peace keepers.  But the story there is fairly murky, at least from what little I’ve seen. The facts of Somalia are such that no one with any degree of power got there without blood on their hands.

What is the difference between a warlord, a tribal leader, a sheik, a community leader, a mayor, a governor?  The power to rule must be granted at least in a portion by the people who are ruled, if only because they think the alternative is worse.  Here in the United States, we were unusual when we said that the military leadership you be subservient to the civilian leadership.  This new fangled idea is not the norm in much of the world:  it is still catching on.  I acknowledge the difference between a person who has seized power and one who has been selected by his community.  We in the United States often forget that places without traditions of elections have more primitive methods for selecting leaders that  nevertheless still have the support of the community.  We may not like these men:  we certainly decided that we didn’t like Aidid.

In a time of War shows a later next stage in the evolution of America’s foreign policy through force.  The West Point class of 2002 deploys to war zones in Iraq and Afghanistan and  suffers casualties. Nine years after I graduated from West Point, a year after I had removed myself from the roles of the Army Reserves, these kids were graduated into a very different Army than I had experienced.  But things don’t change much at West Point.: Their experiences had been similar enough to mine.  The soldiers upon which  the book focused were from company D-1, the Company next to mine for my final two years at the Academy.

I often wonder what would have happened if President Bush senior hadn’t listened to the advisors who told him to stop before heading the troops up to Baghdad.  If what happened in Iraq since 2003 is any indication, we would have certainly been involved in some serious fighting come 1993.  I suspect that my generation of classmates would have been placed in much the same situation as the class of 2002 and later classes.

I cried a couple of times during the book.  Both times it was during the notification scenes.  I can’t imagine a worse thing to do to someone you love than to make them suffer through the fear and dread of deployment to a war zone, except to die on them.

The war in Iraq was going poorly when the book was published.  Since that time, we have lived through “The Surge”, “The Anbar Awakening” and a change in the outlook for Iraq in the long term.  A big part of that change is that the American strategy changed.  Gen Petraus, the Armies chief counter-insurgency expert, gets a lot of credit for his role in getting Army commanders to understand the real situation on the ground, and to work with the people in their locales.  With his current position in CENTCOM, he will be able to affect the operations in the Iraq and Afghanistan, as well as monitor the evolving relationship between Iran and the United States.  I am cautiously optimistic that we will carve a decent situation out of these conflicts.

Returning to thinking about Somalia in the light of the current conflicts really drove home how lucky I have been personally, how much some of our soldiers have given, and how complex American foriegn policy really is.