2012 Recipients

TypeScript

TypeScript is a language for application-scale JavaScript development, providing a typed superset of JavaScript that compiles to plain JavaScript. TypeScript adds optional types, classes and modules, and supports tools for large-scale JavaScript applications for any browser, for any host, on any OS. TypeScript compiles to readable, standards-based JavaScript.

For organizations with large teams working with JavaScript at scale, there are lots of challenges. Finding development tools that allow teams to work together efficiently using a structured development approach is a big one. Started in early 2012 and open sourced in October, TypeScript is breaking new ground in an effort to offer large development teams a more efficient approach to working with JavaScript. Anders Hejlsberg, the architect for TypeScript, was also the primary architect in the creation of Delphi, C# and other highly successful technologies, making TypeScript a project to watch.

One of the big benefits of TypeScript is to enable IDEs to provide a richer environment for spotting common errors as you type the code. Designed for the development of large applications, TypeScript, when compiled, produces JavaScript to ensure compatibility. Tooling for JavaScript development is desperately needed by large-scale development teams and TypeScript is helping to facilitate this. Tools like Cloud9 have already added support for TypeScript.

GPUImage

Brad Larsen had the opportunity to speak at a small a developer conference in Chicago and for a topic, came up with an idea for GPU-accelerated video processing. As he blogged:

“I've been invited to give a talk at the SecondConf developer conference in Chicago, and I'm writing this to accompany it. I'll be talking about using the GPU to accelerate processing of video on Mac and iOS. The slides for this talk are available here. The source code samples used in this talk will be linked throughout this article.”

The response he received from his audience was more than enthusiastic, helping jumpstart the GPUImage project and to open up new application opportunities that leverage the GPU to process real-time video.

The ability to apply filters and effects to live video allows applications to do things like detect shapes and lines that appear in the video stream, which allows applications to then use that data as input. “Machine Vision is the real goal,” said Brad in our interview, “so our phone can analyze the world around us as we roam about.”

Once Brad posted the project to GitHub, people got super excited. In fact, the EC2 server where he originally posted the code went down due to the excessive load from people accessing the project. Since starting the project, dozens of apps using GPUImage have been created and introduced to the Apple App Store, many of which have become top downloaded apps. That’s pretty impressive for a project that started out as an idea for a talk at a small developer conference!

Inasafe

To effectively prepare for future floods, earthquakes or tsunamis, you must first understand the likely impacts that need to be managed. For example, to prepare contingency plans for a severe flood, emergency managers need to answer questions like:

  • What are the areas likely to be affected?
  • How many people will need to be evacuated and sheltered?
  • Which schools will be closed?
  • Which hospitals can still take patients?
  • Which roads will be closed?

InaSAFE provides a simple but rigorous way to combine data from scientists, local governments and communities to provide insights into the likely impacts of future disaster events. The software is focused on examining, in detail, the impacts that a single hazard would have on specific sectors, for example, the location of primary schools and estimated number of students affected by a possible tsunami like in Maumere, for instance, when it happened during the school hours.

Effectively preparing for a disaster requires people from a wide range of sectors and backgrounds to effectively work together and share their experience, expertise, and resources. Using InaSAFE to develop a scenario requires the same spirit of cooperation and sharing of expertise and data.

InaSAFE is designed to use and combine existing data from science agencies, local governments, and communities themselves. While geodata is readily available in more developed countries, it is not always the case in many regions where significant natural disasters occur. To solve this problem, the InaSAFE team reached out to local universities and asked for help mapping everything from building-footprints to the demographics of the people who inhabit them. The more communities, scientists and governments that share data and knowledge, the more realistic and useful InaSAFE scenarios will be.

InaSAFE was conceived and initially developed by Indonesia’s National Disaster Management Agency (BNPB), the Australian Agency for International Development (AusAID) and the World Bank. In an effort to share this important project with other nations, InaSAFE was contributed to the public domain as an open source project licensed under the GPL and is looking for additional team members who want to contribute their efforts in-kind.

InaSAFE is a Python project built on top of the QuantumGIS project (QGIS) as a QGIS plugin. It is designed as an extensible platform that can be used to assess the impact of any kind of disaster supported by geographical population data from virtually any geography.

Hammer.js

