Get it together, Mark

One of the rules I strive to live by, and consistently fail at, is to never underestimate human stupidity. If somebody responds to a news article or some reality show flub with “Nobody could really be that stupid”, my go-to response is that yes, they can. And yet I’m somehow still amazed on a consistent basis in spite of that.

Yep, this post is about Facebook.

When I signed up for Facebook, I did it using an e-mail address I pretty seldom check. There’s a reason for that: I don’t give two wet farts about what Facebook sends me. (Another reason is that I didn’t want any risk whatsoever of being looked up by e-mail.) I can’t tell you how many times I turned off e-mail notifications for various categories, which was an annoying and laborious process at the time. But recently, I logged into Facebook and received a message that my e-mail address was invalid. I tried to re-confirm it, but nothing worked at the time, so I shelved it for later—but I did find where they had a setting that sent me e-mails to tell me I had pending notifications, and disabled that so it would stop happening. Then I got the same message again today, and I can’t find any way to re-confirm.

The entire reason this happened was that I went on vacation. Nevermind that I’ve done this before and it hasn’t been a problem. This year, for whatever reason, Facebook sent me one of those “Hey, all kinds of notifications are waiting for you!” e-mails and I didn’t read it right away, which I wouldn’t have done even if I was here. And there weren’t even that many notifications—it was like seven. So I leave the country for five days (not even five full days), and this time they freak? At what point did Facebook become an obsessive girlfriend who needs to check up on me at all hours? My social network of choice (well, actually I was just coerced by my family) has turned into a cloying parody of a character I wrote.

I didn’t sign on to Facebook for four days. That’s it. I checked in on a Sunday, left Monday morning, came back Friday afternoon, and signed into Facebook that evening. It was less than 120 consecutive hours, more than 96, and in any case there’s no reason to flip out and decide after I don’t immediately respond to one e-mail (which, again, I wouldn’t have anyway because I hardly ever check the box) that my e-mail must be broken.

This level of stupid wouldn’t be so bad, but they keep confronting me with this box that says “Your e-mail is invalid.” And they give me a box to update it, and a big Update button. I re-enter the exact same address, because it’s not invalid at all, and they say there’s a problem and they can’t use that address. Yes, I get that you’ve flagged it as broken, guys. I’m saying it is valid, and the least you could do is offer me a way to confirm that and remove that stupid flag.

I sent in a bug report. The word “moronic” came up, because this is a multi-billion-dollar entity that ought to have their ducks in a row. I’m hostile to bad design, especially when a very large team of people is capable of fixing it and it’s not a difficult thing to take care of.

Posted in Uncategorized | Tagged , | Leave a comment

Steaky popcorn seasoning experiment, Mark II

My previous post about trying to come up with a steak-like popcorn seasoning led me to finally try making that recently. Over the weekend I blended up the spices in the proportions I wanted for Mark II using a coffee grinder, and the other night I tried some on a little popcorn.

Results: inconclusive.

Tasting the seasoning only on its own, it seems like doubling the black pepper was a mistake, and the onion powder even in a lesser quantity was too much, but it might otherwise serve as a proper steaky seasoning.

On the popcorn, however, I had different results. I used the Nordic Ware microwave popcorn bowl for this purpose; I’ve never had much luck with it in the past when using coconut oil in it, which all the videos I’ve seen say should be possible (it might be my crappy microwave), but I discovered if you give it enough time it can cook popcorn dry well enough. I made 1/8 cup (unpopped) of popcorn and then added a small amount of margarine (2 tbsp.), mostly so the spices would have something to adhere to.

The popcorn came out nice, but the margarine somewhat dominated its flavor profile. I found that when I sprinkled on what I thought was a generous amount of seasoning, I couldn’t taste it very well; adding more, it didn’t help much. I got a vague hint of pepper and I definitely picked up the savory quality of the MSG, but it was all muted. The smoky flavor all but disappeared.

I’m not sure Mark II is broken as such; except for scaling the pepper and onion powder back, I think it’d probably work dandy on something like a potato chip that’s already salty. But with popcorn, I’m completely reconsidering.

