profile pic

Nginx, SSL, and Cloudflare

June 04, 2018

Last week I was migrating servers, from a dirt cheap annual plan to a basically just as cheap cloud hosting plan on Hetzner. I was pretty excited to start using Docker for hosting, not for everything, but as an easy way to spin up services. I could have done it on my old host, but messing up would…

Using Bookmarklets to Make the Web Usable Again

August 30, 2017

Based on what's going on with most webpages, it's the new hotness for websites to stop users from actually consumingcontent by overlaying useless crap on top of it. Overlays nagging you to join some newsletter before you even have a chance to read what you came for. Dickbars eating up your precious…

Using Semantic Commit Messages

August 18, 2017

I was recently exploring the world of monorepos and trying to see what tools were available for working with them. Many repos seem to use Lerna for this, at least in the node world, so I was reading the docs to learn more about it. One of the nice things Lerna handles is package versioning, and…

A case against let

August 08, 2017

Way back in June of 2015, es6 (or es2015 if you prefer) was finalized. One of the new things it brought, and arguably the easiest one to understand, was block-scoped varibles. Namely, let and const. There are tons of articles around about how they work and how they differ, like this one from Wes…

Updating state from a directive in Vuejs

July 28, 2017

This week, one of the local devs in a local Slack group has been asking about integrating Vue into some legacy code. In particaular, he was trying to build a Vue component that used some existing jQuery plugin code; a select box wrapped in chosen. He wanted to wrap this functionality in a directive…

Learning Vue Talks

July 20, 2017

Despite my lack of posting here, I've been pretty busy in the community, having given a talk at a local meetup at least once a month for the first half of the year. Back in February, I gave a talk about learning Vue.js, which did a pretty deep dive into how Vue works and how to write components in…

Advanced Use of Sass with Vue-Loader

January 29, 2017

As I've mentioned before, I've been using Vue.js a bit lately, and really enjoying it. This weekend, I set out to use Sass with vue-loader, using Webpack 2.2. Getting it working was really simple, just install node-sass and sass-loader, add lang="sass" to your style tag, and everything works. The…

Crushing on Vue.js

December 06, 2016

I've been seeing a lot of chatter about Vue.js lately, especially since the 2.0 release. When I looked at the docs and API, it seemed very approachable. I had a feeling that Vue would be a pleasure to work with, so I reached for it on a small project recently. My suspicions have been confirmed, I…

Using Kibana for Site Traffic Analysis

June 09, 2016

One of the thing I did when I moved this site over to Metalsmith was to put up a very thin Express server and start logging traffic to the site to a winstond log server I set up a little while back. I could use my server logs directly, but I'm already logging a couple of other sites to this log…

Moving to Metalsmith

June 01, 2016

I posted about my love for static websites some time ago, and my feelings haven't changed. My feeling about the tools for making static site, on the other hand, has. A while back, I converted this site to Docpad, which worked well enough, but also came with more cognitive overhead than I'd have…

Tips for Publishing Modules to npm

May 05, 2016

I've been pushing some modules up to npm recently, and I've encountered some small issues along the way. I figured I might as well share a couple of tricks I use to make publishing modules easier. First, if you've got some scripts you need to execute before publishing, such as running tests or…

Duplicate Data in NoSQL is OK

September 06, 2013

I started using Redis for a project recently, and so far it's been pretty fun. It's an interesting storage solution which most people equate to a key/value store. It's more than that, and summing it up thusly ignores some of the uniqueness of Redis. But, this isn't a post about Redis specifically…

Stop Using QR Codes Wrong

August 30, 2013

A couple weeks ago, I was talking with some people I know about driving engagement and linking the physical world with the digital world, and in that discussion, the topic of QR codes came up. It's my opinion that everyone uses QR codes wrong, and I had a lot to say on the topic, things that I…

Cross Platform Tooling with Grunt

August 05, 2013

Recently, I've been working on building a little web application for managing events (more on that in the future). As part of that, I started to explore good ways to handle the presentation layer. Topcoat looks really interesting, and Pure seems like it has some utility as well, but both required…

OpenHackPHX 002, A Postmortem

July 26, 2013

Last night was the second OpenHackPHX, and once again, it was a pretty successful event. I guess it's hard to have a failed OpenHack, since the guidelines are so loose, but I digress. Without further ado, let's dive in to the details! The Format There weren't nearly as many people that came to this…

