Latest Posts (20 found)
iDiallo Yesterday

They Prefer the App

I like building websites. But in some circles, I might as well say that I like to drive to the forest before sunrise, chop down a tree, load it in my trunk, and gather some dry wood as well, then drive back before first light. All this just to use the wood to start a fire and cook breakfast for my family in our high-rise apartment. It makes no sense. There is a large class of apps that could be replaced by a simple website, especially those made for schools that only present information. The worst part is that in those apps, most of the things we take for granted on the web are blocked. You can't copy and paste, you can't open a link in a new app, and you have to update the entire app just to get new information. For someone like me, who never updates an app until it's necessary , I usually end up with broken applications. But when I complain, I'm usually alone in those circles, because no one seems to know what a website is. The more I explain, the more I sound like a character from the 90s explaining how cool email is. They don't know what a website is. Check their phones, they have a thousand apps. The last time I blogged about just using websites , several people pointed out that they prefer using apps. My argument was that there is nothing the LinkedIn app does that necessitates an app. All its features are supported on the web. All but pervasive tracking. But I'm fighting a losing battle, because a large number of people have forgotten, or never knew, that LinkedIn is just a website. So is Reddit, Facebook, Instagram, etc. They push you toward the app only so they can better harvest information from you. So when we tell people to use the website instead of the app, they don't understand, because these services only push the app. A large number of the population has started to believe that a website is just a preview of an app, like a lightweight version. While I'm here complaining about a single app displaying an unexpected notification, people in my circle have a thousand unread notifications. It's a surprise that they somehow respond to my messages in the midst of all those alerts. I've met people who have an app for every single restaurant they go to. While I'm reading the privacy policy of a single app, trying to determine if it's worth downloading to benefit from a 20% discount, my friends are already in the loyalty program of the juice bar that opened down the street less than a day ago. People download apps, and they don't understand websites. They have a thousand apps on their screen and would rather swipe through it to find the one app they need for a single purpose. When I read Dan Q's post a few days ago, I was relieved for a second, just to know that I'm not alone. We prefer using websites, and we know most apps are oversized wrappers around a website. But I have to remember that the people with a thousand apps are not the minority. We are. We are the few who would rather use a progressive web app than download a 300 MB wrapper. I'm not prescribing a solution here, just want to remind the web community that outside of our circles, people happily download a 300 MB app that displays information already available on the web.

0 views
iDiallo 1 weeks ago

And Then the Billionaire Paid Off $550 Million of Our Debts

Imagine being worth $2 billion. Would you give away $550 million? That's a quarter of your wealth, more money than I could spend in several lifetimes. Yet that's how much Evan Spiegel, the CEO of Snapchat, and his wife have donated to a charity in California. Specifically, they donated to Undue Medical Debt, an organization that buys Californians' medical debts and expunges them. A noble act. I'm not one to tell you that billionaires shouldn't exist, or what is or isn't fair in a system I don't control. But one thing I've come to see over the years is that public good deeds are rarely what they seem. Whether it's a feel-good story on the news, a TV show pimping your car, or another turning your house into a mansion, there's an underlying truth that often gets obscured by the appearance of a good deed. Bill Gates, who was once the richest man in the world, pledged to leave almost all his money to charity. Over the years this story has been repeated, and I'm the last person to tell you how to feel about it. For me, it's a good thing to help a charitable organization that's trying to help others. Last year, Bill Gates renewed this pledge, stating that he would give away around $200 billion and keep less than 1% for himself. I mean, $200 billion? That's crazy. Any charitable organization receiving even a fraction of that money will be able to do a lot of good with it, especially when Elon Musk said he could end world hunger with just $6.6 billion. But that's only part of his statement. He isn't leaving his money to any random organization that needs it. He's leaving it to the Bill and Melinda Gates Foundation. That's a different thing. Not a bad thing, but it changes the statement from "I'm donating my money to charity" to "I'm going to use my money to do charity." The money moves from one pocket to another. The point I'm trying to make is that good stories often come with a few asterisks. When I read the Evan Spiegel story, I was intrigued because, well, I'm Californian. I've been here for over 20 years, my kids were born and raised here, and so far I have no intention of going anywhere else. Oh, and I've had one of those surprising medical bills that nearly made me faint. (A story for another day) Reading a story where a billionaire pays off people's medical debt makes you feel good. It made me feel good. But when I looked at the details, things didn't add up. The language of billionaire philanthropy. First of all, the title of the LA Times article said: "Snap CEO Evan Spiegel and Miranda Kerr help erase $550 million in medical debt for Californians" . Note that it says "help erase." The charitable interpretation is that they paid $550 million of our debts. But that's not what it says, it says "help erase." Further into the article, it states: The couple made a multimillion-dollar donation to Undue Medical Debt, a nonprofit that provides debt relief to people in financial need. The organization acquires medical debt in bulk from hospitals, physician groups, collection agencies and other groups for a fraction of the cost. So rather than pay the debt directly, they made a donation to Undue Medical Debt, which had already acquired the debts. And the most interesting part of all this is that Undue Medical Debt acquires debts for "a fraction of the cost." In the article, they admit that the actual amount the couple donated was not disclosed; however, they do explain how much the organization pays to acquire debt: Every $10 donated to Undue Medical Debt relieves an average of $1,000 in medical debt. In other words, they acquire debt for a hundredth of its original value, a penny on the dollar (1/100). 10 years ago, to the date, John Oliver aired an episode of his show where he bought $15 million of medical debt “from Texas at a cost of less than half a cent on the dollar, which is less than 60 grand”. He then paid it off, relieving 9,000 people of their medical debt. It’s a ripe business for anyone looking for a quick PR win. Again, I'm not complaining about this, I'm just doing the math. It's a good thing that they're taking on people's debt and finding rich people to pay for it. That's a good thing for the person receiving the relief. "No one should go bankrupt because of a cancer diagnosis and no family should have to choose between insulin and groceries." It's a good thing: San Diego County residents benefited the most from the donation, with total medical debt relief through the couple's gift totaling roughly $99 million and affecting 40,369 people. In Los Angeles County, the gift provided $26.7 million in medical debt relief to 17,466 people, according to the nonprofit. That's close to 60,000 people benefiting from this relief. But the language keeps circling the drain instead of just telling us what they actually gave. It says "the donation with total medical debt relief through the couple's gift totaling roughly..." They never tell us how much they gave, just how much the medical debt is "roughly" worth. But we can do the math. Undue Medical Debt purchases debt for a penny on the dollar. Evan and Miranda paid off $550 million in debt. At a penny on the dollar, or 1/100, that puts the purchase price at roughly $5.5 million. That's a huge difference in value. Evan and Miranda donated $5.5 million to Undue Medical Debt, "roughly". Why was that so hard to say? Is the value too low? Not good enough? I'd argue it's still very generous. But it doesn't generate the same amount of PR, does it? It's one thing to say you've donated a quarter of your wealth, but a whole other thing to say you've donated 0.27% of your money. I'm not trying to shame them really, I think they should just be honest. Either donate silently, or tell the truth. Why inflate it? It also tells us something about how inflated medical bills really are. If the debt only costs a hundredth of its face value, then patients should be able to pay it off themselves. When my children were in the NICU, we were charged "roughly" $20,000 a night for our two-month stay in the hospital, per child. I'll spare you the math for now. (Again that's a story for another day) There's always an angle to these charitable stories. We celebrated Bill Gates' pledges without questioning that he was funding his own foundation, and that it did more than just charitable work (like oil, fast food, or pharma). We celebrated Warren Buffett's pledges, while he quietly changed his tune in his last annual letter. Evan and Miranda boasted $550 million, while they actually donated only a hundredth of that amount. I'm not saying the money they donated or actions these people took aren't commendable, it's just that it would have been better if they had been honest about it from the beginning. When the rich donate money or make a show of it, there is always more to the story.

