March 2019

Dear Amazon,


If you have multiple versions of a song, and I say, “Alexa, play $song”, please select the version that I actually purchased from you. Don’t make me say, “Alexa, play $song from my music”, especially when the title is long, like, say, “Keep your eye on the sparrow”.

Also, don’t play the newest cover version of a song, by some random nobody. Ever. Don’t make me spend ten minutes trying to find the right incantation to get you to cough up the real one. If you’re not sure, ask.

And when you can’t find the song at all and start playing something “popular” based on one of the words in the title I gave you, please ask me what you did wrong when I shout, “Alexa, stop!”.

[Sadly, Amazon Music doesn’t have the actual soundtrack for Dark Star, so all the available versions of Benson, Arizona are by some guy who gives it a good shot, but it just doesn’t work.]

Progressive Calenders


No, not that kind of “progressive”, the Wondermarkian sort, also called a continuous calendar. Every time he creates one of these in Illustrator and posts it, I save it away with the idea of knocking together a Perl script to generate my own. It only took 4 years for me to get around to it…

Let’s see if I can make a sensible download page for these:

The script needs some cleanup before I inflict it on the world (most likely as a web form). Also better font-handling; not only is there a hilarious bug in the header auto-sizing, but there are baseline issues with many (mostly CJK) fonts that make it tricky to position the numbers. I also need to make the locale-handling friendlier; the Perl DateTime module automagically pulls in month and day-of-week names for any language supported by locale(1), but specifying them as ja_JP, ko_KR, ru_RU, etc is “less than user-friendly”, and you have to switch to an appropriate font.

Sadly, the obvious free choice for a font that supports pretty much any language would be Noto, but its CJK fonts don’t work with PDF::API2.

One feature that’s still in progress is custom colors and text for specific dates. The idea is to feed it a custom list of holidays, birthdays, etc. Since I’m still working on text placement, right now it just sets foreground and background colors, which was enough for marking up a one-page, one-month vacation calendar for our upcoming Japan trip: red for flights, orange for shinkansen trips, blue for flea market days, and yellow background for “oh, crap, it’s Golden Week”.

Update

…and I’ve fixed the silly font sizing/positioning bugs and re-uploaded. Part of my problem was that I was fighting some silly fonts, and the epicycles required to position them vertically were screwing with the non-silly fonts. I still have a fudge factor in the script, but now it’s based on identifying the silliness (capheight or ascender >= bbox ymax).

Just noticed…

Trello’s calendar add-on works this way, but with just a subtle shading change as you move between months (along with the gray-on-gray text thing, which never fails to annoy me).

Dear Amazon,


Are you sure this is for toddlers?

These two recommendations really go together…

Future Waifu Club Endroll!


Endro! has produced relatively little fan-art so far. Perhaps it’s simply flying under the radar; I don’t recall any mention of it before Don’s. Cute and fluffy, without adaptation baggage, and entertaining enough that I watched the latest one as soon as it came out on Crunchyroll.

So far Mei seems like the least-unlikely waifu candidate: she’s a magic-card-collecting otaku with stockings, garters, and a skirt slit up to there with bonus pantsu window, and she cooks. Fai has huge tracts of land, but a disturbing tendency to vigorously gnaw on things when she’s hungry, which is always. Seira is a cute, responsible bookworm, but suffers from A-cup angst, poor housekeeping skills, is ashamed she needs glasses, and is mildly delusional. Yusha is improbably lucky and severely delusional. Mao-chan is, of course, a loli with destiny issues, while Princess Rona is fixated on her heroine ifyouknowwhatimeanandithinkyoudo. Unnamed Teacher is the only adult female so far, and dresses for sexcess, but she’s a bit of a lolicon.

more...

Vacation funds secured…


(via)

Apple’s closed ecosystem…


Part of my vacation planning is building up map bookmarks to share with my sister, so we can go off on separate adventures and easily meet up later. I have a bunch of old Google Earth/Maps bookmarks from previous trips and planning. I also have a bunch of Apple Maps bookmarks from recent planning. (why? Because Google no longer supports the standalone Google Earth app, and wants you to run it in Chrome, which logs you into your Google account so they can track you across the Internet)

