• Installing GCC on Mac

    Posted in Coding on Nov 20, 2015

    Suppose you want to use the latest and greatest version of GCC on the Mac because you want to use features in C++11 that are not yet available in XCode. There are probably a few ways to do this, but one way is via MacPorts which provides precompiled binaries for tons of packages. You can follow the following steps to install GCC 4.7 via MacPorts. Others versions (including GCC 4.8) follow a pretty similar procedure. Browse to the MacPorts website. Download the DMG image for your operating system Install the package Open up a terminal Applications > Utilities > Terminal Make sure that you hav...

  • Using Redis as Django Worker Queue on Heroku

    Posted in Coding on Nov 20, 2015

    Heroku documentation recommends using Redis Queue to setup worker tasks. But for me, that document was pretty incomplete for how to setup Redis Queue for a production Django application. This guide will show you how you can setup Redis Queue to schedule regular worker tasks for a Django application running on Heroku. What do I mean by "schedule regular worker tasks"? I mean run some code on a regular basis, for example every day email a report of users over the last day. Or, for example, every 12 hours automatically delete some cached data from your database. This guide is also useful if you w...

  • Development Process: From None to Not None

    Posted in Coding on Nov 07, 2015

    A pretty common question I'm asked is what kind of R&D process we used (and I implemented) at my last company. The question is enormous because it covers at least tracking bugs, handling feature requests, code branching strategy, testing and deployment. The answer is even more difficult to answer because our process evolved as we got better and responded to what was happening around us. I think the evolution is instructive because it represents real choices we faced. If this is a story, then it has to have a beginning. The story for me begins with the state of affairs when I joined. The initia...

  • Passing the YCombinator Interview With No Preparation

    Posted in Business on Oct 13, 2015

    For me, applying to and interviewing for YCombinator was a whirlwind experience. We applied a few days after the deadline and then didn't hear anything until 5 days before we were to be in California for the interview. Unlike anyone else I spoke to, we essentially did no preparation. Quite honestly, we were working on another major deadline that week, and simply didn't have more time to prepare. Still, we managed to get in, so we must have done something right. Although the title of this post is all about no preparation, I don't advocate that approach or any other. I don't have any advice, but...

  • Split Windows and Linux Configuration

    Posted in Coding on Sep 25, 2015

    This is part 4 of a 4 part series on how to setup Django locally on Windows and deploy to Heroku. Introduction Setup and Run Django+Heroku Locally on Windows Change Django from SQLite to PostgreSQL Split Configuration for Windows and Linux (this page) You may recall from the first page that setting up Django locally on Windows and deplying to Heroku has a problem. If the application uses PostgreSQL, then the configuration between Windows and Linux cannot be the same. This final part describes how to setup the configuration (requirements) so that Windows and Linux have different requirement...

  • Setup and Run Django+Heroku Locally on Windows

    Posted in Coding on Aug 19, 2015

    This is part 2 of a 4 part series on how to setup Django locally on Windows and deploy to Heroku. Introduction Setup and Run Django+Heroku Locally on Windows (this page) Change from SQLite to PostgreSQL Split Windows and Linux Configurations This page covers how to get everything installed and running locally on Windows, including running locally via Heroku. Heroku Toolbelt Setting things up is mostly an exercise in executing a series of commands at the command line, and it is much easier to run the commands via the Bash Command Prompt. The Heroku Toolbelt includes the Git Bash Command Promp...

  • Change Django from SQLite to PostgreSQL on Windows

    Posted in Coding on Aug 19, 2015

    TODO fix the link at the bottom of this page! This is part 3 of a 4 part series on how to setup Django locally on Windows and deploy to Heroku. Introduction Setup and Run Django+Heroku Locally on Windows Change Django from SQLite to PostgreSQL (this page) Split Windows and Linux Configurations This page covers how to setup PostgreSQL on Windows and use it from a Django project. PostgreSQL and psycopy2 Versions Before doing anything to change Django, the local machine needs to have an installed copy of PostgreSQL and the psycopy2 Python adapter. Since this is on Windows, it is much easier to...

  • Setting up Django Locally on Windows and Deploy to Heroku

    Posted in Coding on Aug 19, 2015

    Setting up Django 1.8 with PostgreSQL to run on Heroku - that's straightforward. Just follow the official Heroku documentation Getting Started with Django on Heroku. But what if you want or need to do development locally on Windows? Then this is the guide for you. This guide will show you how to setup the following stack: Python 3.4.3 Django 1.8 PostgreSQL 9.3.4 and how you can develop on Windows and deploy to Heroku Linux. For this guide, I'll assume you are starting from scratch - as in you just installed a new copy of Windows. I'll also try to explain some of the why so when this guide b...

  • Practical Trello for Small Team Software Development

    Posted in Coding, Business on Aug 14, 2015

    For small software teams on a limited budget, Trello can be a really good tool for keeping track of and planning work. Since Trello isn't designed for this task, it gives a lot of flexibility in creating a lean process around it. And I mean really lean - it even works well for an individual software engineer working on a large project. But since Trello isn't designed specifically for the task, a natural first question is what kind of process to create? This post is all about the process I've created and used in Trello before - the good and the bad - so you can recreate it. I'll try to go into...

  • Leaving SnapEDA

    Posted in Business on Aug 06, 2015

    My big personal news in February was undoubtedly that I was leaving National Instruments to join a startup, SnapEDA. So it must be equally big news to announce in August that I'm leaving SnapEDA. How did I come to these series of decisions, and what's next? The second part, what's next, is the easiest to answer. For the immediate future, the answer is writing. I'm lucky enough that I can take a couple months off work and spend the time simply sharing my experience and what I learned from it, and you'll see that here on this blog. For now, I'm not looking for work. The more interesting part of...