“End of another year and once again hydrogen is top of the periodic table. I don’t know why the others bother.”
—Simon Blackwell, tweeting

Friday, April 17 2015

Comfort food

Last time my sister and I were in Japan, one of her happiest discoveries was the nearby restaurant that served Katsu Curry Udon. Indeed, next time we’re in Kyoto, I suspect it will be at least a daily event. Sometime after, I casually suggested that one of our other mutual obsessions would work in this dish: Gyoza Curry Udon.

Gyoza curry udon

Oh yeah, that worked. I did cheat a bit, though:

(Continued on Page 4575)

Tuesday, April 14 2015

Refusing to be eaten

“But fandom’s furious identitarians succeeded where racists failed. Identitarians insist they want what I want, a world where everyone is equal. But to make that world, they attack anyone who wants equality in the wrong way. Perhaps my greatest disappointment with them is they happily use the tactics of racists and bigots–mockery, death threats, blacklisting, and censorship.”
    – Will Shetterly

Will, it’s because they are racists and bigots, and proud of it.

Monday, April 13 2015

Quoted for truth…

“My view is that when we specifically try to change the rules to exclude the Sad Puppies, and we judge how well the changes work by how well they would have excluded the Sad Puppies given historical data, we will have some difficulty explaining to journalists that we are not doing it to exclude the Sad Puppies.”
    – J. Thomas, commenting on changing the Hugo rules at Making Light

Sunday, April 12 2015

First comment proves the point!

I love it when this happens. Someone wrote a careful, reasonable article about how it’s impossible to even mention facts that contradict the “social justice” narrative on any issue, and the first comment is from just-registered user “brutalism apologist” and reads “This is not a good article.”

If they were self-aware, they wouldn’t score so many own goals.

Friday, April 10 2015

Importing Bézier curves into OpenSCAD

OpenSCAD has some fairly basic 2D drawing primitives. If you can’t draw it with circles and polygons, you have to either approximate with line segments or construct your shape with unions, intersections, differences, and scalings. Or you can import DXF files, with some limitations.

Sadly, the primary limitation is “does not support things like curves/splines”, which means that any nice curves have to be rendered to lines by the converter. Adobe Illustrator won’t even make the attempt, so most people use Inkscape for this.

However, with the most recent release, there’s a way to get high-quality curves into OpenSCAD with only a modicum of pain: custom fonts. Draw up a nice shape in Illustrator or Inkscape, save it as SVG, run it through FontForge, and then call the new text() module from your SCAD file. And you don’t even need to learn to use FontForge; you just need to download a version that has Python scripting enabled, and run a script like this:

import sys
import fontforge
font = fontforge.font()
for arg in sys.argv[1:]:
	char = font.createChar(letter)
font.familyname = "testfont"

Now you just need to copy the font into the same directory as your OpenSCAD file and tell it to render a letter (first SVG file is ‘A’, etc):

use <testfont.ttf>;
	text(text="A", size=100, font="testfont");

[Updated] In order to get the placement and sizing perfect, you should set the origin of your SVG file at (0,200) with a height of 720, in a 1000x1000 document with the unit set to pixels. It will render any SVG you throw at it, but because it’s being treated as a font, it will be aligned by the baseline and capheight parameters; no doubt a more robust script could adjust those for you. If you add a print char.boundingBox() line to the script, you’ll see how FontForge has translated your dimensions. Inkscape comes with a “FontForge Glyph” template that works well; just add a second guideline at y=920, and resize the page to match the width of your drawing before saving.

[Updated: I wrote a more robust svg2ttf script that resizes and repositions each SVG file to make them work. Character tracking is off a bit, so you want to use separate text() commands for each character, and not try to render multiple characters in one string.]

As usual, set $fs and $fa to adjust the rendering quality.

And here it is in action. The item on the left is a sake cup modeled in OpenSCAD (SCAD file). The one on the right is the same shape imported into Inkscape and tweaked inside and out. (SVG files: OpenSCAD, Inkscape)


Why a sake cup? Somewhere in the 120+ pages of “when do we get our Shapeoko 3’s” on the forums was a suggestion about what sort of thing to make first. Someone mentioned a common practice among 3D printer builders of making a shot glass and toasting their success (quickly, because alcohol doesn’t work well in those plastics). A typical shot glass is hard to make with a CNC mill, between the tapered sides and the depth, so I grabbed a sake cup off the shelf and knocked together a model of it. Both the top and bottom depths are possible with my 2.5-inch YG-1 ballnose end mill (getting it perfectly centered so the two sides match will require a bit of jigging…), and as long as you ignore exotic tropical hardwoods, you can drink out of it safely.

After the toast, I’ll put some sort of finish on it, most likely CA glue.

I actually did a 3D print of the original version at the office. It came out pretty nice, but the bottom was a bit rough due to the unsupported areas, which is another reason to do this sort of thing as a two-sided CNC job.

Monday, April 6 2015