0 views
iDiallo 1 weeks ago

Amazon Basics, but for intellectual property.

Amazon has been accused several times for ripping off merchants on its platform. And every single time they denied any wrongdoing. A merchant, or anyone really, can create a product (or source it from China), then resell it on amazon. Amazon is the service provider, and hosts all the metrics concerning the products. If Amazon themselves were in the business of creating and selling products, then that creates a potential of conflict of interest. Because they have the data of all products that sell and sell well. They could replicate that success without doing any further research since the merchant has already confirmed the existence of demand. It's not surprising that Amazon Basics quickly became the best selling "private-label brand" on Amazon. They already know what sells because they have access to the data. Yet they continued to deny it, and state that they only ever use publicly available data from sellers . An Amazon spokesperson said the company believes the allegations are "factually incorrect and unsubstantiated," adding that Amazon strictly prohibits the "use or sharing of non-public, seller-specific data for the benefit of any seller, including sellers of private brands." Yet the results are right there for all to see . If you sell any product through Amazon, you are exposing your company's operations to them. If you want to keep that information to yourself, then you don't get to reach your customers, which in reality are Amazon's customers . If you want to buy something online, and get it shipped as quickly as possible, then Amazon is a blessing. Most often than not, you are not buying the product directly from Amazon. An independent store or vendor with a presence on Amazon will fulfill your order. The seller only has minor identifying characteristics on the platform. On the search result page, the space designated to the seller is small and insignificant. The customer has very few reminders that products are offered by anyone but Amazon. (Although if you want to dispute a sale, you are starkly reminded that the item is from a 3rd party vendor.) So there is no surprise when companies embrace AI internally, they are putting themselves at the risk of sharing their product with their competitors. Maybe the most obvious example is when Antropic came up with Claude Design. A tool to help users generate designs, wireframes, etc. Kinda like Figma. That's not a problem on its own, but when Antropic's chief product officer sits on Figma's board of directors, you can't say that there isn't a conflict of interest there. In fact, the chief product officer resigned from the board merely days before Claude Design was announced. He basically extracted all value from Figma then resigned. Figma's AI features are built on top of Claude. So Anthropic literally pulled an Amazon Basic on Figma . When companies force their own employees to use AI to do their day to day work, they are basically asking employees to upload company data to a 3rd party that may become a competitor. Sure something in the contract clause says that the AI company won't train on enterprise customer data, but nothing stops them from peaking at successful product data. Whenever someone tells me that they used AI to build an app and boast of its values or uniqueness, I want to remind them that if you can just prompt-create a product, so can the AI provider. In fact, they might have better resources to create a competing product if it displays any sign of success (see Figma). While it looks like plenty of people are benefitting from AI today, all this information is being shared with AI providers. We are giving them full access to our thought process. When you include them in your workflow, you are basically providing them with a step by step approach on how to do your job. Don’t be surprised when you see a native Antropic/OpenAi project management application suite. Or a CRM, or any software that is trying to integrate with AI and may experience success. A few years back, when I worked in Customer Service Automation, we discovered that most companies used Zendesk to manage their customer service. Since customers mainly contacted support via email, an intentional database had been built that tracked users through their shopping experience throughout the web. While so much could be done with that data, like identifying “problematic” customers, or recommending products based on their history, we ended up finding something more helpful. We could easily detect a pattern of issues for certain shipping carriers. We could see when UPS was having delays in certain cities, or when Fedex was having technical issues when updating the last mile status. None of these things were features designed or provided by anyone. However, having access to businesses’ data gave us insight where we had none before. That became a feature for us, only because we were not competitors to all these online retailers. When you expose your company's internal data to a potential competitor, don’t be surprised when they build a competing business to rival you.

0 views
iDiallo 2 weeks ago

The Dating App Plot Device

I've always been interested in how dating apps work. You really only have two choices if you want to get in the business. Let's pretend for a second that we actually want people to find love. Love is such a weird thing that we don't even know how to define it properly. Ask two people what it means, and you will get five plausible definitions. If you approach it programmatically, then you will likely look into some measurable metrics to match people and then hope that love emerges somehow. In my quest to find what the ideal dating app would look like, I interviewed a couple of my friends that use those apps. I quickly gave up when I realized that I don't have a clue on how people actually use the apps. The first comment that threw me off was when my single friend told me of an app where she found some pretty good dates. How can you find some good dates and remain single? And what made them good? The more questions I asked, the less I understood. I guess I got lucky. I used a dating app for a brief time, and before I knew it I was married. I never got to experience "good dates". I thought when you found one, you were safe to delete the app. I never had to pay for super swipes, and other premium packages. Anyway, I'm not trying to solve dating anymore but apparently whatever I thought I knew has once again changed. A friend described the experience in a way that I thought was profound. In these apps: Men are looking for a woman who doesn't exist anymore. Women are looking for a man that never existed. This must be peak monetization strategy. Dating apps don't create the perfect match, they pick from the same pool of people that they share with every other dating app. So to make it more appealing, you have to create the appearance of the perfect partner that may only exist in your garden. Men are asked to look to the past, where women were like their grandmother. She was both strong and soft, in charge and submissive. A past that they never lived, but looks appealing through their minds' eyes. They were only toddlers when grandma took care of them. Who doesn't love grandma. Women are looking for a tall rich guy who is both CEO and able to change diapers. He is at the grocery store, but he is also at the gym. He is at work, but is available at a moment's notice. At least that's how he is portrayed on social media. The Giga family Grandma, God rest her soul, has passed away. We don't know who she was and how she became the loving person we knew. Those rich gym CEO guys only exist on instagram. They are a convenient plot device that keeps you swiping and spending. I don't know if there will ever be a better way to match people, but I think technology has already solved the connection problem. We can connect. But if we want to make those connections any stronger and fit into one of those loose definitions of love, then we have to put the device away and talk to one another. Help people find a match, and they will never come back Make people pay and keep them on the platform as long as possible.

0 views
iDiallo 2 weeks ago

I turned my prologue into a short video

It's hard to write a whole book. So for now at least, I've turned the prologue of my book into a short video. I hope you enjoy it.

