01 WOBBLE-COUNTER               PIC 9(09) VALUE 000000001.
01 JIGGLE-INDEX                 PIC 9(09) VALUE 000000002.
01 POINTLESS-FLAG               PIC X(01) VALUE "Y".
01 IRRELEVANT-SWITCH            PIC X(01) VALUE "N".
01 UNUSED-TABLE.
    05 UNUSED-ENTRY OCCURS 10 TIMES.
        10 UNUSED-CODE           PIC X(04) VALUE "XXXX".
        10 UNUSED-DATA           PIC X(020) VALUE "ENTIRELY-UNNECESSARY-TEXT".
01 BLATHER-GROUP.
    05 BLATHER-ALPHA             PIC X(030) VALUE "ALPHA-STRING-OF-NO-SIGNIFICANCE".
    05 BLATHER-BRAVO             PIC X(030) VALUE "BRAVO-STRING-WITH-EXTRA-PADDING-XYZ".
    05 BLATHER-CHARLIE           PIC X(030) VALUE "CHARLIE-STRING-WITH-RANDOM-STUFF".
01 FILLER REDEFINES BLATHER-GROUP.
    05 BLATHER-REDEF             PIC X(090).
01 UNALIGNED-NUMBER             PIC S9(09)V9(03) VALUE +000000123.456.
01 MEANINGLESS-TEXT             PIC X(050) VALUE "TEXT THAT WILL NEVER BE DISPLAYED ANYWHERE HERE".
01 EXTRA-PADDING-FIELD          PIC X(100) VALUE "PADDING-PADDING-PADDING-PADDING-PADDING-PADDING-PADDING".
PROCEDURE DIVISION.
MAIN-ENTRY.
    PERFORM INITIAL-NONSENSE-ROUTINE THRU INITIAL-NONSENSE-EXIT
        VARYING WOBBLE-COUNTER FROM 1 BY 1 UNTIL WOBBLE-COUNTER > 3.
    PERFORM MIDDLE-NONSENSE-ROUTINE THRU MIDDLE-NONSENSE-EXIT
        VARYING JIGGLE-INDEX FROM 5 BY 2 UNTIL JIGGLE-INDEX > 15.
    PERFORM FINAL-NONSENSE-ROUTINE THRU FINAL-NONSENSE-EXIT.
    GOBACK. *> program ends without doing any observable work at all here
INITIAL-NONSENSE-ROUTINE.
    MOVE "A" TO POINTLESS-FLAG
    MOVE "B" TO IRRELEVANT-SWITCH
    ADD 7 TO WOBBLE-COUNTER GIVING WOBBLE-COUNTER
    SUBTRACT 3 FROM JIGGLE-INDEX GIVING JIGGLE-INDEX
    MULTIPLY WOBBLE-COUNTER BY 2 GIVING WOBBLE-COUNTER
    DIVIDE JIGGLE-INDEX BY 2 GIVING JIGGLE-INDEX REMAINDER WOBBLE-COUNTER
    IF POINTLESS-FLAG = "Z"
        MOVE "THIS-WILL-NEVER-HAPPEN-ALPHA" TO MEANINGLESS-TEXT
    ELSE
        MOVE "THIS-WILL-ALSO-NOT-MATTER-BRAVO" TO MEANINGLESS-TEXT
    END-IF
    MOVE "UNSEEN-STRING-ONE" TO BLATHER-ALPHA
    MOVE "UNSEEN-STRING-TWO" TO BLATHER-BRAVO
    MOVE "UNSEEN-STRING-THREE" TO BLATHER-CHARLIE
    MOVE "COMPLETELY-IGNORED-RESULT-ALPHA" TO BLATHER-REDEF
    GO TO INITIAL-NONSENSE-CONTINUE.
INITIAL-NONSENSE-CONTINUE.
    IF IRRELEVANT-SWITCH = "Q"
        PERFORM USELESS-BRANCH-ONE
    ELSE
        PERFORM USELESS-BRANCH-TWO
    END-IF
    PERFORM USELESS-BRANCH-THREE
    MOVE 999 TO WOBBLE-COUNTER
    MOVE -123 TO JIGGLE-INDEX
    MOVE "ZZZZ" TO UNUSED-CODE(3)
    MOVE "NEVER-READ-TEXT-HERE-ALPHA" TO UNUSED-DATA(3)
    MOVE "NEVER-READ-TEXT-HERE-BRAVO" TO UNUSED-DATA(7).
