Author image

Ray Gervais

Topics of Programming, Techno-babble, Music, and Life through the eyes of a Canadian Software Developer.

Cover image

Writing Golang Tests for an Alcoholic REST API

Continuing on with last week's Athenaeum post, I mentioned that I wanted to explore easily overlooked processes or topics that junior developers don't always have the chance to dive into. The original intent being to allow the project to grow in such a way that it would demonstrate through it's iterative history a step-by-step example of taking a small project all the way to the big world of Public Clouds, Containers, and other infrastructure goodies. Along with that, I also wanted to explore software development patterns and testing practices. In this article, I want to explain what's been done so far: writing back-end unit tests and exploring the world of `code coverage`!

Tags

Link
Cover image

Why You Need A Dog's Opinion For Code Review

Or at least, that's what we all think at the start of the project. Every code-base has their respective hacks, workarounds, and inconsistencies when not kept in check. I imagine that consistent code quality in each pull request is the goal, but we all know how easy it is for items to slip past our reviews. That's why I wanted to explore adding Code Analysis tooling from the very start to the project for both the front-end and back-end. Enter the first tool, Hound!

Tags

Link
Cover image

Following The Tomato Timer

I've always had terrible luck focusing when not in the office, I believe the cause rooting from the environment itself implying that "work gets done" here vs at home. With that being said, it's easy to imagine the past eight weeks that I've been "attempting" to work from home have been quite difficult. After acknowledging that we may be in this for the long haul, I knew that I'd have to find a better coping / focus strategy; one more rigid-yet-balanced, one which screams "productivity" and forces such. Essentially, I wanted a focus system which prioritized focused work in a single domain vs micro managing various domains between my work and personal tasks. It dawned on me that every phone I've ever used always had the same set of applications installed, including one which I used to leverage often in High School: a Pomodoro App.

Tags

Link
Cover image

Being Apart of the Telescope Open Source Project

