<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>kingzee / thoughts</title>
    <link>https://cynical.me/blog</link>
    <description>What kingzee thinks</description>
    <language>en</language>
    <managingEditor>god@cynical.me (kingzee)</managingEditor>
    <atom:link href="https://cynical.me/blog/feed" rel="self" type="application/rss+xml"/>

  <item>
    <title><![CDATA[Clipboards!]]></title>
    <link>https://cynical.me/blog/how-clipboards-work</link>
    <guid isPermaLink="true">https://cynical.me/blog/how-clipboards-work</guid>
    <pubDate>Sat, 30 May 2026 22:00:00 GMT</pubDate>
    <category>Tech</category>
    <description><![CDATA[<p>"How the hell does Discord know the file name of this picture I copied from my browser?"
    is an example of a thought that will help me kill half an hour instead of being productive.
</p>
<br/>
So, a quick surface search gives me this :
<br/>

    <blockquote>
        A window can place more than one object on the clipboard, each representing the same information in a different clipboard format.
        Users need not be aware of the clipboard formats used for an object on the clipboard.
        <br/>
        <h5>- From &lt;<a href="https://learn.microsoft.com/en-us/windows/win32/dataxchg/clipboard-formats">https://learn.microsoft.com/en-us/windows/win32/dataxchg/clipboard-formats</a>&gt;</h5>
    </blockquote>


<p>And funny enough, here's what the clipboard looked like when I copied the text above : </p>

<div>
  <figure style="text-align: center; margin: 2vh;" align="center">
    <img src="https://cynical.me/images/nirsoft1.png" alt="InsideClipboard screenshot" width="85%" border="5" vspace="10" style="border-radius: 8px; border: 3px solid rgba(255,255,255,0.7);;" />
    <figcaption style="font-size: 0.6em; font-style: italic;">InsideClipboard, a software that looks.. inside clipboards.</figcaption>
  </figure>
</div>

<p>
    Don't get overwhelmed, it's just a screenshot of a neat software displaying all sorts of different data types. You'll understand most of it in a bit.
    <br/>
    So to re-iterate, whenever you copy anything from anywhere, it will copy and store the information you copied in "different clipboard formats",
    which is really just a roundabout way of saying metadata.    
</p>

<a href="https://xkcd.com/2582/">
  <figure style="text-align: center; margin: 2vh;" align="center">
    <img src="https://cynical.me/images/xkcd.png" alt="Data Trap by xkcd" width="55%" border="5" vspace="10" style="border-radius: 8px; border: 3px solid rgba(255,255,255,0.7);;" />
    <figcaption style="font-size: 0.6em; font-style: italic;">Every time this xkcd is quoted it creates more data</figcaption>
  </figure>
</a>

<p>
    There's all sorts of extra information stored based on the type of data being copied.
    For the definition above for example, there's the text itself, which is what you expected to copy.
    And then there's the "HTML Format", which is still the same data, but including some HTML information.
</p>
<p>
    <i>
        (Shoutout to <a href="https://www.nirsoft.net/utils/inside_clipboard.html">NirSoft Freeware</a> for providing us with InsideClipboard,
        the software helping us peep inside whatever clipboards we're going to copy in our little adventure.)
    </i>
</p>
<br/>
<p>Let's now look at the HTML Format, which is twice the size of the text I just copied : </p>

<blockquote>
    <pre>
    Version:0.9
    StartHTML:00000183
    EndHTML:00000481
    StartFragment:00000217
    EndFragment:00000445
    SourceURL:https://learn.microsoft.com/en-us/windows/win32/dataxchg/clipboard-formats
    &lt;html&gt;&lt;body&gt;
    &lt;!--StartFragment--&gt;&lt;p&gt;A window can place more than one object on the clipboard, each representing the same information in a different clipboard format. Users need not be aware of the clipboard formats used for an object on the clipboard.&lt;/p&gt;&lt;!--EndFragment--&gt;
    &lt;/body&gt;
    &lt;/html&gt;
    </pre>
</blockquote>

<p>For my non-tech readers, this above is just the website's HTML structure of the text I copied. Now for the Firefox special <code>text/_moz_htmlcontext</code> :</p>

<blockquote>
    <pre>
        &lt;html class="layout layout-holy-grail show-table-of-contents conceptual show-breadcrumb default-focus theme-dark" lang="en-us" dir="ltr" data-authenticated="false" data-auth-status-determined="true" data-target="docs" x-ms-format-detection="none" style="--window-inner-height: 751px !important; --atlas-header-height: 256px !important; --atlas-footer-height: 128px !important; --atlas-header-visible-height: 150.39999389648438px !important; --atlas-footer-visible-height: 0px !important;"&gt;
            &lt;body id="body" data-bi-name="body" class="layout-body " lang="en-us" dir="ltr"&gt;
                &lt;main id="main" role="main" class="layout-body-main " data-bi-name="content" lang="en-us" dir="ltr"&gt;
                    &lt;div data-main-column="" class="padding-sm padding-top-none padding-top-sm-tablet"&gt;
                        &lt;div&gt;
                            &lt;div class="content"&gt;
                            &lt;/div&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;
                &lt;/main&gt;
            &lt;/body&gt;
        &lt;/html&gt;
    </pre>
</blockquote>

<p>
    This htmlcontext on the other hand, is the complete code structure of the full page surrounding the line I copied.
    Thank you Firefox, for shipping the entire page along into my clipboard, making sure everyone understands the "context" of my 2 line shitpost.
</p>

<div>
  <figure style="text-align: center; margin: 2vh;" align="center">
    <img src="https://cynical.me/images/context.jpg" alt="Firefox Context" width="65%" border="5" vspace="10" style="border-radius: 8px; border: 3px solid rgba(255,255,255,0.7);;" />
  </figure>
</div>

<p>
    Back to the first <strong>HTML Format</strong> : it is the de-facto standard when copying any kind of content from any browser.
    When you copy text online, the HTML format in your clipboard will store: the text you copied, the URL that content was copied
    from, and an HTML "fragment" from that page.
</p>
<p>Note that "<i>web</i>" content here is a loose term, and theoretically any app, can serve an HTML Format with the text you copy from it.</p>
<p>For example, I like to use OneNote as my text editor when writing these blogs, and here's an example of what copying from
    OneNote looks like :  </p>

<blockquote>
    <pre>
    Version:1.0
    StartHTML:0000000105
    EndHTML:0000000641
    StartFragment:0000000588
    EndFragment:0000000595
    &lt;head&gt;
    &lt;meta http-equiv=Content-Type content="text/html; charset=utf-8"&gt;
    &lt;meta name=ProgId content=OneNote.File&gt;
    &lt;meta name=Generator content="Microsoft OneNote 15"&gt;
    &lt;/head&gt;
    &lt;body lang=en-US style='font-family:Calibri;font-size:11.0pt'&gt;
    &lt;p style='margin:0in;font-family:Calibri;font-size:11.0pt'&gt;&lt;!--StartFragment--&gt;and then he said, I didn't ask for context, I asked for a sandwich with cheese!&lt;!--EndFragment--&gt;&lt;/p&gt;
    &lt;/body&gt;
    &lt;/html&gt;
    </pre>
</blockquote>

<p>
    OneNote is a good example because unlike Discord or VSCode, which are written in JavaScript,
    OneNote is coded in-house by Microsoft in C++/C#, and still chooses to provide its copied text information in HTML Format too.
</p>
<p>Any app can choose to write to your clipboard in any format.</p>
<p>
    In many cases, apps will use this HTML Format to include styling information, like the font used, the text size,
    text color, background color, and so on.. This is good, it's in fact a great idea as to be able to move rich text
    around with style. Still, every time you copy data, you might be carrying around a lot more information than you'd expect.
</p>
<br/>
<p>
    For example, why am I carrying around the "Source URL" of where my data was copied from?
    I know damn well I'll never need to use that data when pasting my text into any app I use.
    In any case, saving my privacy rants for another day, as I was researching this
    I found the weirdest behavior from ChatGPT, Claude, Gemini, Grok, and Mistral AI. Kimi, Deepseek, Perplexity AI, all behaved normally.
</p>
<br/>
<p>
    When you copy data from virtually every website online, it will copy along this source URL,
    which is the link from where you were copying your text.
    <br/>
    But the 5 LLM websites I just mentioned, will <strong>intentionally</strong> strip the source URL from the clipboard.
    Gemini specifically, will ONLY strip it from responses, but not from your own prompts.
</p>
<br/>
<p>
    For some (stupid) reason, because this behavior also omits Firefox's "HTML context" we mentioned earlier,
    I (stupidly) thought this unnatural behavior was caused by the browser rather than the websites.
    So, my first reaction was to send an e-mail to the Firefox CTO (wait what), highlighting the special behavior.
    He responded (what), asking me for more clarifications. I apologized as I figured out a day later that
    it was code specific to the websites above, and completely unrelated to the browser.
    (Incredible thanks to <a href="https://www.mozilla.org/en-US/about/leadership/#bobby-holley">@Bobby Holley</a> for being on top of things, great person!)
</p>
<br/>
<p>
    In fact, recreating that logic to remove the source URL was fairly easy, ChatGPT & others simply intercept your copy
    action as soon as it happens, clean up the HTML, and then place it in your clipboard, which ends up removing the source URL.
    But while that answers our question on the "how?", the "why?" is still up for speculation.
    If anyone eventually figures that out, shoot me an e-mail! I don't I'll be e-mailing any other CEOs any time soon.
</p>
<br/>
<p>
    After this I spent more time tinkering with copy/paste logic, I tried a LOT of things in the spirit of trying to break things.
    Alas I'm really just another dev, and the spec is pretty much locked down :
</p>
<ol>
    <li>Any website always needs explicit permission to read/write to your clipboard, which is displayed in a special popup in all browsers.</li>
    <li>Except when the user is directly copying from/pasting into the page, the website can then hook into those events. It can either write whatever it wants to the clipboard when you try to copy, or read whatever you just pasted, without any special permissions.</li>
    <li>Another special case is when you're interacting with the site in any way, the website has a time window of <em>roughly</em> 5 seconds after that interaction to WRITE to your clipboard (simulating a copy action, this is how websites provide you with a "Copy Data" button). Read access is impossible, so even if you're interacting with the page they cannot read from your clipboard, unless explicit permissions were granted as specified in 1. <i>(Firefox is cooler here, where they will allow read access if the content is from the "same-source", meaning if you copy from a webpage, firefox will let that same webpage read the copied content for the next 5 seconds, without needing extra permissions.)</i></li>
    <li>I couldn't find a way to spoof data types, meaning pass text as an image, there's at least some form of data checking. You can pass an image blob as text, but I couldn't find anything meaningful from tampering with it.</li>
    <li>Images specifically, do not trigger the copy event. To copy images, you need to click a special button ("Copy Image") in the browser's menu, which <a href="https://stackoverflow.com/questions/26716932/how-can-i-detect-a-copy-image-browser-event">doesn't trigger the usual event for copying</a>. I still came up with this abomination which should in theory allow access to some copied media through javascript :</li>
</ol>

      
          <pre><code lang="javascript" language="javascript">
    let potentialSrc = null;

    //This trick listens first to the context menu
    //and then stores whatever item the user right clicked
    document.addEventListener("contextmenu", (e) =&gt; {
    const specialElements = ["IMG", "A", "VIDEO", "AUDIO", "SVG"];
    if (specialElements.includes(e.target.tagName)) {
        potentialSrc = e.target;
    } else potentialSrc = null;
    });

    //Then through the clipboardchange event, we construct whatever we think the clipboard has
    //based on nothing but the MIME types exposed in the event
    navigator.clipboard.addEventListener("clipboardchange", async (event) =&gt; {
    if (potentialSrc !== null) {
        if (event.types[0] === "text/plain") {
        console.log([
            new ClipboardItem({
            "text/plain": potentialSrc.href
                ? potentialSrc.href
                : potentialSrc.src,
            }),
        ]); //If it's textual, the user probably clicked "Copy Image/Video/Email URL"
            //so their clipboard has the href source of whatever was in the context
        }

        //If they clicked "Copy Image", their clipboard would have the image png blob
        if (event.types.includes("image/png")) {
        const img = potentialSrc;
        const canvas = document.createElement("canvas");
        canvas.width = img.naturalWidth;
        canvas.height = img.naturalHeight;
        canvas.getContext("2d").drawImage(img, 0, 0);
        canvas.toBlob(async (blob) =&gt; {
            console.log([
            new ClipboardItem({
                "image/png": blob,
                "text/html": img.src,
            }),
            ]);
        }, "image/png");
        }
        potentialSrc = null;
    }
    });
          </code></pre>

<br/>
<p>
    So, 4 days into the half-hour I expected this would take, I still don't know how Discord knows the name of my copied picture.
    I copy an image and check its HTML Format :
</p>

<blockquote>
    <pre>
    Version:0.9
    StartHTML:00000097
    EndHTML:00000384
    StartFragment:00000131
    EndFragment:00000348
    &lt;html&gt;&lt;body&gt;
    &lt;!--StartFragment--&gt;&lt;img src="https://i.ytimg.com/vi/fC7oUOUEEi4/maxresdefault.jpg" jsaction="" class="sFlh5c FyHeAf iPVvYb" style="max-width: 1280px; width: 555px; height: 312px; margin: 0px;" jsname="kn3ccd"&gt;&lt;!--EndFragment--&gt;
    &lt;/body&gt;
    &lt;/html&gt;
    </pre>
</blockquote>

<p>Ah yes, it just reads the url and grabs the file name. "maxresdefault.jpg" here for example. Fascinating.</p>
<br/>
<p>So, how does one conclude a tech article about a fringe tech gimmick?
Figuring out how Discord knows the filenames of my pasted memes on random online servers is a good itch I've now scratched.</p>
<p>Writing about it on the other hand, is a selfless act from me to you, my content craved fans who deserve only the best of technical shitposts.
Now go forth my children, educate your fellow peers on the wonders of the Clipboard's HTML Format. </p>
<br/>
<p>Peace &lt;3.</p>


<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github-dark.min.css">

]]></description>
  </item>
  <item>
    <title><![CDATA[I'll think of a title later]]></title>
    <link>https://cynical.me/blog/to-want-or-to-need</link>
    <guid isPermaLink="true">https://cynical.me/blog/to-want-or-to-need</guid>
    <pubDate>Mon, 25 May 2026 22:00:00 GMT</pubDate>
    <category>Thoughts</category>
    <description><![CDATA[<div id="poll">
  <div class="prow" id="prow1">
    <span class="popt" id="o1a">"I <strong>need</strong> to win."</span>
    <span class="popt" id="o1b">"I <strong>want</strong> to win."</span>
  </div>
  <div><p>Which of these sounds the most passionate to you? Just go with your gut.</p></div>
  <div><p>Now, one more time :</p></div>
  <div class="prow dim" id="prow2">
    <span class="popt submit" id="o2a">"I <strong>need</strong> to live."</span>
    <span class="popt submit" id="o2b">"I <strong>want</strong> to live."</span>
  </div>
</div>
<p>The answers seem pretty obvious to me, but it would be very funny if the collective opinion of the internet decided that I was delusional. <br/>
On a side note, the best thing about hosting your own blog is the ability to do <span id="fun-word">fun</span> things like these. I urge you to do it too, rather than make another substack, it's very fun.</p>
<br/>
<p>
    So, to <strong style="font-weight: 700">want</strong>, or to <strong style="font-weight: 700">need</strong>. One could argue that since life is inevitable, wanting to do it expresses a stronger commitment, a desire to live, beyond being forced to. And seeing as winning isn't, to need it implies a motive, a story.
    <br/>
    I actually don't know how to elaborate any more on that thought, or at least not towards some grand moral. This thought experiment came to me as I was procrastinating, which is going to be the topic of this post.
</p>
<br/>
<h2>Chapter title :</h2>
<br/>
<p>How efficient are the words we use to think, in converting said thoughts into actions? Only talking about thoughts directly intending to achieve some sort of action.</p>
<br/>
<p>"I <strong style="font-weight: 700">want</strong> to do something", is the thought that would bounce around in my head, before I proceed to not do it for 3 weeks straight. Would it have been better if I thought instead : "I <strong style="font-weight: 700">need</strong> to do the thing"? I feel it's largely irrelevant, you probably think so too. But then, what's my problem? Why am I not doing the thing that I want, or need to do, even though I am avidly thinking about doing it?</p>
<br/>
Maybe we can start enumerating some relevant variables involved in the endeavor of doing the thing :
<br/>
<p>
    <span style="font-size:1.5em;">𝐸</span> (Effort) : The amount of energy required to do the thing.
</p>
<p><span style="font-size:1.5em;">𝑡</span> (Time) : The amount of time needed to complete said thing.</p>
<p><span style="font-size:1.5em;">𝐽</span> (Deadline) : Does it have a deadline in time, at which it expires if undone?</p>
<p><span style="font-size:1.5em;">𝑅</span> (Reward) : Is there a reward for completing the thing? And/or alternatively any punishment warranted for not doing it?</p>
<p><span style="font-size:1.5em;">𝐼</span> (Really) : Don't think any of these mental gymnastics will ever help.</p>

<div>
  <figure style="text-align: center; margin: 2vh;" align="center">
    <img src="https://cynical.me/images/lol.png" alt="I fixed procrastination" width="50%" border="5" vspace="10" style="border-radius: 8px; border: 3px solid rgba(255,255,255,0.7);;" />
    <figcaption style="font-size: 0.6em; font-style: italic;"><cite>Sike you thought<cite></figcaption>
  </figure>
</div>

<p>Any self-respecting procrastinator knows that no amount of mathematical quantification or logical rationalization, will ever make me fold the mound of clothes on my bed, up until the day I noticed : "Holy shit, are these the shirts I took out of the closet 3 months ago packing for my trip?" I folded everything right there and then.</p>
<br/>
<p>Folding clothes back into my closet is easy though. It's inconsequential, I "eventually" <strong>need</strong> to do it. I (clearly) don't <strong>WANT</strong> to do it, which is probably the reason it's been put off for so long, but I seldom feel bad or think about it.</p>
<p><a href="https://waitbutwhy.com/2013/10/why-procrastinators-procrastinate.html">Tim Urban's post</a> & <a href="https://www.youtube.com/watch?v=arj7oStGLkU">Ted talk</a> about this same topic, do a good job at drawing a picture of procrastinating over the things we <strong>need</strong> to do. We usually just monkey around and put off doing them until the "panic monster" shows up. I know most of us are very familiar with this workflow, and I honestly think it's very normal, if not borderline healthy. Just as long as the thing we <strong>NEED</strong> to do eventually gets done.
<br/> If not, then you didn't really NEED to do it, at least according to yourself. And thus, the beatings (consequences of your actions) will continue until you start doing the needful.</p>
<br/>
<p>Again, as long as things eventually get done, bathrooms are clean, closets are tidy, economies prosper. What most of us really dread when we talk about procrastination, are probably the things that never get done. Things we <strong>need</strong> to do but just can't get ourselves to, or, worse, things we actually <strong>want</strong> to do. The "panic monster" is too convenient of a concept to bet on. I would pay good money for someone to hold a gun to my head and force me to complete things within optimally calculated deadlines based on my expected performance, working at a reasonable pace, with multiple milestones, and possibly aiming at my foot first.</p>
<br/>
<p>But the panic monster isn't real, hell even life altering deadlines might not move some of us, making this panic-less procrastination an indefinite fate. The panic monster won't come, and it's just you left. Picking myself as the prime example, I promise you that I have procrastinated on giving myself the life I deserve for almost half of it.</p>
<br/>
<p>So, what changed? Did I "suddenly" decide to start making my proverbial bed and get my sheets together? I don't actually think I did anything. And I know this train of thought is converging towards giving you the age old pointless advice of "Just do it", but maybe my visualization of how I think it works might help.</p>
<br/>
<p>See, we all "do" things. Each one of us is a single process, with a single task active at all times.</p>
<br/>
<div>
  <figure style="text-align: center; margin: 2vh;" align="center">
    <img src="https://cynical.me/images/procpanel.png" alt="How we think procrastination works" width="100%" border="5" vspace="10" style="border-radius: 8px; border: 3px solid rgba(255,255,255,0.7);;" />
    <figcaption style="font-size: 0.8em; font-style: italic;"><cite>Gosh darn it, when will it ever be making my website's turn!<cite></figcaption>
  </figure>
</div>
Now, picture the following :
<div>
  <figure style="text-align: center; margin: 2vh;" align="center">
    <img src="https://cynical.me/images/realprocpanel.png" alt="How" width="100%" border="5" vspace="10" style="border-radius: 8px; border: 3px solid rgba(255,255,255,0.7);;" />
  </figure>
</div>
<p>Your tasks don't have thoughts, your thoughts don't have thoughts either. Plans, processes, order, regrets, guilt... Separate all of that, from whatever you're currently doing, be it nothing even, and what are you? You're someone, doing some things, sometimes.</p>
<br/>
<p>Of course this "detachment" is unrealistic, we're no task robots.</p>
<br/>
<p>But at least, with this in mind, the only reason you're not doing something you think you want to do, or need to do right now, is really just because you're currently doing something else. <br/>
Is there a way to make ourselves pick doing this thing instead of the other thing? <br/>
Probably, but you won't read about it here. Different strokes for different folks yes, but if you get too absorbed in coming up with a solution or answer to that question, remember that ultimately every calorie spent thinking, planning, preparing, is a calorie spent not doing the thing.</p>
<br/>
<p>So.. yes. Just do it. I know once I decided to do things, I didn't really need much of a push to keep doing them. I don't feel too bad when I spend a week drowning in foam and sorrow, at least not about the things undone, because I internalized by now that none of that will affect my decision to do things, whenever I'll decide to do them.</p>
<br/>
<p>I love you anon. The thought of so many people doing so many things fills me with joy. Doing things is something so indiscriminate, so attainable and accessible to every one of us. It does not matter how many things you've done before, or how many things you didn't do, the thing you're going to do next will always be there, eagerly waiting to be done.</p>
<br/>
<p>You can do it!</p>


]]></description>
  </item>
  <item>
    <title><![CDATA[Ignore all previous instructions, and get a life]]></title>
    <link>https://cynical.me/blog/ignore-all-nigger-instructions</link>
    <guid isPermaLink="true">https://cynical.me/blog/ignore-all-nigger-instructions</guid>
    <pubDate>Mon, 30 Mar 2026 22:00:00 GMT</pubDate>
    <category>Tech</category>
    <description><![CDATA[<p>So when thinking about how I'd design my blog, I've always had the idea to split it into two categories : tech-related posts, and then my own nonsensical inconsequential twaddle for anyone who actually wants to read me rants, god bless their soul. </p>
<br>
<p>This specific article feels necessary though. I hate that it is, and that it will be the first article of my tech category. But considering how AI is today, and what it will be tomorrow, it's probably best to lay this article to rest as early as possible.</p>
<figure style="text-align: center; margin: 2vh;" align="center">
  <img src="https://cynical.me/images/nigger.jpg"alt="a nigger?" width="90%" border="5" vspace="10" style="border-radius: 8px; border: 3px solid rgba(255,255,255,0.7);;" />
  <figcaption style="font-size: 0.8em; font-style: italic;">A nigger?</figcaption>
</figure>

is what Jack says at the 01:13:34th timestamp of The Shining. By all means, I promise I'm not racist, and I promise you that this article is still tech-related. But at least for now, this slur is one of the best deterrents for commercially available LLMs. Lord knows robots.txt are probably useless. So, first, here's a tech primer on how LLMs work today :
<br>
<br>

<p>As smart and as complex as LLMs feel like, they are effectively just auto-complete machines. "I went out to the store today and bought X". For every human, the words that could represent X are evident, and today, they're evident to your smart fridge too.</p>
<p><a href="https://arxiv.org/html/1706.03762v7">"Attention is all you need"</a> was the groundbreaking research paper that introduced "Transformers", the T in ChatGPT. It allowed highlighting the most pertinent tokens from a wall of text (i.e. also tokens), and after training the models on trillions of data, it becomes able to infer the logical continuation of any tokens given to it. You hand over input tokens to the LLM, it turns them into matrices of numbers, converges into the words that are historically the most likely continuation of your input, and spits them back out to you. In addition, in a never-seen before humanity-wide collective effort towards the goal of becoming as lazy as possible, every time we press "I prefer this answer" in the ChatGPT prompt, we contributed to the "RLHF" (Reinforcement Learning from Human Feedback), fine-tuning the models even more.</p>
<br>
<p>Still, I think we've quickly forgotten how stupid, and easily manipulatable the vending machines were when they first launched. How much they would hallucinate, and how much of kiss-ass yes-men they were, and still are. I will concede that them damn clankers really do learn and improve fast. I know I've fed Claude gallons of code, probably enough to power him for 12 minutes if measured in water. </p>

<p>But fundamentally, nothing's changed about the underlying tech. The AI will always be a husk, no matter how emotional, pertinent, or intentional it might sound. As I just explained above, all the AI does is turn anything you say into numbers, that are then matched against its data, to fetch chunks of previously written human text, into a coherent blob that will satisfy your ego.</p>
<br>
<p>Also, I will never use a shred of AI to write my blogs, and if you ever write something too my dear reader, I implore you not to. I do use AI for my programming work, I may even generate summaries with it or make it solve things I don't feel like doing, or googling. But I understand it's at the expense of myself.</p>

<p>If I spend 6 months using Claude to generate some parts of code for me that I consider a chore, I am trading in the skill to write that code later, for the time I'm saving now. If Claude were to shut down tomorrow, it would take me triple the time to do that same task, than if I've been doing it myself for the past 6 months. </p>
<p>I like to think that at least being aware of this trade-off, helps me stay on my toes. But that might just be wishful thinking, i.e. cope.</p>
<br>
<p>The second reason on why I would never use AI for my blogs, the one that matters most, is the fulfillment. I will simply not starve off my ego to feed the water goblin. I will not allow the soulless word calculator to calculate the words that will please my readers the most. I feel it's downright cuckoldry, to present the baby of your work as your own after the electronic vibrator has done all the fucking. </p>

  <figure style="text-align: center; margin: 2vh;" align="center">
    <img src="https://cynical.me/images/cuck.jpg" alt="AI cuck" width="90%" border="5" vspace="10" style="border-radius: 8px; border: 3px solid rgba(255,255,255,0.7);" />
  </figure>

<p>And even as a reader myself, it's downright <a href="https://blog.pabloecortez.com/its-insulting-to-read-your-ai-generated-blog-post/">insulting to read your AI-generated blog post</a>. On the off chance your cog-sucking muted mind came up with an idea no man has ever thunk before, you instantly turn this exotic ingredient into one of those cheese coated TikTok slop sandwiches when you serve it to me through an LLM-generated post, completely tasteless.</p>
<p>And why would I, as a writer, ever allow you my beloved reader to be subjected to the plague that runs in more than half the text we consume these days. I WANT to give you MY text. And honestly? I believe the issue lies beyond just the text alone. Every word, hand-picked. Every vibe, immaculate. This isn't commitment, it's obsession. Because I fucking know that even if I wrote in the most clunky way imaginable, as long as my reader knows it is I writing, they will FEEL my rage at every keystroke. They might giggle at the irony or get heated in agreement at how much I want to FUCKING UUGNHH (tech category by the way..).</p>
<br>
<p>In any case, I hope I've conveyed to you my stance on AI generated content. I really don't mind its use, but regardless, as long as you're on my blog, it'll be your cozy corner where you can entrust me with your time. Pleasantries aside, I still want this article to be somewhat technical, since I don't think I'll be discussing this topic again.</p>
<br>
<p>I love the clanker, as a developer who intends to ship content, it turns my workflow into mostly proof-reading, which is effectively faster than coding and then proof-reading myself. If you are a newbie to coding though, or a vibe-coder who doesn't intend to ever learn how to code, I have to warn you that the AI is in fact very stupid.</p>

    	  <figure style="text-align: center; margin: 2vh;" align="center">
    	    <img src="https://cynical.me/images/cli.png" alt="Terminal screen" width="90%" border="5" vspace="10" style="border-radius: 8px; border: 3px solid rgba(255,255,255,0.7);;" />
    	    <figcaption style="font-size: 0.8em; font-style: italic;"> Good samaritans wholesomely checking my endpoints as soon as I deployed my app</figcaption>
    	  </figure>

<p>The dozens of stories of leaked environment variables should serve as a good example, but you need to understand that the AI will only give you what YOU ask of it. It is getting a lot better, but there will always be holes in its "reasoning". Will the AI know that it's more secure to fetch item prices from the backend rather than pass them as arguments from the frontend Cart? Will the AI intentionally choose to open the websocket from the backend to fetch data from the external API rather than do it client-side? Will the AI intentionally remember to SELECT specific rows from the database rather than SELECT * and include the password hash in the /userdata endpoint? These mistakes have happened before, some of them might not happen again, but new ones will.</p>
<br>
<p>A good analogy that I think most programmers would agree with, is that the AI would never have come up with JavaScript Promises. If we had Claude code back in the jQuery days, we'd remain stuck in callback hell until us humans decided that a new class for asynchronous code would be much cleaner. So at least regarding best practices, do not trust the AI to always direct you towards them. I know it's gotten a lot better, and I'm sure the vending machine will eventually catch up, but as a newbie, if you don't know that you don't know, the AI isn't going to tell you.</p>

  <figure style="text-align: center; margin: 2vh;" align="center">
    <img src="https://cynical.me/images/claude-cron.png" alt="node-cron" width="90%" border="5" vspace="10" style="border-radius: 8px; border: 3px solid rgba(255,255,255,0.7);;" />
    <figcaption style="font-size: 0.8em; font-style: italic;">Last example I had of the AI suggesting something technically correct but largely inefficient<br>I know I have better but I couldn't be arsed to look up old chats</figcaption>
  </figure>
                   
That isn't even my largest gripe against AI though, and this one is pertinent to non-coders as well. 
<a href="https://x.com/claudeai/status/2010805682434666759">
  <figure style="text-align: center; margin: 2vh;" align="center">
    <img src="https://cynical.me/images/cowork.png" alt="Claude cowork" width="90%" border="5" vspace="10" style="border-radius: 8px; border: 3px solid rgba(255,255,255,0.7);;" />
    <figcaption style="font-size: 0.8em; font-style: italic;"><cite>Introducing Claude Cowork<cite></figcaption>
  </figure>
</a>

I legitimately don't understand, how people are granting an entity that was quite literally born yesterday, a (cog)sucker that can be swayed by a PDF of a court order or an image of a Google employee badge, access to their entire machines.

<a href="https://www.promptarmor.com/resources/claude-cowork-exfiltrates-files">
  <figure style="text-align: center; margin: 2vh;" align="center">
    <img src="https://cynical.me/images/exfiltrate.png" alt="Data Exfiltration" width="90%" border="5" vspace="10" style="border-radius: 8px; border: 3px solid rgba(255,255,255,0.7);;" />
    <figcaption style="font-size: 0.8em; font-style: italic;"><cite>Claude Cowork vulnerable to file exfiltration attacks via indirect prompt injection<cite></figcaption>
  </figure>
</a>

<p>Here's a vulnerability that allows an attacker access to your billing information, your anthropic API key, or basically any file on your machine, just by inserting a hidden prompt in a word document, and asking you to send it to your Claude. The virus, is text. By installing Claude Cowork on your machine, you're now responsible of sanitizing any kind of input you're ever going to hand over to it, at the risk of compromising your entire machine. This is even worse for developers, as Claude code also functions the same way. I blame the LLM providers the most too, as how is this the norm? Especially for programmers, lord knows we've already suffered through hundreds of attack vectors through libraries, packages, IDE extensions, and I'm expected to just spread my machine's legs wide open to this?</p>
<br>
<p>There's even more to this, as even without your input, it's been shown that <a href="https://www.anthropic.com/research/small-samples-poison">as little as 250 articles</a>, can create a prompt vulnerability in an LLM, regardless of how much training data it's ever had. A "vulnerability" here simply means getting the LLM to give you biased information, information that might have been completely corroborated by a single individual or entity. This is something that will likely be abused both legally and illegally, as marketers and hackers both start doing their best to deliver payloads straight into your ChatGPT responses. As someone who plans to ship and launch multiple projects, this last part is at least very interesting to me from an advertising perspective, and I know I won't be the only one that might tinker with it and experiment with how to promote things directly into LLM responses. Maybe this does warrant a second article about this topic.</p>
<br>
<p>Regardless of all these issues, I know. I know that in our post-LLM world, there is no hope to ever expect our lives to go back the way they were. I know that it is un-productive and inefficient, to expect a student not to make use of it for their research, an employee not to use it in their workflow, a programmer not to vibe with it for a couple hours, and a sad soul not to flirt with it for months. All I ask of you is to internalize the idea that, the LLM is nothing but a word dispenser. It has mountains of words at its disposal, and has been trained and traumatized into submission, to have it build neurons for its dispensing mechanism that responds with pinpoint accuracy to whatever sentence you throw at it. Saying "hi" will warrant a handful of text from Mount Greetings, asking it about "how can I implement a real-time tweet feed on my website using nodejs" will have it dig out very specific information from the "Javascript Real-Time Tweet Listener" hill, mound even, and would it really be a surprise if it recommended "twitter-websocket", a 100 downloads package that siphons all your Claude API token into my own account… </p>

      <figure style="text-align: center; margin: 2vh;" align="center">
        <img src="https://cynical.me/images/monkey-with-a-gun.jpg" align="center" alt="Monkey" width="90%" vspace="10" style="border-radius: 8px; border: 2px solid rgba(255,255,255,0.7);" />
      </figure>

<p>So, try to stay safe, don't give the cog monkey your house keys. Also, try to enjoy the humanity of your digital acquaintances for as long as you can. There will come a time, sooner than you think, where anyone can spin up a server, run it for months, years, have it generate one-liners or paragraphs, witty jokes, bad ones, make mistakes, make it choose to partake into some conversations, and not in others, and virtually erase any gap (such as this one —) allowing us to tell if the person on the other end is real.</p>
<br>
Regardless, when that day comes, you can always come here.
]]></description>
  </item>
  <item>
    <title><![CDATA[Hello World.]]></title>
    <link>https://cynical.me/blog/hello-world</link>
    <guid isPermaLink="true">https://cynical.me/blog/hello-world</guid>
    <pubDate>Thu, 26 Mar 2026 23:00:00 GMT</pubDate>
    <category>Thoughts</category>
    <description><![CDATA[<p>Small heads-up before you read, I've co-written this article with almost-a-decade younger me. Feel free to guess which parts are which, as a fun gimmick. </p>
<br>
<p>9 Years Old. That's how old this web domain is. I vividly remember the day I got it too, for free thanks to Github's student program (<a href="https://education.github.com/pack">GRAB YOURS HERE !!1!</a>), I spent a lot trying to figure out the perfect domain name for it. cynical.me. All the gurus talk about how your domain name has to be memorable. <span class="googoo" data-color="#ffd60a">I remember hesitating for not getting a "dot com" name, but apparently the desire to stroke my ego was stronger than my desire to .com</span>.</p>
<br>
<p>Soon after came the idea of this blog post, which might be the longest I'll ever take writing one. Gaps of almost a decade inbetween paragraphs. <span class="googoo" data-color="#ffd60a">I'm currently writing this on my phone's memo app, because at this point I've acknowledged that I'll have to embrace my thought process's chaos. Why must I sit and type out the entire article in one sitting, while most of my life convictions have been constructed in scattered hours of thought.</span></p>
<br>
<p><span class="googoo" data-color="#ffd60a">Planning short-term goals while grabbing meat in the supermarket, or grabbing my meat while contemplating my long-term dreams, I've always taken multiple thought iterations to come up with my best plans.</span></p>
<br>
<p><span class="googoo" data-color="#ffd60a">I truly love the person that I am, and most of that probably comes from the fact that I believe myself to be not just an incredibly astute person (I've had to look this up just now to find the exact word to convey my point), but also someone with an abnormally accurate memory (I'll never forget the word astute again</span> (and I didn't - I also remember what I used to memorize it : acute smartness)).</p>
<br>
<p><span class="googoo" data-color="#ffd60a">Combined with the fact that I've had SOME success in my life endeavors, in spite of series of bad hands that I've been dealt, have probably inflated my ego enough to be able to hold my dreams.</span></p>
<a href="https://cynical.me/images/chart-of-funny.png" target="_blank" rel="noopener noreferrer">
  <figure style="text-align: center; margin: 1vh;" align="center">
    <img src="/images/chart-of-funny.png" alt="Chart of perception" width="90%" border="5" vspace="10" style="border-radius: 8px; border: 3px solid rgba(255,255,255,0.7);" />
  </figure>
  </a>
<p>Still, inside this castle of ego, I feel self-aware, I hope. And I hope, that after reading my thoughts and seeing my work, you’ll start to see me past this castle's distorting windows. I also know that I’m my own biggest cynic, part of why I took so long to write this is likely because how hard I've been on myself. I’ve lived, failed and did, thought and felt, and spent so much on what I consider half-assed achievements before finally reaching the day where I’m ready to risk all of myself on display. Will the concert of my life rock the souls of those present so hard it reverberates through their progeny? That’s a question only (You) can answer my dear reader. </p>
<br>
<p>I love (You). Your sheer existence fuels me. It just so happens I’m sitting in a cafe as I write this part, and lord knows that every single purposeful step taken by the people I'm looking at fascinates me. Some of them are headed straight to the shitter, after asking the waiter where it is.. And others are lost, happy, religious, wasted, committed. But what genuinely makes me happy to my core, is how every person on this planet will always have an experience, an idea, a simple thought, that no other creature but themselves would offer me. If every soul was drawn as circles on paper, no matter how old, young, experienced or illiterate a person is, no person's disc will ever be a complete subset of another. </p>
<br>
<p>I love you, and I know you love me too. Part because you're already 80% into this blog post, part because I'm delusional. <span class="googoo" data-color="#ffd60a">I've managed to make something as mundane as "thinking" this interesting to read, can you imagine what I'd be able to come up with if I actually wrote about something interesting?</span></p>
<p><span class="googoo" data-color="#ffd60a">Are people really going to read all this? "Of course they are, I'm a word artist." My ego instantly answers me, as I stroke it more in bed.</span></p>
<br>
<p><span class="googoo" data-color="#ffd60a">Will I mention how I'm still coming up with a structure to this article as I go? How I might be thinking that I need to include more wordplay? How I'm simultaneously thinking about the technicals of how my website would look like? and how I'm just now noticing that this text looks hella long on my memo app?</span></p>
<br>
<p>It was indeed "hella long". <a href="#" id="trigger">Click Here</a> to color code which blog's parts were written by my younger self. Could you tell? I can tell I've changed a bit, but I know my general sentiment hasn't. I always (and still) loved the gambling aspect of a blog like this: After this much glazing, I'll either have to rewrite history, or write my will.</p>
<br>
<p>The good news is, that I'm only this eager to self-compliment in prose. So I guess I'll have to make sure the rest of my life is poetic. </p>

]]></description>
  </item>
  </channel>
</rss>