Thursday, June 26, 2008

Web Programming Toolkit

I am not a "web guru" but I can generally get things done. But I am always on the lookout for tools that will make things easier. Here are some of the tools that I've been using lately in both my primary job and side projects that I work on.



Content Creation - Text Editing

In this area I am 'old school', I'm a text editor kinda guy. Right now my text editor of choice is notepad++. This is a great notepad replacement with line numbering and syntax highlighting and lots of other goodies for a programming editor.

Content Creation - Graphics

As I have mentioned in other posts, I am a big fan of Blender 3d for graphics creation both 3d and 2d. Also Inkscape for vector graphics is another great tool. Paint.Net is also good for getting those 2d images ready for the web.

Database

It is no small suprise that my database of choice would be MySQL. Here is a web standard if I ever saw one. Easy to set up and use and has always been very PHP friendly. I am also doing some looking at SQLite to see if it may hold some possibilities for use in the future for me. Actually I mention this because I've tinkered a little lately with Google Gears which is a component from Google that allows you to create a local site specific database on a client machine (with their permission of course) to let you store relational database information OFFLINE so that they can cache your web based application on their computer and use it while they are disconnected. This is actually how Google Docs and Reader are doing their offline modes. It uses a SQLite engine to accomplish this.

Code

PHP & PEAR

Most of the files you will see coming from my editor are coded in PHP. PHP has become one of the foremost used scripting languages used online these days. It is versatile for mixing dynamic content with static, making it easy to design websites that reuse a lot of code rather than duplicating it page after page. PHP also allows for easy integration with databases. This point brings me to PEAR. PEAR is the PHP Extension and Application Repository. This is a readily available library of tools written to extend the capabilities of PHP. One example is the MDB2 library which allows you to write database applications that don't really care what kind of database is backing it up (as long as the database tables are there) so your application can be just as happy talking to a mysql database as to an mssql or SQLite database. It also allows for "lazy" database connections. You can set up your database connection in a header file then when you code you always have a $db object ready to talk to the database for you. It also makes it easy to get the data back from queries really simple to do in various formats. I'll probably do a example in my next blog post.


JavaScript

I've been using a Javascript Framework called Prototype lately that is really helpful. I've mentioned it before. If all you are looking for is an easy way to get into AJAX, check it out. Also an extention to Prototype called Script.aculo.us makes doing user interfaces easy with JavaScript and AJAX. From animated effects to Edit-In-Place fields to Drag and Drop support it is a great library to get to know.

A recent javascript library that I found for making HTML tables sortable is called Standardista Table Sorting it is very simple to implement in your code and is very fast. I'll have to show you how I added it to a function to take a MDB2 result set and turn it into a sortable database table (based on an idea implemented by a co-worker) in a later post.

So, in short, yes I am firmly planted in the LAMP (Linux Apache Mysql PHP) camp. But I am certainly open to other tools and technologies. Really whatever makes my job easier.

What are your favorite tools, languages, database engines and libraries? Leave a post and let me know!

No comments: