Liftin’n’Shiftin’

After what feels like and endless amount of effort, I’ve finally migrated my web site to a new host.  The site had outgrown its old host, and the hosting company was absolutely terrible with their costumer service and trying guide me to an upgraded tier of hosting, so it was time to move on.

Ideally, everything would appear and function as it did before.  But I was in the middle of doing some upgrades to various parts of the site and some things have gotten out of sync, so if you click around you may find the occasional broken link or missing image.  I hope to rectify this soon.

The major area of concern right now it this blog.  You may notice the its styling has changed.  Not that it was particularly beautiful before, but at least it matched the rest of the site.  I was able to migrate the blog content, but it had been using a customized version of a very old theme and I was not able to migrate that.  So I picked something in the ballpark, and will have to do some new customization it.  Plus whatever widgets and config setting need to be brought up to date.  Then it’s reviewing all the old posts to make sure the links and media are correct there.  Hope it doesn’t take too long.

I’ve also begun putting together foto galleries for 2023, as is my habit in late winter.  2023 was a huge year for travel, with three major airplane trips and lots of other stuff.  I’m halfway thru the year, up to our big trip to Italy last July, which will be a bunch of galleries by itself.  So watch this space for updates coming soon.

Meanwhile, it seems winter is over by spring has not yet begun.  We got one more ski trip in the last weekend of February, but conditions were not great and the mountain was crowded with kids on winter break skiing in all random directions.  One cut me off at the bottom of a run and I had to swerve to avoid running him over, and ended up falling.  Ugh.  After that the weather turned warm and rainy, so unless we get a major late-season snowstorm, it looks like we’ll have to wait for it to turn nice enough to start biking and doing things outside.

A Season of Darkness

It’s been a few weeks since my last post.  Nothing really exciting going on.  Been getting ready for the holidays.  Put up our tree, sent out our Christmas cards.  We saw the new Miyazaki movie.  It was amazing but he’s totally lost his mind.  Lizzy was home for a visit for a couple weeks ago with her new boyfriend.  They saw my origami elephants at the tree in the Museum of Natural History in Manhattan.  Both girls will be home for the holidays soon.  I’ve been trying to wind down work for the year, and been thinking about old friends I miss, and how I’d like to make the time to see people.  Luckily, the plan for the end of the year is pretty laid back, so it looks like there’ll be some time for that.

It feels like it’s been dark all the time the last few weeks.  Only a few hours of tepid daylight before the sun sets in the mid-afternoon. At least the weather has been mainly pretty mild, even warm, and there’s been a handful of sunny days mixed in with the cloudiness and rain.  Been trying the get psyched up for skiing, but it’s not time yet. 

We did go ice skating the other day, which was lots of fun, and good exercise.  I haven’t been on my ice skates in years, and neither has Jeannie.  It’s good to know our skates still fit and we remember how to skate.  We’ll have to do that again soon, hopefully when it’s less crowded.  It seemed like I spent all my time maneuvering around a kid who fell over in front of me, pretty much every lap around the rink.

Even though my energy level has been up and down, my strength is up these days.  Usually the winter is a difficult time for weightlifting, but it’s been really solid since we got back from California.  My elbow, shoulder and back all feel great, and I just went up in weight on my last few sets of exercises, and I’m going to up on the rest in the new year.  

I’ve been trying to lean in to the season by getting more sleep, and although I must say I’ve never been good at going to be early, I find it easier these days. But try as I might, I remain very busy at work right up to the end of the week, which makes it hard to slack off too much. We’re into a new planning season, and things are always in motion.  I compare myself to water seeking its natural level as I slosh around to the most needful tasks from day to day. Good news, I may have just gotten approval to add another engineer to my team.

And, just in time for the holidays, The Global Jukebox 3.0.1 is now live.  This release was basically a hardening of 3.0, with numerous bug fixes and usability enhancements, an a beautiful new splash screen when you enter the app.

I’ve also been working on a new song, called Head Downtown, and there may a Spacecats record in the offing.  More on that next.

The Global Jukebox 3.0 is Live!

With all the craziness going on around these days, I’m very happy to announce The Global Jukebox 3.0 is live. You can see it at:

