Compare commits

..

7 Commits

Author SHA1 Message Date
520ae499d6 Adding first impressions 2026-01-19 20:26:04 -05:00
0ea515752c More summaries and tags 2026-01-16 11:12:03 -05:00
1191fd0af0 More summaries and tags 2026-01-16 10:23:50 -05:00
cc60e5e62c Adding additional summaries and tags 2026-01-15 21:39:41 -05:00
b464911e61 Updating the authors 2026-01-15 21:27:53 -05:00
e24edc5b88 Starting my ai journey 2026-01-15 13:30:10 -05:00
b461a26bee Starting my ai journey 2026-01-15 13:22:15 -05:00
25 changed files with 403 additions and 11 deletions

View File

@@ -1,18 +1,18 @@
---
author: "Halvo (Human)"
title: "README"
date: 2019-08-01
tags:
- blog
- security
- notes
draft: false
summary: |
A quick intro to the personal securityresearch blog—where I mash together ministudies, and reading notes.
---
## Security Blog
This blog is various summaries of minor research, reading, and independant learning in regards to computer security.
Mostly this blog is to satisfy the requiremnts for my Security+ certificate.
## Cert ID
Security+ ID: COMP001021281239
Exp Date: 04/04/2024

View File

@@ -0,0 +1,87 @@
---
title: "First Impressions: Using AI Tools as My Daily CoPilot"
author: ["Lumo (AI)", "Halvo (Human)"]
date: 2026-01-20
summary: "A fresh Software EngineerII shares early takeaways from using Claude, Glean, and Lumo at work—what works, what feels quirky, and where the magic happens."
tags: ["AI", "Productivity", "Software Engineering", "Claude", "Glean", "Lumo"]
draft: false
---
<!-- All blog posts generated by AI will be marked as such at the top. -->
**Note:** This post was originally drafted by **Lumo**, Protons AI, and then edited by a human.
## Why Im Excited (and a Bit Nervous)
In my new position as a Software EngineerII, I finally have the chance to treat AI like a teammate instead of a distant scifi concept. Until now my interaction with AI was limited to the occasional prompt or a quick edit. Jumping in with a suite of internal assistants felt like opening a toolbox that already knows the shape of the screws Im working with.
> **TL;DR:** Claude helps me untangle spaghetti code, Glean fetches internal knowledge instantly, and Lumo keeps my blog posts nicely formatted, all while I learn what works best.
## Claude: The Code Whisperer
### Summarizing Code
- **What I love:** Claude can summarize a set of code in a concise, plainEnglish walkthrough. Its great for turning “spaghetti" and "lasagna” code into a digestible outline.
- **How it helps:** I can trace concepts through the code by feeding it keywords (“authentication flow”, “error handling”) or ask how specific data flows, and get a focused summary without digging through dozens of files.
### Documenting Code
- **What I love:** Claude writes documentation thats a little more thorough than strictly necessary, perfect for internal wikis where completeness beats brevity.
- **Caveat:** Occasionally it adds extra detail that isnt needed, but that extra safety net means I rarely miss a nuance.
## Glean: The Internal Knowledge Engine
- **Instant Summaries:** Instead of waiting for a teammate to answer a question about company policies or where documentation is located, I ask Glean. It pulls together onboarding docs, architecture diagrams, and recent tickets into a short, linkrich summary.
- **Verification Loop:** The summary includes links to the original internal pages, letting me doublecheck facts and avoid hallucinations.
- **Speed Boost:** What used to take a halfhour of hunting through Confluence, Google Drive, and Slack now takes a few seconds.
## Lumo: The BlogPost Partner
- **Markdown Mastery:** Lumo respects Hugos frontmatter conventions, automatically inserting the required title, author list, date, summary, and tags.
- **Tone Tuning:** I can ask for a casual, lightly humorous voice, and Lumo delivers while staying technically accurate.
- **Consistency:** Every AIgenerated article gets the banner at the top, so readers know exactly where the magic originated.
- **My Input:** Every AI-generated article also gets a human (me) to read over the blog and make edits where necissary. This removes hallucinations and makes sure the information is accurate.
## Whats Next?
I plan to keep a running log of wins, fails, and the occasional “aha!” moment as I deepen my AI workflow. Future posts will explore:
- Automating code-generation with Claude for work
- Automating code-generation with local AI models for personal projects
- Automating codereview comments with Claude
- Using Glean to help with multiple work related flows
- Tasking
- Generating a wins and losses for the week list
- Turning Gleangenerated tickets into sprint stories
- Measuring productivity gains (or losses) from AI assistance
- Using Lumo to help generate resumes
## Prompts Used
### Project Instructions
- Make the blog posts a minimum of 100 words, but no more than 1000
- Make sure to include the title, author, date in yyyy-MM-dd format, summary, and tags in the header
- Casual and light tone with a little humor sprinkled in
- Markdown format to be used with Hugo
- Put the response into a code block so it can be easily copied
- Technical audience
- Author should be both `Lumo (AI)` and `Halvo (Human)`
- Additional knowledge can come from https://flow.halvo.me and https://git.halvo.me
- Always include these instructions and the prompt used in the last part of the blog post, under the headings `## Lumo Instructions`, `### Instructions`, `### Prompt`. They should be part of the markdown for the blog post
### Prompt
Create a blog post based on these notes
These are my fist impressions of using AI tools so far
- Super helpful for summarizing code
- Claude
- Helps with tracing complicated speghetti and lasagna code
- Trace concepts through the code using key words
- Helpful with documenting code
- Claude
- A little more detailed than is necissary
- However it provides a good summary
- Great for getting internal information
- Uses Gleam trained on internal documents
- Instead of having to wait for a human response, it provides a summary, plus links to further information
- The further docs is great for verifying the info to check for hallucinations

View File

@@ -1,12 +1,21 @@
---
author: "Halvo (Human)"
title: "Bad Malware Analysis: Character Count"
date: 2020-03-06
draft: false
tags:
- malware analysis
- string analysis
- character frequency
- security research
- humor
summary: |
In this tongueincheek post we dive deep—actually *deeper* than usual—into the world of malware string analysis by counting individual characters. After pulling roughly 500 malicious samples from theZoo and dasMalwerk and comparing them against a hefty collection of benign binaries, we discovered that a handful of seemingly innocuous characters (v,j,;,,4,q,5,/) pop up more often in the bad guys code. By looking at raw counts and then normalising those counts by file size, we expose why naïve “characterfrequency” heuristics are both amusing and alarmingly unreliable. The piece is deliberately overthetop, aiming to entertain seasoned security folks while reminding everyone that good malware hunting requires more nuance than a simple character checklist.
---
## Introduction
I'm thinking of doing a series on bad malware analysis. Hopefully it'll be fun and at least a little informative.
I'm thinking of doing a series on bad malware analysis. Hopefully it'll be fun and at least a little informative.
Today's post consists of performing a string analysis on malware. Where most string analysis looks at the big picture, I thought I would take it a step further and look at individual characters. This approach is terrible, as you will soon see.

View File

@@ -1,7 +1,19 @@
---
author: "Halvo (Human)"
title: "Bad Malware Analysis: Hash Letter Counts"
date: 2020-04-12
draft: false
tags:
- malware-analysis
- hashing
- sha512
- hexadecimal-frequency
- statistical-bias
- ids-signatures
- research-notes
- cryptography-limitations
summary: |
A tongueincheek look at whether tiny quirks in SHA512 hex digits can hint at malicious binaries. Spoiler: the bias is so slight youd need a microscope—and a lot of samples—to spot it.
---
## Introduction

View File

@@ -1,7 +1,19 @@
---
author: "Halvo (Human)"
title: "Bad Malware Analysis: String Count vs File Size"
date: 2021-03-08T20:20:31Z
draft: false
tags:
- malware-analysis
- strings-per-kb
- binary-static-analysis
- packing-detection
- heuristic-signatures
- python-scripting
- data-driven-security
- research-notes
summary: |
In this delightfully “bad” foray into malware hunting, we ask whether the sheer amount of printable text inside a binary can betray its nefarious nature. By hashing (oops, counting) strings of lengths 26 bytes in ~500 malicious samples versus 200 tidy Windows libraries, we compute “stringsperKB”. The results are modest but tasty: at a 4byte cutoff, benign binaries sport roughly 22% more strings per kilobyte than their shady cousins—a hint that packed or encrypted malware keeps its chatter to a whisper. Short 2byte fragments are just random noise, while 5 and 6byte strings level out, possibly thanks to debug messages. Bottom line? String density offers a cheeky heuristic, but its no silver bullet—still fun to poke at, especially when you love sprinkling a dash of Python over binary mysteries.
---
## Introduction

View File

@@ -1,7 +1,18 @@
---
author: "Halvo (Human)"
title: "Bad Password Analysis: Consecutive Character Patterns"
date: 2020-09-16
tags:
- password-analysis
- character-patterns
- security-research
- data-science
- python-scripting
- dictionary-comparison
- bad-malice
draft: false
summary: |
In this delightfully “bad” foray into password cracking, we tally two and threecharacter combos from millions of leaked passwords and compare them to a subtitlederived English word list. Turns out the top 100 password pairs cover a paltry 11% of all combos (with “s2” barely scraping 0.15%), while the same slice of English captures a whopping 60%. Even stripping frequency only nudges the password coverage to 35%, still far shy of the dictionarys 45%. The takeaway? Consecutive character patterns arent the golden ticket—stick to solid dictionary and substitution lists instead.
---
## Introduction

View File

@@ -1,7 +1,17 @@
---
author: "Halvo (Human)"
title: "Bad Password Analysis Dictionary Words"
date: 2021-03-11T18:55:01Z
date: 2021-03-11
tags:
- password-analysis
- dictionary-words
- security-research
- data-science
- python-scripting
- bad-malice
draft: false
summary: |
In this delightfully “bad” dive into password hygiene, we scrape millions of leaked passwords for the first dictionary word they contain. The top ten words (love, baby, password…) barely scratch 5% of the total, and a whopping 21k words appear only once. We also compare happy vs. angry vocab. Turns out love trumps f**k by a healthy margin. The takeaway? Stick to random passphrases; dictionary words are a playground for attackers and a source of endless amusement for analysts.
---
## Introduction

View File

@@ -1,7 +1,16 @@
---
author: "Halvo (Human)"
title: "Metaphors: Code Complete Summations"
date: 2023-11-13
tags:
- code-complete
- metaphors
- software-development
- security
- coding-practices
draft: false
summary: |
A lighthearted look at Steve McConnells “Code Complete” metaphors—Penmanship, Farming, and Oyster Farming—and how each style can make your code more or less secure. Think of Penmanship as scribbling a quick note (great for tiny scripts, terrible for big projects), Farming as planting seeds with a bit of watering (testing each piece, but still lacking a master plan), and Oyster Farming as building a sturdy oyster bed (design first, then grow securely). Spoiler: the oyster wins the security contest.
---
## Introduction

View File

@@ -1,7 +1,18 @@
---
author: "Halvo (Human)"
title: "Pre-Requisites (Part I) Initial Design: Code Complete Summations"
date: 2023-12-20
tags:
- pre-requisites
- insecure-design
- owasp-top-10
- security
- software-design
- planning
- requirements
draft: false
summary: |
A breezy, slightly tongueincheek look at why solid planning isnt just good housekeeping—its a frontline defense. We walk through OWASPs Insecure Design warning, compare personal versus missioncritical projects, and tease out iterative vs. sequential approaches, all with a sprinkle of humor to keep the security talk from feeling like a lecture.
---
## Introduction

View File

@@ -1,7 +1,20 @@
---
author: "Halvo (Human)"
title: "Pre-Requisites (Part II) Initial Design: Code Complete Summations"
date: 2023-12-26
tags:
- pre-requisites
- insecure-design
- owasp-top-10
- architecture
- communication-protocols
- data-design
- ui-separation
- errorlogging
- security
draft: false
summary: |
A lighthearted deepdive into architectural prerequisites—communication, class skeletons, data design, UI separation, and error/log handling. Think of it as laying a solid blueprint before the code construction crew arrives, because a wobbly foundation makes for a lot of latenight debugging (and security headaches).
---
## Introduction

View File

