Practicing the Poetry of Curly Braces

For all the pressure and tumult at my job that last few months, here’s one good result: I’m writing the best code I’ve ever written. I feel like I’ve leveled as a programmer (this seems to happen every 6 mos. to a year with me as I integrate things I’ve been learning) and can now do up to 186 points of damage with a single line of code.

I just spent the evening finishing off a huge feature set that had been my main focus the last 2 months or so. Tonight it was just cleaning up code finishing off a few loose ends, but I was able to sit back and look at my code and say, woah, that’s beautiful.

It’s a bit like Denny Diaz says about the mu chord: you have to practice it until you can do it without thinking about it. So it’s been with me and lots of best practices and design patterns that I used to work hard to implement and now they just sort of come to me as my first idea on how to approach things.

A few specific things I’ve really been focused on down in the details dancing with the devil. One is to never repeat any code. Ever. Everyone copies and pastes blocks of codes, and I used to be much more tolerant of it. Now whenever I temped to do that, I look at the block and make it into its own method and call it from wherever I was going to paste it. The other thing is I’ve been breaking methods up and writing shorter and shorter methods. I’ve had as a rule of thumb that if a method doesn’t fit on a screen its too long. Now I’m thinking more and more that in many cases over half a screen is too long.

Music Update 3: Recording Studio Upgrade

The big news recording-wise is I’ve made some decisions about upgrading my recording studio. This is part of a program of improving my whole recording process. I learned alot from making the last record, and the next one will sound even better. I feel like on Face the Heat I really got it together singing-wise, and the playing, recording and arranging were strong. And of course my main strengths of Rhodes, sax and synths provide a solid foundation to the whole sound. Mixing it down with Erik was a great educational experience. Among the things I want to improve are my bass playing (see a previous post), my guitar playing (more on that later), and my drum sounds. And I want to get some kind of preamp or peak limiter/compressor for the way in when tracking. Had a bit of trouble with clipping on the last set of mixes.

For the next record I’m going to do a lot more of the mixing myself. I’ve been reading an excellent series of books on audio engineering by Bob Owsinski. There’s a volume for recording, mixing and mastering. They contain a wealth of info are an exactly at the level I need. I’m looking forward to applying it all.

The audio I/O box is the heart and soul of the studio, the main thing to upgrade. I’ve been using an original Mbox, which has served me admirably, but has its limitations. The main ones are I can only record two tracks at a time, and I can’t upgrade out of ProTools 7. I might mention that I’ve been using digiDesign hardware and software for almost twenty years now, going back to the original AudioMeda and SampleCell cards on my Mac Quadra. But my Mbox doesn’t work in ProTools 8 and I never got the whole system quite working on the MacOS, so when I’m recording I have to boot in Windows.

After a lot of research, I’ve got my mind set on an Mbox 3 Pro. Hardware-wise the Mbox3 Pro looks like it has a lot going for it. It has 4 XLR inputs and up to 6 line/instrument inputs, as well as 2 SPDIF inputs for a total of 8 simultaneous channels. It also has full-on aux send/return loops for outboard FX. Best of all, it has a built-in “soft peak limiter” on the inputs. This supposedly impart simulated analog warmth and tape saturation on the way in, and if it’s any good ought to save me from having to buy an outboard preamp.

Software-wise this would allow me to upgrade to PT8 (and now PT9), which would open up a whole lot of new drum software and samples and high-end effects. On the downside, I have to upgrade my OS to 10.6 and may have to get a new version of SampleTank. So all of this software updating is nontrivial. On top of that it remains to be seen whether I can use my current MOTU MIDI interface in the then system.

The main trouble is the Mbox 3 Pro is not available yet. It’s release has been pushed back twice, from early November to mid-November, and now to the end of November.

There’s more gear upgrades in the offing. I’m thinking of getting an 88-key piano-style keyboard controller. This has actually been on my list for a long time, but as with everything, finding the time to do the research is the main obstacle. Every few years the product space has completely changed. I’m currently using my old Roland Juno as my primary controller, but it only has 61 keys, and while it’s great as synth, it doesn’t really cut if for doing piano parts. On the other hand, I just finished Karn Evil 9, which is a big a piano song as I’m likely to do, and I got thru that alright by playing some of the more extreme passages in a different octave and then transposing in software.

