Concurrent Programming in Erlang - You've Got Mail (week one)

This past weekend was great weather-wise. Sunny and 70. Summer's around the corner but in Ohio there are never any guarantees... the weekend before it snowed 4 inches. We had places to go and errands to run (as always), but I got some work done outside, took the kids on a bike ride, and met some new neighbors down the street who were cutting up trees they'd taken down (free firewood!). Sunday ended with a nice cookout, a good vanilla stout, and watching "Fantastic Beasts and Where to Find Them" with the kids. All-in-all, it was pretty awesome. This is »

5 Quick Hacks for Your Ghost Theme

I'm using the default "Casper" theme that installs with Ghost (read more about my migration from WordPress to Ghost), but these hacks should be usable in any theme (with adjustments). Using these requires that you're able to SSH into your Ghost installation, or otherwise have access to upload and modify files. Hack #1: Adding a "Subscribe to Tag" RSS feed button Ghost can generate RSS feeds for individual tags, but they're not all that discoverable. To help your visitors, add the last line in the following snippet to the ghost/content/themes/casper/tag.hbs file. It combines your blog »

Migrating my blog from WordPress to Ghost

About a week ago I decided to migrate my blog to the Ghost platform. I'd been thinking about it for awhile - even installed it once or twice to play around with it - but never fully committed. Truth is, I didn't really want to switch. I knew that, however little, the process would certainly be more painful than doing nothing. So the pain of going through the switch had to be outweighed by the pain of not switching. I guess that finally happened. WordPress can do pretty much anything thanks to plugins, but that's its weakness too... especially if »

How to evaluate a string of code in Erlang at runtime

Erlang has the ability to read in a string, representing a line of code to execute, at runtime. It can parse it out, evaluate it and return the value. Evaluating Simple Expressions At its most basic, we can just read any expression passed in and execute it. -module(parser). -export([ evaluate_expression/1 ]). -spec evaluate_expression(string) -> any(). evaluate_expression(Expression) -> {ok, Tokens, _} = erl_scan:string(Expression), % scan the code into tokens {ok, Parsed} = erl_parse:parse_exprs(Tokens), % parse the tokens into an abstract form {value, Result, _} = erl_eval:exprs(Parsed, []), % evaluate the expression, return »

5 Ways to Reclaim Space on Your Android Phone

I have a Moto E smartphone, which has pretty minimal specs (including internal memory), so I’m regularly looking for ways to make the most of limited resources. It’s barebones, but it gets the job done and I paid $100 for it. 2 years ago. Since that’s what the new Samsung and iPhone models cost every few months on the monthly plan, and I haven't figured how to make money grow in our garden, I’m cool with it. You’re here, so I can safely assume you’re in the same boat. I mean, unless you searched »

What is "charlieplexing"? (a short demo using the Raspberry Pi)

While I was reading Raspberry Pi Cookbook, I came across a few things that looked interesting to demo. One of them was the concept of “charlieplexing“. On past projects, when I needed multiple LEDs (like in my Simon clone), I just connected each individual LED to its own GPIO pin. I was fully aware that current had to travel through the LED in one direction and that it wouldn’t light in the other direction, but it hadn’t occurred to me to take advantage of that fact. This is where charlieplexing comes in – we arrange multiple LEDs such that »

Creating Your Own Indoor Vegetable Garden

Since building my first raised garden bed a couple years ago (there’s a second one next to it now), I’ve really enjoyed growing our own veggies. It’s a fun project if you’re into that sorta thing – fairly easy to setup, cathartic in its rhythm (weed, water, harvest, repeat…), and the payoff half-way through summer is a lot of fresh snacks! Pretty much every weekend… End-of-summer harvest of basil We had lots of caprese salad! It can be a good activity for the whole family too. Most of the work is on me, which is fine since »

Cooking with Simon Monk - Raspberry Pi Cookbook

It’s been too long since I messed with the Raspberry Pi. It started with Hacktoberfest a few months ago, then we had a baby, and then I got it in my head to write a Chrome extension and… life happened. So I picked up a copy of Raspberry Pi Cookbook by Simon Monk to jump-start things again. I assumed it’d have “recipes” for some cool projects, but it ended up being much more comprehensive. It takes you from the very basics of unpacking your Pi and setting it up, to installing Raspbian and creating your first Python script, »