0 views
iDiallo 2 weeks ago

The Laziest Generation

I don't understand why this generation can't afford a home. When my grandfather was 18, he had already saved enough money from his paper route and various odd jobs to buy his first home. By the time my father turned 26, he was already married, had his first child, and was moving into his first home. We lived frugally, and our parents taught us the value of spending wisely. Today's man-children, at the ripe old age of 40, still cannot afford a home. Yet they have no problem eating out every day, going to the movies, and buying popcorn and avocado toast. Add in subscriptions to ten different services they barely use, and that's money thrown out the window. They don't see the correlation between their spending habits and their inability to buy a home or save money in the first place. I understand that my grandfather's house only cost $12,000, and my father bought his for $50,000. Mine was much more expensive, I paid $150,000, and that house is now worth a million. I understand that by the time my children are 26, it will probably be worth $10 million. If they start saving now, they'll have a shot. But I can tell they will choose reckless spending over saving, and I simply do not understand this generation. Last week I found a flyer wedged into my front door from a real estate agent in the neighborhood. On it was a list of homes she had sold, each entry showing a picture of the house and its sale price. The cheapest was $970k. For her, this was a record of her work. "Hire me and I'll sell your house," a calling card of bragging rights. For me, it was a nightmare. I don't live in an affluent neighborhood, yet somehow all the homes are worth a million dollars. Thirteen years ago, a colleague of mine bought hers in this same neighborhood for around $200k. It was a savvy investment. If she sells now, she'll get at least five times what she paid. While that price was reasonable at the time, meaning you could dedicate a third of your salary to your mortgage, at a million dollars, you're paying far more. That's between $7,000 and $10,000 per month. Good luck finding a job that pays three times that. To satisfy that requirement, you'd need to earn $250k to $360k a year. Cutting back on avocado toast or prepping your own meals won't save you nearly enough. If you squint and stretch your imagination, maybe it's possible to afford these homes, not by cutting back, but by finding new sources of income. But what about the next generation? My kids. When they're in their 20s and 30s, how much will houses cost? If we continue at this pace, the wooden houses in this neighborhood are going to cost at least $10 million each. And we'll call the next generation even lazier. Maybe we'll tell them they're splurging on water bottles. "Back in my day, we drank tap water." Or maybe they're not using Grok enough to come up with a smarter financial strategy. I don't think this is sustainable. The only way forward may be for everything to collapse first. See you at the homeless camp where we'll all end up.

0 views
iDiallo 2 weeks ago

All Chinese Models Will Be Illegal in 3... 2... 1...

The Washington Post reported that the US government will decide who can use state-of-the-art LLMs . After the ban of Fable and the limitations coming to ChatGPT 5.6, what's next? My bet is Chinese models. For all of Anthropic's doomsaying and propping up of their secret model Mythos, several open-weight models have proven capable of similar feats, and at a fraction of the cost. DeepSeek rocked the AI world in December 2024 with their initial release, nearly sending shockwaves through American stock markets. Last year, I looked into getting a BYD electric car. At the price they were selling for, I figured that even with a 100% tariff slapped on top, it would still be a bargain. Then I discovered that not only is there a steep import tariff, you simply cannot register the car in the United States. The car itself is illegal. According to reviews from people who actually own one, it's a fantastic vehicle that would outcompete most cars on the US market. Because of that, the US simply banned it. So what does this mean for large language models? If we're now told that state-of-the-art LLMs are too dangerous for the general public, what happens to Chinese models that are equally powerful? People will start flocking to DeepSeek and zAI. The quality matches OpenAI and Anthropic, the models are open-weight, and the cost is dramatically lower. The logical next step, if you're a DC lobbyist on retainer for a San Francisco AI lab, is to ban them. We don't live in rational times. The only path to an IPO for Anthropic and OpenAI is to kick the ladder out from under everyone else and get Washington to call it "safety policy." Download the models while you still can, because once the regulation drops, owning a local copy of DeepSeek might just make you a dissident.

0 views
iDiallo 3 weeks ago

Everything you say CAN and WILL be used against you

- "If you talk to me, I'll punch you in the face, are you ok with talking with me?" - "Nods in agreement." - "Proceeds to punch the man in the face." That's how I feel whenever I hear the Miranda rights being read. It was designed specifically to scare anyone being read to, into silence. Don't incriminate yourself. If you are like me, guilty of watching those police bodycams videos on youtube, then you know that people proceed to talk right after they are read their rights, as if they heard absolutely nothing. Those rights exist solely to protect you from the very authority addressing you. They have authority over you, so you need protection to balance the playing field. The perfect way to balance it, is by affording people the right to remain silent and not to be coerced into incriminating yourself. We can all agree that the Miranda rights are a fundamental power we have and should exercise. The State reads you Miranda rights to limit its own power over you. So let me rephrase Miranda rights in a way that you will find relevant in this tech focused blog: “You have the right to remain silent. Everything you say, do, or generate on this device can and will be used against you… Would you like to create an account?” Yet, we agree to these terms constantly. It’s second nature. We sign up to test a new AI or a new service, telling ourselves, "If I don’t like it, I’ll just cancel." We ignore the reality that while it takes one click to sign up, it often requires a fax machine or a physical letter to cancel. This week, following the "Fable" kerfuffle, Anthropic announced they now support customer identification. You can upload your government-issued ID or passport to verify your identity. We are rolling out identity verification for a few use cases, and you might see a verification prompt when accessing certain capabilities, as part of our routine platform integrity checks, or other safety and compliance measures. This will eventually be used to determine who is considered an "approved" user. In other words, when you type "Fix this code" into Claude, it will check your verified status before executing, all in the name of compliance. By uploading those documents, you are surrendering control. You are giving up your rights, your identity, just to access a service. If things go wrong, there is no "Miranda warning" for the consumer. Every action on your account is now permanently tethered to your identity. In the digital world, the corporation reads you the Terms of Service to expand its own power over you. When you agree to Claude's terms, OpenAi’s or any corporation, you are waiving your right to remain silent. And then you are providing them with a searchable database with the most intimate information about yourself, that can and will be used against you. For example, imagine you upload your Driver’s License to Claude to unlock advanced coding features. Three months later, you ask Claude to review a snippet of open-source code that accidentally contains proprietary company secrets (you didn't realize it). Under Miranda, you could have said, "I refuse to discuss this code." Online, you already discussed it. Your verified identity is now permanently attached to that leak, making you the prime suspect for corporate espionage, even if it was an accident. Or you make a joke. You ask Claude: "Fix this bug before I throw my laptop out the window, and delete the entire production database." Because you verified your ID, this log is permanently stored. Six months later, your company undergoes a security audit. The audit team subpoenas your AI logs. They see a verified user (you) threatening to delete a database. You now face a disciplinary board for "security threats," and the AI log is treated as a written confession, because you gave up your right to contextual defense when you agreed to permanent, verbatim logging. Even worse, when all your data is logged and attached to your identity, it can later be cross referenced against laws that don’t exist yet. You are an aspiring writer but you just weren’t gifted with words. So you use Fable to write a short story. You verified your ID of course then you prompted a story about a rogue AI overthrowing the government. A few years later, an Anti-Terrorism AI Monitoring directive was passed under the leadership of new secretary of war Alex Karp. Your sci-fi hobby is retroactively flagged, and you are put on a watchlist. When you are read Miranda rights, the officer is saying: "You have a right to a lawyer, and if you cannot afford one, one will be provided." The State bears the burden of providing you protection. In the digital ToS, the corporation is saying: "We have a right to audit you, and if you cannot afford to fight us in court, too bad." You are giving up the presumption of innocence. In a physical court, your silence cannot be used against you. In a digital audit, your silence doesn't exist. Every click is a spoken word. By uploading your ID, you are giving the corporation a signed affidavit that you are the one pressing the buttons. If a hacker steals your account, you still bear the burden of proof to clear your name, because the logs show your verified ID. ToS exists only to protect a corporation. Remember, Disney tried to use their Disney+ ToS to dodge a wrongful deaf case from food poisoning in one of their restaurants. The user is giving up the right to be forgotten, the right to be misinterpreted favorably, and the right to change their mind. They are trading their 5th Amendment-equivalent (protection from self-incrimination) for a free API call. The only way to win is to treat every prompt as if you are testifying under oath in a courtroom, because legally, thanks to that uploaded passport, you are.

