Summer Fun Part Duex

Since I’ve been feeling better the last few weeks I’ve been trying to enjoy what’s left of the summer. Last weekend I took Michelle to the Cradle of Aviation Museum on Long Island. This was the first airplane museum we’ve visited since our trip to Ohio. It’s a pretty cool place, featuring mainly locally built planes from the World War I era and the space race. Not as big as the Smithsonian or Wright-Patterson, but first rate. We met Mary and the cousins there and it was a good time. Michelle still really into seeing and learning about airplanes (and still wants to grow up to design airplanes and spaceships, or videogames).

By coincidence there was a videogame convention going there that day too. At first this seemed a little nerdy even for me, but it turned out to be a really fun bonus. There was a ton of classic videogames, vendors, even cosplay babes. Michelle was to see an original Atari condole and play the classic E.T. game. They had an amazing band, called Con-Soul, with a six piece horn section (two trumpets, two trombones, alto and bari sax), a synth mallet player, drums and fender bass. They played all video game music, with the format of doing a horn arrangement of the main themes and going into a funk/jazz jam. Very cool.

Then one night last week Mary’s came up and went with Jeannie and the girls to Rye Playland. I joined them after work mainly for a walk around the park.

I’ve been working really hard the last month or so to meet a deadline at work. Going back to work in the evenings and weekends, and all the while trying to focus on my health. It’s not easy keeping a huge amount of code in your mind and tends to take over your imagination a little bit. Kinda stressful but I try to be zen about it. Two days ago I finished and made probably the largest single commit since I’ve been writing software, at least 60 files in four different languages, into both the trunk and the release branch. So that’s a huge load off my mind and I can relax a little.

Last night I went to sit in with my friend Charlie’s band. It’s a happy hour gig at a little cafe right on the waterfront in downtown Yonkers where there’s a little park and everything. Great spot to watch the sun go down over river and sip your drink and listen to some jazz. We did some standards like Impressions, Footprints, There Will Never Be Another You, and All of Me. Felt great just to let go and be in the moment.

The Unfinished Work of Alan Lomax’s Global Jukebox

The paper of record, the New York Times, wrote another, pretty in-depth article, about my project The Global Jukebox:

We just pushed a big upgrade to correspond with this article, and as it points out, the jukebox is a work in progress. It started off as a short-term contract gig for me, but I’ve been involved for over a year now. We have another major upgrade slated for the fall, and beyond that, if we can get funding, the scope is open-ended.

The Global Jukebox Is Live!

Last week while I was away the Global Jukebox was finally debut. Come check it out at:

I’ve been working on this project for over a year as lead developer, designer and architect, working with Anna Lomax Wood and her research associates Karan and Kathleen, as well as other scholars, statisticians and developers, even bring in Martin the last few months. It’s been alot of fun and very cool piece of work.

For those of you who don’t know, the Global Jukebox is an interactive showcase for a comprehensive library of world folk music and cultural data assembled by music scholar and anthropologist Alan Lomax. Beginning in Texas and Mississippi the 1930’s, Alan went all around the world, from the Caribbean to all over Africa and Europe, the far East, and even Buffalo, NY, building up a comprehensive library of folk music from all different cultures. He then created a scientific framework, called Cantometrics, to compare the characteristics of the music and the relationship between the music and the culture. The results are very revealing about who we are as a species and why humans make music.

The Global Jukebox was the Alan Lomax’s lifelong vision and the culmination of his life’s work and scholarship. He began working on it 1960’s using punch cards, and I first became aware of it in the 1990’s while writing interactive music software at Interval Research. Now, many years later the computer technology finally exists to present it to the world and in interactive resource for educators, researchers and lay people who care about music.

We’ve been getting lots of press, beginning with the New York Times. Looks like we’re over 700,000 page views now. See the links below.–1719827

Springin’ in the Slush

March sure came in like a lion this year. After a very mild 2nd half of February it turned cold and we had two major back-to-back snowstorms on Saturday and then Tuesday. Jeannie and the kids ended up missing two days of work/school, while I worked at home in between shovelling out. Now we’re well on the way to having melted away but hey, it’s already the third day of spring. And it’s back to the cold in the days a head.

The kids have been busy with shows and performances. The first weekend of March Lizzy had her school musical called The Boyfriend, in which twenty-first century high school kids pretend to be British thespians from the 1950’s pretending to be French debutantes of the 1920’s. Lots of fun, good cartoon-jazz music and dancing the Charleston.

Next weekend after the Michelle performed in the Lower Westchester Honor Band. Highlights included A Night on Bald Mountain and The Firebird, as well as lots of epicly-titled selections such as Fight Squadron A, Alien Attack, and THe Final Countdown.