At some point I’d like to get a drum kit too, but that’s probably a way off still. Every new piece of gear takes time to learn and integrate.

While I’m waiting for the new Mbox and PT 9 I’ve started looking at Reaper, a FOSS DAW. I downloaded and installed it, and was happy to see it discovered my MBox, my MOTU MIDI interface and my VST FX. I’m thinking of doing a quick, simple project to put it through its paces. I have a song in mind, a pop song cover that’s under 3 minutes long, but is one of my all-time favorites, one of those that just stays with you.

Next up: Rocket to the Moon with guitars!!!

Site Update: Music Pages

I got my CD’s back from the manufacturer the other day and am in the process of getting it set up for internet sale on CD Baby and iTunes. To prepare for my forthcoming album release I updated a few of my web pages:

http://buzzytonic.com – the new home page for Buzzy Tonic, my once and future group.

http://zingman.com/music/facetheheat.php – page for Face the Heat, the new album by Buzzy Tonic

http://zingman.com/music – main music page.

http://zingman.com – main home page.

Check ‘em out. This will be your last chance to listen to the full versions of the songs before they are behind a paywall.

Patent Troll From Beyond the Grave

On the heels of my trip to California my former employer is making news, back from the dead after ten years as an undead patent troll, a Patent Lich, if you will.

Way back in the 90’s I worked at the secretive, futuristic think tank Interval Research, owned by the reclusive “accidental billionaire” Paul Allen. It was a very cool place to work, brimming with cutting edge technology and great, creative people and their ideas. Their self-declared mission was to become the next Xerox PARC and the place was loaded with the best and brightest from the aforementioned PARC as well as the MIT Media Lab, the Interactive Telecommunications Program at NYU, and of course Stanford and lots of other places. Douglas Coupland described it in Microserfs as “the coolest place in Silicon Valley.” To me it was kind of like getting a PhD, but earning a real salary instead of accumulating academic accolades. Lots of real good interdisciplinary collaboration with lots of interesting, smart people.

However, the lab has a fatal flaw: hubris. Not satisfied with merely doing cutting edge R&D, their goal was to create startups and change the world and profit wildly, to spawn the next Apple or whatever. I was invited to join the research staff partially on the strength of the work I had done at NYU/ITP, using a programming language called Body Electric to build virtual worlds. This software morphed into a thing called Bounce under the guidance of my friend and mentor Levitt, and made its way to Interval, where it collided with a project from MIT called MediaCalc to create something new and really pretty amazing, particularly for the time, when digital video on a computer barely worked at all, even for the most specialized, high-end rig you could build. Both Bounce and MediaCalc used the idea of a graphical dataflow programming interface to create multimedia applications. Bounce was focused on realtime control and simulation environments that included animation and music. MediaCalc was more focused on generating data streams of metadata from audio and video input and recombining them for new, novel outputs.

At one point I was asked by the Biz Dev group what I thought the commercial applications of our work might be. The Biz Dev people were somewhat removed from the R&D group and the cultural divide was one of the lab’s big flaws. To me the answer was obvious: create a commercial tool for new media artists. Bear in mind that at this time Director and Premiere were still pretty new, as well as their now-defunct competitor MTropoils. Flash hadn’t been invented yet. Pixar was known only to a handful of geeks for being the company that made Renderman, an app that let you farm out our your rendering to a network of SGI’s if you were lucky enough to have that kind of thing. A lot of people there were academics, and were not interested in running a startup anyway. I’d worked at a few small companies before and to me the idea that you start with one core strength and build from there seemed natural. However, I was told that making authoring tools “isn’t a Paul Allen sized idea.” Apparently they wanted to go straight from zero to Toy Story which, needless to say, turned out to be unrealistic.

Meanwhile the world wide web happened, and as the dotcom bubble came to its busting point the lab seemed a little out of sorts. While we were making big investments in deep technology that would come to fruition in the future, the world changed around us. For example, one project got killed when Apple and Sony adopted FireWire rather than our data bus. By 1999 it seemed like anyone with a half-baked business plan could cruise up Sand Hill Road and get a zillion dollars for their startup without any particular technology or protectable IP. Remember pets.com? Interval continued to pursue R&D and indeed filed many patent applications, but never succeeded in launching a killer startup. My guess is that the top twenty coolest things from the lab will never see the light of day and will remain known only to a handful of insiders. One example: there was a guy there named Tom Etters who was working on a complex-plane Boolean logic for quantum computers called Link Theory, based the premise of the square root of not.

