Why are rats visiting my free rat buffet?

I like tagging along with the pest control guys when they do the exterior rat treatments. Bugs I don’t find that interesting, but rat control really is. I’m increasingly not a fan of poison and much more a fan of taking away their food sources and entry points. It’s more effective AND better environmentally.

Today I was letting the pest guy into a locked garage and one of the building unit owners came out and we chatted. He showed me their neighbor who had rats get into his Porsche SUV and cause all sorts of damage to the engine. He showed me the rat poison boxes in the backyard, and the kennel for the feral cat from the city.

And then we looked at the guy’s curbside compost bin with the lid half off, and his trash bin, which was so overfilled it couldn’t close.

Rats like food. Do you know why they eat the poison we leave out? Because they think it’s food. If you leave ACTUAL food out, they will eat that instead, and then they will snack on the delicious plastic in your SUV engine for dessert.

I’m sure the feral cat will do wonders for the population of songbirds in the alley, though, congrats on that.

Crypto is garbage

Cryptocurrency is really good for:

  • Fraud
  • This unregulated pseudo-stock-market where one type of digital magic bean is worth five figures despite having no basis in reality

That’s it. If it had any real use or value as a currency, Paypal, Venmo, Zelle, CashApp, the entire ACH industry, and every other way we transfer money between people or businesses without using a credit card would be on the way out. The fact that there is no competitor to these products that a normal person can use proves that crypto is useless.

This morning, I walked into a bank and withdrew cash. I then walked down the street to another bank and deposited the cash. Then I sent that cash via Zelle to a vendor who is going to do a painting project for one of my clients. This was an incredibly stupid process (again, that crypto could have done for me if it worked like the advocates said).

At least the teller wished me a happy birthday after looking at my ID.

Food tour – New York City

Food tours are so great, we had to do another. We were in NYC last week for the kids’ spring break, and we did another tour from the company that did my Madrid tour – Devour Tour Greenwich Village.

It started off with some weirdness that was handled quite well by our guide. He was talking to us about the arch at Washington Square Park and a gentleman not in the tour started to listen. I imagine this happens all the time and the guide shot him down gently and quickly, noting that you had to pay for the tour in advance. As the guy left, I realized how weird he was. If you told me he had just stepped off the set of a vampire movie set in the 1800’s I would have simply nodded. He was carrying a fancy bible and a watch on a gold chain. He was very polite but I was glad he moved on quickly, his vibe was super creepy.

Anyway, on to the food. There is no shortage of sketchy people in any city.

I can’t believe I forgot to get a photo of the first item – a bacon egg and cheese on homemade bread from Court Street Grocers. Fluffy eggs, crisp bacon, bread with just a bit of chewy toughness – highly recommend.

Next stop, Brigadeiro Bakery for some brigadieros.

Brigadeiros on a plate from Brigadeiro Bakery

You know how I ate croquetas in Madrid? Think of these as the sweet version. The inside is something like a b├ęchamel sauce except made with sweetened condensed milk. These were delicious and probably my favorite bite of the tour. We also had this delicious cheesy bread that I didn’t catch the name of and don’t see on their online menu. Our guide said this was something eaten by slaves who didn’t even have flour so it was gluten free. Yes, this framing is slightly problematic. They were delightful anyway.

Dense and delicious Brazilian cheesy bread

Next stop was Rafetto’s, where we met the 3rd generating Rafetto (The 4th generation had the day off), and tasted their pasta.

A small dish of ravioli in red sauce

Next stop, Manousheh for zataar flatbread.

A flat bread folded over with a green spice blend inside. Next to it is a cup of yogurt with oil and a spoon to add it to the bread.

We were told that the owner of the restaurant imported the oven from Lebanon as that’s the only way to properly cook the bread, and that Lebanese immigrants from states away make the trek here to get a taste of home. It was delicious, though I think the distribution of the spices was a little uneven, as Gremlin 1 nearly choked on hers, and I don’t think she has a particularly sensitive palate. She still finished it, so she must have liked it.

We then stopped at the Porto Rico Importing Company. If you do not like coffee or the smell of coffee then I recommend you give this one a miss. Otherwise, highly recommended. We had chocolate covered espresso beans and I got a latte (not included with the tour but a good addition).

Next was Rocco’s Pasticceria and Cafe for cannolis. They fill theirs by hand when you order so the cream isn’t just sitting there getting the crust soggy. You can taste the care they put in.

Three cannolis on a plate next to my wife’s phone

No NYC food tour could be complete without a slice or two, and Bleeker Street Pizza didn’t disappoint. The crust was crispier than I’m used to in NYC, which did make it easier to eat.

A bunch of slices of pizza topped with cheese, tomatoes, and herbs

And finally we ended at The Blind Tiger for grilled cheese and tomato soup. I was NOT hungry at this point but I ate it anyway because 1) you’re supposed to and 2) it was really good

A bowl of tomato soup on a plate. There is half a grilled cheese sandwich on the plate. In the background is a large can of Sip of Sunshine IPA

The Sip of Sunshine was extra but a lovely addition. I keep forgetting that while you can’t get this beer in DC, it’s all over NYC. One thing I learned about the bar – the name comes from Prohibition, where bars would advertise that you could come pay a fee to see the blind tiger and when you came in, they’d give you alcohol. I can’t imagine how this worked – maybe it was just enough plausible deniability that the cops just let it go?

Next time you travel, GO DO A FOOD TOUR. Especially if you’re alone. You get new friends, at least for a few hours, and you’ll get to see and learn stuff about wherever you’re visiting that you likely wouldn’t otherwise.

New camera day!

We were in New York City for spring break this past week and it just so happens our hotel was only a few blocks from B&H Photo, perhaps the greatest camera store on the planet

I’ve been shooting with a Nikon D300 for a while now – I still think of it as my new camera. I bought it as a “new dad” gift when my wife was pregnant with our first child. That child is now most of the way through her sophomore year of high school, so that shows you where my sense of the passage of time is.

I had always thought I’d always shoot Nikons. I bought my first in about 1998 when I was working at Ritz Camera. It was an N70 SLR, and I bought it because it fit my hands so much better than the comparable Canon. Since I worked in a camera store, I got to spend A LOT of time playing with the cameras, and it was a no-brainer. The Canon was a nice camera, it just felt too small.

Fast forward to today and I think Nikon really dropped the ball. I hate that I need an adapter to use my old lenses, but everyone is doing that. It really kills loyalty – if my old equipment is no longer compatible, I lose a lot of incentive to stay with one manufacturer. And I think the Canon EOS R6 and R6 Mark II slot in just between the Nikon Z7 and Z8. I don’t mean to be a snob (well, maybe a little) but the Z7 doesn’t feel like a pro camera to me. The Z8 does, but it’s significantly more expensive than the EOS R6. I just couldn’t justify it.

My only qualm is that I’ve been shooting almost everything for years with a Tamron 17-50 F2.8. Having a max aperture of 2.8 on the whole lens is amazing. But the Canon 24-70 2.8 was just too much money to justify today. I got the kit with a 24-105 F4 IS, which is a cool lens, just not as fast as I’m used to. Hopefully I don’t regret it.

Keep your eyes peeled for the first photos from the new camera. The battery is still charging and it’s killing me.

Crimes against good coding practice

I did software as a contractor for various federal agencies for years. It was a good gig for the most part – I got out when they wanted me to write less code and go to more meetings. I can assure you that I did NOT go into software because I wanted to go to meetings.

We were often forced to code in very strict and unfriendly conditions. I like to compare myself to the early Nintendo developers, who I believe had to use short variable names to save space, which seems utterly absurd now, but so do a lot of things.

Anyway, we had this custom web application framework that my then-boss had built. In many ways it was a glorious triumph of engineering. In many other ways it was a steaming pile of garbage. It had to run on an Oracle application server. It was written in PL/SQL. It worked well, but it was deeply flawed in ways I didn’t really understand then, but in hindsight I sometimes have nightmares.

One of the things it did really poorly was form submission. The web framework required a consistent url structure and was completely inflexible on this. For some reason we were not passing form values in POST – I didn’t understand the difference then, and probably no one else on the team did, either. None of us had gone to school for programming. In our application, there was this big procedure that had a giant conditional that took in parameters and then decided which procedure to call to build the intended web page:

if page == 1 then home() else if page == 2 then page2()

Something like that, except there were like 100 entries. The problem was that this procedure expected all parameters as url parameters. So if you wanted to record that Bob had made 10 widgets today (this is not what our website did but you get the idea) you had to write a url like:


Except that didn’t work with the show procedure. It had to be consistent – if you passed “employee” to show in this context, you had to pass it for every page in the website. The solution for this was to pass a bunch of pairs of parameters – a name and a value – so it was consistent. So now you had to write your url like:


There was this hacky bit of Javascript that would take a form and translate it into this format for submission. It was less than ideal. But it worked. And really, as a coding practice, I FEEL this. The guy who wrote the web framework got it to where it worked for him and then left it. We’ve all done that on code we use for ourselves. Yes, even you have done it, don’t lie. But this got annoying really fast: “Was employee varval2 or varval3”?

So what I did, and let me tell you I was smug AF about this – I wrote a show2 procedure that expected all the parameters as one JSON-formatted variable. Now, I wish I could recall whether or not I started POSTing the forms or if I still put it in the url. Let’s say I POSTed it because no one who can say I didn’t is ever going to read this. But now you had something like this:

{"page":2,"employee":"Bob", "widgets":10}

Much better. Not good, but better.

Blog to save the Internet

It’s kind of a garbage time to write a blog. LLMs are flooding the Internet with garbage content, and internet search has been useless for a few years now (though normies are just starting to notice). The combination of the two is devastating.

So what do we do? Well, I, for one, have resurrected not one but two blogs, and I am once again sharing mediocre but human-created content with the world.

Spam filter bypass

I just got a spam email that made it through Fastmail‘s pretty solid spam filter. Looking at the raw message, they set the From header to the email they were sending to (the “contact” email published on my work website). Fastmail noted a bunch of red flags indicating the email was probably spam, but because the from address was in my address book, they let the email through.

It was one of those “We h4x0r3d your computer and unless you send Bitcoin we will release videos of you masturbating” emails. I assume I’m not the only one who gets those from time to time. I’m not, right?

A modest proposal on crime

I think it is agreed by all parties that there are two very real and major issues facing Washington, DC at this time. These issues cause great distress to residents, and drastically reduce our quality of life and property values.

These issues, of course, are 1) crime, and 2) the people who put their dog poop bags in my trash can. Those bags never come out! The trash collectors don’t get them so they just stay there to stink and attract rats. Whoever could find out a fair, cheap and easy method of solving these terrible and quite equally detrimental problems, would deserve so well of the public, as to have their statue set up for a preserver of the city.

I shall now therefore humbly propose my own thoughts, which I hope will not be liable to the least objection.

We can correct these two issues with one glorious solution, and bring our fair city to new heights for all. First, we must collect these leavers of poop bags. Then, taking our cues from the 1987 classic film, Robocop, we use the finest modern technology and replace some or most of the offenders organic body parts and organs with metal, wires, and perhaps gears. And definitely guns. The Robocops will need guns. Then the new recruits of this Poop Bag Robocop Patrol, presented by Mayor Muriel Bowser (She has not been informed of the program but it’s only a matter of time before she throws the full weight of The Green Team behind it) will set out to prevent crime! They won’t be allowed SUVs or cell phones so they can’t fall into the laziness trap that plagues MPD. Instead, they will wander the streets unceasingly, sniffing out and eradicating crime any time, day or night.

And lest we think these metal crime-fighting heroes might become a burden to the city themselves, imagine this: how many criminals do you suppose the PBRP must publicly murder before the rest get the picture? I, again humbly, suggest it would be very few indeed. The number could be even lower, perhaps, if we ensure that these murders are put on TikTok, set to the choruses of some of the latest songs popular among the kids. And then the Robocops will slowly run out of batteries, becoming statues to remind us of our crime-ridden past. They can then be used as bike and scooter racks, or to post No Parking signs when people need moving vans or whatever.

And how might we pay for this? Corporate sponsorship. The Robocops will have plenty of space on their shiny carapaces which can be covered in ads! CVS currently sponsors our own Washington Spirit, and they would be a perfect partner for the PBRP. Since CVS is already the symbolic embodiment of crime in the city – I mean, the CVS in Columbia Heights CLOSED. I didn’t even realize that was a thing that could happen. But soon it will be able to reopen, more glorious and profitable for the corporate landlord than ever before, as our city basks in the glow of a new light!

I profess in the sincerity of my heart, that I have not the least personal interest in endeavoring to promote this necessary work, having no other motive than the public good of my city. Removing the poop bags from my trash can might seem in my personal interest, but one must look at the broader picture, where if my trash cans are not a constant buffet for rats, then perhaps these cursed creatures might be fully driven from our city!

With no apologies whatsoever to Jonathan Swift.