Do you know what is all the rage for bloggers? Top ten lists. Surfers love to read them and bloggers love to give surfers what they desire. Based on this assumption I set out to make a list of my own. Being a professional web developer working for a classy outfit like lifeBLUE Media, it's logical that my list should be technical in nature. A list of my top ten oatmeal toppings might be fascinating and all - but is kind of irrelevant. Maybe next time around I'll explore my breakfast habits in detail but for my first top ten list ever, let me introduce you to some products that every developer should know about.
Nick's top ten web developer products:
10. SmartyThe world's leading caching and templating engine. I have seen Smarty deployed on projects ranging from a few hundred dollar hobby sites to multi-million dollar enterprise applications. Implementation of this project provides unlimited scalability and enforces clear separation between application layers. Smarty is extremely well documented and a feature rich. Adding plugins is a snap, plus it comes standard with a range of powerful plugins and modifiers. Providing even more power is the fact that any standard PHP function can be tacked right on to your template variables. Read more about this world class open source PHP template engine in Smarty's Crash Course.
9. WimpyI love multimedia. Without streaming audio and video, the Internet would be about as popular as your neighborhood branch library. Over the years I have tried numerous media players and the undeniable best quality for the price is this awesome little flash player known as Wimpy. I would be hard pressed to find a product in existence with more skins available or a more convenient way to make your own. With great documentation, it's a simple product that is easy to scale and deploy. It's something of a treat every time I get to recommend this feisty little media player. Have a peek at some great examples.
8. XSPF PlayerWhen thirty dollars is too serious an investment or for developers who are all about the open source, the XSPF player is an open source super lightweight flash player and the leading XML playlist format for audio. It is a standard that developers should at least be aware of. What RSS is to news, XSPF is to playlists. Like most standards that rise to the top of the open sourced fray - this one is rock solid in it's simplicity.
6. class.upload.phpI wanted to have at least one PHP class in this list. And the first one that comes to mind is this feature rich image manipulation script. The convenience and power of this script makes it a pleasure to work with. Simply instantiate it with the file pointer and it's ready to go. Besides the basic ability to move files, this free class allows you to apply filters, borders, text, watermarks, etc and convert, resize or crop your images. The only server side requirement is GD2 which is standard on any new PHP deployment. Writing those functions on your own is not super complex, but why bother when this script exists? Obviously using class.upload.php would be overkill for simply uploading files - but next time your project calls for batch processing of images, keep this jewel in mind. Read more about it here.
5. WAMP / XAMPWhat can I say, my job would much more difficult without WAMP. Yes, I am a Windows user. At some point aren't we all? But I am also a developer who wants a lamp stack running locally and deploying Linux can be a major pain in the gnads. That's where WAMP steps in. It takes about five minutes to install and setup - and just like that you are literally running a virtual server inside Windows. You localhost is Apache, mysql is running and is accessible through the included phpMyAdmin. I at least get a warm fuzzy feeling of security and freedom being able to build and test at home. Granted if you are a developer and reading this, odds are you're totally familiar with this product all ready. But on the off chance you came this far without using it, be joyful cause this free application rocks the Kasbah.
4. UltraeditWhat kind of developer tools list would be complete without mentioning my favorite code editor? I have tried most of the popular editors out there and keep coming back to good old UE. It has all the regular goodies you might expect such as code folding, macros, smart color coding, and built in FTP. Plus, it also has some really slick regex search functionality and though a minor thing, the ability to switch tabs with your search box open makes me happy. If I had to choose one editor to work with between Zend IDE ($300.00 for a one year license), Dreamweaver ($400.00) and Ultraedit ($39.99), I would choose the most lightweight of those three, Ultraedit.
3. AgentRansackI think we can all agree that the Windows Search isn't that great. Simply searching for files by name can bog down or even lock up your system and it's not even worth trying to search inside the actual files for text. And then I discovered the beauty of Agent Ransack. It can parse every file type known to man, including graphics, and does so with blazing speed and low overhead. This free application has helped me solve many a programming mystery as I trace variables or functions back to their source. The only thing that could make this app better is if it also had search and replace functionality. But for what it does, it's the best one on the block.
2. CSDiffAnother free tool great for uncovering developer mysteries, CSDiff simply compares files or directories and walks you through variances in a convenient and simple manner. Like all good programs, it has a very small footprint and works like a champ. It's surprising how often this tool comes in handy during debugging or troubleshooting. When knowing the difference between two scripts, documents or directories is required this app is the de facto standard.
1. SubversionSubversion is a next generation versioning control software. I never really used CVS, which was the standard, therefore it's impossible for me to really compare the two. I do however know Subversion, and will gladly call it perfect in it's simplicity and crazy useful. It has the obvious benefits of enabling collaboration and protecting developers from stepping on each other's toes as well as the security of being able to revert changes regardless of how much time has passed or how many changes are made. But the convenience of keeping your code centralized too is a real pleasure. With a publicly accessible Subversion server I can work on the same project from four different computers without the need for a zip drive or trying to merge changes on my own.Deploying the server can be a pain in the neck - but hey, that's what your server admin gets paid to do right?A word of advise, commit often and commit early.
I hope you have found this list helpful. There are many tools and products out there and just as many opinions about each. What are your "must have" tools?