Google lets you export any number of saved places to an XML file. Apple lets you share one bookmark at a time to specific applications, but only as a URL pointing to maps.apple.com. For more fun, on a Mac your bookmarks are stored as an opaque binary blob in ~/Library/Containers/com.apple.Maps/Data/Library/Maps/GeoBookmarks.plist, along with a cached copy of their data about the location. You can reorder this list inside the desktop Maps app, but that order will not be respected on iOS.

Extracting 35 bookmarks meant creating 35 notes in a supported app, then copy-pasting them into a text file and extracting the “q” (name) and “ll” (lat/lon) fields.

Seriously, Apple?

Update

For future reference, to convert KML to straightforward CSV using togeojson and jq:

togeojson $kmlfile  | jq -r '
	.features[]|select(.geometry.type == "Point")
	| select(.properties.name)
	| [([.geometry.coordinates[1],.geometry.coordinates[0]]
		| join(",")),.properties.name,.properties.description]
	| @csv'

Update

So, you can get your Apple Maps bookmarks as a CSV file, but only by using Apple’s privacy page to request a copy of all data Apple has on you, and waiting about 5 days for them to package it up.

Thanks for clearing that up…


They said this. They really did.

Fuck you, ACLU, with a rusty coat hanger.

Update: Keep digging, Trump needs more votes!

The batshit-crazy is strong in this one…

This may be the most imaginary oppression in the history of imaginary oppressions.

tee-hee

Best reaction so far.

OpenType font mapping woes…


It seems the font bug I ran into when making calendars has opened a can of worms. PDF::API2 is only lightly maintained these days, but there’s active development on the fork PDF::Builder, and the dev saw my bug report, cloned it into his project, and started poking around. Original module author Alfred Reibenschuh chimed in, and after some back-and-forth, it looks like the glyph-mapping code pretty much needs to be ripped out and rewritten from scratch.

I have a hunch I’ll be tasked with producing a CJK test case, which means I’ll need to collect some Chinese, Chinese, and Korean samples.

Baby, should I have the baby?


Today’s ACLU Top 40 Flashback:

Dear Woot,


Please don’t screw it up this time.

(last time they sent a charger for the wrong generation, then ran out before they could exchange it; I got a refund, but I really wanted the charger…)

3/13 Update

Thanks, Woot; this time you sent the right charger. Why did I care about an N-generations-old Windows tablet? Well, first, because it has a Core i5, 8GB of RAM, 256GB SSD, HiDPI display, and the good pen, so it’s still quite a useful gadget, even before you take into account the fact that I have both the extended-battery US keyboard and the backlit Japanese keyboard.

Second, because quite a while back, Microsoft recalled the power cord (not the brick, just the part that went into the wall) due to thermal issues, but they had no provision for replacing a second power supply if you’d bought one. And I’ve long been in the habit of buying an extra when I plan to commute with a system. That left me with one known safe power supply and one that I couldn’t risk leaving unattended.

Getting a new OEM charger for less than what a fly-by-night Chinese company with a randomly-generated name charges on Amazon was a no-brainer.

Catting around…


Still collecting interesting places for our upcoming trip to Japan, and I found a cat café not far from our hotel. No catgirls, no moe maids, just cats. Since I no longer have any active porch cats, this will be a nice diversion.

Dear Marvel,


Please make the next Spiderverse movie 90% Peni.

…and 60% Gwen.

Also, please make the next Spiderverse movie.

Dear Uber,


It’s fine that you think I need a side gig, and I’m sure you mail this to a lot of your used-Uber-only-once customers, but I think I should point out that this deal is not the least bit attractive for someone who lives two hours south of San Francisco. And that’s with little or no traffic.

Variations on a theme…


If I hadn’t already deleted my Twitter account, I’d go courting bans

#Lean-To:Cold

#Lrn2Cd