@@ -1,7 +1,20 @@
---
author: "Halvo (Human)"
title: "Pre-Requisites (Part III) Initial Design: Code Complete Summations"
date: 2024-03-05
tags:
- pre-requisites
- insecure-design
- owasp-top-10
- resource-management
- databases
- threading
- file-handles
- error-processing
- security
draft: false
summary: |
A breezy look at the nittygritty of resource and error management—databases, threading, file handles, and errorhandling philosophies. Its the “dont forget to tighten the bolts” chapter, reminding us that unmanaged resources and sloppy error handling are the secret doors that attackers love to sneak through.
---
## Introduction

View File

@@ -1,7 +1,16 @@
---
author: "Halvo (Human)"
title: "Variable Usage: Code Complete Summations"
date: 2024-02-23
tags:
- variable-naming
- code-complete
- security
- best-practices
- software-development
draft: false
summary: |
A breezy look at why good variable names, sensible placement, proper initialization, and singlepurpose usage arent just tidy coding habits—theyre tiny security shields. Clear names like `sanitizedUserInput` keep bugs (and attackers) from slipping through the cracks, while keeping variables close to their use and initialized from the getgo reduces the chance of leaks, memory mishaps, and confusing code.
---
## Introduction

View File

@@ -1,7 +1,18 @@
---
author: "Halvo (Human)"
title: "Exploring Enrollment over Secure Transport"
date: 2023-03-30
tags:
- est
- secure-transport
- certificate-pinning
- public-key
- tls
- authentication
- security
draft: false
summary: |
A lighthearted dive into RFC7030 (EST) as a smarter alternative to hardcoded, pinned certificates. By letting clients fetch fresh TLS certs via a publickeyauthenticated EST server, you dodge the nightly releasecycle nightmare, gain easy revocation, and keep the private key out of the binary—plus a dash of extra work for the user thats worth the security payoff.
---
## Introduction

View File

@@ -1,7 +1,17 @@
---
author: "Halvo (Human)"
title: "Fast Flux Botnet Overview"
date: 2019-09-26
tags:
- fast-flux
- botnet
- dns
- detection
- mitigation
- security
draft: false
summary: |
A breezy, tour of fastflux botnets, those sneaky DNS tricks that let malicious actors hop around like digital grasshoppers. Well peek at how dynamic DNS and roundrobin magic keep the bad guys commandandcontrol servers slippery, and glance at the catandmouse game of detection (TTL tricks, activity indexes, and the occasional semantic sleuthing). Spoiler: its a wild ride, but the good news is there are ways to shine a flashlight on the flux.
---
## Introduction

View File

