Fun

Gastro-astronomy


Dick Blick Ships Quick

No, I’m not buying art supplies now, but the combination of Brickmuppet’s recent Seussian links and Nespresso’s order fulfillment brought that old slogan to mind for some reason; my dad was a regular customer when I was a kid, and I have fond memories of their catalog.

As I’ve started to develop some ability to discriminate between the various available coffee pods, I’ve taken advantage of their new-customer offers to round out my stash. I now have more of Nespresso’s little jewel-like pods than I have of my precious Gevalia Mocha Latte K-cups, although they get consumed faster due to the general lack of calories; two Splendas and a Calf don’t add up to much. So far, Capriccio is the only one I can almost drink black.

Anyway, the order I placed Saturday morning not only arrived before noon on Monday, the pod sleeves were actually all carefully lined up so that all the labels faced the same way when I opened the box. A small touch, but like the free express shipping, a sign that they’re really focused on the customer experience. Important when their closest retail boutique is a good sixty miles away and their branded pods aren’t stocked in any stores near me.

Peet’s has the only good third-party pods in grocery stores, as far as I can tell. I found Illy pods in the Williams-Sonoma at the south end of Monterey, but that mall’s a rare destination for me, and not a place I’d go to stock up on consumables anyway; I only went in out of idle curiousity since I was in the area.

Great Red Spot

I’m not the Instagram-y sort to post pictures of all my food, but it amuses me to post the combined output of my three electric coffee appliances. I hereby present the Mocha-Latte/Red-Eye/Macchiato, in my 20-ounce Bosmarlin mug:

That’s a Peet’s Crema Scura espresso pod, 2 Splenda packets, a 12-ounce strong pour through a Mocha Latte k-cup with the froth packet already stirred into the espresso, topped with 60ml of whole milk run through the foam-as-a-service gadget on its “Latte Macchiato” setting (yes, vibration control seems to be the key to using less than the recommended minimum volume). ~125 k-cals.

Normally I do 14 ounces through the k-cup and add two Calfs, but I figured the milk I needed to use up would compensate, and it did. Previous attempts to add a 40ml espresso shot and a full 100ml of foamed milk on top of that had proved too substantial, both for the mug and for the first drink of the day, so I was up for expanding my FAAS testing parameters.

Send moar spiders, plz

Unrelated silliness from Hoyt.

Low-Code Noodles


Noodle Stoppers are a thing

Things I learned on Amazon recently: there is an entire class of anime figurines designed to sit on your cup noodle to keep it closed while the hot water does its work.

I think the $62 Nitocris is a bit pricy for this, though. I don’t think it would even be safe to work at home with the Super Sonico or Kanu toppers, but the Yui is cute.

Pricing is between reasonable and outrageous, naturally.

Which one did I buy? I’m not telling, but it isn’t one of the ones I’ve linked above. And it won’t go onto a cup noodle; I’ve upgraded to a better class of ramen over the years.

Apple: “I have altered the deal”

Apple’s Rosetta x86-to-ARM translator to be removed in OS update?. Sounds like a licensing issue, since it’s region-specific.

Learn To Low-Code

Microsoft is embedding Excel in YAML. Even after reading the “PowerApps” blog, I haven’t the slightest fucking idea what low-code is good for, apart from scattering business logic across an environment even less sensible than malware-infested spreadsheets.

Pod extract

I cracked open four of the useless “Archer Farms” Nespresso-incompatible pods and successfully brewed Aeropress coffee with the contents. Not bad at all. As expected, it was too finely ground for the Aeropress, requiring quite a bit of pressure even with only one filter (by comparison, with standard commercial ground coffee, I use three filters and still don’t have to press as hard).

Four pods was a bit less than the two scoops I generally use for 12 ounces of coffee, but with the fine espresso grind, it extracted more in the same amount of time/water, so it worked out. One more cup will use up the rest of the box of pods, and then I can crack open the Gevalia pods and see what I get.

1Password CLI notes wrapper

#!/usr/bin/env bash

