No more goldang inexplicable sidey-scrolling on yer phonez goldangit!!

What was it, you ask?

Why, it was the fleuron, of course. The fleuron with the negative margins.

He wants a fleuron

With negative margins [doop dweet doooo]

Because he knows there's no such thing

MORE
2/10 '23
 

Fixed:

  • The "cancel" button for new, never-saved comments works reasonably now (broken for a long time).
  • Pasting a link to something well-annotated for social sharing, like a CNN article, now generates a nice "open graph" summary again. Also probably broken for some time super broken since ever in half a dozen ways, sorry. Debugged the daylights out of this.
  • Image comments (broken by the recent rewrite).
  • Layout issues on the iPhone, especially when open graph is in play.

Also, code quality things:

  • Removed yet more "dead code" (code no longer in use, exactly like junk DNA: if left in place too long there's a chance it'll be "in use" after all, in some sneaky and incomprehensible way).
  • Stopped using the obsolete "request" module to fetch stuff.

All in all, I'd say I got away with the rewrite pretty well. Nothing went hugely sideways. Twitching to do more with the site now, which is a nice feeling after slogging through / dreading the rewrite for so long.

Thanks to all who reported bugs.


Nice Open Graph example (CNN article).

Vastly more important Open Graph example (Mastodon #caturday post).

Looks like Mastodon's og:image tags have site-relative URLs. I noticed 'cuz I had a bug handling those. Amusingly, Facebook does not support relative URLs in open graph at all. This means I now have better support for Open Graph than Facebook. Phbbbbbt.

BTW Open Graph only "unfurls" if you paste a link straight into your text without clicking the link icon in the rich text editor. So if you don't want it, if you just want to type some text and then link it to something because this is the hyper-texter-webs goshdarnit, then type that text, select it and click the link button.

Open Graph still needs some styling love on mobile fixed that shizzle too.

MORE
2/5 '23 9 Comments
You're a wonder!
Maybe even a One Post Wonder.
Thank you, thank you, for making this community and keeping it good.
Came here to say this. :)
Seems I no longer get email notifications that my friends have been writing. Or I need to inspect my spam filters?
Those still go out. Check your spam?

They only go out if you haven’t been reading.
Didn’t they used to go out if people I follow post? I’m only getting them for replies to things _I_ post. Maybe I’m misremembering.
 

Hey, did you feel something? I hope not.

I've deployed a new version of the One Post Wonder source code. And it should be... exactly the same, for you. If not, please let me know.

For avoidance of confusion: if something seems busted, it's not you, it's me. Let me know. Thanks! I did lots of testing. But... software is hard.

Just in case, my email is tommybgoode@gmail.com. If stuff broke, tell me things ASAP. Thanks!

What Changed

"So... if everything is the same... what's different?"

I rewrote the code using a modern idiom that other programmers will be able to follow. Which makes it more practical for others to help me move OPW forward. It's a hell of a lot easier for me to maintain the code as well.

You see, back in the Bad Old Days, Node.js programming was like this:

"Hey Jane, fetch me some blog posts, then call me." [Hand-sign of phone]

"Hey Jack, when Jane calls me, fetch some comments, then call me." [Hand-sign of phone]

"Hey Joe, when Jack calls me after Jane calls me, fetch some images, then call me." [Hand-sign of phone]

Except dozens of requests are coming in at once so it's like a telethon in there with only one person manning the phones and everybody wants a fucking tote bag and theoretically that's OK because you don't actually speak continuously to one person right, so...

AAAAAAAA yeah complete madness.

In the New Idiom, Node.js JavaScript programming is like this:

MOTHER MAY I fetch some blog posts.

MOTHER MAY I fetch some comments.

MOTHER MAY I fetch some images.

Behind the scenes, it's the same telethon, but the management of all that parallel madness is encapsulated in the magic words "MOTHER MAY I," which allow us to express what we need to do as a simple series of steps and let JavaScript sort it out behind the scenes.

An astute observer will note that I still have to say "MOTHER MAY I" before each thing. I can't just do the fucking things. Which is still weird and unintuitive. However, in modern JavaScript "MOTHER MAY I" is expressed in the single word "await," which is at least convenient and readable. Crucially, it's at least readable by people who don't do this all day and who don't know this particular codebase by heart.

And the performance benefits are real enough that these days, Ruby, Python, PHP and even Rust optionally offer the same thing for those who need the speed.

So, we've got that going for us.

[Waves tattered flag]

Wait. Why do we do this?

A person might ask why programmers put up with any of this. Java and Python and Ruby and frickin' PHP all let you just write:

Do a thing

Do another thing

Do a third thing

THE END

So why would you put up with this "MOTHER MAY I" bullshit from JavaScript?

Well... because it's fast. Most languages for the web give you a separate thread, aka basically a completely separate telethon volunteer, to think about each request, aka person calling to get a tote bag. Which is enormously convenient. But, also slower because you're not maximizing the throughput of your telethon volunteers.

And... you have to write JavaScript for the browser anyway. To a first approximation, at least. So you may as well double down and use those skills on the server too, right? Less mental context switching. Which gives you plenty of energy for typing MOTHER MAY I! This is sane. [Nods firmly]

Um... great! What's next?

"So what's next?" New features? Probably new features. I promised alt attributes a LONG time ago.

Probably also breaking up that massive "routes.js" file into separate collections of API routes by topic, so I can find stuff.

Probably also TypeScript, just so I can put "8 billion years TypeScript experience" on my resume.

Thank you sir, may I please have another?

"What's TypeScript?" It's a new flavor of JavaScript that is "strongly typed." That means you have to say "MOTHER MAY I" even more often and in twisty new ways... but, if you fail to say it in exactly the same way when you try to call that same code later, it'll stop you and say "uh-uh, that's going to introduce a bug."

So it's a good thing.

One may well ask: does that mean TypeScript can check the original "MOTHER MAY I" incantations (aka "await" keywords) to make sure none are missing? That would be seriously useful.

Oh gosh no, it can't do THAT.  Who would want to catch by far the most common source of bugs in a Node.js program? No, it only stops you if you pass a string instead of a number (*), which I practically never do.

But I hear you can do it if you combine TypeScript and eslint and a roll of duct tape. So maybe I'll give that a try.

(*) Yes, yes, and a thousand more complicated but ultimately similar things.

MORE
2/2 '23 2 Comments
Test. Hi.
Looks like it works. Success!
 

I didn't think I'd see anything at all from a construction site on the edge of a major urban area, but everything lined up in Stellarium and that is very probably the comet. I guess. I have to say my phone saw it a little better than I did. It is a little green.

For those in darker places, now is certainly the time to go outside and have a look. Shortly after sunset in the northern sky. You still have a few days.

MORE
1/31 '23 7 Comments
I bet Annie will be able to see this really well in VT.
I'm waiting for that reply too.
I tried. It was very clear last night into early morning, but… I wasn’t awake early enough. The dog woke me at 6:00, and by that time it was too light already. Not sunrise, and I could see the Little Dipper well enough, but too light out all the same.

Last might was the only clear night we’ve had recently, too. Tonight it looks as though it will be partly cloudy around 5:00 am.

And anyway I didn’t sleep well last night and it’s the same tonight, so probably I won’t get up early to see if it’s visible.

There’s also a surprising amount of light pollution where we are. It can be pitch black on the ground around the house, but Burlington is just to the north of us, and the sky in that direction glows.
I will say, last night as the sun was setting, Mt. Mansfield in the *east* was jaw-dropping. The ridge line was draped in sparkling snow, and glowing pink against a fading blue sky. Rose snapped a photo through the window of the moving car. As you might expect, it didn’t begin to represent the experience.
Current status: trying not to spend $100 on a monocular telescope with a smartphone adapter so I can take zoomed-in crummy pictures.
 