#KernToLoad

#JustTryCoding

#StudySoftwareEngineering

#YrneaGbPbqr

#CareersInCoding

#Code4Cash

#ltc

#C0DE

Update

Hmmmm, would you get banned from Twitter if you remade this song as “learn to code”?

The best part about finding cool stuff online…


…is realizing, “hey, we can go there next month!”.

(via)

Related, I just happened to stumble across Good Samaritan Club, a group of college-student volunteer guides who will work with you to set up a custom tour in exchange for a chance to practice their English; you just need to pay for their tickets and meals. Might come in handy for some of the out-of-the-way places we’re thinking of going. Or just open up some options for my sister to spend a day without me.

Dieting tip…


After carefully determining that your pizza recipe is compatible with your new diet if you only eat half of it split across two meals, it’s important to put the other half away as soon as possible. Out of sight. Uncut. In someone else’s fridge.

I’m not worried about gaining weight while we’re in Japan, because last time it was just my sister and me, we averaged about 18 miles of walking per day, and Japan is not flat. A lot of my diet/workout plan right now is focused on my knees so I’m up to the challenge.

Sadly, my lasagna recipe isn’t compatible with any diet. Especially if I’m alone in the house with it. 😁

Stop. Just…stop.


I forgot to bitch about this when I first saw it…

New in Emacs 26.1:

** The Emacs server now has socket-launching support. This allows
socket based activation, where an external process like systemd can
invoke the Emacs server process upon a socket connection event and
hand the socket over to Emacs. Emacs uses this socket to service
emacsclient commands. This new functionality can be disabled with the
configure option '--disable-libsystemd'.

** A systemd user unit file is provided. Use it in the standard way:
'systemctl --user enable emacs'.

Honestly, I never saw the attraction of emacsclient in the first place. I open text editors in terminal windows, like Zod intended, and I edit text files in them. My entire .emacs file is devoted to turning off all ‘features’ unrelated to editing text.

Update

I should mention that Emacs also has launchd integration on the Mac, which I’ll never use. It’s the systemd part that bugs me; it’s like what you’d get if you crossed kudzu and cockroaches. Note: do not mention this within earshot of Lennart Poettering. He might try it!

Dear Amazon,


Yeah, self-help is a much better term than self-abuse…

Applied Topology


No black hole jokes, please.

(via)

Manaria Friends


Inexplicably retitled Mysteria Friends by Crunchyroll, sacrificing any name recognition it may have had, the first episode of this series felt like a cutscene from a video game. Which it more-or-less is. There’s some familiar voice talent involved, including Inoue Kikuko, Nana Mizuki, and Yōko Hikasa, and the character designs have that clean adapted-from-a-game look.

Why did I watch it? Busty half-dragon high school girl.

Will I watch more? Maybe while I’m on the elliptical next week, but today’s workout will be sponsored by episode 10 of Endro!, because cuteness.

Update

Since it’s the first really nice Springlike Saturday, I went out to relax on my front porch with a nice drink and listen to the bamboo rustling in the wind, … and every neighbor is having a party filled with music and/or joyfully shrieking children.

In short, I grabbed my iPad and headphones and watched four more episodes (not hard, did I mention they’re only 15 minutes long?). It’s all zero-threat “magic is friendship” with a touch of cheesecake and yuri. So, worth it. I’m thinking the King might have to intervene if he wants a next generation, because the princess and the dragon girl clearly have some couple-ing in their future…

On an Endro! note, Mei’s fantasy waifustyle knocks her down a notch, while raising Seira’s stock. Also worth it.

Zen and the art of catnapping


(via)

New iPad Mini!


“Up to 3x faster than the old one.” If I weren’t planning to spend all my money in Japan next month, I’d even consider buying one.

Meanwhile, I’m off to the Apple Store today to get a new battery in my iPhone 6 Plus, because $49 < $700++.

Update

…and thanks to a fumble-fingered Apple tech, I get to spend the rest of the day watching data restore onto a brand-new iPhone 6 Plus, an unnecessarily complicated way of changing the battery. Once it finishes upgrading iOS to a version compatible with my backup, that is.

