Promoting an Open Source Project

As completion of Olympus draws near its time to think about how to promote the project.  As a developer, one may be thinking that at the end of the project their work is finished.  This couldn’t be further from the truth.  To be a responsible citizen in the open source community one must not only create a project but then share it with the rest of the world.  Now how to do this exactly can seem like a project in and of itself, but after some quick research one finds that this is a common question among developers in the community.

After looking into it ourselves and getting tips from fellow open source members, we came up with the following Open Source Project Promotion Plan:

Step 1: Add project to a code repository –  We use github.  There’s also SourceForge and Google Code.  Take your pick.

Step 2: Add project to freshmeat – Another great software hub

Step 3: Maintain a blog and wiki for the project – its good to have a blog (like this one) and at the very least you can use github’s wonderful wiki feature

Step 4: Add Screenshots of your project – its true that pictures say a thousand words, screenshots of your project are a necessity for success

Step 5: Make it easy to install – if you want to make it popular make sure its easy to get running.  People want software that helps, not a battle.  For this we are looking into packaging for some popular Linux distributions.  For Windows you might look into NSIS

Step 6: Spread the word – Let your friends know about it. Use social media.  If you can, make a video of your project in action and put it on Youtube.  Just remember that the completion of your code is not the end of the project, its the beginning.

Graph Support For Plugins

This week saw the introduction of a javascript graphing library for Olympus.  The Raphaël Javascript Library is a new open source graphing library that is gaining popularity due to its simplicity.  After trying out a few examples ourselves, we implemented the library as a tool for plugin developers to quickly generate graphs of all kinds.  It is the perfect tool for presenting data, with a simple syntax for developers and clean, colorful and interactive graphs for end users.  We hope that by incorporating such a library in the Olympus Server Management framework we open up creative possibilities for developers and server admins to solve their server management needs.

Web UI Hotkey(shortcut key) Support

In the pursuit of a feature rich Web UI, we looked to the interfaces of popular websites.  As web applications have become more mature, they have acquired many desktop experience-like properties that we find desirable in our application.    One feature in particular that has gained popularity in recent years is the ability to use shortcut keys on a webpage.  This is different from being able to use shortcut keys in the browser, as this is adding the ability to use shortcuts to interact with page elements.

Using its modern web technology stack, Olympus now supports basic Hotkeys.  Currently plugin windows are able to be opened using Shift+plugin_number where plugin_number is a number key, and they are able to be closed using Ctrl+Shift+plugin_number.  Hotkey support is being expanded for more functions within the app, so check back soon for updates.

Using jQuery, CSS3, HTML5 to create a usable frontend

Over the past two weeks much progress has taken place to the Frontend implementation to Olympus.  It was decided that the Web UI should be built with the future in mind.  Therefore, the project makes heavy use of modern web technologies – namely CSS3, HTML5 and the jQuery Javascript library.  CSS3 has been used generously in the details and styling of the Web UI.  HTML5 has not had as much emphasis, however the decision to use it has opened doors to increase the functionality of the project.  The open source jQuery library will be playing a major role in the project.  Aside from simplifying common tasks (ajax calls), the library allows for rapid development of functional UI.  It is the driving force behind the plugin ‘windows’ that appear within the interface as well as other details.  Thanks to the use of a modern web technology stack some possible future features for the Olympus Web UI include drag-and-drop functionality, hotkey/shortcut integration, offline-storage and the inclusion of geolocation into plugins.  Check back soon for progress.

Frontend Implementation

It was decided that the Web UI to Olympus should take the form of browser-accessed web pages.  At its core, each page uses ajax to serve the user content.  A user accesses a basic page from the root server and then live data is fed to the page through a series of ajax calls.  This cuts down on the need for a full-blown web server while at the same time providing the capability to serve real-time data.  A dashboard page loads a list of maintained remote servers.  The user can then click on a maintained server to see all of its plugins running in real-time, and if desired focus in on a particular plugin.