Dream of Californication

Just got back from a trip to PCOC, the Pacific Coast Origami Conference in San Francisco, and along with it a fantastic vacation in California.  Last time we visited the Bay Area was almost fourteen years ago.  Oh oh, what I want to know is, where does the time go?

Jeannie and I flew out from New York on Friday night.  Last few times we flew I’ve felt pretty anxious about the whole airport thing, but this time I’ve been so busy with work the last couple months, it was actually a big relief to be hanging around waiting for our flight.  

We stayed the first couple of days at a hotel on the peninsula that we knew from previous trips. It was a cute place with a courtyard and giant pots of succulent plants.  Saturday we met up with my friend Dazza, who lives in Oakland.  He took us to a park near his home with a lake and a very cool botanical garden with all kinds of plants you don’t see back east, and in the middle of that a bonsai garden with carefully grown miniature trees, some of them hundreds of years old.  We went back to his place, in a condo complex with all kinds of fun amenities, then out to eat at a really good oriental place with yummy dishes featuring great big rice noodle.  I must say, Oakland has become trendy and quite nice since we lived in the bay area in the ’90s, much like Brooklyn.  Or maybe I just never had been to the nice parts of Oakland before.

That afternoon we helped Dazza out on a very special beer run.  He had ordered several cases of a Polish porter, that apparently is very hard to get, from a wine shop in San Mateo back on the peninsula.  So we gave him a lift out there to pick it up.  After that we took Dazza for a drive around our old haunts in Silicon Valley in Palo Alto and Redwood City.  We went for a hike up to the radio telescope in Parcel B at Stanford, and then a drive-by tour of the office park where Interval Research Corporation used to be, right near the HP campus.  Strangely, there’s now camper vans and RVs parked all along Page Mill Road and El Camino Real.  One of the most rich and prosperous places in the history of the world full of people living in their vans.  At the end we went back to our hotel and Dazza shared a few porter ales with us and we talked on into the night.

Sunday Jeannie and I went up Skyline Road to Sky Londa intending to go for a hike at Windy Hill for a hike.  But as the day unfolded it turned rainy.  We did a short wet hike up to the summit the view obscured by clouds, and not the long winding one we had in mind.  Apparently it was the first rain of the fall.  The day before we noticed all the hillsides were yellow with dry grass, a hue you don’t see in the landscapes at home.  Since we were already up in the mountains, we thought we’d cross over and see the ocean, where it was not raining.  But, being the first rain of the season, there was an accident up ahead (apparently a very bad one, judging from the number of ambulances and fire trucks that passed us), so the road was closed and we had to turn around.  There’s only a few roads over the coastal mountains, so we went up to the next one twenty miles away, but it was backed up with traffic too.  So we decided instead to light out for our next destination, Lake Tahoe up in the Sierra Nevada Mountains, one of our favorite places in California.  It was raining pretty heavy for most of the trip, all the way past Sacramento and a ways up into the mountains.  In case you’ve never been there, the Sierras are way bigger than anything on the east coast.  The pass over the mountains is above 7,000 feet, and the mountaintops are well over 10,000.

We stayed at a really charming hotel right on the beach, and since it was off season they upgraded us to a suite with a fireplace and view of the lake.  Very nice.  There was a restaurant in walking distance out on a pier with a view of the sunset over the lake.  We were still kinda on east coast time, so next morning we watched the sun come up over the lake from our hotel room.  We took a walk on the beach, where I found a massive pinecone from a ponderosa pine, which must have just fallen and washed up on the shore.  The main activity of the day was to hike up to Eagle Lake in the Desolation Wilderness Area, above Emerald Bay.  This is beautiful forest and mountains with great views.   It was a pretty big hike, over 3 hours, and 800 feet vertical, about 5 miles of very rocky terrain.  Afterwards we went into town to the area of the base of the Heavenly gondola, right near the Nevada border, which is all built up compared to last time we were there.  That evening we went to the casino, but the scene there was beat.

Next day we drove to Yosemite National Park, another one of our favorite places in California.  This was another long drive thru the mountains.  We took the back way thru Nevada, past Lake Mead where Kamasi Washington did one of his album covers.  The last half of the trip was into Yosemite via Tioga Pass, which gets above 10,000 feet.  We stopped at a scenic overlook where you could see Half Dome far away.  We have a picture from that spot with the kids when they were 10 and 7 or so, last time we passed that way.  After alot more driving thru winding mountain roads we arrived at Mariposa Grove, home of the giant sequoia redwoods.  These are the larges trees in the world, and grow over 300 feet tall and over 30 feet across at the base.  They’re thousands of years old.

We had expected to get lunch there, but instead things were under construction and there was no food, the road was closed, the parking was two miles away and the tram wasn’t running.  I guess it’s good that they’re redoing access to the area with an eye toward forest conservation, but it added 4 miles and several hundred vertical feet to the hike.  By the time we reached the area where the parking lot used to be, Jeannie was pretty tired and had to sit down for a while.  Luckily, we met some kind fellow travelers who shared some trail mix with us, and our energy rebounded.  We got to talking and the dude was a Consumer Reports super fan, and was asking me about the auctions they have for the used cars they test, and if I could get him in on it.  The redwoods themselves were amazing and the whole glade had spiritual vibe that reminded me of La Familia Cathedral in Barcelona.  The kind of thing you just can’t capture in photographs.  Overall the hike was about 4 hours, 6 miles and over 600 feet vertical, but not nearly as stony. 

We were staying at the Yosemite Valle Lodge, and the was another hour drive back the way we came (Yosemite is huge).  This is the first time we stayed in the park in a building with solid walls and running water.  By the time we got there it was dark.  Had excellent cocktails and steak and wine at the bar and restaurant there. The breakfast place had for some reason computerized kiosks where you order food instead of telling a person what you want.  However, some food was not on the menu, so when I wanted a banana they just gave me one cuz no one could figure out how much it cost or how to pay for it.  I can hardly wait for the fad of having computers everywhere in situations where human interaction works perfectly well breaks and starts to recede.

Anyway, the main hike that day was up the valley towards Vernal Falls and Nevada falls. Interestingly, the first mile or two of the trail was paved, which made it faster.  Last time we were here it was pretty natural, dirt with some stony sections.  The middle part was still like this.  The last part before the falls was a huge uplift that was mainly stairs made of hewn and stacked up natural rock, a serious Cirith Ungol vibe, but in a beautiful forest, not an orc-infested wasteland.  Naturally, going down was harder than going up.  This was the longest hike yet, over 7 miles and nearly 1400 feet vertical.  

Next day we left the mountains and drove back to San Francisco.  This was the most adventuresome drive yet, another long and windy one, with one memorable section descending several thousand feet in just a few miles.  Had to go like ten miles per hours thru endless switchbacks.  I feel like this may be where they filmed the opening scene of It’s a Mad Mad Mad Mad World.  We made it safely back across the central valley and thru the Livermore Pass (the windmills have grown quite a bit in the last twenty years) and finally over the bay.  We made another attempt to get out to the ocean and this time we were successful.  We went out to Half Moon bay, where we found a burrito place and got our lunch to go, and ate yummy California burritos on the beach.  We walked around a while and stuck our toes in the Pacific, then drove up the US 1 coastal highway thru Pacifica to San Francisco.  We dropped off our rental car and checked into the hotel for the origami convention, and immediately met some friends in the lobby.

But that’s a whole ‘nuther adventure.

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.