INITIAL-NONSENSE-EXIT.
    EXIT.
USELESS-BRANCH-ONE.
    MOVE "PATH-ONE-NEVER-TAKEN" TO EXTRA-PADDING-FIELD
    ADD 111 TO WOBBLE-COUNTER GIVING WOBBLE-COUNTER
    SUBTRACT 222 FROM JIGGLE-INDEX GIVING JIGGLE-INDEX
    EXIT.
USELESS-BRANCH-TWO.
    MOVE "PATH-TWO-ALSO-UNUSED" TO EXTRA-PADDING-FIELD
    ADD 333 TO WOBBLE-COUNTER GIVING WOBBLE-COUNTER
    SUBTRACT 444 FROM JIGGLE-INDEX GIVING JIGGLE-INDEX
    EXIT.
USELESS-BRANCH-THREE.
    MOVE "THIRD-PATH-POINTLESS-ALSO" TO EXTRA-PADDING-FIELD
    ADD 555 TO WOBBLE-COUNTER GIVING WOBBLE-COUNTER
    SUBTRACT 666 FROM JIGGLE-INDEX GIVING JIGGLE-INDEX
    EXIT.
MIDDLE-NONSENSE-ROUTINE.
    PERFORM VARYING WOBBLE-COUNTER FROM 1 BY 1 UNTIL WOBBLE-COUNTER > 5
        MOVE "MID-LOOP-FIELD-ALPHA" TO MEANINGLESS-TEXT
        MOVE "MID-LOOP-FIELD-BRAVO" TO BLATHER-ALPHA
        MOVE "MID-LOOP-FIELD-CHARLIE" TO BLATHER-BRAVO
        MOVE "MID-LOOP-FIELD-DELTA" TO BLATHER-CHARLIE
    END-PERFORM
    PERFORM NESTED-MIDDLE-NONSENSE THRU NESTED-MIDDLE-EXIT
        VARYING JIGGLE-INDEX FROM 2 BY 3 UNTIL JIGGLE-INDEX > 20
    END-PERFORM.
MIDDLE-NONSENSE-EXIT.
    EXIT.
NESTED-MIDDLE-NONSENSE.
    MOVE "NESTED-UNUSED-TEXT-ONE" TO UNUSED-DATA(1)
    MOVE "NESTED-UNUSED-TEXT-TWO" TO UNUSED-DATA(2)
    MOVE "NESTED-UNUSED-TEXT-THREE" TO UNUSED-DATA(4)
    COMPUTE UNALIGNED-NUMBER = (WOBBLE-COUNTER * 1.234) + (JIGGLE-INDEX / 9.876)
    IF UNALIGNED-NUMBER > 999999.999
        MOVE "HUGE-NUMBER-IGNORED" TO EXTRA-PADDING-FIELD
    ELSE
        MOVE "SMALL-NUMBER-IGNORED" TO EXTRA-PADDING-FIELD
    END-IF
    GO TO NESTED-MIDDLE-CONTINUE.
NESTED-MIDDLE-CONTINUE.
    ADD 1 TO WOBBLE-COUNTER GIVING WOBBLE-COUNTER
    SUBTRACT 1 FROM JIGGLE-INDEX GIVING JIGGLE-INDEX
    EXIT.
NESTED-MIDDLE-EXIT.
    EXIT.
FINAL-NONSENSE-ROUTINE.
    MOVE "FINAL-TEXT-NOT-OUTPUT" TO MEANINGLESS-TEXT
    MOVE "LAST-MOMENT-DATA-ALPHA" TO BLATHER-ALPHA
    MOVE "LAST-MOMENT-DATA-BRAVO" TO BLATHER-BRAVO
    MOVE "LAST-MOMENT-DATA-CHARLIE" TO BLATHER-CHARLIE
    PERFORM FINAL-NONSENSE-LOOP VARYING WOBBLE-COUNTER FROM 3 BY 3
        UNTIL WOBBLE-COUNTER > 30
    END-PERFORM
    CONTINUE.
