The hollandaise question

One of the video channels I like to follow on YouTube is Food Wishes, and recently Chef John posted a video on how to make a hollandaise sauce. This got me thinking. I’ve never had eggs Benedict in my life, and the main reason is that I’ve always feared hollandaise is too close in format to mayonnaise. A little research recently told me that it is in fact a form of mayonnaise, just one where butter is the main fat and the egg yolks are cooked.

I am fundamentally incapable of eating mayo. I discovered this at a very young age. It probably ties in with the fact that I really can’t do any of the classic condiments, like ketchup and mustard—and the best theory I have going for this to date is that they’re all vinegar-based. I hate ketchup on two prongs, one of them being that I can’t stand tomatoes. I loathe both the smell and the taste of mustard. But mayo stands out above them, because I’ve been forced to “try” foods based on it before, and it triggers my gag reflex something hideous.

My parents really pushed me on a lot of foods, from time to time anyway, when I was younger. I don’t blame them for that, because you kind of have to nudge kids out of their comfort zone, and mine has always been limited. But the experiences I remember the worst all came from mayo.

I don’t think I’ve ever tried macaroni salad, but I have been made to eat potato salad on at least two occasions. I recall, all too vividly, pushing around a chunk of potato in my mouth, smearing the interior with a sauce that lit up my taste buds like a pinball machine—if the ball was spiked and made of hate—and being unable to make it stop because I physically could not swallow. Nor could I chew, which made the torment worse. Every attempt to force it down caused a gag spasm.

Tuna fish was worse. I gave up fish forever a long, long time ago, and will never look back. When I was a kid I used to eat fish sticks, and they were just sort of okay, but one time I finally had enough and realized I didn’t care for the flavor of fish anyway. Now combine that with mayo. At least once, tuna fish was all there was for dinner, and I know that at least once, I tried. I tried, and failed. I don’t remember that crap in my mouth, because I think I’ve blacked it out, but I did try. I found skipping dinner and going hungry far preferable than suffering through that.

My most recent encounter with mayo (and ketchup) was a burger accident, not discovered until I got home even though I thought I’d checked the burger well enough, that rocketed me up to an instant 20 on the Nicki Minaj rage scale. I had to scrub my mouth out with a paper towel, and even then I couldn’t get rid of the lingering taste.

There are hard limits and soft limits, and many that when challenged did eventually go away. I know I had many soft ones. I wouldn’t touch mushrooms as a kid because they squicked me out—although I now think it’s because I associated the smell of them with one Christmas when I was sick as a dog—but as an adult I love them. I wasn’t a big eater of beef when I was little, but thankfully that didn’t last; although I’ve still never developed a taste for beef in a roast. I don’t do gravy, and I’ve never minded. There have even been many times—none recently, or ever again—that I’ve struggled through something with tomatoes out of politeness. But condiments, mayo in particular, are a hard limit. (So is salad dressing, on a lesser level. I don’t eat salad because a salad without dressing is inedible, and with dressing is gross.)

Which brings us back to hollandaise. Most hollandaise is, as I understand it, made with lemon juice and not with any vinegar at all. And butter, lots of butter. I love lemons, and have been happy to eat them raw. Sourness itself does not scare me; I love it. I know that some people make hollandaise with vinegar, but for the most part I think it’s usually just lemon. And this makes me wonder: Could I eat hollandaise sauce, or would it be so much like regular mayo that it’d trigger a gag?

I will remain curious, because this is not an experiment I dare try. I know my limits now. I know which ones I can push and which I can’t; when to try new things and when not to. Family members who know me consider me positively adventurous now in comparison to my youth, but certain borders of the food landscape may as well be guarded with barbed wire and concrete. And so it shall stay.

Posted in Uncategorized | Tagged | Leave a comment

Mocking the Web-challenged, redux