As a bonus, I had to wipe and re-pair the watch. Fortunately the only local data lost was how much I walked around the mall while waiting for them to break my phone.

Restored!

…and that’s eight hours of my life I don’t get back. Thanks, unnamed Apple technician.

For the record, the only app on my phone that lost data was MyNoise, which doesn’t save your favorites in a way that gets backed up. Special bonus, the sharing button crashes the current version of the app, so I couldn’t even send them back from my iPad. Other apps lost local caches and forgot about previous in-app purchases, but that just contributed to the 8+ hours spent restoring data and seeing what didn’t work any more.

Want


I’ll have to see if I can find one of these…

It’s kinda like a medical alert bracelet for a breaded pork cutlet deficiency.

(via)

Dear Apple,


Okay, so in the process of replacing the battery in my phone, you broke it. Not entirely surprising given the low repairability of your hardware designs, but that’s what backups are for, and you did replace it with a new one and gave it a 90-day warranty.

Okay, so it took over eight hours to restore all my data to the new one, and I had to spend another half-hour resetting and restoring my watch.

Okay, so the new phone won’t stay connected to a wireless base station that’s more than about ten feet away. Or to the watch at similar distances. In fact, it only sometimes sees two of the dozen wireless networks that my iPad can see, and frequently fails to connect with random error messages (“incorrect password” that is suddenly correct two minutes later).

Wait, that’s not okay. In fact, that kinda sucks, because now I have to drive 40 minutes back to your store, twiddle my thumbs waiting for my appointment, and then most likely spend another eight hours restoring to a new new phone.

Can you forgive me for wondering if this isn’t a subtle plan to sell me an upgrade?

Day of Rage Update

The genius quickly agreed that the new phone was a complete lemon, and went to replace it. And came back with a 16GB iPhone 6 loaner, because they didn’t have another replacement in stock, and this triggered their system to demand that it be sent off for repair, which will take 3-5 days (and almost certainly result in returning Yet Another New Phone).

The replacement is useful only as a phone, which means it’s basically useless. A co-worker has offered the loan of his old iPhone 7, which at least has enough space for my stuff. I’ll probably spend tomorrow restoring all my data to it, but won’t bother restoring in-app purchases, etc, since I’ll have to do it all again next week.

CNN says…


3 eggs per week will kill you. Based on their track record of accuracy on any subject, I’m heading to Costco to buy several dozen, so I can eat three a day and live forever.

Japanese lifestyle, from China


Saw this sign a while back in my local mall (which is trying really hard to go upscale, to the point that it’s pushed out so many of the old stores that it’s almost more “coming soon” than “open for business”). I figured that it was either an attempt by Daiso to go upscale, or a direct competitor riffing on the name. The fact that the katakana of their logo says “meisou” was a little odd, though.

Turns out that Miniso is a 100% Chinese company that just puts Japanese text on their house-brand products, and stocks things like Pocky to help prop up the facade. Their only connection to Japan is in their typesetting.

I happened to be in the mall again the day of their grand opening (twice in the same year!), and they’d attracted a curious crowd, but they didn’t really stock any interesting stuff. I can’t imagine any reason to go back, much less buy something there.

Unrelated, both times I was in the mall, I was the only white person there. Surprising, since even the local Walmart is usually more diverse. Salinas used to be 51% hispanic, but I think the next census is going to show a higher number. Also, it provides some perspective on the growth of the hispanic middle class that the mall has spent a crapton of money expanding and going upscale.

Dear Amazon,


Every time I see this picture, I think about how much she must hate him, to wreck his back this way.

“Two all-beef patties…”


I’ll take the pair, with a large milkshake.

(via)

“​…and we really mean it this time”


I think this is an illustration of Joe Biden’s chance of winning the Democrat primaries, but there are so many possibilities right now.

(via)

Life lessons…


From work: documentation-based performance analysis is adorable. You just want to reach through the Internet and start bitchslapping.

From home: somehow I got the impression that progressives were better than bifocals. I should have known that anything called “progressive” would have focus issues.

A Celebration of Patriarchy


…either that, or a clear case of statuary rape.

(via)

Dear Apple,


With all due respect, “data detectors” are bullshit.

When I type “1​/2-pound roast beef” into a shopping list, I am most definitely not planning a meeting on January 2nd at noon. Particularly not the January 2nd that was nearly three months ago.

Seriously, if you had a QA department, would you know what to do with it?

Another day, another iPhone


Got the call that my new new new phone arrived at the Monterey Apple Store on Friday afternoon, and since I had no interest in fighting traffic, I went over first thing Saturday morning to pick it up.

Yes, I made sure to test for the presence of wireless antennas before leaving the store this time, and was pleasantly surprised that this one had up-to-date firmware on it as well. I let it charge all day before restoring my backup to it just after midnight.

Why? Because after it’s all done, I have to erase and re-pair the watch, which wipes out the day’s activity and exercise, and it won’t re-sync music until it’s hooked up to the charger. So, as soon as 9,000+ songs finish syncing to the phone, I can pair the watch, plug them both in to charge overnight, and go to bed. Then spend the morning re-authorizing apps to use the fingerprint reader, refresh cached data, re-download in-app purchases, re-assign ringtones and alarm songs, erase all but three of the auto-synced watch apps, etc, etc.

Special thanks to Neal for the iPhone 7 loaner that was actually useful, unlike the Apple Store loaner.

Bonus: the Del Rey Oaks Safeway has a fully-stocked Boar’s Head deli. It’d be nice if the ones near my house upgraded, but this is closer than Morgan Hill, unless I’m coming from my office.

MyNoise favorite


I mentioned earlier that the only app that lost all its data when I restored from backup onto a new iPhone was MyNoise. Fortunately I only had one that really mattered, and I was able to reconstruct it from the version on my iPad.

The web version of it is here; it’s a simple mix of Japanese Garden, Temple Bells, and Wooden Chimes, and it does a great job of masking annoying noises that interfere with getting to sleep.

Well, for me, anyway; for all I know it’ll do the exact opposite for anyone else. 😁

Yūsha and Yuri


This week, one Princess thickens the plot in Endro!, and two others may be separated forever in Manaria Friends (or, y’know, not).

The MF episode kind of feels like a season-ender, but since nothing really happens in this show, it’s hard to tell. I wouldn’t mind at all if it continued, especially since Grea clearly hasn’t thought through the consequences of her decision.

Oppai Seijin!


Every anime girl ever…

(via)

…well, except for the ones suffering from A-cup angst.

On the bright side, anime girls won’t infect your laptop during a software update like ASUS. Unless you download them from one of those sites…

“Oh, I Wish I Were A Robert Mueller Jingle…”


(with apologies to Oscar Mayer…)

🎶 🎶 🎶 🎶
Your baloney has a first meme,
it’s ‘Rus-sian Col-lu-sion’.
Your baloney has a second meme,
it’s ‘Or-ange-Man-Is-Bad’.
Oh we’ll laugh in your face every day,
and if you ask us why we’ll saaaaay,
“​…cause Loony Leftists have to pay
for screwing up the USA.”
🎶 🎶 🎶 🎶

Nhung Nguyen


Okay, I think I’ve found my next vacation destination…

(via)

Mapping our Japan trip…


On previous trips, I’ve carried an old Sony GPS logger that I could sync up with the timestamps on my photos, both for geotagging and just figuring out where all we went (“remember that little backstreet temple where you wanted pictures of the fallen leaves, but those kids kept playing in them?“). Sadly, since the GPS epoch is about to roll over again, and Sony hasn’t supported that device in many years, it’s e-waste now.

