Apr 15, 2008

Free And Low Cost Software For Developing a Small Software Project

The company I work at is a huge, so they don’t mind spending hundreds of thousands of dollars a year for IT stuff. Us small guys do not even have an IT budget. ClearCase and ClearQuest and anything Microsoft are simply to costly! Anything dealing with PHP, Linux, MySQL and SVN is probably cheaper or free and best way to go!

Since, I had to spend quite a bit of time seeking out the below software tools and services, I thought it may be handy to list the tools we used for anyInput. The below tools are free or low cost.

Version Control

  • DevGuard ($8 / mo) - Our SVN host. We use an SVN provider since we do not want to worry about setting up an redundant in house SVN server. Also, DevGuard is relatively cheap.
  • TortoiseSVN (free) - The best Winblows SVN client out there. When you enter commit comments, it auto-suggests functions from the modified source files. Also, the diff and the conflict resolution functionality are awesome. Unfortunately, I migrated to Linux Ubuntu, which does not have Tortoise. I end up using SmartSVN or the command line SVN client now. I do use Tortoise from work sometimes though.

Issue Tracking

  • Mantis (free) - Mantis is not the best issue tracking system out there but the price is right. Anytime I discover a bug or think of a new feature then I enter it into Mantis for addressing later. You can cycle the issues through stages such as Submitted, Acknowledged and Resolved. You can also enter notes for each issue. Mantis is multi-user so it is useful for our small team of two people. Sometimes, I am lazy and do not enter thoughts into Mantis so I end up forgetting them. Mantis is basically a place to unload your brain.

Development

  • LAMP Stack (free) (Linux, Apache, MySQL, PHP) - We use Debian for the production environment and Ubuntu for development environments. Ubuntu is Debian based. What’s really cool about Debian is that it already has a boat load of packages suck LAMP stack and a plethora of other useful programs (phpMyAdmin, Bluefish, Symfony and etc). All that you need to do is issue a command and the software is downloaded and installed. Enough said about the LAMP stack.
  • phpMyAdmin (free) - I do not like using the command line interface to MySQL. phpMyAdmin a GUI to all of the functionality of the MySQL database. For instance, If you want to insert or alter data in a table, phpMyAdmin builds the SQL for you and executes it!
  • Bluefish (free) - An linux editor that supports many programming languages such as PHP. Bluefish is not as good as NuSphere PhpED ($200), the PHP editor for Windows that I used previously, but it does the job and the price is right.
  • Symfony Framework (free) - An awesome PHP5 framework. It simplifies the development process by generating code and having commonly used web functionality built in. More on Symfony in a later post.
  • ORM (Object Relational Mapping) (free) - The Symfony Framework has the Propel ORM built in. Propel essentially is another layer of code that sits above the database. Propel basically generates objects based on your schema so that you do not need to write SQL for non-complex queries. It handles INSERTs, SELECTs, UPDATEs and DELETESs all in the generated objects. I am sure you know how tedious it is to write and debug SQL queries in your code!

If there are any tools I should be aware of then please let me know about them! Would you like me to go more into detail about setting up some of the above software?

No comments: