Audio file

St. Paul’s Anglican Church participated in the Bells of Peace initiative today, ringing its bell 100 times to mark the centenary of the end of World War I.

The church generously offered the opportunity to ring the bell to all comers, so Oliver and I lined up, at sunset, with a diverse group, parishioners and otherwise, for our chance.

The stairway up the bell tower turned out to be far more civilized than I imagined, and it was an easy climb up the stairs. We were each given the chance to ring the bell twice; I recorded Oliver’s second go.

St. Paul's Anglican Church Bell Tower

🗓️

The Guardian ran a story today about Catherine’s piece, along with those from 18 other women, being added to the permanent collection of the Confederation Centre Art Gallery.

In the article Catherine makes the point that the inclusion of her piece is significant not only for the Centre seeking to reduce the gender disparity in its collection, but also for its inclusion of textile works as art:

“I’m proud they have chosen a piece of mine,” says Miller, pointing to “Making Lists”. Fashioned from silk and thread, the installation resembles a mobile with pieces fluttering through the air, from a canopy overhead.

Each silk panel contains a written list.

“Lists provide a picture of our everyday life, whether I have to go pick up my son, pick up an onion on the way home or phone my mother.”

Miller says having “Making Lists” picked for the show (and the collection) came as a pleasant surprise to her.

“Textile artists aren’t often thought of as (creating) fine art. But, I think those rules might be breaking down over the last few years. In the past, textile art and people who work with textiles, which in North America are mostly women, weren’t perceived the same way as those who did oil on canvas.”

You have until June 2, 2019 to see the exhibition Who’s Your Mother? Women Artists of P.E.I., 1964 to the Present at the Confederation Centre Art Gallery.

🗓️

To vote, or not to vote? by Edward Hasbrouck. Nothing has made me think more about democracy, voting, violence and war than reading this.

🗓️

I have never been a regular wearer of Remembrance Day poppies, for no more reason that ignorance and sloth.

Archdeacon John Clarke wrote a moving argument for the poppy in a blog post last week; in part:

The red poppy was not chosen as a symbol of remembrance because of its beauty. It’s because it grew around the graves of soldiers killed in Europe during the world wars. The deep red colour of the poppy reminds us of the blood that poured from the wounds of people killed in battle.

We place a symbol of the poppy on our lapels, near our hearts, to remind ourselves of one essential fact, that war is ugly. The poppy in no way falsely glorifies war. Its intention is the exact opposite, it reminds us of the utter and complete horror of the violence perpetrated on soldiers and civilians in war. The poppy is a stark symbol of the need for us and our political leaders to do all in their power to achieve an everlasting peace.

If I needed any more convincing, this passage from one of the Letters from the Great War was all it took:

Just a few lines to let you know I am alright. Hoping this will find you all the same. Well, I am still in Blighty and I am tired of writing and getting no answer. I have not had a letter from you since I had the registered one with the dollar in it. It seems to be the same with all us Canadians here, as there is about a hundred in the hospital here and they don’t get any letters from Canada. I would like to know where in hell they are going to. That is why I am having mine sent to a private address. I do stand more chance of getting them.

Well, I had a Medical Board two weeks ago and they marked me B I for B II, so I am expecting to be on the next draft and it is for Siberia, but you leave that to me. I do not want to go there. It is too far away and too cold. I would rather go to France. I think I can kick off it. Well, I am not fit for it anyhow, but I am getting better every day. I am getting stronger. It takes quite a little time to get over gas, but this is a dead place here. I do not like it.

It’s not so much the prospect of being sent to Siberia or France to fight that is chilling–although it certainly is–as much as the humanizing contrast between the everyday worries about postal service and what should be exceptional worries about the time needed to “get over the gas.”

As Archdeacon Clarke wrote in his post, war is ugly. We wear a poppy to remind ourselves of that. There’s one on my coat as I type.

🗓️