David Humphrey's (and Seneca's) open source project, titled Telescope (for those who've been living under a rock) has reached the end of semester milestone goal of 1.0! Along with that, the 1000th issue and pull request was created, marking the classes internal milestone from what I understand. Watching this from an external perspective is quite the thrill. I remember telling Dave recently just how life changing telescope could be for some of the graduates; it truly is a project that unearths and shapes interests, teaches real software development and the combined rush / peril one can feel at any given second, version control when working in a team, and being proud of your work. In my opinion, I believe every single individual who frequents that Slack channel will see the dedication and pride that each contributor exerts into telescope.

Tags

Link
Cover image

End-to-End Telescope with Docker, WSL2 and Windows 10

So on April 3rd, I managed to completely blow up my Pop!OS installation beyond repair. I blame Nvidia drivers and permissions, but it's also a reminder to `never fix what's not broken`. For the past month, I had really enjoyed being on Linux and tweaking about with various aspects of my desktop, yet even in that happiness my friends constantly reminded me of the applications that I used which don't support Linux. This included games, audio software, guitar effects for example. I decided hey, if my install is already borked and backed-up, let's install Windows 10 for the weekend and see how frustrated I can get. Solid plan, don't you think?

Tags

Link
Cover image

Why I Got Into Programming

Despite my constant drift to different technologies, operating systems and languages (which, to be fair is rather natural with the given task, ever-changing preferences, etc), I've found the motivation and drive behind has never changed. So I decided to write about it. Let's get the obvious (in my mind at least) out of the way first.

Tags

Link
Cover image

Adding Stats To Telescope's Banner Component in React

Initially, I leveraged the Login and Search components mentioned above as examples of how to both write JSX and also how to modify state. Coming from VueJS -where state's modified via `Vuex` (Redux), or via local components without a state or store, React's state management both made more sense out of the box (and this could be attributed to Cindys and A Garcia maintenance and development of the front-end) and more convoluted in comparison. It had the intimidation and challenging factor that I was looking forward to tackling and equally yearning to avoid for as long as possible.

Tags

Link
Cover image

Determing Average Storage Costs via Azure with Python

About a month ago, a photographer (and filmmaker in the making) friend approached me about hosting in Azure a copy of his media for safekeeping, and wanted to also understand an average cost over time as they'd add more files to the Storage Account. Funnily enough, this is a small application script that I had written before for the green office, along with a script that I had integrated into one of my monthly to-be-automated tasks here in the red office. I figured I's share the Simple Python script, seeing that despite some of the excellent documentation provided by Microsoft, there are multiple ways to approach the solution which can easily be mangled and confused with other solutions and recommendations.

Tags

Link
Cover image

Experiment: Moving to Pop!OS For A Month

As of this past weekend, which marked the start of March and what appears to be kinder climates, I opted to conclude the one year experiment and evaluate the state of the Linux desktop in comparison for a month. Though Windows itself wasn't giving much grief, there were still workflows and quirks that I truly never got over; likewise developing with WSL 2.0 proved to be quite the abstract objective than I thought which led to quite a bit of productivity-loss. I still quite enjoy the concept of Windows Subsystem for Linux, and feel that if I had started using it from day one instead of dropping it into a pre-existing `GIT-BASH` setup that things would be quite smoother. Curiously, I have plans to test exactly that If I end up returning to Windows 10 in the near future. Regardless, I have to work with CentOS, Red Hat and Fedora systems daily at work -which, encourages me to run a similar system for both my home an development environments. Such familiarity truly can help produce fantastic results when enveloped in a unified mindset among different.

Tags

Link
Cover image

Reduced Container Sizes With Multi-Stage Docker Builds

I had worked on Docker in the past for one of my internships, optimizing our microservice build pipeline to utilize multi-stage containers (at the sake of time complexity) which enabled far smaller artifacts to be stored in the private repository which had the compiled resources and bare minimum node-modules that were needed. For that microservice architecture, we successfully decreased the size from ~1GB (x 7 for the services) to ~140mb (x 7). That's just under 1GB for the entire architecture compared 7GB previously!

Tags

Link
Cover image

What I Use in 2020 For Software Development

I figured I'd open up this article with explaining a few of the domains that I work in, both professionally and as a hobby. My hopes is that it provides a better context into some of the choices of technologies. For work, my current title is Cloud Engineer, and on the side, I find myself doing hobby programming in the web, mobile and open source domains.

Tags

Link
Cover image

Leveraging Functional Programming for Data Parsing

For much of January, a key deliverable of the team was to parse and send data between critical systems; a simple enough task really when worded like that. The complexity arose from the included business requirements and edge cases which drove the sprint estimate points from a capable `3` to a concerning `8`, knowing that only a single developer would be focused on this for 100% of their sprint until a POC to be demonstrated came from their efforts. Only then, could the team help carry the torch and make decisions based on the challenges encountered.

Tags

Link
Cover image

A January 2020 Retrospective

2020 has been off to quite the unsettling start, between the wildfires that burn through Australia, the recent passing of Neil Peart and Kobe Bryant, World War III concerns being raised in much louder voices than a fearful whisper, etc. Yet, I wanted to touch upon some of the items that I was working with in attempts to better myself in the first month of 2020.

Tags

Link
Cover image

Migrating a WordPress Site to JAMStack

I've been working with Gridsome and VueJS for a few hobby projects throughout 2019, and was quite impressed with what JAMstacks offered. It intrigued the systematic side of me; the one which is always looking for efficiency, for the next big thing which bridges upcoming and established platforms and produces a user experience like no other. Having always resented the (truthfully, well developed) WordPress editors (both new and classic), the concept of writing blog posts in Markdown and having them compiled to a static website seemed incredibly modern. Imagine blogging without ever having to leave your editor (assuming you're confident in your spelling of course for this example!), and a commit taking that little markdown file to your published blog in such a way that you can't help but say grin in aw.

Tags

Link
Cover image

Starting Ruby Software Development With Unit Tests

Since joining my current employer, I've found myself working with Ruby programs more often so than other scripting languages. I can't really say just yet whether or not I enjoy working in the language, but it's syntax is no beauty such as Python. Instead, once getting past syntax which is comparable to a blended mix of multiple 2000s languages, it's built-in idioms draw you into a new level of thinking and designing. With all the recent exposure, including inheriting a legacy Ruby project and it's surrounding components, I decided for 2020 that I wanted to learn proper software testing and enterprise designs.

Tags

Link
Cover image

Introducing My Jamstack Site!

I decided to depart from the tried-and-true LAMP stack (powered WordPress of course) for what appears to be the future of websites, the allure of the shiny and new: JavaScript, Apollo, Markdown. In truth, the later is what truly got me interested in committing to such as stack; editing a post like such as this one in Markdown simply feels ten times better, even compared toWordPress' admittedly fantastic modern editor. Throughout my note-taking life cycles, I've always opted for the ones which supported Markdown and allowed for file exports in the same format.

Tags

Link
Cover image

Extending Traversey Media’s VueJS Crash Course

After completing the two hour VueJS crash course, I felt the wanting to extend the functionality to include an edit, and details view. Furthermore, I wanted to integrate a new CSS framework as well to give the project a coherent and modern look -gasp, without using my framework of choice: Bulma? Well I want to learn something new, evaluate a skeleton (minimalist) framework. For this little addition, I was considering using a heavyweight framework such as Formantic UI (a community fork of Semantic UI), but instead landed on the minimalist framework Milligram. For this article, due to work also keeping me incredibly busy on top of other obligations, I opted to split up the two (styling vs functionality) with this article targeting the former. Without further ado, let’s talk about enhancing the experience.

Tags

Link
Cover image

Approaching Minimalism

If you were to ask anyone who knew me well, they’d claim that I have not exhibited values or mindsets which dance around the same way that a minimalists does. I am so far from such a genre (according to some), that I made the joke of calling myself the ‘failed minimalist’ to which, a chorus agreed. Yet, I don’t think it’s impossible for anyone to swing that direction if their interests focus that way. I’ve been conducting research through both YouTube and also forums on how individuals gradually converted over to minimalism -taking on lifestyles inspired by minimalism, and the common thread is that the once the mindset changes, the rest will follow. There are plenty of YouTubers explaining the concept, some of which I’ve included below (starting to see how big a fan I am of Matt D’Avella?) for anyone interested in learning more.

Tags

Link
Cover image

My First Impressions of Udacity's Kotlin for Android Development

For 2019, one of my goals was to complete the Google/Udacity Kotlin for Android Development course. Since starting on the first, I’ve completed the first three `lessons` of ten in the course (sadly, it appears that they are still working on content for lessons five to ten, and have not published the work for them), so I thought I’d give my initial feedback and also thoughts on the course’s primary focus: developing Android applications using Kotlin.  Digging into the unfinished courses does provide the video files, so it’s possible to learn some of Lesson’s 5-10 on my own without the quizzes or sample code.

Tags

Link
Cover image

Starting 2019 with a Retrospective

This past year has been full of lessons, just as every year before; an expected constant which I think is important to reflect upon just around the end to identify growth, ambitions and also sway between where life is taking you, and which steps you want to take. Instead of mentioning the negative lessons, inner turmoil and emotional demons, I wanted to touch upon some career and personal growth discoveries that I learned this past year - some even being common sense!

Tags

Link