https://theglobaljukebox.org

It’s a big release with alot of new stuff. One is that the whole map interface has changed. This we necessitated by mapbox, whose map software we use, sunsetting their old api and introducing an all-new, completely different one. Our map is very complex with lot of data, lots of layers, and different kinds of visualizations, animations and styles on top of it, so this involved a pretty deep restructuring of the code. The original goal was feature parity, but as we got into it, we realized the new api offered affordances with should take advantage of. First was the the map tile load much quicker, and panning and zooming around the map are much smoother, so a bunch of tricks we had to compensate for the shortcomings of the old map could just be thrown out. Another is the new map api supports 3-D projection, with one possible mode being a globe instead of a flat map. We redesigned the visual experience to take advantage of that. The fully zoomed back view allows you to model an atmosphere and background starfield, and even make the Earth turn, so that was fun. Zoomed in, it resembles the previous flat map, but with a great, seamless zoom-in transition. At the end we redesigned the app’s landing page to show off the globe and freshen up the design style.

The other big new feature the introduction of routes, that allow for a unique url for every app state. This in turn allows for sharing links, moving and forward back thru the app, generating a spiderable sitemap so all our songs, cultures, journeys, etc., will show up when google for those things. It turns out the app states are numerous, and sometimes deep and complicated, with lots of edge cases and corner cases. Previously this had been a single page app, so this work required us the think thru all the various states and how they can stack and compound and transition from one to the another. Additionally, the whole app is basically built out of bespoke javascript, so we couldn’t just drop in a framework and retrofit around it. We built our own, of course following best practices for good design patterns.

Martin and I have working the last six month or so on this, with Martin mainly doing the routes and me mainly doing the map. It was a big lift, and I must say he is a great partner to work with. Compared to a lot of software engineers I’ve worked with, I care alot about code quality, not just for it’s own sake, but for extensibility, readability, correct logic, names and abstractions, and very low bug rate. And Martin was right there with me, reasoning things thru, puzzling out thorny problems as the arose, and being patient and meticulous with quality control and attention to detail. I guess it helps that we learned to program computers together as kids, and have similar attitudes and sensibilities as to what make good software and what make a software project worth doing.

And of course I must acknowledge our project director Anna Lomax Wood, without whom none of this would be possible. Her deep knowledge of world folk music and cultural anthropology, her intelligence and positive attitude are all big guiding lights. It’s an honor and a privilege to work her. Kudos too to Kiki who, although has been pretty light-touch on this project recently, has contributed in numerous way including project management, organization, visual and UX design, devops, creating and formatting content, metadata, audio assets, and generally running things over at the Association of Cultural Equity.

Next up, The Global Jukebox 3.1. Stay tuned!

Cadence and Cascade

Over the last month I’ve been really busy with our product launch at work.  The name of the project is Permission Slip, and at its heart is an app that acts as an agent for people excising their online privacy rights.  

The main app is on ios, with a brand-new version now on android, and a backend made in python/django and postgres.  The main development was contracted out to an external software house in Canada.  There’s been some churn over there, and we’re on the third round of managers and engineers. I’ve been doing tech leadership with the team, which coming to the end meant lots of code reviews, acquiring credentials for all the different systems, coordinating with the product and marketing teams, and with apple and google, and doing develops, CI/CD, setting up pipelines from github to our deploy servers. Lots of extra drama about goggle ad tags, goggle auth keys, and back’n’forth with legal over the privacy policy.  And oh yeah, building the web site.  

Building the web site was actually kinda cool and fun, if not for the deadline pressure. Got to learn about QR codes, and do some nice responsive mobile layout in CSS.  By the end of the last week we were in QA, fixing bugs to the very last minute.  We did a pre-launch deploy of the web site and backend, and submitted the app to the apple and google stores.  Everything came together and went fine and there were no bugs or glitches.  Monday we got approved and for sale on google (the ios app already was released) and updated the web site with the goggle links.  We were live, and could take a deep breath of relief.

Tuesday morning our app went live with the “true launch”.  The marketing push included an article in the Washington Post, and on NPR.  Around 11:30 in the morning the app is getting slow due to heavy and we start investigating.

The app had previously gone thru a beta phase, then a soft launch last winter, and we had about 12,000 users.  In about six hours we had over 20,000 new users.  Two days later we were above 50,000.  That was our goal for the whole year.  Over the weekend we passed 100,000.

Being deployed on the cloud, we scaled up our app dynos and added workers, and migrated the DB to a container with 4x the ram.  Investigating, we discovered that the database was the critical bottleneck.  We looked at what are the heaviest queries in terms of both invoked the most often and most expensive to run, and began optimizing the code there and pushing new changes on the backend into production.  Amazingly, all this actually worked, and within a few hours the mischief was managed and things were trending back to normal.  It took until after midnight to get all the loose ends tidied up.  A long day that started with panic, but ended with a big victory.  Being more popular than expected by an order of magnitude is a good problem to have.

Over the next few days we reviewed all the patches we made, and deeper, more robust fixes where necessary.  We were able to deploy and roll back the commits one at a time to really understand the performance impact.  I’m certainly glad now I spent time upfront to develop a deploy pipeline integrated with our code repo; it really paid off.  A few months ago the devs were just deploying from their local dev environments, that would’ve been a huge disaster.  I’m also happy about having in metrics and analytics in place that gave use info we could use and respond to with code changes in real time.  Most of all, I’m very impresses with how everyone on the team came together in problem solving mode and got it done quickly and effectively.

You should know that my job is running a software R&D group within the company.  We have a peer group, that’s more directly tasked with commercialization and productization of R&D projects, and indeed they worked closely with us on the marketing and other things.  But they lost a few key people in the tech and leadership areas in the last few months, so we had to do what was necessary on our own.  And, like I said, we made twice the target number of new users for the year in just three days.  Happily, now our corporate enterprise department wants to migrate our app into their infrastructure, so down the road my team won’t have to worry about devOps and can get back to doing R&D.

That was just one adventure last week.  The second was that it was time to make the class schedule for the upcoming Pacific Coast Origami Conference, happening in San Francisco at the end of October.  This has actually gotten fairly routine.  The tool that Robert Land and I build it working and stable, with the latest round of improvements making it easier to match teachers that want A/V equipment to classrooms that have it.  Also this convention is alot smaller than the OUSA New York Convention in June.  Still the work is over a weekend and tends to be late and night, and there’s always some last minute changes, shuffling, and special considerations to be accommodated.  Anyway, we got it completed without any problems.

Also over the weekend we took a trip up to Buffalo to visit my parents and my kids. It was a pretty quick trip, we drove up Friday night and home Sunday night.  Saturday we visited Michelle on campus, saw her new apartment, which is quite nice, walked around the campus and later went out to dinner at Pizza Plant at Canal Side.  Pizza Plant used to be one of our favorite places when Jeannie and I were dating.  It’s nice that they’re still around and their food is yummy.  Sunday we watched the Bills game with my parents, which for some strange reason was being played in England, where they have an entirely different game called football, and was on at nine in the morning.  After that Lizzy came over for dinner and we all enjoyed and nice afternoon.  And wouldn’t you know, it was rainy on the drive up and home again.

In other news, we’re closing in on the release date for The Global Jukebox 3.0, and I’ve turned the corner from tacking to mixing on my song A Plague of Frogs.  Today I layered up a nice fat, 80’s style synth sound for the part called “Synth 1”, using an analog lead sound, synth brass and strings.

Super Blue

Lest all y’all think life these days is all going to see bands and fun trips to beaches and mountains, I’ve actually been busy with the software thing this whole time too.  A couple of big project milestones in my day job.  Firstly one of my projects, the Data Rights Protocol, has reached version 0.9 and we’re entering the initial deployment phase, which involves passing live data end-to-end among consortium members to implement actionable consumer data rights requests. Meanwhile, we also put up a new web site where you can learn all about it at:

https://datarightsprotocol.org

Second, another project of mine, Permission Slip, is going live with version 2.0 of our this week, including an all-new android version of the app. And there’s a new web site for this one too:

https://permissionslipcr.com

Finally, we’re getting very close to releasing version 3.0 of the Global Jukebox.  This is a major rev I’ve been working on for months with Martin.  One big new features is an all-new map visualization that starts with a spinning globe, and is much more powerful, flexible and performant than the old one.  The other big thing is the app now has routes to express the app state as a unique url.  Each of these was a big lift, and we’re now in the final phases of QA and tweaking the styles and messaging on the landing page.  So watch this space for an announcement sometime soon.  But for now you can get a sneak peak on our staging site at:

https://stage.theglobaljukebox.org

In the world outside of work, it’s been one of the rainiest Septembers I’ve ever experienced. Three out of the last four weeks it’s rained some or most or even all of the weekend, were’ talking epic, heavy, ark-building rains here, to the point where I’ve only gotten out on my bike one Sunday the whole month for a big ride, and not at all for a weekday evening in the last two weeks.  The days are getting shorter faster, so soon the opportunity for a ride after work will be gone.  

As luck would have it, we did go out to see another concert last weekend.  It was Superblue, a funk-fueled collaboration between Kurt Elling and Charlie Hunter, at Poisson Rouge in Greenwich Village.  Poisson Rouge turned out to be a pretty nice club, although the waiters were kinda disorganized and incredibly slow.  The band itself was great.  The opening act was the horn section from the main group, backed by a different rhythm section.  They were really fun, funky and entertaining.  At one point the trumpet player switched to tuba and the trombone player to beatboxing, leaving just the sax player.  They did a Stevie Wonder medley which was just mind blowing.

The main act was most excellent too.  Charlie Hunter plays a guitar with extra strings and an octave effect so it functions as both the bass and the guitar for the group.  Needless to say his technique is innovative and incredible, but he spent most of his time in the pocket, just groovin’ and grinnin’.  Kurt himself was great, picking diverse source material such as “Naughty Number Nine” from Schoolhouse Rock, delivering them with powerful, soulful phrasing, and interjecting philosophical soliloquies a la Elwood Blues. 

Just yesterday we were supposed to see yet another shoe, Tuck and Patti at the Irridium, but it got cancelled due to the weather.  There were such heavy rains and flooding in New York City that the seals in the Central Park Zoo escaped their enclosure and were were freely swimming/sliding around the whole zoo.  I guess they went back on their own without having to be rounded up.

Permission Slip by Consumer Reports Nominated for a Webby Award

For the second time in my career, my project has been nominated for a Webby Award. The first time was back in 2008, when the internet was still cool, and I worked at Nick.com, where I helped build groundbreaking apps such as Nicktropolis and Turbonick. Our main competition that year was canihazacheezeburger.com, and believe it or not we won.

