Catholic. Software developer. Public transportation enthusiast.
Dennis
I am currently a software developer at A Thinking Ape Entertainment Ltd. I graduated from the University of British Columbia with a B.Sc. degree in Computer Science with the Software Engineering Option. I primarily speak Python and C# these days, but in the past I've also done Objective-C, Java and PHP.
Outside of work, I'm a volunteer on the youth ministry team at St. Francis Xavier Catholic Church, and also on the Canadian Ski Patrol team at Mount Seymour. I'm also an avid transit enthusiast/photographer.
Part 2 – Creating YouTube live streams programmatically
Authentication with the YouTube Data API from Python
This is the second project for which I’ve had to go through and figure this out, so I wanted to write this down. There are a couple oddities with the YouTube Data API:
One great thing about computers is that they can be programmed to do things that are repetitive and boring. I try to look around in my life to see what things I can get a computer to do for me, so that I don’t have to do it myself.
Today’s case is scheduling weekly YouTube live streams for my church. Every week someone’s got to schedule the live streams for the upcoming weekend. They look like this:
So you might be thinking, this seems pretty trivial, like it’s just a few clicks to schedule this in YouTube. It can’t take more than 10 minutes. And that’s true, but it’s still straightforward and repetitive. Having to figure out which Sunday is coming up, copying and pasting and ensuring the correct dates and times are replaced in the live stream text, and making sure the scheduled dates and times are correct can become tedious work. And it’s the same procedure week after week: the type of processing that computers love to do.
Sure there are other ways to optimize this process, like batching it to create maybe two or more weeks at a time. However, from a viewer’s perspective it can also be confusing when there are a bunch of upcoming live streams that need to be scrolled through. For the purposes of this project, the optimal frequency is to have one set of upcoming live streams visible at any time, and that means having the computer schedule the next set of live streams once every week.
So let’s get the computer to do this. I’m going to split up this blog post into two parts:
Yesterday on my day off work, taking advantage of the sunny weather I made a day-of booking for the Mountain Ropes Adventure up on Grouse Mountain. My annual pass included one tour for free, so I wanted to take advantage of it before they close down the summer season.
I was impressed with the entire ropes course. I was expecting that, thinking it was catering to kids and tourists, the course would be super easy, but it turned out to be enough of a challenge (at least for someone like me who’s not athletic or super fit), especially the advanced course.
Traversing some netting on the Intermediate course, high above the ground.
Each course had a variety of elements, and each had at least one or two ziplines. The beginner course definitely had two because the second one on the way back would take your picture. The elements definitely challenged the physical side, and less on the mental side (some courses I’ve done in the past required some thinking how to get through the element, sort of like a puzzle, but the elements here were relatively straightforward).
Up the first ladder on the Advanced course
I took about 2 hours to complete the all three courses, and it ended up being a good workout for me by the end of it. I don’t remember exactly but I think the time breakdown was maybe 15 minutes on the green/beginner course, 30 minutes on the blue/intermediate course, and 45 minutes on the black/advanced course. The intermediate and advanced courses have midway exits in case guests need to leave early or find the course they’re on too difficult.
The courses use the Kanopeo Speedrunner safety equipment, which keeps you connected to the lifeline at all times. In other courses I’ve done at other camps, you carry two carabiners and manually switch between the line sections and in that case you can also “accidentally” remove yourself from the lines. However, with the Kanopeo Speedrunner, once you enter the course, you are locked in at all times, so the risk of “forgetting” to latch onto the line is zero.
I would recommend the course; I think for most people there would be enough challenge to have fun. The cost, however, is a bit steep considering in addition to the $39 fee for the Mountain Ropes Adventure, a mountain admission ticket for the lift up currently costs $61 ($51 for BC residents). I’d recommend bringing gloves if you are planning on going through the entire course.
I recently got a Ubiquiti UniFi Dream Machine (UDM) to support gigabit-speed internet at my new apartment. The UniFi line is a significant step up from consumer home routers, providing better customizability and management options for networks.
The following settings are required to get IPv6 working locally using Telus PureFibre internet:
In the Network application, go to Settings -> Internet -> WAN. Expand the Advanced section, then expand the IPv6 Connection subsection. Set the following settings:
IPv6 Connection: DHCPv6
Prefix Delegation Size: 56
Apply the changes at the bottom.
Then go to the Networks section and open your LAN network. Expand the Advanced section and scroll down to the IPv6 options, and set the following values:
IPv6 Interface Type: Prefix Delegation
IPv6 RA: Enabled
The rest can be the default values.
Apply the changes.
The next time you reconnect to the network, you should see your computer be given an IPv6 address. You can use sites like ipv6-test.com to test your IPv6 connectivity.
Yesterday was the first day the Burrard Chinook (TransLink’s newest SeaBus) was put into revenue service.
The Chinook has a unique livery consisting of art from the Musqueam, Squamish, and Tsleil-Waututh First Nations communities and showcases the Chinook salmon within the ecosystem as well as First Nations cultures.
TransLink now has four SeaBuses in operation: The Burrard Beaver is the remaining original SeaBus of the pair built in 1976 (the retired sibling being the Burrard Otter). The Burrard Pacific Breeze began its service in 2009 and allowed TransLink to run 10-minute service with all three vessels during the 2010 Olympics. In 2014, the Burrard Otter II entered service, replacing the Burrard Otter. And finally we have the Burrard Chinook, which will allow TransLink to re-start operate 10-minute peak service with three vessels in operation and one spare.