Compare commits
46
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a260345f9b | ||
|
|
891158cc46 | ||
|
|
51fc161e37 | ||
|
|
a378000602 | ||
|
|
3bf1cfc297 | ||
|
|
c01825ecad | ||
|
|
c3db42b803 | ||
|
|
68af58809f | ||
|
|
f1dc3e511e | ||
|
|
7443c82e88 | ||
|
|
176e6caeb5 | ||
|
|
307146b763 | ||
|
|
ab8ad6ffae | ||
|
|
2cda84da5e | ||
|
|
2905c2917f | ||
|
|
ec0798dff2 | ||
|
|
f41dbc802e | ||
|
|
e7f996306f | ||
|
|
22c521293f | ||
|
|
74f8c8607b | ||
|
|
8c342d994e | ||
|
|
bcc41ed4c3 | ||
|
|
fc48d9a4fd | ||
|
|
191805461d | ||
|
|
c2142f7f63 | ||
|
|
9c92d19943 | ||
|
|
aead9151c0 | ||
|
|
14636a4d3b | ||
|
|
d6d6f1893e | ||
|
|
abf6f3feda | ||
|
|
7a4d06bbef | ||
|
|
efad73a1a4 | ||
|
|
50af2eccb3 | ||
|
|
e9a7daf5b3 | ||
|
|
eac2f648c0 | ||
|
|
79d53d3462 | ||
|
|
6dd6e92d93 | ||
|
|
3db9f63246 | ||
|
|
6552ba503b | ||
|
|
202c787f19 | ||
|
|
61324ff499 | ||
|
|
859c40c55c | ||
|
|
92dd043b35 | ||
|
|
761265a467 | ||
|
|
da1bfd4779 | ||
|
|
1f4b7100bc |
@@ -1,5 +1,8 @@
|
||||
name: Build and Push Image
|
||||
on: [ push ]
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -40,3 +43,19 @@ jobs:
|
||||
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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,53 @@
|
||||
Title: The Failing Social Media Ban
|
||||
Date: 2025-06-19 20:00
|
||||
Modified: 2025-06-20 20:00
|
||||
Category: Politics
|
||||
Tags: politics, social meda, tech policy
|
||||
Slug: social-media-ban-fail
|
||||
Authors: Andrew Ridgway
|
||||
Summary: The Social Media ban is an abject failure of policy. Education and the use of the much better existing tools is the key
|
||||
|
||||
## 🎯 The Goal: A Legal Framework to Protect Kids
|
||||
|
||||
The Australian government’s or should I say Julie Inman's plan to ban social media for teens has sparked on going debate. While the intention is noble—protecting minors from online risks—it’s clear the technical and legal hurdles are massive. This government concept of relying on “facial aging” or “Proof of Age” APIs are prone to privacy violations and data breaches, the government should focus on **legal accountability**. Parents already have tools that let them make decisions about their children’s tech use without needing to hand over photos of their ID. The governments current approach is mired in bureaucracy and the tech world does not thrive in that environment. Instead of trying to outsource the problem to consultants, the government should **educate parents on the tools already available**.
|
||||
|
||||
## 🧩 The Problem: Tech Giants Won’t Do It
|
||||
|
||||
The government’s plan to enable Inman's vision is to use facial recognition or “age-based” filters. This was flawed from the start. These systems are expensive, unreliable, and not designed for the scale of a national rollout. Even if a company like Meta or Google could do it, they’d **never** do it for the same reason: ** There is no money in the equation**. The only alternative is to outsource to consultants, but those consultants are not equipped to handle the complexity. The government’s plan is a joke, no one is going to build a system that’s 100% accurate, secure, and compliant with privacy laws and those that *maybe* could have no insentive to. No amount of chest thumping by The E-Safety Commissioner will change this fact and throwing frankly meaningless pieces of paper from our legislative assembly will do little more than make them laugh
|
||||
|
||||
## 🛠️ The Tools Parents Already Have
|
||||
|
||||
Parents (Is it parents? is it in fact fiefdom creation on behlaf of Julie Inman?) must give up on the idea of the government fixing this. , parents should be using the **tools already in their homes**. These tools are **free, secure, and effective**. Some examples include (and I use in my own home):
|
||||
|
||||
* **Fritz Box Parental Controls** (https://en.fritz.com/service/knowledge-base/dok/FRITZ-Box-7530/8_Restricting-internet-use-with-the-FRITZ-Box-parental-controls/) - Allows blocking of websites and apps, setting time limits, and creating user profiles.
|
||||
* **Microsoft Family Safety** (https://www.microsoft.com/en-au/microsoft-365/family-safety) - Provides screen time limits, content filters, and activity reporting.
|
||||
* **Nintendo Parental Controls** (https://www.nintendo.com/au/apps/parental-controls/) - Allows managing game time, content restrictions, and communication settings on Nintendo devices.
|
||||
* **Google Family Link** (https://families.google.com/familylink/) - Enables remote monitoring, app management, and location tracking for children's Android devices.
|
||||
* **Apple Family Sharing** (https://support.apple.com/en-au/105121) - Allows sharing purchases, subscriptions, and location information with family members.
|
||||
|
||||
These tools let parents **block apps, limit screen time, and monitor online activity** without needing to share sensitive data. They offer parents full control over what is available and are not dependant on some arbitrary list governed in legislation (which is in an of itself an indicator of how backwards this legislation is)
|
||||
|
||||
## 📚 The Real Solution: Education, Not Tech
|
||||
|
||||
The government’s plan is a **mistake**. Instead of trying to build a new system, parents should be **educating themselves on the tools already available**.
|
||||
|
||||
### 🔄 Flexibility for Every Family
|
||||
|
||||
* **Approved apps**
|
||||
* **Blacklisted content**
|
||||
* **Screen time limits**
|
||||
* **Privacy controls**
|
||||
|
||||
These tools let parents **make decisions tailored to their children’s needs**. No one-size-fits-all approach. It gives parents autonomy over their online decision making whilst better respecting everyones privacy, including the childs. Already Julie is making calls to expand the list, this is unacceptable, it is no one but MY choice what is acceptable in my house and for my family.
|
||||
|
||||
## 🧩 Why the Government’s Plan Fails
|
||||
|
||||
The government’s plan is a **disaster**. It’s not about fixing the problems of social media use in teens, it’s about giving the perception they are doing something about it using archaic methods and tools that don't go to the root cause. The tools parents already have are **better, cheaper, and more secure**. The only way to make this work is for the government to **stop trying to solve a social problem with tech** and **focus on the real solution: education and parental autonomy**. Stop Letting Julie create her cartel and create her own version of the Chinese firewall
|
||||
|
||||
## 📝 Summary: The Right Tools, Not the Tech
|
||||
|
||||
The government’s plan is a dead monkey. Instead of trying to build a system that’s 100% accurate and secure, parents should be using the **tools already in their homes**. These tools are **free, effective, and preserve privacy**. They let parents **make decisions about their children’s tech use on a true case by case basis** without needing to hand over sensitive data.
|
||||
|
||||
## 🧩 Final Thoughts
|
||||
|
||||
The Government's plan, at the behest of Julie Inman, is a **disaster**. It’s not about fixing the problem with social media, it’s about creating the perception they are solving a problem that is already solved. Parents should be using the **tools already in their homes**. The real solution is not to expect a government to fix this, but to **educate themselves on the tools that already exist**. Until we accept that this is our responsbility the problem will continue propogate because the only place it can be fixed is in the home.
|
||||
@@ -1 +1,82 @@
|
||||
```markdown # When to use AI As an Australian software developer, DevOps expert and journalist who loves diving into tech topics with humor sprinkled throughout my writing (because why not?), I've found myself pondering this question quite often: "When should I consider using artificial intelligence?" Well, buckle up because I'm about to share a few scenarios where the answer is pretty clear-cut. ## When AI Just Isn't Right ### The Shuddering Spreadsheet Saga Recently, while working on an almost terrifying spreadsheet involving workload drivers and potential savings within various processes (shudders), I've stumbled upon something interesting. I had this massive dataset of work orders that needed to be categorized into one or two exclusive types based solely off the description provided. #### Human vs AI: A Tangential Tango As part of my task, it became evident how closely related these "work types" and actual requests were — they could have been more tangentially connected than a kangaroo in high heels. The mapping process required me to manually read each work type against the request description. Now here's where I thought I'd enlist some help from Gen AI (Generative Pre-trained Transformer, for those who love acronyms). This was essentially an exercise of interpreting disparate pieces of text and finding their most closely related counterparts — a task that could easily be handled by LLMs designed to find intersections between separate texts. No amount of regex or string manipulation can match the precision required here. #### Traditional Programming: The Unsung Hero But wait, there's more! Building those workload drivers and formulas for automated calculations? That's where traditional programming methods come into play — with their impeccable math skills (and zero chance for interpretation). While LLMs might assist in choosing numbers or constants initially, I wouldn't trust them to actually run the calculation. Their nature could potentially lead to some funky results. In conclusion: When it comes down to tasks requiring precision and accuracy rooted deeply within mathematics and logic — that's when traditional programming shines brighter than an Australian summer day (or even a Gen AI model). ## But Sometimes... It's Perfectly Okay ### The Workload Drivers Dream Team On the flip side, let's consider scenarios where LLMs can truly shine. Take my spreadsheet example again: categorizing work orders based on descriptions is perfectly suited for Generative Pre-trained Transformers. #### Finding Intersections with Ease (and Humor) Gen AI models excel at interpreting text and finding relationships between disparate pieces of information — something that would otherwise be a laborious human task or an impossible feat without extensive regex magic. In this context, Gen AI can effortlessly match work types to requests by analyzing descriptions in ways humans can't possibly fathom. #### Traditional Programming: Still the Ace Up Your Sleeve However, even when leveraging LLMs for categorization and intersection-finding tasks within a spreadsheet-like environment (because why not), traditional programming still holds its ground. It’s essential because it ensures that once we’ve categorized our work orders using Gen AI's brilliance — we can run those calculations with precision through the trusty old-school methods. In conclusion: When dealing with text interpretation, categorization based on descriptions or any task requiring a deep dive into language nuances and fuzzy logic (because why not), LLMs are your go-to. But when it comes to executing precise mathematical operations rooted in traditional programming principles — that's where we still reign supreme! ## So What's the Verdict? In essence: Use AI wisely, folks! Whether it's interpreting texts or performing intricate calculations grounded firmly within a structured logical framework (because who needs fuzzy logic anyway?), knowing which tool fits best for each task is crucial. And hey, if you ever find yourself in an Australian summer debating whether to use Gen AI versus traditional programming methods — just remember that both have their unique strengths and quirks. So go forth with your tech adventures confidently! Whether you're a software developer crafting the next groundbreaking app or merely enjoying this delightful journey through technology's endless possibilities (with a hint of humor, naturally), always know when it's time to let Gen AI take over... and sometimes even more importantly — knowing when not to. ```
|
||||
Title: When to use AI
|
||||
Date: 2025-06-05 20:00
|
||||
Modified: 2025-06-06 08:00
|
||||
Category: AI, Data
|
||||
Tags: ai, python
|
||||
Slug: when-to-use-ai
|
||||
Authors: Andrew Ridgway
|
||||
Summary: Should we be using AI for ALL THE THINGS!?
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
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
|
||||
|
||||
---
|
||||
|
||||
# When to Use AI: Navigating the Right Scenarios
|
||||
|
||||
Okay, so I've been getting this question a lot lately: "When should we use AI?" or even more frustratingly, "Why can't AI do this?" It's like asking when to use a hammer versus a screwdriver. Sometimes AI is the perfect tool, other times it's better left in the toolbox. Let me break down some scenarios where AI shines and where it might not be the best bet.
|
||||
|
||||
## The Spreadsheet Dilemma: Where AI Can help, and where it hurts
|
||||
|
||||
**Scenario:** Mapping work types to categories in a spreadsheet with thousands of entries, like distinguishing between "Painting," "Repainting," "Deck Painting," or "Stucco Repainting."
|
||||
|
||||
**Where AI Helps:**
|
||||
|
||||
* **Fuzzy Matching & Contextual Understanding:** AI excels at interpreting relationships between words (e.g., recognizing "Deck Painting" as a subset of "Painting"). However, traditional methods with regex or string manipulation fail here because they lack the nuanced judgment needed to handle ambiguity.
|
||||
|
||||
**Where AI Struggles:**
|
||||
|
||||
* **Precision Over Ambiguity:** Calculations requiring exact values (e.g., average durations) are better handled by deterministic algorithms rather than AI’s probabilistic approach.
|
||||
|
||||
**Traditional Methods Are Easier for Deterministic Problems:**
|
||||
|
||||
* **Formula-Based Logic:** Building precise formulas for workload analysis relies on clear, unambiguous rules. AI can’t replace the need for human oversight in such cases.
|
||||
|
||||
## When AI Shines: Contextual and Unstructured Tasks
|
||||
|
||||
**Scenario:** Automating customer support with chatbots or analyzing social media sentiment.
|
||||
|
||||
**Why AI Works Here:**
|
||||
|
||||
* **Natural Language Processing (NLP):** AI understands context, tone, and intent in unstructured data, making it ideal for tasks like chatbot responses or content analysis.
|
||||
* **Pattern Recognition:** AI identifies trends or anomalies in large datasets that humans might miss, such as predictive maintenance in industrial settings.
|
||||
|
||||
**Why Traditional Methods Don't:**
|
||||
|
||||
* **There is no easily discernable pattern:** If the pattern doesn't exist in a deterministic sense there will be little someone can do without complex regex and 'whack a mole' style programming.
|
||||
|
||||
## Hybrid Approaches: The Future of Efficiency
|
||||
|
||||
While traditional methods remain superior for precise calculations, AI can assist in setting up initial parameters or generating insights. For example:
|
||||
|
||||
* **AI Proposes Formulas:** An LLM suggests a workload calculation formula based on historical data.
|
||||
* **Human Checks Validity:** A human ensures the formula’s accuracy before deployment.
|
||||
|
||||
## Key Takeaways
|
||||
|
||||
1. **Use AI** for tasks involving:
|
||||
* Unstructured data (e.g., text, images).
|
||||
* Contextual understanding and interpretation.
|
||||
* Pattern recognition and trend analysis.
|
||||
2. **Stick to Traditional Methods** for:
|
||||
* Precise calculations with deterministic logic.
|
||||
* Tasks requiring error-free accuracy (e.g., financial modeling).
|
||||
|
||||
## Conclusion
|
||||
|
||||
AI is a powerful tool but isn’t a one-size-fits-all solution. Match the right approach to the task at hand—whether it’s interpreting natural language or crunching numbers. The key is knowing when AI complements human expertise rather than replaces it.
|
||||
|
||||
**Final Tip:** Always consider the trade-offs between precision and context. For tasks where nuance matters, AI is your ally; for rigid logic, trust traditional methods.
|
||||
|
||||
🚀
|
||||
Reference in New Issue
Block a user