Must Have Tools

My goal in this entry is not to mention tools by name, but I am getting to the point where I am identifying commercial tools that will have to become part of my inventory as I move to using open source exclusively.

I have used Eclipse and I would not want to use anything else for writing Java code. I hold out great hope for this project, and I look forward to evaluating many of the other tools that plug into this framework. I have used PyDev to edit Python code in Eclipse, as well as Red Robin for Jython. (At the time, I was not happy with auto completion, but I was impressed enough overall.) I use Quanta to edit PHP, and I am happy to do so. I would like to find a good open source JavaScript editor that performs good auto completion – using I rely on auto completion for the DOM.

Since I jump back and forth between Python, Java, SQL, HTML, CSS, JavaScript, C, C#, PHP, and VB.NET, I often do not remember method names, but I recognize them. For example, today I am working in C# and I am using a datareader to retrieve data from the database. I know that my datareader can be populated by executing a method on the command object, but I cannot remember if the method is called ‘ExecuteReader’ or ExecuteDataReader’. Auto completion helps me be productive as I type rather than requiring me to reach for a manual or use a help file. I am not ashamed of relying on the auto completion feature of the IDE.

I am very happy with MySQL, Postgres and SQLite, each of which I would use under different circumstances, but I need a good modeling tool. I have seen some commercial software that allows for modeling both Postgres and MySQL databases. Once a database reaches a certain size, I like having a picture. I also find that it is useful to sit down with a client to validate the physical model against the business rules. I find that clients can read an ER diagram if I am there to help. Therefore, I will be shopping for a good tool. I have used DBDesigner for MySQL, and I have enjoyed, but I am getting tired of waiting to see the final version.

I like UML, especially as I am planning. I do not want to pay for Rational Rose. I know that there are modeling tools that plug into Eclipse. I like pictures of both the database and the libraries I build. I want to find a good tool soon. I do not need use cases, and I would not use Rational Rose or even Visio to manage them. Last summer, I was exposed to a product called Catalyze by Steeltrace. Given the way I think and work, no other tool compares. I want to write more about this tool later. This tool generates Word documents, process flows, and uses cases.

I have reservations about the MS Windows bias of the Catalyze tool, but I seem to recall that it supports MySQL. It may not be a stretch for it to support Open Office. I know that Catalyze uses Velocity – if Catalyze uses XML to create the Word document, it should possible to open it with Open Office. This tool is so good, I would be willing to run Windows on at least one of my computers just to be able to use it.

So, must have features for me are auto completion and useful wizards in an IDE, good modeling tools for databases and libraries, and good requirements tools. Eclipse supports some modeling tools, but I have not tried them yet. At the end of the day, I am not so ideological that I would refuse to buy and use commercial software if an open source equivalent is not available. I draw the line at purchasing tools that would require my clients to buy licenses, too. I do not want to pass on costs to my clients that way.

No Fuss PHP: Apachefriends

Over the past little while, I have been making an increasing commitment to open source. The learning curve is huge, but I have been having a great time. This weekend, I performed a defenestration on one of my desktop computers, making a full commitment to Linux. Bye bye, Windows. I am still running Windows on my laptop as a concession to my wife and kids, and to employers who sometimes require me to use Windows software.

Sometimes, I find installing software on my Linux box a bother. I go through the right steps, but the code will not compile for various reasons. Then, after I give up on compiling the code myself, I find that the RPMs do not install either. After a while, I get frustrated – when I was a younger man and I did not have a family, I had the time to solve these sorts of problems, but not any more.

I now have a life, thank you very much, and I have spent enough of my life solving stupid problems that I have never been asked to solve again. If I am going to learn something new, I want it to be useful. For example, I did not want to know why Mono 1.1.4 did not install on my Mandrake box. I waited for someone else to solve the problem. I am now running Mono 1.1.8, and I used the Bitrock binary install package – all is well.

I spent the time I could have spent on these types of problems with my family. No regrets. I know that there are so Linux users who would fault me for not knowing all of the ins and outs of the compiler, or for sometimes prefering a GUI to the command line. I admire the keepers of such knowledge, but people like me are the future of Linux. I am not ashamed.

Having recently crossed the line where most of the years of my life may have already been lived, I have no urge to spend all those hours at my computer. I have confidence that a younger person than me, with more time on his or her hands than I have, is already working to solve the problem for me. Having solved such problems in the past, I have nothing to prove. That’s the wonderful thing about open source! I have experience, wisdom and expertise to offer them, I like to think, but I want to use my time wisely.

A few months back, I want to install PHP 5 on one of my servers, but I was having a hell of a time. Just as I was about to throw the problem into the too-hard-basket, I found Apachefriends. Using this product, I am able to install Apache, MySQL, SQLite, PostgreSQL, PHPMyAdmin, and other tools in minutes. I have had no problems installing Apachefriends on either a Windows machine or a Linux box. I have run it on the following distributions myself: Centos 4, Fedora Core 3, Mandrake 10 and Suse 9.3.

The producers of Apachefriends warn that their LAMP stack is best suited for a production environment. This is a good cautious warning, but I would be quick to point out that each of the components (Apache, MySQL etc.) can be secured. I am not a security expert, but I believe that the stack is as secure as most other installations once the appropriate precautious have been taken. Similar precautions should be taken with Windows.

Check it out.

Next Entries »