Parrot social media

Because I need something right now that isn’t irritating, let me share with you that parrots like to video chat with other parrots, and even prefer it to simply watching videos of other parrots.

https://www.engadget.com/parrots-in-captivity-seem-to-enjoy-video-chatting-with-their-friends-on-messenger-165911437.html?src=rss

“The appearance of ‘liveness’ really did seem to make a difference to the parrots’ engagement with their screens,” said Dr. Ilyena Hirskyj-Douglas, though noting that further study would be needed before definite conclusions can be drawn. “Their behavior while interacting with another live bird often reflected behaviors they would engage in with other parrots in real life, which wasn’t the case in the pre-recorded sessions.”

We already have our tvs, our dishwashers, lightbulbs, doorknobs, whatever, everything is connected to the internet. Why not our parrots?

Secure DMs on ActivityPub

I’ve been up and down on ActivityPub – the concept is fantastic, I’ve been wanting something like this for decades. You’d just have this online identity and you could use it to blog or post pictures or do whatever across any platform that supported the protocol – it’s like far-future magic.

But federation is HARD. You can’t just click a button and have a federating website. And there are scalability issues – for example, if you run a small Mastodon server, and some of your users follow high volume accounts, it gets to be a lot on your server. There are ways to deal with this but they’re not as robust or easy as one might like (though I expect them to get there).

As the protocol develops and as more people start building stuff with it, I’m getting more and more optimistic.

And I’ve just heard there are multiple independent projects working on secure messaging. My immediate family uses WhatsApp a lot, which is lovely to use but comes with a lot of baggage. It’s particularly nice because it sidesteps the Apple/Google war of incompatibility and lets you send high quality images and video even if your recipient uses a different phone OS. And Signal is nice but I’ve had no luck getting anyone in my family to use it.

If we can get secure DMs on ActivityPub, that might be an easier pill to swallow. I’m particularly interested in Sup from Daniel Supernault, who built Pixelfed, because Pixelfed is a pleasure to use and I suspect Sup will be as well.

Riding the bus

It was warm out today, one of the first really warm days we’ve had this summer. I was walking up 14th St NW and noticed a vehicle in the bus lane.

“I think I’ll take the bus the rest of the way’, I thought.

I got into the vehicle and greeted the driver politely. The air conditioning was a great relief. I didn’t see a place to tap my Metro card but maybe the reader was broken.

“What the [EXPLETIVE DELETED] are you doing in my car?” The driver said, rudely.

“Oh!” I exclaimed. “I think you’re mistaken. See the red paint underneath us? This is a bus lane, so this must be the bus.”

Am I the only one who regularly fantasizes about this? It’s normal, right?

Spam problems

I’m having a little trouble with spam comments. Not that they’re getting through, but that the plugin I was using was ALSO blocking replies to posts through ActivityPub. They only take support requests if you have accounts at various forums and I’m kinda grumpy today and that was a bridge too far.

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.

PXL_20240418_144852228
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.

PXL_20240418_145307024
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.

PXL_20240418_150058581
A small dish of ravioli in red sauce

Next stop, Manousheh for zataar flatbread.

PXL_20240418_152430616
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.

PXL_20240418_155322739
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.

PXL_20240418_161121956
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

PXL_20240418_164102862
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:

ourcoolsite.gov/show?page=4&employee="Bob"&widgets=10

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:

ourcoolsite.gov/show?varname1="employee"&varval1="Bob"&varname2="widgets"&varval2=10

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.