Taking this just as a popcorn seasoning, I think I need to put much more of it on my popcorn and readjust the proportions. I put on maybe a teaspoon worth, and it clearly needed more, but I think something much closer to the Mark I experience is called for. So for Mark III, I propose:

Steaky popcorn seasoning experiment #3 (proposed)

  • 1 part onion powder
  • 2 parts alder smoked salt
  • 2 parts black pepper
  • 8 parts granulated garlic
  • 8 parts MSG
  • 16 parts popcorn salt

I think the extra saltiness is very much the way to go when it comes to popcorn seasoning.

Posted in Uncategorized | Tagged | Leave a comment

Pointless controversy: The mall or downtown

This may be of limited interest to people outside of Syracuse, but I was directed to an article today in the local paper in which guest columnist David M. Rubin explains why the city should spend money revitalizing Hotel Syracuse and the downtown shopping district instead of supporting tax breaks for a hotel add-on to Destiny USA. And I’m going to explain why he’s wrong. (This isn’t politics as such; it’s logistics.)

But first, a caveat and some background. The caveat is that he isn’t wrong about the need to revitalize the downtown area. The city’s been trying to do that for decades. When I was little, we had a major mall downtown, and some big department stores like Sibley’s. Later the Sibley’s building became office space, where I ended up working for a few years (and therefore claim qualification to opine on this debate). The mall across the street from there is… er, sort of still a mall, but not a very popular destination.

But all the effort and money that’s gone into revitalizing downtown hasn’t done a darn thing, and there’s a simple and obvious reason why. The reason is so simple and obvious, I’m baffled why the city’s high mucky-mucks can’t figure it out—let alone why Rubin mentions it and trips right on past it in the dark without wondering why his shin hurts.

Choosing between the two seems, to me, a simple matter. A renovated Hotel Syracuse may bring back a portion of downtown. A new hotel at Destiny will only serve Destiny, surrounded by its moat of parking lots and high-speed roads. A Destiny hotel won’t develop any neighborhood. It’s meant to imprison visitors inside its outlet stores and chain restaurants at Castle Congel and keep them away from the city of Syracuse. Giving tax breaks to a hotel at Destiny is anti-development.

See it yet? Because Rubin doesn’t. Central to the very reason Destiny is thriving post-renovation is the fact that it has frelling parking lots. The presence of nearby high-speed roads isn’t so awful, either. Does the city seriously think that people want to spend ten minutes navigating a rat’s nest of confusing one-ways just to get downtown, then another half hour to find acceptable parking?

Downtown, there are many tiny lots but few garages, and there are also many tiny garages. The tiny lots and tiny garages mean “valet” parking is the norm, which means an attendant has to squeeze your vehicle into some other space where it may be blocked in to make more room. They hold onto your key, and when you need your vehicle again it takes a while to get it out.

And the traffic is little better. Salina Street is choked with buses, and has some cross streets where you can’t turn at all. The entire area around it is made up of one-ways with little rhyme or reason. When I first went to work up at Syracuse University, I was appalled by the haphazardness of it all; it got easier to navigate with familiarity, especially when I worked downtown at a later job, but it’s still crystal clear why casual shoppers avoid downtown. And if you ever need to get onto I-81 North or I-690 from Harrison Street within about an hour of 5 PM, just stay at the office and hit yourself with a hammer for half an hour; it’s a far more pleasant experience.

Of course there are the weekend festivals all summer long. Those aren’t half bad and can be worth the effort to park, and to work around the altered traffic flow, if you can navigate the crowds. I went with my in-laws to Taste of Syracuse one time, and we couldn’t get through the press at all. It made the State Fair, which I love, look like a ghost town. (The Fair has parking, by the way.) The festivals seem to be working, at any rate, but any given weekend I’d rather be at the Renaissance Festival up in Sterling, where the food is even better.

The city and people like Rubin are wrong about the two sides to this dilemma. On the one hand they think it’s a matter of giving tax breaks to a developer who, despite many flaws, has brought business into the region. On the other it’s throwing even more money at downtown, even though that hasn’t worked yet. But that’s not the real dilemma. It’s between those tax breaks, and finally addressing traffic and parking. Until the city does that, revitalizing downtown to its fullest potential is impossible.

