Day 11: sky

It’s up there, somewhere. #mbapr

A photo looking up at a morning sky appearing through the tops of tall skyscrapers, like the Eureka tower.

Walked a different way to work today. The detour was only a couple of blocks but it was actually quite stimulating seeing an area of the the city I hardly know. Refreshing.

Day 10: train #mbapr

Velocity trains at the platforms of South Cross station, with a Metro train departing in the background

Go to prod early because you never know what surprises you’ll encounter when you deploy (cough Cloud Formation cough).

Had a crummy afternoon at work today. Had to make some fixes that were quite urgent, and forgot to verify something. Good new is that when I verified it this evening, it worked as expected: no nasty surprises or bugs. So relieved! ๐Ÿ˜Œ

Everything’s coming up Leon. ๐Ÿ™Œ

Getting in line for the cafรฉ to open.

A pigeon in front of closed shutters over a shop

Actually, this pigeon is more patient than I am. I decided to go somewhere else.

Day 9: crispy

I guess you could describe these autumn leaves as crispy. Well, maybe a couple of weeks ago you could. With all the recent rain we’ve had, I guess they’ve gone soggy now. #mbapr

Close-up of brown autumn leaves in a garden amongst green plants

Dealing with money is annoying. Dealing with money using Go’s big.Rat type? Really annoying.๐Ÿ˜ฎโ€๐Ÿ’จ

Six Appeal #9

โฌœโฌœโฌœ๐ŸŸจ๐ŸŸจโฌœ โœ”๏ธ
๐ŸŸจ๐ŸŸจ๐ŸŸจ๐ŸŸจ๐ŸŸจ๐ŸŸจ โœ”๏ธ
๐ŸŸจ๐ŸŸจ๐ŸŸฉ๐ŸŸจ๐ŸŸจ๐ŸŸจ ๐Ÿšซ
๐ŸŸจ๐ŸŸจ๐ŸŸฉ๐ŸŸจ๐ŸŸจ๐ŸŸจ ๐Ÿšซ
๐ŸŸจ๐ŸŸจ๐ŸŸฉ๐ŸŸจ๐ŸŸจ๐ŸŸจ ๐Ÿšซ
๐ŸŸฉ๐ŸŸฉ๐ŸŸฉ๐ŸŸฉ๐ŸŸฉ๐ŸŸฉ โญ

3 minutes, 16 seconds - total score: 704

Apparently the correct answers are real words.

Day 8: prevention

An ounce of this? Well, not quite. I can’t prevent myself getting sick abroad, but I try to take a few things to save myself needing to go to the chemist. This idea came from my previous job, which took quite a lot of effort preventing people getting sick while travelling. #mbapr

An small blue bag, opened to reveal a bunch of over the counter medication like cold and flu tablets, pain killers, etc.

Small Calculator Commands

This page documents the extra commands from Small Calculator. These were taken from source code, pretty much as is, but styled to suite the web, and any spelling mistakes fixed. These were retrievable from the application itself by typing “help” follow by the command.

Available Commands

The list of available commands are as follows

BLOCK <statements>    Executes a block of statements
HELP [topic]          Display help on topic
DEFFNC <function>     Defines a new function
ECHO <text>           Displays text on the line
ECHOEXPR <cmd>        Executes a command and displays the result
EXEC <file>           Executes a file of commands
FUNCTIONS             Displays all predefined functions
IF <pred>             Does a command on condition
RETURN <val>          Sets the return value
RETURNEXPR <cmd>      Sets the return value to the result of <cmd>

Type "HELP <command>" to see infomation on a command

BLOCK

BLOCK {<cmd1>} {<cmd2>} ...

Executes a block of commands.ย  The commands can be any statement including other block statements.

DEFFNC

DEFFNC <fnname>(<parameters>) = <command>

Defines a new function.ย  The function name can only consist of letters and numbers.ย  Only a maximum of 4 parameters can be used in the parameter list.ย  Parameters are required to be referred to using $ in the function due to the interpretation of parameters.

Example:

deffnc test(x) = $x + 2
      -- Adds two to any number
      
deffnc sign(k) = if ($k < 0} {-1} {if {$k > 0} {1} {0}}
      -- Returns -1 if k is negative, 1 if k is positive and
         0 if k is 0.

Functions can be recursive if using the “if” command.

ECHO

ECHO <string>

Displays a string on the console.

ECHOEXPR