My issues with the Weather Channel’s site remain ongoing. A few weeks ago I let them know that the new system they were using to load up content was broken, because their developers thought it’d be brilliant to use native geolocation built into a browser without checking to see if the browser gave them access. If it didn’t, it caused a cascade of JavaScript errors that basically kept any of their content from appearing. This made it very hard to check the weather. If I turned geolocation on, the problems went away, but obviously that’s not a real solution, so I let them know about it.

The good news is, they fixed the geolocation issue. The bad news is, they managed to screw up two more things in exactly the same way.

When I checked back in some time later, I found that content still wouldn’t load—but now, turning geolocation on doesn’t do squat, because I’m no longer getting errors about that. What I did get were errors regarding the Promise feature from EMCAScript 6, and localStorage. I reported these as well.

Promises are an interesting thing, very similar to Futures in Dart which I’ve been working with a lot. Their support is relatively wide, but as with all new Web features it’s nowhere near what you could call universal. On caniuse.com, support for Promises is rated at about 67%. This means if someone visits with a browser that doesn’t have them, the Weather Channel should be including a polyfill script if they want to use Promises.

I got an e-mail back from them. They fixed the Promise issue, and apparently disregarded my note that there was also an error with localStorage.

I have localStorage disabled on most sites, and as a result, the Weather Channel’s script throws a security error when attempting to use it. This error is not being caught (of course), and it therefore prevents some of their core objects from being created. Without those objects, the content loading still fails.

Naturally, I had to reply telling them the loading problem still wasn’t fixed. Which it would have been (I didn’t say this part) if the developers had read my entire message the first time around.

So to recap, so far I’ve seen three site-murdering errors.

  1. Let’s rely on geolocation, which some users may disable for obvious privacy reasons.
  2. Let’s rely on the browser having good EMCAScript6 support, which is obviously a bad idea.
  3. Let’s rely on localStorage, which some users may disable for obvious privacy reasons.

Ugh. I know how hard it is to be a developer. I know how hard it is to develop Web content that works across a wide spectrum of browsers and user profiles. But I also know what a frelling try/catch block is, and I know you never, ever take new options for granted even if support seems fairly good. Unless support is darn near universal, you always fall back. And if a user disables something, you need to handle it. I don’t go as far as worrying about users disabling JavaScript altogether, but having come from the dark days of worrying about IE6, I know the value of preparing for the worst.

There are times I envy some of the younger programmers who are pushing the envelope with new technologies, and it’s really an amazing time for Web development because it’s so much easier to write code that just plain works now. (At least, you would think so.) But on the other hand, I see what lack of experience is doing to these millennials, and it just makes me wince. These particular errors are rookie mistakes, not something you should see on a big site.

Posted in Uncategorized | Tagged , , | Leave a comment

No, bacon will not give you stomach cancer

A friend of mine shared this story on Facebook today, and the story (and the report it’s based on) is so stupid I feel the need to shred it to pieces. (Not the friend, of course.) Also it maligns my beloved bacon, and I won’t have that. The headline says that bacon and alcohol have been linked to stomach cancer, according to the World Cancer Research Fund.

First of all, we know the problems inherent with every study of diet: Subjects have to self-report, or may be analyzed as a group by how much a region consumes. There’s absolutely no way to control properly for what a person eats outside of very time-limited, very strict lab settings, and of course those can’t give you data on long-term outcomes, so there’s really no such thing as scientifically studying a person’s diet to begin with because there’s no such thing as a controlled experiment. And that’s not even counting the fact that you can’t isolate all the other possible variables.

Analyzing people by region is even dumber, and it appears to be at least one of the methods behind this report based on some of the things mentioned in the article. There is zero methodological validity to analyzing people by region, because the number of variables in play is huge and there’s no controlling for them at all. Call this the “But the French eat X” fallacy. You can’t read any meaning into it.