By early 2000 Microsoft was on trial for criminal practices with regard to numerous antitrust laws (basically they illegally strangled and killed Netscape), and the day the verdict came down (guilty, but just a slap on the wrist) Paul lost over a billion dollars (on paper anyway) due to the tumble in the price of Microsoft stock. This, in my mind, was the trigger that started the whole dotcom collapse and shawnuff in the next few months everything fell apart. Paul, always wanting to be ahead of the curve, wasted no time and immediately shut down Interval and about a half a dozen other companies of his. The ghost of Interval was subsequently reanimated to “maintain and exploit” its patent portfolio.

Last Friday Interval announced it was suing Google, Apple, and basically all of Silicon Valley for patent infringement. I haven’t read the patents yet, but it sounds from the press release that some of it may be based on my work. How funny. I understand the law of the land may well be on their side, and it’s unlikely that they’d have launched the suit if they didn’t have the patents to back it up, but I still think it’s kind of a dick move. Interval had a more then a decade to develop technologies and businesses based on their prototypes, but they didn’t, so now, years later, they’re crying someone stole their ideas.

Interval joins Viacom on the list of companies I work or have worked for that are suing Google. Unlike Interval, I feel the Viacom’s case is much more in the right philosophically, even if Viacom is the most ironic of champions to the cause. For some reason, Google has gotten away with legitimizing piracy of music, video, etc., where others have been smacked down. The project I was working on my last year at Interval relied heavily on media content sharing and was effectively killed by the Napster decision. Now Viacom is clearly an 800 pound monopolistic media conglomerate here, but at stake really is the ability of anyone working as an artist to get paid for their work in the future world of mainstream media. So the world is changing again. It’ll be interesting to see how it all plays out.

Zingcookie

Michelle is curious about computers and my work, and asked me to help her make her own web site. She’s got a theme, and lots of great ideas for games and videos and things. Last night I helped her get going with it. I showed her how to use an html editor, what a link is, how to do styles and layout, and how to refresh the page in the browser and upload content to a server. She’s like “That’s like magic! Okay, I know it’s not really magic, it’s technology. But it’s *like* magic!”.

So we got the first page done and she’s off to a good start. Check back periodically for updates.

http://zingman.com/zingcookie

Back to the Beach

It really feels like summer now. It’s been a really hot week, up in the 90’s every day. Last Sunday was Father’s day and we spent a great day out at the beach swimming in the ocean. Earlier this week was the summer solstice. Yesterday was the kid’s last day of school, and both kids made the honor roll and now they’re on summer vacation. Now I have Ocean City on my mind, but there’s lots of adventures to get thru first.

It looks like one of the elm trees in our yard is sick. Maybe Dutch Elm disease. That’d be a bummer cuz we may have to cut it down to save the other one. At least it’s the lesser of the two elms, not the champion elm that I’ve grown particularly fond of is home to the family of squirrels that includes the red one with the black tail. The sick one is almost as huge and extends to over to our neighbor diagonally across the street. It’s very lopsided and I figured its destiny would be to fall over in a storm and take out 4 houses worth of power lines.

My office remains chaotic, although I’ve been productive and zen about the situation as things swirl around me. Viacom lost their big billion dollar lawsuit against Google – thrown out of court — so it’ll be interesting to see if there’s any fallout from that. My boss is in a bit of a funk over her deceased cat. I’m taking some time off over the next two weeks. A much needed break.

My recording project has progressed to the actual mastering, and Blick wired up a chain of external gear including a Weiss EQ and something called a BCL (Bass enhancer, Compressor, and Limiter). We rendered out the mixes without the final master effects (mainly dynamic compression) and ran them thru this chain instead. The difference was really striking. I’m really psyched. Blick is really getting into it. It seems he doesn’t get the chance to master full albums very much (mostly does promos and soundtracks fror TV shows) so he’s putting his full effort into it. His partner Glen dropped by and liked the sound. He dug Green Glove, saying it sounded just like Night Fly. Which I’m taking as a compliment, since it’s the most deliberately Steely track on the record.

After many attempts I successfully folded an origami zeppelin tonight. So I have one more nice new model for my exhibit this year. It also is the last word on the series of polar coordinate flying things that include my Rocketship, Hot Air Balloon and U.F.O.