0 views
iDiallo 3 weeks ago

Happy Father's Day.

I am a father of twin boys. There is a question I often think about. It often appears as a midlife crisis where I am not sure when I became a man responsible for a family. It looked so easy for my father. It was as if he was born into it. He was a leader, a strong man, one that an entire community could rely on. When does that kick in for me? When do I become this leader? Or have I already become? That's what I was thinking when I wrote this short story about my father 10 years ago. I couldn't find a way to describe him, without mentioning clocks. It was fitting since he loved them so much. I hope you enjoy this "Ode to my Father" . Happy Father's day to you all. PS: please excuse the AI generated images, I'm still trying to find the best way to present it. The text was entirely written by me in 2016-2017.

0 views
iDiallo 3 weeks ago

I know Kung-fu

Remember that scene in the Matrix where Neo is strapped into the chair and Link uploads all sorts of martial arts into his mind? When Neo wakes up, he says "I know Kung-fu," then proceeds to demonstrate his skill in a battle with Morpheus. That was a pretty amazing scene. But if you suspend your disbelief for a second, it also suggests that when you have all the information at your fingertips, knowledge is just a matter of uploading it into your mind. The directors of the movie conveniently skip the scene where we actually see him acquiring the knowledge. All we see is Link typing on the keyboard and different karate poses appearing on the screen. Is Neo practicing kicks? Is he doing strength training? Is he running up and down a mountain, carrying buckets of water a la Kill Bill? We don't know. So we have to assume that, from his seat, the information is simply being downloaded into his mind. What if we had this same capability in the real world? What if you had all the information you needed to learn any skill? You don't have to limit it to learning Kung-fu, but you sure can. What if I provided you with a computer, an internet connection, and a subscription to ChatGPT Pro Max Ultra Turbo? If you wanted, you could become a doctor, right? What can a university teach you that ChatGPT can't? In fact, the LLM is more patient than a teacher and can tailor the course to your exact needs and level. By these metrics, we should all be geniuses by now. We should see people wake up in the morning and say "I know medicine" or "I know quantum computing." Personally, I'm experiencing the opposite. The better access we have to these tools, the less we seem to know. It's as if acquiring knowledge takes more than just exposure to information. Recently I was building a little game with a 10 by 8 grid. The data was stored in a one-dimensional array, and I wanted to look through it using x, y coordinates. I struggled. I tried not to use AI to write the mapping function, but try as I might, my mind could not come up with the terms "rows and columns." It was embarrassing to watch the AI solve it for me. It's as if, my knowledge degrades over time. From the outside, though, you can look at the application as a whole and be impressed with the results. But unless I go through the code and build a mental model of the application, I'm not confident enough to modify or debug it. My knowledge is built as I spend more time reading the code, forming the neural paths in my mind that help me understand how the different parts work together. I can do this because I'm a software engineer and I understand software. But if I decided I wanted to learn Kung-fu, ChatGPT would oblige. It would probably be the perfect teacher. I don't know what I don't know, so any information it gives me would be more than I currently know, because I know nothing. If it were training me to become a doctor, I would feel just the same. But if it were training me to become a software developer, I would question everything it tells me. Why? Because somehow, large language models suddenly start to fall short when it comes to a subject you actually have experience in. When we're learning something we don't know, we tend to focus on the answers and the definitions. Knowledge is the thing that appears after you let information marinate in your brain for a moment. I've done math in school since I was a child, but I remember the exact moment I figured out what pi was : [...] In my very first electrical engineering class something unusual happened. The professor was talking about sine waves and he drew a straight line between two humps and the line was labeled, as you might have guessed, π. This is not the first time I see this graph or used it for that matter. But all of the sudden, after many years of toiling with this, it clicked. Call it: "Deus ex machina." I looked at π as the distance between the two humps. The circle, the small triangle in the first quadrant. I know these, I have memorized them, but today for the first time, I understood what they meant. So I interrupted the teacher and said, "So pi is half the length of the perimeter of the circle if it was stretched into a straight line?" He didn't know where this came from. He looked at the class for a moment then said, "yes... sure." My classmates looked at me as if I was stupid. I bet most of them still didn't know what I was talking about but had camouflaged their ignorance with an exceptionally confident face. This was a defining moment for me. It was the Rosetta stone to solve the cryptic text file I had been appending to for over two decades. This is not to say that an abundance of information is useless. I'd take it over no information any day. But it doesn't accelerate knowledge acquisition. You can try to download all the information into your mind a la Matrix, but unless you spend time understanding it and building a mental model of the subject, you might as well be relying on hypnopedia . In the movie, while Neo is strapped to the chair, Link tells Morpheus that he's been at it for "10 hours straight. He is a machine." While 10 hours is a short time, it seems long in the movie world. It tells us that on top of information, time is a necessary ingredient to breed knowledge. We've built the technology that brings information to everyone. For now at least, all we have is our brains to ingest and slowly digest information into knowledge.

0 views
iDiallo 1 months ago

Debugging on Prod