And then a couple nights ago both girls sang in the Young at Arts Salon. This is an annual fundraiser in which the people who run the group call in favors from some of their Broadway friends to come and participate. Lizzy had a featured solo alongside the woman who is currently playing Princess Jasmine in Alladin on Broadway. I helped set up the PA the Saturday before.

Now Lizzy is in rehearsals helping out as a ringer with a prodcution of The Hunchback of Notre Dame at another local high school. She’s the only soprano who can hit and sustain the really high notes.

Meanwhile my band LEFT HOOK is playing this Saturday night at Fisherman’s net in Pelham. Lots of exciting new songs including some 80’s Australian power pop as well as all your rock’n’soul favorites.

And my Saturday jazz group is up to 10 originals. Gary keeps writing more bossa novas and latin-oriented stuff, and Jay the bassist contributed a great, slow bluesey number in 5/4 called slope. I have one more song we haven’t even gotten to yet.

The global jukebox is almost, almost, almost done, after sixteen month’s work. Just a few more tweaks and minor bug fixes and final testing. Then we’ll take a couple weeks off and start in on Phase II, which is shaping up to be another year’s work. Very cool stuff, very psyched for the launch.

Meanwhile in my day job we just moved offices to a much larger and nicer space in downtown White Plains. More on that in a future post.

Steppin’ into Spring

It looks like spring may be just around the corner. It’s been warm and sunny lately, at least for February, and the day are getting longer. It used to bother me all winter to have to get up before the sunrise but this year it seemed okay. I’ve gotten into the habit of working out early mornings, so when the sun comes up it’s sometime in my workout, a little earlier each day. I had had a rather bad foot injury over the winter, but it looks like it’s pretty much better. I’m taking longer and longer walks and I’m back to doing my full workout in the mornings, which feels good.

I worked from home quite a few days while I was recovering but now I’m back to going into the office every day. At work we’re at the top end of a big push for improving our code quality, which I’ve been pushing for, as we make the transition from a startup to a more mature company. We set up a unit testing framework for our front-end javascript project and have been going to town writing unit tests and getting our coverage up. Fun fun fun.

Turn Turn Turn

Life continues as we turn the corner towards fall. Vacations are over and another school year has started.

We often go the beach at Ocean City MD over Labor Day weekend, but this year there was a hurricane barreling up the coast from Carolina, and the weather report was for heavy rains and gale-force winds, so we ended up cancelling the trip. Still we had a nice relaxing weekend, and went out to dinner on the water on Long Island Sound. Lizzy got to work a couple more days at the pool and ended the summer with some extra cash, and got to practice driving too. Michelle got to go the Renaissance Fair with her Aunt and cousins, and afterward we had them all over for one last barbecue.

I spent some of my found time dusting off Elixr, my long-neglected three-quarters completed third Buzzy Tonic album. Been tracking the bass part for what will probably be the last song, Leave the City Behind. I have other songs that I haven’t even begun to track, but I’ll probably save them for a future record. Hopefully I can finish this one by the end of the year. After that, seeing as I now have a working rock band and a real live jazz band too, I want to figure out a way to record some of my songs with real musicians.

But for now I’m going back and listening and mixing, adding the occasional part to round out an arrangement. I’ve been putting autotune on the vocals too. (Shhh, Don’t tell anyone!) Autotune has come a long way since the days of Believe, and the default mode makes it easy to manipulate while still sounding natural. It basically brings it about halfway to true pitch, so there’s still room for tremolo and tonal effects, everything sounds a bit more in tune, kinda like quantizing my midi piano parts for tighter phrasing. So far I have four new mixes out of the eight finished tunes. So watch this space for some new mixes soon.

Now the kids are back in school again. Lizzy is a Senior and Michelle 8th grade; both are really excited. Lizzy is driving to school now (!). I had been thinking of getting her an old jalopy of a car since her commute is so long by train. Then thru a lucky turn of events we got a much nicer car then we originally planned. Only problem with is was the bumper had had a close encounter with a garage door and repainted the wrong color. Today I sprayed it with the correct matching shade and now you can hardly even tell. Other random good news: Jeanne got promotion at work, and a raise big enough to cover the hike in our car insurance.

The last couple weeks at work have been pretty mellow for me. I took a couple Fridays off, and alot of people were gone a whole week, and then at the end of August our management was all out in Vegas for the year’s most important trade show. And as a former trade show exhibit designer, let me tell you we had a very cool booth! The software engineers had all been scrambling like mad to get a sufficiently stable and polished demo of the new UI out for the show. Apparently it’s a hit. Then last week we got to catch our breath, and do some refactoring, bug fixes, and planning.

Now we’re at the top of another big long run of work. The goal is to have a fully functional new UI by the end of the year. Google will no longer support Flex and Flash in chrome, so we need to retire our old one. When we were told this back at the beginning of the summer I thought it was well nigh impossible, but we’ve made alot of really good progress over the summer, and it looks pretty doable from here. Meanwhile we’re also rearchitecting the backend of our product to be modular, distributed and scalable, and to be able to handle a million computers in our system.

