Fun

Sync or sink


White Clouds Can’t Sync

Earlier in the week, my brother called to inform me that his kids wanted to come over to my place and hang out on Saturday. I thought this was a grand idea, so I blocked out the time on my iPhone’s calendar. This morning I was rearranging a few things on my Mac’s calendar, and noticed that it wasn’t showing their visit.

I had to edit it on the phone and add an alert, and then it immediately appeared on the Mac. How long has “sync” been a feature of Apple’s cloud offering, and they still can’t get the basics right? It’s not like I’d been wandering in and out of coverage areas; they were on the same wifi when I made the calendar entry.

Speaking of which, I once again have the problem where all of the music synced to my iPhone has incorrect cover art, because I told it to sync some videos. So it’s not just their cloud…

Dear Apple,

Why is it that Terminal.app occasionally loses the Command-1 through Command-9 keyboard shortcuts for the open windows? This bug has been around for years now. Is it because the few MacOS QA people left only test the default “use shortcuts for tabs” option, and have forgotten the older mapping?

The interesting thing is that opening additional windows assigns the shortcuts to them starting at 1, so the app’s not losing the functionality, just the current mapping.

Nope, not on a bet:

Why you shouldn’t use wide-angle lenses to photograph models, Reason #34C

The sad thing is that neither the photographer, the editor, nor the site that reposted this set noticed how ridiculous it looks. Fortunately there are some shots that actually flatter her.

(via Big Boobs Japan, a site that should never be visited without an ad-blocker and Javascript-disabler)

Acts Of Tourism


“Back on the bus, y’all”

I have returned from Belfast. It was deeply weird sitting in an office surrounded by people for the first time since March, 2020. Good people, fortunately, although I had to keep my mouth shut at the occasional Irish-splaining of American politics. Fortunately Israel changed the subject quite spectacularly last week.

It’s easier to go to Japan

  • Saturday, 3 PM UTC-4: arrive at Dayton airport.
  • Saturday, 3:30 PM UTC-4: only United employee in the place opens counter.
  • Saturday, 6 PM UTC-4: board flight to Chicago.
  • Saturday, 6:45 PM UTC-5: land in Chicago.
  • Saturday, 9:30 PM UTC-5: board flight to Dublin.
  • Sunday, 10:45 AM UTC+1: land in Dublin, stay on plane.
  • Sunday, 11:15 AM UTC+1: power restored at Dublin airport, plane directed to new gate.
  • Sunday, 12:00 PM UTC+1: pass through Immigration/Customs.
  • Sunday, 12:20 PM UTC+1: board bus to Belfast.
  • Sunday, 2:20 PM UTC+1: arrive in Belfast, google-walk to hotel.
  • Sunday, 2:30 PM UTC+1: check in at hotel.
  • Sunday, 6:15 PM UTC+1: dinner with boss’s boss’s boss.
  • Sunday, 9:30 PM UTC+1: brain and body switch off.

(the fresh batch of Maiko Mouths my sister sent after her recent business trip to Japan were a hit at the office)

Everything’s closed

I knew that retailers generally close earlier in Ireland than they do in the US, but I didn’t expect pretty much everything but bars and dinner restaurants to lock up by 6 PM every night but Thursday. It’s a good thing I added some vacation days at the end of the trip, or I wouldn’t have been able to buy gifts for family, much less anything for myself, since I was in the office 9-5 all week.

Admittedly I hedged my bets by getting the free trial of Prime and ordering a bunch of stuff on Amazon UK. Oddly, several of the things I put in my cart wouldn’t ship to Northern Ireland at all, but I could pay through the nose and have them sent to the US, which would kind of defeat the purpose.

(file under annoying that the WH Smith that swore on their web site that they were open until 9 PM is inside of a small strip mall attached to a bus station that just shut down for good, and now closes at 5 PM)

(amusing note: when I asked a security guy where it was located (because Google sent me around in circles), he was really curious why everyone he runs into seems so interested in going to a WH Smith, like it’s special; I couldn’t help, because my answer was “it was on the way back from my office to my hotel”)

DP Considered Absent

Until I went into Boots (pharmacy), I was convinced that there was no Diet Pepsi in Belfast. The sugared varieties were widely available, but for non, Diet Coke and Coke Zero were what was widely stocked. There was a very-subtly-labeled non-sugar Pepsi MAX in some stores, but it doesn’t taste like DP, which I’ve reluctantly gotten used to over the years.