Hammer.js started when project champion Jorik Tangelder wanted to improve ease-of-use for mobile web applications, incorporating the same kinds of gestures that are widely used in mobile applications. Jorik hacked something together, shared it with Daniel Spronk (both employed by Eight Media, a Dutch creative agency) who then organized a Hack Day to further the code base.  At the end of the day, they had a theme for the JavaScript library, a landing page, and documentation, and had refactored the code and started creating demos.  They also had a plan for how they were going to promote the library. 

While excited about what they had created, they decided to keep it under wraps and gather in a week’s time for another Hack Day.  But even before they could reconvene, someone tweeted about it on GitHub, which was then picked up by some JavaScript sites and Smashing Magazine.  Before Jorik and Daniel knew it, Hammer.js was within the Top 5 trending “repos of the month” on Github for two consecutive months in 2012.

“From a user’s standpoint it’s really annoying that gestures don’t work in the mobile browser whereas it’s all-you-do in native apps,” said Jorik.  For example, prior to the creation of Hammer.js users couldn’t swipe through a slideshow, instead needing to press ‘previous’ and ‘next’ on an iPad.  Quite simply, Hammer.js enables gestures for the web on mobile devices. 

Jorik says that Hammer.js is already in use within several websites, and is also included in several packs for frameworks (including Drupal) which are in turn used by hundreds of websites.  They continue to see increased interest and have seen Twitter activity from developers worldwide. 

The Hammer.js team is currently working on v2, and have already created a jQuery plugin for it.

Chaplin js

While JavaScript is proving to be the new standard for web application UI, by itself, it lacks the sophisticated architecture needed to build more demanding web applications. While other projects like Backbone and Marionette have solved some of these challenges, Mathias Schaefer wanted more JavaScript support for many of the useful software patterns that have become the norm in other programming languages. Mathias started the Chaplin project to address these challenges, creating a more classical model-view-controller (MVC) model for JavaScript development.

Chaplin is an architecture for JavaScript applications using the Backbone.js library. Chaplin addresses Backbone’s limitations by providing a lightweight and flexible structure that features well-proven design patterns and best practices.

Since its introduction in February, Chaplin has been rapidly adopted by sites like delicious.com, snip.it, and salon.io. Developer interest continues to grow as demonstrated by the increasing number of pull requests and followers on GitHub.

Yahoo! Mojito

Mojito is one of many projects started by Yahoo! as part of their “Cocktails” project to build a next-generation Yahoo! web platform. With a focus on mobile web, Mojito is a JavaScript framework for both client and server. The vision is to have a single framework that supports both client and server, with the flexibility to architect applications leveraging both. Ren Waldura, project lead, describes Mojito as “an opinionated way to use JavaScript.” Mojito is based on the YUI project, another Yahoo! open source project providing a JavaScript and CSS library for building richly interactive web applications.

Mojito has plenty of competition in other open source projects, but the good news is that as these early projects quickly evolve, they are all learning from each other, leveraging concepts that drive faster evolution. Ren says that he is learning much from the community working with Mojito. Having a single framework for both client and server side was confusing at first for some people, but the team is leveraging this feedback to simplify and grow the framework. He says that finding the right balance between being too opinionated versus too loose is part of the goal for the coming year. With 41 contributors already working on Mojito in the first nine months, we bet that they will continue to evolve quickly into an important framework for JavaScript development in the coming year.

Syte

Like many people, Rigo Neri has a personal website where he posts info about himself and the activities he’s involved in. Last year he started thinking about the fact that his life was fragmented across many social media sites, and wondered if he could come up with an easy way to aggregate these sites into his personal site. In his own words:

“In June I started a new side project to rebuild my personal website. However I didn’t want it to be just a blog, I wanted to do something different; I wanted to plug in all the social networks I was part of. I called it Syte, and when I built it I decided to make it open source so other developers could use it -- turned out that developers all over the world loved the idea.”

You can see Syte in action on Rigo’s personal web site, where he has aggregated his Twitter, GitHub, Dribbble, and Instagram activity, among others. As more people started using Syte, additional integrations have been added, making Syte probably the fastest, easiest way to consolidate your personal, digital world. Syte already has integrations for Twitter, GitHub, Dribbble, Instagram, Foursquare, Tumblr, WordPress, Last.fm, SoundCloud, Bitbucket, Stack Overflow and Steam, and most pull requests are to integrate other new social networks.

Syte, like many of our other Rookies this year proves what a first-class citizen JavaScript is and how new frameworks are emerging in so many areas to help developers use JavaScript to accomplish big things.

Sidekiq