Source Control as a Service

I’ve been doing software development for my friend Erik for a while now. It’s been going well, but I’m sort of bound by time constraints (I have a day job and kids, as well as commitments to developing my art in music and origami) and he’s been budget bound (small business owner). We worked out an arrangement to trade studio time for software development, but since my record is nearly done so is that deal. Erik had the idea to begin outsourcing the development, which would put me in the role of architect/designer/team lead and (potentially/hypothetically) triple our output as far as software dev productivity goes.

As a prerequisite to sharing the code, we needed to get the project under source control. I remember a few months back my friend Nick blogging about how to set up a GIT server. I thought this might be something I could do, but what a time suck and a hassle. As it turns out Erik is a big believer in the whole software-as-service thing. He’s using a service (odesk.com) to line up offshore developers, and he’s even trying to convince to use a service to help on my next album.

The thing is, he’s not really into my drum sounds, which is not too surprising, since they’re all redended MIDI parts, jammed using the four-finger method and/or step recorded by yours truly. They sound a heck of a lot better than say They Might Be Giants, who used a similar technique back in the day, but fall short of a really good real drummer. And the cymbals in particular are a bit thin samplewise. So Erik is like, “Man, somewhere out there is a drummer who’s just killer, who will nail your tracks and bring a whole new level of energy. You send him a file of your song, and he’ll send you back an amazing drum part.” And this really sounds not far from the truth. I’ve had good experiences collaborating over the net with my brother to create our last album, and on this album with my friend John, who’s just recently hung out a shingle to do mastering as a service over the internet.

As to the question of source control, Erik had a friend who turned us onto source-control-as-a-service at cvsdude.com, a.k.a Codesion. The cost is pretty low — on the level of your basic web hosting service, and they have an admin interface to let you set up source repositories, bug/feature tracking, and to add users and set access control. Totally worth it as far as the time it saved for me not having to do all that by hand. I was able to fairly quickly create a repository, upload the source, and set up version control in my IDE on another machine to confirm it works as advertised, then checkout the source, make some changes and commit the new version. So it’s all humming along quite nicely.

Of course the project up to now has just been living on my local machine, so there’s a whole cycle of organization, cleanup and documentation ahead before some third party developer can jump in. And the other thing is, before y’all get all drooling over the idea that the day of software-as-a-service has really arrived, Codesion is still just another scrappy startup trying to get by like the rest of us. At first I was taken in by their slick web interface and their more-human-than-human support/sales bot, but the illusion was soon shattered. I had signed up for a trial account to see if they were legit, and then Erik went ahead and creates a permanent account. The problem is, for some reason (like a flaw in their database design) they don’t’ allow the same email address on two different accounts, so every time I tried to log in I got an error and a nastygram from their server to my inbox. Their tech support cleared it up by nerfing my trial account, but this is disappointing because at some point I’d like to get the Foldinator under version control, but I don’t want to get a new email address just to appease these guys.

Summer’s Here and the Time is Right

The season has progressed to full on summer. Finally made it to a long weekend, a much deserved and needed break after rather chaotic spell at work. Been trying to get our software release out the door, filling in for my boss who was on vacation, as well as running things since our project manager was gone too. Dealing with uncooperative directors of other projects, and that all-time favorite of software development, fixing other people’s bugs. Well all’s well that ends well I suppose and we met our deadline.

We went upstate to see Martin and Kathleen and Charlie over the weekend. Very nice hang. Went swimming, which was great for my back; the first time since the winter it really felt good. Unfortunately the car ride home undid that. We also watched the Queen open the British parliament on CSPAN. This was pretty random, but the girls are Anglophiliac these days because of Harry Potter, so we thought they like to see a real Queen in action commanding the Lords and Commons. The weirdest part was when the chief constable shouted “Hats off, strangers” before the Queen entered Parliament, predicted beforehand by a very blasé announcer.

I did some research into the wacky traditions of British government, and learned some interesting factoids. There is a movement afoot to replace the phrase “strangers” with “visitors” to be less anachronistic. The word strangers dates from the time of Cromwell. Smoking in parliament was banned in 1696, although snuff is available to all members at the public expense. Wearing of armor was banned in 1313. There’s a list of words banned from discourse that includes “blackguard”, “git”, and “traitor”.

