Homework

This is a part of the homework feature of my blog, which is an ongoing conversation with my mate S.F.

Hey mate. Lovely to see you again, as always. Can’t wait to do it all again soon!

Two interesting movies I’ve seen lately:

The prompt for my breathing timer which I gave to ChatGPT, was: “please create a web page for me with HTML and JavaScript that I can use for breathing techniques. I want two modes: box breathing which is in for 4 seconds, hold for 4 seconds, out for 4 seconds; and 4 – 7 – 8 which is in for 4 seconds, hold for 7 seconds, out for 8 seconds. I should be able to pick the mode I want and then the app will prompt me with timers about what to do next.”

The hard problem of consciousness is one of the most profound unsolved questions in philosophy and cognitive science. It asks why and how does physical activity in the brain give rise to subjective experience? In other words, why does it feel like something to be conscious? I’m not sure of course, but it seems to me that the capacity for memory is tied up with consciousness, inasmuch as we don’t seem to have memory without first having been conscious.

Cartesian doubt is a form of methodological skepticism associated with the writings and methodology of René Descartes, the idea being that we can find things which are indubitable, that is, beyond doubt. Descartes famously found “I think, therefore I am.” That he could think was an indubitable fact. I have a similar thing which I like that is: “I know that I am having a sense experience”. It’s kind of along the same lines but includes more primitive conceptions, such as knowledge, time, identity, sensation, and such.

Conclave (2024) was an interesting film about the election of the pope. It’s fiction and you don’t need to be a true believer to enjoy the movie.

We mentioned about Pamela Anderson, and her movie Pamela, a Love Story is on my list. Pamela was at one point married to Tommy Lee of Mötley Crüe fame.

You recommended The King of Kong (2007) and I recommended Ready Player One (2018).

We discussed the Pareto distribution which is a type of power law distribution. These types of distributions can mess with our intuitions because they are not similar to bell curves or other less extreme distributions. The Pareto distribution gives rise to the “80:20 rule” where 80% of outcomes are for 20% of causes.

Homework

This is a part of the homework feature of my blog, which is an ongoing conversation with my mate S.F.

Hey mate. Lovely to see you again, as always. Can’t wait to do it all again soon!

We spoke about Live on Brighton Beach by Fatboy Slim.

I mentioned I’ve been watching videos from Rabbi Simon Jacobson at Meaningful Life Center.

Band name: Healthy Advice for Living.

Band name: Threaten to Fall.

I mentioned about Speed Racer by the The Wachowskis.

You mentioned about the Safe Space in Katoomba.

I mentioned about Elle Cordova. She’s super creative and has made some great videos, particularly her Errorist series, starting here: Grammarian vs Errorist – a supervillain showdown. I’ve mentioned about her before.

I mentioned about Mindform which is a sort of self-improvement community I participate in. It’s run by Ryan Bush who has written a few books including Designing the Mind: The Principles of Psychitecture.

I mentioned about my bullet journal. It is now an instrumental part of my whole day and I can barely imagine how I used to live without it. I got myself one of the official bullet journals too, it’s great; well made and full of thoughtful and practical features.

I mentioned about this SMBC comic: your ethical system is nuts, man!

You mentioned about Information is Beautiful.

You mentioned about Alain de Botton on The Diary of a CEO: The Love Expert: The REAL Reason We’re Lonely, Loveless, Depressed – Alain De Botton, School Of Life.

We listened to Careless Whisper by George Michael.

I mentioned about Iron Sky which is a silly film but a bit of fun.

You mentioned about the Frame problem which is also taken up by Stanford Encyclopedia of Philosophy: The Frame Problem.

You suggested intermittent fasting.

Reporting in on vibe coding experience

I was chatting to some friends on IRC about my experience vibe coding so far. Figured I might as well take some time to check in about that. I suppose first I should say that I am definitely not an AI coding guru, I have pretty minimal experience with it so far.

On some of my computers I have vscode configured with Github Copilot which gives me some auto-complete type support using AI technology. This is sometimes useful and sometimes not. I am yet to use Claude in vscode.

Mostly when I’m vibe coding something I am using ChatGPT via its web interface. I have a “Plus” account with them that I pay for each month. Usually I will ask it to do something for me, it will give me a pretty useful response, then I might get it to tweak a thing or two, or I might edit myself for a few tweaks, and we’re done. Following are things I have done like this recently.

Times Tables Practice. This was an app that I got ChatGPT to help me write. You need a large monitor to view this, it won’t work on your phone. This actually evolved in stages. First I got the 15 x 15 grid on the left working, then the visualization in the middle, then the visualization on the right. It was pretty ugly integrating those bits and pieces, I just copied-and-pasted them into one big file but didn’t take any effort to make them mutually consistent. I have been debating myself about what I should have done here. Maybe I should have used separate JavaScript and CSS files for each major feature so it was clear which code was generated with each feature, or if I should do what I did and just paste it all into the same HTML file. I’m still not sure about that, but the mono-HTML file does work.

Mental Arithmetic Practice. These are practice questions mostly to help me learn my fifteen times tables, but they have simple addition and subtraction questions too. This was pretty much one shot, I asked ChatGPT to make it and I got this result pretty much on the first try. I needed to make a very small edit to make “Random” the default choice instead of “Addition”.

Arithmetic Practice. These are longer arithmetic practice questions which require a pen and paper to figure out. ChatGPT got this pretty much right first go, but I made some minor tweaks to improve legibility and the results when printing on A4 paper.

Thevenin Equivalent Practice. This was my first go at generating practice questions for Thevenin equivalent circuits. This wasn’t quite what I was after so I gave it anther go.

Thevenin Equivalent Practice v2. This was my second go at Thevenin equivalent circuit practice. The visualization as given is pretty shit and I kinda gave up on this. Now my plan is to work through example problems I found elsewhere on the internet: Thevenin & Norton practice problems.

So that’s three successful vibe coding projects and two failures.

How Boris Tane Uses Claude Code (hint: it’s Waterfall!)

In my feed today: How Boris Tane Uses Claude Code. He separates research, planning, and implementation phases, as he says: “Read deeply, write a plan, annotate the plan until it’s right, then let Claude execute the whole thing without stopping, checking types along the way.”

I might be the first to point out: this is Waterfall! Micro-waterfall?

ChatGPT and Roman Numerals

I’m working through the Signpost math books. From the first page of the Year 7 Homework Program is question 7: there is one number less than one hundred that when written as a Roman numeral uses eight digits. What is it?

I didn’t want to think hard about that so I decided to write a program. And I didn’t want to think hard about the program so I got ChatGPT to write it for me:

function main( $argv ) {

  // Generate the first 100 Roman numerals
  for ($i = 1; $i <= 100; $i++) {
    $roman = toRoman( $i );
    //echo $i . ' => ' . toRoman($i) . PHP_EOL;
    if ( strlen( $roman ) >= 8 ) { echo "$roman = $i\n"; }
  }
}

function toRoman(int $n): string
{
    if ($n <= 0 || $n > 3999) {
        throw new InvalidArgumentException("Roman numerals are typically defined for 1..3999");
    }

    $map = [
        1000 => 'M',
        900  => 'CM',
        500  => 'D',
        400  => 'CD',
        100  => 'C',
        90   => 'XC',
        50   => 'L',
        40   => 'XL',
        10   => 'X',
        9    => 'IX',
        5    => 'V',
        4    => 'IV',
        1    => 'I',
    ];

    $out = '';
    foreach ($map as $value => $roman) {
        while ($n <= $value) {
            $out .= $roman;
            $n -= $value;
        }
    }
    return $out;
}

main( $argv );