I bought this can of grapefruit segments 100% because of the brand name. I wasn’t even in the market for grapefruit segments.

Two years ago I purchased a 5 oz. tube of yellow letterpress ink from NA Graphics. With the exception of a tiny experiment last year, I’d been afraid to use the ink; black and red are easy and substantial, whereas yellow is fickle and mysterious, and I feared that the result would be too light or too dark or just off.

Today, though, I decided to break through this mental logjam.

And to print.

In yellow.

I’m cooking up a skunkworks project for December that I need a poster for (details to follow soon!) and so I pulled out the Akzidenz Grotesk and set to work.

CALFORNIA TYPEWRITER type on the Golding Jobber No. 8 letterpress

CALIFORNIA TYPEWRITER prints drying after letterpress printing

I had nothing to fear: the yellow is throaty and bold and deeply sunshiny. I love it.

If you’ve been following along over the years, you’ll recall that back in 2012, thanks to the imaginative efforts of a coder deep inside the provincial government, a JSON feed of Prince Edward Island’s electricity load and generation became available.

The efforts were imaginative because the coder created a public web page with gauges showing readings by emitting and then consuming JSON; because the JSON was public, it was thus available to anyone who wanted to use it. I’ve been archiving that data since 2012 (you can grab the archive here), and have been it using for everything from a mobile app to an Alexa skill (“Alexa, as PEI power for a summary”). I’ve done all this with an eye to increasing Islander’s “peripheral electricity literacy,” and I’ve frequently referenced this data in my presentations about open data.

The province has admirably continued to maintain the JSON feed all these years, and this week, as part of their migration to a new web platform, they’ve moved the mechanism by which the data is available, and, in the process, have formalized something which had heretofore been informal.

Here’s a one-liner that that illustrates the new system:

curl --header "Content-Type: application/json" -X POST --data '{"featureName": "WindEnergy"}' https://wdf.princeedwardisland.ca/prod/workflow

This will return a JSON object with the five values previously available, albeit wrapped in a slightly more complex data structure:

{
   "components":[
      {
         "type":7,
         "data":{
            "actualValue":186,
            "footer":"",
            "maxValue":300,
            "header":"Total On-Island Load: 186.59 MW",
            "color":"#008570"
         }
      },
      {
         "type":7,
         "data":{
            "actualValue":49,
            "footer":"",
            "maxValue":200,
            "header":"Wind Power Used On Island: 49.21 MW",
            "color":"#008570"
         }
      },
      {
         "type":7,
         "data":{
            "actualValue":55,
            "footer":"",
            "maxValue":300,
            "header":"Total On-Island Wind Generation: 55.22 MW",
            "color":"#008570"
         }
      },
      {
         "type":7,
         "data":{
            "actualValue":6,
            "footer":"",
            "maxValue":200,
            "header":"Wind Power Exported Off Island: 6.01 MW",
            "color":"#008570"
         }
      },
      {
         "type":7,
         "data":{
            "actualValue":0,
            "footer":"",
            "maxValue":200,
            "header":"Total On-Island Fossil Fuel Generation: 0.00 MW",
            "color":"#008570"
         }
      },
      {
         "type":5,
         "data":{
            "text":"Last updated October 31, 2018 10:44 AM"
         }
      }
   ]
}

I’ve modified my systems to use this new feed. If you want a simpler mechanism for grabbing the same data, pulled in real time from the source, you can:

curl "https://energy.reinvented.net/pei-energy/govpeca/get-govpeca-json.php?format=json"

which will return:

{
   "on-island-load":"186.59",
   "on-island-wind":"55.22",
   "on-island-fossil":"0.00",
   "wind-local":"49.21",
   "wind-export":"6.01",
   "percentage-wind":"29.59",
   "updatetime":1540993440,
   "updatetime_human":"2018-10-31 10:44:00"
}

Or, if you prefer XML:

