Category Archives: Uncategorized

San José, City of Murderous Douchebags

We went over the hill to visit the dentist today. Yesterday, the governor signed a law requiring people to wear masks in public. We took two of the dogs, because our hygienist appointments were an hour apart and there’s a park a couple of blocks from the dentist. You see where this is going?

It should read, “Douche Park.”
Full parking lot

The parking lot of the park was full. There were many people at the park. None of them were wearing masks. So, here in this affluent area, the attitude of the people seems to be, “Stay away from my breath or I will murder you.”

I know there are lots of people talking about society, but more than unrest in the streets (which at least speaks to collective action) this little walk demonstrated that there is no society. These people might as well be walking around with pistols, firing in all directions every time they exhale. That isn’t a society, it’s the opposite.

Not running.
The dogs walk faster
Nope, no mask

Great Man Theory

Historians seem not to like the great man story of history nowadays, preferring to talk about how the actions of lots of people wind up being at least as important as the actions of a single leader. And that makes a lot of sense, really. So why are the papers and the politicians all about the assassination of one guy? Does the death of one guy mean that thousands of aggrieved combatants are gonna say, “Fair enough, we gave it a shot, but obviously the Americans killed our guy and now we’ll just stop being mad at them.” Or is that maybe optimistic?

Announcing DMS Calc

A few years back, I was playing Kerbal Space Program and had the need to convert back and forth between decimal degrees and degrees-minutes-seconds. I found some online tools to do it, but they were naive and forgot that floating point numbers are still kind of tricky on a computer. I wrote a post about that, and I also wrote a simple web form with Javascript to do it the right way. Anyway, for reasons, I deleted that code early this year and then, a couple months later, I started playing with KSP again.

Two days ago, I ran into the decimal degrees to DMS problem again, and still the free tools are doing it wrong. So this time, I wrote an app and sent it up to the App Store.

I Wrote A Thing

Hey, I wrote an app and got it published on the App Store! It’s free and it only does one thing: it lets you slide a selector back and forth and show the equivalent temperature readings in Fahrenheit and Celsius. So, if that’s a thing that you want on your phone, go check it out!

So, I took this class on iOS development with Swift, because I’m fed up with Flutter and I really like being able to program the devices I own. I got to the end of the course and was thinking, “Okay, so that all makes sense, now, what do I even want to make my phone do?” And then I thought, “You know what toy application everyone wants you to write after Hello World? A unit converter.”

The problem I have with these unit converter examples, though, is that while they’re great for giving you an example of how to use list selection tools (what unit do you want to convert from/to) and detecting user input (when do you actually compute the conversion) and update the display, they’re terrible if you actually want to get the conversion value. I mean, I’m sitting in a car and the temperature is set in Celsius, and I know it’s too hot, but what is the right temperature? This is a problem with numeric displays; unless the number is on a scale that I’ve internalized, it doesn’t really mean anything to me. Also, I don’t want to have to spend a whole lot of time typing or, for that matter, waiting for my phone to ask Google’s server on the other side of the planet. This is a straightforward calculation that could be done right here, right now, with an actual thermometer if it had the scales printed on each side.

So, I present you with a dead simple app. It’s got a slider that you drag back and forth. It shows a Fahrenheit temperature and a Celsius temperature. It’s got buttons on the interface to let you step up and down if you want to go slower. And, because I wanted to learn how to make an app for the Apple Watch, there’s one of those, too, and it uses the digital crown to do scrolling up and down of the temperature.

Yep, I Still Hate Your Framework

I have been writing a couple of mobile apps in Flutter for the past few months, and as I neared feature-complete ready-for-internal-beta I started getting frustrated by the framework’s limitations with the app stores. The build system won’t build an artifact that the Google Play Store will accept come August, and the iOS build has problems, too. I gave up and started working on a simple web game using flutter_web, only to find that it wouldn’t let me make a user interface that didn’t suck for typing. So, fine. I’m going back to Java. At least I can build and release a Java application that works right.

Cranky Old Guy

Yeah, so I’m listening to Surveillance Valley (see previous post) and it’s got me thinking all paranoid and crotchety, as one might expect. So now I’m reminiscing fondly about UUCP, UseNet, FidoNet, and RumorMonger/LACS. Thinking about how, if I were going to try to come up with some sort of communication network that was hard to spy on, I’d have to start with the idea that any participant can show up anywhere at any time.