I can drink Coke Zero, but I don’t like it much unless it’s been dosed with Splenda. (liquid; the sweetener packets have a Mentos effect)

Cookies Considered Cooked

European Internet is not my friend; it’s just too damn annoying with all those “privacy” popups demanding that I either accept all cookies or spend three minutes de-selecting “legitimate interest” checkboxes and dodging deceptive buttons.

Spoiler alert: hey, tracker-boy, your fucking cookies will get auto-deleted anyway when I close the window, so it does you no good to get cute and try to hide the “no, I don’t want to blow hobos in an alley” option behind a wall of text. Also, 99% of your ads are being blocked by Pihole anyway, so fuck y’all.

Sadly, actually preserving my privacy exposes me to 10 times as many protect-your-privacy popups. Sigh.

(and how exactly does visiting a store’s site to find their (incorrect) hours create a “legitimate interest” for 518 third parties across a dozen categories?)

(note that blocking ads with a Docker-based Pihole on a Mac now requires manually disabling the kernelForUDP flag in Docker’s settings.json to stop it from screwing up the ability to bind to port 53)

Pastries Considered Decent

Two of my co-workers took me out for a walk around the neighborhood. Y’know, the one where the recent riots kept them away from the office for two weeks. On the way back, we stopped in at a local bakery where Paul was determined to buy me a proper Northern Irish pastry. He chose the Flies’ Graveyard, which wasn’t as sweet as I expected, being basically a currant jam pastry sandwich sprinkled with sugar.

(I’m sure all the walking was good for me, but my left knee was happy when it stopped; even with an aisle seat on the way out and no one next to me on the way back, flying coach forced me into uncomfortable positions)

(I amused myself by thinking of how I’d feed them proper native food in Ohio, which basically comes down to Wendy’s Frosties and Cassano’s pizza; I don’t count Skyline Chili as proper Ohio food, since I’d never heard of it until college)

(it would be amusing to feed them London Bobby Fish & Chips, but that brand’s been basically defunct for decades, and is only available at a few Cassano’s locations)

Dear Harris Campaign Aides,

If Kamala asks you to carry her pager, just say no.

March Of The Useful Idiots

The jew-haters were out in force Saturday, proudly marching down the streets of Belfast carrying professionally-printed signs and custom-made Palistinian-solidarity flags, banging on drums, and shouting slogans comparing Israel’s “occupation and genocide” to historical English oppression of the Irish.

Y’know, morons.

Gift shopping

Since I extended the trip over the weekend, I was able to hit a craft market for presents: St. George’s Market (small, but I met some nice local crafters). I also stopped in at Carrolls Irish Gifts on Thursday, because Thursday. I made one final stop at Carrolls on Monday, to pad out the small gaps in my suitcases, mostly with good wool socks.

Tourist-y things

I reluctantly bought a ticket for a small full-day group tour to Giant’s Causeway, with an assortment of other sites thrown in. I’d have preferred to just go there on my own, but my schedule was tight, and this was the best thing I found that didn’t involve hiring a driver for several hundred Pounds.

I have zero interest in Game of Thrones filming locations, negative interest in anything related to the Titanic (ship or movie), and complete indifference to The Troubles, so this was pretty much my only “tourist” activity.

The coastal drive was quite scenic, which was a significant improvement over the path the Aircoach takes to and from Dublin; you could basically only see the trees lining the highway.

How was it? Giant’s Causeway itself was a lovely rocky coastline with a brisk wind. Fortunately we had un-Irish weather the entire week, so it was sunny and warm enough for a light jacket.

The Dark Hedges did nothing for me (“um, a row of trees?”), the Bushmill Distillery was just for shopping, and the other minor stops are blurred together in my memory.

Connections…

Bushmills Village had a bunch of signs on the streets featuring an assortment of largely American celebrities. Our bus was just driving through, so I couldn’t read the fine print, but Neil Armstrong was one, which didn’t surprise me since I was vaguely aware he had Irish roots. But The Beverly Hillbillies? I’m guessing they were supposed to be descended from Scots-Irish Planters, but I don’t know if that was ever stated in the show or just assumed.

Note to self:

Next time I order British currency, don’t let them give me so many £50 notes; most of the places that’ll take them, I’m spending enough to use a card anyway. I want an even mix of £5, £10, and £20 notes, and a decent amount of £1 and £2 coins; a few £50 notes only if there are new craft markets to visit.

