Taumarunui, population ~4,500, has a decent Thai restaurant, unlike Levin, population ~20,000. Tom Kha Gai soup FTW.

A bowl of Tom Kha Gai soup.

Correction: Mahoe Motel is in Manunui, 3 Km south of Taumaranui.

Kiwi as! Mahoe Motel, Taumarunui.

Green wooden motel with a 70s look.
Motel sign with palm tree.

A wonderful news story: Auckland Zoo has welcomed 4 new baby Galapagos tortoises. Just look at these little cuties!

Galapagos tortoises are endangered and very difficult to rear but each tortoise can live for about 175 to 300 years.

Two feet of a parent tortoise with 4 tiny tortoises placed between them.

Regular Expressions — a 2007 intro

When @odd mentioned he should learn about Regular Expressions I recalled I once wrote an introductory tutorial for Mac users. Here it is in all its 2007 splendour, including poor quality screenshots!

Imagine you have a list of reversed names like this:

  • Janeway, Kathryn
  • Summers, Buffy
  • Carter, Samantha

Here we have a last name, followed by a first name, separated by a comma and space. Now suppose you'd like those names to be in first-last order, like this:

  • Kathryn Janeway
  • Buffy Summers
  • Samantha Carter

Pattern search

You can either do a lot of copy and pasting, or you can use a clever find and replace routine, called grep.

Grep is able to look for patterns: check each line for a group of letters followed by a comma and space, and then another group of letters. Replace that whole thing with the second group of letters, a space, then the first group.

Suitable software

For the following instructions I use the free Tex-Edit Plus text editor. Other software can use grep too, but it may not follow precisely the instructions below.

The regular expression (grep)

Using grep in Tex-Edit Plus.
Using grep in Tex-Edit Plus.

Paste the list of reversed names into an empty Tex-Edit Plus document, then use Command F to call up the Find and Replace dialog box.

In the Find text box put exactly this (I explain it below). Note the comma and space in the middle:

([a-zA-Z]+), ([a-zA-Z]+)

In the Replace text box put this (note the space in the middle):

^2 ^1

Check the box labelled Regular expression (grep), then click the Replace All button. The names should now be reversed.

Screenshot 1: Using grep in Tex-Edit Plus, setting the replacement to be in a different colour, so it's easier to see what was changed.

Tip: Tex-Edit Plus is able to use different colours when it replaces text. Set the colour to something like red, so you can quickly glance at your document to see what was changed and spot any potential problems.

An explanation of terms

The round brackets () create groupings — in this case groups of letters. In the replacement, ^2 refers to the second grouping, and ^1 refers to the first grouping.

The square brackets [] contain the possibilities of what we're looking for. We could write out all the letters of the alphabet inside the square brackets, but I've used a shorthand above: a-zA-Z. That means: find any lower case letter or any upper case letter between a and z.

Since that sequence would find only any one letter; the + tells the program to find more than one letter.

So, in English, we could say: work line by line to look for a group consisting of one or more letters, followed by a comma and a space, followed by another group of letters. Replace that pattern with the second group, a space, and the first group.

Strip out numbers

Perhaps you have a list of DVDs you bought, with the price beside each. You'd like to send the list to Aunty Flo, but want to remove the prices. More tedious deleting by hand? Not if you use grep.

Here's the start of the list you have in Tex-Edit Plus:

  • Buffy The Vampire Slayer S5 $59.99
  • Chicken Run $25
  • Star Trek Voyager: S3 $69.69
  • Noddy goes Wild $4

Hmmm, the pattern seems to be: a bunch of letters, numbers, spaces and things, followed by a space, a dollar sign, some numbers (with or without a dot) and a return. We must be able to do something with that.

We can look for numbers with the pattern: [0-9], and we can indicate how many items by putting a minimum and maximum in braces like this: {1,2}. Tex-Edit Plus indicates a return character like this: ^c.

We have a small problem: the dot is used in grep as a wildcard to mean: "any character". Here we need it for the decimal point. To show that we mean 'dot' and not 'wildcard' we need to add a backslash in front of it. Similarly, the $ needs a backslash in front, as it is a 'reserved' character in grep.

What's more, the Noddy DVD doesn't include a dot in the price, so we need to use a ? to show that the dot is optional: it may not appear at all.

Let's try this pattern:

Find: \\$[0-9]{1,2}\\.?[0-9]{0,2}^c

Replace: ^c

