Saturday, May 17, 2025

Japan 2025 - Trip Report

This is an overview of our family's trip to Japan in April 2025, originating from Seattle.

Rather than social media highlights (of which we have posted plenty), this is focused on learnings, tips, and other practical advice that can help others planning similar trips.

TL;DR

Seattle -> Tokyo. Two adults, two children (10, 12 yo).
4 nights in Kyoto. 6 nights in Tokyo.
$19,000 USD: including $5500 for flights, $5200 for accommodations, $1800 for major transit, and $2600 for pre-booked tours and resort passes.

Rating: FIVE STARS! A+++ would travel again. This was our first big post-COVID trip, and arguably the biggest trip we've done since having kids, and went better than we could have hoped.


Key tips:
  • Plan in advance, at least four months out. The economical and most convenient flight/hotel options fill up early. Some major tourist attractions fill reservations three months in advance.
  • If possible, plan your desired itinerary, then fill hotels and flights to match. We ended up doing this backwards, and had to book some very expensive Shinkansen rides to hit certain attractions (notably Ghibli Park out of Nagoya).
    (note: even with all our Shinkansen use, the JR Rail pass would only barely break even on cost).
  • Pack small. Wheeled suitcases are ubiquitous in Japan, but travel becomes more difficult with multiple or oversized bags. Large bags are discouraged on local transit, long-distance rail has only limited luggage space, and even the largest taxis are the size of a compact American car.
  • While credit cards work at larger facilities, cash is still prevalent for smaller shops, street vendors, and arcades. Always carry some 100¥ coins for gachapon and vending machines.
  • You can get cash from an ATM, and for me the exchange rate was better by about 3% to just charge directly in JPY vs whatever the local device's USD conversion was offering.
  • Almost nobody outside of tour operators could speak a word of English, even in tourist areas. While street signs were often in English, details (eg. food menus) often weren't. Get comfortable communicating in hand gestures and pointing at menus. Get some practice in Google Translate and Google Lens, as you will rely on them frequently
  • If you're ever stuck, Uber works in Japan! Waits were short, and having both navigation and payment covered in the app avoids communication challenges. Uber also offers options for big (for Japan) vans, which are what you will need if you have even moderate amounts of luggage. 

Daily Overview

Day 0

Woke up on departure day to a notice of a two hour flight delay from Japan Airlines. While an extra two hours certainly eases some stress on the departure, this actually meant some problems for arrival as we were planning to travel from Narita to Kyoto on our first afternoon. This pushed those plans firmly into our first evening, meaning our airport transfer, our Shinkansen tickets, and our hotel arrival were all too early!

However we were breathing a sigh of relief - we had previously debated whether it would have been more convenient to book a commuter flight from Narita to one of the Osaka airports. That plan would have unrecoverable with a two hour delay. Whereas rebooking the Shinkansen a day in advance was no problem.

It's been awhile since we've done international travel. Two free checked bags, proper meals, complimentary drinks. It brought me back to the glory days of air travel from my youth I so fondly remember.

Day 1 (and a lot of background)

We arrived in Narita airport Terminal 2 about 5:30pm on Friday. We had left a good 90 minute window to exit the airport (by revised schedule), but I think it only took us about 30 minutes to clear customs. There was almost zero line.

The first hiccup was the "Visit Japan Web" website. By pre-filling the form, you can in theory scan a QR code and not fill in any other immigration information. This does allow you to check in additional travelers. Maybe it was operator error, but even adding our entire family only generated a single QR code. Through Google Translate, the immigration officer was quite insistent that we needed FOUR QR codes, so we had to go back and fill in paper forms. But no problems after that.

Next was customs, where we addressed the elephant in the room, ADHD Medication. Stimulants are VERY illegal in Japan. Thankfully Vyvanse is considered "Stimulants Raw Materials" - still prohibited, but you can request an exception through the Narcotics Control Department. The idea of sending a weird form full of medical data to an email address on a poorly-written website seemed crazy, but it works exactly as intended. It took about four days to get a confirmation from NCD. They were pretty strict - I had to retake some photos so they could see every detail on the pill bottles. About a week before departure they sent certificates approving the imports. 

In any case, on the aforementioned Visit Japan Web site, I had to declare "Prohibited Items" (not "Restricted Items"). At least the customs booth accepted our QR code. The prohibited items box raised an eyebrow with the officer, but they seemed to understand pretty quickly when presented the import certificates. They took a brief look at the pill bottles and let us through.

We planned to get Suica cards (stored value tap cards for transit), but the "Welcome Suica" designed for tourists are only sold at very specific locations. This took quite a bit of searching- they were a set of two ATM-sized red vending machines in the train terminal on floor B1, across from the regular ticket machines on the wall. I was able to load all our Suicas using a credit card.

I started with loading 10,000¥ on my Suica card, and probably went through 14,000¥ by the time I was done. This was mostly local transit, and the occasional vending machine or arcade game. Conversely, my 10yo qualified for child rates, and only went through about 7000¥ in total.
Note: the child cards will make a "bird chirp" any time they go through a transit gate. This is a good noise, meaning it has recognized him as a child, and not a warning of any problem.

Then we rode our private towncar, which was thankfully able to accommodate the adjusted schedule. We needed to get to Tokyo Station to take the Shinkansen, but we had been afraid we would not be able to figure out public transit under pressure after a 10 hour flight. The drive took about an hour (it would have been much longer if we had arrived at our original time), and cost 3x what the Narita Express would have. Whether or not it was the right decision this time, now being experienced with rail travel in Japan, I would just use the faster cheaper train system.

In a towncar outside Tokyo Station


By 8:22pm we're on the Tokaido Shinkansen, bound for Kyoto. Despite all the challenges, we were actually still ahead of schedule, so we took a non-reserved car. This is a pretty common mechanism for the longer-distance trains - if you wish to take an earlier or later train, you can simply wait in front of the non-reserved cars and try to get a seat. We never had any problem finding non-reserved seats together, though apparently later in the seasons the demand goes up and they eliminate the non-reserved cars entirely. We had wanted oversized luggage space, but managed to wedge our largest suitcase... creatively... into the overhead bins.

