Before LLMs were cool

Back in 2015 I wrote a Tumblr to try to earn commissions on wine sales on Amazon. That was a thing you could do then, in 2015. I guess I should say “wrote” because the only thing I wrote was code. I certainly didn’t write the wine reviews.

What I did, before anyone had ever said “Language Learning Model” (ok maybe some nerds had said it, whatever), was download the text of about 800 Wine Spectator “Daily Picks”. This was pretty easy because they used integers as keys in their URL so you could just go to /page/1 then page/2, etc etc, and Beautiful Soup just dumped the words into a text file.

I fed this download into markovify, a Markov chain generator written in Python. Someone may come “well, actually” me on this but Markov chains are essentially early LLMs that could run on your basic laptop in 2015.

Then I wrote a script that took a referral link to an Amazon wine and spat out a review and (and this might be my favorite part) a rating that was a random number between 77 and 94.

It then posted these reviews to Tumblr. They’re still there, you can go see them in all their glory. The name, Andrey Wines, sounds like a fancy winery, right? I would totally buy a nice cab from them. It’s named for Andrey Markov, who invented the Markov chain. I thought that was SO clever.

I mean look at that (click the image for the post, I’m not sure how to do alt-text on WordPress. I should figure that out). It had no idea the difference between a red and a white and I didn’t try to explain.

I giggle to myself knowing that OpenAI paid Tumblr to let them train their AI on Tumblr posts, and some of those posts are going to be this.

Cross Site Scripting is not the same as CSS

In my previous life as a coder, I worked for a while in the DHS Office of the CIO with the accountants. We wrote and managed a website to let the DHS components (Secret Service, CBP, etc) submit their monthly accounting files.

First, some background on building websites. Skip this if you’ve ever built a website. To build a page, all you need is HTML. Think of it like your docx file – your word processor reads a docx file and shows you a pretty document. Your web browser reads an html file and shows you a pretty web page. This is a massive oversimplification but we’re moving on.

One optional thing you can have in your HTML file is CSS. You know how links in pages are blue and underlined most of the time? Let’s say you want them all to be orange. You can add CSS to your HTML page that says “make all the links orange”. It uses different syntax but that’s not important. Now your browser knows to make all the links orange.

Nearly every website you have ever visited uses CSS to make things look pretty. It’s like how nearly every car you’ve ever seen uses paint. It’s POSSIBLE to have a car without paint, but it looks dumb and breaks if it goes through a carwash.

Tesla Cybertruck
A bug stupid truck with no paint

So there’s something else called Cross Site Scripting. This is bad. It’s complicated if you don’t understand it already but all you need to know is that this is one method people use to try and steal your credit card or whatever.

You’ll note that Cross Site Scripting could also be written as CSS. To keep people from getting confused, we use XSS for Cross Site Scripting.

Except DHS IT Security. They use CSS for both, and ban both from all DHS computer systems. Or they did in 2012, I haven’t worked there in a while. But know that this was at least as stupid then as it is now, it’s not a new thing. You would think the agency tasked with protecting US computer systems, among other things, would be knowledgeable about those computer systems.

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.