# simple wrapper for creating/editing 1password secure notes from the
# command line, using https://1password.com/downloads/command-line/
# requires jq and md5sum (just to avoid uploading unchanged files)
#
# must do an initial full sign-in, like this:
# op signin my.1password.com jgreely@example.com --shorthand jgreely
# (using your sign-in url, account name, secret key, and password)
#
# The named vault must already exist in your account.

SHORTHAND=jgreely
VAULT=Notes
EDITOR=emacs
TOKENFILE=~/.1p_token

SESSION=
if [ -f $TOKENFILE ]; then
	SESSION=$(<$TOKENFILE)
fi
if ! op list vaults --session $SESSION >/dev/null 2>&1; then
	rm -f $TOKENFILE
	SESSION=
fi

if [ ! -f $TOKENFILE ]; then
	SESSION=$(op signin $SHORTHAND --raw )
	touch $TOKENFILE
	chmod go= $TOKENFILE
	echo $SESSION > $TOKENFILE
fi

TMPFILE=$(mktemp /tmp/$(basename $0).XXXXXX)
OPTS="--session $SESSION --vault $VAULT"
case "$1" in
create|new)
	shift
	TITLE="$@"
	if [ -z "$TITLE" ]; then
		TITLE="(untitled)"
	fi
	$EDITOR $TMPFILE
	op create item "secure note" notesPlain="$(<$TMPFILE)" --title "$TITLE" $OPTS > $TMPFILE
	UUID=$(jq -r .uuid < $TMPFILE)
	echo "UUID: $UUID, TITLE: $TITLE"
	;;
list|ls)
	op list items $OPTS | jq -r '.[]|[.uuid,.overview.title]|@tsv'
	;;
print|cat)
	shift
	UUID="$1"
	op get item "$UUID" --fields notesPlain $OPTS
	echo
	;;
less|more)
	shift
	UUID="$1"
	op get item "$UUID" --fields notesPlain $OPTS | less
	;;
edit)
	shift
	UUID="$1"
	op get item "$UUID" --fields notesPlain $OPTS >> $TMPFILE
	md5sum $TMPFILE > $TMPFILE.md5
	$EDITOR $TMPFILE
	if md5sum -c --quiet $TMPFILE.md5 >/dev/null 2>&1; then
		echo "(file not changed)"
	else
		op edit item "$UUID" notesPlain="$(<$TMPFILE)" $OPTS
	fi
	;;
delete|rm)
	shift
	UUID="$1"
	op delete item "$UUID" $OPTS
	;;
*)
	NAME=$(basename $0)
	cat <<EOF
Usage: $NAME [new|ls|cat|less|edit]
    new TITLE
    ls (returns UUID and TITLE)
    cat UUID
    less UUID
    edit UUID
    rm UUID
EOF
	;;
esac
rm -f $TMPFILE $TMPFILE.md5
exit 0

Mega Moos


Long Since Begun, The Clone Wars Have

On the left are two Nespresso-branded capsules (Capriccio and Tokyo Vivalto Lungo). In the middle, you can see good third-party pods (Peet’s Crema Scura and Illy Classico Espresso); slightly different construction at the base, but dimensionally identical to the real thing and completely compatible, including recyclability.

On the right, two plastic clone pods. In front, Gevalia Luminous, which is extremely mild compared to, well, anything else I’ve tried; real espresso lovers seem to describe it as weak, pathetic instant coffee. Unlike the above, it’s not even worth trying it in the larger “lungo” pour, even for someone like me who likes his coffee tarted up in French lingerie and four-inch heels. Pity, really, because I like their k-cups and bagged coffee.

Back right is a thing of pure evil, the Target house brand “Archer Farms”. Where the Gevalia pod will put some of the coffee into your drip tray and some of the grounds into your cup, this nasty thing barely functions at all, making my Essenza Mini strain to push water through it, with the lights flashing in warning, and delivering maybe half the volume of coffee. Safeway’s house brand shows a picture of the same kind of cheesy plastic/foil pod, so I would never try those, either.

I’m going to cut open the remaining Gevalia and Target pods to see how the contents work in my Aeropress. The grind is likely too fine for easy pressing, but there didn’t seem to be anything wrong with the coffee, just the pods.

(Gevalia markets their pods as compostable, but apparently they mean professionally, don’t-try-this-at-home compostable)