Working as a Ruby developer, Mike Perham was frustrated with the inefficient libraries that existed for building messaging into his apps. The existing libraries lacked functionality, therefore requiring the use of multiple, not always compatible libraries to get the job done. Like many projects, Mike started the Sidekiq project to work around his own frustrations, and quickly rallied a significant team of developers who shared similar frustrations to get the project up and running.

While the Resque and DelayedJob projects also offer messaging solutions for Ruby, Sidekiq offers a new level of efficiency because it is multi-threaded, so instead of using 20 processes, you can run a single process with 20 threads, offering a vast improvement in performance efficiency. That said, Sidekiq aims to be compatible with Resque where possible to leverage existing code and monitoring tools.

The stats tell the story here. With over 80 committers and more than 2,000 followers, Sidekiq is definitely on a great track! So how did Mike amass such a large team around Sidekiq? Trust. Mike says that once a contributor offers two-three good commits, he provides them with committer access to the project. This trust translates into evangelism for the project, rapidly expanding the team and ecosystem around the project.

Ansible

Managing a large number of servers on site or in the cloud can be a complex, time-consuming task, but Michael DeHaan, project leader for Ansible, doesn’t think it has to be that way. “System managers shouldn’t have to worry about lots of complicated syntax,” he said. In today’s resource-constrained environment, operations teams often have several sys-admins working to manage and maintain cloud implementations. With a simpler approach to system orchestration, part-time sys-admins can do what they need to do, getting in and out quickly.

How easy is it? Well Michael thinks that if the total documentation is more than ten pages, then it must be too complicated, so he uses documentation length as a benchmark for simplicity.

Michael is no stranger to advanced system orchestration. He was the lead engineer on Cobbler, Red Hat’s Linux provisioning server, and the product manager for Puppet at Reductive Labs.

What’s different about Ansible? One big thing is that it offers the ability to create defined workflows within multi-server configuration roll outs. For example, if a sys-admin wants to take down ten of the fifty servers in an implementation, he can schedule them to go off-line while updates are made and then sequence them back into the operation. 

Another thing that differentiates Ansible is its large community of committers (123 at last count!). How did Michael amass such a large team in such a short period of time? Well, ease of use isn’t just a goal for sys-admins – Michael also architected Ansible so that it would be easy for other developers to contribute to the project. He created a relatively small, easy-to-work-on code base that allows many developers to contribute.

Current top priorities for the project include security, scalability and ease of use.

Twitter Bower

Twitter Bower, with committers both inside and external to Twitter, is a package manager that is able to fetch every dependency, regardless of the endpoint, which is something that other package managers can't do.  A comparison of package managers that favors Twitter Bower can be viewed here: https://github.com/wilmoore/frontend-packagers.

The project is already being leveraged by several other projects, including a new client side framework, SpoonJS (which was also open sourced recently by Indigo United). While initiated by developers within Twitter, Bower has quickly found both committers and projects that leverage its functionality outside of Twitter, and developed a positive and growing community around it, particularly in by the JavaScript Community in projects like Yeoman.

Bower is one of many open source projects initiated by Twitter. In 2012 alone, it open sourced over 25 projects and saw over 7,000 pull requests across all of its projects .  Follow @TwitterOSS for updates.

View the Press Release

Latest Tweets

Black Duck Software (51 minutes ago)
We're looking forward to tonight's Think Tank Dinner in SF with speakers from @Intel @enovance & @wipro http://t.co/PSQwpCVSz9 #OSTT
Black Duck Software (1 hour ago)
Samsung's first open-source conference kicks off, with Tizen on its mind | Network World http://t.co/xHFKOJJa86
Black Duck Software (2 hours ago)
Here's a sneak peak of what's to come at #AppSecUSA this week: http://t.co/53upz6k00l http://t.co/HDcXEtpMFc http://t.co/9Vc0Ulcaoc
Black Duck Software (2 hours ago)
Indeed! MT @michael_waldron: Enroute to #AppSecUSA to staff a busy booth for @black_duck_sw this week. #heartbleed #osssecurityisthenewblack
Black Duck Software (3 hours ago)
Isn't that just ducky :) Thanks for the shout out! RT @rothcolleen: Do you see what I see @black_duck_sw? #INBOUND14 http://t.co/RVJeiIUzOI

Black Duck Software
8 New England Executive Park
Burlington, MA 01803

Contact Us

Legal Notices | Privacy Policy | Site map
Open Source Delivers | Open HUB
Open Source Think Tank