Indeed, David, Hotel Syracuse might bring back a portion of downtown—iff the infrastructure exists to help it. Without that, they’re throwing tax dollars into a black hole. If they’re going to do that, may as well give Congel his tax breaks and stop whining. At least something positive will come of it. Meanwhile if you want downtown to thrive, and I cheer for that goal, stop asking how you can rearrange the brochures to make it look pretty and start asking why people don’t find it convenient to choose downtown as a destination. And then do something about it.

Or, you could trip over the point again.

That’s capitalism, you might say. Maybe the locals just can’t compete with the likes of the Cheesecake Factory. But think again. Our tax money helped build Destiny and provide the antiseptic, enclosed environment these chain establishments like: free parking, a clustering of restaurants, a critical mass of potential customers, games to baby-sit the kids, and a new feel. Our local restaurants get no such package of benefits at taxpayer expense.

Come on, David. Is free parking really such a bad thing? If Syracuse had better paid parking garages, there’d still be an economic disincentive to come downtown, because free parking beats $10 parking every time. But at least you would have the guarantee of finding a good spot, and that’s a lot.

There is of course only so far downtown can go anyway. Syracuse will have its weather, and that means during the winter, humid high summer heat, and rain, people would by and large rather spend their time in an indoor environment. You can’t fight Mother Nature, and her capricious moods rule central New York with an iron fist. Take for instance the widespread rain we have today, which we were inadequately warned about.

But to the extent that downtown can thrive, it ought to, and the first step to that is admitting you have a problem. Or rather, two problems. Fix the traffic, fix the parking, and spending a day downtown will look viable to a lot more people. If you don’t intend to do either, then stop peeing into the wind.

Posted in Uncategorized | Tagged , , | Leave a comment

Steaky popcorn seasoning experiment, Mark I

I mentioned recently that I was convinced a steak-like seasoning for popcorn and other muchies was possible, thanks to encountering a rather excellent job of it with potato chips.

After searching for a good beef powder to add—I still would like to try it if I can find some cheap and preferably on Amazon—I came up empty and decided to take a stab at faking it, using the parameters I had already set. The one addition was that I found some alder smoked salt, and felt that would work out well.

My first attempt mixed all these by eye, and as a result this is my best guess at the proportions:

Steaky popcorn seasoning experiment #1

  • 1 part alder smoked salt
  • 1 part black pepper
  • 4 parts MSG
  • 4 parts granulated garlic
  • 6 parts popcorn salt (I overpoured)

I blended that together the best I could and tried a few pinches; afterward I tried applying some to some white cheddar popcorn (it was all I had handy) just to see if I could get an idea of what it’d be like on regular. My observations:

  • The smoked salt was overpowering. It needs to be cut in half.
  • The garlic was a tad strong. Cutting that in half wouldn’t hurt anything.
  • The popcorn salt was overdone, as expected. It should be cut back to the level of the MSG.
  • The black pepper wasn’t strong enough. Double it.
  • Although my tolerance for onions is very low, I think a tiny amount of onion powder would not go amiss.

So with that, this is what I intend to try on my next attempt:

Steaky popcorn seasoning experiment #2 (proposed)

  • 1 part alder smoked salt
  • 1 part onion powder
  • 4 parts black pepper
  • 4 parts granulated garlic
  • 8 parts MSG
  • 8 parts popcorn salt

The only thing I’m wondering about, besides if it’s feasible to come by a basic beef powder that isn’t itself flavored up, is if a little butter-flavored powder would work here. I’ve found most butter seasonings to be lame, so my preference would be to powderize real butter by mixing a small amount of it with tapioca maltodextrin. Of course, if a light coating of butter is used on the popcorn itself for the spices to adhere to, that’s moot.

Folks who are sensitive to MSG might want to try finding a glutamate alternative. I read some time ago that there’s a dried mushroom seasoning sold in some Asian groceries that can act as an MSG substitute because it’s rich in glutamates. I haven’t tried it myself, but you can get it on Amazon; it’s imported from Taiwan. Wegmans doesn’t seem to carry it in their international food section, but I might have overloooked it; doubtless they’re not as well stocked as a proper Asian grocery, though. I don’t subscribe to the theory that “natural” is automatically better, but I admit I’ve been very curious about this stuff.