Remove prices from an asset list.
Remove prices from an asset list.

The Replacement this time is just a return — we've looked for prices followed by a return, we need to replace with a return, or all the lines will run together.

Screenshot 2: Using grep in Tex-Edit Plus to remove prices from an asset list.

Grep looks complicated, and it is, a bit. But it is the start of something immensely powerful.

Tip: When you download and install Tex-Edit Plus it includes a file called Grep? that contains useful information about what regular expressions are and how to construct them for use within Tex-Edit Plus.

This article was first published in [New Zealand] Macguide magazine Issue #31 January / February 2007 and may have been modified from the original.

Mm, hmm. Opening a 27MB file into BBEdit on my M1 MacBook Pro: “Oh no! Spinning beach…” Done. Scroll, scroll, find. Smooth as butter.

This was an interesting 5 minute video: Why Shakespeare Could Never Have Been French:

Shakespeare sounds a certain way. Why? And why could it only work in English?

Learn about Lexical Stress and Prosodic Stress.

Autumn brings morning mists. It’s actually a lovely way to start the day.

Sun rising behind mountains, cows in misty paddocks, a small building in the foreground.

Ful Medames

This week’s International Breakfast was our version of an Egyptian meal: Ful Medames:

Ful medames is pre-Ottoman and pre-Islamic. It is probably as old as the Pharaohs.

We didn’t have bread and forgot the garlic. All good, and we have a whole kilo of beans to use up…

Breakfast ingredients spread on a picnic table. Bowl of food ready to eat.

12 months ago today Aotearoa New Zealand went into Level 3 shutdown, preparing for Level 4 in 2 days. This year I’m noticing the (late) Monarch caterpillars are transforming into chrysalises. They should emerge in about 2 weeks. Our ‘cocoon time’ lasted longer than 2 weeks!

Large Monarch caterpillar on a plant. Monarch caterpillar hanging from a rail. Monarch chrysalis hanging from a rail.

Stunning morning at the beach, still, sunny, no-one around. The sea really was that amazing milky silvery mirror blue.

Sand, sea sky and Kāpiti Island.

Yay! On Wednesday I learn how to make crossword puzzles.

Screenshot of ticket to workshop.

I was thinking of visiting the Zoo when we make a quick family-related trip soon to Hamilton, and noticed they have Fishing Cats I wanted to see. Then look what turned up in my On This Day page today from 2020: Fishing Cat: The Cat That Hunts Underwater. Coincidence.

Hey @JohnPhilpin A year ago today you visited me at Waikawa Beach: miraz.me/2020/03/2… 😎

Almost 48 hours since a sudden new allergy to Nurofen (probably) made my face swell up. Finally the puffiness around my eyes has almost gone. Plus, after taking an antihistamine yesterday lunchtime, I also feel almost normal again. Another ‘attack’ could be more sudden and worse.

I quite enjoyed Detective Hillary Greene Books 1–5 box set by Faith Martin. There’s something about the female characters and their sexual relationships that doesn’t sit quite right with me, but I’ll read more in the series. 📚

adversity has never stopped her from doing her job.

Box set cover.

For the longest time I thought we had Banded dotterels at Waikawa Beach but after close investigation I now think they are the very similar Wrybills. I’m pretty sure that beak has a curve to the right.

Length: 20 cm; Weight: 55 grams.

🐦

Very small seabird with a wry bill. Small bird plucking a meal from wet sand. SMall bird with a tiny sand creature in its bill.

Really enjoyed Moxie at Netflix:

Fed up with the sexist and toxic status quo at her high school, a shy 16-year-old finds inspiration from her mother’s rebellious past and anonymously publishes a zine that sparks a school-wide, coming-of-rage revolution.

Actual feminist themes!

Moxie movie poster.

Hmmm, for decades I’ve used Nurofen to help with headaches. Last night I had quite an allergic reaction that we attribute to Nurofen: swollen face, constricted throat. Today the doctor gave me an antihistamine to help with the swelling. Sasha and Oshi lent moral support. 🐶 🤕

Pill packet for Cetirizine. Two small dogs in a car.

I should have taken some photos of the Pukeko chicks at the nearby lake a couple of weeks ago when they were fluffier. Look at these ridiculous gangly legs. And when the chicks run their legs look like cartwheels, like Roadrunner in the cartoons. Photos: chick; adult. 🐦

Gangly pukeko chick. Adult pukeko.