Pinned Post

TaskWarrior, TimeWarrior, and that moment it all goes wrong

I've been a user of TaskWarrior for a long time, though not always seriously, and I recently started using TimeWarrior with it so that I can keep track of the time that I spend on tasks. This is a tale about how it all went wrong, but because of some really smart choices by the original developers, it all came back in the end.


Recent Posts

Sites loading with curl and debugging

This one is a full on face-palm of fun: A client recently redirected one site that we didn't host to one that we do. At some point, Googlebot had indexed their old site and had URLs to files on the site, and fetching those URLs took down our site.


MySQL Users, Authentication Order, and Anonymous Logins

Last week we ran in to an issue wherein MySQL stopped allowing logins from several of our user accounts. This post documents how that happened, and what you might need to prevent this issue going forward.


Using vim macros to quickly delete SQL CREATE TABLE statements

I, like most developers, am lazy (which is apparently a virtue!) and recently needed to remove a bunch of CREATE TABLE statements from a mysqldump. The vim macro below is how I accomplished that task.


How Segment.com addresses app fatigue and why that's so important

I've been working for the last six months to build a long-term roadmap for the products at my nonprofit technology company in North Carolina, and one of the products I discovered during my research into data segmentation and analytics tools was Segment.com. I was pretty sure when I found it that I had found something substantially valuable to nonprofits, but it took me a free trial and few months to really wrap my head around the value it brings to any startup or small business struggling with "app fatigue".


TinyMCE, Google Chrome, and image editing

My day job is in the process of replacing TinyMCE with another WYSIWYG editor, Quill. Even once that happens, we'll still be supporting existing clients that use TinyMCE, and those clients will likely never receive the "replacement," but they'll still receive updates.


Date logic is hard, and how you can make it easier

There are excellent tools available for essentially every programming language allowing you to work with dates as objects, because date logic is hard. But it doesn't have to be, and you can make it easier.