Log in

Home | Dashboard


Tags » ‘Voices’

VendAsta wows the Google App Engine world with asynctools.

August 18th, 2009 by Michael A. Charles

I’m going to write this for dummies like me. More technically-adept readers should just go read this post by Jason Collins.

For the last couple months there have been murmurs around the office that one of our developers, Kevin Pierce, was up to something pretty amazing. Those of us who don’t know JavaScript from a jack-in-the-box were kind of left in the dark, but we were told his project had something to do with dramatically improving page load times for our application MyFrontSteps.

MyFrontSteps, to put it simply, lets you share your list of trusted home service experts with your friends. Say you’re friends with a bunch of people, and each of those people trusts a number of experts. Every time MyFrontSteps shows you a list of the experts you trust, it also needs to retrieve the list of your friends, and cross-check the friends against the experts:

  • Friend A trusts experts X, Y, and Z.
  • Friend B trusts experts X and Y.
  • Friend C trusts experts Y and Z.
  • Friend D doesn’t trust anyone.
  • Friend E trusts…

Now, each of these cross-checks only takes a fraction of a second, but if you’ve got a page requiring hundreds of cross-checks, those fractions can add up. By the time they’re all done, the user has spent a non-fractional number of seconds waiting for the page to load.

These cross-checks take forever when they have to be done serially – one after another. Obviously things would go much more quickly if you could conduct these operations in parallel – all at the same time. Kevin’s simple task was to find a way to make that possible.

And so he…uh…well, maybe I’d better let Jason describe what Kevin did next:

He started poking around the gory depths of the App Engine source and discovered that all of the API calls stub out in MakeSyncCall. This inevitably led to the discovery of the partner MakeCall which yields an RPC object that you can wait on. Of course, if I can wait on one RPC object, I can also wait on many of them.

What this means is…well, I really have no idea what it means. The gist is that MyFrontSteps can now do a hundred things all at once instead of painstakingly, one after the other. As a result, we can now present information in a way that it wasn’t realistically possible to do it before.

Kevin’s possibility-expanding solution has now been made available to other developers. It’s known as asynctools, and if you’re looking for a way to execute Google App Engine API calls in parallel, you’re welcome to it – it’s open source.

Because asynctools utilizes the Google App Engine API in ways that it hadn’t been utilized before, it’s drawn a little attention from the Google team. Here’s what they had to say about it on the Google App Engine Blog:

asynctools is a rather nifty toolkit that allows you to execute datastore queries in parallel in the Python runtime. The interface is slightly more involved than using standard queries, but the ability to execute multiple queries in parallel can substantially reduce the render time for a page where you need to execute multiple independent queries.

I got lost after “rather nifty”, but that’s good enough for me. Kudos to Kevin and everyone else who chipped in on this rather nifty innovation!

VendAsta JAM

September 21st, 2008 by Brendan King

At VendAsta we just announced our Friday afternoon Jam Sessions. Basically we have decided that we are going to allocate time to allow people to work on anything of, interest to them – as long as it is software.   Personally, I love what we are doing here. I wanted to write a blog about it so I have been doing a lot of research and introspection. I really want us all to think about what we are trying to achieve.  This isn’t an idea or gimmick to gain more productivity from our staff.  This idea is truly more about our attitude, philosophies, environment and culture than some “thing we do”.

What does that mean, you might be asking yourself. Let me explain.

When we first discussed the idea of working on side projects I had a lot of fears.  Fears that we would lose focus, fears that it would be expensive, fears that the time would be “wasted”.  To alleviate those fears I wanted to impose restrictions.  Things like:  Projects need to be well thought out and documented, projects need to have some benefit to the company, or projects need to be in area of development we are already in.

Then, I thought about what it is that we  originally envisioned VendAsta to be.  To paraphrase, we wanted to work with super smart people we like on interesting stuff.  To achieve this, our attitudes, philosophies, environment and culture must reflect this.  Imposing rules overtop of JAM to alleviate fears is wrong, it is simply not what we are about.

On the face of it JAM is about allowing everyone to have an opportunity to work on ideas that are their own or ideas they personally and individually buy into.   But it is more than that. It is about providing people with the luxury of dreaming.  It is about giving our people a chance to turn some of their dreams into reality.

People at VendAsta work very hard.   When you hire the best and brightest you tend to get people that are ambitious and driven.  VendAstians are thinkers, innovators, and leaders full of their own ideas and driven by a strong competitive work ethic, healthy peer pressure, and pride.

JAM is about providing time, money and opportunity for anyone to sell their idea to the VendAsta team.  JAM is the mechanism to take something from a dream to an idea, from an idea to a plan, from a plan to a prototype, from a prototype to a product and from a product to a money maker.

JAM products will gain momentum through peer review, open discussion and debate and personal choice. JAM Product decisions will not be made by management and executives.  Products that gain JAM momentum will benefit from all the skill sets available; marketing, promotion, critical analysis, development and production environments, business development, testing, monetization, HCI and development.

JAM is also an opportunity to share in the profits and hedge your chances for success. The profits of products built and released via JAM will be shared in a very democratic way with all.

Most of all JAM is about making VendAsta a great place to work with super smart cool people building interesting stuff.