diff options
| author | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2026-06-11 12:40:51 -0500 |
|---|---|---|
| committer | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2026-06-11 12:40:51 -0500 |
| commit | 8d17a31bd701d7b9c90c546b29f3bf9ffa4cc41f (patch) | |
| tree | b76361859df0b9dec2517ac8aa9b5671292592b9 | |
| parent | 3c1846a179cc7f7630efb2d1a85018f2be680b9c (diff) | |
changes to article structure, wrote about ai
| -rw-r--r-- | article.js (renamed from toc.js) | 6 | ||||
| -rw-r--r-- | forgejno.html | 16 | ||||
| -rw-r--r-- | no_ai.html | 30 | ||||
| -rw-r--r-- | prose.css | 1 | ||||
| -rw-r--r-- | soplt.html | 19 | ||||
| -rw-r--r-- | style.css | 2 | ||||
| -rw-r--r-- | writing.html | 1 |
7 files changed, 54 insertions, 21 deletions
@@ -1,4 +1,4 @@ -document.addEventListener("DOMContentLoaded", () => { +function addTOC() { var tocDiv = document.createElement("div"); tocDiv.classList += "toc"; var toc = document.createElement("ul"); @@ -46,4 +46,8 @@ document.addEventListener("DOMContentLoaded", () => { } `; document.head.append(styleBlock); +} + +document.addEventListener("DOMContentLoaded", () => { + addTOC() })
\ No newline at end of file diff --git a/forgejno.html b/forgejno.html index e84d1a2..a8a970c 100644 --- a/forgejno.html +++ b/forgejno.html @@ -1,19 +1,15 @@ <!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="UTF-8"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> +<html> + <head> <title>You don't need Forgejo</title> - - <link rel="stylesheet" href="style.css"> <link rel="stylesheet" href="prose.css"> - <script src="toc.js"></script> + <script src="article.js"></script> </head> <body> <div class="content"> - <h1 id="title">You Don't Need Forgejo</h1> + <h1 id="title">You don't need Forgejo</h1> <p class="comment">published May 3, 2026</p> - <hr> + <hr> <p><a href="https://mitchellh.com/writing/ghostty-leaving-github">People</a> <a href="https://vinyl-cache.org/organization/moving.html">ditching</a> @@ -63,7 +59,7 @@ </ol> <h3 id="cfg-caddy">Caddy</h3> - <p>To complete the set up, add this block to the Caddyfile to serve cgit.</p> + <p>To complete the setup, add this block to the Caddyfile to serve cgit.</p> <pre><code>git.my.tld { @assets path /cgit.css /cgit.js /favicon.svg /robots.txt handle @assets { diff --git a/no_ai.html b/no_ai.html new file mode 100644 index 0000000..3a4cabe --- /dev/null +++ b/no_ai.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<html> +<head> + <title>Taking a break</title> + <link rel="stylesheet" href="prose.css"> + <script src="article.js"></script> +</head> +<body> + <div class="content"> + <p>Prolonged access to LLMs is making me stupid. I can't code as fluently as I used to. (and I'm <a href="https://larsfaye.com/articles/agentic-coding-is-a-trap">not</a> the only one)</p> + <p> + I experienced the drunkening power from the speed at which development is possible with Claude Code (I built an Emacs clone in a day; it was amazing). + But when the tokens ran out, I felt the overwhelming discomfort of not having Claude's help when starting a new project. That feeling was a wakeup call. + </p> + <p> + At heart, I am a programmer. Not a manager, and not the CEO of a multi-million dollar corperation. I don't require ultimate productivity and perfection. + To me, what matters most is familiarity with the tools and techniques (languages, libraries, frameworks), and bossing around agents all day does not give me those skils. + </p> + + <h2 id="not">What this isn't</h2> + <p>I don't hate LLMs. In fact, I still see them a very impressive tool! I love to see people building awesome things, and I think AI empowers more builders than any other piece of technology. I'm not <a href="https://www.antirez.com/news/158">"falling for the anti-AI hype"</a></p> + <p>People who believe that AI is the right tool for their workflow should keep using it. And who knows? Maybe I'll continue vibecoding in the future. I just don't think AI is the right tool for me, for now.</p> + + <h2 id="goals">Taking a Break</h2> + <p>So I'm taking a break. I'm uninstalling OpenCode and Pihole-ing ChatGPT. My <a href="./soplt.html">programming language project</a> this summer will be 0% vibecoded.</p> + <p>Is it a good idea? I don't even know. How long will it last? I'm not really sure.</p> + <p>All I know is that I never want to feel out of place without the help of an LLM ever again. And hopefully this is one way of achieving that.</p> + </div> +</body> +</html>
\ No newline at end of file @@ -1,4 +1,5 @@ @import url('https://fonts.googleapis.com/css2?family=Gelasio:ital,wght@0,400..700;1,400..700&display=swap'); +@import url('style.css'); .content { width: 100%; @@ -1,13 +1,9 @@ <!DOCTYPE html> -<html lang="en"> +<html> <head> - <meta charset="UTF-8"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Summer of PLT</title> - - <link rel="stylesheet" href="style.css"> <link rel="stylesheet" href="prose.css"> - <script src="toc.js"></script> + <script src="article.js"></script> </head> <body> <div class="content"> @@ -18,15 +14,16 @@ <p>Looking for a summer coding project? Try making a programming language!</p> <p>I think that every programmer, new or experienced, could benefit from understanding a little bit about how the languages they use daily actually work.</p> <p>As such, this is my collection of resources that I used to teach myself a little bit of Programming Language Theory last summer, which concluded in my creation of <a href="https://github.com/bluedragon1221/ci">CI lisp</a>.</p> - <p>I'm planning on doing something similar this summer, so I figured I'd invite other people to try a 'Summer of PLT' too.</p> + <p>I'm planning on doing something similar this summer, so I figured I'd invite other people to try a 'Summer of PLT' too.</p> <p class="comment">Disclaimer: I'm just a guy with no formal education in PLT. Like <a href="https://danilafe.com/blog/i_love_programming_languages">Daniel Fedorin said</a>, I just <em>love the field of programming languages</em>.</p> <h2 id="read">Read a Book</h2> <p> - If you're new to the field of programming languages, my first piece of advice is READ CRAFTING INTERPRETERS! + If you're new to the field of programming languages, my first piece of advice is to read Crafting Interpreters! <span style="color: #666">(or at least the first section, "A Treewalking Interpreter")</span> In my opinion, there is no better way to break into the field of PLT than by reading Bob Nystrom's book on the subject: <a href="https://craftinginterpreters.com">Crafting Interpreters</a>. - There's also a free HTML version on his site if you don't feel like paying money.</p> + There's also a free HTML version on his site if you don't feel like paying money. + </p> <p>After that, I would suggest looking into Lisp.</p> @@ -38,9 +35,10 @@ <p class="comment">Alternatively, you could consider going down the Emacs rabbit hole to teach yourself lisp. In the Emacs environment, you'll quickly gain proficiency with the parentheses, but you'll probably lose at least a few weeks in the process.</p> <p>Theory-wise, I would recommend reading the original John McCarthy Lisp paper (be prepared for dense academic writing though): <a href="https://www.cs.tufts.edu/~nr/cs257/archive/john-mccarthy/recursive.pdf">Recursive Functions of Symbolic Expressions and Their Computation by Machine</a>.</p> + <p>Additionally, many suggest the book <a href="https://mitp-content-server.mit.edu/books/content/sectbyfn/books_pres_0/6515/sicp.zip/index.html">Structure and Interpretation of Computer Programs</a>, which also includes some </p> + <p>The C2 lisp rant is also a fun read (but by no means required): <a href="https://wiki.c2.com/?LostInaSeaofParentheses">Lost Ina Seaof Parentheses</a>.</p> - <p>If you want more of a guided, handhold-y tutorial for making a lisp clone, I can only recommend <a href="https://github.com/kanaka/mal">mal - Make a Lisp</a>. I personally have not gone through it, but I've heard good things.</p> <p class="comment">Alternatively, ask an LLM to help you learn how programming languages work. Just make sure that you're actually learning, not just copying whatever it says to do. Try something like "Don't give me any code, just explain to me..."</p> @@ -58,6 +56,7 @@ <h3 id="monads">Monadic IO</h3> <p>Also on the theory-heavy side, you could learn about Haskell's system for safe IO operations which use monads.</p> <p>This paper on the subject (discovered on the Haskell wiki) is a pretty dense, but has all of the foundational ideas for Monadic IO in Haskell: <a href="https://web.archive.org/web/20140303101716/http://www-fp.dcs.st-and.ac.uk/~kh/papers/io-tutorial/io-tutorial.html">Monadic I/O in Haskell 1.3</a>.</p> + <p>The foundational ideas of Monads are well explained in <a href="https://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf">Monads for functional programming</a> by Phillip Wadler. I found this paper easier to understand than the prior one, and it gives you a great intuition for <em>why</em> Monads are cool. Definitely read this one!</p> <h3 id="sugar">Syntactic Sugar</h3> <p> @@ -16,6 +16,8 @@ body { justify-content: center; align-items: flex-start; padding-top: 2rem; + padding-left: 2rem; + padding-right: 2rem; } h1 { diff --git a/writing.html b/writing.html index bceef66..ec1fe51 100644 --- a/writing.html +++ b/writing.html @@ -22,6 +22,7 @@ <div class="content"> <h1>My Writing</h1> <ul> + <li><p><a href="./no_ai.html">Taking a Break</a></p></li> <li><p><a href="./soplt.html">Summer of PLT</a></p></li> <li><p><a href="./forgejno.html">You Don't Need Forgejo</a></p></li> </ul> |