Carnation half-n-half tubs

How do they manage to keep customers with a 5% failure rate? I’m shaking each tub as I pull them out of the box, to make sure they’re still liquid. I’ve never had a failed Mini-Moo.

I’ll have to see if someone else sells real half-and-half creamers. You have to read the labels, since many will prominently claim to be “half-and-half” but contain no actual dairy products. “Half what and half what?”

Costco sells a different brand through their business centers, but doesn’t seem to stock it in warehouses. costco.com stocks Mini-Moos, and claims they may be available in warehouses; I’ve never seen them there.

I could also just buy actual pint containers of half-and-half while California remains under Corona-chan Quarantine, but I like the shelf life and portion control of the little tubs.

No shit, Pixiv…

I think we’d all figured this one out.

The real surprise is that only 60% of the recommended images were by Houtengeki (NSFW).

How many real combat drops?


“Am I living in a simulation?”

If you’re banging Salma Hayek, the answer is yes. Duh.

StadiOn

This story about the implosion of Google’s in-house Stadia game-development company sounded like such a familiar clusterfuck that I found myself searching for Steve Perlman’s name.

SolarCluster

Former security company SolarWinds has blamed an intern for a leaked password associated with their massive fail, that turned out to be ‘solarwinds123’:

“a mistake that an intern made… They violated our password policies and they posted that password on an internal, on their own private Github account”

If an intern was in a position to set a password that was used by anything more sensitive than the third-floor laser printer, and you had nothing in place to enforce your ‘policy’ or detect lapses, and the thing that password gave access to was somehow Internet-accessible, your entire business model was a complete fraud.

I can think of plenty of stupid-password stories, including the time the new Core Services Group full of Senior System Administrators changed the root password on all the infrastructure servers to be the bullshit temporary password we’d been giving to every new employee for years (“iltwas” = “I Love To Work At Synopsys”), but that was so long ago that everyone on the Internet had a public IP address and Netscape still thought they had a viable business model.

Pokemon Shogun

Nintendo is promising a real open-world Pokégame, for next year. This year will just be another remake, this time of Diamond/Pearl. Both of these surprised me, because I’ve been assuming they’d just keep adding DLC to Sword/Shield; a lot less development work and a license to print money.

“I invented a thing!”

He seems to have survived the Internet’s immediate response that VW’s been selling that exact same thing for years.

What’s in a name, enscript edition?

I’ve been poking at re-implementing enscript from scratch, because the GNU clone of this ancient Adobe tool is cruftier than a cruftwyrm in a cruftstorm, tarted up with all kinds of useless crap that interferes with the core functionality of printing a damn text file.

There is no equivalent software available for any platform at this time. You can get some kind of printout from text editors, but black text on white paper in a fixed-width font is just too primitive to attract the attention of modern skittletext-loving dark-moded 20-year-olds with perfect eyesight and an addiction to running everything inside an Electron app.

I’ve got a long list of necessary and forbidden features, and a tentative implementation plan (Python3 + free version of Reportlab), but what I really need to focus on is bike-shedding the name.

Goal: clearly suggest the fundamental purpose of cleanly converting TXT to PDF in any modern fixed-width Unicode font, optionally including the implementation language as a discriminator. Continuity with the long history of the tools in Adobe’s TranScript package would be a plus, but I think that ship has sailed, wrecked, and sunk to the bottom of the ocean.

Unfortunately, I can’t find a single name that includes any of text, txt, pdf, lp, script, tran, en, etc, that isn’t either already in use by another likely-abandoned open-source package, registered to a terrorist group, or simply horrible. Assorted uses of “2” and “to” don’t improve the situation in any way. Honestly, the least-horrible options I’ve come up with so far are “pdftty” and “qenscript”. One can’t be pronounced these days without being canceled, and the other sounds like the companion app to barbiescript.

[the long-abandoned source code for the original Adobe TranScript package is visible online, by the way, but Project Athena’s ancient Trac server requires an MIT login to actually download anything; I might still have a copy somewhere from ~1992, if the files on that tape ever made it to a zip drive that made it a USB disk that made it to a NAS that made it to another NAS. Actually, I know I still have it, but I’d have to find something that can read original NeXT single-sided optical disc cartridges, and then hope they’re still functional.]