I suppose we’ve always known that this day would eventually come, and, truth be told, I’m amazed it hasn’t come sooner, but we received an email from Netflix today telling us that our ability to stream Netflix to our television via our venerable Nintendo Wii will cease as of the end of January:

Screen shot of email from Netflix

The only TV in our house is a 20 year old analog Sony Trinitron. It’s hooked up to our Wii using the old pre-HDMI analog way, VHS-tape-machine-style. And while it lacks all the bells and whistles of the modern television–apps, resolution, clarity, 16:9–it continues to serve us well, and I’ve no inclination to stop using it until some part of the setup stops working. I’m not sure that cessation of Netflix will be enough to get me to upgrade the television; indeed it might be all the stimulus I need to rid the house of television altogether.

🗓️

From UPS’s tracking information for my Mac mini package, here’s the voyage it took to get to Charlottetown from Shenzhen, China:

Google Map screen shot showing stops my Mac mini took to get from China to me

The package started in Shenzhen, China, leaving late on Saturday, November 3 and arriving at Chek Lap Kok, Hong Kong on the next morning, Sunday, November 4.

After spending the day in Hong Kong, the package left for Taoyuan, Taiwan Sunday evening, spent a few hours there, and then left for the USA.

It arrived in Anchorage, Alaska on Monday afternoon, spent three hours there, and then left for Louisville, Kentucky, where it arrived just after midnight on Tuesday, November 6.

The package spent a day in Louisville, leaving for Canada early Wednesday morning and arriving at Mirabel International Airport in Montreal just before breakfast.

After confusingly-reported customs formalities in Montreal (“We currently have the package. The receiver requested clearance by a non-UPS broker. / As requested, the package was transferred to a Free Trade Zone or a non-UPS broker.”), it left for Dieppe, New Brunswick on Wednesday morning, arriving mid-morning Wednesday.

The package began the last leg of its trip this morning at 4:30 a.m., leaving Dieppe for Charlottetown, where it arrived at 6:45 a.m. and went on a truck for delivery to my house.

Total distance traveled, give or take, was 12,000 km in 5 days.

🗓️
Mac Mini  •  UPS  •  Map

My new Mac mini is scheduled for delivery today, and I received an SMS from Apple this morning alerting me:

Screen shot of SMS from Apple with shipping notification

Because this is bilingual Canada, the alert was in both English and French, and I noticed that the French version of “Today’s the day” was “C’est le jour J.” I initially though the “J” was an errant character, but it turns out that “le jour J” has become a generic French term for “the big day”:

Le jour J and, to a lesser extent, D-Day can also be used by civilians, as a figurative reference to an important event, similar to saying “the big day” in English. While jour J can be used for happy occasions like parties, D-Day is limited to events that one doesn’t look forward to, like a deadline, perhaps because it’s easy to imagine D standing for doom or disaster.

From this I learned that while VE Day (Victory in Europe) and VJ Day (Victory in Japan) are references to specific events, the “D” in “D-day” means, oddly, “Day”:

The terms D-day and H-hour are used for the day and hour on which a combat attack or operation is to be initiated. They designate the day and hour of the operation when the day and hour have not yet been determined, or where secrecy is essential. The letters are derived from the words for which they stand, “D” for the day of the invasion and “H” for the hour operations actually begin. There is but one D-day and one H-hour for all units participating in a given operation. It is unnecessary to state that H-hour is on D-day.

The military has a raft of letter-designations for days and hours, including E-day (“the unnamed day on which a NATO exercise commences”) and P-day (” the expected date at which the rate of production of a consumable equals the rate at which the item is required by the Armed Forces”).

C’est le jour J!

🗓️
French  •  Language  •  Apple  •  Mac Mini

Along with my friend Ton, I am seeking to emancipate myself from Evernote, a very capable cross-platform organizational app that I’ve been using for many years. The emancipation is part regaining-data-sovereignty and part (a related) worry about Evernote’s future, and how I would be stuck if Evernote disappeared.

The most serious day-to-day integration of Evernote into my life is using it to manage my household and office bills.

