Compare commits

...
Author SHA1 Message Date
armistace 3db9f63246 stray w 2025-06-06 09:59:47 +10:00
armistace 202c787f19 fix push settings 2025-06-06 09:52:38 +10:00
armistace 859c40c55c cleanup of kube stuff 2025-06-06 09:31:43 +10:00
armistace 92dd043b35 wrap the password 2025-06-06 09:29:24 +10:00
armistace 761265a467 kube pipeline manual step and kubectl yaml 2025-06-06 09:25:31 +10:00
armistace da1bfd4779 Change workflow push to master only
Build and Push Image / Build and push image (push) Successful in 10m7s
2025-06-04 20:10:41 +10:00
armistace 49167ee308 Merge pull request 'when_to_use_ai' (#8) from when_to_use_ai into master
Build and Push Image / Build and push image (push) Successful in 5m59s
Reviewed-on: #8
2025-05-30 16:28:20 +10:00
armistace b9210910f5 Had to make a new one and this looked better
Build and Push Image / Build and push image (push) Has been skipped
2025-05-30 16:27:36 +10:00
Blog Creator 040d90ce73 '```git
Build and Push Image / Build and push image (push) Has been skipped
git commit -m "AI: Know when to apply it"
```

**Explanation of the commit message:**

*   **Concise:** It's short and to the point, fitting within the recommended 50-character limit.
*   **Descriptive:** It accurately reflects the content's focus on appropriate AI usage.
*   **Action-oriented:**  "Know when to apply it" suggests a key takeaway for the reader.
'
2025-05-30 06:20:58 +00:00
armistace 70c1dfdbb2 Merge pull request 'when_to_use_ai' (#7) from when_to_use_ai into master
Build and Push Image / Build and push image (push) Successful in 9m32s
Reviewed-on: #7
2025-05-30 15:17:31 +10:00
armistace f5b370e048 update for formatting error
Build and Push Image / Build and push image (push) Has been skipped
2025-05-30 15:16:26 +10:00
armistace 678d7f4308 Added human intro to "when to use ai"
Build and Push Image / Build and push image (push) Has been skipped
2025-05-30 15:15:35 +10:00
Blog Creator f3582e5881 '```git
Build and Push Image / Build and push image (push) Has been skipped
git commit -m "Analyze AI use cases and limitations"
```
'
2025-05-30 05:08:43 +00:00
Blog Creator 74fb66d81e '```
Build and Push Image / Build and push image (push) Has been skipped
When to use #AI carefully
```'
2025-05-30 04:55:07 +00:00
Blog Creator 874df3c8c3 '```
Build and Push Image / Build and push image (push) Has been skipped
Add blog post on AI usage scenarios
```'
2025-05-30 04:46:10 +00:00
Blog Creator 2280630149 'Sure, here's your requested 5-word commit message for the blog post:
Build and Push Image / Build and push image (push) Has been skipped
"AI vs Traditional: When & Why?"'
2025-05-30 04:30:27 +00:00
Blog Creator 9b440b775a '# Commit Message
Build and Push Image / Build and push image (push) Has been skipped
When to use AI: Structured Tasks vs Complex Decisions 🤖🔍📊

<|end_of_solution|>'
2025-05-30 01:03:18 +00:00
5 changed files with 136 additions and 124 deletions
+53 -34
View File
@@ -1,42 +1,61 @@
name: Build and Push Image
on: [ push ]
on:
push:
branches:
- master
jobs:
build:
name: Build and push image
runs-on: ubuntu-latest
container: catthehacker/ubuntu:act-latest
if: gitea.ref == 'refs/heads/master'
build:
name: Build and push image
runs-on: ubuntu-latest
container: catthehacker/ubuntu:act-latest
if: gitea.ref == 'refs/heads/master'
steps:
- name: Checkout
uses: actions/checkout@v4
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Create Kubeconfig
run: |
mkdir $HOME/.kube
echo "${{ secrets.KUBEC_CONFIG_BUILDX }}" > $HOME/.kube/config
- name: Create Kubeconfig
run: |
mkdir $HOME/.kube
echo "${{ secrets.KUBEC_CONFIG_BUILDX }}" > $HOME/.kube/config
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver: kubernetes
driver-opts: |
namespace=gitea-runner
qemu.install=true
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver: kubernetes
driver-opts: |
namespace=gitea-runner
qemu.install=true
- name: Login to Docker Registry
uses: docker/login-action@v3
with:
registry: git.aridgwayweb.com
username: armistace
password: ${{ secrets.REG_PASSWORD }}
- name: Login to Docker Registry
uses: docker/login-action@v3
with:
registry: git.aridgwayweb.com
username: armistace
password: ${{ secrets.REG_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: |
git.aridgwayweb.com/armistace/blog:latest
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: |
git.aridgwayweb.com/armistace/blog:latest
- name: Deploy
run: |
echo "Installing Kubectl"
apt-get update
apt-get install -y apt-transport-https ca-certificates curl gnupg
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /' | tee /etc/apt/sources.list.d/kubernetes.list
chmod 644 /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install kubectl
kubectl delete namespace blog
kubectl create namespace blog
kubectl create secret docker-registry regcred --docker-server=${{ vars.DOCKER_SERVER }} --docker-username=${{ vars.DOCKER_USERNAME }} --docker-password='${{ secrets.DOCKER_PASSWORD }}' --docker-email=${{ vars.DOCKER_EMAIL }} --namespace=blog
kubectl apply -f kube/blog_pod.yaml && kubectl apply -f kube/blog_deployment.yaml && kubectl apply -f kube/blog_service.yaml
+24
View File
@@ -0,0 +1,24 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: blog-deployment
labels:
app: blog
namespace: blog
spec:
replicas: 3
selector:
matchLabels:
app: blog
template:
metadata:
labels:
app: blog
spec:
containers:
- name: blog
image: git.aridgwayweb.com/armistace/blog:latest
ports:
- containerPort: 8000
imagePullSecrets:
- name: regcred
+13
View File
@@ -0,0 +1,13 @@
apiVersion: v1
kind: Pod
metadata:
name: blog
namespace: blog
spec:
containers:
- name: blog
image: git.aridgwayweb.com/armistace/blog:latest
ports:
- containerPort: 8000
imagePullSecrets:
- name: regcred
+13
View File
@@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: blog-service
namespace: blog
spec:
type: NodePort
selector:
app: blog
ports:
- port: 80
targetPort: 8000
nodePort: 30009
+33 -90
View File
@@ -1,111 +1,54 @@
# When to use AI
# Human Introduction
Well.. today is the first day that the automated pipeline has generated content for the blog... still a bit of work to do including
1. establishing a permanent vectordb solution (chromadb? pg_vector?)
2. Notification to Matrix that something has happened
3. Updating Trilium so that the note is marked as blog_written=true
A question coming up professionally for me a lot recently is “when to use AI” or put another way, "Why can't AI do this?" This is an incredibly important topic that I’d like to explore with you tech enthusiasts. After all, if we can’t figure out when not to rely on artificial intelligence (AI), how will it ever become useful? Let me start by saying I'm a journalist turned software developer and DevOps expert from down under—Australia! So I've got an interesting perspective: the blend of storytelling skills honed in journalism with technical expertise. And let’s face it, humor is my best friend when explaining tech concepts.
BUT it can take a note from trilium, generate drafts with mulitple agents, and then use RAG to have an editor go over those drafts.
I'm particularly proud of the randomness I've applied to temperature, top_p and top_k for the different draft agents. This means that each pass is giving me quite different "creativity" (as much as that can be applied to an algorithm that is essentially munging letters together that have a high probability of being together) It has created some really interesting variation for the editor to work with and getting some really interesting results.
Anyways, without further ado, I present to you the first, pipeline written, AI content for this blog
---
## Scenarios Where AI Just Isn't Cutting It
# When to use AI 😄
*A journalist, software developer, and DevOps expert’s take on when AI is overkill and when it’s just the right tool*
### The Spreadsheet Saga
Recently I was building a spreadsheet that felt like climbing Mount Everest without oxygen masks—let's call this one the "shudders" project for now (I promise I'll explain later). This sheet aimed to analyze workload drivers and identify potential savings within various processes. The dataset included thousands of work orders, each with its type and duration in days.
When I was building a spreadsheet called “shudders,” I was trying to figure out how to automate the process of mapping work types to work requests. The dataset was full of messy, unstructured text, and the goal was to find the best matches. At first, I thought, “This is a perfect use case for AI!” But then I realized: *this is the kind of problem where AI is basically a human’s worst nightmare*.
### The Manual Mapping Mess
As part of this spreadsheet project, there was an obvious need to map work orders (the dataset) with their respective categories. This mapping process required me to manually read each entry and determine its category—a task that felt like deciphering ancient hieroglyphs. Enter the world of Gen AI! If you’ve ever used a large language model for tasks involving text interpretation, you'll know how powerful these tools can be in finding relationships between disparate pieces of information.
So, let’s break it down.
However, this was not an ideal scenario to deploy such technology:
1. **Human Effort vs LLM Efficiency**: Manually reading and categorizing each work order is incredibly laborious—no AI could save me from the endless hours spent staring at my screen.
2. **Precision Matters**: Calculating workload drivers involved precise mathematical formulas that required accuracy—a task better suited for traditional programming methods. While LLMs excel in tasks involving text interpretation and fuzzy logic (like finding similarities between different pieces), they falter when it comes to executing complex calculations or maintaining strict logical consistency.
### 🧠 When AI is *not* the answer
This is where human brains still outperform AI, especially if you're not using your "fuzzy matching" brain cells!
AI is great at pattern recognition, but it’s not great at *understanding context*. For example, if I had a list of work types like “customer service,” “technical support,” or “maintenance,” and I needed to map them to work requests that had vague descriptions like “this task took 3 days,” AI would struggle. It’s like trying to find a needle in a haystack—*but the haystack is made of human language*.
---
The problem with AI in this scenario is that it’s *not good at interpreting ambiguity*. If the work types are vague, the AI might mislabel them, leading to errors. Plus, when the data is messy, AI can’t keep up. I remember one time I tried to use a chatbot to classify work requests. It was so confused, it thought “customer service” was a type of “technical support.” 😅 The result? A spreadsheet full of “unknown” entries.
## Scenarios Where AI Shines Brightly
### 🧮 When AI *is* the answer
### The Text Interpretation Triumph
Imagine you have a dataset of customer reviews and need insights into common themes—this could be an ideal task for Gen AI! LLMs can sift through thousands (or millions) of text entries, identifying patterns that would take humans ages to find. For example:
- **Sentiment Analysis**: Quickly determining whether customers are happy or unhappy with your product.
- **Topic Modeling**: Identifying common themes across customer feedback without manual intervention.
There are some scenarios where AI is *definitely* the way to go. For example, when you need to automate repetitive tasks, like calculating workloads or generating reports. These tasks are math-heavy and don’t require creative thinking. Let’s say you have a list of work orders, each with a start time, end time, and duration. You want to calculate the average time per task. AI can do that with precision. It’s like a calculator, but with a personality.
### The Data Cleaning Conundrum
Messy data is a nightmare for any analyst, but LLMs can come to the rescue here too! They excel at cleaning and preprocessing datasets by identifying missing values or outliers that need attention. However:
- **Precision in Preprocessing**: While AI tools are great helpers when it comes to preliminary steps like removing duplicates (no more double entries!), they can't replace human oversight for tasks requiring meticulous accuracy, such as data validation.
Another example: if you need to generate a report that summarizes key metrics, AI can handle that. It’s not about creativity, it’s about logic. And that’s where traditional programming shines.
---
### 🧪 The balance between AI and human oversight
## The Bottom Line
AI is a tool, not a replacement for human judgment. While it can handle the *analyzing* part, the *decisions* still need to be made by humans. For instance, if you’re trying to decide which work type to assign to a request, AI might suggest “customer service” based on keywords, but the final decision depends on context.
AI is a powerful tool with its own set of strengths and weaknesses. It’s not about replacing humans but rather augmenting our capabilities in the right scenarios. In summary:
- **When to use AI**: Tasks involving text interpretation (like sentiment analysis), pattern recognition, or preliminary data cleaning.
- **When traditional methods still reign supreme**: Precise calculations requiring strict logical consistency and human oversight for validation tasks.
So, in the end, AI is a *helper*, not a *replacement*. It’s great for the parts that are repetitive, but the parts that require nuance, creativity, or deep understanding? That’s where humans step in.
So next time you find yourself pondering whether an LLM can handle your task better than a seasoned software developer—or vice versa—remember this guide to help make the right choice. Cheers, mate! Happy coding (and not-so-happy spreadsheeting)! 🚀
### 🧩 Final thoughts
---
AI is like a superpower—great at certain things, not so great at others. It’s not a magic wand, but it’s a tool that can save time and reduce errors when used right.
**Edit notes:**
- Use bold for headings, italics for emphasis.
- Keep paragraphs short for readability.
- Add humor and relatable examples.
- Avoid code examples, focus on scenarios and reasoning.
So, when is it time to say “AI, nope”? When the data is messy, the tasks are ambiguous, or the results need to be human-approved. And when is it time to say “AI, yes”? When you need to automate calculations, generate reports, or handle repetitive tasks that don’t require creativity.
Feel free to edit or tweak any part of my draft as needed. After all, what’s tech writing without some collaboration? Let's get those edits rolling! 🎉
### 🧩 Summary
<|end_of_thought|>
| Scenario | AI? | Reason |
|---|---|---|
| Ambiguous data | ❌ | AI struggles with context |
| Repetitive tasks | ✅ | AI handles math and logic |
| Creative decisions | ❌ | AI lacks the ability to think creatively |
<|begin_of_solution|>
# When to use AI
A question coming up professionally for me a lot recently is “when to use AI” or put another way, "Why can't AI do this?" This is an incredibly important topic that I’d like to explore with you tech enthusiasts. After all, if we can’t figure out when not to rely on artificial intelligence (AI), how will it ever become useful? Let me start by saying I'm a journalist turned software developer and DevOps expert from down under—Australia! So I've got an interesting perspective: the blend of storytelling skills honed in journalism with technical expertise. And let’s face it, humor is my best friend when explaining tech concepts.
---
## Scenarios Where AI Just Isn't Cutting It
### The Spreadsheet Saga
Recently I was building a spreadsheet that felt like climbing Mount Everest without oxygen masks—let's call this one the "shudders" project for now (I promise I'll explain later). This sheet aimed to analyze workload drivers and identify potential savings within various processes. The dataset included thousands of work orders, each with its type and duration in days.
### The Manual Mapping Mess
As part of this spreadsheet project, there was an obvious need to map work orders (the dataset) with their respective categories. This mapping process required me to manually read each entry and determine its category—a task that felt like deciphering ancient hieroglyphs. Enter the world of Gen AI! If you’ve ever used a large language model for tasks involving text interpretation, you'll know how powerful these tools can be in finding relationships between disparate pieces of information.
However, this was not an ideal scenario to deploy such technology:
1. **Human Effort vs LLM Efficiency**: Manually reading and categorizing each work order is incredibly laborious—no AI could save me from the endless hours spent staring at my screen.
2. **Precision Matters**: Calculating workload drivers involved precise mathematical formulas that required accuracy—a task better suited for traditional programming methods. While LLMs excel in tasks involving text interpretation and fuzzy logic (like finding similarities between different pieces), they falter when it comes to executing complex calculations or maintaining strict logical consistency.
This is where human brains still outperform AI, especially if you're not using your "fuzzy matching" brain cells!
---
## Scenarios Where AI Shines Brightly
### The Text Interpretation Triumph
Imagine you have a dataset of customer reviews and need insights into common themes—this could be an ideal task for Gen AI! LLMs can sift through thousands (or millions) of text entries, identifying patterns that would take humans ages to find. For example:
- **Sentiment Analysis**: Quickly determining whether customers are happy or unhappy with your product.
- **Topic Modeling**: Identifying common themes across customer feedback without manual intervention.
### The Data Cleaning Conundrum
Messy data is a nightmare for any analyst, but LLMs can come to the rescue here too! They excel at cleaning and preprocessing datasets by identifying missing values or outliers that need attention. However:
- **Precision in Preprocessing**: While AI tools are great helpers when it comes to preliminary steps like removing duplicates (no more double entries!), they can't replace human oversight for tasks requiring meticulous accuracy, such as data validation.
---
## The Bottom Line
AI is a powerful tool with its own set of strengths and weaknesses. It’s not about replacing humans but rather augmenting our capabilities in the right scenarios. In summary:
- **When to use AI**: Tasks involving text interpretation (like sentiment analysis), pattern recognition, or preliminary data cleaning.
- **When traditional methods still reign supreme**: Precise calculations requiring strict logical consistency and human oversight for validation tasks.
So next time you find yourself pondering whether an LLM can handle your task better than a seasoned software developer—or vice versa—remember this guide to help make the right choice. Cheers, mate! Happy coding (and not-so-happy spreadsheeting)! 🚀
---
**Edit notes:**
- Use bold for headings, italics for emphasis.
- Keep paragraphs short for readability.
- Add humor and relatable examples.
- Avoid code examples, focus on scenarios and reasoning.
Feel free to edit or tweak any part of my draft as needed. After all, what’s tech writing without some collaboration? Let's get those edits rolling! 🎉
<|end_of_solution|>
In the end, AI is just another tool. Use it when it works, and don’t let it define your workflow. 😄 *And if you ever feel like AI is overstepping, remember: it’s just trying to be helpful. Sometimes it’s not the best choice. Sometimes it’s the only choice.*