Archive for the ‘Server’ Category
iVolunteer Meetup – Tues, Jan 27 5-9pm
Monday, January 26th, 2009
iVolunteer Meetup Location
iVolunteer Meetup
Tuesday, January 27, 2009
5:00pm – 9:00pm
Van Heyst Group Office
719 Walnut St
Boulder, CO [map]
As mentioned at the last New Tech Meetup, iVolunteer’s first working session will be held on Tuesday, January 27. After the closing of RedFish Brewery, the folks at the Van Heyst Group graciously stepped up and offered their space to our efforts. Thank you!
iVolunteer has no employees and is entirely a not-for-profit endeavor. We see the project as a way to support community organizations across the country and also as a showcase for Boulder’s incredible depth of startup talent. We’ll have our laptops out hacking on code for the iPhone app and website, working on marketing plans, writing blog posts, and doing whatever needs doing to make iVolunteer successful.
Equal parts social and working, this is a great opportunity to meet interesting people in the Boulder community and work on something big. Bring your friends and anyone else who might be good to have along for the ride.
RSVP here: http://www.facebook.com/event.php?eid=46562643122
Thanks!
Dave Angulo (@daveangulo)
Rich Grote (@heyrich)
Technology Architecture Picture
Thursday, January 22nd, 2009
This is a very complicated case, Maude. You know, a lotta ins, a lotta outs, a lotta what-have-yous. And, uh, lotta strands to keep in my head, man. Lotta strands in old Duder’s head.
There’s no denying that the iVolunteer project is an ambitious endeavor with a lotta ins and outs and what-have-yous. While much more detail can be found at our github development hub, some folks have been asking for an overview.
Here’s how it all fits together at the 10,000 foot view:

How It All Fits Together
The Server Foundation
Wednesday, January 21st, 2009
CAUTION: There are some posts we’re writing which talk about the lofty goals of the iVolunteer project, how we’re hoping to change the game with regards to how people volunteer, and how the amazing Boulder community is coming together to make it all happen. There are other posts which appeal to a more… uh… geeky crowd. This post is squarely in the latter camp.
Think the comic on the right is funny? This post is for you.
As we’ve mentioned previously, one of the goals of iVolunteer project is to work with other great Boulderites in the tech community and have an opportunity to get our hands dirty with some cool new technology while doing so. Amazon Web Services (AWS) falls into the “cool new technology” category. Anyone with a credit card can have access to all the building blocks of a full service datacenter on demand.
The two big components of AWS are the Elastic Compute Cloud (EC2) and Simple Storage Services (S3). EC2 provides machine instances and supporting services to make them useful, while S3 provides a robust storage platform for your data. Together (optionally with a host of other AWS services) they provide the foundation to run robust scalable applications.
So how cool is AWS? During early development of iVolunteer, we had a bug which generated a number of database transaction logs that filled up our EBS volume. The database wedged and cleaning it up safely would have been problematic. However, we just fired up a larger EBS volume, connected it to our instance and moved the data from the old volume to the new. MySQL could then start cleanly and we cleaned up the logs safely. That done, we moved the data back to the old EBS volume and deleted the larger one. Start to finish it was about 30 mins, done without opening any trouble tickets or calling anyone and cost about 10¢. Try doing that in traditional hosting environments or even your own datacenter!
We are running on a single small instance while in development. By design, however, the application can be fully broken out and scaled both horizontally and vertically as required.
We started with a base Ubuntu instance from Eric Hammond, configured an EBS volume to hold dynamic data and an elastic IP address to use for DNS. We then layered on the following apps:
- mySQL for database (can be anything really, just went with a standard)
- glassfish for the java app server (again any Java EE 5 container works)
- apache2 for web services (for the application, httpd just needs to serve static html pages)
That’s all that’s required to run our application. To get to v1.0 we went with industry standards for the most part. As we get closer to release we can revisit the choices and decide if there are better options to meet our needs.
As an aside, the java part of our application is split into 2 components. the first is responsible for ETL of data from our sources, which writes into our database. The second is responsible for the REST services consumed by the website and iPhone applications. They can run in the same application server container, but its not necessary.
Vertical scaling can be achieved by breaking things into web service, REST service, and database layers initially and caching layers later on. Horizontal scaling is easy using load balancing within the web and REST layers with the database taking a little more work (its read only outside of the ETL process and infrequent saves of user profile data).
If you’re still reading, you really need to come to Tuesday night’s meetup at RedFish. If you know this much about random technology, you probably need to get out and socialize more! We’ve got just the group for you. Leave a comment and Dave will even buy you a beer.
You’re using what???
Wednesday, January 14th, 2009
This is the first of many posts on one of the fun parts of working on this project, hacking on it. If this stuff makes no sense to you, but you want to learn, that’s okay! Leave a comment, drop us an email, or, if you’re in the Boulder/Denver area, drop by one of or meetups Tuesday’s 5pm at Redfish.
Part of the fun on a community-created project like this is the ability to stretch your wings and try new things. Yes, we could just slap this thing up with a bunch of boilerplate well-known recipes, but what’s the fun in that? Instead, we’re creating this project using some cool new technology that will be fun to work with. What follows is a quick overview of each piece of the technology stack that we’ll be using on the iVolunteer/ActionFeed project. Although some of it gets a bit technical, hopefully it’ll give you some understanding behind the technology decisions we’re making.
First off is one of the the stars from last years Apple WWDC: Sproutcore. What’s not to love about a javascript MVC framework that lets you build Cocoa-like interfaces? This is the tool set that’s behind Apple’s MobileMe experience. Not only does it use OO javascript, but it also heavily uses observer patterns similar to Cocoa programming (I’ve read, never having developed a Cocoa app). Sproutcore was at 0.9.19 when we started the iVolunteer project, but then the Sproutcore team went for a Halloween Strategy to announce they will rework large sections of it for a 1.0 release. Love being out on the bleeding edge? This is what its like!
Next, both the iPhone App and the ActionFeed website will need REST interfaces from a service in order to get the data to present to the end user. The service will also need to connect to our providers, grab a data set (Please let it be structured!), do any necessary data mapping and throw it into our database (aka ETL). It would also be nice if the service had some administrative interfaces to control the service. There are lots of ways to skin this cat, from the current rage of RoR to writing a cgi, but we wanted to experiment with some cool new stuff coming out of the Java world in Jersey/JAXB/EJB3. Also, if we do end up being successful, running in an app server container should make scaling simpler (in theory).
Of course, the crown jewel of our technology is the iPhone SDK. There are tons of thing to cover on iPhone development. Whether you are an iPhone SDK veterano or just now hoping to get started, we encourage you to come on out, meet some great people, and get your hands dirty working on something cool that’ll help the world.
That wraps up the key technologies we’re using to develop v1.0 of iVolunteer. I’ll dive into each in more detail in upcoming posts. Please comment and let us know if there are things of particular interest so we can start there first.