2015 Origami Part II

Quick update here – I finished off the pages for my 2015 origami, including the landing pages for Origami By Year and Origami By Subject, as well as all the subject pages that needed updating. I split the Air and Space category into two categories – Air and Space – since I now have so many models in that zone. And, keeping with the trend, the landing pages are now mobile-first responsive, just like everything else on the site, so they ought to look good on your tablet or phone.

The convention is coming up and I’ve been folding some new stuff. I’ve expanded my Flowerball idea into different tessellations and different polyhedra. I’ve been concentrating on the Archimedean solids, with the faces yielding flowers decorated with 6- and 8-petal flowers. I’ve got about four weeks to the convention, so we’ll see how far we get with this idea, and if we have time for something else too.

2015 Origami

It’s been a while since I’ve had a chance to update my web site. One thing I’ve been meaning to do since the New Year is update the origami section with the 2015 models. Now the convention is coming up and I want to have some new things, so I feel the need to finish with the old. 2015 was a banner year for me, with 24 new models. And I even got decent pictures of most of ’em. The main theme is a book’s worth of airplanes and spaceships, and the others are a series of explorations into the intersection of tessellations, single-sheet polyhedra, and representationalism. I’m make a bunch of new models in this theme right now. Hoping to branch out from flower to insects and reptiles.

Still to come on the website is the corresponding updates to the subject page and thumbnails page. While I’m at it I’m gonna reflow the thumbnails to be mobile-first responsive. Meanwhile enjoy a year’s worth of new models:

Caught in the Devil’s Bargain

After a year of successfully avoiding real work I finally succumbed to peer pressure and got a legit day job. So far the new place seems cool in alot of ways. They’re a software and technology startup, but big enough to have offices in several cities around the world including one in Manhattan and one out here in the ‘burbs, pretty close to my house, and I’ve be alternating between the two. They have a mature product and the focus is on sales and growth and making our stuff scalable. I’ve been brought in to lead the front-end development on version 2.0 of the product. Most important to me is their line of work. They’re in cloud computing, a bit of a niche market right now, but they’re ahead of the curve and my feeling is that in the next few years everyone is going to need this technology. Our clients already include Verizon, Barclays and Cisco, with more coming on every week. Hello yacht!

But before I get into the new gig, and I should wait until the warm fuzzy glow wears off, I want to reflect on the whole process of finding a job in {{current year}}. Actually I just want to rant about the hubris of your average potential employer. I am a software architect, engineer, designer and developer with 25 years of professional experience, and 40 years total creating software. (I started programming computers when I was 8 years old, the same year I started playing saxophone and doing origami). Believe me I’m at a pretty high level. I’m a world-class developer, the mythical 10x contributor, and my skills extend well beyond the technical into many other areas. Last time I was on the market looking for work was 12 years ago. I’ve switched jobs a few times in that interval, but only because someone I know and trust invited me to join them somewhere. In fact this is only the second or third time I’ve looked for a job in the traditional way. So this is a rare opportunity for some lucky enterprise.

At the start my main goal was to take some time off and explore what’s out there, so I largely let the mountain come to me. Recruiters would cold call constantly, and I’d reply if it seemed like a promising place. They operate in a weird world of sales, and you would not believe the number of bullshit startups out there doing “something around social media and big data”, or something equally dumbass. The software industry was very wild-west in the 90’s, but now it’s become something much worse, more borglike. Most places are run by greedy pointy-head bankers and their henchmen middle managers whose goal it is to pretend that people are interchangeable “resources”. It’s up to the individual to fight the good fight.

The process is designed to put all the risk on the side of the employee. They constantly seek to put you in box and at a disadvantage. Most places require a technical interview, which is fine, cuz they need a way to figure out if you know your shit. But many places aren’t good at this at all, cuz they don’t know their shit. They get hung up on stupid minutia like language syntax, or ask you to middle-school level problems like bizz-buzz. Some places, like Google, do an online session, which is better, but only if they put a guy on it who can communicate articulately and has a clear grasp of the English language. In any event they have no way of judging what makes a great developer at higher levels, so they focus on passable according to some arbitrary metric at lower levels.

In lieu of that some places have a take-home project. I’ve seen a few where they expect you to write a full-on web application with a bulleted list of requirements. I don’t know how they can expect to attract quality talent with an approach like this. My time is valuable, so anything that takes more than an hour or so needs to be compensated. I sure as hell ain’t gonna do a whole day’s work for someone on spec, especially some vaporware outfit I’ve never heard of. In these cases I’d tell them politely I’d expect to paid at my usual consulting rate. They’d either quietly go away or respond with some self-righteous bullshit. Never did one say yeah, it’s only fair, I’ll pay you for a day’s work. I mean would you ask a dentist to show up for a day and pull some teeth, or a lawyer to spend a day in court?