In need of some good feelings, I finished up the ascension run of a Valkyrie who had been vanquishing things without difficulty for some time.  I'm certain that I've ascended a Valkyrie before, but not within the memory of alt.org's version 3.6.x records.  Dwarven Valkyries are a good "easy" choice, and this one's natural 20 Constitution was nice.  One complication arose:  I never found an unguarded altar (7% chance?) so I never found occasion to pray to Tyr.  I did consult with Loki occasionally, at his temple in Minetown.

I and the guardian Angel of Tyr and Olaf and Olga and Ollie the Olog-hai and Frosty the Ice Troll and an unnamed fire ant went to our reward with 11672727 points, and 112111 pieces of gold, after 142972 moves.  I was level 30 with a maximum of 1845 hit points (!)

As an aside, does anyone have unusual favorite inventory slot letters?  Some of mine make sense, like "L" for a ring of levitation and "S" for a ring of slow digestion.  My pick-axe is "w" so I end up alternating "wield primary weapon a" with "apply w".  Then there are the odd ones, like "G" for my primary bag of goodies and "J" for a unicorn horn, which may date from the very first time I randomly got used to a particular letter and just decided to stick with it.

MORE
1/28 '23 1 Comment
Mine are extremely basic. b - blindfold, u - unicorn horn, x - pickaxe, a - primary weapon (whatever it is...it gets the a), Quest Artifact usually gets the capital letter that fits, E - Eye of the Aethiopica, G for Grayswandir, M for Magicbane, then B for bag of Holding, C for wand of cancellation (IYKYK), L for Luckstone (helps when stashing a pile of gems)...nothing particularly unusual?
 

My issue with this site One Post Wonder is that whenever I get the email saying "Your friends have been busy on One Post Wonder!" I stop whatever else I'm doing and go read the posting. 

Which is both awesome and terrible and I love that. 

I should post more but I probably won't. I'm pretending it's a Heisenblogging issue: where I can do all the things or write about all the things, but not both.

MORE
1/25 '23 2 Comments
LOL! I finally got back to debugging a partial rewrite of the code, so thanks for the encouragement.
Heh. Heisenblogging.
 

One of the themes in my life of late is to try to get as many folks as I can to see the illustration stuff I'm doing. In an era of "you don't see everything from everyone you follow" social media, this is... more challenging than seems reasonable.

I understand that mailing lists are the way to go for that, but the problem with mailing lists are two fold: 1. You have to get people onto them, which many folks are loathe to do. 2. Once they're on your list, many folks ignore / delete the emails because they're 'extra'.

Which isn't to say I'm not going that route. On the contrary. I probably will. I've started to before, but never really finished (see all my previous commentary on ADHD).

Even if / when I DO manage to create a reasonable email list, that still doesn't get around issue 1. The vast majority of the internet using world won't be on it. And dragonbones.net is accessible to pretty much everyone who has access to the web.

Shut up, man. Get to the point.

Okay, okay. Sorry. Verbose Guy here.

I thought I would start doing a monthly summary post on dragonbones about the sketch work that I did the month prior.

It's a good art-news system, it gives folks a taste of what's in the Patreon page if they might be interested, and it keeps dragonbones fresh(ish).

So here's the first one: The Sketchy Stuff from December 2022.

(Dwarf at the top of the page is just something I was noodling on... yesterday? This is at about the 1/2 hour stage.)

MORE
1/24 '23
 

Unexpectedly, my New Year's tradition became wearing my grandmother's wedding tiara. 

Some years, my sister would steal it away, but most years, I wore it.

My grandmother was born in 1918 and I'm not sure exactly when my grandparents got married, but she was 25 when my dad was born, so 1938? 1940?

It's gotten too fragile too wear. It still has all its sequins but it wilts and one of the spires is now cracked beneath the surface. Perhaps I'll try to repair it this summer.

Happy new year.

MORE
1/1 '23 1 Comment
Seems like a really cool way to keep the past with you as you head into the future. Also, love that photo. It seems like a great time capsule.
 

In vaguely alphabetical order:

Baby Velvet, Please Don't Be in Love With Someone Else — Hannah Crofts from All Our Exes Live in Texas has her solo debut.  Lovely, sightly neurotic pop.

Andrew Bird, Inside Problems — What more can i say?  Bird always brings the goods.

Dead Engine, Brake — (EP) Another small set of power trio rock.

Guilhem Desq & Sébastien Gisbert, Storm — Desq's manic electric hurdy gurdy is joined by Gisbert's thrumming percussion.

50 Foot Wave, Black Pearl — (EP) There was always a clear stylistic break between her two bands as well as her solo work, but the latest Throwing Muses, 50 Foot Wave, and Kristin Hersh releases sound very similar.  Sludgey, abrasive, sometimes it feel like i'm still listening out of inertia.

Florence + the Machine, Dance Fever — A fuller and broader work than her previous album.  Her voice is still a marvel to behold.

Grieflines, Fathoms — (EP) Electronica side project for I Like Trains guitarist Guy Bannister.

Imogen Heap & Dan O'Neill, Chordata Bytes I — Heap has taken a library of oceanic sounds from marine biologist O'Neill and turned it into electronic music.

Jean-Michel Jarre, Oxymore — Jarre had been collaborating with Pierre Henry, musique concrète pioneer, but he died in 2017.  That work is now finished.  It's a... grimier work, but still very Jarre.

Zola Jesus, Arkhon — Spooky, haunting vocals are her bread and butter.

Rokia Koné & Jacknife Lee, Bamanan — Malian pop, a Bandcamp suggestion that hit me right away.

Midnight Oil, Resist — My album of the year, everything the Oils are known for, a massive comeback album.

Sea Power, Everything Was Forever — Their soundtrack to Disco Elysium (an amazing video game that is accessible to any level of gaming skill) piqued my interest.  A few of the DE tracks resurface here with lyrics.

Tears for Fears, The Tipping Point —Another comeback album, this one where an old rift between the band members was repaired.  It's a lovely work.

MORE
12/30 '22 5 Comments
Yay! I always enjoy your year end music reviews.

I love love love that Midnight Oil album. I heard the first single when it first came out and I couldn't get over how freaking great they sound.

The older I get, the more annoyed I get when people seem surprised that someone over 50 can do something cool, relevant, urgent, or with spryness... and I realize that's probably how I sounded when I was telling folks how much I love the record. Bah.

I also love that Tears for Fears album and was happy they recorded it.

I didn't know Jean Michel Jarre had new (ish) music out, but I will check it out!

And I need to get more into Florence and the Machine. For no reason whatever, I just haven't sat down and given her a careful listen yet, but I know I'm gonna love it. Maybe I'll do that this weekend. What's your favorite album?

Hmm... probably Ceremonials.

Jarre has been on a tear over the last 5 years or so.
I had no idea Kristin Hersh was writing new music. Listening now!
She's never stopped! When did you last listen?
Her live shows are consistently outstanding.
 

Yes, we get it. You made an ebook. 

Sorry - I know you've probably seen me posting about it elsewhere. Thing is, you can have it for free, if you like, and I want as many people to have access to it as possible.

Didn't get anything for your neice for the holidays? Bingo. Grandson's into fantasy / D&D? Sold. They can print the pages out and color them as many times as they like.

I won't tell if you're there coloring alongside them. ;)

Anyway, if you haven't picked up a copy yet, it's available on my site / Gumroad here: 

If you do download / gift / check it out, I would love to hear what you liked or disliked about it! (I'm planning to do more like this in the future, so all feedback helps.)

MORE
12/19 '22