May 142013
 

(cross-posted to blog.tempo-db.com)

tunneling-small

At TempoDB, we maintain multiple environments (production, staging, etc), and each environment is in a datacenter (Dallas, Seattle, etc). For the most part, we want strict separation between environments, but we have a growing list of traffic that ought to be allowed to flow between them (see below). We designed a new architectural primitive which allows us to securely permit some traffic, while still blocking everything else. Continue reading »

Jan 092013
 

(Cross-posted to blog.tempo-db.com)

In addition to our REST API and language-specific client libraries, we now offer the ability to bulk import data by uploading CSVs. The intent of this feature is to support the initial load of large amounts of historical data (many millions or billions of data points). By sending us CSVs (instead of just using our API normally), customers save themselves from having to build and monitor a large one-time job, and the problem is simplified to CSV generation. Continue reading »

Sep 082012
 

I opened my Etsy store in January (about 9 months ago), and have learned a lot about effectively marketing my store. For the first several months I was trying everything I could think of to increase my visitor count, and I did get a ton of people coming into my store, but the effort required on my part was substantial, and 3 months in I lost interest. That’s when things got interesting.
Continue reading »

May 012012
 

I have two similar data collection projects, both of which collect time-series data and serve it up with graphs and such. The first one I did uses postgres, and manually (in code, not postgres) manages averaging, data at various resolutions, and a few other complicated issues that are inherent in time-series data. For the second project, I went with RRD instead of postgres, and it vastly simplified data management (other than having to write the RRD integration code for javascript myself). Now, I’m working on refactoring these projects, because it makes sense to move to the first project over to RRD and then there’s no reason to have the graphing bits separate. Continue reading »

Apr 302012
 

A while back I built my own thermostat using an Arduino, nodejs, and Google Calendar. It worked really well, but when I moved to a new apartment last year I couldn’t use it (because I now have window units instead of centralized heating/AC). I finally got around to putting it back together this weekend, but I had to rip out the (now unused) thermostat code. What was a Google-Calendar-controlled thermostat is now just a thermometer. Not nearly as cool, but I’m at least glad to have the portion that makes sense back up. You can see it here. Continue reading »

Feb 162012
 

The site I’m working on now, deploys as static files. I haven’t put up a non-server-side-dynamic site since high school, so I’m exploring my options. I thought I could just throw the whole thing up on Amazon S3, but was surprised that it was slower than the current setup (nginx on Linode). I have been reading about the importance of fast load speeds on conversion, google ranking, etc (for example), so speed is a big priority for me. Here’s how I cut my site’s page load time down from around a second to around 500ms. Continue reading »

Feb 132012
 

My Etsy store has been doing well, but I’d like to overcome the friction of requiring an Etsy account. To reach a wider audience, I’d like to additionally offer my products on a site that wasn’t specific to a community. To that end, I created a tool which generates a static HTML + Javascript eCommerce site. Here’s the result: Creative Retrospection. Continue reading »

Jan 302012
 

It’s hard to say what sort of sales rate is reasonable or average for a new Etsy store. I spend a fair amount of time in the team forums, and the general consensus I’m getting is that it’s really hard to make any/many sales for smaller shops, but that larger shops (100+ items) tend to make several sales per week. Given that understanding, I have set a goal for myself that I think is aggressive but achievable. Continue reading »