Namespacing functions in a PHP extension

Recently I was making a PHP extension for work and I was adding functionality to an extension that already existed. So much functionality in fact, I ended up renaming the extension. This caused a bit of a problem come launch time. I couldn’t just include my extension next to the existing extension. They had methods that shared the same name. I needed a namespace.

Get AndroidPay working with multiple OpenSSL versions

In a previous post we went over how to use the OpenSSL API in C to decrypt AndroidPay data. There was something I didn’t realize in my implementation. I was using version 1.1.0 over the OpenSSL API and there are a lot of folks still running versions earlier than that.

Adding new SCSS files to this Jekyll blog

Next time you need to add a new scss file to this blog don’t forget to add it to css/main.scss. That’s where all the sass import statements live and that should force the new scss file to get compiled along with all the other sass files.

OpenSSL and AndroidPay

This is my first deep dive into OpenSSL and boy oh boy is it complicated and not well documented. Unfortunately that means I can’t explain a ton of the reasoning behind the decisions I made in my code. It’s mostly like that because that’s what I found that works.

Added better option handling and project path determination.

Using the OptionParser library I was able to add better option handling. I don’t really like that you have to specify a flag infront of each option but I guess that is kind of a standard. This gave me the ability to add a new option that lets you specify where the blog post file should be written to. That means you don’t have to manually move the file into your Jekyll posts folder.

Jekyll Blog Post Commit Hook

I’m wrapping up work on a post commit hook that will create a Jekyll markdown file based off a git commit message. I’m not really sure if there is much utility in this app but it was a fun way to dive back into ruby code. You can find all the code here

Makefile naming is important/annoying

I just spent the better part of an hour trying to figure out why my makefile wasn’t working.

Letsencrypt and Dreamhost

There’s a great step by step guide for setting up letsencrypt certs on dreamhost here! This post will parrot most of the stuff that it says with a few highlighted points that tripped me up.

Grant Read Access to Everyone in S3

Just a quick note on how to do this as it was a little tough to find.

Get React working with Browserify and NPM without Gulp or Grunt

Why are there so many build tools in the front-end world? It seems needlessly complex. Anyway I have decided to take a simpler approach with my latest React project.

Manipulating Colors in Go

This took me a while to figure out so I figured I better document it.

Type conversion VS type assertion in go

Just learned an interesting subtlety about Go. There are two ways to “cast” values. I put cast in quotes because one isn’t really casting but it’s just the general term I always use for saying “change on type to another one”.

I'm dumb or at least naive about encryption

I just completed my first challenge in Go! It turned out better than I thought it would and I’m pretty proud of it. I had a working version or, at least I thought I did, a week or so before the end of the challenge. There were just two unit tests (provided by the challenge author) that were failing and it wasn’t clear to me why. Only after reading up on public key encryption did I realize that it’s entirely one way.

rbenv and gem binaries

Figured I’d give GitHub Pages a shot which means I need to set up Jekyll. That means I need to install Ruby, as the version install on my Mac is pretty out of date. After some quick googling it appears that managing ruby versions with RVM is out as the version manager and rbenv is in. That brought about some minor confusion.