ECHOEXPR <command>

Executes a command and displays the result on the console.

EXEC

EXEC <filename>

Executes a file of commands.ย  Lines starting with “;” are considered comments.ย  Lines ending with "" are considered incomplete and the next line is appended (after trimming) to the end of that line.

FUNCTIONS

functions

Displays all predefined functions.ย  No user functions are included.

IF

IF {<cond>} {<truepart>} {<falsepart>}

If the result of is not zero, executes which could be any statement, otherwise executes .ย  If statements can be nested.

HELP

HELP [topic]

Displays a help topic on the console window.ย  Use “HELP ” to find help on a particular command.

RETURN

RETURN <val>

Sets the return value to .

RETURNEXPR

RETURNEXPR <cmd>

Sets the return value to the return value of .

Small Calculator

Date: Unknown, but probably around 2005

Status: Retired

Give me Delphi 7, a terminal control, and an expression parser, and of course I’m going to build a silly little REPL program.

I can’t really remember why I though this was worth spending time on, but I was always interested in little languages (still am), and I guess I though having a desk calculator that used one was worth having. I was using a parser library I found on Torry’s Delphi Pages (the best site at the time to get free controls for Delphi) for something else, and after getting a control which simulated a terminal, I wrote a very simple REPL loop which used the two.

Example of basic usage.

And credit to the expression parser developer: it was pretty decent. It supported assignments and quite a number of functions. Very capable for powering a desk calculator.

List of functions the parser library supported.

For a while the app was simply that. But, as with most things like this, I got the itch to extend it a little. I started by added a few extra commands. Simple things, like one that would echo something to the screen. All quite innocent, if a little unnecessary. But it soon grew to things like if statements, blocks using curly brackets, and function definitions.

It even extended to small batch scripts, like the one below.ย  The full set of commands is listed here.

x := 2
y := 3

if {x = y} {echo 5} \
  {echo 232}

return 

These never went anywhere beyond a few tests. The extra commands was not really enough to be useful, and they were all pretty awful. I was already using a parser library so I didn’t want to spend any time extending it. As a result, many of these extensions were little more than things that scanned and spliced strings together. It was more of a macro language rather than anything else.

The full set of extensions.

Even with the expression parser the program didn’t see a great deal of use. I was working on the replacement at the time which would eventually be much more capable, and as soon as that was ready, this program fell out of use.

Even so, it was still quite a quirky little program to make a bit of an impression.

Day 7: well-being

“An apple a day,” and all that. Kinda wish I liked apples more than I do (I don’t really like them that much). #mbapr

Supermarket display of apples for sale.

๐Ÿ”— Crying Myself to Sleep on the Biggest Cruise Ship Ever

A really great read.

Iโ€™ve never been on a cruise. This, plus the many jokes Iโ€™ve heard from comedians that have worked cruises, is probably the closest experience Iโ€™ll ever get to cruising. After reading it, itโ€™s definitely not for me.

Oof, glad I bought an unbrella. Even if itโ€™s a $10 piece of junk with half the stretchers broken. At least half of me will be dry after the walk home. โ˜”๏ธ

๐ŸŽฅ I’ve released a video tutorial on how to use and configure the Sidebar For Tiny Theme. This walks through the process of creating and using a custom Micro.blog theme to configure the sidebar with custom HTML. Hope others find it useful.

It strikes me as odd seeing articles from those that continue to mourn the loss of Twitter and complain about itโ€™s owner, only to go on and continue to use Twitter.

Of course, Iโ€™m the one that continues to read these articles. So whoโ€™s really the odd person here? ๐Ÿ˜

Day 6: windy

Sails of modernity. #mbapr

Modern power generating windmills in a field.

Day 5: serene

The Remarkables, Queenstown, NZ. Taken March 2013. #mbapr

The Remarkables, Queenstown, NZ with a bit of vegetation in the foreground and Lake Wakatipu in the middle.

Vivaldi can learn a thing or two from Safari about being able to copy and paste a HTML table into a spreadsheet. Safari does quite well here:

Screenshot of Numbers for MacOS of a well-formatted paste of the AWS RDS DB instance details table copied from Safari

Vivaldi, not so much:

Screenshot of Numbers for MacOS of a badly-formatted paste of the AWS RDS DB instance details table copied from Vivaldi. Instead of the cells of a row from the original table being formatted as a row, each cell appears on a new row