Searching historical newspapers with the Chronicling America API
One of the weirder experiences in writing software is that we can never hold what we create. Mess up a piece of hardware, there's a heap of scrap metal. Mess up a piece of software, there's a few...
View ArticleWhat do you do if you lose access to your Mozilla Addons account?
Someone opened an issue on GitHub this week, asking me to update my Hide Doodles extension for Firefox - and I realized I couldn't! I originally uploaded it last April and updated it in September, but...
View ArticleKeep your EUnit teardown logic as simple as possible!
When you use test fixtures in EUnit, you'll likely define a setup and a teardown function, for doing initialization and cleanup work before and after each test. If you're familiar with...
View ArticleHow do I view the dev console in my browser?
Most users people will never even know their browser hides a great set of tools, mostly used by web developers, but which can be useful for anyone trying to figure out why their browser seems to be...
View Article5 Practical Examples of C# Attributes (and why you'll want to use them)
Ever thought it'd be convenient to attach some extra info to your code? Not just documentation to read at design time, but something that can actually be consumed at runtime and change how your program...
View ArticleHow to include a DateTime format as a constant inside string interpolation
I was upgrading some code to use string interpolation, a feature introduced in C# 6, when I ran into a small snag with DateTimes and format strings.var name = "Grant"; var message =...
View Article8 Tools Every Developer Should Know and Use
When I started programming, I knew nothing about anything. Well, development-wise anyway. ;)I had no clue what version control was or what "the cloud" really meant. I didn't know about kanban boards,...
View ArticleHow to use an application config file with a .NET Standard app and NUnit 3
I've been busy porting some .NET Framework 4.x code to individual .NET Standard libraries at work, in the hopes of modularizing some of our codebase and making it possible to build and run on different...
View ArticleShowing Results is Hard
Me, handing over my work for the week. Ever felt that way?Writing software is this weird cerebral exercise, where you can burn tons of energy working on a problem, and exhaust yourself to the point of...
View ArticleMy first aquarium - Month 7
When I wrote about setting up our aquarium last year, I intended to post regular updates. I had done a ton of research into cycling the tank and buying the right equipment and food, and was all psyched...
View ArticleTime flies... even if you waste it
When I gave up Facebook last year, I silently patted myself on the back, as if it's some monumental thing to give up a platform you don't really use anyway. This year, I dumped Twitter... that was much...
View ArticleRunning Windows XP in VirtualBox
I just got access to an MSDN account with keys for various versions of Windows and Visual Studio, so.... it's retro time! Isn't it funny how something brand new comes out and we get excited, then we...
View ArticleHow to modify a config file in Erlang
It bothers me when a language doesn't offer opposite and equal functions. If there's a function that adds to a list, there should be a function that removes from a list. If there's a function to read a...
View ArticleKeeping your GitHub code secure
A few days ago, GitHub (along with Bitbucket and GitLab) reported that numerous users across their platforms had repos hacked, their code forcibly overwritten and held for ransom. You can read the...
View ArticleCodeFactor, Uploading Images via REST, and the Ghost Admin API v2.0
I finally wrapped up (for now) a little side project of mine, a C# wrapper around v2.0 of the Ghost RESTful API. I call it GhostSharp, and it's available on NuGet. Check out the source code, or learn...
View ArticleMinification vs Obfuscation
Mozilla recently announced that they'll no longer accept extensions with obfuscated code. This is good news for anyone who uses browser extensions in Firefox, since such code is (intentionally) nearly...
View ArticleWhat's the sum total of your digital life?
I stopped at a garage sale during lunch yesterday. But it extended beyond the garage, into the kitchen and bedrooms, basement and yard... everything. And as I looked around, it became obvious this...
View ArticleIt seems everyone has a system to sell
Bear with me... there's a point to this. I think.Rebuilding wallsA couple months ago I started getting estimates to have our basement walls repaired. Thanks to Ryan Homes (parent company NVR, as in...
View ArticleWhy paying (and getting paid) for software is okay
There's this tale of Pablo Picasso I heard awhile back - we'll just say it came from the Internet. It's literally copied everywhere, and even though it's likely fiction, it makes a great point.Legend...
View ArticleTaming Twitter's New UI
The majestic, honking goose - Twitter's new mascot, lol.When I originally wrote a browser extension to hide parts of the Twitter UI, I was actually still using Twitter, which helped motivate me. I quit...
View Article