So after all that…

…it turns out that the version of “Sex (I’m A)” that Alexa will play by default is not the original version from the album Pleasure Victim. It’s a re-recording with offputting synths, Terri Nunn emphasizing her lines oddly, and some other guy taking the male role and being mixed too prominently. The simulated moaning has also been redone, really badly.

A bit of digging suggests that this is the version from the album Metro: Greatest Hits, which continues the usually-disappointing trend of Alexa choosing the most recent version of a song rather than the one I actually want to hear. Often this is a terrible live version by the wrong band, and adding “the album version of” will help, but if I have to write extremely specific incantations to safely summon a song, I might as well switch to demonology.

(for instance, I learned to add “the song” after the time I said “play chitty chitty bang bang”, and the TV turned on and started playing the movie)

Unrelated, Why isn’t this cat happier?

Coffee spiders


Supply, Chained

I am no longer short on liquid pie. Last week I spotted a marketplace dealer whose price on Gevalia Mocha Latte k-cups was sensible, and today my monthly subscription arrived on schedule and without a surprise cancellation, so I’ve got nearly a three-month supply, with the earliest expiration date in November. I still haven’t seen it in stores, but Corona-chan was bad for variety in a lot of areas, and I think big-chain buyers are still playing it safe.

Usually I limit myself to one of these per day, and with the supply uncertain, sometimes less, but now the only thing holding me back is the calorie count. Which is reasonable (110, with two Mini-Moos), but still adds up during cold* weather.

(* for the California coast)

Continuing with my recent trend of Amazon shipping fails, one of the 36 k-cups in this shipment somehow managed to burst, spilling finely-ground coffee everywhere. Fortunately the boxes were in a sealed outer bag, but I had to open them all up and wipe down every k-cup and froth packet. There was no sign of rough handling, so I’m inclined to believe it was that way before it left the warehouse, and whatever human or robot did the packing didn’t notice or care.

Another coffee machine!

Despite money burning a hole in my pocket, I managed to keep myself to only one new toy, a Nespresso Essenza Mini espresso machine. I worked my way through the supplied variety pack of coffees, and, taken straight, I honestly can’t tell the difference between most of them. Maybe it’s just that they all seem to be darker roasts, but the high-pressure extraction method produces less-distinguishable flavors than my Aeropress.

So far they’ve all responded well to Splenda and Mini-Moos, though, and their “Fortissio Lungo” topped off with whole milk turned out quite nicely. I don’t have a milk frother or steamer, and I don’t plan to buy one any time soon; that just seems like work. I usually only buy milk for cooking and baking, and for the past year I’ve gotten into the habit of buying UHT whole milk in 8-ounce lunch-packs, to avoid supply-chain disruptions while keeping it from going bad on me.

I didn’t have any actual demitasse cups in the house, but a saké ochoko will hold an espresso shot, and the larger thick-walled ceramic guinomi set I picked up cheap at Daiso has room left over for a Moo, and holds the heat nicely.

After having lived with k-cups for a number of years, the biggest surprise with the Nespresso machine is how much, and for how long, liquid drips into its two drip pans afterwards. I’ve never had to empty a k-cup drip pan, only give it a quick rinse when I’m cleaning the kitchen.

Chicks In Chains

Coming back from a trip to the Nob Hill south of town, I was pleasantly surprised to see nearly-completed new construction at the local mall. I hadn’t known that Chik-Fil-A was coming to town, but I’d expected it to happen eventually. The hate-fueled campaign to destroy them backfired big-time, and they’ve greatly expanded their presence in California since then. They’ve been putting in stores north, south, and east of me, so it was only a matter of time before Salinas got one.

Interesting that they skipped Morgan Hill and Gilroy, especially with the big outlet mall, but maybe the timing just lined up better with the construction at my mall.

Doin’ whatever a spider kin

I’m still idly watching That Spider Show, and episode 7 was the first time I didn’t actively hate the crew of the B Ark. Well, some of them, anyway. For a few minutes.

Undocumentation