So to start off with, there’s no such thing as a scientific link between a given food and cancer, because you can’t study such things with any method that could be called science. I know governments and advocacy groups throw money at “studies” like this all the time, but all they are are makework projects for biochemistry grad students. They can get better results in animal testing of course; some that could be called science because they can account for variables there. But mice and humans have a very wide gulf between them, which is why whenever you read news about a medical breakthrough and the article says “in mice”, you should stop holding your breath and pretend you didn’t read it in the first place. You can bet 99% of those breakthroughs never survive in human trials. So it is with diet. (Have you heard that very low calorie intake can cause a huge boost to your lifespan? Based on research in mice, and repeated ad nauseum. It didn’t hold up in humans, but it still gets repeated anyway. There are lots of reasons to watch how much you eat, but living longer isn’t directly one of them.)

Here’s where the junk science gets even junkier. The World Cancer Research Fund says right up front that they analyze research around the world—that is, they’re not doing their own original research. (Or maybe they’re doing some of that too, but it doesn’t appear to be their core focus.) The article even repeats this. That means that what they’re reporting is what’s called a meta-study, and meta-studies are the very junkiest of junk science. These aren’t research at all, but merely collecting multiple research papers on a subject and analyzing them for trends to draw broader conclusions. Anyone familiar with the scientific method knows this is like collecting dozens of history textbooks with the goal of using them to open a time portal to ask George Washington what he had for breakfast. No doubt the WCRF thought they really did find something, and this was a sincere effort to get the word out, but it makes their methods no less wrong.

Cancer is serious business, so I have no ill will toward the WCRF and wish them the very best of luck in advancing human knowledge toward a cure. But it bothers me that they operate by doing meta-studies, which can’t advance knowledge at all. Heck, it’s right in their mission statement that comes up when you Google them. Meta-studies are absolute garbage; they can’t help anyone learn anything except how not to do science. At best they have no value; at worst, and this is most often the case, they lead science on wrong paths and impede real investigation.

Analyzing research around the world means nothing unless you’re working to reproduce, question, or debunk that research, because those are the only reasons to analyze research at all. (I’d like to hope some of what the WCRF does is exactly that, looking for flawed research to cut apart so that other researchers will step up and do better. All science is skepticism.) You can’t draw conclusions without data, and a study is not data; it’s output. When an experiment is done right, you get to see the raw data, the process used to analyze that data, and the conclusions drawn from it if any. Those conclusions are not raw anymore, and can’t be used as data points in another study. Not only that, but you also can’t combine raw data points from different studies because you can’t know for sure they used the exact same methodology or that a new variable (or ten) doesn’t exist between the different subject groups. This is not only basic logic, basic science, but basic information theory.

So what does this mean for bacon and alcohol? It means nothing one way or the other, because this report is junk. If there truly were a link between bacon and stomach cancer, the methods used by the WCRF to find it couldn’t tell you that. Those same methods could just as easily tell you that liking the color yellow makes you five times more likely to be a serial killer, because the science involved is not science.

Incidentally, another way you can tell this article is BS is that they equate the increased risk from eating “processed foods” (and seriously, what in the frell does that even mean?) with the increased risk from smoking. Smoking. You know, that thing that so reliably and predictably causes cancer that nothing else we know about—except for maybe certain chemicals, high-dose radiation, and an excess of ultraviolet light—comes close. This is like saying that glancing at a road sign increases your risk of a car accident as much as driving blind drunk, in a snowstorm, with one eye closed, while texting. The result doesn’t pass the sniff test. You wouldn’t need a meta-study or even a real study to tell you this if it were any kind of true, because it’d be like having a neon sign flashing over ten generations’ worth of demographic data.

Now if you’ll excuse me, there’s some leftover bacon with my name on it.

Posted in Uncategorized | Tagged , | Leave a comment

Mocking the Web-challenged

I used to use an extension in my browser called ForecastFox to give me a heads-up on upcoming weather. I never liked that it used accuweather.com for its forecasts, and I always wanted finer control over a million things, but it was pretty handy. I finally had to get rid of it, though, because it would sometimes get stuck in a state where it was trying to update its info, and it became a CPU hog. Frustrating, but oh well.

These days I get my forecast from channel 9’s site, a poorly designed site but usually a fairly reliable forecast inasmuch as Syracuse has such a thing. But when there are severe weather alerts their site is useless, so in those situations—or when I want a ten-day forecast, as I sometimes do—I turn to the Weather Channel’s site, weather.com. Even though they do the stupid naming-winter-storms thing.

The other day we had some wind advisories, so I headed over to weather.com—and encountered a crapload of blank gray boxes. No real content at all, except for a few menu headers. This was the result of a content loading script gone horribly wrong. It took very little time to find the culprit: A script on the site was trying to use my browser’s geolocation feature, which is disabled, and as a result that kept all the other scripts on the site from running. (As of this writing, it still isn’t fixed.)

As a programmer, I know what it’s like to make a big mistake, but a mistake of this magnitude from a site with a major online presence like that one—and one would assume multiple developers—is really, really inexcusable.

First off, the bigtime Web design professionals are always on about failing gracefully, falling back when certain options aren’t available. It’s hard these days to have a site run well without some JavaScript, but a common design goal is to at least try. Cookies are another thing sites need to learn to live without, at least when logins and shopping carts aren’t involved; little is more infuriating than a site that won’t behave until you enable cookies for it, even though it does literally nothing of value (to you) with those cookies. But for a feature that ties in with privacy, you ought to expect that it’s going to be disabled sometimes and that different browsers may disable it in different ways.

In my case, the value of navigator.geolocation is null. That’s what’s causing the script, which doesn’t check for that case, to choke. And when it chokes, all the subsequent scripts fail, because they didn’t put in precautions against this predictable scenario.

This is bad Web development. Again I know how easy it is to make a mistake, to miss something in testing, and even to be blindsided by the way one browser does something differently. But this seems like it should have been a very, very avoidable case, especially given the manpower and budget involved. Most properties of the navigator object should be considered iffy as a general rule, especially if you take into account that the property in question is the kind of thing a user might disable.

I reported the problem late Monday night. I finally got a response today that their development team is looking into it. In spite of the fact that other users noticed this days before I did and they too discovered the “solution” (re-enabling geolocation), this has gone unfixed in all that time. I would tend to think feedback along the lines of “Your site isn’t working at all for some people” would be triaged a little higher than that.

And this should be a very easy fix, because all the developers have to do is literally open a JavaScript console in the target browser and reload the page. The error pops out plain as day. Sometimes when a script malfunctions because a variable is null, it’s because the null was completely unexpected. As a survivor of the days when IE 6 roamed the land, I don’t know how you can use a navigator property—especially one tied to privacy—and not expect that it could be null.

As a man more than capable of making mistakes myself, my usual inclination is to cut them some slack, but we’re talking about a trivial fix to an issue that they should have seen coming, with the resources to act on it right away. It’s just not excusable for the problem to have dragged out this long.

I’m sure they’ll get it eventually. But dang is it frustrating. These guys probably make a lot more than I do, and yet they failed Real-Life JavaScript 101.

Posted in Uncategorized | Tagged , , | Leave a comment

Cheesy cauliflower chicken bake

A few weeks ago my mom tried an experiment, and I liked the results so much I decided to give it a try myself. As the title says, it’s chicken baked with cauliflower and cheese. Also bacon, just because. This is an incredibly delicious low-carb dish, and fairly easy to make. Because this was my first experiment, I’ll provide the recipe but then go step by step on the post-mortem. There were successes and failures with this that will influence the next time I make it.

Cheesy cauliflower chicken bake

  • About 12 chicken breast tenderloins
  • 1 lb. cauliflower florets
  • 8 oz. shredded sharp cheddar
  • Pre-cooked bacon crumbles
  • Brine
    • 1 qt. (4 cups) water
    • ¼ cup kosher salt
    • 1-2 tbsp. minced garlic
    • 2-3 tbsp. dried Italian seasoning
    • 12-24 black peppercorns

Add brine ingredients to pot and heat partway to boiling (a full boil or simmer is not necessary). Once heated, transfer to gallon-sized freezer bag or a dish, allow to cool to room temperature, then refrigerate. Before baking, add chicken to brine for about 1 hour.

