Looking at Facebook the other day, I saw no less than three recipes for what people described (in summary) as "the best easy dish ever".  One of these recipes was for buttered spaghetti noodles with parsley.  Is this the kind of food people typically eat?

Buttered noodles is what I have when there isn't anything else in the house.  That is to say, I consider the house empty of food when all that is left in the house is your "best easy dish ever".

Yes, it is easy to make food.  Maybe that's what you were trying to suggest with your recipe -- that food doesn't need to be complicated.  But come on.  We must have seriously different ideas about what "complicated" is.

This is evidenced again in the recent cub scout father-son cook-off.  Riley and I were the only pair to make something with meat.  We made meatballs.  Granted, some of the other dishes (all but the popcorn mix was a dessert) were multi-step recipes, but were for the most part boxed desserts.

Our meatballs were part ground pork, part sweet Italian sausage.  There were spices mixed in.  Egg, cheese, and breadcrumbs.  We mixed the meat by hand.  We rolled the balls by hand.  We (both Riley and I took turns -- yes, he participated in every step) sautéed the meatballs in a pan, then slow-cooked them in a crock pot.  We made tomato sauce from scratch for them to simmer in, with tomato paste, canned crushed tomatoes, and spices.  There was no box, no frozen meatballs.

I'm puzzled by what passes for typical homemade dinner in a local household.  Sure, there are nights when reheated frozen chicken fingers see our dinner table, but we also have nights where the kids help cook salmon.  Berta's beef barley stew is pretty tasty.  I can make some mean, flavorful wings from a pack of whole bulk wings.  I am not trying to convince anyone that my sriracha-covered frozen chicken fingers are a delicacy on Facebook.

Berta went to a Tastefully Simple dinner night with a bunch of meat recently.  They were set to make meals out of the meat using the Tastefully Simple products.  Well, it went ok, but the recipes were a bit... bland.  Not just bland, but lacking imagination.  With such great spice products, you'd think the recipes would try to make use of that flavor.  Instead, the focus seemed to be on how you could use only their spices to make meat not-too-plain to eat after simmering in a crock pot all day.

Berta had to add vegetables to their inexplicable "Italian" beef stew.  What made it "Italian"?  Maybe the parmesan cheese they said to add to the bowl?  There was also cream cheese in it, which I've never heard of in a stew.  Maybe I'm missing something, and that's what stew is supposed to be like?  Based on the flavor, I think "no".

Yes, the lack of vegetables was curious.  In their last recipe we tried last night, the chicken was drenched in some flavorless cream-ish concoction.  We put it over plain mashed potatoes (which I don't think were part of the recipe), and the potatoes had more flavor.

We were not impressed.  And I am left to wonder, if this is what people consider "great recipes", what the heck garbage were they eating before?

I don't begrudge you your attempts at making food in your own kitchen.  More power to you.  But don't think that taking a jar of Prego (ugh, please) and adding some chopped onion to it makes your spaghetti recipe fantastic enough to mention.  Ok, maybe it's a stepping stone for you to greater things, but at least be cognizant of that.

My suggestion: Grab yourself a cookbook and learn to make quick meals with real food.  It's not as hard as you think, and the rewards are great.

I was recently reminded of this recording from ages ago.  I volunteered for a Blogothon, wherein you write a blog post every half hour for 24 hours, and get people to pledge money toward a cause of your choosing.

Being me, I decided not to write a standard blog, but to create and record a podcast-style story over the 24 hour process.  On the half hours, I'd write the script and post about the process, and on the hour I'd publish the recorded and edited audio of the script.

Mind you, this was ages ago (2005?) and was really the first time I'd tried any of this.  There were a handful of technical difficulties, but in the end I managed to crank out 20 "episodes" over the 24 hour period, resulting in one complete story.

The old recordings were hard to listen to in one sitting, since each short bite had a 15-second preroll that got pretty tedious to listen to.  So upon finding these recordings recently, I chopped off the preroll and tacked them all together into two large parts for easy consumption.

I present these to you here.  Enjoy!

Almost Friday - Paycut - Part 1 

Almost Friday - Paycut - Part 2 

I think I have found an unanswered electronics market: Developer headset.

I have been hearing headphones with a microphone every work day for at least six hours for almost four months.  My headphones are an essential part of work, because they connect me clearly to my remote co-workers, and to my programming pair (someone I cooperatively code with all day).

I want to take a moment to dispel the myth of your built-in MacBook microphone being enough to function as a speakerphone.  It's not.  It's better than most, but I can still hear myself coming out of your speakers, and I can still hear all of the activity going on around you.  It might be sufficient in a pinch, but it is not adequate if you expect to continue using it daily, and certainly not for my own use.


There are essential features that I require that do not come in a standard set of headphones:

Headphones must be wireless

I have no desire to be tethered to my computer with a wire.  Many times during meetings, I will prepare food in the kitchen, which would not be possible with wired headphones.

Wireless should use bluetooth

Many headsets that are wireless require a special USB dongle that presents itself to the computer as a sound card and transmits/receives a signal between the computer and the headphones.  My computers all have bluetooth already.  An extra dongle, which takes up a precious USB port, is not necessary if bluetooth is used for the headset transciever.

Battery must last at least 5 hours

I use my current headset all day. I charge it at lunch so that I don't have to plug it in.

Charging cable must be standard

I've had headphones that use some ridiculous custom plug for charging.  I do not want to have to pack this extra, weird cable (and risk losing it!) while traveling.  MicroUSB is preferred.

Headphones must work while plugged in

In a seeming paradox, just in case I forget to charge the headphones, I need to be able to plug in the headphones to charge them while I am using them.  I've had headphones before that would shut down while charging, which is unacceptable.

Headphones must be over-the-ear

By "over-the-ear", I mean "circumaural", such that the cups of the headphones must only touch my head, and not my ears.  I can't have headphones crushing my ears all day.  Likewise, the headphones shouldn't hold themselves on by squeezing my head -- they should rest on top of my head with a comfortable band.

Microphone must include hardware mute button

There has to be a mute button on the unit, or some way to mute recorded audio without using software.  My current headset has both a button and allows me to lift the microphone into a muted position.

A setting must allow me to hear myself speaking mixed into the output audio

The other options are difficult to search for, but this is is the hardest one to discover, for reasons I can't explain.  My current headphones sufficiently isolate sound to the point that my own voice sounds muffled.  The software included with the headset (which only works on Windows), allows the microphone audio to be mixed into the computer sound.  This happens inside the headset so that there is no delay.  I can hear myself when I speak, and it is not so loud as to be overbearing.  When I am unable to use this setting (as on the Mac, which I now use for work), the inability to hear myself causes me to start slurring my speech after a few days of use.  This is an absolute requirement for a headset for me.

Nice to haves

There are a few things that would be nice to have in a set of headphones, features that I've seen in many headphone sets while shopping for the perfect unit.

Active noise canceling

There are often sounds in the room that would be nice to not hear at all: Kids running around, vacuum cleaning, lawn mowers.  An option that can be turned on to reduce these noises with active noise canceling (like my Bose Quietcomfort headphones) would be nice.

Hear-through capability

There are often sounds in the room that would be nice to hear without taking off the headphones.  These sounds should be amplified on demand, obviously with the option to disable it and enable noise-cancellation.

Boom-free noise-reducing mic

I like the concept of a mic that can isolate the source of speech, however in practice, mics on headsets tend to be omni-directional and hear everything in the general area.  Instead, I would like multiple microphones built into the ear cups and a signal processor that can combine their audio in a way that pinpoints and amplifies the sound coming from between them, and eliminates the sound coming from outside them.  I have seen several headsets available with this feature, and their mics are well-reviewed.

Programmable buttons

A couple of buttons on the side of the headset that could trigger actions on the computer would be nice, particularly for hanging up Skype calls.

Good, lightweight build quality

The headphones should have a solid feel, but still be lightweight. Unlike many of the reviewers on Amazon, I tend to treat my equipment with respect.  So the headphones need not be made of steel, but should not be flimsy.

Multipoint pairable with phone

It would be nice if the headset could simultaneously be paired with my phone such that I could touch a button on the headset to answer and hang up calls, and use the headset for audio.

If you see a set of headphones such as these in the wild, please let me know, as I am in the market.

A random thought I had this morning:  There are a lot of trucks that idle in our development.

I woke up this morning to the sound of, well, I don't know what kind of truck.  Whatever it was, it was making some grinding motory racket outside at 6am.

This past week, some neighbors have been having work done on their roofs.  The trucks that pull up outside simply leave their engines running.  I'm not sure why.  Maybe they need to be able to make a quick getaway if it starts to rain and they're on the roof?

The groundskeeping crew leaves their trucks by the side of the road.  They're not idling, but the mowers and the leaf blowers they use all day are nearly incessant.  Especially the leaf blowers.  I have a theory that when the crew gets tired, they just turn on the leaf blowers and wander around.  Outside my house.  Where I'm trying to concentrate.

It seems like just in our neighborhood we're consuming a crazy amount of gas, probably unnecessarily.  If there are communities like ours all over the world, that's simply a stupid amount of gas being wasted.

I think science should invest time in genetically engineering energy-producing grass.  Grass doesn't seem to be doing anything else than eating up our fuel supply and wasting our weekends cutting it.  Maybe grass should work for a living?

I'm down this rabbit hole.

My business debit card has expired.  I have purposefully allowed this to happen so that I can close the account.  The services that are still attached to it and that I want to keep alive need to be moved to a new account.  One of those services is web hosting.

I noticed that of all of the expenses, web hosting is the largest one.  I spend $25 per month for one virtual server at Rackspace, while simultaneously spending $20 per month for three virtual servers at Digital Ocean.  One of the Digital Ocean servers sits empty, waiting for the transfer of content from the server at Rackspace.

So, to save $300 per year, I've decided to migrate all of my personal web content to the preallocated Digital Ocean server.  Last night.

Server Configuration

The new server is an Ubuntu LTS server.  I'm running all of my web sites (there are 97 of them) via Nginx on this server, whereas I was running Apache on the old server.  There is an exchange here of configurability for performance.  Apache is easier to configure, and Nginx is less resource-hungry.

Nginx uses fastcgi to route requests to php-fpm.  I've configured fastcgi to use TCP instead of unix sockets because, counterintuitively to me, TCP is faster and more reliable.

Incoming requests first hit HAProxy, which proxies the request to Varnish, which proxies the request to Nginx.  Varnish caches built pages only on asymptomatic.net, since I haven't taken the time to see what other domains could benefit from a caching proxy -- there are probably many.  The manual expiry of cached pages is quite complex, even on this domain.

I have managed to configure HAProxy to failover to proxying directly from Nginx in the case that Varnish doesn't answer.  This would have come in handy last night when Varnish decided to vanish for about 7 hours.  Routing directly to Nginx is not ideal, but it's better than all of the sites going down.

What I'm looking for now is a simple monitoring tool to ensure/alert that any of these services go down.  Pingdom will alert me when the site itself isn't available, but it will not tell me when Varnish isn't doing its job properly and HAProxy is circumventing it.

Remaining Migration

Of the 97 domains hosted on the server, there are a handful that still need to move.  Some of them are simply just other domains that need re-pointed to this server.  Others are more complicated node-based services that I will need to configure directly in HAProxy so as not to need to use an odd port for the service.

I am pleased with the configuration of the environment so far.  Apart from the mysterious Varnish outage, things are running smoothly.  I have bumped the available memory on the server to increase the grease between rubbing components.

What I might consider, as an experiment, is using Varnish's file storage backend instead of the malloc backend.  Since Digital Ocean's servers are all using SSDs, write speeds should be reasonably quick.  If reads are likewise speedy, there might not be a lot of difference between malloc and file based stores, and I'd be able to keep more cache alive.  This would allow me to use the cache on more domains, since memory is in limited supply, whereas disk space is more easily obtained.