This turned into a theme in all our Shinkansen travel. Booking through Klook is like a travel agent - you make your request, then Klook attempts to find a seat for you. While our weeks-in-advance bookings had no problem getting luggage space, none of our rebookings, even a day in advance, were able to. We had to rely on the overhead bins for all our travel. We would have used the SmartEx app - which would have let us directly reserve seats - but they didn't accept my credit cards.

Now you may wonder... why fly into Narita to travel to Kyoto immediately? Well, travelling from Seattle, the flights are the single largest expense, and the most time-sensitive. So we booked them first, three months in advance. Even then good flight options were quickly disappearing. We figured we'd do Osaka near the end of the trip. It was some weeks later when our research led us to consider Kyoto at all, let alone at the start of the trip. We were only booking hotels weeks later.

In any case, we made it to Kyoto Station, and to our hotel, Mimaru Kyoto Kawaramachi Gojo. Despite being past the 10pm check-in deadline, we simply rang and after-hours bell, and had no problems checking in.

Day 2 - Kyoto (aka. 32000 steps)

This was our main "visit Kyoto day". We had heard that attractions fill up fast, so we booked an early morning walking tour. Admittedly this was pretty painful given our late night arrival - as noted earlier, booking airfare before making an itinerary has consequences. But also perhaps one of the best moments of all our time in Japan. We visited three BEAUTIFUL sites.


Fushimi Inari Shrine

Arashiyama Bamboo Forest

Kinkaku-ji Golden Temple

Even with the early start, the bamboo forest was packed by the time we arrived. The other two sites were only moderately busy.

At this point, the fam went back for some much needed rest, while I snuck off to visit the Suntory Yamazaki distillery. I just wanted to visit the distillery, but to get tickets, I had to do a tour that included the Asahi Art Museum. Roughly translated: rich dude buys a mountain and three Monets to make tourists legs hurt.

But with that out of the way, I got to visit the distillery which did not disappoint. A (very small) museum, leading to a tasting room. The samples cost money, but very economical overall.

Suntory tasting room

My selections for the afternoon


Reuniting in Kyoto, we did our evening Gion tour. This consisted of walking through a night market and temple, but not all that worthwhile as it was literally filled shoulder-to-shoulder. We then wandered the Geisha district; while this was basically equivalent to wandering dark alleys at night, in Japan this is actually quite nice. We did see a few geiko actively working.

Day 3 - Nara and Osaka

Today was a free day, with nothing explicitly booked. This went better than we could have hoped, as we were able to explore at our own pace. We found amazing food, gachapon stores by the dozen, and experienced two good cities.

Tourist trap? Sure. But I wanted to pet deers, and pet deers we certainly did. Travelling from Kyoto to Nara is as easy as any other local subway travel. Then a quick walk to the park, where there were indeed hundreds of deer wandering around.

Deer loose on the sidewalk

It's worth walking a ways in before buying crackers for feeding. The deer closest to the street tended to be very aggressive, and would push or even headbutt if they felt they were being denied their just rewards. The deer farther away from the road would still follow you around, but far less aggressively

We shopped a bit in Nara and grabbed some lunch, but I don't think you need a full day there. We metro'd off to Osaka for the afternoon.

We explored a few places in Osaka, starting at the Pokemon Center, then wandering over to the famous Dotonbori shopping and entertainment district. We discovered our first three-story gachapon stores. We also discovered our first arcade with Taiko no Tatsujin (a drum game), which became a favorite for the rest of the trip.

Just one of five floors of gachapon dispensers in this one Osaka store

We visited an Owl Cafe. Not sure how I feel about this. On one hand, petting owls was a unique experience. But they were literally strapped to their perches in a small room, which didn't feel quite right.


Finally we went to the Final Fantasy 14 Eorzea cafe. Meh. Some game video loops, collectible coasters, and mediocre food. Even by theme cafe standards, it was a little weak.

Day 4 - Super Nintendo World

Believe it or not, the whole origin story of this trip began with the desire to visit Super Nintendo World, at the time a newly announced zone in Universal Studios Japan. Since then, they've also opened a Super Nintendo World in the US, so technically we didn't have to travel to Japan for it anymore.

For the record, I hate Universal Studios. While they undeniably create some of the most intricate and wonderous environments, it's commercialized to a scale far beyond even Disney. Every shop is just a chance to sell more merchandise, more overpriced themed food. Overcrowded until every line is two hours long. Universal Japan combines peak Universal Studios capitalism with Japan's famous theme park crowds. 

We had timed entry to Super Nintendo World, which ended up by lottery at the end of the day, so we didn't even head to Osaka until the afternoon. We decided to do a Japanese pancake breakfast, but realizing: Japan really doesn't do early! Nothing really opens until 10am, and the very few places that do open at 10 are wildly crowded. But with some perseverance we got our pancakes, and then made our way back to Osaka.

Well... back to Universal Studios. It was SO crowded through most of the main throughfares of the park. Never saw a line under 100 minutes. We had a couple of express passes with our entry package, but there wasn't really anything else we could do until it was time to go to Super Nintendo World.

But finally we got into Super Nintendo World. It's split evenly between Mario themed and Donkey Kong themed zones. You buy (of course) an NFC wristband that lets you punch bricks and collect coins. This syncs with the Universal app to track achievements. There's even an ARG where you complete tasks to unlock an exclusive "boss fight" shadow game.

Sadly a very late timed entry and wall-to-wall crowds meant we couldn't quite finish everything before the park closed.

Day 5 - Travel to Tokyo

We had taken the Shinkansen once before, but it was at night and we were wiped out. We got a mid-day trip, and experienced the Shinkansen in its full splendor! I wouldn't quite describe it as a tourist attraction in its own right; it's very much utilitarian for getting from point A to point B, just very very fast.

Hey, at least we saw Mt. Fuji

Checked in at Mimaru Tokyo Station East.

Funny enough, we hadn't actually been to a sushi restaurant at this point. It's actually a bit challenging finding a middle ground between fast food and fine dining omakase when it comes to sushi in Tokyo. Eventually we compromised on Sushiro in Tokyo Station. What a great choice! Sure, it was conveyor belt sushi, but even still it was some of the better sushi I had in my life. And for a family of 4 eating our fill, only $50. 

Day 6 - Tokyo Tour

Before this trip, we were unsure how well the kids would take to a long walking tour. So this was a bus tour, which I think was a nice way to see a large number of neighborhoods. We saw a variety of sites, but also got a sense for the city, and noted some neighborhoods we wanted to return to in future days.

Inside Meiji Jinyu Shrine

About as close as you're getting to the Imperial Palace

Senso-ji Shrine

View from Tokyo Skytree

If doing it again, I would skip the Imperial Palace. It's pretty, but it's basically a flat park, and you see some buildings behind a wall in the distance. Similarly, our tour included a harbor cruise which was completely uninteresting.

Day 7 - DisneySea

One of the two parks on the Tokyo Disney campus. It was good, but also basically what you'd expect from a Disney park. Took over an hour to clear security. We managed a few fast pass reservations, other lines were long, even on a cloudy mid-week morning. But even in a fairly short day, we got five rides in and a few key souvenirs, including some very important popcorn buckets.



Scallop flavored popcorn, not nearly as good as you'd imagine

Crowds and rain led us to leave by 3pm.

In the evening, we decided to check up Akihabara, the famous Tokyo electronics/gaming/anime district. The kids played rhythm games for hours.

Day 8 - Tokyo

We went to Shibuya, mostly to visit the Google office. But here is the Shibuya Scramble, a famously busy intersection.

Visited the Pokemon Cafe. This famously requires hard-to-get reservations, but the standby line certainly didn't look bad in the end, maybe we could have just walked in. The cafe was okay - dancing Pikachu, decent themed food, and lots of memorabilia. It was fine, but maybe not "reserve a month in advance" good.

Not sure I like the implications of this...


Day 9 - Ghibli Park

Despite our best effort, we were unable to obtain Ghibli Museum reservations for Tokyo. However, we found a day tour for "Ghibli Park" instead. We didn't really understand how this worked until we arrived. This is a large public park in a town outside of Nagoya, that happens to run several Ghibli themed attractions. The main attraction is the Grand Warehouse, a warehouse-sized building with Ghibli history exhibits, a small movie to watch, themed rooms, and so on. You could spend a couple of hours in here, but not really an all-day thing day. Around the park was also a Princess Mononoke themed village, a Valley of Witches themed zone. The center of the park is a big public space with performers and food trucks.

Our tour technically included the Museum of Flight, but we ignored this part, abandoned our bus, and made our own way back to Nagoya. The impression I got was that most passengers did the same.

The most expensive part of this trip was that it departed from Nagoya, which is most of the way to Kyoto. Thankfully the Shinkansen took us door-to-door but the round trip between Nagoya and Tokyo ended up costing us $600, which is a pretty steep price to visit a public park.


Ride in the Valley of Witches

When your legs give out, there's Cat Bus


Day 10 - Tokyo
Our first truly "free" day, we had not even considered any plans in advance. I'll admit, by now, we were pretty desperate to slow down the pace a bit. We're not exactly a high-energy family, but this trip had us going full speed for a week straight.

Our first destination was "Cat Cross" in Shinjuku, the famous 3D cat billboard. What I didn't realize is that you hear it too! So there's a giant cat meowing as it knocks fake objects off the building ledge. It's only a few minutes of content before it loops, but it's absolutely worth seeing.



We randomly explored, did some shopping. Sadly our adventure was cut short by a slip and fall in a subway station, so we called it a day.

Day 11 - Departure

We were taking an afternoon flight out, leaving several hours between hotel check-out and when we needed to head to Narita. Because it's so easy to get around Tokyo, we decided to go ahead and hang out in Akihabara for another hour. I visited an electronics store, bringing me back the familiar feeling of a Fry's Electronics in the USA. The prices didn't seem so impressive (though cheaper than the US), but the sheer scale and selection made it a wonder to browse.

This time, we took the Narita Express ("N'EX") train to the airport. Awkwardly it's in like the fifth sub-basement of Tokyo Station, it's a ten minute adventure just getting to the platform. But then it's a comfortable train ride. As comfortable as Shinkansen, but with ample room for even oversized luggage. I'd also argue even more scenic than the Shinkansen as you pass through so many small towns on the way to Narita.

One challenge in Narita was that I was relying on mobile check-in. But all of the boarding passes were on my phone, which is apparently not allowed as each passenger must carry their own pass. Then the check-in kiosk broke down. The (sometimes aggressively) helpful agents quickly helped me get new printed boarding passes and our bags checked. Train-to-gate was about 40 minutes, even with zero lines at security, but would have been much faster for a solo traveller.

Then we went home, a tired but immensely satisfied family! Groggy and dreaming of when we'd visit Japan next.

Monday, October 21, 2024

2024 Washington Election

There's an election in the US, it's a big one. I get to vote, and I'm going to share my thoughts because that's what the Internet is about.

First, let's get this out of the way.

US President / Vice President: Harris / Walz
No seriously, it doesn't matter what your political views are, you need to vote for Harris. Trump has said, done and attempted so many horrible things that I don't even need to bother to list them here - just look at court records if you want the short summary. But there's one thing that can never be forgiven: he full on tried to overthrow the government. If you accept that, you are against democracy. And once democracy gone, it's REALLY hard to get back.


But also, do you bastards even remember how good you had it? I was a passive spectator through two Obama terms, looking on in wonder at the magical progress of the US system. I was so excited for what I had coming up when I naturalized in 2014... but do you know what the hell ticket I had to vote on for the first time? Clinton vs Trump! Are you kidding me? Do you know what sort of bullshit bait-and-switch that was? 

The Harris/Walz ticket is the first ticket I've actually been excited about since I naturalized! Some actual honest good human beings, with some reasonable policy ideas, and the competence to articulate and possibly even execute them. This is the best we've had by far in a very long, dark time. DON'T RUIN THIS FOR ME!

I-2066: Repeal natural gas -> electric incentives
No = incentivize electric, no incentives for natural gas.
Yes = incentivize natural gas, no incentives for electrification.

Both positions are stupid. Natural gas is great. It's cheap, reliable, and high-powered. The environmental impacts of burning natural gas are real but pretty minor - all US stoves equal the pollution of 500k cars (which isn't that many). But electrification is obviously good in the long term - it's easier, safer, and better for the environment to rely on electricity. Trying to hinder electrification is just as bad as blocking natural gas.

Also, both position statements were offensively misleading.

Voting no, but only because, given both options are dumb, I'd rather not lock into a dumb position by initiative.

I-2109: Repeal capital gains tax
No = keep capital gains tax.
Yes = repeal capital gains tax.

