Simple multiprocessing in python using Pool

At some point during development I came across a problem that was CPU bound, i.e. performing some calculation in a sequence/loop, as opposed to I/O or Memory bound, which would indicate that the the memory or disk access was the limiting factor (which it wasn't in this case). In order to speed up this calculation in python, without having to rely on rewriting the calculation in C to optimize, I decided to fall back on the multiprocessing python library. This post details the simple problem and relatively simple solution.

Read more →

Quick guide to using BootCamp with VirtualBox

I recently changed over to Windows 7 (64-bit) on my BootCamp partition from the 32-bit version, which unfortunately required a full backup and reinstall from scratch. In addition to the several small hiccups I encountered during the initial BootCamp partition setup, I also needed to configure a VirtualBox virtual machine to launch Windows from OSX. You might ask, why go through all of this trouble, when I could easily create a virtual machine without a BootCamp partition? The reason is simple; I use Windows for those few games on Steam that don't have a decent (or any) OS X port. This is a quick summary of the problems I encountered and their solutions.

Read more →

Git-ing started: some git basics

Recently I have been spending a lot of time on GitHub, attempting to quickly learn git version control in hopes of constructively participating in some open source projects that have caught my eye.[1,2,3,4] Consequently, I have learned quite a few frequently used git commands and standard methods which I will enumerate here in hopes of both reinforcing them in my own mind and sharing them with people also attempting to pick up some basics of git.

Read more →

What is polyfill.io and is it useful?

While I was going through the code in the theme that I forked (ghostentista by Viktor Bezdek [1]), I immediately saw a script and subsequent css call to polyfill.io, with no obvious description of its purpose. Landing at polyfill.io using your browser returns a text string of javascript, and offers nothing in the way of explanations. The GitHub repository [2] provides some clarification, but uses the term polyfilling to describe itself, with no indication or reference to the meaning of this term. So what is polyfilling and why do I need it?

Read more →

Ghost with nginx, PostgreSQL and SSL

I used to use Wordpress on a shared hosting plan configured with Apache and MySQL for my blogging needs, before I decided it was time to make a switch to something a little more modern. Enter Ghost, a node.js powered blogging platform.

When I first encountered Ghost, not being a web developer I had no idea what node.js meant for web development other than it was a server-side javascript interpreter. It was shortly apparent that I could not install Ghost on my existing hosting plan, so I made the move to a VPS and configured my own servers. Since I was starting from scratch, I opted for nginx and PostgreSQL (LEPP) rather than a standard LAMP configuration. This post details some of the specific configurations I had to make to get Ghost to work well.

Read more →

Feature upgrades to Ghost

The primary purpose of this blog is really to let me talk a bit about the things that interest me and things that I have been working on, primarily programming projects that relate to my day job; coding is a tool to achieve other results, but I sometimes come across interesting problems that need to be solved. In this post I will cover some of the features that I needed to add to make it easier to discuss the topics I had in mind.

Read more →