Blog

iStock_000005545558Small

Faking the Funk: Mocking External Services in Python Tests

In this day and age, it’s difficult to build an application that does not rely on some type of external service. Whether the service is handling user identity, analyzing interesting data, or hurling RESTful insults, you have to accept the fact that you now have a dependency on something you do not control. One place […]

TwitterFacebookLinkedInRedditEmail

traceview

python-traceview: A Library for the TraceView API

Not too long ago, we introduced the TraceView Data API, which exposes high level metrics and performance data related to your TraceView account via a RESTful API. For the unfamiliar, this means you can access server latency timeseries, application error rates, and even browsers used by end users. In an effort to make accessing the […]

TwitterFacebookLinkedInRedditEmail

image00

DRY Mockery in Python Testing

Note: the code referenced in this post, along with some extra context, can be found on github. I have tried to link into the repo at each of the inline code samples, for convenience. It might be useful to refer to the repo as a whole, though, rather than just the swatches under discussion. When […]

TwitterFacebookLinkedInRedditEmail

unit-testing-framework00

Writing Purposeful Unit Tests

Several recent blogs have discussed unit testing, some of them in considerable depth. One of my favorites is Jeff Knupp’s entry, which is a comprehensive look at how to write and understand good unit tests. Jeff touches on the motivations for testing, but like most other writers, moves on quickly to the details of actually […]

TwitterFacebookLinkedInRedditEmail

logo

Snakes on a Road Trip: PyCon 2014!

PyCon is always a hotly anticipated event, and this year I’m quite excited to be headed up to Montreal with my coworkers Kristin, Ari, and Dan. Better yet, this is the first conference that we’re attending via road trip! I’ve done the same journey by train before, and we’ll have some nice scenery to look […]

TwitterFacebookLinkedInRedditEmail

s3-list-get-bucket-default

How to Save 90% on Your S3 Bill

AppNeta has used a lot of open source libraries and programs in building and running our architecture. One utility in general that’s provided us with an easy way to slice up and investigate our AWS spending is the awesome Ice. Instead of having to do manual tabulation based on the monthly billing email from Amazon, […]

TwitterFacebookLinkedInRedditEmail

python-none-compare

Being Nothingness: Comparing to None in Python

The “is None” Idiom Consider these two snippets from PEP-0008: “Comparisons to singletons like None should always be done with is or is not, never the equality operators. Also, beware of writing if x when you really mean if x is not None — e.g. when testing whether a variable or argument that defaults to […]

TwitterFacebookLinkedInRedditEmail

python

Hold the Line: Line Profiling in Python

If you’ve ever profiled code in Python, you’ve probably used the cProfile module. While the cProfile module is quite powerful, I find it involves a lot of boilerplate code to get it setup and configured before you can get useful information out of it. Being a fan of the KISS principle, I want an easy […]

TwitterFacebookLinkedInRedditEmail

gcp-logo

Loading up some Big Queries

Google’s BigQuery service has a lot to offer for organizations with massive datasets to query against. Rented massive parallelism is much more cost effective than trying to set up the infrastructure to do it yourself. BigQuery has some limits, though — flexible boundaries that your design needs to accomodate. At AppNeta, our naive approach to […]

TwitterFacebookLinkedInRedditEmail

TraceView Data API

Announcing the TraceView Data API Today, I’m excited to announce a new feature to TraceView – the Data API! In a nutshell, the Data API exposes all of those high-level metrics you’re collecting in TraceView over REST, formatted as JSON. Now you can take that data, jam it into your own system and do whatever […]

TwitterFacebookLinkedInRedditEmail

close