Skip to content

Lots of rain, but at least…

We’ve been the recipients of a Pineapple Express in the Bay Area this week; with the possible exception of Monday, I think it at least sprinkled every day this past week. And some days we got some pretty serious downpours. We’re out of drought conditions here, so that’s good. But I must confess that I’m getting a little tired of all the rain.

There are some upsides, though. Aside from getting us out of drought (which is always good) and refilling our reservoirs, most days we’ve had a series of showers and rain spells rather than a steady, ongoing rain (although we’ve had some of that too). That’s meant a lot of rainbows. I happened to catch this one while working near a window at Google today, but I’ve seen four or five others on different days over the last couple of weeks.

Pork chops with peanut-guajillo sauce

We almost never make pork chops; my wife isn’t really a fan. But I received Milk Street’s Tuesday Nights cookbook (highly recommended) as a Christmas gift, and we’ve been working our way through some of the recipes that haven’t appeared in the magazine (also highly recommended). I do like pork chops, so I was curious to try their pork chops with peanut-guajillo sauce recipe (I’m also a fan of peanuts, toasted guajillo peppers, and chili powder).

The meal turned out very well; the chops were tender and the sauce was very tasty (and it also went well with the roasted potatoes we had as a side). As a bonus, the recipe makes enough sauce that you can really use it across two meals, so we’ll be making this recipe again soon.

I do find it interesting to see the difference in ingredients between the average Milk Street recipe and the average Cooks Illustrated recipe. Both feature staples like garlic, cumin, coriander, chili pepper, etc. But Milk Street seems to be very big on grated ginger, honey, paprika, miso, and agave syrup (among others). I put it down to the stronger Asian influence on Milk Street recipes. And I appreciate the difference; we’d been finding fewer and fewer interesting things to cook in Cooks Illustrated, but we regularly find new recipes we like in Milk Street.

Kotlin after two months

I’ve been using Kotlin at work for roughly two months now, doing most of my prototyping in it. I wouldn’t say that I’m fully acclimatized yet; I haven’t yet acquired habits that allow me to fully leverage the language’s capabilities (what is the Kotlin adjective that’s equivalent to Pythonic, anyway? Kotlinesque?). But I’m sufficiently fluent that I can quickly knock out experimental prototypes without having to keep going back to the language reference.

Overall switching to Kotlin has been a positive experience, and I’d recommend that anyone doing Android development switch to it over Java (particularly since you can still take advantage of all the Java libraries thanks to interoperability).

But there are a couple of things about the language that are a little irritating, particularly when I’m coding up prototyping that are exploratory and that I’ll eventually throw away. And the reason is that Kotlin is structured to help developers avoid making errors:

  • You need to explicitly declare that a variable can be null, and if it can be null, then anytime you use it you need to verify that it’s not currently null. That approach makes null pointer exceptions much less likely.
  • You need to initialize variables when you declare them, so that you don’t accidentally access them before you initialize them.
  • You need to explicitly coerce your types; no implicit coercion between integers and floats for you. That can be useful to help make sure you’re assigning the right values to the right variables.

But while those characteristics are useful for writing production code, they can be annoying when writing throwaway prototype code. Yes, my variable pointing to some View in my Android prototype might be null. I know it’s not. I’m willing to risk the null pointer crash in a throwaway prototype. And Views in Android? Not available when you instantiate an Activity or Fragment; you have to wait until Android gets around to actually creating them at some point after instantiating your class. That makes initializing some of your variables problematic. And when experimenting with interactions I’m often switching between pixels (integers) and interaction coordinates (floats). I’d like automatic coercion from integers to floats in exchange for my agreeing that I’ve voided my warranty.

So Kotlin isn’t perfect. But then again, no language is. And like I said, it’s preferable to Java. The first time I could doOnEnd {} to an animator (something I need to do all the time), I was totally sold. So you should definitely consider the switch too. Just remember to explicitly coerce your types.

Back to Alcatraz

Six years after our initial visit we finally made it back to Alcatraz. My wife’s father was in town, and since he’s interested in all sorts of history we took him to Alcatraz. We still didn’t manage to make it to the island early (our daughter had her first cavity filling, so we couldn’t catch a boat until the afternoon), but with the partial government shutdown I think they’d canceled all the walking tours anyway. Maybe next time (and I still think it’d be fun to do a night tour).

Visiting the island is still fun: history, views of the bay, nature and wildlife. This time my daughter decided to get her own audio guide; last time she didn’t grab one, but then ended up monopolizing my wife’s shortly into the tour. So this time both of them got to enjoy the whole audio tour.

The cost of repairs

My front derailleur cable started to fray last week, so this week I took advantage of Google’s on-site bike repair (they have a couple of providers, and I went through The Bike Doctor because I’ve gotten good service from them before).

I’ve only had to get my bike repaired a few times in the 10+ years I’ve owned it (a few frayed cables, replacing my brakes), and every time I’m reminded that one of the many benefits of riding your bike to work is the cost savings versus driving.

In California it costs me rough $40 to fill up my car with gas. An oil change typically costs $60. A tune-up plus associated small repairs? A couple hundred.

Replacing the cable on my bike and getting a general tune-up in the process? $70 and change. And that’ll pretty much keep me for another year or so, if previous patterns hold.

It’s good to bike to work.

iTunes on Samsung TVs

File this one under “Things I did not see coming”: Apple signed a deal with Samsung to include iTunes on newer Samsung TVs.

Makes sense in retrospect: if Apple is really trying to push Services revenue, allowing people to watch iTunes content on more devices is a logical approach. Still, it’s interesting to see Apple going with a software licensing deal rather than pushing their own hardware; I wonder what the Apple TV team thinks about the move?

Christmas in California

When people think of what Christmas looks like, they invariably think of lots of snow and pine trees. The stereotypical White Christmas. But when you live in California (unless you’re in the mountains), this is more what Christmas looks like: green grass, blue sky, the occasional palm tree.

For Christmas this year we had 60 degree weather, so we ended up going for a bike ride to get out of the house for a bit and enjoy the sun. We biked up the Stevens Creek Trail and then swung over to Google, since it makes a good spot to pause before turning around. There was a bit of a cool breeze, so I ended up being glad I brought my biking jacket. But otherwise the weather was great.

Having grown up in New York, I do occasional miss snow at Christmas. There’s something enjoyable about being surrounded by snow when you can hunker down in a warm, bright house. But I don’t miss traveling in snow (and ice); that just sucks. So I’ll take our warm, sunny winter weather and enjoy how it makes it easy to go places over the break.