This year the project is Permission Slip (https://permissionslipcr.com), a mobile app to help people take back control of their personal data online, inspired by California’s Consumer Privacy Protection Act (CCPA) which defines compliance measures a company must undertake when a consumer requests the exercise of their privacy rights.

As lead engineer on the project and of the Innovation Lab at Consumer Reports, I’m especially gratified that we’re nominated in the category of Technical Achievement. Of course I’m part of a pretty large, and very intelligent, creative, knowledgeable and otherwise awesome team. And sometimes it feels like a large part of my job is just going to meetings and telling everyone my opinions. But I guess that actually is an important job.

Anyway, you can vote here, until the end of the week:

Vote now for: Apps & Software – Technical Achievement (https://vote.webbyawards.com/PublicVoting#/2023/apps-dapps-and-software/app-features/technical-achievement)

Vote now for: Apps & Software – Public Service & Activism (https://vote.webbyawards.com/PublicVoting#/2023/apps-dapps-and-software/general-apps/public-service-activism)

Good Day Sunshine

Early spring continues to get springier.  Last Friday I finished up raking the yard, filling up three more big bags of leaves and debris.  This morning the town came and picked it all up, so it’s on to the next task.

Sunday morning I took my ’67 Mustang out for the first drive of the season.  I’m happy to say it started right up, and sounded and felt good on the highway.  Woo-hoo!

Then Sunday afternoon Jeannie and I went for a bike ride.  Last summer we started doing bike rides on local trails around the area, but we only did a few.  This year, I figured since we had such a good ski season, I want to do something athletic the rest of the year too.  So we’re starting early in the spring (just two weeks ago we were still on our skis) and hope to get a regular pattern going.  This one was just over ten kilometers, in about an hour.  Nothing too huge, but not bad for the first time out. 

I also finished a longstanding software development project, adding some sort functionality to the class scheduling tool for conventions on the Origami USA web site.  This was a rather drawn out endeavor because it’s built in PHP on an old version of Drupal, and the whole dev environment is an enormous pain in the neck.   The overhead of keeping the site running locally is non trivial:  updates from the git repo, managing the dependencies, updating the scripts to sync the database and media assets, it’s all a major headache and time suck, and there are breaking changes from time to time.  All this is before one can even start writing code.  So I’m pretty happy it’s done with.  Well, maybe one more tiny change.  Robert Lang, who is OUSA’s web master and the only person who really understands how the site works, helped me drag it over the finish line, so thanks to him for that.

Meanwhile, my origami stellated icosahedron is coming along.  I’ve finished pre-creasing on the smaller one, and on the larger on I collapsed it halfway, then unfolded to reinforce the valance of all the existing creases to make it hold its shape better, and refolded it.  All that’s left is to fold the lock.  I’m thinking I’m going to wetfold this one when it’s done, since it’s folded from Elephant Hide and it will hold its shape amazingly after that.

In other news Nicolas Terry has started selling Elephant Hide paper in large sheets of previously unavailable colors on his web site, so I ordered a whole bunch.

Finally, my new song, In the Purple Circus is almost finished.  It’s basically a prog metal song, so naturally I added a tenor sax part.  It came out totally wailing, channeling some Michael Brecker energy, screeching and growling in the high altissimo rang, up to the fourth C#.  The next day I added a bari sax way down low to reinforce the tenor, and blend with the overtones of the subsonic bass synthesizer.  Now it’s pretty much down to the final mix, which I hope to share soon.

First There is a Mountain

We’re back home again and busy with work and other things.  Seems like everything is happening all at once.

First it’s finally ski season.  A week ago we went skiing again up at Catamount.  They have night skiing, which is perfect for us.  It starts at 3pm so you don’t have to get up super early to get there, instead we can get all our chores done Saturday morning and then go.  When we arrive alot of the day skiers are leaving, so it’s easy to get a good parking spot and the lifts and slope get less and less crowded the longer you stay.  You have a few hours of daylight to ski in – now the days are getting longer faster – then you can go in and take a break with a cup of cocoa and come out again for the night session.

A week ago the conditions were warm and icy, but we figured we might not get another shot so we went for it.  After a while found that Mountain View was a pretty good trail and we stayed on that.  We quit after ten runs and met our fried Seth for dinner.

This last weekend it started to snow Saturday morning, just a dusting, but it made us feel hopeful, so we figured we’d go up again and try our luck.  At first it was pretty icy, but snow started falling until there was fresh powder everywhere.  There was a magical moment where suddenly everything was beautiful and the skis felt great and you could really get a good groove going and the mountain was comin’ ’round.  So we stayed out there almost until they closed, a total of eighteen runs. Walter’s Way was the favorite run.

This was three times skiing this season, tying our record last year. We’re still hoping to do an overnight trip a bit further north in two weeks, with bigger mountains and more snow.

In other news, I’ve been working out some new origami ideas since I’ve gotten back from my trip.  I’ve never really explored the icosahedron geometry, even though I mentioned it in my talk.  It’s much easier than the dodecahedron; you can use a triangle grid in a hexagon sheet.  I have two variations I’m working on.  One is a dimpled icosahedron.  It looks kinda like a soccer ball with a pattern of hexagons and pentagons, but the pentagons are dented in.  The other is a stellated icosahedron, where each triangular face of the base shape is replaced with a pyramid.  I did a study of this pattern embedded on a dome back in Bogota, and the design approach causes a set of really cool looking sunken star shapes to emerged between the facets.  Now I’m expanding the pattern to a full sheet so I can close the bottom and the full solid shape.  I have the crease patterns all worked out.  Now it’s just a matter of practicing and perfecting the lock, and then finding some suitable sheets of paper for the final models.  

Next, the Global Jukebox project has sprung back to life.  Anna made a deal to license a bunch of Alan Lomax’s recordings, and now she has a budget again, which injects lots of new energy.  However, I now have a full time day job again, so I can only commit so much time.  I brought Martin in as a subcontractor/partner so we can share the workload.  So far it’s going great.  It’s fun having a collaborator, and new ideas and all.  For onboarding I had him go thru the test script and he spotted alot of minor issues in neglected corners.  We upgraded all our processes including document sharing, getting full-stack local dev environments spun up, and using branches and pull requests in git.  Now we’re all ramped up and the real meat of the work begins.  We have a full year’s roadmap ahead, so more on this as we publish new releases.

Lastly, I’ve gotten back to the home studio recording project the last few weeks.  I’m tracking the vocals for two songs, In the Purple Circus and A Plague of Frogs.  Both have rather challenging parts that use a large range, with big interval jumps, and have some tricky phrasing too, and need to be delivered with some gusto and drama.  I didn’t really think about how it would be to sing them when I wrote the lyrics and melodies.  So I have to work them up.  Also, right now I’m getting over a cold so my voice is not at its strongest. The high notes are a bit thin and scratchy and low notes note always in tune..  Ah well, it’s good to rehearse.  Each session I get a little surer and more expressive.

And … it’s snowing here tonight, and it looks like will be the first real snowfall of the season down here.  That means mo’ better snow up away from the coast.  If there’s no rain the next few days we’ll probably go back to Catamount again this weekend.

Shine a Light

It’s been another busy couple of weeks.  A week ago, Buffalo NY, where alot of my family lives, got a once-in-ten-years level snowstorm, with my parents in Orchard Park getting six feet of snow.  Up in Amherst they only got a foot or so, but it complicated plans for people coming home for Thanksgiving, especially for my niece and nephew whose trains got cancelled.

In the end, everyone made it home safe and sound, and we had a very enjoyable Thanksgiving. We hosted seventeen people and Jeannie made a most excellent stuffed turkey dinner.  Spent the rest of the weekend listening to music, mainly classic live albums, and playing games like Ticket to Ride and Quirkle with Lizzy and Michelle.

I also finished some home improvement projects.  The big one was was to replace the light fixture in our kitchen ceiling, which blew out right around the end of the summer.  It was an old florescent light in the form of a square wooden box with plexiglas diffuser.  It first I I investigated the possibility of replacing just the socket and electric components.  Once it became clear that wouldn’t work, the quest for a new lamp became a full-blown research project.  We finally settled on one we liked, a broad, shallow frosted glass dome with traditional light sockets that could take modern LED bulbs.  We ordered from a local showroom, but it took several weeks to arrive, and by that I was folding like a madman in preparation for our origami conventions.

Back home again a couple weeks later, I pulled off the old fixture.  I had planned on having to paint the area that had covered because the new light is smaller.  What I didn’t count on was that the old fixture was screwed directly to the ceiling, and there was just a hole where the cup for the wiring and structural support was supposed to be.  So I had to cut a hole in the drywall, buy and install the mounting hardware to the framing of the house, put back the drywall pieces, fill in the gaps, and sand and paint it.  This added considerable time to the job, especially since the ceiling needed two coats of paint.  I ended up finally installing the new lamp Thanksgiving morning, with Jeannie urging me along so we could switch the power back on in the kitchen and she could put the turkey in the oven!

I didn’t quite match the ceiling paint, but it’s pretty close. Lizzy, who works for Sherwin Williams, was very helpful in recommending a mini roller and pan kit; I din’t know they made such a thing.  She also gave me a deck of all their color chips, so hopefully I can do a better job matching next time.

Oh, and, the week before Thanksgiving was a big one for milestones at the Innovation Lab at Consumer Reports.  Here are a couple of press releases about two projects of mine.

https://digital-lab.consumerreports.org/2022/11/16/introducing-permission-slip/

https://digital-lab.consumerreports.org/2022/11/15/osiraa-release-announcement/