The 3D printer nozzle that arrived yesterday was for an experiment that I can’t really start yet. I’ve built up a pretty solid Cura profile for the Dremel 3D45 with the standard 0.4mm nozzle, and I thought I’d come to understand its inheritance system, but I just can’t get the damn thing to locate the correct quality profiles when I add variant nozzle sizes into the mix.

It seems to require a config file for each (material, nozzle, quality) tuple, but when I generate them with a script, it can’t find a match, and the log messages are not helpful. The only good thing is that it’s not complaining that they’re corrupt and asking to reset everything to defaults.

It would be significantly less work to just generate a completely separate config for a “3D45-0.8” model printer.

UnDirecTV

I officially no longer owe AT&T for the DirecTV equipment that I immediately returned after canceling my account. The proof is that they sent me the money I’ve been owed since November. On an $8.79 prepaid Mastercard debit card that I have to figure out a use for.

Secure By Design

I’m just going to leave this here:

“…the malicious package is said to leverage the macOS Installer JavaScript API”

I find this approximately as comforting as if they’d said, “the Installer’s PHP-based SQL interface”.

Cash Leveling


“Tomorrow, we have to decide which country we want to buy”

Went through the first pass on my taxes last night, and came out better than expected. That is, the two different employers, large severance check, and stock sales (options, ESPP, RSU) were effectively balanced by the extra amount I had withheld and the amount my new job over-withheld for Social Security, etc, leaving me with my usual close-to-breaking-even little refund checks. I’ll let it bake a week in case some late paperwork or surprise changes arrive, but it looks like the money I carefully saved for potential tax payments goes into my pocket instead. And there’s a semi-annual bonus on the way.

But I’ve already said that I’m not buying a new car this year, or a new computer, or a new camera, no matter how Sony tempts me. Oh, my. Wait, this one has gigabit ethernet?!?

We haven’t finalized the dates on the re-re-re-rescheduled Japan trip, but it’s currently “three weeks in November”, with enough time in Tokyo for me to spend way too much money. Probably not on camera gear, unless I find myself in a shop full of classic Minolta lenses…

Maybe this will be the trip where we take a few overnight trips off the beaten path. I’ve already penciled in a day trip to Kamakura and a whistle-stop tour of Nagoya (mostly for the Totoro House) on the way from Tokyo to Kyoto, but Nikko and Amanohashidate would benefit from full days, and a return visit to Ise would be cool, too. My sister’s not a big fan of cable-car rides, but she might go for an overnight stay at one of the many temples on Mt. Koya.

Solo Leveling Offline

File under peculiar the fact that the first half of the Solo Leveling light novel is out today in paperback only. No Kindle edition listed at all. I’d have to wait an entire day before I could start reading it. I think I’ll hold off for a week or so to see if the ebook turns up.

Which reminds me to check up on the online comic, which was supposed to start back up this year.

Reborn In Another World As A 3D Printer


I’d Rather Summon The Mazoku Musume

Lacking anything else to watch, I made it most of the way through the first season of How Not To Summon A Demon Lord. The main elf girl has ridiculous gag boobs made of pudding while the main catgirl is pure AAA-cup angst, but most of the other females are somewhere in between, which is refreshing after Highschool DxD.

It’s better than those other fan-service comedies I’ve attempted to watch recently, although Our Demon Lord’s social-anxiety freakouts get old fast. It seems to run at the usual light-novel adaptation pace of four episodes per book, which is too fast if the cast is large and there’s any non-trivial world-building. In this case it only feels slightly rushed and sparse, as if the original author hadn’t gotten around to doing those things yet in the first three books.

Note that the original title is a bit more direct: 異世界魔王と召喚少 女の奴隷魔術 = “other world demon lord and summoning-girl slave magic”. Pretty much what it says on the tin, although the Crunchyroll version restricts itself to pokies and not-quite-sexual climaxes. That said, the flatcat girl did take an offscreen finger in the last episode I watched.

Season 2 coming in April.

Cutting the strings

When I switched back from PETG to PLA and tried to print the mini traffic cone that was filled with spiders, I still got some spider-webs. Fortunately, I’ve been keeping my WIP Dremel configs in source control, and determined that I’d inadvertently deleted an important option from my top-level definition file:

