AR-05 · FIELD NOTESField Notebook


Field Notebook

Not a list of technologies I claim to know. A record of what I am trying to understand, what standing each subject has actually reached, and whether you can check it without taking my word for it.

Sheet
AR-05 · Learning
Subjects
17 in 5 strands
Field log
13 entries
Open questions
5

01The standing note

Learning is not a list of technologies I claim to know. It is a record of what I am trying to understand.

When I work with AI, I want to understand what it's doing rather than blindly accepting the output.

On AI

That sentence is why this page has two columns where a skills page has one bar. Standing says what was actually done with a subject. Basis says whether anyone else can check it. A subject can be honestly present with nothing behind it — that is what Stated means, and three of the entries below carry it.

Standing
Built

Used to make something that runs, and that you can read.

Experimented

Wired up and tried, in a project with a purpose — not a tutorial.

Currently learning

Worked on now, with the working visible somewhere.

Exploring

Read about and poked at. Nothing has been finished with it.

Not attempted

Never done. Recorded because the absence is the useful fact.

Basis
Verified

Read out of source. The evidence names the file, the constant or the commit range, so you can go and disagree with it.

Partly verified

Some of it is in the source and some of it is not. The evidence says which part is which.

Stated

I said so, and this archive holds nothing that shows it. Included anyway, marked as what it is.

02Register of subjects

Grouped by strand, never ranked. Sorting these by standing would put a bar chart back on the page with the numbers taken off.

17 subjects · standing and basis, no proficiency levels
SubjectStandingBasisEvidence
AI and language models
Local language modelsExperimentedVerifiedollama==0.3.3 with AIBrain(model="mistral") in jarvis_assistant; qwen2.5:0.5b served at localhost:11434, temperature 0.3, an 80-token cap and a 20-second timeout, in x-man.Set out at length →
Hosted language modelsExperimentedVerifiedOpenAI and Anthropic behind one provider interface in YushaCyber; GPT-4o and Gemini 1.5 Flash in beach_buggy_ai. Every one of them key-gated, and each reports itself unavailable without a key.Set out at length →
Computer visionExperimentedVerifiedMediaPipe Hands and Face Mesh, OpenCV, DeepFace, and MobileNetV2 carrying stock ImageNet weights.Set out at length →
Speech recognition and synthesisExperimentedVerifiedVosk KaldiRecognizer running continuously at 16 kHz, faster-whisper small loaded per command, pyttsx3 on the way out.Set out at length →
Training a modelNot attemptedVerifiedNo .fit(, no train_test_split, no fine-tune and no saved weights in any repository. Every model in this archive arrived already trained.Set out at length →
Programming
PythonBuiltVerifiedThe primary language of five public repositories, the largest of them a Flask application of roughly 3.4 MB of Python.Set out at length →
Web developmentBuiltVerifiedThis site is Astro and TypeScript, built to static files. Three repositories are Flask with Jinja templates, their own stylesheets and their own client JavaScript.Set out at length →
AutomationBuiltVerifiedPyAutoGUI and pynput driving a real desktop, held behind an application whitelist, a key allow-list, a 120-character typing cap, rate limiting and a confirmation on the close-window hotkey.Set out at length →
CExploringStatedNo public artifact. It is in this register because it is being studied, not because it has been used for anything the archive can show you.
Cybersecurity
The Linux shellCurrently learningVerifiedOverTheWire Bandit, levels 0 to 13, worked in public: 19 commits across six days between 13 and 20 August 2026, each level with its own written note.Set out at length →
NetworkingCurrently learningPartly verifiedSSH, hosts and ports from Bandit 0. Beyond that, five lab modules in YushaCyber — fundamentals, reconnaissance, troubleshooting, topology and an HTTP deep dive — each with its own test file.
NmapCurrently learningVerifiedA simulated scanner was written so the mission could be graded: -p-, -sn, -sV, -sU, -sT, -O and -Pn against a virtual network with filtered ports, a host that drops ICMP, and an OS guess. Running nmap against a real network is not recorded here.Set out at length →
Packet analysisCurrently learningVerifiedA packet lab, and the capture, filter, follow and packets commands in the simulated terminal, behind a 536-line test file. No capture of my own is published.Set out at length →
Web application securityExploringVerifiedSQL injection, XSS, CSRF and file-upload modules in YushaCyber, each with its own tests — and two decisions in the platform itself: CSRF protection applied globally, and rendered markdown sanitised with bleach against an allow-list.Set out at length →
Systems and hardware
Machines and peripheralsExploringPartly verifiedThe vision and speech work runs against a real camera and microphone, and its constants belong to one machine — 1280×720 captured and 320×240 inferred, capture stopping 450 ms after the signal drops below energy 400. Beyond that, hardware is an interest in the personal record with nothing filed under it.Set out at length →
Away from the machine
GermanCurrently learningStatedRecorded in the personal record. It produces no artifact this archive can hold, and no level, module or examination is claimed.Set out at length →
Bachelor's degree, Lincoln UniversityCurrently learningStatedFrom the personal record. No dates, modules, marks or graduation date appear anywhere on this site, because none were supplied.Set out at length →

03Re-implementation as a method

The same thing keeps happening in the source. Faced with a tool that is not understood, the response is to write a version of it — not a mock that returns the right answer, but something with the tool’s actual behaviour in it, because a fake cannot be got wrong and therefore teaches nothing. Three instances, all inside YushaCyber.

I want to understand and build with code, rather than blindly trust code generated by AI.

On writing code

The shell

A shell over a virtual filesystem: 54 commands, pipes, redirection, variable assignment and expansion, command substitution, and single-line if and for. Its own docstring says it exists so the terminal behaves "like a real (sandboxed) shell rather than fake string-matching".

297 lines of shell, 1,195 of commands

Nmap

A scanner over a virtual network — hosts, services and versions, filtered ports, a host that drops ICMP, UDP, and an OS guess — so a scanning exercise could be graded on what was actually run.

358 lines of network, 484 of tests

A packet analyser

A packet lab with capture, display filters and stream following, addressed by the same simulated terminal as everything else.

409 lines of packets, 536 of tests

Worth being precise about what this is and is not evidence of. It shows the behaviour of these tools was understood well enough to reproduce and grade. It is not a record of running them against a real network, and the register above says so on every affected row.

04Field log — the Linux shell

OverTheWire’s Bandit, worked in the open. Every level has a note written for it and a commit that filed it, so this is a dated record rather than a claim. The level answers are in those notes and are deliberately not reproduced here.

13 levels19 commits6 active days13 Aug 2026 – 20 Aug 2026

The repository describes itself as “I will going to upload daily basis for 6 months.” It was created on 11 Aug 2026, and what the log currently shows is 19 commits across 6 days. The stated intention is recorded as an intention, next to the record, and neither has been edited to agree with the other.

Bandit 0 to 13 · what each level turned on
FiledLevelWhat it turned onOwn note
13 Aug 20260 → 1SSH as three parts — user, host, port. The default is 22; this server answers on 2220.SSH
13 Aug 20261 → 2A file named "-". cat - waits on standard input instead of reading it; cat ./- says "this is a path, not a flag".
13 Aug 20262 → 3Spaces inside a filename. The shell splits on them, so each one has to be escaped or one argument becomes four.
14 Aug 20263 → 4Hidden files, and ls -la as the only way to see that they are there at all.
14 Aug 20264 → 5Ten files, one of them readable. file ./* reports what is actually inside each one rather than what its name suggests.
14 Aug 20265 → 6Finding by size and permission — and the trap underneath it: two files matched every criterion and one was noise. Narrowing a search is not the same as identifying a file.
16 Aug 20266 → 7The same search across the whole filesystem from /, by owner, group and exact size, with the permission errors suppressed./dev/null
17 Aug 20267 → 8A file far too large to read. grep for the one word standing next to the answer.
17 Aug 20268 → 9The line that occurs exactly once, found by sorting first and counting second — because uniq only ever compares neighbours.sort, uniq
19 Aug 20269 → 10Binary data with readable text buried in it. strings pulls out what a human can read, then grep narrows it.strings
19 Aug 202610 → 11Base64: what it is for, why it is not encryption, and how to reverse it.Base64
20 Aug 202611 → 12ROT13, rotated through tr — a substitution written as a character mapping rather than as a program.
20 Aug 202612 → 13A hex dump of a file compressed over and over with different tools. xxd -r back to binary, then identify and unpack, repeatedly, until the format stops changing.

The last column is the one worth reading. Six of the thirteen levels produced a second file about the command itself — not what it did here, but what it does. That is the same instinct as section 03, two hundred lines of shell code earlier: the level was already solved when those notes were written.

05Open questions

Five things that were built, shipped and never measured. Each comes out of an experiment in the AI Lab whose recorded result is an absence; none of them is rhetorical, and none has an answer here.

01

How often is the five-crop mapping right? There is no labelled test set, so there is no number — and building one is the work, not running the model again.

From Aiming a general classifier at five crops

02

Does an assistant that knows whether it is being looked at actually answer better? The mechanism works. Whether it helps was never tested.

From Attention as an input

03

What does the two-recogniser split actually cost and save? Latency and word error rate were never measured for either model.

From Two speech recognisers instead of one

04

What frame rate and false-trigger rate does hand steering run at? The thresholds were set by playing the game, not by instrumenting it.

From Hand tilt as a steering axis

05

How often does the 0.5B model hand over to its rule-based fallback, and how good are its answers when it does not? Neither was recorded.

From A 0.5B model, on purpose

06Filed notes

Nothing filed here yet. The Linux notes live in their own repository rather than being copied into this one, and section 04 indexes them; when notes are written for this archive directly, they will appear in this section.

07Not in this notebook

  • Certifications
  • Completed courses
  • Proficiency levels
  • Years of experience
  • CTF placements
  • Security engagements
  • Trained models

None of these exists, so none of them appears. They are named individually rather than left out silently, because a page about learning that simply omits certifications is read as modest, and this one would rather be read as accurate.

08Sources

Everything marked Verified above came from one of these.