Dungeon pickup artist

The new series “Is it wrong to try to pick up girls in a dungeon?” has the look of a very predictable harem comedy. Indeed, it probably is a very predictable harem comedy. Our Hero is a typical hapless loser, who’s not only in over his head, but who almost loses it on the first level of the local dungeon until he’s rescued by the girl of his dreams, a sexy swordswoman. Over the course of the first episode, we’re also introduced to his big-sisterly advisor, his cute waitress, and his (platonic) live-in busty goddess.

After watching the first one on Crunchyroll, my quick judgement is “competent but uninspired”. For amusement, hapless loser-boy is the voice of Kirito, but Haruka Tomatsu is not voicing the sexy blonde swordswoman; she’s handling the big-sister role.

It was a pleasant enough diversion while I was on the elliptical, so I’ll likely watch the second one.

Saturday, April 4 2015

The Hugo wake-up call

“None of you seem to understand. I’m not locked in here with you. You’re locked in here with me.”
– Rorschach

For the third year running, a group of people who felt that the Hugo awards for science fiction and fantasy were, shall we say, “unrepresentative of the generally popular works of the genre”, banded together and encouraged people to sign up and vote for the nominations and the awards. They even put together a suggested list of nominees.

They were mocked, belittled, libeled, and accused as a group of sharing the worst characteristics that could be identified in or attributed to any one member. A vocal group of longtime Worldcon-goers hates them with the fire of a thousand suns, and greeted their success in this year’s nominations with a promise that They Shall Not Pass. (more precisely, “I’ll vote ‘No Award’ above anyone they nominated”).

Mind you, a lot of that crowd still thinks George W. Bush stole two elections, so raging against reality is kind of their specialty.

They also have failed to think things through. For background, anyone who attended the previous year’s con or bought a supporting membership for the current year ($40) can both nominate and vote. The Worldcon community is tiny in comparison to major cons like Gencon, Dragoncon, or Comic-con, and only a small percentage of eligible voters ever vote.

The “Sad Puppies” campaigns brought a lot of longtime SF/F fans out of the woodwork, enough to significantly skew this year’s nominations towards their recommendations. In many cases, this was the direct result of people discovering for the first time that it was possible to nominate and vote for the Hugos. Worldcon is expensive, and if you weren’t in the habit of going, you’d never have known. Hell, I went to one and had no idea; they didn’t go out of their way to encourage you.

So now a lot more people know that it’s cheap and easy to participate in the Hugo awards. And unlike real politics, they can see that their votes counted. They’re likely to nominate and vote again next year, and spread the word to other formerly-unrepresented fans. A lot of the wailing and rending of garments is about the “unfairness” of organized participation by a group with a clear list of nominees, but that’s just the tip of the iceberg. They’re not an army of drones marching in lockstep to the dictates of their leaders, they’re something much worse: fans. They’ll vote for the things they like, and they like things that haven’t been winning Hugos recently.

(They also, it turns out, can vote for the location of future Worldcons. It requires a little more planning, since this year’s bids are for 2017’s con (I say Shizuoka), and the fee for voting becomes a supporting membership to that con, but if you’re going to continue nominating and voting, there’s no reason not to participate. Essentially, you pay twice as much for the first two years, and then you’re set)

Thursday, April 2 2015

Yeah, what he said

I won’t even try to excerpt Ace’s epic rant.

Wednesday, April 1 2015

Dear “funny” employee,

Please do not forge scary emails from HR and accounting on April Fools Day. Nobody’s laughing.

Dash, Dash Button, and Dash API

Amazon has three new entries in the Internet of Things That Buy Other Things space. Dash is a wifi-connected magic wand that uses voice recognition and a barcode scanner to replenish your stock of household consumables. Dash Button is a wifi-connected magic button that orders a specific product when pushed. Dash Replenishment Service is an API that allows anyone to give their Internet-connected device the ability to order its own consumables.

At this time, I am not the target market for this. I buy an awful lot from Amazon, but I buy bulk consumables at the local Costco, so Dash wouldn’t do much for me. And I can’t think of any single item that I buy in bulk that would merit a dedicated Dash Button. Okay, maybe ammo.

What would be fun is a Dash Reward button, which purchased a random item from your wish list. “Hey Amazon Japan, I’ve been working out really hard this week; send me a Bluray from my ‘busty cheesecake’ list.”

Tuesday, March 31 2015

If this goes on…

The latest bullying by gay activists is being led by Apple CEO Tim Cook, demonstrating once again that tolerance isn’t good enough: they demand praise. They’ll gleefully punish any photographer, baker, or florist who refuses to affirmatively support gay marriage, and now they’ve moved on to shunning an entire state for an unexceptional law that might allow photographers, bakers, and florists to escape from their angry mobs.

Maybe someone should send Tim Cook a nice White Sheet Cake.