Ten Square

The company put me up at Ten Square Hotel, which was a nice place with only one real flaw: live music on weekends, which I could hear from my third fourth-floor room until at least midnight.

Not well enough to enjoy it, even if it had been pleasant, just enough to annoy me with thumping bass coming up through the walls and vibrating the headboard.

(my room was of course nothing like the suites in their gallery; pretty standard, really, with nothing noteworthy about it)

Fall anime

(which should start premiering around the time I catch up on the last few shows I was watching this season…)

  • Shangri-La Frontier 2: Choco! Bunny! Good Good!
  • GGO 2: The return of LLENN.
  • Loner Life In Another World: the “loner” quickly gets surrounded by hot chicks, and eventually ends up banging two gorgeous gals every night in increasingly depraved ways while occasionally molesting the other hot chicks with his magical tentacles. Downside: he’s somewhere between incomprehensible and batshit crazy. Screenshot material, basically.

Priorities…

As I was coming out of HellCat Maggie’s Sunday afternoon into the first rain I’d seen since arriving in Belfast, I found two college-age men waiting for it to stop. They were friendly, first joking around with an older gentleman who was heading in, then chatting with me. Their primary interest: was cannabis legal where I lived in the States?

(for family reasons, I could not possibly ignore a diner named Maggie’s; TL/DR: decent pie and champ, slightly undercooked chips)

(best chips I had? The Nook at Giant’s Causeway; pity I didn’t have time for a full meal, since the driver highly recommended the place)

Dear xTwitter,

Please stop making me manually choose to sort replies by “latest” every fucking time I click on a tweet. Your opinion of what’s relevant is not interesting to me.

Also, what’s up with scrolling back to the top of the thread every time I mute an ad?

Mid-week miscellany


Blogging’s going to be light-to-nonexistent next week, for business reasons.

Labor of Love?

I did not have a brand-new Negima! online RPG with microtransactions on my Bingo card. It doesn’t sound like a gotta-poké-em-all game…

Core competencies!

There are days when it’s quite clear that the people pasting English onto product pictures at Amazon have no idea what the words mean.

Anime adaptations we need…

…based on how this season has gone: Elf With Bikini And Machine Gun.

(from the author of the novels Cat Planet Cuties was based on)

If you mindlessly smash clay pots to music…

…is that Terracotta In A Fugue, To D Minor?

(…or are you just in a Zelda game?)

Pr0n and Virtue (signals)


“My AIs are up here!”

WIRED has the vapors over third-party auth services like Google, Apple, Patreon, X, Line, etc, being used to… authenticate to web sites; specifically, the sort that paste heads onto naked bodies. I’m sure they tried to blame Elon Musk, but reluctantly had to admit that X’s auth wasn’t the only one being used.

So, nothing to see here. Literally; it’s like the folks at WIRED and Ars have never heard the phrase “pics or it didn’t happen”. 😁

I’m sure there’s a ToS issue in there somewhere, but they seem to be particularly upset at the idea of teenage boys using the sites to generate imaginary nudes of their female classmates, demonstrating that they’ve never met a teenage boy.

“What’s holding back America’s move to electric cars?”

asks Slashdot, quoting The Verge’s transportation editor.

Answer: electric cars.

See also “winter”, “spontaneous combustion”.

UC2P: the testining

Building a test suite for a PDF generator requires some way of validating what ends up in the binary output file. For PDF::Cairo, I supplied a reference PDF file and used Poppler’s pdftocairo to render to PNG for comparison. Unfortunately, what this really ended up testing was the underlying libraries rather than my code, which is why the CPAN automated tests keep breaking.

For this script, my testing can be limited to determining that known text ends up in the correct region of the page, at the correct size, and it doesn’t have to be precise. It turns out that Poppler’s pdftotext extraction utility has a -tsv option that reports the bounding box of each word on every page, which will suffice.

Once that’s in place, I think I’ve got everything compatible as far back as Python 3.9.x and Reportlab 3.6.x, and for the regular test suite I can just dump the internal state object to compare to a reference version stored in Configparser format.

But I still think I’ll work on page-styling first.

“No scissors, no fly”


Isn’t this part of the origin myth for karate?

Thirty-six flights were cancelled at an airport in Japan, because a pair of scissors went missing. Spoiler: the scissors weren’t actually missing, they just weren’t in the secure locker where they were supposed to be stored between authorized uses.

