Press "Enter" to skip to content

Posts tagged as “Webworks”

with bread, please

centaur 0

Speaking as a technically-oriented software engineer who's built some pretty crappy interfaces in my day, it continues to surprise me that people build interfaces without thinking through how people will use them.

For example, Panera Bread has a "you pick two" order, where you can get two half-orders of a sandwich, salad or soup, along with a side like bread, chips or fruit. One would naturally think that the interface where the cashiers would enter your order would allow you to specify the two halves, then the side. Logical, yes?

But if you order that way, the cashiers often seem a little thrown off. And if you give your order slowly - rather than just rattle it off because you've probably ordered it a thousand times at this point - they'll ask a stereotyped series of questions which I impute are being presented in this order by the interface:

  • (1) Is this for here or to go?
  • (2) What do you want on your You Pick Two?
  • (3) Would you like anything to drink?
  • (4) What do you want as your side?

Now, note that a You Pick Two doesn't come with a drink (like Captain D's or Chic-Fil-A's value meals). So the interface. The drink isn't part of the You Pick Two order. Yet if you try to specify your side, the cashiers will have to do a little fiddling in the interface. It's easier just to present information in the order above:

"(1) This is for here. (2) I'd like a You Pick Two, with (2a) a Bacon Turkey Bravo and (2b) a Strawberry Poppyseed (2b1) with Chicken Salad. (3) I'll take a large beverage. (4) Bread as the side. (5) [wait 5 seconds] I don't need the cup - I already have a to-go cup, I just need to pay for the drink."

Note that in (2b1), even though the Strawberry Poppyseed salad normally has chicken on it, if you don't specifically emphasize the fact that it has chicken, sometimes they'll ask if you want to leave it off, and in (5) you have to wait 5 seconds for them to complete the order, or they may delete the drink.