All of this is a signal that the prospective employer doesn’t really know what they’re looking for, can’t recognize talent when they see it, aren’t interested in bringing you on in a relationship of mutual respect, and honestly aren’t serious about filling the position or probably even running their company.

The worst of all of these was America Online. Yes, believe it or not they’re still around, trying to re-invent themselves as a content destination. I don’t know why I accepted the interview, mainly out of curiosity. They were across the street from where I went to school at NYU/ITP, in a trendy loft in Greenwich Village. But when I got there it was a miserable overcrowded open plan office like a sweatshop. It was so noisy I couldn’t imagine how anyone could get any work done. They were all walking ’round with tombstones in their eyes. They guy who would be my boss didn’t even bother showing up, just phoned it in. Another guy, a really fat developer, asked me “Our motto here is work hard, play hard, what does that mean to you?” They had a booth there like a mini TV studio where they did webcasts. The day I was there the guest was some porn star who’d written a book (I’m guessing she had a ghost writer). To top it off, their project and technology seemed interesting at first, but once I started asking questions about it it became clear the whole thing was a horrible hack built in grunt in the worst possible way.

I actually applied for a few jobs on my own, when I came across something interesting, usually prompted by a fit of frustration at the absurdity or it all, and these turned out to be where all the serious leads were at. I had four job offers that were worth considering, and the interviews all had this in common: pretty much as soon as I got there, within minutes, they stopped asking about toy problems and started asking how I would solve the real business and technology problems they had in front of them, although they usually wouldn’t let on that they’d made that transition. This of course led to much richer and more interesting discussions, and as soon as I perceived what was up I knew this place had potential.

In fact my first assignment at my new gig is to implement the solution I sketched out 10 minutes into my interview.

Global Jukebox Update

I’ve been doing tons of work on the Global Jukebox recently, adding new features like Journeys and Learnings, and continuing fix up and modularize the codebase, trying to get things tight for a deadline to give a demo. We had an unexpected monkey wrench last week when the Smithsonian Institution reneged on an agreement they had to let us use a bunch of Alan Lomax’s own recordings to which they hold the copyright. They wanted to charge the project hundreds of dollars per song, for around 1000 songs. Doesn’t really seem in keeping with the public spirit of an institution supported by our tax dollars.

As a workaround someone suggested we embed a spotify player, since the songs in question are available for free on spotify. I did some research and it turns out Spotify has an API that allows you to do such a thing, so I made a little proof of concept where their player appears in our app. One downside is the user needs a spotify account the hear the music. If they don’t they’ll be prompted to create and account, which is free, so that’s not too bad. The other downside is that spotify is not aware of our song coding system, so for every song one of the graduate assistants needs to find the song in spotify, get the embed code and enter into our database to associate it with the correct song. Then I need to write some code check if that embed code is there when I load song data and bring up the spotify player with the correct code. I sure hope spotify doesn’t change their API once we get this up and running.

I got the news from Anna that the demo was today and it went very well. Hopefully this will lead to more visibility and funding for the project. Meanwhile I’m at a point where there are alot of loose ends to finish off ASAP and a bunch of new stuff on the horizon.

As I’ve been refactoring the old code and trying to keep things from breaking as I go, I’ve been giving alot of thought to Javascript as a language and the web application as an environment. I started programming in Javascript in the 90’s when it was still in its infancy, and working in JS was a mess to generally be avoided. Well Javascript has grown up alot, and while it still has some pretty deep flaws, I’ve come to feel it’s time to come to get to know it on it’s own terms and stop thinking of it as a broken version of Java. For example, maybe it’s not bad that there aren’t any classes or strong typing, and maybe it’s good that everything is just an object.

I bought a whole bunch of books recently and have read the first few. It turns out I already reinvented a few best-practice JS design patterns on my own, including self-executing functions with closures to model class-like objects with private and public methods. One author compares JS to the so called “classical” languages, and speaks of classically-trained programmers. I had this aha moment in jazz, playing a Gm7 chord without a G voiced anywhere, and realizing that’s something a classically-trained musician wouldn’t do. Unfortunately no one in the group is into programming languages, so I couldn’t really share my epiphany.

In any event it’s time to unlearn. I’m trying to reevaluate JS from a functional programming perspective. I’ve had some exposure to Lisp and Smalltalk and more recently Scala (which ironically compiles to the JVM), so I’m trying to step back and see things from a broader, more fundamental perspective. Which of course is not that easy when you’re trying fix up someone else’s mess so you can build new features on top of it to meet a deadline, but that’s the life of a software engineer. Hopefully I’ll have thought things thru enough to have something to share in a near-future post.