How I Use Backbone's Router

July 17, 2013

This morning I read an article titled Why JavaScript web applications should embrace traditional URLs, which makes a solid case for not using hashes or hash bangs in your URLs. This was by no means the first article on the topic, but the interesting part was that about half way through, Mathias…

Configuring Apache and fcgi for Multiple Wordpress Sites

July 05, 2013

For my managed Wordpress hosting service, WPCurrent, I kept running in to an issue with the server running dangerously low on available memory, even after only taking on a handful of sites. This was caused by the fact that I run each site in an fcgi process, which itself runs several Apache…

Inaugural OpenHackPHX, A Postmortem

June 25, 2013

I organized the very first OpenHackPHX this past Thursday, and all-in-all, it turned out to be a pretty solid event. It seemed like everyone had a great time, and a lot of people asked me when the next one was going to be, which is always a good sign. I thought I'd take a moment to write up my…

Use Lodash Instead of Underscore

June 21, 2013

I've been using Lodash in place of underscore for a while now, because it's faster, it has AMD support, and it has extra functionality that Underscore lacks. Because it's 100% compatible, if I have a library that requires Underscore (Backbone, for example) or an existing code base that already uses…

Wordpress is out, Docpad is in

June 15, 2013

I've tried to leave Wordpress in the past in favor of something that would be more pleasant to use. It's been a long search, but I never found anything that fit the bill. Other CMS systems were just as painful to use, and rolling my own just wasn't appealing enough to actually happen. This search…

Static Websites Rock

May 28, 2013

Lately, I've been attending a lot of Wordpress meetups, because I was hoping that learning how to use Wordpress effectively would allow me to build client sites quickly. But, the more I see of Wordpress, the less I want to use it. It's a large time investment upfront, and once you have a client on…

Grunt, for a Painless Build Process

April 27, 2013

In the world of web development, build processes are becoming a must. For one thing, abstractions are quickly becoming the norm, particularly with CSS, because Less, Sass and Stylus offer so much more than vanilla CSS that they are worth adding a build process just to use them. Client-side templates…

Responsive Layouts with Stylus

February 14, 2013

When I tell people they should be using CSS pre-processors like Stylus, Sass or Less, I inevitably need to explain why. This can be tricky if you are talking to someone that hasn't used CSS much. Typically, discussions evolve around variables and mixins, and usually that's enough to interest people…

Cheating reCAPTCHA

December 02, 2012

This isn't a post about bypassing reCAPTCHA, but rather, some fun information about the service. I've mentioned this to a number of people, and I have yet to run in to someone else who already knew this. Hopefully you'll find it fun too. I don't recall how I know this, but apparently it's not…

Going back to neutral

November 16, 2012

It's been a while since I've had time to sit down and code anything. Since I've gone back to the world of full-time employment, I've had very little time to work on projects. It sucks, but it was expected. Worse, any time I do have free I always elect to just veg out and watch TV or something…

Why I Use Sublime Text

June 14, 2012

I've always been a vim guy. Try as I may, I just can't get myself to like any full IDEs. I've tried large projects like Eclipse and Aptana and small editors like Blue Fish and even gedit, but nothing has ever made me leave the comforts of vim. Despite my love for vim, I don't think it's perfect. I'd…

Hello There, Windows Phone

June 10, 2012

I went to a "Node Bootcamp" hosted by Microsoft yesterday. As I had expected, there was a lot of talk about Azure, which is ultimately where we were supposed to upload our projects. They spent the first part of the morning talking about Azure, and the later part showing how to write a simple Node…

Git Flow

June 07, 2012

Git flow is basically just a shell script that automates some parts of git. But the parts that it automates make it pure bliss to use. From Jeff Kreeftmeijer's blog post on the subject: I’m astounded that some people never heard of it before, so in this article I’ll try to tell you why it can make…

More Git Magic

June 03, 2012

I recently had a chance to watch Gary Bernhardt's git workflow video and was blown away by a lot of the aliases he has set up (and by his workflow!). One of the coolest and most useful things he had setup was a log viewer that showed commits, their paths, the author, when it happened, comments and…

Easy Screenshot Sharing in OSX

May 28, 2012

Now that I'm using a Mac, the screenshot uploader I wrote isn't all that helpful. Shame, I was really enjoying the quick and easy screenshot sharing. Fortunately, OSX has some built-in hotkeys for taking screenshots. What's more, you can change where they save. What's even more, you can add scripted…

Git Info in your Bash Prompt

May 24, 2012

I was hanging out with a very cool fellow developer, and while he was showing me something on his computer, I happened to notice that his shell prompt changed when he entered his git repo. The prompt showed what branch was currently loaded, like so: Pretty boss, right?! He told me it was part of…

Of CORS IE is a Problem

May 24, 2012

I'm in the middle of building a site in Node that's driven by a REST API, and the plan for the customer-facing site is to make it consume this API via Backbone. Of course, I'll be hosting the API on it's own subdomain and the site on the root domain. So now I've got a problem; cross-domain XHR. I've…

My Move to Mac

May 14, 2012

As I've tweeted recently, I sold out earlier this month and bought a Mac. A Macbook Air to be specific. So why abandon all my years and years of Linux use? Because Apple seems to be the only company making laptops worth buying. I think this is evidenced by the second-hand Macbook market, which is…

Slim-Jade, A Lightweight PHP Framework Using Jade Templates

March 29, 2012

Recently, I put together a landing page for an idea I had to try and test whether or not it was viable. I drove traffic to the page with Microsoft's AdCenter, tracked clicks on some categories and tried to get people to sign up for a mailing list to be informed about when the service goes live…

Evernote's Clearly

February 10, 2012

I just found Clearly, from Evernote, and it's changed how I read news and blogs. Countless times in the past, I'd follow a link from Hacker News or tweet or whatever to be assaulted by annoying ads and content, tiny, unreadable text, terribly formatting, or sometimes all these and more. With the…

Trello is Awesome!

January 14, 2012

Back in September when Trello announced their launch, I immediately knew it was going to be amazing. Part of me just loved the interface for its simplicity and exceptional responsiveness. But more than that, the idea really was pretty simple and quite powerful; organize all your ideas into cards…

Validating Startup Ideas

January 06, 2012

About 2 months ago, an article came across Hacker News about how to quickly validate startup ideas. The idea is basically as follows: Identify a potential problem you'd like to solve Create a landing page that states the problem and that you have the solution Give little or no insight in to your…

Ubuntu, Node and Heroku

November 03, 2011

I recently started playing with Node.js, and while I can play locally just fine, I wanted to make sure I had a place to host once I had something worth hosting. Enter Heroku. Why? Because it's free to host until you draw some real traffic, it has a really cool addon ecosystem with a great collection…

Atheros AR8131 and Linux

May 26, 2010

A while back I picked up an ECS 945GCD-M motherboard to replace my dead VIA board that was running my RAID server. The board is pretty nice, sitting there completely silent, running 64-bit Ubuntu and packing far more power than the board it was replacing. But it has one glaring problem; the network…

Tweaking Gnome for Low-Resolution Displays

May 13, 2010

I'm a fan of Ubuntu, and I'm kind of lazy about setting up my desktop, which means I'm using Gnome as my window manager. Over the years I've grown to like it... it's not perfect, but it's livable and works pretty well. One of the problems I've always had with it, though, is all of the window…

Serving Files in Internet Explorer over HTTPS

May 11, 2010

I recently came across a problem where serving a file to Internet Explorer would result in the following error message. This affected IE6, IE7 and IE8 in my testing. The way I was serving the file was through PHP via readfile. Before sending the contents of the file, I was, of course, setting some…

Samsung X360 Backlight Control with Ubuntu

March 30, 2010

I recently sent my Samsung X360 laptop to the shop. The bearing on the fan had gone bad so I sent it in for warranty replacement. Before I sent it, I thought I would wipe out all my data since a lot of it was work-related and I didn't need that information getting out, plus I didn't want to confuse…

Living with PulseAudio via PulseAudio Device Chooser

January 06, 2010

Telecommuting is a pretty sweet gig with a good number of benefits. To name a few, while I'm working I can: Toss some laundry in the machine Start my lunch and work while it cooks Sign for packages when they are delivered And that's just the tip of the iceberg. However, to make telecommuting…

Asynchronous File Downloads in PHP