The worst type of bug is one that only happens on prod. And only on prod. If you checked this blog in the past few weeks, you might have encountered a big fat 500 error. I'd had the same design for 10 years, and I wanted something fresh. But who can redesign without also improving the underlying code? I deleted a whole bunch of things: old templates that were never used, , a pile of unused CSS. I just had to. I deployed a first version and all the pages worked just fine. But then I got cocky. I decided to also improve the underlying code using GitHub Copilot. I was vigilant at first, reviewing every single line of generated code. None of it was complex really, just refactoring functions and the like. But along the way, I got lazy. I let the AI update deprecated functions on its own. The next time I deployed, the website returned a 500 error. When I checked the logs, nothing came back. No errors. I looked at running processes and noticed several PHP processes pinned at 100%. I reverted the code, but the server was still stuck. I restarted the web server, restarted PHP-FPM, and neither helped. The only thing that worked was restarting the whole machine. I ran the same code on my own machine and it worked fine. That's when I noticed I was running an older version of PHP on prod: PHP 8.3 vs. PHP 8.4 locally. No problem, I thought, and upgraded prod, which of course failed to fix anything. I waited for nighttime, redeployed the broken code, and debugged line by line until I found that Copilot had gone out of its way to "update" code in the Markdown library I use. If you know anything about Markdown, you know it's complex. This particular change was causing infinite recursion while parsing Markdown. I had no intention of reading through all that code to figure out exactly how it was failing, so I just reverted it. I redeployed and the problem seemed solved. Then I got an email: "Your website is down," a reader wrote in the middle of the night. While my American readers are asleep, Europeans are up bright and early reading my blog, for some reason (thank you, really). So debugging live on production was not an option. I reverted to the old code again. But how was the website still failing after I'd fixed the Markdown issue? And worse, it still worked fine locally. Just in case, I upgraded that very old Markdown library to something cooler and more modern: Parsedown . That didn't solve it either. The moment I deployed, the entire website failed, including pages that don't even use Markdown. Now it was personal. How do you debug a website that only fails in prod? I had a few tricks up my sleeve. First, I wrote a bash script to quickly switch between versions of the website. All it really did was flip a symlink between the "latest" folder and another folder I chose arbitrarily. Since I run PHP and every request is short-lived, I could switch to the broken version, debug, then switch back to the working version almost instantly. It's not like I have millions of readers hammering my server. This method worked, but it was slow, and it exposed internal information to the thousands of RSS readers scouring my website. Between 30,000 and 60,000 RSS reader requests hit the site daily. I couldn't afford to expose debugging code to that much traffic. So I used a second method: an even better way to debug live on prod without breaking URLs or throwing 500 errors at unsuspecting RSS readers. What if I ran both versions of the site simultaneously? Visit the regular domain and you'd get the latest working version. Visit a custom subdomain and you'd get the broken version. I achieved this by creating a new Apache configuration pointing to the latest (broken) path. This way, I had all the time in the world to debug the issue right on prod, without interfering with regular traffic. I eventually found the root cause. It was an orchestrated failure. Locally, I ran PHP directly. On prod, I ran PHP-FPM. Why the difference? Because Apache on prod runs HTTP/2 that requires an SSL connection, which I didn't need locally, and serving PHP over HTTP/2 requires PHP-FPM. PHP-FPM is essentially a process manager for your PHP instances. That explained the difference between the two setups, but not the actual cause of the bug. The real issue was in my caching mechanism. When a page is served from cache, I set the header: That's just a custom header. When the page isn't from cache, I set the value to . Here's the code that sets the headers: Now, what can go wrong here? When a page isn't served from cache, is set to . You see it now, don't you? evaluates to in PHP. So whenever a page wasn't served from cache, or the first time a page was hit after a deployment cleared the cache, this code ran instead: That's an invalid header. So why did it fail on prod but not locally? Because Apache silently ignores invalid headers, but PHP-FPM doesn't. It throws a 500 error: Headers need to follow the key-value rules defined in the internet standards (RFC 9110). Removing the condition and always using solved the problem. The blog engine runs on multiple machines I own locally. I never had to worry about the setup because both apache and php are tolerant to mistakes. In a talk, Rasmus Lerdorf once said that PHP works better when you don't know what you are doing. The header condition has its uses. For example, if you want to set that a page is 404 you can return: But I don't use this in my case. While copilot was of some help, it's a reminder that LLM generated code is to be treated with scrutiny. It reinforces my belief that I can never truly become a 10x engineer , because the more code I generate the more I have to review. And the more I trust it, the more likely it will bite my behind.

0 views
iDiallo 1 months ago

I can never fully embrace LLMs for code

My younger sister graduated with a CompSci degree a few years ago. I've been behind her, motivating her and demystifying the world of programming from the very beginning. There was a piece of advice I repeated everyday, trying to make her understand how to operate. The problem was, she was trying to read and understand every line of code in a function before using it. I thought it was non-sense. Someone, much smarter than us has created that function, it's part of a vetted library, it has been tested already. All you have to do is use it. "After all, you don't need to understand how an internal combustion engine works, yet you feel safe driving your car, don't you?" Now, I find myself right at that inflection point. When I use an LLM to generate code, whether it is to define a single function or to create a long running job, I find this need to understand it. I cannot commit code that I don't understand. I posted about how I spent 10 hours reworking what the AI had created in 12 minutes . I didn't do so because I didn't like the style of the code, or the naming convention. I did it because the code didn't work. As simple as that. Every time I generate code and trust it to be working, it fails. When I use the same generator to fix the issue, it may or may not work. Now I have two problems. Yet, the world is using Claude, Codex, and what not to write code. They are trusting it like we trust an internal combustion engine, while I'm trying to understand every piece of it before I use it. My need for understanding the code is slowing down any gains from the speed of code generation. That means, I cannot become a 10x engineer with this tool. I cannot call it like a function that has been vetted by another developer because the code hasn't been written before I call it. I don't know if it is copying Jon Skeet's answer from Stackoverflow, or if it is copying my own low quality post that was deleted by consensus. I don't know if I should update my metaphor, or if I should just trust the engineering behind it.

0 views
iDiallo 1 months ago

Please, use a link!

This is a rant. It didn't start today, but I think I've reached the end of the line. The straw that broke the camel's back, so to say. I used an internal tool for the first time. I logged in and navigated through the web app, making some updates here and there. All was well. But then I made the mistake of wanting to go back to the initial dashboard. I clicked the back button, and instead of returning to the previous page, I saw Chrome's default tab page staring right back at me. How is it possible? I had navigated through at least a dozen pages, yet one back button click and the web app was completely gone. If you've ever experienced something similar, it's probably because you were using a single-page app. Nothing wrong with single-page apps, of course, but over the years I've concluded that people who only know how to build single-page apps don't know what a link is. So let's start with examples of what a link isn't. Not a link. It's a div with an event handler. You can style it all you want, but it's not a link. This may be a button, but it is not a link. With the advent of React, this has become so common. Because it's called a button, learners naturally gravitate toward it to link different pages. But there is worse. This almost feels intentional. As if the developer is teasing me. Why would you use an anchor tag but then omit its most important attribute? Here is what a link is supposed to look like: That's it. Simple. You don't have to add any configuration for the browser to support it. You don't even have to style it. All user agents have sensible default styling for the different states of a link: unvisited, visited, and active. It works well with browser history. On desktop, when you hover over it, you get a preview of the destination URL in the bottom-left corner of your screen. On mobile, you can press and hold to get several options on how to open it. You don't even have to worry about accessibility. It just works. But when a developer is deep in their React app thinking about functionality, they might say, "When you click this button, go to the home page." They will naturally think of as an event. And since it's a single-page app, they're thinking about state, not a page. They might write something like this: This is already bad enough. But depending on how the function is implemented, it can make or break the entire browser history. In the internal tool I was using, was essentially replacing the current URL with the new one using . You can avoid all of these issues by just using an anchor tag. If you need it to play nicely with your React app, React Router has a component. Please, just use a native link and you won't have to worry about anything else.

0 views
iDiallo 1 months ago

ppclp.ai announces 100x Productivity Gains

ppclp.ai, North America's third-largest AI-native manufacturer of premium wire-formed office fasteners, formerly known as Paper Clip Company, announced a landmark 100x improvement in its proprietary Organizational Productivity Index (OPI™), cementing what leadership is calling "a new era of operational excellence" and "a little bit of a miracle." The breakthrough follows an 18-month company-wide initiative called Project Streamline, during which all 340 employees completed mandatory efficiency training, adopted a new Jira-based workflow system powered by Rovo, and attended a two-day offsite in Scottsdale where a consultant named Derek asked everyone to "think about how they think about work." "I used to open fourteen browser tabs and just stare at them. Now I open fourteen browser tabs, and AI agents are looking at them for me. I've never felt more in control." — Sandra K., Senior Clip Assembly Coordinator, 11 years at ppclp.ai Central to the transformation is Rovo, Atlassian's AI, which the ppclp.ai Jira Center of Excellence team has deeply integrated into the company's ticket lifecycle. Rovo now autonomously opens tickets when it detects workflow friction, assigns them to the appropriate team, and, in what the Center of Excellence calls "the closed-loop moment", it closes them upon determining that sufficient time has passed. Ticket velocity has increased by 340% as a result. "Rovo doesn't wait for humans to decide a problem is solved," explained the Head of Delivery Operations, in a blog post titled We Taught Our Tickets to Heal Themselves. "It senses resolution. It acts. And then it documents the action in a follow-up ticket, which it also closes." The OPI™, aggregating over 200 signals including ticket velocity, standup attendance, emoji reaction latency in Slack, and what the methodology document calls "ambient focus energy," now shows a number in the top-right corner of the dashboard that is very large and going up. The dashboard itself, prominently themed in dark mode (naturally), required six months to build and is, by all accounts, extremely beautiful. "We are incredibly proud of this number," said CEO Bob Realman in a statement prepared by the communications team and reviewed by legal. "It represents the dedication, the hustle, and the genuine passion of every single person at ppclp.ai. And of Rovo, who we consider an honorary team member and who closed 1,400 tickets last Tuesday alone." When asked by a reporter at the earnings call whether the 100x productivity improvement had resulted in a corresponding increase in paperclip output, CFO Melissa Tran paused, smiled warmly, and said the question "reflected a pre-transformation mindset." She then advanced to the next slide, which was a photo of the team at the Scottsdale offsite. "Volume is a very legacy way of thinking about a fastener business. We've moved beyond units. We're measuring what matters: Agentic motion." — Bob Realman, current and former CEO, ppclp.ai The company did acknowledge, in a footnote on page 34 of the supplemental earnings materials, that paperclip production had declined approximately 20% year-over-year. The footnote attributed this to "macroeconomic headwinds, a challenging staple-adjacent market, and notable seasonality in Q2 clip demand," adding that the trend was "well within the range of normal paperclip seasonality" and "expected to self-correct, eventually." Analysts who requested a definition of "paperclip seasonality" were directed to a separate FAQ document that had not yet been written. A Rovo ticket to write it was opened and closed the same afternoon. ppclp.ai says it expects the OPI™ to continue improving through the end of the fiscal year. They are already exploring an OPI™ 2.0, an open source model that will incorporate biometric data, walking pace between meetings, and what the roadmap calls a "vibe coefficient." Production guidance was not provided, but the company noted that the dashboard remains, in their words, "extremely actionable," and that Rovo has already opened a ticket about it. OPI™ was developed in collaboration with Proxy Ai™ . ProxyAi, so you don't have to. About ppclp.ai: ppclp.ai has manufactured precision wire-formed fasteners since 1987, and rebranded as an AI-native company in 2024. The company serves offices, government agencies, and one very loyal stationery shop in Duluth. ppclp.ai employs 340 humans and Rovo, and is headquartered in a building with a lot of glass. More information is available at a website that is currently being redesigned by an agent. Forward-looking statements contained herein involve risks and uncertainties, including but not limited to: continued ambiguity about what productivity means, the possibility that Rovo opens a ticket about this press release and then closes it, and the risk that someone in finance eventually opens a spreadsheet unassisted. OPI™ is a trademark of ppclp.ai. "Seasonality" is used here in the broadest possible sense. Rovo is a product of Atlassian and is referenced here with the full confidence that it would autonomously resolve any objections. Past dashboard performance is not indicative of future paperclip output.

0 views
iDiallo 1 months ago

Why all the PRs?

It's a signal. That's why we get AI-generated PRs. We told everyone, in order to get your resume taken seriously, you need to show your work. When I was getting started in my career, that meant having your own website that you contribute to regularly. So I did that. I built websites, I maintained them. I kept maintaining them even after I got the jobs because that's how I actually honed my web programming skills. Where else was I going to try new frameworks, a new JavaScript paradigm, or try out Ruby on rails? I got the job, and I advised other developers to follow the same path. But then github became mainstream. Rather than just show a finished website, you could actually share the code that runs your project. Share a link to your github project and companies can review your code and directly gauge your experience. But even better, you can show your contribution to open source projects. Not just any projects. Popular projects. The github stars became a metric people look for. A signal that can be used to quickly assign a value to a candidate. But that’s the story told from the outside. I don’t think the github profile link was ever important, unless it was significantly good. Employees focused on their work rarely have the time to maintain healthy github activity. Their experience comes from their day to day job. So for the most part, not much attention was placed on github links other than skimming through those surface level details. When stacks of resumes came on my desk, the best candidates stood out because they had work experience. The good candidates had projects that they could link to, github or elsewhere. But then, the worst candidates had long padded resumes that had elements of every job application tips-and-tricks-article. They had a website, but it was built in a day for the purpose of getting a job, with nothing interesting to say. They had github links, but those often pointed to school projects, homework, or boilerplate code. That’s the vast majority of github links I used to get. People with active and well maintained github profiles were rare. Rare because it actually requires time, effort, and experience. But then we have AI. There was a golang auth issue that I've contributed to on github. It was already a few years old when I proposed a solution that worked for my case. It wasn't universal so it wasn't accepted. The discussion is revived every couple years, each person bringing one more piece to the puzzle. But then recently, someone exploded the thread with comments. And even created a PR to go with it. This was from a user that went from a dormant account to 4000 contributions in a year. It was all AI assisted code. This isn’t to comment on the quality of his code, but he was clearly trying to optimize the metric. Looking at his linkedin profile, he doesn’t work in a software engineering role, and it’s hard to decide if he would be a good contributor if hired. If we were to judge his resume by looking at the github profile, it might catch our attention. But then, there is a problem. There are hundreds, even thousands of people all doing the same thing. They are cranking up their contributions to github projects using AI, so they can have a better chance at getting hired as developers. I understand the job market is rough right now, especially for gen z , and anything to differentiate yourself is a plus. The problem is this is being done at the expense of open source projects. The contributors are not submitting PRs to your project because they are personally invested in it. Instead, they are trying to get their name on the contributors list so that they can use it as a signal in their resume. When we are out here debating if there is any merit in AI generated PRs, or if we should just judge the code, we tend to miss that their gesture is completely hollow. The PR’s author intentions are completely misaligned with the project's maintainers. They are playing a different game. We call it slop, or a waste of time, we ban them and they get really vocal about expressing their first amendment rights. We are directly interfering with their goal of padding their resume. I often ask, why don’t people who create those PRs not just start their own project? One answer I’m starting to believe is, nobody cares about a github profile with a handful of stars. You need to contribute to a popular project. Most if not all AI generated websites look the same, it doesn’t matter how well you customize the prompt. Most greenfield projects from new programmers look the same, the prompter lacks the experience to do anything different. Contributing to open source is a scary thing when you are new. Even when you have experience, it’s a deliberate act. You have to be invested in the work. Just like asking questions on stackoverflow, issues you raised will often get closed . And when they do, you have to learn from it. The value of an open source contributor is not in the volume of work they can perform. If you skim any important projects, you’ll see that the best contributors spend more time discussing the problem than writing code. Their value is in solving problems and contributing to the collective memory of the group. But when you are doing a drive-by PR that may or may not be correct, and you are just trying to get your name on a list, you are providing zero value to the maintainer. Just more work. This is the signal every slop PR generator is after.