[Update: that pizzeria in Indiana that said they (hypothetically) wouldn’t cater a gay wedding? Closed, possibly permanently, due to death threats. Extra credit to the high-school coach that solicited accomplices for arson. And of course the thousands of people who harassed them on Twitter and Yelp would be offended if you called them hate-filled intolerant bigots.

Reporter Alyssa Marino was sent out to create a fake news story, and she and her editor willfully destroyed the lives of people whose only crime was honestly answering a hypothetical question about an extremely unlikely event, while at the same time affirming that they had never discriminated against gay customers in the past and had no plans to start. Alyssa Marino is not the one being threatened by strangers around the country. She’s not the one whose livelihood was taken away from her by fear of retaliation. She’s also, apparently, without regret or shame.]

Searching for end mills on Amazon

There is a significant overlap between the categories “router bits” and “end mills”, something Amazon reflects by freely switching between the two in search results, so that it can be a bit tricky to find the exact tool you’re looking for. In almost all ways, a search that begins by drilling down (sorry) through the category path Industrial & ScientificCutting ToolsMilling ToolsEnd Mills will be far more useful than a top-level search that inevitably takes you to the Router Bits section of the Tools & Home Improvement category.

The reward for careful navigation is the ability to refine your search by almost every possible characteristic of an end mill: material, coating, overall length, end cut type, cut type, flute count, and cutting diameter. If they added shank diameter, it would be perfect.

(still don’t have my Shapeoko 3 yet, sigh; according to the last update, there was One Last Part that Finally Shipped, and once it arrived and had some finish work done, they’d start charging credit cards and shipping out product)

Tuesday, March 24 2015

How I feel…

With the number of servers that have caught fire or things that have needed sudden extra attention at work, I ask, in the words of Lyra Lackwit:

“Will things please stop happening now?”

Monday, March 23 2015

San Francisco 93.8% cis/het

…not that there’s anything wrong with that.

Based on my experience of walking in SF, I suspect the actual percentages were 6.2% LGBT, 81.3% straight, and 12.5% “gimme a dollar!”.

Stone Clouds

So, the old Radioactive Panda site is mostly dead, but, as promised, Stone Clouds is back, this time on its own domain, starting with a re-release of the old material, with cleanup and color.

Friday, March 20 2015

Harry Potter takes over the world

No, not like this, although the title is certainly Potterish:

Genghis Khan and the Mongol War Machine

Instead, I’m referring to a rather long bit of alternate-canon fan-fiction in which young Harry Potter was raised, not by the Dursleys, but by a science professor at Oxford. As a result, he grew up reading science fiction and fantasy, and learned to apply the scientific method to the world around him. The quite long story has finally been completed:

Harry Potter and the Methods of Rationality

The ending is less satisfying than the beginning, or even the middle, but it holds together surprisingly well. And the author was very careful to not only use real science, but to cross-reference each chapter so you can follow up on any concept that strikes your fancy.

Monday, March 16 2015


I think I can live with this performance on the new Comcast line.

57 Mbps down, 11 Mbps up, 15ms latency, 3ms jitter

[Bonus! My new static IP range is not blacklisted by Paypal. Both my old AT&T and Sonic.net ranges were for as long as I had them, and not only does Paypal silently treat it as “incorrect password”, their customer-service folks don’t even acknowledge that this is possible. For years, I’ve had to open a VPN connection to my office just to be able to log in to my account.]

Saturday, March 14 2015

Words that should never appear in the same question:

“auditors” and “Perl script”

Friday, March 13 2015

Good Robot lives!

Shamus Young’s Project Good Robot is now on Steam Greenlight.

Wednesday, March 11 2015

Bye-bye, DSL; it was nice

[Update: all switched over, and the only difficulty in the install was discovering that Comcast still ships routers that hang onto MAC addresses for dear life, preventing you from reusing an IP address on the LAN side unless you reboot the silly thing. This was dumb on a home line ten years ago, and inexcusably stupid on a business line today. On the bright side, it came with native IPv6, so I can get rid of my Hurricane Electric tunnel sometime soon.]

So on March 9th, I got email from sonic.net informing me that their current DSL service was going away on April 10th, and that I needed to call right away to upgrade to their new faster-cheaper-better service.

The person who answered the phone seemed surprised that I’d actually called right away. Then she put me on hold for several minutes while she looked at my account, then she said she’d call me back. She didn’t.

So I replied to the original email, which surprisingly actually went to someone, who answered and said someone would call me back. Today, I got a long, casual voicemail from someone who eventually got around to explaining that the new service isn’t offered in my area, and I’d need to find a new ISP. Yes, I was expecting this.

(short version: they had a contract with AT&T to use their lines for DSL, and that expired)

So now I’m waiting on a callback from Comcast Business to schedule an install. It will cost more, but even their cheapest plan is much faster than the 6000/768 I have now. Internet-only; I’ll keep the Dish for TV, and migrate the landline to an Ooma box.

(the only reason I still had the landline was that Sonic’s agreement with AT&T required it)

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