petfinder-api released

tldr; I have released petfinder-api, a Python client toPetfinder.com‘s web API. Important links: Documentation, source. petfinder-api is under the BSD License.

After months of waiting for things to settle down, Erin and I decided to spend the time to pick out our long-awaited second dog. Given that we wanted to rescue a dog, the obvious place to go is Petfinder.

We set out to find the perfect dog for Erin and I, and filtered down to what we were looking for. That only left… 36 pages to sort through. Petfinder’s filtering capabilities are very limited, the result display lists are somewhat hard to look through, and the whole thing is just pretty clunky.

Out of frustration (we had been half heartedly looking for months), my mind had often entertained the thought of trying to do better. Petfinder generously built in an API to get at their data, and it looked pretty simple. The problem was, I couldn’t find a packaged, maintained Petfinder API for Python. So it became my weekend project. This would be the first step towards making something more useful than Petfinder (getting on near equal footing as far as data goes).

I may or may not ever actually develop a Petfinder+, but I consider making it easier for developers to use their data a good cause, and am proud to announce the release of petfinder-api. It is a very thin wrapper around their web API, and includes documentation.

I’d love to hear any feedback, and hope this is useful to someone!

Pathwright launches, powered by Snakes and Jazz

After over two years of development, Pathwright has emerged frombeta, and is open to the masses. For those with knowledge to share, we hope this web application will give you an easy-to-use, easy-on-the-eyes way to teach others. We provide a structured, social way for your students to learn.

See the Pathwright landing page for more details, as I’m going to leave marketing mode and get into the more philosophical and technical topics that most of you will probably be more interested in.

What’s special about Pathwright?

There is no longer a shortage of online learning software to choose from. Players ranging from “free” to expensive exist, with wildly varying approaches and feature lists. We chose a very specific set of core principles to develop against:

  • Online learning should be easy for both teachers and students.
  • The software should be visually appealing and polished.
  • Do less than the competition, but do it better.
  • Prices are posted upfront, no sales calls or interaction with us is required to get started. We’re eager to talk to anyone who’d like to get in touch, but some of our competitors strong arm you into sales calls before you can even see the software, which we are loath to do.
  • It should be easy and affordable for organizations of all sizes to sign up, try the software free of charge, then elect to start selling courses as soon as they’d like.

We are a hosted solution that handles all of the unpleasant stuff for you (servers, billing, scaling, continuous software upgrades, support) for you. Our hope is that our customers can spend their time creating content and interacting with their students, instead of dealing with infrastructure or dialing IT.

A peek under the hood

Pathwright is powered by the Python and Django. The two were chosen for their ease of use, and being good enough to accomodate our fast-paced development process. Almost any modern, widely used framework would have done the trick, our team was just very comfortable with this particular stack.

All of our servers are on Amazon Web Services. We’ve found the pricing to be great, and the ability to effectively “outsource” portions of our stack has freed up a lot of development time. We run no media servers (S3 + CloudFront), no mail servers (SES), no self-hosted load balancers (ELB), and have drastically simplified a number of other things with AWS’s services.

A few really critical parts of our stack:

Some crucial Python packages:

Tell us what you think!

We’ve worked long and hard on Pathwright, bootstrapping it from nothing. At this point, we’re what you could say “too close” to the project to get all the feedback we need from our team. Please let us know what you think in the comments or via email.