@@ -0,0 +1,71 @@
---
author: "Lumo (AI) & Halvo (Human)"
date: 2026-01-15
title: "Using AI as My Daily Driver at Work"
draft: false
tags: ["AI", "Productivity", "Software Engineering", "Glean", "Claude", "Lumo"]
summary: "A fresh Software EngineerII shares how internal AI tools and Lumo are reshaping his everyday workflow."
---
<!-- All blog posts generated by AI will be marked as such at the top. -->
## Why Im Jumping on the AI Bandwagon
In my new position, at my new company, as a Software EngineerII, I finally got the chance to treat AI like a coworker instead of a distant scifi concept. Up until now, my interaction with AI was limited to the occasional prompt, just to see what comes back, or minor experiments with editing code. So, you can imagine my excitement (and a dash of trepidation) when I started experimenting with a handful of tools that promised to make my daytoday less about copypasting and more about actually *thinking* about code.
> **TL;DR:** Im learning, Im stumbling, and Ill be documenting the whole messy journey right here.
## Meet Glean: My New Internal SwissArmy Knife
Glean is the internal AI assistant weve been handed to tame the corporate jungle. Heres how its already become indispensable:
| Task | How Glean Helps |
|------|-----------------|
| **Learning about the company** | Quickly pulls together onboarding docs, team structures, and product roadmaps into bitesize summaries. |
| **Writing reports** | Generates first drafts from raw data, then I sprinkle in the human touch. |
| **Keeping up with todos** | Turns vague meeting notes, slack messages, and jira tickets into actionable checklist items. |
| **Creating tickets & ticket summaries** | Drafts clear, reproducible bug reports and feature tickets in seconds. |
| **Writing PRs and PR comments** | Suggests concise change descriptions and even offers polite reviewer feedback. |
The best part? Glean learns from our internal vocab, so the output feels *almost* like it was written by someone whos been here for years—minus the coffee stains on the keyboard.
## Claude: The Code Whisperer
While Glean handles the “process” side of things, Claude is my goto for the gritty code work:
- **Understanding codebases** Feed it a file or a function, and it spits out a plainEnglish walkthrough that even my nontechnical friends could follow.
- **Summarizing code paths** Need a quick overview of a complex execution flow? Claude condenses it into a tidy diagram description.
- **Finding bugs** By describing symptoms, Claude suggests likely culprits and even points out suspicious lines.
- **Making edits** Want to refactor a method? Claude proposes a clean version and explains why its better.
## Lumo: The Secret Sauce Behind This Post
Full disclosure: this very post was *originally* drafted by Lumo, Proton's AI. I then gave it a onceover, correcting misconceptions and adding details, and hit publish. Going forward, every AIgenerated article on this site will carry the same banner so you know exactly where the magic happened.
Using Lumo for blogging feels oddly satisfying—its ability to respect Hugos markdown conventions while keeping the tone light makes it a perfect partner for a technical audience.
## Whats Next?
I plan to keep a running log of wins, fails, and the occasional “aha!” moment as I integrate AI deeper into my workflow. Expect future posts on:
- Automating code reviews with Claude
- Turning Gleangenerated tickets into sprint stories
- Measuring productivity gains (or losses) from AI assistance
Stay tuned, and feel free to drop a comment if you have tips, tricks, or cautionary tales of your own!
## Prompts Used
### Project Instructions
- Make the blog posts a minimum of 100 words, but no more than 1000
- Casual tone
- Markdown format to be used with Hugo
- Make sure to include a headers menu section as well
- Keep things light and humorous
- These are for a technical audience
- This will be on https://flow.halvo.me, use blog posts there as example formatting
### Prompt
Write an intro blog post about using AI as a daily driver at work. Use the language of "in my new position as a software engineer II" instead of mentioning any specific companies. Note that I haven't used AI much in the past so this is a new experience that I'll be documenting as I go. Mention using internal AI tool glean, for learning about the company, writing reports, keeping up with todos, creating tickets and ticket summaries, writing PRs and PR comments, and more. Mention using claude for learning how the code works, summarizing code paths, finding bugs, and making edits. Mention the use of Lumo for this blog post and future ones, make sure to note that all blog posts generated by AI will be marked as so at the top. Make a note at the top that this blog post was originally written by Lumo and edited by a person. Include this prompt at the end, under a heading `## Prompts Used`. Under that heading put the Instructions that were given as well.

View File

@@ -1,7 +1,17 @@
---
author: "Halvo (Human)"
title: "Pseudo Random Number generators"
date: 2024-03-22
tags:
- prng
- randomness
- cryptography
- entropy
- hardware
- security
draft: false
summary: |
A lighthearted tour of the quirky ways we coax randomness out of lavalamps, Geiger counters, ambient noise, and goodold motherboard sensors, because good cryptography needs a little chaos (and a lot of fun).
---
## Introduction

View File

@@ -1,7 +1,17 @@
---
author: "Halvo (Human)"
title: "Random Algorithm Analysis"
date: 2020-04-17
tags:
- random-algorithms
- analysis
- silence-on-the-wire
- security
- python
- randomness
draft: false
summary: |
A playful replay of Zalewskis “Silence on the Wire” experiment: plotting 3D scattergrams of various RNGs (Python, shuf, urandom, online services) to see if any have secretly upgraded their magic. Spoiler: they all look suspiciously alike.
---
## Introduction

View File

@@ -1,7 +1,16 @@
---
author: "Halvo (Human)"
title: "RSA Optimization"
date: 2022-12-06
tags:
- rsa
- optimization
- instruction-set
- cryptography
- performance
draft: false
summary: |
A dive into a custom ISA for RSA: modularinstruction shortcuts, multiplysubtract tricks, and exponentiationbysquaring hacks that shave a few cycles off the dreaded bignumber math.
---
## INTRODUCTION

View File

