diff --git a/pages/about.md b/pages/about.md index b9e7966..c4fd809 100644 --- a/pages/about.md +++ b/pages/about.md @@ -1,14 +1,22 @@ --- -## About Jason Poage / My Journey +title: "My Journey" +created: "2025-06-18" +date: "2025-06-18" +slug: "about-me" +published: true +layout: "page" +# tags: --- -### Introduction & Professional Summary +# About Jason Poage / My Journey + +## Introduction & Professional Summary Hello! I'm **Jason Poage**, a passionate and self-driven **software developer** based in Panama City, Florida. My journey into programming began at age 12, sparking a lifelong dedication to understanding complex systems and building robust solutions. I possess a strong foundation in **backend development, web technologies, and Linux systems**, and I'm adept at handling frontend work to deliver comprehensive web applications. I'm constantly exploring new ways to enhance efficiency and create impactful tools. --- -### The Early Spark & Foundational Skills +## The Early Spark & Foundational Skills My fascination with technology began early. By age 12, I was already diving into **HTML, CSS, and JavaScript**, quickly expanding my skillset to include **PHP and MySQL**. In high school, I completed an entire web design course in just two weeks, spending the rest of the year assisting classmates and pursuing personal coding projects. This early self-driven approach laid the groundwork for my continuous learning journey. @@ -16,7 +24,7 @@ --- -### Deep Dive into Systems & Linux Proficiency +## Deep Dive into Systems & Linux Proficiency My technical curiosity extends deeply into operating systems and system administration. I've been actively using and exploring **Linux since age 16**, gaining **extensive practical experience** with various distributions including **Fedora, Debian, Arch Linux, Gentoo, Slackware, Ubuntu, and most recently, NixOS**. My **strong understanding** spans critical areas such as **file systems (Btrfs, Ext4), file permissions, logical volume management, PAM, Kerberos, SSSD, and Access Control Lists (ACLs)**. I'm also **highly proficient with Git** for version control. @@ -26,7 +34,7 @@ --- -### Beyond the Keyboard: Problem-Solving and Collaboration +## Beyond the Keyboard: Problem-Solving and Collaboration My passion for technology extends beyond writing code; I'm equally driven by the challenge of solving problems, improving processes, and fostering effective collaboration. These are values I've consistently brought to my academic and personal projects. @@ -38,7 +46,7 @@ --- -### Educational Journey & Continuous Learning +## Educational Journey & Continuous Learning My academic path has evolved with my passion for technology. While I initially earned an **Associate in Arts (AA) degree** with a focus on business, preparing me for an accounting program I ultimately chose not to pursue, my true calling in computer science became clear. @@ -46,7 +54,7 @@ --- -### Connecting & Contact +## Connecting & Contact I'm always open to discussing new projects, sharing insights, or exploring collaboration opportunities. Feel free to connect with me through my contact page or reach out via my professional social media: diff --git a/pages/projects.md b/pages/projects.md index c10b6b2..d9cb43e 100644 --- a/pages/projects.md +++ b/pages/projects.md @@ -1,3 +1,13 @@ +--- +title: "My Journey" +created: "2025-06-19" +date: "2025-06-19" +slug: "projects" +published: false +layout: "page" +# tags: +--- + # My Projects Here you'll find a selection of my personal and academic projects, showcasing my skills in backend development, web technologies, and system administration. Each project represents a unique challenge and an opportunity to build robust, efficient, and user-centric solutions. diff --git a/pages/tools.md b/pages/tools.md index 3334858..0d07ce0 100644 --- a/pages/tools.md +++ b/pages/tools.md @@ -1,3 +1,13 @@ +--- +title: "My Developer Toolkit" +created: "2025-06-19" +date: "2025-06-19" +slug: "about-me" +published: true +layout: "page" +# tags: +--- + # My Developer Toolkit Welcome to my digital workbench. This page offers a glimpse into the essential tools and technologies that power my daily work, from crafting robust backend systems to fine-tuning frontend experiences and navigating the depths of Linux. My philosophy is to choose the right tool for the job, prioritizing efficiency, reliability, and the joy of building. diff --git a/posts/2025/06/02-fzf-with-fd-and-beyond.md b/posts/2025/06/02-fzf-with-fd-and-beyond.md new file mode 100644 index 0000000..4c2a3ed --- /dev/null +++ b/posts/2025/06/02-fzf-with-fd-and-beyond.md @@ -0,0 +1,107 @@ +--- +title: "fzf with fd—and Beyond" +date: "2025-06-25" +slug: "fzf-with-fd-and-beyond" +published: true +layout: "blog-post" +tags: + - fzf + - fd + - command-line + - linux + - productivity + - shell + - unix + - tools +--- + +# Why You Might Use `fzf` with `fd`—and Beyond + +At first glance, `fzf` looks like a simple fuzzy finder for your terminal. You type part of a string, and it finds the best matches in a list. That alone is powerful—but not enough. To use `fzf` effectively, you need to feed it good data. That’s where tools like `fd` come in. + +## The Role of `fd`: Clean Input for Better Output + +`fd` is a modern replacement for `find`. It's faster, more intuitive, and designed to work well with other command-line tools. While `fzf` handles fuzzy selection, `fd` generates the list of items you can select from. This separation of concerns is critical. + +Compare: + +```bash +fzf +``` + +This opens `fzf` with no input. It waits for something to search. You can type, but it does nothing useful. + +Now: + +```bash +fd . | fzf +``` + +`fd` recursively lists all files from the current directory. `fzf` then allows you to quickly pick the one you want. Together, they create an interactive file navigation system that’s faster and more flexible than a GUI. + +## Real World: Beyond File Navigation + +The power of `fzf` extends far beyond picking files: + +### 1. **Git Workflow Enhancement** + +```bash +git checkout $(git branch | fzf) +``` + +Quickly switch branches without remembering exact names. + +### 2. **Command History Search** + +```bash +history | fzf +``` + +Find a previously used command without paging through history. + +### 3. **Process Management** + +```bash +ps aux | fzf | awk '{print $2}' | xargs kill +``` + +Fuzzy-select a process to kill without manually finding the PID. + +### 4. **SSH Host Selection** + +```bash +cat ~/.ssh/known_hosts | cut -d',' -f1 | fzf | xargs ssh +``` + +Choose a remote host to connect to from your known SSH entries. + +### 5. **Running Scripts** + +```bash +ls ~/scripts | fzf | xargs -I{} bash ~/scripts/{} +``` + +Select a script to execute from a collection. + +### 6. **Systemd Service Control** + +```bash +systemctl list-units --type=service --all | fzf | awk '{print $1}' | xargs systemctl restart +``` + +Interactively restart a systemd service. + +## Why Pairing Matters + +`fzf` alone is an interface. What makes it useful is your data source. The better your source list, the more powerful your workflow. `fd`, `git`, `ps`, `ls`, `systemctl`, and even `cat` can be used as upstream providers to create dynamic, contextual interfaces with minimal overhead. + +Use `fzf` as a control mechanism: a selector for lists you define. Then pipe the output into whatever action you want to take. + +## Summary + +- `fzf` is a universal interface for selecting from a list. +- `fd` is a fast, modern file generator—perfect as input to `fzf`. +- The pairing allows efficient, focused file management. +- Outside of files, `fzf` improves speed, clarity, and precision in virtually every shell task involving lists. + +If you ever find yourself repeating grep or `cat` into `awk` to get a list just to copy and paste something—consider using `fzf` instead. diff --git a/posts/2025/06/25-why-i-dont-use-wordpress.md b/posts/2025/06/25-why-i-dont-use-wordpress.md new file mode 100644 index 0000000..ac1bc76 --- /dev/null +++ b/posts/2025/06/25-why-i-dont-use-wordpress.md @@ -0,0 +1,36 @@ +--- +title: "Why I Don’t Use CMS Platforms Like WordPress for My Site" +date: "2025-06-25" +slug: "why-i-dont-use-wordpress" +published: true +layout: "blog-post" +tags: + - nodejs + - cms +# customScript: "init-gallery.js" +# access: "authenticated" +--- + +# Why I Don’t Use CMS Platforms Like WordPress for My Site + +When I started planning my personal website, one of the first decisions I made was to avoid traditional content management systems like WordPress, Joomla, or Drupal. While these platforms are widely used and well-supported, they weren’t the right fit for what I needed. My site isn’t meant to be flashy, constantly changing, or dependent on third-party plug-ins. It’s meant to be simple, fast, minimal, and under my complete control. + +## Simplicity Over Features + +WordPress offers a lot, but most of it isn’t necessary for me. I don’t need drag-and-drop builders, theme marketplaces, or a plugin for every small function. What I need is a static site with clean content, fast load times, and minimal attack surface. WordPress does too much for what I’m trying to do, and in doing so, it adds complexity I don't want to manage. + +## Full Control + +CMS platforms lock you into their ecosystem. Even with open-source systems like WordPress, you're working within their assumptions: how content is structured, how themes are applied, how updates are handled. I prefer writing and structuring my content manually, using the tools I’m comfortable with. That means I can customize every part of the site without fighting with a backend UI or PHP template system. + +## Security and Overhead + +WordPress has a massive attack surface. Its popularity and plugin architecture make it a constant target for exploits. I don’t want to spend time managing updates, patching vulnerabilities, or setting up firewalls for something as simple as a blog. A static site generated with tools I trust and hosted on a minimal server architecture is harder to compromise and easier to audit. + +## Portability and Longevity + +I write my content in plain text. It lives in Git. That means it's portable, version-controlled, and completely separated from any proprietary format or CMS schema. If I want to change how the site works, I change the generator or templates—not the content. If I want to move hosts, I push to a new server. No database exports, no admin panels. + +## Conclusion + +WordPress is useful if you're building a site for someone who needs a UI to manage posts, or if you're spinning up something fast with non-technical collaborators. That’s not me. I don’t need a CMS. I need a site that stays out of the way and gives me exactly what I ask for—nothing more. diff --git a/posts/2025/06/fzf-with-fd-and-beyond.md b/posts/2025/06/fzf-with-fd-and-beyond.md deleted file mode 100644 index 67d7840..0000000 --- a/posts/2025/06/fzf-with-fd-and-beyond.md +++ /dev/null @@ -1,90 +0,0 @@ -# Why You Might Use `fzf` with `fd`—and Beyond - -At first glance, `fzf` looks like a simple fuzzy finder for your terminal. You type part of a string, and it finds the best matches in a list. That alone is powerful—but not enough. To use `fzf` effectively, you need to feed it good data. That’s where tools like `fd` come in. - -## The Role of `fd`: Clean Input for Better Output - -`fd` is a modern replacement for `find`. It's faster, more intuitive, and designed to work well with other command-line tools. While `fzf` handles fuzzy selection, `fd` generates the list of items you can select from. This separation of concerns is critical. - -Compare: - -```bash -fzf -```` - -This opens `fzf` with no input. It waits for something to search. You can type, but it does nothing useful. - -Now: - -```bash -fd . | fzf -``` - -`fd` recursively lists all files from the current directory. `fzf` then allows you to quickly pick the one you want. Together, they create an interactive file navigation system that’s faster and more flexible than a GUI. - -## Real World: Beyond File Navigation - -The power of `fzf` extends far beyond picking files: - -### 1. **Git Workflow Enhancement** - -```bash -git checkout $(git branch | fzf) -``` - -Quickly switch branches without remembering exact names. - -### 2. **Command History Search** - -```bash -history | fzf -``` - -Find a previously used command without paging through history. - -### 3. **Process Management** - -```bash -ps aux | fzf | awk '{print $2}' | xargs kill -``` - -Fuzzy-select a process to kill without manually finding the PID. - -### 4. **SSH Host Selection** - -```bash -cat ~/.ssh/known_hosts | cut -d',' -f1 | fzf | xargs ssh -``` - -Choose a remote host to connect to from your known SSH entries. - -### 5. **Running Scripts** - -```bash -ls ~/scripts | fzf | xargs -I{} bash ~/scripts/{} -``` - -Select a script to execute from a collection. - -### 6. **Systemd Service Control** - -```bash -systemctl list-units --type=service --all | fzf | awk '{print $1}' | xargs systemctl restart -``` - -Interactively restart a systemd service. - -## Why Pairing Matters - -`fzf` alone is an interface. What makes it useful is your data source. The better your source list, the more powerful your workflow. `fd`, `git`, `ps`, `ls`, `systemctl`, and even `cat` can be used as upstream providers to create dynamic, contextual interfaces with minimal overhead. - -Use `fzf` as a control mechanism: a selector for lists you define. Then pipe the output into whatever action you want to take. - -## Summary - -* `fzf` is a universal interface for selecting from a list. -* `fd` is a fast, modern file generator—perfect as input to `fzf`. -* The pairing allows efficient, focused file management. -* Outside of files, `fzf` improves speed, clarity, and precision in virtually every shell task involving lists. - -If you ever find yourself repeating grep or `cat` into `awk` to get a list just to copy and paste something—consider using `fzf` instead.