This is sort of like when engineering management got all us developers in a room at Netflix after we had yet another database outage that cost the company gobs of money and cause much customer unhappiness. They told us, “Look, we can’t stand having our business vulnerable to single points of failure. We’ve gotta be redundant. So we’re going to the cloud. Amazon’s cloud. And you’re going to make it happen. How you do it is up to you, but that’s the fundamental truth. You also need to be aware that your head is on the block if your system fails. And here’s another truth: any single server in ‘the cloud’ can die, at any time, for, like, no reason. Get happy about that.”

Okay. So, what does that kind of network look like? Any message sender/consumer can appear at any time, at any place. Imagine a world where that is the thing that got built, instead of the Internet. Is that better?

What to Do

A five hour flight is enough time to write several unit tests. So, yesterday I started working on the band sets for 2019 and I wrote tests and new library functions and fixed a latent bug in an old library function. And now we’re in Hawaii!

Buncha Thoughts at Evening

  1. I’m a jerk.
  2. Dogs are awesome, and also jerks.
  3. Siri is useless for my life.

It’s creature dinner time, so I’m getting out the dishes and the food and starting to portion out everybody’s share. Some of the creatures are old and sedentary, some are young and boisterous, and not all are of the same species. Thus, portions are specifically assigned. And what am I thinking as I do this? That’s right: “Okay, who’s ready for dinner? Are all of my dogs who are good dogs going to get a dinner? Yes, yes they are!”

Continue reading

Building Everything from Scratch

You know what I love about programming? The part where I get to solve interesting problems. You know what isn’t interesting? solving the same problem over and over again. Even less interesting is having to solve a problem that I know someone else has solved but where I can’t copy the answer. That’s not only uninteresting, it’s frustrating.

So, I’m writing a tool in Java and I need for it to allow the user to input styled text (simple typeface stuff – italics, bold, strikethrough). We’re not changing font family and we’re not laying it out for print; we just need to be able to capture this style stuff. And then persist it. Ultimately, it’s going to be stored as XHTML. So I look around, and sure enough, JTextPane turns out to be the thing I need to be able to display the text. Pretty soon we’ll want to have inline images that the text can flow around, and that component can handle those things. So, that’s great.

Continue reading

When Should You Have Lived?

So, Lise​ is off in Minneapolis for AWP. Neither one of us sleeps particularly well when we’re apart anyway, but she’s out there to talk to lots of people (not her favorite activity) and get them excited about Lithomobilus​. And in the frenzy of packing, she remembered earplugs but forgot melatonin. The love of my life, on day 3, had slept for maybe 8 hours out of 72 and she was not doing well. This is where the Internet, the telephone, and modern banking combined to make me look like the best husband ever in the history of business travel.

I know that Trader Joe’s sells melatonin for not a lot of money. I know they’re a national chain. So I used Google to find out that, hey, in Minneapolis there are three Trader Joe’s stores, each less than half an hour’s drive from the hotel.

But wait, Lise is stuck on the book fair floor; she doesn’t have time to run off to TJs! The hotel concierge isn’t answering the phone! Oh noes, what do I do?

Google “personal concierge minneapolis” and come up with Twin City Concierge. Call ’em up, “Hey, my wife is in town for a convention and forgot to pack melatonin. Could you hit Trader Joe’s, get a bottle, and drop it at the hotel for her? Sure, just sometime before tonight. Sure, here’s my credit card info. Thank you so much!”

Boom. Lise was nearly in tears with gratitude (chalk that up to sleep deprivation) and was kind of surprised when I mentioned how reasonable the cost was. She pointed out that many people would not even consider making that call, assuming that it would be too expensive. This, she said, is an unseen privilege of money. We have enough money that, sure, we’d rather not spend money we don’t have to, but we have a different definition of, “have to,” than we did when we were broke, and that gave us the confidence that let us find out that this kind of personal service is way more affordable than we thought.

Lise told me that now I am:

  1. famous at AWP as the best husband ever and
  2. hated by all the other husbands for making them look bad.

To this latter point I can only say, dudes, that didn’t take me; y’all had that down all by yo’self.

Oh yeah, the title of this post. There are a zillion ridiculous quizzes on the web, which Harry Potter character would you invite on your dragon, and what would your job have been in which century should you have lived?

Telephones. Modern medicine. Lightning fast access to useful information about exotic and remote places. Currency that spends just fine 2,000 miles away. Currency that travels 2,000 miles faster than you can say the words, “two thousand miles.” Consumer protection laws and food and drug safety regulations that mean I can trust, sight unseen, that the pills are what they purport to be and do what they claim. You know what? Now. Now is good.