When a new bill arrives–mostly by email, these days–I create a new Evernote note, attach a due date (a week before the actual bill’s due date, to give me some breathing room) and drop it in the “Bills - Unpaid” Evernote category.

Here’s an example of this, showing my home heating oil bill with an alarm set for October 27, and my PEI Property Taxes bill’s final installment, with a reminder set for later in the month:

Screen shot of my Unpaid Bills category in Evernote.

Evernote sends email alerts, and Mac and Android notifications, on the due date I set, making it very hard to ignore the fact that I need to pay a bill when it’s due.

Once I’ve paid the paid–again, almost always online–I copy and paste the confirmation message from my credit union bill payment screen into the note, and move the note into the “Bills - Paid” Evernote category.

As you can see from the screen shot, I’ve paid 896 bills this way, going back to July 2010: this system has worked well, and I have an almost-100%-on-time bill payment record as a result.

To replace Evernote’s role in this, I needed a way to:

  1. Store the bills themselves–PDF files–with some redundancy built in.
  2. Set reminders to pay the bills.
  3. Record the payment information when I pay the bill.

I’ve come up with a system that uses Nextcloud, a PHP script, and the Mac Reminders application, and it works like this.

When a new bill arrives in my inbox, I do whatever’s needed to download a PDF version of the bill (usually this involves logging into a vendor website). I save the PDF to my computer.

Next, I right-click on the PDF to fire an Automator workflow that I wrote to process the PDF; the workflow looks like this:

Screen shot of Automator workflow to process bills

The workflow is simple: it takes the PDF file and passes it to a PHP script I wrote, /Users/peter/bin/bill.php, and, when the script is done, it has the Mac speak “I created a Reminder!”.

The bill.php script is where the heavy lifting happens:

First, I use pdftotext to convert the PDF to a text file:

function getTextFromPDF($file) {
	system("/usr/local/bin/pdftotext $file /tmp/pdfdump.txt");
	$text = file_get_contents("/tmp/pdfdump.txt");
	return $text;
}

Next, I use the text version of the PDF to find which vendor it’s from; I do this by looking for known strings in each bill, like the account number (I’ve removed my actual account numbers and replaced them with Xs):

function getBillType($text) {
	if (strpos($text, "XXXX XXXX XXXX XXXX")) {
		return "Eastlink";
	}
	else if (strpos($text, "XXXXXXX")) {
		return "Bell";
	}
	else if (strpos($text, "XXXXXXX")) {
		return "Kenmac";
	}
	else if (strpos($text, "XXXXXXX-XXXXXXX-XXXXXXX")) {
		return "MaritimeElectricStudio";
	}
	else if (strpos($text, "XXXXXXX-XXXXXXX-XXXXXXX")) {
		return "MaritimeElectricHome";
	}
}

With the bill’s vendor known, and assuming that the format of every month’s bill is the same, I can then extract the date of the bill, using what I know about how this appears on each bill:

function getBillDate($text, $billtype) {
	if ($billtype == "Eastlink") {
		// September 24, 2018 Account Number
		if (preg_match("/(.*) Account Number/", $text, $matches)) {
			return getNormalizedDate($matches[1]);
		}
	}
	else if ($billtype == "Bell") {
		// 5421473 9 September 21, 2018
		if (preg_match("/\n5421473 9 (.*)/", $text, $matches)) {
			return getNormalizedDate($matches[1]);
		}
	}
	else if ($billtype == "Kenmac") {
		// 10/4/2018
		if (preg_match("/\n(\d+\/\d+\/\d\d\d\d)/", $text, $matches)) {
			return getNormalizedDate($matches[1]);
		}
	}
	else if (($billtype == "MaritimeElectricStudio") or ($billtype == "MaritimeElectricHome")) {
		// Bill issued on 03Oct18 includes payments received
		if (preg_match("/Bill issued on (.*) includes/", $text, $matches)) {
			return getNormalizedDate($matches[1]);
		}
	}
	return FALSE;
}