[Why insist on paying for the drink? Because I eat out a lot, and use insulated to-go cups to save on the waste of buying and discarding a cup once or twice a day. But once I was at Panera in Campbell and the Panera district manager complained to me that if I was using a to-go mug I should be paying for my drink. I insisted that I did and showed my receipt ... and found the cashier had taken the drink off the order without telling me. The manager took my word for it, but it made me feel both embarrassed and unwelcome, which is not why I go out to eat - I have work to do, damn it, and need to do my reading in a place where I can't be distracted by doing laundry or whatever - so I always insist on paying for my drink.]

Anyhoo, weirdness of interfaces can be found everywhere. Just today, I was trying to log into a website, and the website authors had put the login button in a popup that disappeared when you hovered over it. Presumably it was meant to go away if you didn't click on it, but the actual effect was, you couldn't log in on the company's home page and had to hunt through pages to find a login button that was a real button.

As another example, the interface for AT&T's voicemail in my area recently changed. Instead of saying "end of message" and giving you an opportunity to delete a message, it just goes straight to "saving message", which means if you got a spam call which hung up rapidly - and silently - there's no way to delete the message before it gets saved. If you try, it will delete the next message in your messages. So this "update" is strictly worse than the previous interface, making you hear each message a minimum of twice.

So, I guess what I'm trying to say here is, don't fall in love with your new interface before thinking through - and testing out - how people will actually use it, OR, as we used to say back in my day:

Old man rants at cloud.

-the centaur

it’s late and i’m tired …

centaur 0

...but I'm still going to try to get at least one thing done before I go to bed.

Because, even though it's been a rough few years, and sometimes I want to give up ...

I still believe you just need to work slightly harder than you want to in order to really get things done, and if you do, you'll often find that your efforts are more greatly rewarded than you might have imagined.

I'll go further: if you work just a little bit less than you need to, it's often a net negative: you expend effort without reaching the goal, so all you're left with is the cost. But if you put that slight extra effort in, right when you think you want to give up, that's when everything can flip from negative to positive.

We often think in terms of a simple linear model of effort to results - we do a little work to get a little reward, and we're often taught in economics class that there's a law of diminishing returns, so if we do even more work, we get proportionally less reward.

But that little bit of extra effort right when you want to give up flips that script: it doesn't give you a little bit of extra reward, approaching zero the more effort you put in; because it can turn a loss into a win, it effectively has an almost infinite relative payoff.

So: Don't give up. Because, when you feel you want to ... that's when you're close to victory.

-the Centaur

Pictured: Pound cake, deep learning, and art practice.

maybe back in business …

centaur 0

Had another weird uploading thing yesterday, but it seems to have resolved with a Chrome restart.

Please enjoy this picture of a cat taking a nap in the "Captain's Chair", my favorite reading area.

-the Centaur

not quite blogging every day … yet

centaur 0

So ... what the heck happened to this website for almost six straight months?

The TL;DR (too long; didn't read summary) is that moving the Library of Dresan to a new provider was a huge endeavor, so I prioritized clearing everything else going on in my life until I could focus on the move.

I had lost faith in my old web service provider. Emails delivered to centaur at dresan dot com were randomly dropped to the point I had to stop using it, and image posting was no longer possible because the provider was only giving me 25 gigabytes out of my 35 gigabytes of allotted storage. The Library had to go elsewhere.

But that involved finding a new domain provider, setting up hosting, transferring all the files, transferring the database, getting the Library's WordPress installation running on a new site with new rules and a new version of PHP, and, as a bonus, transferring all the email addresses and lists to the new domain.

And, if you've never tried to transfer 25 gigabytes of files off a remote website, you can't just "do" that. A copy of that size off a consumer-grade website will just randomly fail at arbitrary points during the transfer. I had to write an entire program to help me track this (which I plan to clean up and release on Github).

But while all that was going on, I had to replace my laptop, volunteer at the Unsolved Problems in Social Navigation Workshop, launch The Neurodiversiverse, attend Dragon Con, attend the Milford Writing Workshop, clean up after a hurricane, start mushroom farming with the logs fallen from the hurricane (which had a clock attached to it), quixotically try to get some stuff prepared for GDC 2025, prep for EAI #6, handle submitting a +66 page paper with +30 authors, and prepare for the largest Christmas ever (where we hosted two parties with almost 20 people each, and had three separate groups of houseguests).

When Christmas was finally in the rear-view mirror, I then turned my attention to webworks - first fixing the Logical Robotics website, then fixing my wife's website, and finally fixing the Library itself. It was ... exactly the ordeal that I feared it would be. Actually the WordPress part, that part, it worked fine - I had already copied the files, and had frozen the database as of my July 26, 2024 post, and ... miraculously, the website was working to serve the pages with very little issue. But posting did not work (a permissions issue). And then logging into the website quit working (an SSL issue). And then posting images quit working (which turned out to be, indirectly, an SSL issue, due to the firewall bundled with the SSL).

And so on. And so on.

Yes, yes, yes, bla bla bla, you've heard all this from website developers before. But there's a very important insight I have to share with you. Yes, we are finite creatures with limited powers, and yes, sometimes we run into problems, and yes, sometimes, we run into problems that seem beyond our abilities to solve.

But, just as we are finite, so our problems are finite. Yes, yes, yes, it's important to understand the difference between a solvable problem (cleaning out your storage unit) and an unsolvable one (as when the legendary King Canute apocryphally tried to back the tide, which is actually a dirty lie given that he knew better and was just trying to stick it to his flatterers in his court, but, whatever). But as long as you are not actually trying to turn back the tides, your problems can be solved by focusing on them, one by one.

And so that's what I've been doing for the past several months since I came back from the Milford Writing Workshop. My 2024 was hectic - because we wanted to launch The Neurodiversiverse in time for Dragon Con 2024, and because I chose to do a lot of publicity for it at the Nebulas, Con Carolinas, and Dragon Con itself, but because I chose to not cancel many other events, like the Fifth Annual Embodied AI Workshop, or the Workshop on Unsolved Problems on Social Robot Navigation, or my attendance at the Milford Writing Workshop itself - requiring me to plan it down practically to the week.

After Milford, however, I had a few months until Christmas ... and I vowed to start "clearing the decks" of my massive todo lists. So I've spent the past three or four months methodically identifying things, working to eliminate them, and moving on with my life.

It has been refreshing and freeing. I have far to go - my todo list needs a fricking one inch binder clip, and I am not exaggering one bit - but, already, many things that have been bugging me are gone, just gone, leaving me with ... that ... much ... more ... free time and ... that ... much ... less ... mental load to carry.

So, this is a very long-winded way of saying, soon, I'm going to resume blogging every day.

But ... I wanted to clear the decks, and get off my chest why I haven't been.

-the Centaur

Pictured: Snow, in the "French Quarter," our tiny little courtyard.

back … in business?

centaur 0

is it ... is it WORKING now? <relieved sobs>

-the Centaur

the scientific method …

centaur 0

first, let's try to add an image that failed previously ...

yep, it fails.

now, let's add a whitelist entry for the path that failed, and try again ...

SHAZAM! it worked.

let's see if we can publish the post ... NOPE!

so let's add THAT url to the whitelist ... nope, not that one ... YESSSS

another test

centaur 0

it may have been cached data in chrome ... investigating ...

i hate heisenbugs …

centaur 0

... so, whatever was causing images not to upload on the NEW website has just stopped happening, without me ever quite being to nail down what it was.

charming.

no, well, actually, frustrating, but, i suspect we will be back in business soon.

-the centaur

pictured: the old library, posted on the new library blog

am i alive?

centaur 0

wtf bro, what be the problem

test test

centaur 0

yes just a test

am i alive?

centaur 0

Strange ... I finally upgraded the blog, but the first post after fixing the blog seems to have disappeared ... and we're back on an older version of WordPress. What's up?

test test.

-the Centaur

still not dead, but blog updates must wait …

centaur 0

Okay, so some people are worried about me since I haven't posted in a while, so I thought I'd weigh in on what's going on - and explain why this will be the last update of the blog for a while, but hopefully, not forever.

As I mentioned earlier, I unexpectedly ran out of space to upload images to the blog - my reported quota was 35 gigabytes, but in practice the system craps out at 25. (And believe you me, it took a lot of debugging to figure that out).

This charming discovery happened right around the time that I spilled water on my laptop, which was a one-and-a-half week fix; that itself came in the middle of June, where I took 5 trips (Con Carolinas, the Nebulas, a Logical Robotics trip, CVPR/EAI, and Seattle) and was followed by July, where my wife and I, after almost five months of being mostly apart, had just two short weeks to catch up before her trip to go help her mother deal with the death of her stepfather. Not to mention the Unsolved Problems in Social Navigation Workshop, and The Neurodiversiverse copyedits and sensitivity edits. And Camp Nano, of course, far behind.

Good times, good times.

So, during all that, I didn't have time to update the blog's backend. Sorry.

Now, I've got a little free time, and I've started to do that - but it involves moving to a new provider, and that, itself, comes with a wrinkle. I'm going to have to copy all the data from the old provider, which is a painstaking process, since ~25GB and +25K files is far too large a file system for any normal FTP client to download without crashing. (And believe me, I've tried). So I have done the bulk of this copy now, but still have to verify that the files have correctly downloaded, which will actually involve writing a program to compare the trees, as I haven't found anything yet that will do that on a file tree this size over a connection this flaky.

Presuming success on that ... the next step is downloading the Library of Dresan database and migrating to the new provider.

So, if I blog any more here, I'm going to have to download that again. I already need to re-download this blogpost's image, as it wasn't in my first capture; but I wanted to test whether deleting the log files would have given me space to upload more images (it did). But downloading the database multiple times just because I can't stop blogging is a bridge too far.

SO! Until the migration is complete, I'm going to blog very sparingly, if at all. Sorry about that.

Hopefully it won't take too long.

-the Centaur

Pictured: A (mostly) vegan breakfast sandwich (except for the honey bread, since my favorite vegan bread was out at the store) - toasted bread, Just Egg, black salt and pepper, and two vegan patties from a new company whose name I can't remember; the ensemble of which always looks to me like a scream. Does that sandwich look right to you?