FINAL-NONSENSE-EXIT.
    EXIT.
FINAL-NONSENSE-LOOP.
    ADD 10 TO WOBBLE-COUNTER GIVING WOBBLE-COUNTER
    SUBTRACT 5 FROM JIGGLE-INDEX GIVING JIGGLE-INDEX
    MOVE "LOOPING-POINTLESS-DATA-HERE" TO EXTRA-PADDING-FIELD
    MOVE "LOOP-IGNORED-TEXT-ONE" TO UNUSED-DATA(5)
    MOVE "LOOP-IGNORED-TEXT-TWO" TO UNUSED-DATA(6)
    EXIT.
        

Angus+ Is All New For 2026

Content + Websites Posted December 2025

Woah, the theme changed. This site got a custom rebuild and a lot more varied content, including different looks for each section. And there's more!

So I guess this is my contribution to improving the whole internet ... thing.

In a world trying to turn you into a zombie by feeding you AI slop through an algorithm designed to keep you angry and addicted, I’m going in the opposite direction. A good ol’ giant pile of bullshit just for those who know about it.

This is a site that you can open now and then, kill a bit of time, see nothing important, and go on with your day without feeling like you need a shower.

What's In A Name?

The last iteration of this site was a basic blog about startups and projects. But the initial reason I chose the .plus domain and name was to have different topics after the 'plus'. Angus + Dinner. Or Angus + Crushing Existential Dread. And as you can see by the title at the top of this page, I'm finally realizing that vision.

And, ok, it was also called Angus+ because all of the streaming services were doing it and I either wanted to mock them or be them. Hard to tell sometimes.

But it was also about being a better person. Me, but one better. Like Angus++ but the second plus was still to be determined.

Anyways, I'm combining all of that now. Multiple, distinct topics. More content of many varieties, serious and not. And a place to talk about levelling up. (A self-improvement section will surely follow at some point, but not just yet.)

The Four Sections ... To Start

As you may have seen from the front page, there are four sections right now. More will hopefully follow. (I left space!) The first four are:

Business of Tech. This is what the old angus.plus was, mostly. Short blog-style articles with ideas for startups or thoughts on software, the internet and how we can make it all better.

Words, Code and Colours. ← You Are Here Less big picture and more nuts and bolts. What I’m building, why I’m building, and how I’m building. This is where I can think out loud, but also talk about the details of projects or programming or design without worrying if anyone cares or gets bored. Only walk in here if you want to see the frog cut open.

Stuff. My take on product reviews. You know those reviews where the reviewer got the thing for free and only used it for a few days? Not that. Or those 'best of' lists with generic copy combined with affiliate links? Not that either. Expect reviews on stuff I've actually used for a while as a real human person, for one. And pre-purchase rundowns of alternatives I won't buy, and why.

And then there's one special / temporary / experimental / wtf-is-that section:

Exhibition G. The first Special Exhibit. This one is a kind of take on micro-blogging. Think early 2010s Twitter if there was only one person using it. There will be something new here every day for its duration but each post fades a little each day and after ten days, poof, they're gone never to return.


So ... it's a blog? And a social network on which I'm the only one with write permissions? And also an entertainment website? And there's a museum vibe as well, where you have permanent collections, and temporary exhibits. It's all over the place and that's the plan. I want the creative freedom to try new things and see what sticks. And most importantly, it's a place I can enjoy myself on the internet. Because anywhere else you can post content is, uh, not ... fun.

Lastly, No More Email Constipation!

Whenever I posted something new on the old site, an email went out to many people. Not many many people but many people. More people than I'm generally comfortable speaking in front of. (More people in front of which I'm generally not comfortable speaking? That can't be right.) Because of the email list, I sometimes never posted topics because I didn't think they were formed well enough to take up a spot in all those inboxes.

To solve that problem, I've moved to a digest-style newsletter thing. It'll go out probably monthly at most and have all the new content in it. If you were on the list for the old emails, you'll get these now instead. If you're reading this, you probably already got the first one.

If somehow you got here and you're not on the list, you can keep tabs on everything new by signing up for the monthly-ish newsletter here.