0 views
iDiallo 1 months ago

Now that your newsletter is AI-generated, I've Unsubscribed

I've remained subscribed to some newsletters for over 20 years. The authors managed to keep my attention all that time. But then, one day, they decided to switch to an AI-generated newsletter without making any announcement. After a couple of weeks of blue high-tech image thumbnails, I simply hit unsubscribe. Here's what happened: a person earned my trust. He maintained that trust for all those years. But then he thought the best way to improve was to take himself out of the equation. If you're just going to present me with prompt-generated content, I hate to break it to you but I have access to ChatGPT, and I can do that myself. The reason the human voice matters to me is because there's real experience behind the words. The oldest newsletter in my inbox is from when I was just 12 years old. It was from a French writer I used to read. After a decade of following him, the emails stopped coming. I was only reminded a few years later, when the emails started coming back. I didn't jump on it immediately. I didn't even remember who it was. But when I read one at random, the words were different, the tone was nostalgic, and the name was unfamiliar. I dug deeper and found that the author's son had taken over the newsletter. That was my cue to unsubscribe. But he hadn't used AI to replace his father's voice. He didn't use any tricks to garner clicks. Instead, he announced that his father had passed away and that he would share some stories. I remained subscribed until the last story was released. I rarely sign up for any newsletter. If I do, it's intentional because I'm interested in what the author has to say. It's not much deeper than that. There is a big difference between a newsletter written by a person, one that breathes and wanders and sometimes takes his time. Compared to the rapid fire, mechanical hum of AI-generated content. One feels like someone is thinking with you. The other feels like a monetization strategy.

0 views
iDiallo 1 months ago

Now that your newsletter is AI-generated, I've Unsubscribed

I've remained subscribed to some newsletters for over 20 years. The authors managed to keep my attention all that time. But then, one day, they decided to switch to an AI-generated newsletter without making any announcement. After a couple of weeks of blue high-tech image thumbnails, I simply hit unsubscribe. Here's what happened: a person earned my trust. He maintained that trust for all those years. But then he thought the best way to improve was to take himself out of the equation. If you're just going to present me with prompt-generated content, I hate to break it to you but I have access to ChatGPT, and I can do that myself. The reason the human voice matters to me is because there's real experience behind the words. The oldest newsletter in my inbox is from when I was just 12 years old. It was from a French writer I used to read. After a decade of following him, the emails stopped coming. I was only reminded a few years later, when the emails started coming back. I didn't jump on it immediately. I didn't even remember who it was. But when I read one at random, the words were different, the tone was nostalgic, and the name was unfamiliar. I dug deeper and found that the author's son had taken over the newsletter. That was my cue to unsubscribe. But he hadn't used AI to replace his father's voice. He didn't use any tricks to garner clicks. Instead, he announced that his father had passed away and that he would share some stories. I remained subscribed until the last story was released. I rarely sign up for any newsletter. If I do, it's intentional because I'm interested in what the author has to say. It's not much deeper than that. There is a big difference between a newsletter written by a person, one that breathes and wanders and sometimes takes his time. Compared to the rapid fire, mechanical hum of AI-generated content. One feels like someone is thinking with you. The other feels like a monetization strategy.

0 views
iDiallo 1 months ago

The web is changing, and we are not going back

Whenever I saw someone type a natural language query into Google, it made me cringe. "It's not a person," I would say. "Type like you're talking to a machine." This was especially true for programmers and it was before AI took over everything. Instead of "how do I write a function that reads a file?", I would suggest they use specific keywords, something that sounded more like machine language than conversation. "js function to read csv file" or "css gradient background property example." This got you better results. Even though Google was a sophisticated search engine, it was still doing a kind of keyword matching under the hood. But not anymore. You don't get any advantage from writing in "machine language." Google understands natural language just as well. In fact, even better. How is it that in 2026, I Google things less than ever? It's not that I know everything now. It's more that I don't want to call the friend who always talks too much. If the height of the Eiffel Tower ever comes up in conversation, I'll type "eiffel tower wiki" and click through to Wikipedia. I don't want to have a conversation about it. Googling something these days feels like Google is trying to join my private conversation. Where it used to be a tool for finding answers elsewhere, now it's a buddy who gives you an answer. And just as you're about to leave, it says, "hey, did you also know that..." There used to be a machine between me and the information I was looking for. It was good at its job. It sorted, ranked, then presented information. But now, the machine is constantly pushing information at me, watching my reaction, learning from it, and feeding me more, unsolicited. Before, information lived on the web and was hard to find. Today, information still exists, but it's buried under noise. Google no longer helps you find it, it just gives you an answer. That answer might be right or wrong, and right below it, in small print: "AI responses may include mistakes." You rarely get to verify whether the answer is correct, because almost no one clicks through to the source. I know this firsthand. More than three-quarters of my Google referral traffic has disappeared, while my search impressions keep climbing. So what's left to do? I could mourn the old Google, the simpler web. But as the title says, we aren't going back. This is the new reality, and we have to adapt. Rather than blindly embracing change, I think it's smarter to pick and choose. Just last week, I wrote about the small web still being alive . And it did exactly what its name suggests. It stayed small. There are other search engines built for people who want more control. DuckDuckGo. Kagi (my personal favorite). The habit of Googling everything is learned behavior and learned behaviors can be unlearned. What's harder to convey is that Google never presented us with facts, only sources and citations. The way the google answer is presented, we have the impression they are giving us undisputable truths. When everyone is sharing screenshots of the answer they got, all you can do is share a screenshot of the opposite answer you got. The source gets lost. That's where we are now. Skimming the average sentiment of a Reddit thread, or confirming something we already believed. This is the new reality. We're not going back to keyword matching. But I also don't have to accept the new way as the only way. Google has made its search box AI-first and that's their right, it's their product. But it's also my opportunity to try something different. We are not going back. So I might as well choose where I go next.

