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.

Global Jukebox Update

The Global Jukebox project is far enough along that I can share some screen grabs. The basic features are in place and I’ve completed a pretty comprehensive first pass at applying styles to everything. Behind the scenes the song play tracking is largely in place, which is a prereq for go-live. There’s still some UI details to attend to, as well as some ongoing refactoring, but now the focus is transitioning to building out the next round of features, including Choreomterics and Journeys. You can learn more here:


All quiet on the western front. It’s getting into the second half of winter and I’m starting to feel hopeful about spring. Lizzy is in Switzerland. Michelle got her braces off the other day.

I’m working from home these days, and I must say for the most part it suits me. My health is better then it’s been the last few winters. No getting up before daylight to stand out on the train platform in the bitter cold. No colds or flu, no back or leg pain.

I’m still rehabilitating my shoulder. I can do all the exercises I used to before I injured it, pushups and free weights, but on bench press I’ve plataeued, and every time I try and add weight it starts to hurt, so I go back down and wait a few weeks to try again. This last time the soreness went away faster and I’m ready to try again after only a week.

I have a pullup bar that sets up in a doorframe, and I’ve been using it in the doorway of wizard room (the closet under the stairs) for like 2 years. The other day the molding there cracked, so now I’m thinking about how to rebuild it stronger.

OTOH with working from home there’s less human contact. I’ve been getting out on the weekends, to dinner and the movies (Star Wars) for Jeannie’s birthday, to a party at Nick’s, and surprisingly saw a really good jazz group at a fundraiser at Michelle’s school. The band director is an amazing drummer, especially at Latin jazz.

For Valentine’s day I took Jeannie out to a local restaurant, Infusion, that I’ve passed by hundreds of times but never went in. But then I found out the bass player Jay from my Saturday jazz group was playing there with a guy on vibes as a duo. It turned out to be a very nice place, classy, dimly lit, with very good quasi-French food. They seated us right up near the band so I was able to suggest a few songs: My Romance, My Funny Valentine, All the Things You Are, that kind of thing. They were really good. Just the perfect thing, and a really pleasant surprise.

Before I found out about Jay’s gig the plan was to go to Burke’s bar, where LEFT HOOK is playing next week, to check the place out. So we went there afterwards for a drink of two. It’s a pretty big place, a step up from the joints we’ve been playing. The calamari is yummy and they got lots of different beers. They have a nice big stage, but we still have to bring our own PA. I don’t think they had a band that night cuz it was pretty dead. I’m sure bitter cold snap was keeping people home.

The Global Jukebox project is coming along. There was a bit of a crisis a couple weeks ago cuz they’d used up the money for my initial contract but we were only about halfway thru the projected work. By the end of the first week we were already several weeks behind schedule, as we discovered that the database needed some serious work, the codebase I was taking over was a mess, and there were lots of little things they’d need to go live that they’d never thought of. Growing pains getting from a prototype to a product. Like I said, they’re not software engineers. But they found some more cash and were able to extend the project a few more months, and they’re working on getting funding for a whole year. I hope it comes thru. They have alot of great ideas and I’d really love to be able to do it right.

I finished a major milestone build last week. Done the first major round of refactoring and getting the core features in place. Still lots of little cleanup and loose ends, but I hope to have something sharable soon.

I’ve also been learning Python and Django (the D is silent), since our database guy has limited availability and there’s lots to do on that side.

Believe it or not I’m still negotiating with my publisher about the origami airplanes and spaceships book. I thought for a while it was totally dead, but now it may happen after all. The point of contention was the graphics they want printed on the paper. I have a pretty strong idea of what I want and what I don’t. My feeling generally is that it should be pretty minimalist and not detract from the folded form. After they saw my samples they thought it’d be a useful guide, but wanted to have their staff graphics guy do the graphics, and to add insult they want to pay him out of my advance.

Then the sample graphics they sent me were a travesty. It was not my model, and not for my book, but it was a picture of a very cartoony robot slapped on a sheet of paper that didn’t look like anything like a robot to begin with. It looked like they reinvented the back cover of Mad Magazine!

So I said no way, I’ll do the book my own way and get another publisher. Then they decided they wanted to negotiate. First they agreed to pay their graphics guy out of their share. Then I said I’d only go with them if they gave me some sample graphics for my models and I approve of them. Surprisingly they agreed. So that’s where we are now, waiting for them to produce some graphics.

I’ve been thinking of buying a new synthesizer. It turns out Moog is making reissues of their classic analog synths, but with modern components and with midi and digital control/memory/recall. You can get a full-stack modular moog a la Keith Emerson for a mere $35,000, not including keyboard, ribbon controller, extra modules, etc. Or you can get a modern day MiniMoog for about a grand.

BTW, I learned the other day the original voice of R2D2 was an ARP 2600 synthesizer, one of the first “semi-modulars”. It also appears on a bunch of Rush albums beginning with 2112, and on Edgar Winter’s Free Ride, which my rock group learned and then abandoned because it was too high for our singer.

So in closing, here’s a reminder that LEFT HOOK has a gig coming up a week at Burke’s Bar. We learned 5 new (keeper) tunes including Sledgehammer by Peter Gabriel and Beginnings by Chicago. Very rockin’!