By day I’m mostly working on what you’d call “backend programming” in AppScale-land, so every once in a while I like to take on something a little bit different. This time, I wanted to make a web application that solves a problem I periodically face: sometimes I want to send someone a file, but only let it get downloaded once. It’s a fairly trivial app to write with the Google App Engine framework, but for the web interface, I wanted to mix it up a bit. So this time, I checked out AngularJS and threw together JustOnce – an open source app that lets you share files that can only be downloaded a single time.
The Avengers vs. X-Men crossover storyline from 2012 gets a lot of flak on the internet (perhaps rightly so) for being schizophrenic and other problems you’d expect from having so many writers on it. But two parts of it stood out as being awesome in my book (in no particular order): (1) Kieron Gillen’s AvX tie-in work in Uncanny X-Men (of course, his whole run there is amazing as well), and (2) Brian Bendis’ New Avengers #29 tie-in issue. Today I’m focusing on the latter and its evolution, and will return to the former hopefully soon.
This one issue of The New Avengers that is so good that I had to pick up every other Avengers and New Avengers issue in the AvX line to try to get more of it. But why? It’s because this issue takes a look at the clandestine group known as the Illuminati. Each member possesses an Infinity Gem, which Thanos tells us “with only one you become a god”. So as we know, with great power comes great responsibility, so the idea is that these are the only people in the world that can be trusted with ultimate power. The issue centers around the question of “if we have ultimate power, why not use it to stop the Phoenix from destroying the planet?” It’s full of nuance, as we can see that not everyone even agrees that the world will be destroyed, with Mr. Fantastic and Namor independently arguing that the Phoenix actually will make the world a better place. It’s a great, deep philosophical read, with some solid art from Mike Deodato.
So I tried to find something else like this in the AvX storyline and failed, but luckily, the team at Marvel apparently employs telepaths, so someone there said “what if we make a whole comic with this team and this kind of stuff?” And with that, I saw this tagline teased randomly throughout various Marvel comics:
To prevent the collision of our universe with another, the most powerful and brilliant team in the Marvel Universe – the Black Panther, Iron Man, Dr. Strange, Black Bolt, Mr. Fantastic, Namor and the Beast – must assemble to confront an infinite legion of parallel universes.
With that, I was instantly sold and had to check out Jonathan Hickman’s awesome (in progress) run on New Avengers. It’s the foil of Hickman’s also solid run (also in progress) on Avengers, and while we’ll also come back to that series at a later date, it’s sufficient now to say that Avengers embodies the best and brightest of what the Avengers have to offer ideologically, and this essay will focus on how the Illuminati embody their foil: what happens when the best and brightest do when they throw ideology out the window.
Google Compute Engine provides an Infrastructure-as-a-Service offering similar to Amazon Web Services. We support it natively in AppScale, and one of the very nice perks with GCE is that you pay for instances on a per-minute basis (after a minimum of ten minutes), as opposed to AWS, which charges you on a per-hour basis. That means if you use ten minutes of machine time in GCE, you pay for ten minutes, but with AWS, you pay for a full hour.
So we do quite a bit of hacking on both GCE and AWS, which means we create a lot of extra resources that sometimes accidentally get left around. With that, I wrote a quick script to clean some of that stuff up in GCE – let’s take a look!
Continuing our “99 Bottles of Beer” blog series, let’s try out a Sam Adams Cherry Chocolate Bock:
One feature that’s been heavily requested in AppScale fairly recently is the ability to acquire a static IP address from your favorite cloud provider and have traffic go through it, instead of whatever IP address or fully-qualified domain name they give you. So for AppScale 1.13.0, we’ve added support for Elastic IPs in Amazon Web Services as well as Static IP support in Google Compute Engine! Let’s talk about how you can use it, and what we do behind the scenes to hook it all up for you.
Continuing our “99 Bottles of Beer” blog series, let’s try out a Sam Adams Winter Lager:
After every release, we immediately conclude with two meetings:
- A Sprint Retrospective, in which we determine (1) what went well during the sprint, and should be repeated in the future, and (2) what did not go well in the sprint, to avoid it next time.
- A Sprint Planning Meeting, to plan what features should be worked on to produce the next release.
Continuing our “99 Bottles of Beer” blog series, let’s try out a Mission St. Hefeweizen:
We’re happy to announce the release of AppScale 1.12.0! After three weeks of development and one week of QA, we’re happy to have fixed the following bugs and added the following major features:
- Now using monit instead of god to monitor processes, and killing App Engine apps that take up too much memory
- Load is rebalanced after scaling events
- Upgraded Cassandra to 2.0.1
- Upgraded pycassa to 1.9.1
Here’s a quick YouTube video that also summarizes this up:
Continuing our “99 Bottles of Beer” blog series, let’s try out a White Christmas from the Sam Adams Christmas pack: