First Kotlin Package
I’ve finished and released my first Kotlin package to Bintray. It is still rough around the edges, but it is solving problems that I am facing while building an applicatin with Ktor. Developing it has also given me a good deal of experience with using Kotlin to solve problems. I’m calling the package credentials, and it is inspired by the credentials feature of Ruby on Rails. The library allows a developer to securely store credentials in a file that is located as part of the problem, for example resources/credentials.
On Working Remote and Time Zones
Just over one month ago, my wife and I moved to Australia temporarily. We will be here for three or four months, and during that time, I will continue working for my company back in the United States. This means I am working remotely, but more importantly that I am working with a large time difference between myself and my coworkers. My coworkers are split between the East Coast (engineering team) and West Coast (product teams) of the United States, so I am 8.
Testing Emails with PHP, Gmail, and IMAP
I already discussed my open source project, Courier, and writing integration tests for SMTP emails using MailHog. Most of the courier implementations do not use SMTP, though. Even more importantly, I found that when testing email delivery through services like SparkPost and SendGrid there are a lot of edge cases that should be known and understood. For example, there is an issue sending emails to CC recipients using templates with SparkPost.
Testing Emails with MailHog and PHP
I have been working on an open source project, on and off, for the last couple of years that is designed to give developers a standard, concise interface for delivering emails in PHP through third-party SMTP providers, like SparkPost and SendGrid. I recently decided to break out the logic for each of the providers into separate packages, making the core project contain just the interfaces, exceptions, and some helpful traits.
PHP 7.3 Features I'm Excited About
By the time this post is live, PHP 7.3 should already have dropped. I am very happy with the quality of work released by the core team since 7.0. They have built a number of amazing features into the language that focus on developer productivity, which makes a difference when maintaining a large project. PHP 7.3 follows suit, including several great features, but there are a few that I am especially excited about.
Deploying a Hugo Blog with Travis CI
I have enjoyed using Hugo to build my blog, but I have not been happy with the deploy process to GitHub Pages. GitHub user pages always deploy the master branch of the project and also does not directly support Hugo. This means you need at least two branches to make this work, one for the source and one for the release. Up to this point, I was using the pattern suggested by the Hugo team for this.
.NET Core Postgres Context
I’ve been playing around with .NET recently to see if I like it as a strongly typed web framework. One issue I ran into though, was that the naming conventions with Entity Framework leverage pascal case. I appreciate that this closely matches the code, but I have been using Postgres for my database of choice lately and case-sensitive naming is a pain in that environment. I found like-minded individuals discussing options in GitHub issues and blogs, and really appreciated the insights.
Easy Oauth1 Client in PHP
I spent longer than I would have liked the other day finding a good way to use OAuth1 client credentials to integrate with an API in PHP. In the end, the solution was dead simple but not the first result on Packagist, so I thought I would put my notes down here to help others. The package I used was the Guzzle oauth-subscriber. For those not familiar, subscriber is a term that Guzzle uses to describe a number of their middleware, which I was unaware of and caused me to skip over it at first.
A Faktory Client in PHP
Faktory is a worker server created by Mike Perham, the same person who created Sidekiq. His aim in developing the tool is to bring the same best practices hashed out by Sidekiq to languages besides Ruby. Faktory is still in a pre-release phase (at the time of writing this post it is at 0.7.0). It might not yet be ready for primetime, but I decided to give it a try anyway.
GraphQL Getters with Laravel Eloquent
I recently began work on a proof-of-concept project I have been mentally shaping for some time now. In building this, I chose to stick with Laravel as a framework to build off of, as it is something I am familiar with, but I wanted to serve my application’s API using GraphQL instead of normal Laravel resources. For the task, I chose the Laravel GraphQL package, as I am already familiar with the underlying GraphQL implementation.