I also need the bill’s due date: in some cases I look for the actual due date, in other cases the due date isn’t printed, and I calculate one based on a known amount of time after the bill date. I also set a reminder date, 7 days before the due date; as with Evernote’s reminder dates, this gives me some breathing room to pay the bill well before it’s due.

function getDueDate($text, $billtype, $billdate) {

	if ($billtype == "Eastlink") {
		// Please pay the total amount by Oct 15, 2018.
		if (preg_match("/Please pay the total amount by (.*)/", $text, $matches)) {
			$duedate = getNormalizedDate($matches[1], TRUE);
			$reminddate = strftime("%Y-%m-%d, 9:00 AM", strtotime($duedate) - (7 * 86400));
			return array($duedate, $reminddate);
		}
	}
	else if ($billtype == "Bell") {
		// please pay by: October 12, 2018
		if (preg_match("/please pay by: (.*)/", $text, $matches)) {
			$duedate = getNormalizedDate($matches[1], TRUE);
			$reminddate = strftime("%Y-%m-%d, 9:00 AM", strtotime($duedate) - (7 * 86400));
			return array($duedate, $reminddate);
		}
	}
	else if ($billtype == "Kenmac") {
		// No due date specified -- add 30 days to bill date
		$duedate = strftime("%Y-%m-%d, 9:00 AM", strtotime($billdate) + (30 * 86400));
		$reminddate = strftime("%Y-%m-%d, 9:00 AM", strtotime($duedate) - (7 * 86400));
		return array($duedate, $reminddate);
	}
	else if (($billtype == "MaritimeElectricStudio") or ($billtype == "MaritimeElectricHome")) {
		if (preg_match("/Payment Due On or Before: (.*) Amount/", $text, $matches)) {
			$duedate = getNormalizedDate($matches[1], TRUE);
			$reminddate = strftime("%Y-%m-%d, 9:00 AM", strtotime($duedate) - (7 * 86400));
			return array($duedate, $reminddate);
		}
	}
}

Now that I know which vendor the bill is from, what the bill date is, and what the due date is, I copy the file to a directory that’s mirrored to Nextcloud, and trigger an AppleScript that creates a reminder in the Reminders app:

system("cp $thisfile $bills_root/$billtype/$newfilename");

$reminder_script = <<<EOT
tell application "Reminders"
	set myList to list "Bills"
  tell myList
  	make new reminder with properties { name:"$billtype Bill $billdate", due date:date "$duedate", remind me date:date "$reminddate", body: "file:///$bills_root/$billtype/$newfilename" }
  end tell
 end tell
EOT;

exec("/usr/bin/osascript -e '$reminder_script'");

By including a file:/// URL as the body of the reminder, with a link to the PDF, I get a clickable link to the PDF of the bill included with the node:

Screen shot of the Mac Reminders app showing a bill

Nextcloud fits into this system in two ways:

  1. The PDF files of the bills are mirrored to a “bills” directory in Nextcloud, where I can reference them as PDF files. They’re named by the vendor and the date for ease of reference.
  2. My Reminders app on my Mac is connected to the Tasks app in Nextcloud. This not only serves to back up the reminders, but also allows me access to the reminders from the Tasks app on my Android phone. This is all powered by CalDAV, which is an open standard.

As such, I’m leveraging the utility of desktop and mobile applications without being beholden to them, and I’m maintaining control over where my data is stored and in what format.

I’ve been using this new system since August, and it’s proved a capable replacement for Evernote; indeed, because more of the workflow is automated, it’s actually a better system than I had in Evernote, and I enjoy using it more.

I’ve still got more Evernote-functionality-replacing to work on, mostly its utility as a place to dump various bits and bobs of information, from boarding pass to network diagrams, that I don’t want to lose.

But replacing Evernote’s bills payment function in my life is a huge hurdle overcome.

🗓️
Evernote  •  Reminders  •  PDF  •  PHP  •  Applescript