Remove chicken from brine and add chicken to 13″×9″ baking dish. Cover with cauliflower, then cheese, then sprinkle liberally with bacon crumbles. Place in preheated 425° oven for 20 to 40 minutes until chicken is done (165°). Be sure to check several pieces of chicken for doneness and inspect them visually.

Now of course the promised post-mortem. My key mistake in this dish, and the reason the cooking time is so drastically imprecise, was that I used frozen cauliflower. The chicken pieces cooked on the bottom quickly enough, but after 20 minutes the cauliflower seemed to have caused the tops not to cook; it took pushing the cheese aside to see it, which I would recommend when testing doneness. As a result the dish took a full 40 minutes to cook, and the chicken came out a little bit tougher than it needed to. The next time I do this, I’ll nuke the cauliflower first until it’s past room temperature and maybe even warmer.

The florets came out reasonably tender, but I like mine falling apart. There was a little bit of chewiness this way, again because the cauliflower was simply too cold going in. This will be texturally more pleasing and cook faster if you pre-nuke the cauliflower while the oven is preheating. Nuke longer if you’re working from a bag of frozen florets, as I did. This will also keep excess water out of the dish, which I had; it didn’t hurt anything, but it didn’t look great.

The brine was the most successful aspect of all. I used some dried minced garlic and Italian seasoning, and shook what I thought was a reasonable amount in (hence the imprecision for that as well). Even though the chicken was a little tougher from overcooking—not horribly so—it was moist and extremely flavorful. The herbs ended up sticking to the chicken, and the garlic rehydrated in the brine. I took the peppercorns out, except for one stray that made it in; they didn’t add a ton of flavor, to the point where I might consider using ground pepper instead next time except that I liked the flavor just fine as it was.

I heated the brine at the beginning to bring out the flavor of the herbs, and that was, I think, important. The chicken didn’t get added however until the brine had thoroughly cooled in the fridge, so the way I arranged this was to make the brine earlier in the day. (Doing it the day before wouldn’t hurt anything, I’m sure.) In a pinch, you could probably skip the warming step and just throw everything in together before throwing in the chicken, but the seasoning probably won’t come through as well. And something about the color you’ll see from steeping herbs just screams that the result is going to be yummy.

Brining time was an educated guess. Although I went with an hour, it was unintentionally; my original plan was for 45 minutes, but I overshot. I don’t know if this contributed to toughness or not, but I’m still blaming all that on the cooking time until I can prove otherwise. Bigger pieces of chicken—you could make this with whole breasts if you wanted—would of course take longer to brine.

In spite of my missteps with the cauliflower, I found this dish to be a strong success. The flavor was excellent, the texture was pretty good except for the aforementioned flaws, and it was actually pretty easy to put together. It was my first time brining chicken, and that went so well I’m sure I’ll brine a lot more of it in the future.

Posted in Uncategorized | Tagged , | Leave a comment

Pointless controversy: The surprising reason new Ghostbusters will suck

Now with clickbait titles! This one simple trick will show you 30 things every ’80s kid remembers. You won’t believe what happens next.

The other day I saw the trailer for the new Ghostbusters movie. Or rather, I saw the reaction to it by the great and powerful Maddox; he held up his middle finger to the whole thing. This should surprise no one, but that made it better.

Ever since it was announced that the new remake (why?) of Ghostbusters was being made (why?), and that it was an all-female cast (why?), there’s been a lot of discussion about the fact that the gender change was kind of a silly stunt move and the movie would suck as a result. Well now I’ve seen the trailer, and I can honestly say it will suck, but not for that reason.

First, let’s discuss the elephant in the room: Hollywood stopped making good, fun B movies, for the most part, right around the early ’90s. You can see the change; it’s striking. A lot of it is because audiences these days aren’t willing to suspend disbelief about things that would probably run up a lot of lawsuits; in our much more litigious society, all those things wouldn’t work. There’ve been exceptions, but not many. And movies are now written almost exclusively by committee; screen plays get passed around and so many hands touch them that they end up a complete mess, because you can’t write anything that way. So we already knew they were incapable of rebooting Ghostbusters on that basis alone.