October 16, 2009

I needed to "asynchronous PHP" recently and it took me a little while to find the solution. What my script basically does is generate a PDF file for the user to download based on some parameters they have chosen. The problem was, the PDF generate take a while and during that time I needed to show…

PPTP VPN Routing in Ubuntu using Network Manager

October 01, 2009

Back when I was still on Ubuntu 8.10 (Intrepid), I had near endless problems with PPTP VPN access using the network manager. I wasn't alone, and I guess I was pretty fortunate that it worked at all. My problem with it was that routes never worked correctly so ALL of my traffic was routed through the…

Ubuntu 64-bit and Adobe Air

June 14, 2009

UPDATE 2009-10-01: I've just gotten Adobe Air running on my Ubuntu 9.04 (Jaunty) install. Apparently Adobe updated their installation instructions to include all the required steps now. Good for them! There I was, running 64-bit Ubunutu and trying to get Adobe AIR to install. The problem is, AIR is…

Ubuntu 64-bit, Firefox and Flash

April 23, 2009

OK, so you have this sweet new computer (much like myself) running 64-bit Ubuntu like a champ. Except for one thing; Flash elements on webpages keep flaking out. That is, from time to time, instead of seeing the Flash content, you see a grey box that doesn't do anything. It just sits there, mocking…

How Not to Sell MP3s

March 15, 2009

I recently came across the band 3 on last.fm and absolutely love them. I managed to find all of their albums via torrents, but I thought I would actually buy their stuff since they aren't on an RIAA label. Their website didn't help at all and CDBaby didn't have any of their stuff. I was about to…

My Sweet New Laptop

March 11, 2009

I've been considering picking up a new laptop for a while now. My old laptop, an ageing Dell Inspiron 8500, had treated me well for a few years, but I really wanted to change to a more portable machine. The Dell weighed in at around 8 lbs., had a battery that lasted about half an hour at its best…

Remote Backups with Amazon's S3

February 09, 2009

Recently, my SATA controller on my RAID box failed, silently corrupting my entire array. Fun stuff, I assure you. Luckily, I had backed up the array about a month before the failure and was keeping a nightly rsync running. I had a few things that weren't included in the rsync backup, but I didn't…

Fallout 3 Terminal Hacker

January 30, 2009

I recently started playing the game Fallout 3 a little more and I came across a terminal I could actually attempt to hack. After a few failed attempts at it, I thought I would poke around on the Internet and see if anyone had any guides for hacking the things. Instead, I found this online terminal…

Multiple Drive Failures in RAID-5

January 29, 2009

I have a server set up with a RAID-5 array that I use to back up pretty much all of the data I have. Sure I have a bunch of things burned to DVD, but at only 4.3GB a pop, that can very quickly add up to a number of DVDs, and in fact already has. My server is actually an upgraded version of my old…

Building a Better CAPTCHA

January 02, 2009

CAPTCHAs can be good for stopping SPAM, but the last thing most of them are are usable. Don't take my word for it, it's a fact. One of the most interesting alternative I ever saw was a HotOrNot mashup where you had to pick the three best looking ladies to prove you are a human. It was both usable…

Drupal's On Hold

November 17, 2008

I know I said before that I would be replacing Wordpress with Drupal around here, and I did start working on that. However, the more I read about Drupal, the harder it seems to do custom things. Actually, it's more a problem of poor documentation than it is a lack of flexibility. Still, if I don't…

Media Playback in Ubuntu

August 23, 2008

This all started because I had some Real Media (rm) videos that I wanted to view in Linux. But, like so many other sane people out there, I didn't want anything to do with the official Real Player for Linux. I've never been a fan of Real and I've always thought their software was a bloated mess…

Farewell Wordpress

August 18, 2008

In an effort to save time when I put together sites for people, I've been working on a universal engine I can use. It is modeled loosely off the MercuryBoard code and, for the most part, has served me pretty well. Recently, I've tried to revamp it with more object oriented code, integrating PEAR and…

My History of Coding and Computers

August 02, 2008

Apparently one of the people Aaron works with called him out on his programming and computer use history and he posted his response on his blog. In that blog, he took the liberty of calling out a few of his friends, myself included. I put off responding because my computer crapped out on me again…

Mootools, I Choose You