I popped up to The Source (née Radio Shack) in the Confederation Court Mall yesterday to pick up some earphones for my brother Mike, who was about to jump on a plane back to Hamilton and needed a pair to while away the flight. I was greeted by this scene:

Photo of The Source, closed in Confederation Court Mall

Photo of closed sign for The Source,  in Confederation Court Mall

The Source has closed.

This is a blow to downtown Charlottetown, the immediate practical effects of which were evident from my earphone search: I tried “Bob’s,” the dollar-store-like discount store on the first floor of the mall, and Shopper’s Drug Mart, and while they both sell earphones, they are of the cheap $7 variety, and they don’t have anything for a modern iPhone.

When I first moved to Charlottetown in 1993, I was happy to find a very well-stocked Radio Shack store on Queen Street just south of Richmond. It was a handy shop to pick up many things unavailable elsewhere: batteries, serial cables, soldering irons, resistors, floppy disks, tractor printer paper; all the stuff of digital life at the dawn of the Internet.

The store later moved to Grafton Street across from the Confederation Centre of the Arts1, and later, rebranded as “The Source,” to the second floor of the Confederation Court Mall. Although The Source was never as hobbyist-focused as Radio Shack, it continued to be a place to get batteries, USB cables, mobile phone SIM cards, ink cartridges, clock radios, SD cards, Ethernet cables and earphones; all the stuff of digital life in the Internet’s adolescence.

While there’s a The Source out at the Charlottetown Mall, that’s effectively as far away as Amazon.ca is for many people living and working downtown, and the effect will, I’m sure, be a loss of local jobs and purchasing in addition to the loss of convenience.

So long, Radio Shack: you will be missed.

1. Thanks to my friend Dave Cairns for reminding me of this location.

🗓️
Charlottetown  •  Radio Shack  •  Business

Citizens of Charlottetown woke up with a new mayor and city councillor following from yesterday’s municipal election in the city. Picking up our daily newspaper The Guardian, this morning, however, you’d never know it:

The Guardian, Page 1, November 6, 2018

Instead of election coverage, we see a delightful piece about the local brewing industry.

Why?

Because, starting this summer, The Guardian is no longer printed on Prince Edward Island.

As the CBC reported in May, the paper is printed in Halifax now, a move instituted by its new owners:

In an email statement to CBC News, SaltWire Network spokesperson Barbara Cameron said the Guardian and Journal Pioneer’s digital platforms will be the “primary venue for late-breaking news.”

“Printed newspapers are evolving and so is what we include in that medium. More and more we’ll be playing to the strength of print, which facilitates thoroughness, resonance and permanence,” she said.

That’s powerful PR, but little consolation for someone who wants to read about the election by opening a real newspaper.

Here’s how the non-news was explained on the front of the paper today:

There are new mayors in Charlottetown, Summerside and Stratford today, as well as a new council in the new municipality of Three Rivers. While print deadlines prevented results in today’s print edition of The Guardian, full coverage is online and will be in Wednesday’s paper.

By Wednesday, who will care?

By comparison, here’s the front page of The Guardian from February 11, 1904, the morning after that year’s municipal election in the city:

The Guardian, Page 1, February 11, 1904

Those were the days.

🗓️
The Guardian  •  Newspapers  •  History  •  IslandNewspapers.ca

About This Blog

Photo of Peter RukavinaI am . I am a writer, letterpress printer, and a curious person.

To learn more about me, read my /now, look at my bio, listen to audio I’ve posted, read presentations and speeches I’ve written, see things I’ve favourited elsewhere, or get in touch (peter@rukavina.net is the quickest way).

I have been writing here since May 1999: you can explore the 25+ years of blog posts in the archive.

You can subscribe to an RSS feed of posts, an RSS feed of comments, an RSS feed of favourites elsewhere, or a podcast RSS feed that just contains audio posts. You can also receive a daily digests of posts by email. I also publish an OPML blogroll.

InstagramYouTubeVimeoORCIDOpenStreetMapInternet ArchivePEI.artDrupalGithub.