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.
        

Watch What I Watch

TV Tracker Posted May 2024

It starts as a list of all the stuff I watch. It ends in a way yet unwritten.

Back in February, I wrote about creating simple apps for yourself using no-code tools. The last example was a simple automation to record everything I watch, with ratings.

I've expanded that concept a bit, and now you can see the results.

Why I'd want to record what I watch

  1. To see which subscription services are worth the money. Could I save money by renting the content instead? Maybe it'd be cheaper to rent all my content.
  2. I want to keep a list of the best stuff. We used to buy our favourites and put 'em on a shelf. Then look through them when we wanted to do a rewatch. A digital list seems like the modern version of that.
  3. It's something to do when the movie's over. It's an activity to occupy that liminal space between the ending of one thing and the beginning of the next.

You can check it out now

My list as of the beginning of 2024 is live now. You can see it at tv.angus.plus.

The public view is very simple – it's just a grid of stuff I watched. As the list grows, I'd like to add more ways to slice and dice it. Filters and sorting, of course. Maybe some playlists or randomizers.

I also want to add an 'equivalent rental cost' where the amount you pay for the subscription is divided amongst what you watch. I'm not sure how I'll do the math on that when it comes to serieseses.

On the backend, there's a TVDB integration and a search / add that makes it really quick to add stuff. It looks like this:

What goes in the review box isn't shown publicly yet.

Where it could go

Sign-ups will be enabled one day and you'll be able to create your own directory if you want.

But then...

The bigger idea would be a country-specific (e.g. Canadian-only), Goodreads, and possibly Medium combo.

  • Country specificity means you can track what service the media is on and correctly give suggestions based on what services someone currently has.
  • It's like Goodreads in that it's a place to track your own entertainment + a place to discover new stuff.
  • And maybe like Medium in that you could get paid to contribute. Imagine if you paid $x/year for recommendations and reviews, and half of that money goes to the people making the recommendations and writing the reviews.

Other ideas:

  • A spoiler-free angle. Maybe you couldn't see reviews or ratings for something until you watched it yourself. (But there could also be a vague warning system if you're not in the mood for a real stinker.)
  • A site-wide book-club-like thing. "For October, we're all sub'ing to Disney+ and watching these series..." Maybe we can fix those awkward office conversations where it's like, "Have you seen [this show]?" "Nope, have you seen [other show]?" "Nope."

There are great services out there already like https://letterboxd.com and https://likewise.com and probably a dozen or more others. I haven't seen a good one just for Canada yet so if you know of one or have a good source of Canadian recommendations, lmk!


More to come.

Update: you can sign up now and create your own page!

https://tv.angus.plus