curl "https://energy.reinvented.net/pei-energy/govpeca/get-govpeca-json.php?format=xml"

which returns:

<?xml version="1.0" encoding="UTF-8"?>
<govpeca>
    <on-island-load>186.59</on-island-load>
    <on-island-wind>55.22</on-island-wind>
    <on-island-fossil>0.00</on-island-fossil>
    <wind-local>49.21</wind-local>
    <wind-export>6.01</wind-export>
    <percentage-wind>29.59</percentage-wind>
    <updatetime>1540993440</updatetime>
    <updatetime_human>2018-10-31 10:44:00</updatetime_human>
</govpeca>

If you’d prefer a richer set of data, you can also use the endpoint I created to drive the pei.consuming.ca mobile app:

curl "https://energy.reinvented.net/pei-energy/govpeca/deliver-govpeca-data.php?format=json"

which returns:

{
   "current":{
      "updatetime":"2018-10-31 10:44:00",
      "uptimetimehuman":"Wednesday at 10:44 AM",
      "on-island-load":"186.59",
      "on-island-wind":"55.22",
      "on-island-fossil":"0.00",
      "wind-local":"49.21",
      "wind-export":"6.01",
      "percentage-wind":"29.59"
   },
   "previous":{
      "updatetime":"2018-10-31 10:29:00",
      "uptimetimehuman":"Wednesday at 10:29 AM",
      "on-island-load":"188.27",
      "on-island-wind":"63.76",
      "on-island-fossil":"0.00",
      "wind-local":"53.69",
      "wind-export":"10.07",
      "percentage-wind":"33.87"
   },
   "peak":{
      "peak":"188",
      "hightime":"10:29 AM"
   },
   "peakwind":{
      "peak":"91",
      "hightime":"3:14 AM"
   }
}

The data here is the same, but I include the previous sample, and the daily peaks for load and wind.

I’m self-hosting these endpoints, so please don’t hit them too hard (the data is only updated once every 15 minutes by Maritime Electric via the province, so there’s no need to poll more regularly than that).

The province’s own page of gauges visualizing this same information has also changed its location: you can now find it at PEI Wind Energy.

Actual conversation with my barber this afternoon:

Barber: So you just want a trim and keep it pretty long?

Me: No, you can take a lot off. Off my collar, over my ears, out of my eyes.

Barber: But you want it left pretty long?

Me: You can take a fair bit off.

Barber: Oh, you want a man’s haircut!

I still don’t know exactly what he meant by this, but, to move things along, I replied “yes!” with enthusiasm.

He then proceeded to give me the most thorough haircut I’ve ever received. It went in forever. Other barbers went through 2 or 3 clients and he was still working on me.

I was worried for the result (I can’t see a thing without my glasses), especially when I realized, late in the game, that my barber was a barber-in-training.

But it worked out: his attention to detail paid off, and I’m happy with the result. I tipped him $5. I presume I now look like a man for the first time in my life.

If you want a novel haircutting experience, have some time to kill, and want to help a new guy out, drop by Ray’s Place and see the first fellow on the left.

When I was at Yankee Publishing a couple of weeks ago, working with my MacBook Air plugged into an external monitor, I realized that very rarely do I have call to use my laptop as a laptop: 99% of the time it’s plugged into a display here, and it’s only when I’m on the road that I use it as it was intended.

So this morning when Apple announced a new Mac mini–the first refresh for this model in forever–I jumped at the change to order one for delivery next week:

Detail from order of Mac Mini

For about the same price as a new MacBook Air, I end up with a machine that’s more powerful, with more memory, a larger disk, and more ports. And yet it’s portable enough that I can stuff it into my bag and take it with me.

This new machine will replace my mid-2011 MacBook Air, a machine that has served me admirably for longer than any computer I’ve ever owned. I’ll keep it around and maintained for those rare times that I need a portable machine with a screen; for everything else, I’m looking forward to taking advantage of the last 7 years of advances in Apple’s technology.

