Algol Labs logo
“ We are geeks who write open source software ”

<think>Intelligent Code</think>

[our-work]

Take a minute to glimpse at what we've been busy working on. You can find the language(s) used to write the software next to their titles.

Vertigo

C++ Lua

Vertigo is a fast-paced arcade game where you must escort a space probe to safety through a series of warp-tunnels, and well, madness. The game was built using Ogre3D and BulletPhysics and it runs on all platforms.


Indulge your eyes with some screenshots of awesomeness.

PageHub

Ruby JavaScript

PageHub is an editing platform built to aid developers in writing documentation for their software.

PageHub is free and open-source software, licensed under the MIT terms.

PCREck

Lua Ruby JavaScript

A web-based realtime Regular Expression editor. PCREck allows you to edit, apply, and refine regular expressions as you write them.

PCREck initially was built to edit PCRE regular expressions, and hence the name, but it now supports multiple dialects. The interface also provides an advanced mode that lets you test an expression against multiple subjects.

Pibi

Ruby JavaScript HTML5 CSS3

Pibi is a personal financing bot that lives to help you track every penny gained and spent without getting in the way.

The app is equipped with a clean interface for managing transactions, and it also provides reports for insights into your spending and saving patterns throughout certain periods of time.

Oozi

HTML5 JavaScript

Oozi is a CSS spritesheet generator built entirely in HTML5 and JavaScript. The application does not require uploading of images, but instead utilizes the HTML5 File API to process images locally. Also, the interface allows for Drag & Drop, conveniently enabling the user to drag any number of images using Finder or any file browser into the web app!

grind

Lua C++ C Ruby

grind is a tool that helps you extract information stored in your application log files, and gives you the ability to reformat that data or view a subset of it at any time.

Log files could get messy, and when your software matures and gets deployed on production servers it becomes a daunting task to find out what's going on. Even if there's only a single rotating log file, grind saves your time by making it easy to reach any kind information you're after.

SwitchScript

Python

SwitchScript is a plugin for the Sublime Text 2 editor that adds support for switching between header and source files according to specified extensions within the current active directory tree. This editor ability is very helpful for working with projects that contain a large number of files (eg. C++ projects with .cpp and .hpp and files).

lua_cliargs

Lua

A command-line argument parsing module for Lua. Licensed under MIT terms.

cqGreylist

C

A greylisting implementation for qmail written in C, intended for high volume servers.

lua_libxml2

C

Lua bindings (generated using SWIG) for the XML C parsing library, libxml2.

toluapp-bindings

C++

A collection of tolua++ packages that can be used to generate C++ application bindings for use in Lua.

At the time of writing, the package contains bindings for Ogre3D,OIS, and OgreMax.

[what-we-do+more]

We write software in C, C++, and Lua. When necessary, we also use a mix of those languages, and to do that we use either SWIG, or tolua++, as fits the project.

The code is managed using git, and is built using CMake.

We can also generate binary versions of software for distribution using CPack which can be installed by your end-users in their native OS manner, such as installers for Windows and OS X, and RPMs, debian packages, or tarballs for Linux.

All code written is coupled with a technical reference (API) automatically generated using Doxygen (for C and C++ code) and LuaDoc (for Lua code). Integration, extension, and other necessary information can be documented using one of many ways as per your preference:

  1. PageHub
  2. Atlassian Confluence
  3. GitHub Wiki
  4. Some hosted MediaWiki portal

Every feature provided by the software will be backed by a comprehensive unit test that covers edge cases and makes sure the code guards against bad and unexpected input. Modules and the interaction between them will also be backed by integration tests that make sure the software - as a whole - is working as expected.

The health status of your code is automatically routinely checked and verified using travis-ci; if a bad build somehow gets through, you'll be sure to know about it just as we will.

... more

We administer and maintain Linux based platforms and servers, we are pretty comfortable with Debian and RedHat based distributions. We've came across and used many software packages during our work and play times, here is a list of what we have good experience in amongst all such code:

  • Apache httpd
  • Ruby on Rails
  • MongoDB
  • MySQL
  • Amazon AWS
  • Sinatra
  • Nagios
  • munin
  • RabbitMQ
  • HAProxy
  • GlusterFS
  • Drupal
  • memcached
  • daemontools
  • qmail
  • Bacula
  • iptables
  • exim4

[Open Source; because...]

Open Source software (OSS/FLOSS/FOSS) gives you as a user freedom; having the source code of the application and software means you have total control over it and thus gives you more choice and power.

There are major points in which Open Source Software is superior to proprietary or closed source software as you'll see below.


  • No Technology Lock-in  

    You will not be at the mercy of any single corporate entity anymore, you have the code and you can get someone else to support you.

  • Innovation Friendly  

    Civilizations were built on top of each other and we believe software is the same, you don't have to reinvent the wheel for every little thing you want to do.

  • Less Bugs  

    With the code being open means many more programmers can have a look at it and spot any bugs hidden there.

  • Collaboration  

    Tapping into a world full of of programmers means that the features they and their users need will benefit anyone using the same software since those additions are usually submitted back to the community.

  • Higher Quality  

    No one wants to tag their name unto crappy code, OSS encourages programmers to produce high quality code because their name will be associated with the code they write.

  • Commercialization Friendly  

    OSS is not charity work, there are many Open Source licenses which are commercial friendly and ensure you get paid for what you wrote and in the same time keeping up with the spirit of OSS.