Starting at $250k of annual passive gains. Do you have any idea how much stock you need to be holding to get that much capital gains in a year? No, neither do I. And probably never will.

Extra credit for the Yes campaign saying how well funded our education system is, in a year where our schools are cutting services down to the bone just to stay afloat.

NO!

I-2117: Repeal carbon credits system
No = preserve CCA; keep carbon credits, fight climate change, accept things are more expensive.
Yes = remove CCA; get rid of carbon credits, maybe things are cheaper?

We need to do our part to mitigate climate change, and the Climate Commitment Act is not the worst plan I've seen. If we throw up our hands and do nothing (as the initiative suggests), then our kids are probably going to be occupying a dead world before long.

... but on the other hand... yeah, it's a tax. A brutally regressive one. It's hard to tell families that are barely getting by that they need to pay more for gas, more for food, because of some problem decades down the road, while big companies continue to profiteer undeterred.

I'm going no, but I entirely understand and respect why someone would vote yes here.

I-2124: Make Long-Term Care Optional
What is this, long-term care for mayflies*? For the services for which WA Cares is meant to cover, the lifetime coverage of $36k will be exhausted in weeks, not years, and that's already the best possible outcome. The ridiculous one-time lifetime opt-out was terribly managed.

[* I asked Gemini what animal has the shortest lifespan.]

I fully support the idea of a State LTC system, but WA Cares is a dumpster fire, beyond redemption. My only regret is that this initiative only makes it optional, rather than immediately putting it fully out of its misery. But with payroll deductions optional, I expect the system will only live about as long as someone under the care of WA Cares (so, a few months).

YES!

The rest of the races are honestly too boring to speak about. The pattern that emerges, from the Senate race to Congress to even the Washington Governor race is having an established Democrat fighting a "moderate" Republican, with no argument other than "replacing a career politician". The Republican candidates have put themselves into a corner: they have to publicly denounce Trump and support abortion to have any electability in the general, but give up any meaningful way to differentiate themselves from strong incumbents.

This shows up most strongly with Governor candidate Dave Reichert, who has tried to pass himself off as a moderate, but has an awful voting history in Congress, and revealed much of his true thinking about Trump to friendly media.

I voted blue through Secretary of State, then got bored...


Sunday, February 18, 2024

Compy 2024 Edition (Marauder)

It's been 8 years since I built RIFTER, a computer built specifically to power my Oculus CV1. It continues to hold up well despite its age, but I decided it was time to finally catch up to latest generation PC hardware.

So I present: MAURADER.

  • AMD Ryzen 7 7800X3D 4.2 GHz 8-Core Processor
  • Thermalright Phantom Spirit 120 SE 66.17 CFM CPU Cooler
  • Gigabyte B650 AORUS ELITE AX ATX AM5 Motherboard
  • Asus DUAL OC GeForce RTX 4070 SUPER 12 GB Video Card
  • G.Skill Flare X5 32 GB (2 x 16 GB) DDR5-6000 CL30 Memory
  • Crucial T700 W/Heatsink 2 TB M.2-2280 PCIe 5.0 X4 NVME Solid State Drive
  • Corsair RM850e (2023) 850 W 80+ Gold Certified Fully Modular ATX Power Supply
  • Lian Li LANCOOL 216 ATX Mid Tower Case
  • Windows 11 Pro

(yes, I switched from EVE Online names to Battletech names)

My build philosophy was to get delightful gaming performance at a reasonable price, while providing a path for future upgrade. That was why I went with AMD - while Intel is competitive in this type of build, an upcoming socket change from LGA1700 would leave me stranded. Conversely, AM5 will have at least one more good generation. The one concession I made was the Crucial PCIe 5.0 drive. I don't really need something that fast, but storage really makes the difference on the day-to-day computing experience. Conversely, while the RTX 4070 Super may seem aggressively mid, video cards have literally doubled in price since my last build, and I wasn't willing to spend $1000 on a GPU no matter how fast.

The build has worked perfectly! Clean post the very first time. Everything was compatible and connected together.

Everything fits! Even that tall Phantom Spirit cooler has plenty of clearance to the tempered glass. The CPU cooler has clearance to the RAM - one of the fans had to be offset slightly, but that turns out to be a benefit of clip-on fans (I was skeptical at first). Good thing I didn't do the RGB RAM! The M.2 drive and it's built-in heatsink had clearance to both the motherboard and the GPU. 


If anything, I wish I had a shallower case. There's a good 4 inches of completely unused space to the front fans.

The bane of my builds has always been shoddy cases. The LANCOOL is definitely the best case I've ever owned,. My only complaint was the complete lack of instructions or labelling. Trying to match up some weird unlabelled ports (eg. this is the first time I've had a USB-C port), or track the connections to a completely undocumented ARGB controller. Also, the thumb screws are garbage, but there's spring-loaded post latches too, so it's not a big deal.

So far I have not made any attempt to optimize or overclock. Everything is running at default settings. Running 3dMark benchmarks:

  • Time Spy (DX11 test): 19157 (CPU 13395)
  • Port Royal (raytracing test): 12879
  • Storage benchmark: 2899

  • Furmark 2160: 6467
Thermals are good. Strangely, the CPU barely breaks a sweat at the maximum Prime95 torture test (temps in mid-50's). However, I can instantly spike CPU temperature into the 80's with World Community Grid jobs ("Mapping Cancer Markers"). I'm still trying to understand this, and I'll have to figure out the right tests before I attempt any kind of overclock.

Reference: RIFTER

Intel Core i5-6600K / NVIDIA GeForce GTX 1070

3DMark (Time Spy): 5348 (3396 CPU)

Thursday, August 17, 2023

Why I flag most recruiter emails as spam (Web3 edition)

Remote position for $250k USD base, but their recruiter referenced Web3 in the email, so completely untenable.

(I don't think it's actually a Web3 job...)








Sunday, November 13, 2022

Why you need end-to-end encryption

TL;DR - no matter who you are, you need to set up an end-to-end encrypted communication app for your calls and messages, and start using it for your day to day communication.

Encryption is a technology that allows us to send messages to each other using codes. It's core to how we are able to exist in the digital age: it's why a neighbor with an antenna can't read your emails, it's how you are able to bank online without a hacker rerouting your money, or even how you access your medical records online privately. Encryption is so ubiquitous that you are using it every day and don't even realize it. In fact, most major services on the Internet, even completely public ones, turn on encryption automatically.

The lock icon means my connection to Blogger is encrypted.

When it comes to personal communication, encryption ensures two major things for the people you're talking to:
  • That outsiders won't see or hear your communication.
  • That outsiders won't modify what you're sending.
In the past, we lived happily without any encryption. Gen-X people likely remembered their wireless house phones, where sometimes you'd overhear your neighbor's calls in the background. This was normal at the time, and was mostly safe in an age where technology didn't run so much of our lives. But now privacy is not just a fringe benefit, but a matter of safety and the security of many of the things we hold dear.

What is end-to-end-encryption?

Most communication today is encrypted-in-transit. That means you have protection to and from your service provider. For example, if you send a message on Facebook Messenger, that message is secure between you and Facebook, and then from Facebook to the message recipient. But notably, Meta has access to that message. They can read it. They could edit it in transit. Or filter it if they don't like what you're saying.

Encrypted-in-transit message

End-to-end encryption (E2EE for short) takes the message and puts it in an encryption "envelope". The messages still flow through the communication provider, but the provider can't read or modify the message. It's private "end to end", hence the name.


End-to-end encrypted message

With E2EE, a communication provider:
  • CAN'T see or hear anything that is being said/messaged/shown/etc.
  • CAN'T record your communication.
  • CAN'T meaningfully modify what you say.
  • CAN still see who you're talking to and when.
  • CAN still block you from sending a message (but without any knowledge of what you're about to say.
E2EE is not preferred by many communication providers, because it limits the sort of services you can provide:
  • Can't target advertisements based on what you're saying.
  • Quality, speed, and reliability of group communication tends to be worse than non-E2EE solutions.
  • Some features like camera filters, message search, are more difficult to build and may be of lower quality.

Why do I need this?

"I'm not talking about anything illegal, why would I need encryption?" 

To understand why an upstanding person like yourself might need end-to-end encryption, it can be helpful to think about the many parties that may want to access your communication.
  • The communications provider. How much do you want a big tech firm to know about you, and how comfortable are you with who they will sell this data to? Could a data broker build a profile of you to be targeted or even harassed?
  • Partners. Consider the case of the Cambridge Analytica scandal, where Facebook leaked private user data to a company which then used it to interfere in elections in the United States.
  • Hackers. Could a hacker reading your text messages use that information to access your bank or other important accounts?
  • Government. Are you a law-abiding citizen? Okay, sure you are... but are you a law abiding citizen by the past and future laws of every government you'll ever interact with? For example, Facebook was forced to disclose messages under subpoena related related to an abortion case (which became illegal shortly AFTER the subpoena).
What do I do?

The best thing you can do is to get an app that supports end-to-end encryption for messages and video/audio calls, and get in the habit of using the secure mode by default. Encourage your friends and family to use secure options, and make it clear that you're not comfortable with using systems like text messages anymore.

Some options to consider:
  • Signal is the defacto standard for the privacy-conscious. Their app is the gold standard for the privacy conscious, and their technology is so good, their "Signal protocol" is used in many other apps.
  • WhatsApp offers E2EE by default. While many are nervous what ownership by Meta will mean for the future, their track record so far on encryption is pretty good.
  • Telegram is not E2EE by default, but does offer optional "secret chats". While I'd prefer it to be on by default, at least you can choose it for any communication.
Most importantly, get away from daily use of anything where you are not sure you have end-to-end encryption.
  • Text messages from your phone are the WORST! Stop using them, right now, except where absolutely necessary to communicate with businesses. The system is ancient and notoriously insecure. This includes iMessage - while iMessage itself may be E2EE, that only applies to your "blue bubble" contacts, while your "green bubble" contacts still go through insecure SMS.
  • Telephone calls. The security is weak, but also the quality is absolutely terrible compared to even the most mediocre audio calling apps. It's all around a bad experience, and there are way better options, including Facetime and Duo.
  • Facebook Messenger. While they support end-to-end encryption, it's not offered on all clients, so it's difficult to ensure a secure connection.
That's my rant, now go install your new communication app!

Wednesday, June 29, 2022

Why I flag most recruiter emails as spam (Amazon edition)

Usually I just flag as spam and move on. But sometimes it's just funny when a company as big as Amazon can get something as basic as a recruiting email so wrong.




Sunday, March 08, 2020

Sanders vs Biden

It was good to wait. Voting for a suspended campaign would have been a waste. But now it's Sanders or Biden. Blegh. Not a vote I feel as good about.

Can we solve this on electability?
https://www.latimes.com/opinion/story/2020-03-05/bernie-biden-electability-polling
https://www.vox.com/policy-and-politics/2020/2/25/21152538/bernie-sanders-electability-president-moderates-data

The conclusions largely appear to be:

  1. The data suggests both candidates beat Trump.
  2. The data currently suggests Biden would have a larger safety margin.
  3. We keep learning that we can't trust the polling numbers, and need large safety margins.

If Biden wins, Bernie's army of young voters don't mobilize. If Sanders wins, swing voters are lost to Trump. Sadly there's no consensus candidate left.

Benefit to Biden, but it's clear that we still don't know enough to be sure.

But Biden was a bit of a shitbag until recently.
He's come down on the wrong side of a LOT of moral arguments over his long and very successful career.

  • War on drugs, marijuana criminalization.
  • Anti-abortion
  • Civil forfeiture.
  • Encryption bans
  • Anti-LGBTQ, marriage equality.
He has admittedly flipped his stance on most of these, a few conveniently for election purposes, but a few where he openly admitted his mistakes (eg. on Roe v Wade). I've applauded others who have legitimately come to evolve their positions (eg. Tulsi Gabbard on LGBTQ issues), but Biden's list is pretty long.

This is a pretty strong warning sign against Biden, but depends on how important history is versus his current advertised platform.

Then the elephant in the room: healthcare.
Medicare for All solves America's healthcare problems. Universal coverage, controlled out of pocket costs. It'll resolve the vast majority of the inefficiencies in the system that are inflicted on the population. But wow is it expensive to start: $34 trillion over 10 years.

An Affordable Care Act public option has the potential to fix a lot of things. A government-run insurer can quickly start taking control of costs, expand coverage, and become a tool of dismantling the profiteering systems in healthcare. On the other hand, it's not clear that it grants universal coverage nor does it eliminate out-of-pocket costs. Wasn't that the point? But at least it's affordable, at a mere $750 billion over 10 years.

Sanders' plan is plainly too expensive to be implemented in current American politics. Biden's plan is an unambiguous substantial improvement in the status quo, but in contrast to the various Democrat healthcare plans, is laughably uninspired.

I'll take Biden's boring but plausible plan, admitting that the USA probably can't reach single payer in a single step.

The personal touch.
Sanders wants to break up the tech companies (where I work). Would this be disasterous? Not entirely. After all, many of these companies merged through acquisitions in the first place, so clearly they can be split. It would just be a very large, very wasteful, completely pointless, spectacle.

Sanders is against most trade agreements, including NAFTA (how I originally arrived in the US). The Trans-Pacific Partnership is more complex - while potentially beneficial on trade, it had some ridiculous intellectual property provisions.

Biden wants to remove tech liability protections for user-generated content. This is a fundamentally terrible idea, essentially forcing corporate moderation on the Internet, which will be a far more chilling effect. Sanders would wade into this too, but is not taking as strong a stance.

A mixed bag, but favors Biden.

Conclusion
Biden. I'm not happy about it, but Biden.

Sunday, March 01, 2020

2020 Washington State Presidential Primary

Washington State has a Presidential Primary this year!

Update 3/1/20: Buttigieg just dropped out.

... well... they always had a Presidential Primary. But we finally have a better one.

https://www.seattletimes.com/seattle-news/politics/washington-democrats-choose-presidential-primary-for-2020-ditching-caucuses/

Washington State always had a primary for Presidential candidates, but the Democrats completely ignored the results, in favor of their caucus meetings. The Republicans utilized it, but it was held so late in the season that it didn't really matter. Now, our votes are mailed in by March 10th, and the results are honored by both parties.

New this year, we also have to declare party affiliation. This is certainly concerning as a potential source of spam (party affiliation is public record), and it's not like ticking a box would prevent Republicans issuing spoiler votes. But it's a minor issue compared to the benefits of a real primary.

In any case, on to the actual primary.

Party Affiliation: Democrat.

Should be obvious. Trump's Republicans are toxic. But regardless, their primary's outcome is already assured, and I don't vote in pointless elections.

First, we can eliminate candidates that have already dropped out. While a few of these are indeed interesting, trimming them up-front will ease our cognitive load quite a bit.
  • Cory Booker (1/13)
  • John Delaney (1/31)
  • Andrew Yang (2/11)
  • Michael Bennet (2/11)
  • Deval Patrick (2/12)
  • Tom Steyer (2/29)
  • Pete Buttigieg (3/1)
and one who should have dropped out months ago, but didn't.

Tulsi Gabbard. She hasn't even been to a debate in months, and the only media attention she's getting is for her lawsuits, and her stubborn refusal to drop out.


So that leaves six relevant candidates, coming out of the Nevada primaries. 

We can broadly divide the group into the moderates, and the progressives.

For those not in the know (and Canadians): a key divide in the Democratic party is between moderates and progressives. They both have largely the same set of priorities - health care, education debt, the environment to name a few. The difference is in the process. The moderates take an pragmatic incremental approach - reaching party goals while working within existing structures of power and policy. The progressives relish in directly challenging the people and policies that are perceived as being the direct cause of the problems in society.

Note this divide is distinctly not about being a Washington insider or an outsider. This can be clearly seen by contrasting, for example Buttigieg and Biden, or Sanders and Warren.

Bernie Sanders (29%)

The "Democratic Socialist", a title he wears unapologetically, almost militantly. The most progressive of the progressives. A constant Democrat outsider. A billion years old. And the early front runner, much to the party establishment's chagrin.

Bernie fans are fanatically dedicated. This poses an interesting challenge for the primary: Sanders holds a substantial base of voters that are notoriously difficult to rally for other Democratic candidates. Whereas Sanders as a presidential candidate will have the hardest time attracting moderates of either party.

Can a "socialist" win the Presidency? Maybe. If there's one thing we learn from Trump's candidacy, it's that labels, policy, or even ideology don't matter when you have a cult of personality, which Sanders has in spades. If a racist with no experience and a platform built entirely on catchphrases and spray tan can be president, is a socialist so farfetched? Universal health insurance. Free college. Living wage. Crazy talk! Except that most of the developed world already does this and more with varying levels of success.

A Sanders vote is a vote for fundamental change that is desperately needed, and rejecting the very existence of political moderates as a relevant group in America. 


Joe Biden (17%)

The very face of a Democratic insider. Over 30 years in the Senate, and a popular Vice President under Obama.

The most centrist of the moderates. Biden has already been in the White House and doesn't want to change up that formula. Most moves would be incremental changes to Obama-era policy rather than dramatic overhauls.

A Biden vote is a vote for business as usual. A bet on the the current political middle being the force of the future.


Michael Bloomberg (15%)

A billionaire and popular former New York mayor, that is quite obviously trying to buy the nomination with hundreds of millions in ad spending, so much so that he didn't even bother to participate in the first primaries.

He was by many accounts a successful Mayor and clearly a successful businessman, but with a lot of baggage that will be tough for Democrats to support, such as "Stop and Frisk" and disrespect of women.

A Bloomberg vote is a statement that executive experience (both political and corporate) trumps everything, including character, and policy.

Elizabeth Warren (14%)

A law professor turned politician, turned progressive candidate, with a term in the Senate under her belt. A vocal advocate for progressive issues, but with a history of actually working through it.

Warren is known for having many detailed policy plans, released early compared to her peers. While this is unambiguously worthy of great respect, it also puts her policies under intense scrutiny, that many politicians avoid by staying very vague ("We're going to produce phenomenal health care.") in a way that defies actual analysis.

A Warren vote is a vote for a progressive agenda based in deep thought and analysis, rather than hyperbole and philosophy.

Pete Buttigieg (10%)

He's young. He's gay. He's a popular small-town mayor. But more importantly, he's a moderate outsider - a clear contrast to Joe Biden, and has held his own in debates and polling.

A Buttigieg vote is a support for a less progressive but still ambitious policy, while showing that someone other than old white Senators can lead the country.

Amy Klobuchar (6%)

A moderate-ish Senator and Democratic insider. Klobuchar excels at passing bipartisan legislation.

By most measures, Klobuchar has performed amazingly throughout this race, but simply suffers from going up against some huge brand names. Minnesota Nice may struggle to compete in this rough battle of ideologies.

A Klobuchar vote is for a co-operative but liberal approach to policy, backed by an experienced politician.

So how do I vote strategically?

Wait for Super Tuesday on March 3rd! This is a major test for candidates, and we should hopefully see some drop out on Wednesday. Released delegates can vote for anyone, so the best chance of your vote mattering is to vote for someone likely to survive to the convention. Washington's new primary deadline of March 10th is an amazing benefit for this primary season - early enough for the nomination to still be interesting, but late enough to filter out some of the early noise. Use it wisely.

Otherwise, vote for who you like. That message will carry through, in some form or another, to future primaries, to the convention, or even future years. Your support will mean a lot to your chosen candidate.

What about a contested convention? It doesn't really change anything. The popular theory is that a contested convention would be used to block a Sanders nomination. The best way to avoid that is to give Sanders an uncontested nomination by voting for him. Any other candidate, vote for them and deny Sanders the delegates he needs to clinch it.

My Vote

Currently Warren. More than anything, I long for a truly thoughtful President, and that is shown both in her policymaking and her policy statements. I am supportive of progressive ideals, and believe she can build momentum around implementing at least a few of them. 

Still, I'd support many others in this race. Buttigieg would have been a welcome addition to any ticket. Biden, while boring, would be a safe and competent bet. I'd even rally behind Sanders; I see him more as a figurehead of the progressive movement, but it could result in positive change.

Sunday, November 03, 2019

Washington General Election 2019

There's direct democracy... and then this ridiculous ballot.

THIRTY THREE separate votes to make. Of these:
  • 12 Advisory Votes. These are decisions that were already made, and the results of the vote has will not change the decision in any way. I'm not being sarcastic, the result of the vote is not used in any way. It's interesting as a forced broadcast mechanism about tax changes, but from a voting standpoint is, literally, pointless.
  • 16 county bureaucrat positions, of which 7 are uncontested. Seriously, you think I have enough opinions about the Commissioner of the wastewater district to write in a new candidate? Only one of the positions is even partisan.
But hidden in the second page, is a full-on constitutional amendment. That's some clever obfuscation

Referendum Measure 88: Bring back affirmative action

The state Democratic party has always liked affirmative action, and was rather miffed when the people passed I-200 to ban preferential treatment. And thus why this is a "Referendum Measure"; this is what happens when the legislature attempts to pass an initiative without a vote. But it got noticed, and a vote was forced.

Objectively, affirmative action is state-sponsored discrimination. If used carefully with the right intent in the right venues, it's discrimination that can be used to remedy historical injustice and support groups that are disadvantaged to this day. But it's still discrimination. In this case, discrimination in the exclusive hands of a "Governor's Commission", a group that has no reason not to apply it's power broadly, indiscriminately, and in a politically biased manner.

The law asserts that it does not allow quotas or preferential treatment:
Under I-1000, quotas and preferential treatment are prohibited, and no one who is unqualified will be selected due to preferential treatment.
However the text seems to rely on a very narrow definition of preferential treatment for this protection, that could be trivially circumvented, and relies on partisan parties to enforce it. It seems like any protections against diversity quotas would be quickly rendered moot.

Proponents argue that something must be done to remedy ongoing discrimination in our society, and I agree wholeheartedly. Where I disagree is in the false dichotomy that the only way to eliminate discrimination is to apply reverse discrimination, and that we have accept this practice without any meaningful safeguards against abuse.

Rejected.

Initiative Measure No. 976: Or why your car tabs are so expensive

Yes, our vehicle registration fees are ridiculously high. I just cracked $1000/yr on the Tesla.

But registration taxes are progressive; they tax owners of newer and more expensive cars far more than older cheaper cars, and direct funds towards infrastructure needed by all citizens (roads and transit). The money has to come from somewhere. If not here, then it's going to be a property tax increase, or *gasp* a state income tax. Want to sign us up for that?

I can support changing the valuation mechanism for vehicles, though realistically it doesn't matter. If they change the appraisal outcomes, the tax rate will just adjust to match.

Rejected.

Senate Joint Resolution 8200: Washington watches too much Designated Survivor.

The continuity of government rules in the State constitution allows government to fill vacancies as necessary in case of an enemy attack. At the time, the concern was Cuban missiles blowing up Olympia. Washington now admits that a giant earthquake or tsunami or volcano is a far more likely disaster than a bunch of us hippies getting nuked, and want to add "catastrophic incidents" to the definition.

Could "catastrophic incidents" be redefined and abused? Maybe. But it's no worse than "enemy attack" (see also: any Jack Ryan movie). Anyways, the powers Section 42 establishes in such cases are specific around continuity of government; the focus on vacancies makes these powers only slightly useful.

Approved.

County Nonbinding Advisory Proposition No. 1: Ban Fireworks in Urban Areas.

Non-binding because they already know the answer will be no.

I get it, July 4th is miserable for firefighters, because we keep lighting each others' roofs on fire.

But fireworks are fun, and unincorporated county is the last bastion of freedom given how City Councils micromanage the existence of their residents.

REJECTED!!!

Sunday, June 30, 2019

Home Display Setup



Here's my display board. It's in the hallway to the family room. It is currently showing:
  • Daily agenda, including chores list.
  • Multi-week family calendar.
  • Clock.
  • Thermostat.
  • 4-day weather forecast.
This was initially inspired by the DakBoard 24" display, but I figured I could do better than the $349 retail price by building it myself.

Hardware shopping list:
Disclaimer: As an Amazon Associate I earn from qualifying purchases.

The Pi Zero W is not by any means a powerful device for GUI; if you want to YouTube or use other rich media, it may be time to upgrade to one of the more powerful devices. But it's cheap, and works great for DakBoard.

Software:
  • DakBoard. You can do a simple site for free, but for $5.95 a month, you can get a premium account with a lot more customization. Admittedly, with a bit of HTML, one could accomplish the same thing for free, but DakBoard's customization tools are actually pretty cool.
  • Google Calendar. We created two shared calendars - one for family schedule, one for family chores. The separate calendars allow me to show the chores on the agenda without putting it on the calendar view.
  • Google Photos. Because seriously, what else would you use? I have a shared album with my display photos, that goes not only to my large display, but also to all the Google Home smart displays in the house.
  • Nest Thermostat integration.
Setting up a Raspberry Pi is a whole separate topic. I'll share if people have questions.

Thursday, December 20, 2018

The Good and the Bad of the Tesla Model 3 Performance

My dream car - 2018 Tesla Model 3 AWD Performance:



I've owned the car for a couple of months now, have experienced the reality of EV life, and being bought into the Tesla cult. I still to this day smile every time I drive off in this car

The Great

It's SO fast! Acceleration is immediate, consistent, and intense. An official 3.5s 0-60mph time, but real-world measurements place it closer to 3.2s. It's hard to convey just how amazing the instant power and perfect traction of an EV are for the driving experience.

Phone key. Much maligned in early releases, and rightfully so - many owners had inconsistent results unlocking and driving their car, across popular brands of phone. But I was lucky enough to receive the car almost immediately after a major app update, and it has worked reliably. I walk up to my car: it's unlocked. I walk away, it's locked. I shift to drive, it drives. It feels primitive by comparison to actually have to carry a separate chunk of plastic around.

The phone key has failed maybe twice since I took delivery. In that case, I have the card key in my wallet; which is enough to get me going while I reboot the phone.

Charging at home. My theory was that, between charging at work, and free supercharging for life, I would never spend a single Wh of my own electricity. Well, ownership has taught me something: the $1's a month I'll spend on electricity is worth it for the convenience of just plugging in at home. I don't have to worry about when or where to charge, because I'm full every morning. Whereas, when I end up driving the minivan, I'm invariably looking at "20 miles range" and debating whether I have time to gas up.

Admittedly I'm charging on 120V. It's VERY slow to charge - it would take three days to charge from empty! But since I'm constantly topping up,it's never a problem. For the rare time I'm running under 50%, I'll stop at the local supercharger and get full in under an hour (for free!).

Single-pedal driving. With regenerative braking at max, you very rarely have to actually use the brakes, except to come to a full stop. This is weird for many drivers at first, but within an hour or so I really appreciated it. It makes downhill a far better experience, and takes a lot of effort out of driving in traffic.

Modern conveniences. Hey, I haven't owned a new car in awhile. It's nice that my garage door opens and closes automatically as I approach.That my seat and mirrors remember my position. A full suite of distance sensors, backup camera. USB power.

The OK

It's good, but could be better.

Center touchscreen. It really sold me on the car - the eyeline seemed so perfect. I still love it, but I admit the right-of-driver position adds just a hint of eye fatigue over the front dash. The biggest challenge is blind-spot warnings - those I would have preferred in front of me (like the Model S).

Autopilot. Works as advertised - you can pop onto the freeway, whether stop-and-go or full speed, and it will drive for you. For morning commute, it will probably save my life one day. With a little care, it will even work on city streets (you just have to handle stop signs and lights... for now...). Honestly, with the AI and sensors, it probably handles highway driving better than I do, given it's better perception of acceleration and instant reaction time.

Still, I wish they handled lane splits/merges better. Also, vehicles changing lanes is very much binary - they give no accommodation to a vehicle signaling a lane change until they are at least 50% in the lane. I still find myself taking over in these situations in deference to the drivers around me,

Auto-parking is still not consistently detecting spots, though it parks well when it sees one. Reverse-in parking is just a gimmick.

The Meh

Even I can admit it's not perfect... and not everything can be fixed in a software patch.

Battery Preconditioning and SoC dependence. Certain things behave differently based on the state of the battery. If your battery is cold, regenerative braking is greatly reduced. The "battery preconditioning" available on the Model S is honestly not effective on the Model 3. Regenerative braking is also reduced when the battery is full. Similarly on a low-charge battery, the top end of your power starts dropping off around 20% charge - 5 seconds to highway speed seems entirely reasonable unless you are used to doing it in 3.

Comfort. I'm told by everyone that my car is amazingly comfortable. It looks and feels premium through and through. There's amazing levels of adjustment that let me sit better than any other car. But there is just something about that driver's seat that my butt won't get used to.

I've gotten used to the firm and forward headrest, though from my reading, this is a common design in newer cars. Apparently you're not supposed to actually rest your head on a headrest? Easy for someone without an XL head to say...

The claim that three carseats will fit across the back of a Model 3 seems dubious from my experience.

Automatic wipers. The sensor underestimates the conditions, simple as that. In Seattle weather, you'll have to turn them up manually. Here's hoping to a fix in a software update.

Bluetooth. I've had issues with frequent media subsystem crashes (lose audio for ~5s), though I think a recent update has finally nipped that one in the bud. Still, it isn't always 100% to connect to my phone, or lose connection getting into the car.

Also, seriously, I don't want to use your stupid Tesla voice commands that control almost nothing. Let me trigger my phone assistant from the wheel!

App Control. Great idea, but limited by the "Waking Up" problem. If the car is idle, it can take upwards of one minute to establish a connection. If you want to quickly preheat the car, it can be frustrating to sit staring at a spinner.

On the other hand, a public API! I can (and eventually will) fix this through the power of coding.

Note the wakeup issue does not apply to phone key.

The Real Problem

Hint: all the problems with this car are around the Tesla delivery centers that serve them.

Delivery scheduled last-minute while I was away, then rescheduled for weeks later once they confirmed the delivery.

They didn't process my payment until almost a week after I took delivery (while insisting I had paid weeks earlier) - and support calls to follow up were about 40 minutes hold time on average.

The referral process was a mess; if you're not buying it online, the dealer is liable to skip the step entirely, then manually submit the request into some black box system that might or might not work. My referral bonus (free supercharging) didn't show up online until two months after I took delivery, though to be fair they never actually billed me for supercharging.

They did not even order my license plates for 40 days (out of 45 allowed days in Washington). My tags expired, and I was stuck driving a rental Chevy Impala while they got me plates. I'm no car snob, but I think I'm at the point where I can say with conviction that, as a Tesla driver, that a Chevy Impala is beneath me. It was an awful experience.

There's a (very minor) issue with my steering column; a known issue that should be a quick fix. Great, first service appointment is a month out. But, even then, they cancelled it without telling me, because the part was back-ordered. Seriously, Elon invented Paypal, but can't send me an email notice that my appointment changed?