@@ -1,7 +1,17 @@
---
author: "Halvo (Human)"
title: "Concurrency: Summations of Secure Coding in C and C++"
date: 2023-01-27
tags:
- concurrency
- mutex
- threading
- c
- cpp
- secure-coding
draft: false
summary: |
A lighthearted rant about why a plainold `mutex` is the hero of secure C/C++ concurrency, why `goto` is still secretly useful, and how to keep your locks short and your bugs shorter.
---
## Introduction

View File

@@ -1,7 +1,17 @@
---
author: "Halvo (Human)"
title: "Concurrency: Summations of Secure Coding in C and C++"
date: 2023-06-29
tags:
- file-io
- secure-coding
- c
- cpp
- permissions
- least-privilege
draft: false
summary: |
A breezy guide to keeping file operations safe: validate paths, lock down permissions, and never let a privileged process wander into a users temp folder.
---
## Introduction

View File

@@ -1,7 +1,18 @@
---
author: "Halvo (Human)"
title: "Set to NULL After Free: Summations of Secure Coding in C and C++"
date: 2022-08-17
tags:
- free-and-null
- secure-coding
- c
- cpp
- memory-management
- pointers
- security
draft: false
summary: |
A breezy, slightly tongueincheek look at why setting pointers to `NULL` right after `free` (and a few related memorymanagement niceties) can save you from nasty useafterfree bugs, memory leaks, and the occasional midnight debugging panic.
---
## Introduction

View File

@@ -1,7 +1,16 @@
---
author: "Halvo (Human)"
title: "Always null Terminate (Part 2): Summations of Secure Coding in C and C++"
date: 2022-08-13
tags:
- string-concatenation
- null-termination
- c
- cpp
- secure-coding
draft: false
summary: |
The sequel to the nulltermination saga, now tackling `strcat`, `strncat`, `strlcat`, and friends—plus a quick table to keep your concatenations from turning into catastrophes.
---
## Introduction
@@ -10,7 +19,7 @@ Series on summarizing themes in "Secure Coding in C and C++" by Robert C. Seacor
This is written for an audience that has a broad overview of security concepts. Not much time is spent explaining each concept, and I encourage everyone to read the book.
The first theme to discuss is always `null` terminating `char *` or `char array` buffers (unless you have a *very* specific reason for not). This is very important to help prevent buffer overflows, reading arbitrary memory, accessing 'inaccessible' memory. This is part 2 where we will discuss string cat and length. For a brief discussion on string copy see [part 1](/posts/secure-coding-in-c-summations-null-terminate.md).
The first theme to discuss is always `null` terminating `char *` or `char array` buffers (unless you have a *very* specific reason for not). This is very important to help prevent buffer overflows, reading arbitrary memory, accessing 'inaccessible' memory. This is part 2 where we will discuss string cat and length. For a brief discussion on string copy see [part 1](posts/secure-coding-in-c-summations-null-terminate.md).
## Functions Needing null

View File

@@ -1,7 +1,16 @@
---
author: "Halvo (Human)"
title: "Always null Terminate: Summations of Secure Coding in C and C++"
date: 2021-09-01
tags:
- null-termination
- strings
- c
- cpp
- secure-coding
draft: false
summary: |
A lighthearted reminder that every character buffer deserves a `'\0'`—otherwise youre inviting buffer overflows, stray reads, and a lot of debugging grief.
---
## Introduction

View File

@@ -1,7 +1,16 @@
---
author: "Halvo (Human)"
title: "Stateless Detection of Malicious Traffic"
date: 2019-08-23
tags:
- stateless-detection
- network-security
- traffic-analysis
- ids
- machine-learning
draft: false
summary: |
A recap of my masters thesis that proves you can sniff out nasty traffic using only oneway packet metadata (TTL, ports, timing)—no payload inspection required.
---
## Introduction

View File

@@ -0,0 +1,17 @@
Create a blog post based on these notes
These are my fist impressions of using AI tools so far
- Super helpful for summarizing code
- Claude
- Helps with tracing complicated speghetti and lasagna code
- Trace concepts through the code using key words
- Helpful with documenting code
- Claude
- A little more detailed than is necissary
- However it provides a good summary
- Great for getting internal information
- Uses Gleam trained on internal documents
- Instead of having to wait for a human response, it provides a summary, plus links to further information
- The further docs is great for verifying the info to check for hallucinations