Enigo Technologies
Enigo leverages a few third party technologies to form the core of many of Enigo's solutions. The exact tools to be used depend on the needs of the customer, and while we have capabilities with other common industry components such as Java, we most commonly we employ the following excellent components:
- Apache Webserver
- Apache has become the ubiqitous webserver software on the internet. Much of this is because it combines great stability with great flexibility and performance while running on both Unix and Windows systems. Enigo uses Apache on its own servers, and recommends it for most customers if they are running their own server.
- Ruby
- Ruby is the programming language of choice for Enigo. It's a relatively new language in the United States, but has been in heavy industry use in Japan for a number of years, now. The language itself is a very high level, elegant, object oriented language that draws many of its features from the best of several other languages, including Perl and Smalltalk. It is a very readable and a very easy to develop with language that allows Enigo to quickly develop quality software that is stable and maintainable. It runs on most modern operating systems.
- Perl
- Perl has become an extremely common language for writing web software or system tools. Enigo has 9 years of experience with Perl across a wide range of applications. We are using it less and less these days as we find that most everything we would use Perl for we can do better and faster with Ruby, but Perl still has it's place, and is used when appropriate.
- MySQL
- MySQL has, in the past few years, grown into a first rate database system capable of standing toe-to-toe with the heavy hitters in the industry. It performs very well, is very stable, and is very scalable to extremely large, busy database systems. It is well supported and runs on both Unix and Windows systems. We have many years of experience with it, and for systems that we design, it is our first choice in database software.
Enigo uses and is actively developing on the following open source software components:
- IOWA
- IOWA stands for Internet Objects for Web Applications. It was
released a couple of years ago by Avi Bryant, who has since developed
the excellent Seaside
framework for web applications written in Smalltalk.
Enigo has devoted considerable time towards development of IOWA over the last two years, and currently uses it heavily. It has proven itself to be a powerful and flexible tool.
Enigo is currently revising its web site for IOWA to accompany a new public release of the software with an online tutorial, reference materials, and live examples and plans to continue developing IOWA, using IOWA, and supporting other developers who wish to give it a try. - Kansas
- Kansas is another package originally written by Avi Bryant. It is an object/relational mapping layer to map relational database tables to Ruby objects. It was included as a small demo/proof-of-concept with Avi's old Iowa distribution. Enigo is working on filling it out and turning it into simple, robust tool for object/relational mapping. It is a lightweight, efficient tool that works very well for the vast majority of database interactions that are typical in applications. It is currently still an alpha release, as there may yet be some substantial changes, but it is functional and useful as is.


