Just got an MSDN account, which always comes with some old treasures (hey, beauty’s in the eye of the beholder). Take a trip back with me, to the days of Windows XP, the beginning of the .NET Framework, and even further… ;)
Porting .NET Framework code to .NET Standard has been a learning experience, with some challenges too. This time I had a .NET Standard library that expected an application config file, but loading one from an NUnit test suite proved to be more difficult than it sounded at first.
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 a format string stored as a constant.
Ever thought it’d be convenient to attach metadata to your code at design time, then read it at runtime? Attributes let you do just that - to methods, classes, tests, enumerations, and more. Use reflection to read them at runtime and take some action. Here’s a few examples for the uninitiated…
Most 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 is misbehaving.
Ever had an EUnit test fixture fail with meck reporting it was “already_started”? Well I did, and here’s why…
I recently realized that somehow, in the 6 months since I last logged into my Mozilla developer account, none of my short list of emails would let me back in. Here’s how I regained access.
Last year I caught an article about a simple, free service called ipify that returns your IP address. It became so popular the author soon found himself dealing with billions of requests per month! Here’s a look at that API and the IP Geolocation API that it spawned.
Need a comic break? Here’s some web comics I’ve stumbled upon over the years - the funny, sarcastic, informative, and just plain weird.
When dealing with a dynamically typed language, any effort to tame the beast can pay off. For Erlang that means Dialyzer specs, but they can be a pain. Here’s some warnings I’ve seen and how to solve them.
Here’s a few tricks for rendering markdown in GitHub that most people wouldn’t know about. Oh, and they work for new Issues, Pull Requests, and in the Wiki too!
I’ve always been a fan of wikis, but GitHub’s is so poorly designed it doesn’t get much love. I once wrote about cloning a wiki locally and editing it using Gollum, but now I’m taking a look at hosting it externally on DigitalOcean, using Gollum and keeping it in sync with the repo hosted on GitHub.
Handling date and times is a thorn in every experienced developer’s side. If you haven’t had the pleasure yet, you will. ;) Coming off a week of standardizing some datetimes across an Erlang app, here’s a few personal thoughts.
Despite its marketing, Visual Studio for Mac is not the Visual Studio that millions love, ported to the Mac. Something that’s absolutely trivial in standard VS, switching between .NET Frameworks, wasted several of my evenings. Maybe it’ll help someone else.
If you work with the .NET Framework long enough, you may eventually find yourself tasked with converting one language to another, either by request or necessity. But conversion isn’t always necessary - it’s possible (and easy!) to have one solution with multiple languages.
I wrote a small library for calculating Easter and other holidays in Erlang. Here’s how I did it and what I learned.
The Wayback Machine, a product of the Internet Archive, is an ambitious tool that’s been documenting websites for many years. It’s useful when a page you need is removed by the original author. Let’s take a look at their API and how we might make use of it.
After writing about so many APIs and having to figure out the auth process for each, I wanted to compare and contrast how some of these services approach authentication and authorization, and why they might’ve decided to do it the way they did.
Have you ever had a collection of items and needed to select a random one from the lot? What if you have a class with some property (i.e. ‘age’ or ‘weight’) that you want to take into account when doing the random selection? Let’s see how we might approach that…
Have you ever tried to execute a function at some future time in Erlang? You can, with a timer, but the compiler may complain that the function you’re calling via the timer is unused. Why is that and what can you do?