"infill_before_walls": { "default_value": false }

The default inherited from fdmprinter.def.json is true, and a cone is pretty much the worst-case scenario for this, cutting across the circle from the end position of one layer to the start of the next, smaller layer. Adding this back eliminated every single bit of stringing inside the cone.

Tarball updated. Several times, actually; among other things, retraction_extra_prime_amount is something that can’t be overridden on a per-filament basis. You have to create a whole set of filament-specific quality overrides, which I generated with a script, because I’m up to 10 quality settings now. Each one contains a dozen lines of boilerplate and one actual setting line.

Which reminds me that I’m due for a rant on the fact that Cura uses three completely different file formats to store configuration information: XML, JSON, and Python’s ConfigParser (which is more-or-less Microsoft Windows INI format). Machine and extruder definitions are in JSON, quality settings and variants (like different nozzle sizes) are ConfigParser, and filament definitions are in XML. Some settings are valid in any file, some only in specific ones, and the only documentation is some help strings in fdmprinter.def.json. If there’s any good documentation, it’s not on Ultimaker’s support site or Github repo wikis.

Then there are settings that I couldn’t find in any file, including some that caused Cura to decide that all my configs had been corrupted and needed to be wiped, after I added or removed things from its directory. I let it do the reset once, to clean out a bunch of cruft; downloading filament profiles from their marketplace was a mistake, and saved custom settings are “messy”, to put it gently. Since then, I’ve kept tarball snapshots as I tinker.

Note that their contribution policy is to only accept new printer definitions from the actual manufacturer, so even if I (or the other guy) produce really awesome config files for the Dremel, they won’t merge a pull request.

Useful Cura plugins

  1. RawMouse: enables support for 3DConnexion 3D controllers. I’ve been using mine extensively with PrusaSlicer, and kinda-sorta with OpenSCAD (where it doesn’t work very well). 3d mice are worth every penny, if all your core apps support them. Cura doesn’t, and doesn’t offer a plugin in the marketplace, so this one’s on Github.

  2. Z Offset Setting: tweak the Gcode output up or down to compensate for nozzle height and material differences.

  3. Auto Orientation: try to orient models to reduce the amount of support needed to print them.

  4. Custom Printjob Naming: simple, flexible way to embed useful information in Gcode file names.

  5. Startup Optimizer: hide the cruft (dozens of printers and materials you don’t have) so Cura doesn’t try to load it all.

  6. Setting Visibility Set Creator: lets you override the standard basic/expert/advanced modes to expose only the settings you actually tinker with.

  7. Export HTML Cura Settings: only useful for A/B testing, but really useful for that. This is how I diffed two sets of Dremel configs.

  8. Barbarian Units: most STL files use millimeters as units, but every once in a while some application gives you Love American Style.

Set for the long weekend

With all the testing I’ve been doing, I’m finally running low on the Hatchbox Grey PLA, so I started to order some more, and then remembered that I’ve got five spools of Dremel PLA in assorted colors. I do need some more neutral gray for babydai koma at some point (good contrast against most thread colors), but that’s to make sets for other people; I’ve got mine.

Reduced stringing...


Flossy!

Unless you work with embroidery floss or other fine thread, you won’t have any practical use for this floss bobbin STL file. It is, however, small, flat, and requires only 1.5 grams of filament to print, making it an excellent choice for testing adhesion, elephant’s foot compensation, and top/bottom quality.

’cause rasterized is best!

The English word raster pretty much only refers to converting vectors to bitmaps (displaying text/graphics on a monitor, etc). The German word raster means “grid”, which leads to some confusion when someone says their 3D model is rasterized. I always interpret it as “has blocky pixels like Minecraft”, but they mean “sized to a specific X/Y/Z grid”.

“Asking for a friend…”

Does this picture of Mayumi Yamanaka count as Tenga cosplay?

(raise shields and disable javascript before clicking on the picture)

InDirecTV

I’ve received email and a text message informing me that DirecTV has finally acknowledged that I returned their equipment over two months ago, and it’s no longer being charged to my account. I won’t really believe it until it shows up on paper, and even then, I doubt they’ll ever send the $8 they owe me.

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