If you try your own version of this steaky seasoning, let me know how it turns out. Or heck, if you can find powdered beef and incorporate it, I’d like to know how that turns out too. It feels wrong to attempt steak flavoring without beef, even if I know it’s been done with relative success on a potato chip.

Posted in Uncategorized | Tagged | Leave a comment

Halflight lives?

I’ve mentioned before that since 2001 I’ve been writing the scripts for a Webcomic that never came to fruition. The plot was there, the jokes were there, but there was no art for it. It’s been in limbo, just growing and growing, all that time.

Last night someone mentioned the idea of turning one of their novels into a play. That sounds like an interesting exercise, as plays are so much different a medium and require different skills—but the learning process might help illuminate some truths about writing. As I pondered that scenario, Bad Idea Mode came down on me like an anvil.

I have tentatively begun novelizing the comic. The goal, if it works, would be to develop it into a series of short comic sci-fi novels.

This is very much an experiment, though. Books are different than comics. You can’t just cut away once the punchline is delivered; at least not all the time. Sight gags are practically out of the question. And with overlapping story arcs and a different concept of length, I honestly have no idea where a novel would end. If the comic had gone into proper development, my plan all along was for about the first 150 issues, spanning most of five systems, to make up one book; that’s a good figure for a comic book and it coincided with the end of a major arc. But the first issue takes up two distinct book scenes (it ended on a cutaway, which got expanded), and I have to figure each issue thereafter is about one scene on average—with the exception of some action sequences, which would cut it down a little, but more of those happen in later issues.

For a comic novel, length is probably my enemy. I’m thinking something in the 75K range for each book would be ideal, although a tad longer might not hurt—but 150K is right out. At my current pace that barely gets through the second system. And some of the more interesting developments and characters wouldn’t happen, then, till book 3 or so. How much of a problem is that, really? I don’t know.

This is brand new territory.

Posted in Uncategorized | Tagged , | Leave a comment

CSS cheat: Bilinear gradient

CSS gradients are amazing, wonderful things for what they can do. But there’s still a lot they legitimately can’t do. There are tricks people have used to try making conical/angular gradients, but recently I came across a need to use a bilinear gradient.

For those who haven’t run into this before, a bilinear gradient is what you would use on a square where each corner is a different color. Essentially on one side you’d have a gradient that went from color A to color B, and on the opposite side would be one from C to D, and as you moved between those sides you’d want one gradient to transition to the other. When the shape is not a square the math gets more complicated, but this is the gist.

The reason this came up for me was that I was working on a color picker using only CSS gradients. (If I’d used SVG it wouldn’t have made much difference, though; SVG has some more options that would fit what I needed, but they’re not widely supported yet.) Specifically, this picker would use a 2D selection area and a slider; the slider would represent the current mode of the picker, for instance hue (the default), while the 2D area would be two other parameters of the color, e.g. saturation and luminance. (In hue mode, though, I cheated and went with HSV instead of HSL because it looks better.) I had modes for hue, saturation, and luminance, but wanted to do red, green, and blue as well. This meant the 2D area had to transition from, say, no red on the left to full red on the right, and no blue on the bottom to full blue on the top. That’s a bilinear gradient because each corner has a diferent color and there’s no simple way to add them together.

After trying and failing to get anything right with diagonal gradients and varying the alpha of the top layer, I finally had a moment of clarity: This particular bilinear gradient can be done if one gradient is vertical, one is horizontal, the one on top has 50% opacity, and then the color level is doubled. First problem: CSS filters aren’t widely supported yet, so not so much with the color doubling.

However, this turned out to be only a minor setback. I realized that if I split my square into quadrants, I could fine-tune the gradients to get exactly the effect I wanted without needing to double the color values.

Here’s the breakdown, using green editing mode as an example. So green stays constant, and for the purposes of this example I won’t mention it again. Red increases on the horizontal axis, blue on the vertical. The left two quadrants each have a vertical gradient from black to blue, and the right two quadrants each have one from red to magenta. The horizontal gradients that go over these will be at 50% opacity. The bottom two quadrants have a horizontal gradient going from black to red, and the top two from blue to magenta.

Since gradients can repeat, this really only calls for four divs. One is the container, and I arbitrarily chose for it to be the left half; it’s full width and full height, but its right half will be covered up by the next div, which is in its contents. The next div is only half width and is positioned on the right-hand side. Each of these gets the appropriate vertical gradient. Then two more divs are placed in the container, each with full width but 50% height and opacity, one on top and one on the bottom, and these are for the horizontal gradients. This is roughly the code:

<div style="width:250px; height:250px; position: relative; border: 1px solid black;">
  <!-- left half (contains others half-divs) -->
  <div style="width:100%; height:100%; position: absolute; left: 0; top: 0; background: linear-gradient(to top, #000, #00f 50%, #000 50%, #00f);">
    <!-- right half -->
    <div style="width:50%; height:100%; position: absolute; left: 50%; top: 0; background: linear-gradient(to top, #f00, #f0f 50%, #f00 50%, #f0f);"></div>
    <!-- bottom half -->
    <div style="width:100%; height:50%; position: absolute; left: 0; top: 50%; background: linear-gradient(to right, #000, #f00 50%, #000 50%, #f00); opacity: 0.5;"></div>
    <!-- top half -->
    <div style="width:100%; height:50%; position: absolute; left: 0; top: 0; background: linear-gradient(to right, #00f, #f0f 50%, #00f 50%, #f0f); opacity: 0.5;"></div>

Unfortunately I can’t display the result here with raw markup; the only way to do that is to use an image. CSS gurus will note that the outer div with the border has a specific size and also has position: relative so that it is an offset parent of the first element within. This method will work regardless of what the green value is, as long as it’s consistent between all four divs.

The reason this trick works is that ultimately we want the red and blue components to be additive. The 50% blend would be perfect for that except that it darkens the result. But if we go by quadrants, we can make sure that the corner corresponding to that quadrant is a common color in both gradients. E.g., in the upper right we go from blue to magenta, and red to magenta. Magenta averaged with itself is the same; and for all the others, they end up being mathematically exactly what we want for where they are on the full square.

Sadly, this technique is not applicable to generic bilinear gradients. That is, you can’t just take any old four colors and expect this to work. This method only works because the red value increases by the same amount regardless of where you are vertically, and blue increases by the same amount regardless of where you are horizontally. If the red and magenta corners got swapped, for instance, it wouldn’t work at all. (Funnily enough, though, it’d still be possible to simulate that gradient a different way.) Or if in place of magenta you had yellow, that’d fail.

Given that I was able to puzzle this out with some difficulty, though, I can’t help but wonder if there is a general solution that simply eludes me: some combination of splitting up the shape into components where a more simple layering can take over. I believe there might be a general solution if conical/angular gradients were available, but they’re not. Radial gradients don’t seem as if they’ll ever hold any promise for this sort of thing.

Posted in Uncategorized | Tagged , , | Leave a comment

How many bad blurbs does it take to change a light bulb?

“Inspiring.” “Illuminating.” “I was paid to say this.”

All the world needed was a little light, and the right blurb to change the bulb.

John Doe’s blurb is a humble one, but it has big dreams. Little does it know its world is about to change forever. When the light goes out, it knows what it has to do.

At first it can’t find a new bulb, but a friendly tagline shows it where to find a box of them. Together they will ascend a stepladder and conquer the unknown. But when they find out the switch was never turned off, will they react in time?

Join the blurb as it quests to save the world from darkness with the help of a tagline, a byline, a sales pitch, and the wise old Oxford comma. Can one blurb light up the world?

How Many Bad Blurbs is a page-turning tour de force from John Doe, bestseller in his mom’s quilting group, sure to delight fans of Jack Handey, Garfield, Frank Miller, bacon, and J. R. R. Tolkien. A heartwarming tale with unexpected twists and suspense, this book will leave you feeling breathless as a blurb and its neighbors discover the power of friendship.

Posted in Uncategorized | Tagged , | Leave a comment