0 views
iDiallo 1 months ago

The web is changing, and we are not going back

Whenever I saw someone type a natural language query into Google, it made me cringe. "It's not a person," I would say. "Type like you're talking to a machine." This was especially true for programmers and it was before AI took over everything. Instead of "how do I write a function that reads a file?", I would suggest they use specific keywords, something that sounded more like machine language than conversation. "js function to read csv file" or "css gradient background property example." This got you better results. Even though Google was a sophisticated search engine, it was still doing a kind of keyword matching under the hood. But not anymore. You don't get any advantage from writing in "machine language." Google understands natural language just as well. In fact, even better. How is it that in 2026, I Google things less than ever? It's not that I know everything now. It's more that I don't want to call the friend who always talks too much. If the height of the Eiffel Tower ever comes up in conversation, I'll type "eiffel tower wiki" and click through to Wikipedia. I don't want to have a conversation about it. Googling something these days feels like Google is trying to join my private conversation. Where it used to be a tool for finding answers elsewhere, now it's a buddy who gives you an answer. And just as you're about to leave, it says, "hey, did you also know that..." There used to be a machine between me and the information I was looking for. It was good at its job. It sorted, ranked, then presented information. But now, the machine is constantly pushing information at me, watching my reaction, learning from it, and feeding me more, unsolicited. Before, information lived on the web and was hard to find. Today, information still exists, but it's buried under noise. Google no longer helps you find it, it just gives you an answer. That answer might be right or wrong, and right below it, in small print: "AI responses may include mistakes." You rarely get to verify whether the answer is correct, because almost no one clicks through to the source. I know this firsthand. More than three-quarters of my Google referral traffic has disappeared, while my search impressions keep climbing. So what's left to do? I could mourn the old Google, the simpler web. But as the title says, we aren't going back. This is the new reality, and we have to adapt. Rather than blindly embracing change, I think it's smarter to pick and choose. Just last week, I wrote about the small web still being alive . And it did exactly what its name suggests. It stayed small. There are other search engines built for people who want more control. DuckDuckGo. Kagi (my personal favorite). The habit of Googling everything is learned behavior and learned behaviors can be unlearned. What's harder to convey is that Google never presented us with facts, only sources and citations. The way the google answer is presented, we have the impression they are giving us undisputable truths. When everyone is sharing screenshots of the answer they got, all you can do is share a screenshot of the opposite answer you got. The source gets lost. That's where we are now. Skimming the average sentiment of a Reddit thread, or confirming something we already believed. This is the new reality. We're not going back to keyword matching. But I also don't have to accept the new way as the only way. Google has made its search box AI-first and that's their right, it's their product. But it's also my opportunity to try something different. We are not going back. So I might as well choose where I go next.

0 views
iDiallo 1 months ago

How Many Tokens Did You Burn Today

Early in my career, a manager at one of the big firms where I worked made a request so absurd it remains etched in my memory. I walked back to the team, repeated what he had asked, and couldn't finish the story without laughing. He wanted me to create a pie chart, of lines of code, per developer, per week. We all lost it. Our lead developer asked if, by any chance, the manager's eyes looked glassy. We laughed even harder. Because yes. Yes, they did. He was always high. That was twenty years ago. I've repeated that story countless times, and it always drew chuckles as we discussed the disconnect between software teams and management. Any software engineer could relate. We all knew that lines of code were a meaningless metric. A junior could write a thousand lines of spaghetti. A senior could fix the same problem with forty elegant ones. But then, last week, I found my name at the top of a leaderboard. My employer had been exploring productivity tools and trialed one they thought would be useful. After the trial, they were quoted $500k a year. The tool tracked developer productivity and integrated with Atlassian products, Microsoft, and many other services we used. The price was too steep, so it was dropped. A couple of months later, the same company came back with a discount. The exact same tool for just $50k a year. My employer jumped at the opportunity. How many bytes did you use today? I'm looking at this dashboard right now and I see my name at the top of the leaderboard. I click on the widget, and a pie chart appears. There it is: a breakdown of the total lines of code my team has produced using AI, by individual. This isn't limited to my employer. Every company is putting something together to track AI usage and justify the investment. Instead of tracking project completions, we're tracking how many lines of code each developer generated with AI. And the joke's on me, because nobody is laughing. The whole industry is applauding and encouraging employees to use more of it. I didn't become the champion because I have some neat agentic workflow. It was done by complete accident. While using an LLM, I accidentally selected "planning mode" for a request that had already been planned. The agent ran for several minutes, burning tokens to resolve a problem that didn't exist. Just like that, I made it to the top, without ever writing a single line of code. If this widget is taken at face value, it won't be long before developers start gaming it deliberately. Just let the agent run overnight, and your employer can claim a 10x improvement in productivity. We didn't use line count as a productivity metric in the past because it never made sense. Whenever we refactor code, we often end up with less than we started with. In fact, much of the time I spend modifying AI-generated code is spent deleting unnecessary things it created. Should we track negative lines of code? The better you are at programming, the worse your numbers look. We are assessing developers by the lines of code. I've watched AI evangelists ask "how many tokens did you burn today?" They were trying to convince an audience that productivity is directly proportional to token usage. It reminds me of the transition from paper to computers. A computer evangelist of that era might have asked: "how many bytes did you use today?" Token counts, lines of code, bytes, none of these have anything to do with actual productivity. Metrics are often entirely disconnected from what they're meant to measure. I've seen companies rely on story points only to watch employees point every ticket as high as possible. Choose lines of code as your metric, and lines of code will increase. Reward the highest contributor, and watch everyone double or triple their output by the next performance review. It's a silly metric but it serves a purpose, just not yours. AI companies promote token usage and associate it with productivity because they directly benefit from it. Imagine an internet service provider that charges by the byte. What would their recommendation for productivity be? "Use more bytes!" The best engineers I've ever known wrote less code, not more. They deleted things. They simplified. They understood that the goal was never the code itself . They solved problems, they made the system reliable, and they served the user. Measuring developers by output volume, whether that's lines, commits, or tokens, mistakes the exhaust for the engine. Every era of tooling brings a new class of metric that mistakes activity for value. The spreadsheet didn't make accountants more productive just because they could fill more cells. AI won't make developers more productive just because it can generate more code. We aren't even tracking if the right problems are being solved, and solved well. If the productivity dashboard can't answer that, it's not measuring productivity. It's measuring the subscription.

0 views