September 9th, 2009 chris
Just a quick blurb for now: the software my group works on, AppScale, has a new version out! It adds support for the Cassandra and Voldemort databases as well as the ability to deploy your Google App Engine apps to Amazon EC2, so check it out if that’s what you’re into! Here’s the changelog for the sake of completeness:
- Now compatible with Python Google App Engine 1.2.3
- Addition of support for Voldemort and Cassandra
- MySQL bug fix allowing for parallel API nodes
- Eucalyptus 1.5.2 support
- Amazon AWS EC2 public image available (ami-7136d618)
- Support for running Ubuntu Jaunty systems
- Single node deployments (Cassandra or Voldemort only)
- Ability to delete applications from a running deployment
- Python2.6 for everything except Google App Engine (Python2.5)
- Replication is configurable
- Additional robustness and bug fixes
Posted in Cloud Computing, Programming, Python, Ruby | Comments Off
August 17th, 2009 chris
Google’s AppEngine is a simple web framework that allows you to write web apps and run it on Google’s infrastructure, having it magically run fast on their hardware. And while that’s good and fine and all, what if you don’t want to write the kind of apps that this forces you into? Although I do agree that, as Jeff Atwood puts it, most applications these days are “web applications” (that is, it does something but the interface to the app is via the web), I’m talking about writing applications that exhibit very different behavior from your run-of-the-mill web app. What if I want to write compute-intensive applications and distribute that around? AppEngine, meet MapReduce.
Read the rest of this entry »
Posted in Programming, Python, Ruby | Comments Off
August 13th, 2009 chris
With version 1.2.3 of Google App Engine comes the Task Queue API, which gives the ability to run tasks asynchronously in the background. The only downside is that on the ‘lite’ edition that they give you to test it out on, the tasks don’t run automatically. The rationale is solid: you should control when they run so that you can debug your app and so forth. However, if for some reason you wanted to have them run automatically (which we needed for AppScale), a few changes had to be made. Furthermore, there are a number of efforts to use the lite SDK with real databases, and those maintainers may find this to be a helpful contribution.
Read the rest of this entry »
Posted in Programming, Python | Comments Off
June 12th, 2009 chris
This quarter Brian Drawert, Matthew Norman, and I have been working on seeing how viable the MapReduce programming paradigm is for scientific computing applications. We’ve been porting over many common scientific algorithms to run over MapReduce and see how well they work. We’ve implemented a subset of the NAS Parallel Benchmarks and have found a number of interesting results (but for many of you these results will be fairly intuitive).
Original resources: Class webpage, slides, paper
Read the rest of this entry »
Posted in Java, Perl, Programming, Python, Ruby, UCSB Projects | No Comments »
October 14th, 2008 chris
While toiling over encrypting data between Ruby and Python via SOAP, I am hopelessly reminded of the Law of Leaky Abstractions:
All non-trivial abstractions, to some degree, are leaky.
For those not familiar with the original article, the idea is something like this: abstractions are great and wonderful and hide enough complexity from you that you can actually get some useful work done. But since nothing is perfect, every abstraction has some point where it breaks down and can become a pain in the ass. For example…
Read the rest of this entry »
Posted in Programming, Python, Ruby, Security | 4 Comments »
September 24th, 2008 chris
While working on our multi-language SOAP project, we’ve run into a number of interesting quirks. If you end up doing the same, you should certainly try out a number of “base cases” to make sure you get a good grip on it. For example, in Ruby, you can pass strings back and forth with no problem over SOAP (presumably this works the same way for Python-only communication).
Read the rest of this entry »
Posted in Cloud Computing, Programming, Python, Ruby | No Comments »
July 11th, 2008 chris
Last time we looked at an inherent problem in the book POSA 2: sometimes programmers want to use new fun languages to solve problems but have some legacy C code they need to use. POSA 2 claimed that the Wrapper Facade Design Pattern solves this problem, and it does if you’re programming in C++. But what about other languages?
Read the rest of this entry »
Posted in C++, Programming, Python | No Comments »
June 27th, 2008 chris
Every week (or so) I’ll hopefully get through a book and be able to recap it here, mostly as a motivation for me to read a book a week. This time we’ll start off with a book I read last week before I got this domain all squared away, Programming Collective Intelligence by Toby Segaran.

Read the rest of this entry »
Posted in Book of the Week, Programming, Python | No Comments »