The fallback plan was to just snap phone pics whenever I wanted to remember where I’d been, but my new camera can use Bluetooth to pull GPS from my phone, and Sony just replaced the flaky PlayMemories app with one that promises to be a lot more reliable. Incidentally, since this isn’t a serious photo trip, I won’t be taking big lenses or a tripod, just the a6500 body, the 18-105mm f/4 G lens, and a new find, an Eighties-vintage Minolta 100-200mm f/4.5 (with mount adapter). I was considering the big old beer-can 70-210mm f/4, but I’d have ended up leaving it in the hotel a lot; this one is a lot easier to keep with me, and the effective 150-300mm zoom range is perfect for hand-held use. Also, it was under $40 at Green’s Camera World in Monterey, which I visited during my iPhone-replacement woes.

But I still needed to decide how to share map bookmarks with my sister, as mentioned previously. With perfect timing, Trello came to the rescue with their brand new map power-up. I was already doing all our trip planning in Trello boards, so it was pretty easy to add location data.

And since you can always export a Trello board to clean JSON, I was able to trivially generate a matching Google Maps/Earth KML file.

Since this is the first version of their mapping support, there are a few issues. First, it leaks memory like nobody’s business, crashing the app if you try to add too many locations in one session. Second, it only works in the Android/iOS apps at the moment, not the main Trello web site. Third, the search functionality is quite crude, and had a lot of trouble with non-English names; I spent a lot of time trying to outsmart it, and eventually had to give up and manually place about 10% of the pins (basically, switch to Google Maps, look up the location, find something nearby that’s less obscure, search for that in Trello, and then move the marker to the right spot).

The result, however, is a very clear overview of our options every day.

Dear Apple,


Will you ever figure out how to sync data between devices?

Seriously, how long have you been shipping the Reminders app now, which is, I note, one of the single most useful features of your watches, now in their fourth generation?

You know, the one that constantly gets out of sync if you own more than one device, like, say, a Mac, an iPhone, and an iPad?

That’s right, the one where the only reliable fix is to open the Calendar app on each device and manually refresh your list of Calendars.

Hell, you could buy 2/3 of the third-party sync solutions in the world out of petty cash, and your entire iCloud platform would benefit.

Power Girl


Yuumi auditions for the next DC ensemble movie…

(via)

First Zenni specs


After my unpleasant experience with “wear-all-day HD digital progressive” glasses, you think I’d avoid anything related, but for my first purchase from Zenni, I ordered a pair of near-range progressives, with rimless frames and blue-blocking lenses, and threw in a pair of amber clip-ons to use them at the pistol range (“front sight focus!”).

They arrived yesterday, and after adjusting the fit with a pair of needle-nose pliers, they’re working out great. For computer work, you need to have your monitor properly set up ergonomically, since the arms-length section of the lens is at the top. For reading, unlike the standard progressives, there’s no fuzzy edges or “swimming” effect. And a quick test confirms that they’ll be perfect for pistol shooting.

Zenni throws in a cheap hard case that offers some protection (padding only on the bottom), a good microfiber cleaning cloth, a keychain combo screwdriver (philips, slotted, and two sizes of hex nut), and a generous collection of spare screws, nuts, washers, and nose pads (not specific to your frame, so they may not match the color and style).

For their rimless frames, they offer a wide variety of lens shapes, and I’m quite happy with the ones I picked; they look just like I expected from the “try on” feature.

The one thing I didn’t realize, and regret slightly, is that the frames don’t fold; they just have spring arms. I’ll have to hunt through my old cases to find something that they fit into well.

Next pair will be simple single-prescription driving glasses with magnetic clip-on polarized shades, for about $35.

Dear Amazon,


I’m going to go out on a limb here and say that this passport wallet has been linked with the wrong Q&A section:

  • Is it hard to assemble?
  • Is this comfortable for long sitting sessions?
  • What tools are needed for assembly?
  • Does it feel comfortable for the back?
  • What is the height of the highest setting off the floor?
  • Does this chair make noise?

Deus Ex Chibi


Endro! finishes strong.

Update

Yes, last week’s Manaria Friends was the last episode. It did feel that way.

Got pollen?


So, how’s the air today, Tokyo? Any issues you’d like to bring up?