International political comparison left as an exercise for the reader.

(this is one of those shows that has a triple fuckton of fan-art, almost none of which is any good)

Back-and-forth on Typeface app

Y’know, I often disagreed with Tog’s classic Apple User Experience standards, and with many of his later recommendations, but it was all evidence-based; his teams tested the hell out of everything, and produced clear, usable rules. Now, with the modern Apple feels-over-facts lack of any standards, I realize that the reason I’m having difficulty communicating with the author of Typeface is that we don’t even speak the same language. Neither in UI design nor in typeface management.

He doesn’t seem to understand why scattering information all over the screen is bad design, or why adjusting the font display with a mix of menus, buttons, popups, pulldowns, and modifier keys, often requiring you to move the mouse 6+ inches between steps, is bad design. Sigh.

Speaking of type…

I’ve completely overhauled my old termanal script that analyzes fixed-width fonts for their suitability for coding (vertical alignment of characters commonly used together in code, common width for math operators, precise metrics, and full metadata), and it now generates JSON output for all the fonts you feed it, allowing me to generate comparison tables for my whole collection, as a technical companion to programmingfonts.org.

All of this is being done by calling the tx and ttx tools from the Adobe Font Development Kit for Opentype (AFDKO). With the right options, they can export pretty much all the usable data from a font, including the actual glyph outlines.

This gave me an idea for calculating something termanal doesn’t do: estimate the color of the font. That is, how thicc are the glyphs, and therefore how dark does a line of text look.

  1. ttx exports selected glyphs from a font as an SVG font.
  2. I thinly wrap that into a complete SVG file that prints each glyph in a known location at the same (large) size.
  3. inkscape renders each glyph to individual PNG files.
  4. magick counts the number of black pixels.
  5. divide by set-width * (ascent - descent)
  6. average the results over N typical glyphs.
  7. profit!

And it even worked on the first try, more or less, although the launch overhead for inkscape seems to dominate, producing the odd result that it takes twice as long to render everything at 10% of the size, while 50% is twice as fast. I’m going to tinker with batching things up so I can call inkscape and magick only once and have them work from tempfiles instead of directly piping from one to the other. This might involve switching it to Python, since all the components appear to have some degree of API support.

I named it coloranal, of course.

Anyway, have some cheesecake:

Clarification:

Inkscape doesn't actually support SVG fonts (in fact it silently ignores them, hence the "more or less" for my first try), but the "d" attribute of a glyph is identical to the "d" attribute of a path. They're just vertically flipped. Which, honestly, doesn't matter for this use. 😁

<glyph unicode="y" horiz-adv-x="600" d="M131,-217C241,-217 300,-140 338,-42l213,552l-78,0l-106,-287C350,177 332,124 315,76l-4,0C291,125 270,178 251,223l-119,287l-83,0l227,-512l-14,-36C236,-105 196,-149 128,-149C113,-149 97,-146 84,-142l-17,-65C84,-213 108,-217 131,-217z"/>
<path id="y" d="M131,-217C241,-217 300,-140 338,-42l213,552l-78,0l-106,-287C350,177 332,124 315,76l-4,0C291,125 270,178 251,223l-119,287l-83,0l227,-512l-14,-36C236,-105 196,-149 128,-149C113,-149 97,-146 84,-142l-17,-65C84,-213 108,-217 131,-217z" transform="scale(1,-1)"/>

2.5D...


Finally, a reason for the Chubby Elf series to exist:

So Ai Shinozaki can cosplay her (site not safe for work or Javascript):

…without the “chubby” part…

Drinks I won’t buy again…

Before I bought my SodaStream, I was a regular consumer of the Sparkling Ice pink grapefruit drink. It was always a hassle to find an adequate supply in stock locally, largely due to the same problem Snapple has: shipping mixed cases to push flavors that don’t sell.

Recently, they released a bunch of branded Starburst flavors. I bought a few, and I regret doing so, because they tasted like melted creamsicles.

Accessibility Lite

So I sent feedback to the author of Typeface, and he already had a beta update that increases contrast. Good: I can now read the nearly-black-on-nearly-white tinyfonts in the sidebar, and usually tell the difference between the dark-gray inactive tiny dot and the blue active tiny dot. Not so good: the nearly-black not-in-font placeholder characters are basically impossible to distinguish from the black preview characters. So, baby steps.

