AI Generated Billboards

Sofia has lots of gambling ads. What recently made an impression on me is that 100% of the men advertising gambling are somewhat recognizable humans. 100% of the women advertising gambling look AI.

Flying coins, flying red things, oddly shaped arms, airbrushed flawless faces with exaggerated features. AI.

From left to right:

  • Marian Valev – actor, famous with his role in the successful Bulgarian TV show Undercover
  • Fiki Storaro – pop-folk singer
  • Dimitar Berbatov – the second or third most popular orb-kicker in the history of the country, depending on how far back in time we want to go

They all look real — shadows under the eyes, gray hair, wrinkles.

Is it a coincidence? I took most of these photos weeks ago and have been looking for an exception ever since. I haven’t found one.

John Oliver on AI Slop

For whatever reason, I mostly watch videos about tricky math but this one caught my eye despite being so out of my element. It’s wonderful. John Oliver talks about generative AI spam.

I also no longer read blog posts that use AI imagery as long as I can recognize it as AI, which normally takes me a few milliseconds. I know the image may represent an idea and it might be clever, good, it can be anything. I just stop and move on with my life.

Google Should Pay for Crawling

It’s time for the EU and other regulators to reconsider the deal we’ve made with search engines and how companies like Google are redefining it without consent.

Originally, we allowed Google and other search engines to index our content for free in exchange for traffic. This made sense: we paid for hosting, created content, and in return got visitors from search. They profited from ads and reordering the search results in favor of advertisers. But the rise of generative AI has changed the terms.

Now, Google uses our content not just to link to us, but to generate full answers on its platform, keeping users from ever visiting our sites. This shift erodes the value we once received. Meanwhile, Google and a small group of others continues to monetize the interaction through ads and AI subscriptions.

Google Search results these days barely feature any links and highlight internal content

SEO experts talk about “GEO” (Generative Engine Optimization), but the reality is that no clear playbook exists for it, and most content creators are seeing less and less return. There’s no proven way to optimize for Gemini or OpenAI’s models, especially when those tools don’t send much traffic back. The only instance of GEO I’ve seen was with a meme. Some prankster optimized (on purpose or not) a tweet about the size of Blue Whale’s vagina in comparison with a specific politician and Gemini picked it up.

At the same time, website owners still bear all the costs: paying for hosting, paying for content creation, and now even for AI tools that were trained on their own data. This suffocates the open web so that the LLM companies can sustain a hokey-stick growth to the trillions of valuation.

Should crawling be free in the AI era?

OpenAI at least pays for access to datasets. But many of these datasets were built through unrestricted crawling or by changing terms of services after the fact. Google doesn’t even do that. It simply applies its AI to search and displays that back to the user.

Regulation is needed yesterday. The EU’s Digital Markets Act already limits self-preferencing. Why not extend rules like it to web data? Possibilities include:

  • A licensing system for crawlers
  • Mandatory transparency around crawling and training data
  • A revenue-sharing model for publishers

And GEO will likely turn out to be more of the same endless content spam generation to feed it into the models, exploiting knowledge about how these models scrape data. It doesn’t feel useful yet and if that’s the future, we can only expect the enshittification of generative AI.

Vibe Coding

I’ve been experimenting with AI-first coding over the last months. Instead of the usual loop of:

  • Understand the problem
  • Make a change
  • Test it
  • Repeat until ready
  • Create a PR

The workflow becomes something more like:

  • Explain part of the change to the AI
  • Test if it works
  • Review the result
  • Feed back corrections
  • Repeat until ready
  • Create a PR

So far, I’ve found it great for making quick changes quickly. But when it comes to harder tasks, it gets difficult. Progress tends to come either by giving the AI very specific instructions, one tiny step at a time—or by iterating endlessly, like a sculptor chipping away at a boulder and ending up with a smaller boulder.

Still, it feels more productive than traditional coding in many cases, and it feels like the future. But there are real trade-offs, especially when the code is complex or the required change is significant.

I don’t have answers yet. For now, here’s a photo of a waterfall.

EDIT:

My colleague Nico also wrote an article about Vibe Coding, check his blog out!

Moss Campion (+AI Translation Attempts)

Okay, this is a pretty little flower, but how is it called in Bulgarian?

According to ChatGPT, this is синчец, a blue flower, called literally blue in Bulgarian. According to Google’s AI, it’s смърчова звъника, a made-up subspecies of звъника, a well-known herb that I’ve collected for tea in some other centuries. When I searched again to confirm the screenshot, it suddenly turned out to be мъхова звъника, another made-up plant.

A pro tip would be that adding -ai to a Google search turns off the hallucinating AI search result and you can actually see the multiple results from meaningful websites, built with love, that know the answer.