July 04, 2008

I've always been a "do it yourself" kind of web developer, but after reinventing the wheel time and time again and struggling to make my code work in the various different browsers out there, I've come to appreciate that I can save a TON of time through different libraries and toolkits. I'm no…

Skirting ISP Torrent Filtering Reset Requests

June 07, 2008

Many ISPs these days employ traffic shaping to make their networks run smoother. In the most basic sense, they give priority to more critical traffic, like VoIP for instance, and slow down less important traffic, like HTTP and Torrents. Lately, many ISPs have been doing their best to slap down any…

I'll Have One of Your Finest Arduinos, Please

May 27, 2008

I've seen all kinds of really cool projects that use the fancy new Arduino microcontroller. I'm not the biggest fan of C or C++ (to be honest, I hate them both), but the Wiring model and the Processing environment seems interesting. So much so that I decided over this long weekend that I wanted to…

My Foray Into Data Recovery

March 23, 2008

I've been growing increasingly concerned with the quality of hard drives being made today. It used to be that a hard drive would last you many years before you'd see a failure out of it. In fact, I still have hard drives that date back to the early 90's that continue to work to this day. I can't say…

Wordpress Users, Check Your Registered User List

March 23, 2008

I recently got an email saying that I had a new user register here. Out of curiosity, I checked who it was, but neither the name nor the email was familiar to me. The username was alina77vere9uk and the email [email protected], which to me looked like the kind of email address that you'd see on…

Rolling Your Own .deb Package, Getting Secure VPN Tunneling on Ubuntu

February 08, 2008

As you may or may not know, Ubuntu doesn't include a build environment by default. What this means is that in order to compile program from source, you'll need to get the build environment on your own. This is simple enough though, as outlined below: sudo apt-get install build-essential…

Choosing Default Sound Card in Ubuntu

January 13, 2008

On my machine I have a SoundBlaster Live card as well as an onboard VIA sound chip. Since Linux ignores the system BIOS, disabling the onboard sound doesn't do anything. Obviously I don't want to use the onboard sound card or I wouldn't have bothered putting the SBLive card in in the first place…

Valid XHTML and Opening Links in New Windows

December 16, 2007

Well, as you can plainly see (assuming you've been here before), the site has gotten a facelift. Now that Aaron has his blog up and his looking really nice, I felt compelled to try and jazz up mine a little too. It's not done, but it's nicer than it was. I'll probably add a touch of color to the…

Ubuntu, Firefox, Flash and Sound

December 04, 2007

If you Google "ubuntu flash sound" you'll find a LOT of information about flash sound problems and how to fix them. The consensus seems to be installing alsa-oss and configuring Firefox to use it. However, try as I may, I couldn't get it to work. Then I read somewhere that you needed to set other…

Python, Pylons and FastCGI on DreamHost

December 02, 2007

All of the domains that I oversee (and those of most all my friends as well) all live on a server on DreamHost. Their plans are amazing; tons of storage space, tons of bandwidth, unlimited domains and emails, shell access and a slick administration tool. That being said, I've always stuck with PHP…

USB Devices in VirtualBox

September 06, 2007

I've been using VirtualBox for a while now after finding it in Automatix in Ubuntu. Anyway, until now, I've been perfectly happy not using USB devices with it. For the most part, I still am, but I was curious how hard it was to set up, so I looked it up. Here's what I found (originally posted here)…

Touchpad Speed in Linux

April 25, 2007

I've been running Ubuntu Linux for a few years now and it's by far my favorite distro out there right now. It's simple to use, quick to install and everything works out of the box. I used to run Gentoo but I got tired of compiling everything all the time to install things and spending days on end…

Configuring Access in MediaWiki

April 12, 2007

I've set up Mediawiki in a few times now, both at work and for personal use. Each time I do it, I end up having to learn how to set up access restriction again. That is, creating custom namespaces and restricting access to those namespaces to people that belong in specific groups. The reason I do…

Why Must Computer OEMs Suck?

April 09, 2007

So, I just picked up a Dell for my Mom. It was a pretty boss deal and I got a widescreen 20" LCD for $177 out of the deal. Anyway, I go to install the software my Mom is going to use and I'm shocked at all of the garbase software that comes installed. Some Corel photo software, McAffee, Google…