Here’s some pictures from my yard and garden from 2 or 3 weeks back. The roses and fig tree are doing awesome, and we even have some ripe strawberries.

ZMP Site Update

If you’ve been clicking around my site recently, you may have noticed another round of changes in the ongoing redesign. I’ve been converting more pages to php to take advantage of modular inclusion of subpage elements. I’ve updated these too, with a new navigation element which the header and footer include by reference. I’ve taken steps towards a more modularized and visually streamline page style. All that’s left to go for this round is including these new elements in the blog home page.

The next round of work will further parameterize the pages styles to the point where I can change around the styles of the pages without having to touch the page code. After that is fully parameterized, template driven, on the fly page generation, but that may still be a ways off.

Workin’ Man’s Blues

I haven’t posted in a while. Last week I was feeling pretty burned out and dragged down by life and work in particular. In younger days this may have precipitated a semi-major existential crisis, but I’ve learned I usually just needed to unwind and catch up my rest, so I spent my evenings last week watching a movie or going to bed early rather than trying to get stuff done.

You may remember the management consultants skulking around my office a while back. Our corporate overlords want us to learn Agile since they don’t really understand software development or how to manage it. It should be said that we’ve been doing Agile for a few years now and we’re actually pretty good at it, and as far as it goes Agile is fine, but it’s not the be-all and end-all. The cultishness surrounding it is pretty silly and tiresome, and of course the problems in our organization have nothing to do with us not “doing Agile right”.

Nevertheless, the consultants were prized for their supposed Agile expertise. When they around to interview me I mentioned that I’ve seen a lot of management fads come and go. (Humans have been working together for more than 6000 years, so the idea that suddenly the One True Way of Project Management has been divined is kind of absurd.) We had several meetings in which developers raised legit issues about or process and the limitations of Agile, and the consultants gave us weak and unsatisfactory answers. Then they went off and wrote up a report and it’s been circulating our department. The consensus was that it was about 1/3 okay but that part was so generic they could have pasted it in from some web site, about 1/3 dead wrong, and 1/3 complete bullshit that couldn’t even be evaluated for correctness. Among the gems it contained was the bullet point “Developers think that Agile may be a management fad.” which is of course true, and if you reduce this to its essence, they have a problem with the fact that “developers think”.

My boss and the other tech directors, and basically everyone who read it had the same reaction, a combination of disgust and outrage. Even the VP’s of project management who commissioned the report were embarrassed to stand behind it. So they set up a meeting with the consultants and basically went over the report point by point tore them apart. I’d imagine that’s not the end of it, but it makes me feel better after having my professionalism slagged by some clueless wonks. One positive thing that was in the offing anyway is that we have a new VP to oversee our group and sibling projects. He made a good first impression on me and is well regarded by people who’ve worked with him. He’s now the new boss of the Bad Manager, so that will go a long way to solving that problem.

On top of this, we had to get a release of our product out the door last week. We just finished a major launch, and this was pretty much an unexpected follow-on to accomdate a new client. The Bad Manager wanted the release “immediately” so we had to call a meeting to explain to him what it all it would take to build, deploy and test the app. It’s a few days work, partly because we’re doing alot of the deploy stuff for the first time, and partly to allow for a full QA. At one point I’m enumerating the steps to the Bad Manager, and he says “Somebody ought to be writing this down.” So I handed him a pen and pad of paper. Yeesh.

Friday I stayed home from work because Michelle had to get a tooth pulled. I was totally burnt out, so it was just as well. She had a baby tooth that was fused to her jaw, so it was nontrivial surgery. I drove so Jeannie could hold Michelle’s hand in the backseat of the car. We’d known she’d need this for quite some time and Jeannie has been really dreading it. But it turned out not to be so bad. The tooth’s root had begun to dissolve and the x-ray didn’t look anywhere near as scary as the one from a year ago. The doctor and nurse were very nice and put Michelle at ease and the operation took only maybe a half hour. She was kind of woozy afterwards no major pain over the weekend.

So shaw’nuff life gets better. We had a fantastic weekend with beautiful weather. Took care of the yardwork, went skating, feeling rested again. The highlight was Jeannie and I went into the city last night to celebrate our friend Lisa’s birthday. (Lisa it’s your birthday, happy birthday Lisa.) We went to some crazy trendy Japanese restaurant in Chelsea. Fantastic food and drink and a really good time.