Alanna Jankov is running for Charlottetown City Council Ward One–our downtown ward–and I’m going to vote for her.

Alanna and I worked beside each other for many years when my office was on the second floor of The Guild, right next to hers. So I got to know Alanna originally as my landlord, and then got a front row seat as she helped to transform the facility from near-death to robust health.

Alanna has two qualities that are rarely found in arts administrators: she isn’t bitter or cynical, and she can get things done.

Rather than being worn down by lack of cultural funding and support and going to ground, Alanna figures out how to make things happen, using a combination of guile, creativity and connections. She is ambitious. She has ideas. She’s a good listener. She is also, apparently, unflappable: never in six years of texting her about plugged toilets and unexpected fire alarms did she ever react with anything other than good humour.

City Council is a strange beast: unlike provincial and federal levels of government, with political parties and their platforms, each city councillor is independent, and things only get done at City Hall if they are able to find ways of working together, of overcoming the downtown-vs.-uptown-vs.-royalty rivalries, of truly collaborating. No city council in recent memory has appeared particularly good at this, and the city has suffered for it.

You cannot run an arts centre, with its irascible constituencies of artists, board members, funders and patrons without significant collaborative abilities; Alanna has those abilities. And, somehow, she remains centred and upbeat about the endeavour.

Alanna’s platform speaks to many of the issues I hold dear–transparency, transportation, housing–and I have confidence that if she’s elected, she will be an accessible, responsive councillor.

I decided to vote for Alanna late last week; she sealed the deal for me by knocking on our door at 100 Prince Street yesterday looking for Oliver, our first-time voter. She’s already been actively engaged with Oliver about the issues on Facebook, and in the candidates debate two weeks ago; but she took the time to sit down with him yesterday for almost an hour to answer questions about the myriad issues he’s concerned about.

I’m voting for Alanna Jankov because I’m convinced she would make an excellent representative for Ward One on City Council.

From a post about how to ace an interview with venture capitalists:

4. Practice the interview under extreme circumstances

A friend of mine whose wife recently got accepted into YC shared a hilarious but clever tip: practice under manufactured duress. He told me that he would literally throw socks at her, dance in the background, or yell at her while she was reviewing answers — anything to try and throw off her focus.

Last week I was talking to a friend who was about to go to Thailand for the first time, and I told her about our trip there with wee Oliver, many years ago.

That trip was, in a sense, an example of “practice under duress”: if we could fly halfway around the world with Oliver and make our way in utterly different cultural circumstances, we could do anything.

When we flew to Europe a year later it felt like crossing the street by comparison.

That trip to Thailand made all the trips that followed it possible.

Bringing a process that I started 18 months ago to a close, I deleted my @ruk Twitter and Instagram accounts entirely last night.

Although I’d stopped posting to either a long time ago, I was still dropping in from time to time to check in and see what was going on; this never proved to be anything more than dispiriting, and so pulling the plug wasn’t difficult.

I encountered the following fields on a government form required to set up electronic payments and I couldn’t figure out what each meant:

Details from form requests banking information

This seems to happen every time I am asked for this information; to avoid having to phone the credit union every time, I’m documenting this here.

  • Branch Number (also known as Transit Number) – According to Wikipedia, “Each branch in a financial institution is assigned a unique transit number for identification. The final digit of the transit number indicates the geographical location of the branch.” At Provincial Credit Union, the number is 39073.
  • Institution Number (also known as Bank Code, Financial Institution Number) – Each bank and credit union has one. Provincial Credit Union’s number is 839.
  • Bank Account Number – what it seems, just my regular old bank account number.

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 /nowlook at my bio, read presentations and speeches I’ve written, or get in touch (peter@rukavina.net is the quickest way). You can subscribe to an RSS feed of posts, an RSS feed of comments, or receive a daily digests of posts by email.

Search