Style changes and new blog post
Some checks failed
Docker Deploy / build-and-push (push) Has been cancelled
Some checks failed
Docker Deploy / build-and-push (push) Has been cancelled
This commit is contained in:
@@ -41,7 +41,7 @@ const { slug } = post;
|
||||
post.data.tags && post.data.tags.length > 0 && (
|
||||
<div class="flex gap-2 flex-wrap mb-4 justify-center">
|
||||
{post.data.tags.map((tag: string) => (
|
||||
<div class="badge badge-primary">
|
||||
<div class="badge badge-primary font-bold text-base-100">
|
||||
<Icon name="mdi:tag" class="text-lg" />
|
||||
{tag}
|
||||
</div>
|
||||
|
||||
@@ -49,7 +49,7 @@ export default function ResumeDownloadButton({
|
||||
<button
|
||||
onClick={handleDownload}
|
||||
disabled={isLoading}
|
||||
class={`btn bg-primary rounded-full inline-flex items-center gap-2 text-sm sm:text-base ${className}`}
|
||||
class={`btn bg-primary text-base-100 font-bold rounded-full inline-flex items-center gap-2 text-sm sm:text-base ${className}`}
|
||||
>
|
||||
{isLoading ? (
|
||||
<>
|
||||
|
||||
@@ -162,7 +162,7 @@ export default function ResumeSettingsModal({
|
||||
{/* Floating Settings Button */}
|
||||
<button
|
||||
onClick={openModal}
|
||||
class={`fixed top-4 right-4 z-20 bg-secondary hover:bg-primary btn btn-circle ${className}`}
|
||||
class={`fixed top-4 right-4 z-20 bg-secondary text-base-100 hover:bg-primary btn btn-circle ${className}`}
|
||||
aria-label="Resume Settings"
|
||||
>
|
||||
<Settings class="text-lg" />
|
||||
@@ -175,7 +175,7 @@ export default function ResumeSettingsModal({
|
||||
<h3 class="font-bold text-lg">Resume Generator</h3>
|
||||
<button
|
||||
onClick={closeModal}
|
||||
class="btn btn-circle bg-secondary hover:bg-primary"
|
||||
class="btn btn-circle bg-secondary hover:bg-primary text-base-100"
|
||||
>
|
||||
<X className="text-lg" />
|
||||
</button>
|
||||
@@ -189,10 +189,10 @@ export default function ResumeSettingsModal({
|
||||
|
||||
{/* Action Buttons */}
|
||||
<div class="flex flex-wrap gap-2 mb-6">
|
||||
<button onClick={downloadTemplate} class="btn bg-primary btn-sm">
|
||||
<button onClick={downloadTemplate} class="btn bg-primary btn-sm font-bold text-base-100">
|
||||
Download Template
|
||||
</button>
|
||||
<button onClick={loadTemplate} class="btn bg-secondary btn-sm">
|
||||
<button onClick={loadTemplate} class="btn bg-secondary btn-sm font-bold text-base-100">
|
||||
Load Template in Editor
|
||||
</button>
|
||||
</div>
|
||||
@@ -205,20 +205,20 @@ export default function ResumeSettingsModal({
|
||||
>
|
||||
<button
|
||||
role="tab"
|
||||
class={`px-4 py-2 rounded-full text-sm transition-all duration-200 ${
|
||||
class={`px-4 py-2 rounded-full text-sm transition-all duration-200 font-bold ${
|
||||
activeTab === "upload"
|
||||
? "bg-primary font-bold text-primary-content shadow-sm"
|
||||
: "text-base-content/70 hover:text-base-content font-bold hover:bg-base-200"
|
||||
? "bg-primary shadow-sm text-base-100"
|
||||
: "text-base-content/70 hover:text-base-content hover:bg-base-200"
|
||||
}`}
|
||||
onClick={() => setActiveTab("upload")}
|
||||
>
|
||||
Upload File
|
||||
Upload TOML
|
||||
</button>
|
||||
<button
|
||||
role="tab"
|
||||
class={`px-4 py-2 rounded-full text-sm font-bold transition-all duration-200 ${
|
||||
activeTab === "edit"
|
||||
? "bg-primary text-primary-content shadow-sm"
|
||||
? "bg-primary font-bold text-base-100 shadow-sm"
|
||||
: "text-base-content/70 hover:text-base-content font-bold hover:bg-base-200"
|
||||
}`}
|
||||
onClick={() => setActiveTab("edit")}
|
||||
|
||||
@@ -29,7 +29,7 @@ export default function ScrollUpButton() {
|
||||
return (
|
||||
<button
|
||||
onClick={scrollToTop}
|
||||
class={`fixed bottom-4 right-4 z-20 bg-secondary hover:bg-primary
|
||||
class={`fixed bottom-4 right-4 z-20 bg-secondary hover:bg-primary text-base-100
|
||||
btn btn-circle transition-all duration-300
|
||||
${
|
||||
isVisible.value
|
||||
|
||||
@@ -9,21 +9,12 @@ I change what I use _constantly_ in order to find something that feels just
|
||||
right. I wanted to share them here and update them here so when someone asks, I
|
||||
can just point them to this article.
|
||||
|
||||
1. Sublime Text - Currently my favourite text editor. Fast, simple, and
|
||||
extensible. Just a joy to use!
|
||||
2. Sublime Merge - Honestly one of the fastest and best looking git GUIs around!
|
||||
Awesome for visualizing changes when you have larger code changes.
|
||||
3. Ghostty - A Zig based terminal emulator by one of the founders of Hashicorp.
|
||||
Runs great on MacOS and Linux. No windows for those who are into that.
|
||||
4. OrbStack - A faster alternative to Docker Desktop that also runs VMs!
|
||||
5. Bitwarden - An open-source password manager. Easy to self host with
|
||||
Vaultwarden and with the recent updates, it has SSH Agent support!
|
||||
6. iA Writer - A minimalist Markdown editor. For MacOS and Windows only, but
|
||||
really the MacOS version is the most mature. Awesome for focus.
|
||||
7. Dataflare - A simple but powerful cross-platform database client. Supports
|
||||
most common databases, including LibSQL which is rare!
|
||||
8. Bruno - A simple and powerful API client, similar to Postman. An critical
|
||||
tool to debug API endpoints.
|
||||
1. VSCodium - The joys of VSCode and its extension ecosystem, but without Microsoft's insane amount of tracking and AI slop
|
||||
3. Ghostty - A Zig based terminal emulator by one of the founders of Hashicorp. Runs great on MacOS and Linux. No windows for those who are into that.
|
||||
4. Bitwarden - An open-source password manager. Easy to self host with Vaultwarden and with the recent updates, it has SSH Agent support!
|
||||
5. iA Writer - A minimalist Markdown editor. For MacOS and Windows only, but really the MacOS version is the most mature. Awesome for focus.
|
||||
6. Dataflare - A simple but powerful cross-platform database client. Supports most common databases, including LibSQL which is rare!
|
||||
7. Bruno - A simple and powerful API client, similar to Postman. An critical tool to debug API endpoints.
|
||||
|
||||
I hope you found this helpful! This will be periodically updated to avoid
|
||||
outdated recommendations.
|
||||
outdated recommendations.
|
||||
30
src/content/posts/responsible-ai-use.md
Normal file
30
src/content/posts/responsible-ai-use.md
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
title: "'Responsible AI Use'"
|
||||
description: "A reflection on AI slop"
|
||||
pubDate: "2025-08-12"
|
||||
tags: ["ai", "opinion"]
|
||||
---
|
||||
|
||||
# Tl;dr
|
||||
|
||||
There is no such thing as responsible AI use. None. Zero. That's it. If you want more nuance, read on.
|
||||
|
||||
# Houston, we have a problem
|
||||
|
||||
Generative AI is cancer that grows ever stronger, and I've just about had enough. From people who have 0 creative abilities claiming the 15-fingered monstrosities they generate constitute "art" to the "developers" getting paid to vibe code, it's all pure insanity. No actual work was put into these creations. No real thought. No creativity. No soul. Just slightly more advanced autocomplete engine spitting out soul-less garbage we seem to collectively celebrate.
|
||||
|
||||
What confuses me about this whole thing is how the people using this have allowed their skills to atrophy, specifically developers. Any skill needs repetition to keep current and to maintain, and the same is true for programming. Vibe coding is an excellent way to prevent you from doing the things that actually grow your skillset: trial and error, reading docs, parsing stack traces, using a debugger, etc.
|
||||
|
||||
# Copywrong
|
||||
|
||||
And then there is, of course, the issue of intellectual property. We are all aware of the obvious ethical implications of a machine learning model trained on billions of copyrighted works being used to generate "new" without attribution or compensation to the original creators. But really, the entire legal framework around copyright, fair use, and ownership is imploding.
|
||||
|
||||
Artists, writers, musicians are actively having their livelihoods undermined by algorithms that take their work and compete against them. The very concept of originality is being eroded. Why would someone, other than being a generally good person, commission a painter when a "prompt engineer" can generate 100 variations in an hour? Why pay a writer when ChatGPT can generate blog posts in an instant? Human creation is losing its value.
|
||||
|
||||
# The Desecration of Creation
|
||||
|
||||
Proponents of GenAI will go on and on about "democratizing creativity" or "lowering the barrier to entry." All it's doing is flooding the market with slop, making it even harder for people who put hard work into developing their crafts to stand out. Ultimately, it's not about empowering more people to create; it's about empowering people to pretend they've created something, without any time, effort, and passion that real creation demands.
|
||||
|
||||
What we're doing is fostering a culture of instant gratification and superficiality. Why bother learning to draw when you can prompt MidJourney? Why spend years perfecting your craft when a model can spit out something "good enough"? This is not progress; it's intellectual laziness on a massive scale. We are actively choosing to outsource our most human qualities to machines, which is just outright shameful.
|
||||
|
||||
So, no. There is no responsible AI use. Not when its very foundation is built on the stolen work of skilled individuals and not when it devalues the very essence of human creativity.
|
||||
@@ -45,7 +45,7 @@ const { Content } = await post.render();
|
||||
</div>
|
||||
|
||||
{/* Back button */}
|
||||
<a href="/posts" class="btn btn-outline btn-primary btn-sm">
|
||||
<a href="/posts" class="btn btn-outline btn-primary btn-sm font-bold hover:text-base-100">
|
||||
<Icon name="mdi:arrow-left" class="text-lg" />
|
||||
Back
|
||||
</a>
|
||||
@@ -55,7 +55,7 @@ const { Content } = await post.render();
|
||||
post.data.tags && post.data.tags.length > 0 && (
|
||||
<div class="flex gap-2 flex-wrap mb-6">
|
||||
{post.data.tags.map((tag: string) => (
|
||||
<div class="badge badge-primary">
|
||||
<div class="badge badge-primary font-bold text-base-100">
|
||||
<Icon name="mdi:tag" class="text-lg" />
|
||||
{tag}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user