He also asked what I meant about wanting more detailed views, so I fired up FEX for some screenshots that demonstrate the difference between visualizing fonts and managing them. We’ll see what comes out of that.

File under amusing that while the normal state of font activation is two slightly-different tiny dots, hovering the mouse over the dot changes it to a larger distinctive icon showing the state you can toggle it to (minus-sign if it’s currently active, sunburst if it’s currently inactive). There’s also a padlock to indicate system fonts that can’t be deactivated, which you almost never want to see, and can filter out by the obvious method of Option-Right-Clicking on the “Font Book” collection in the sidebar and selecting “Add inverse to filters” (or manually typing the equally-obvious “#!//font-book” in the search bar).

Slow week in progress


No anime ’til Thursday

Red Cat, Cosplay, Furless, Dungeon People, Chibis, and Cheer are not pre-empted by Olympics coverage. Also Elseworld Fail, for those still watching the tale of the catgirl and her novelist.

Good tree, bad tree

The little tree that was underneath the huge (~10-inch diameter, ~50 feet long) fallen branch survived! My arborist and his crew showed up Monday afternoon and cleaned things up.

The bad news is that they have to come back and take out another branch on the big tree (as big or bigger) before it falls toward my house. It probably wouldn’t hit the house, but it would do serious damage to my landscaping, and possibly also to the patio.

I’m having him evaluate the health of all the trees on the side lot, just in case.

The downside of ghost kitchens…

There’s a restaurant I can order bao delivered from, and they’re pretty good. They also sell several flavors of rice bowl, pan-fried potstickers, and steamed dumplings; those are not so good. TL/DR: they’re a ghost kitchen hosted in an Italian restaurant, so pretty much all they know about Chinese food is how to warm it up; this is sufficient for bao shipped to them frozen, but the one time I ordered the “pan-fried” potstickers, they weren’t even steamed well.

(now, ghost kittens, on the other hand…)

I searched for “belfast”, but…

…Google mostly returned keyword matches on ‘northern’ and/or ‘ireland’ instead. This was not useful.

Meanwhile, in a nearby PDF file…

I added a few more boxes to the prototype script, recreating the classic look. Since I support every paper size known to Adobe, I stress-tested the scaling by rendering it on 4x6 photo paper. Credit-card size was a bit too far; the body font ended up at 1.25pt. 😁

Since Platypus isn’t useful to me, I have to write all the line-wrapping and text layout myself, and the only real wrinkle there is ensuring I correctly handle double-width CJK characters when wrapping; I’m not concerned about the language-specific issues of breaking words and strings; this is classic “wrap at column N no matter what” style.

For this particular application, I don’t think I need the really-precise metrics that I developed for PDF::Cairo, which involved pre-rendering test strings in each font and seeing the height and width of what actually gets painted onto the page, but if I do more with Reportlab, I’ll probably need to tinker with reportlab.graphics.renderPM (Cairo) and Pillow’s getbbox().

Random roundup


Yup, that ought to do it

In response to the big hacked-password dump, noted security site The Daily Mail suggested:

“Users can check if their password was leaked by visiting the Cybernews site and entering their password.”

Wow, they really packed the suck in

Even if I had an AppleTV+ account, I would not be watching the new Time Bandits series.

Making friends fast…

The cover for the upcoming Molesting Magical Girls Fan Book (Super Gushing Version) has been announced. Eyecatching, innit?

RADIUS considered harmful

Another day, another reason to be glad I’m not in IT any more: all versions of every RADIUS server vulnerable.

“🎶 Hail to the chief, he’s the best of all the surgeons…”

(I’d link directly to the classical reference, but I can’t find that scene on Youtube)

It is claimed that the Marine Corps Band was ordered to play a special theme song whenever Dr. Jill Biden appeared, an order rescinded when someone actually did journalism to it. I don’t understand why they had to write an original piece when this was available:

Inside The Tentacle Cave

Amazon’s been recommending this hentai manga to me recently, and I checked out the previews. It’s a fantasy-world harem where the harem lord is a non-sentient slime that absorbs skills and powers by eating male adventurers so that it can improve its ability to forcibly satisfy female adventurers and impregnate them with little slimes. Written with all the wit and anatomical expertise of a fourteen-year-old boy who’s never touched a tit.

Rimuru’s endless board meetings are suddenly looking a lot better.

“Need a clue, take a clue,
 got a clue, leave a clue”