Another reason that this will suck was obvious from the trailer, but it’s not the one I’m getting at. I’m not the first to bring this up, but the original movie was character-driven, and the new one is gag-driven. That’s clear from what they chose to show us. That matters because the characters made the story; their reactions in character were a lot of what made it funny. But that cast could handle such a thing. For the new cast, that isn’t true—with the sole exception of Kristen Wiig.

So now for the real reason this movie will suck: the cast. It’s not that they’re bad, mostly, but that they’re mostly wrong for the types of roles. Even taking them as brand new characters and not trying to do a one-for-one comparison to the originals, they don’t have chemistry as a quartet.

Kristen Wiig is the only bright spot in this cast. She’s played serious roles. She can do depth. I’m convinced she belongs here. Unfortunately, she’s alone.

Kate McKinnon doesn’t fit. I really love her as a comic; I think she’s brilliant on SNL, especially when she does impressions. But it’s clear they’re trying to make her fill Bill Murray’s shoes, and that won’t work. Murray was always brilliantly low-key, even in his wackier roles, so it was easy to take him for an everyman thrust into a weird situation. McKinnon is playing it straight goofy, but without subtlety. Not her fault; it’s obviously what the writers wanted, and it’s a better fit for her sensibility, but she’s playing her part like it’s a 90-minute sketch.

Then there’s Melissa McCarthy. I’ve seen her do decent work, but her movie roles have tended toward loud Chris Farley types of characters. I loathed Chris Farley; I know that a lot of people will disagree with me on that, but hear me out. Farley had one and only one stock character: angry loud guy. That kind of character is funny in tiny doses, used judiciously, but it was almost all he ever did. (I did hear Tommy Boy was worth seeing, though.) And that’s been my problem with McCarthy’s cinematic work. Tammy may be the extreme of that, but she’s never been far from that extreme. She’s funny, and she has talent that she’s mostly been wasting on crap roles, but she’s wrong for Ghostbusters.

And this leaves Leslie Jones. Her time on SNL has been an unfettered wreck, because she has one and only one stock character: angry loud woman. It’s awful. And here she’s being used as a drop-in replacement for Ernie Hudson, who played a straight-man type superbly. Leslie Jones does not have that in her wheelhouse. Hudson played possibly the classiest character on the original team; Jones is clearly going for the opposite, because angry loud woman is her only character.

Go on and watch the trailer again. I dare you not to cringe now when you see Jones scream, “The power of pain compels you!” The studio thought it would be funny; and maybe to millennials who’ve only distantly heard of the original and don’t have taste, it is. But to the rest of us, it highlights everything they did wrong with the casting. The chemistry between these four is all wrong, even if taken out of the context of Ghostbusters entirely.

It’s not that they’re all women. It’s that at least three of them are the wrong women.

Posted in Uncategorized | Tagged , | Leave a comment

Gravity waves prove nothing

I’ve seen a lot of stories today about how gravitational waves have been observed, and this proves Einstein’s theory of relativity correct.

No, that is not how science works. Observing gravitational waves proves only that the observation is consistent with Einstein’s theory being correct, and inconsistent with theories that claim gravitational waves cannot exist. If the observation holds up as valid, theories that deny gravitational waves are possible must be set aside, possibly to be cannibalized for parts later.

I am not aware of any theories that insist gravitational waves aren’t a thing. Therefore, a correct headline for this story would read:

Observation of gravitational waves bolsters Einstein’s theory

Bolsters, perhaps, but does not prove. Failing to find gravitational waves, predicted by his theory, would not necessarily prove it wrong (because maybe they’re rare), and finding them does not prove it right.

When in doubt, always remember this helpful rule of thumb: Science reporters are morons.

Posted in Uncategorized | Tagged , | Leave a comment