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
July 18th, 2009 chris
A while ago, I compared the C programming language to a miniature nuclear weapon from Fallout 3. It’s still an apt metaphor, as the language does give you more than enough power to take care of the biggest tasks ahead of you and blow yourself to kingdom come in the process. It takes an expert to really use it but once you figure it out, you can avoid a lot of the pitfalls involved.
Ruby, on the other hand, is an entirely different beast. It relates more to one of DC’s most famous supervillains, the Joker.

Read the rest of this entry »
Posted in Uncategorized | 5 Comments »
November 29th, 2008 chris
So as you’ve noticed I’ve fallen off the blog posting bandwagon. Much apologies! But with Black Friday behind us I’ve picked up two new books at awesome prices:
- Programming Ruby 1.9: I already have the older version covering 1.8 and although a decent chunk of this is a re-hash, it’s nice to look over it again and see a much more comprehensive treatment of old material. It adds in a much greater reference on the Ruby standard library and a light discussion on Ruby metaprogramming and security features, which I’m looking forward to reading and writing about later.
- Stripes: I’ve had my eye on this book since it came out but never really got around to getting it. The subtitle of the book is really what sold me on it: “and Java web development is fun again”. Wow. That’s pretty much all I needed after a year with Spring and Spring Web Flow. Don’t get me wrong, they were great at what they did, but they were a bit of a drag. I’ve already gone through the first chapter and done the “Hello World” example and am very pleased with what I’m seeing. Stay tuned for a review of this as well.
Finals are out next week, so it may be a little light on the posting until then. I’ll try to keep up though, but we shall see. Until then!
Posted in Java, Programming, Ruby | 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 »
September 23rd, 2008 chris
While doing a bit of research on the web, I came across a few interesting sites that each offer something new to Ruby. They may be useful for me down the line as well, so I’m making a note of them here for me to come back to when I get some more free time:
Superators – Add new operators to your classes or even the standard library classes. Highly dangerous but highly amusing! They’ve also been awarded the “Most Horrendous Hack of 2008” award, which certainly adds to both the dangerous and amusing qualities!
Fun with Procs in Ruby 1.9 – Dave Thomas is usually on top of his game on the new features in Ruby 1.9. Here’s a particularly good read involving currying and Proc objects in a very Ruby-esque fashion.
Seeing Metaclasses Clearly – A great intro to the power of metaclasses (and metametaclasses as well as metametametaclassess….) by our old friend why the lucky stiff. The most interesting part for me is what he ends up using this for…
Dwemthy’s Array – An RPG written in 60 lines of code using Ruby metaprogramming! Fire up irb and follow along as why shows you how it works in traditional why style (read: insanity). The amazingness of this warrants reading both this and the previous article thoroughly.
So that should give you some fun reading material to keep you up to snuff on the craziness of the Ruby world. Until next time!
Posted in Programming, Ruby | No Comments »
September 19th, 2008 chris
One of my new found loves is Object Relational Mapping, specifically Ruby’s ActiveRecord. If you have not heard of these, go click on those links and read about it. Now. Now that you know all about those nifty guys, let me just say “Wow”. After all those years of writing crappy quality SQL code that took like ten times to get exactly right, we get this amazing technology to automagically give you an object and make operations on it equate to operations on the database. And it was too good to be true…
Read the rest of this entry »
Posted in Programming, Rails, Ruby | 1 Comment »
September 11th, 2008 chris
An important part of “keeping up” as a programmer is learning new skills. And while the Pickaxe book is great to get a feel for Ruby and to have a nice little reference by your side, there’s no replacement for experience. Enter the Best of Ruby Quiz, a collection of weekly programming challenges from the web site of the same name. But how does the book compare? Read on!

Read the rest of this entry »
Posted in Book of the Week, Programming, Ruby | No Comments »
September 10th, 2008 chris
Distributed systems are an inherently tricky field. There are a million different problems that arise in distributed systems that don’t show up in concurrent systems on one CPU, which is why I find it to be so interesting. But this isn’t a rant about distributed systems. This is about a technology mentioned for a few pages in the Pickaxe book called SOAP, the Simple Object Access Protocol. It’s been a breeze to use so far (granted, my app isn’t that complicated yet), and much easier to get going than CORBA in Java (although I’m not sure if that’s a CORBA thing, a Java thing, or something else).
Read the rest of this entry »
Posted in Ruby, UCSB Projects, Web Apps | No Comments »