Mississauga Landscape

Learning every week – 24-Apr and 1-May-2020

I might need to think of a new title to my blog post as I keep missing my weekly target. That’s going to be the case for at least another month as I figure out how to keep my schedule with work, home, and Ramadan activities. The length of days here is a lot more than I am used to. It’s not a problem but I do tend to get tired more often. Of course, being stuck at home isn’t helping. Still, that’s nothing compared to how hard it is in different places. I am grateful to live where I am and work where I do.

It’s getting warmer and it’s making a lot of difference. This is another thing I am not used to. I am seeing leaves back on trees and grass getting greener every week. I arrived in autumn and I thought that was beautiful. Then winter was gorgeous with white everywhere. And now I am excited to see spring in its full bloom.

Cooking and YouTube

I always wanted to cook more and I got my wish here. Here, I have access to a more error-friendly kitchen and easy-to-use tools. This has allowed me to start trying out all of my saved recipes on YouTube. In turn, I am recording videos and posting them on YouTube. As of right now, I have uploaded two recipes. I started with recording short video fragments and stitching them together in iMovie. (I searched around for various options but then stuck to what I already had).

In my first recipe (which was my second upload), I only got barely enough buffer in those recordings which made stitching them together difficult. I had to use freeze frames and repeat loops to give enough time for the voice-over. I applied some nice Ken Burns effects to make the freeze frames look natural. On the other hand, my second recipe had nice buffers and I didn’t even feel the need for a voice-over.


I have been taking short video fragments in many situations instead of just photos. I have been looking for apps and tools to let me stitch them together and add music. The default options in Google Photos is nice for quick Instagram style videos (it intelligently picks most active parts of the video). But I wanted something more powerful. I tried some tools like PowerDirector, KineMaster, etc on my phone. I liked PowerDirector’s flexibility but it was very difficult to get anything done on the phone. In the end, I decided to do this with iMovie itself.

I had used iMovie before for a couple of quick tasks and didn’t understand project management in it at all. I have used other non-linear video editing software before and understand those concepts. But iMovie’s file handling is confusing (as is the case with most Apple software.) It hides away various details like where the files are stored. Of course, regular macOS users might know intuitively but I couldn’t be bothered. Until now.

In hindsight, it isn’t hard at all once you understand the idea. iMovie lets you create as many libraries as you like and each library can contain multiple events and projects. For my case, I use one library for a project so that it’s easy for me to archive files related to a single project. If I were to create multiple videos on a single topic, I would create another project in the same library.

I also learnt more about some of the limitations and how to get around it. For example, titles are pretty much locked and we can’t change anything except the font, size, and similar properties. The workaround, in this case, would be to create a graphic in another tool (like Photoshop or Keynote) and add it as an overlay. Definitely frustrating, but this would do for now.

Python, Black, and Click

I continued my adventures in Python these past two weeks working on my Drupal template program. I had mentioned this script in my previous post as well. As soon as I published the script, a colleague immediately created a pull request to standardize the code style. I am usually very particular about sticking to a code style but I hadn’t gotten around to finding out what are the conventions in Python. Fortunately, my colleague introduced Black which does the job. I don’t care what opinions it uses as long as it does it consistently.

For my script, I used argparse to accept command-line options but I was considering writing more interactive and colourful CLI. On searching, I found that click was most widely mentioned. I began writing a new script to integrate Renovatebot in a project and started experimenting with click. So far, I’m happy with it. This script should appear soon as part of axl-template itself.


Renovate is a dependency tracker and automation tool which generates pull requests (or merge requests in my case) updating various dependencies. There are a lot of things I liked about it and I’ll probably write a separate post about it soon. The point is that I liked it enough to start contributing to it to improve composer support. I created a couple of pull requests to fix some tiny issues and add support for stability modifier.

I’m happy to say they got in. I now found more issues and on the way to fix them. It’s fun working with TypeScript and Node.

Webmin and Virtualmin

I was hosting a few light websites on a cheap CPanel based host for a few years. I didn’t bother much about it until due to a change in licensing, my cost more than doubled. It didn’t make sense for me to host all those websites there anymore as I had other plans for some of them (like both my blogs). But I needed to move it to some other host quickly. I was just going to dump it all on a single tiny cloud instance when I found Webmin and Virtualmin. It was not a smooth installation procedure but I think I got all my sites migrated using CPanel backups. Some of the problems I faced with Virtualmin:

  1. It doesn’t install a valid SSL certificate. I couldn’t ignore the certificate error on Chrome and Edge like you can for other self-signed certificates. Only on Firefox, I could ignore and move ahead with the installation.
  2. It only installs PHP 7.2 and the documentation isn’t very clear how to update. Oh well, this is temporary too.
  3. If you’re restoring CPanel backups, you need to know the username and password for the source CPanel account. I had forgotten the passwords as I used to login to those accounts from WHM. I had to reset the password and generate new backups so that I could import.
  4. Once Virtualmin is completely set up, I could enable SSL for one of the virtual hosts and that gave me an option to use Letsencrypt to generate certificates even for Webmin/Virtualmin control panel. Until then, I had to live with the certificate error.

This whole exercise took a few hours but I’m glad I did it. I find Virtualmin much more usable in some ways than CPanel. I can’t give a feature-by-feature comparison but I don’t care as I prefer to do most tasks using SSH anyway.

That’s it for now. I’ll probably catch you in a week or two. Stay safe.





Leave a Reply

Your email address will not be published. Required fields are marked *