Home Cubane Software Check out our products Our skills Who we are How to contact us

Skills

Click here for a full printable version.

Philosophy

Extreme Programming: At Cubane Software, we practice extreme programming whenever we can. Our clients benefit from our high quality, rapidly developed code.

Open Source: We've been involved in open source since 1994. Back then, it wasn't called open source - it was just what you did. We have released some of our own code under the GPL, and have written several articles for Linuxworld about open source products and methods. We look for open source alternatives because we think they provide the best possible value to our clients.

Languages

C/C++: Cubane Software does the bulk of its work in C and C++. We maintain existing code bases and develop rapid bug fixes, often with a patch ready to send within a few hours of a bug's discovery. We also have designed and implemented applications in both C and C++ from the ground up. Some of the applications we have written are still in heavy use after 5 years, with minimal maintenance having been required.

Java: We love Java. After experiencing object-oriented practices in C and C++, it's a treat to work with a language designed to be object-oriented. Recently, we've been developing in Java using Netbeans. We've also enjoyed applying Extreme Programming methods with JUnit, an integrated testing framework.

perl: Perl is our scripting language of choice. We use perl to automate tests and sys-admin tasks. We've used perl to write cgi scripts. We've also developed two Apache/mod_perl based projects which dynamically generated web-pages and images in response to user interaction and database content. Due the dot-com implosion, these projects are currently shelved. We also use perl with nc to automate web-based tasks by interacting with web-pages remotely and automatically.

PHP: We like PHP's syntax and approach to server-side scripting. It's refreshing to use a server-side scripting language with enough libraries to be useful without the weight of Java or the over-simplification of Basic. While its debugger interface leaves something to be desired, PHP is the best of the lot.

Platforms

Linux: We administer our own Linux server (Slackware installation) and mentor one of our clients in administering their two servers (Red Hat, Trustix). We've built servers, installed distributions from scratch, and customized whatever we needed to support new/old hardware. We also keep tabs on security issues on all three servers, everything from vetting new server programs to monitoring suspicious log entries. We automate much of this with tools such as Portsentry, Logcheck and custom perl scripts.

Unix: We don't use proprietary Unix variants much anymore, but we have extensive experience with them, in particular: Irix, AIX as administrators and Solaris, DG/UX, Tru64 Unix as users.

Windows: Most of the code we sell is written on Windows, for Windows. We have extensive experience in GUI programming, including resolving cross-Windows-platform issues. We run a variety of Windows OS's for in-house testing. We also do configuration, administration and user support when called on, particularly for networking issues.

Technology

CVS: We love CVS! We administer our own cvs repository. We use WinCVS, command-line cvs and pcl-cvs as clients. We've set up secure tunnels to access cvs repositories remotely.

Databases: We've installed various Open Source databases such as MySQL and PostgreSQL. We've administered all of those, plus Informix and SQL Server. We've accessed databases from perl, PowerBuilder, Visual Basic, Visual Basic Scripting, C and C++. We've written and deployed database designs using ERWin.

HTTP: We've installed and configured Apache more times than we care to remember. We've administered a production web-server running Apache with virtual hosts. We're currently running publicfile and resin for their particular strengths. We've used Squid as both a proxy and an accelerator (but we'd prefer not to repeat the latter!).

Mail: We administer sendmail when we have to and postfix when we can.

DNS: We do our own name service using tinydns; we use the djb-dns tools by preference.

Networking: We don't focus on networking, but it's inescapable. We have an office network of 6 computers (Linux server/firewall and Windows clients) which we maintain. We can set up VPN connections between networks.

HTML: We're familiar with the HTML standards, but we're not graphic designers, so we don't write web-pages for pay. We use HTML for all of our internal documentation.

SGML/XML: We've written documentation in XML and SGML and are familiar with the philosophy of these technologies. We can read and write DTD's.