The Newbie Web Dev

Use the right software.

Page 5 of 6 12345 Current6

Software

Now we’re getting into a controversial subject! Software preferences are almost like religion and politics. All I can do is give some recommendations from personal experience, so if you’ve got something you think is great, that’s fine, stick with it! But don’t get so glued to it that you neglect to occasionally try something different that, after a little acclimation time, might be much better.

Operating Systems

First of all, I think Ubuntu is just great—and yet I use Windows XP most of the time. The reason is simple: One can’t run ASP/VBScript/Access, or test anything in Internet Explorer, while running Linux. Since most people are running IE browsers, web developers must test in IE browsers. The good news is that one can run Apache/PHP/MySQL (a “WAMP stack”) under Windows, along with IIS (but not concurrently), and so have the best of both worlds.

Switching back and forth between Windows and Linux is not very efficient, because one grows accustomed to a favorite editor, file system, and file manager. Also, one collects resources on one or the other, and they are not easily accessed across different file systems. Sure, it can be done, but why? Keep life simple. XP Pro is mature and fairly stable (if one maintains it properly), and there are many good free or low-cost programs for it. The main idea is to design, build, and test web sites on a system similar to what is being used by most of the browsing public. We don’t need to discover a bug only when an angry client calls and says one of his clients complained about a web site the we built! Coding for Standards is a great idea, but testing in whatever browser is popular will always be necessary.

Local Servers for Web Development

One doesn’t need any web server software for developing plain HTML, CSS, and Javascript, since these all “run” in the browser. One does need a server for processing any kind of “server-side” scripting such as ASP/VBscript, ASP.NET, PHP, Perl, Java (Java isn’t Javascript), and any kind of database back-end.

IIS 5.1 comes on the XP-Pro disk. Just install it. With that, one can develop in ASP/VBscript, and use Access databases, and with add-ons, PHP, Perl, FastCGI, and MySQL. However, this arrangement is not 100% compatible with Apache web servers. Most notably, there’s no “URL rewrite” feature in IIS, and that is being used extensively nowadays to turn long “querystring” URLs into Search-Engine-Friendly (SEF) URLs.

WAMP Stacks: There are many free WAMP packages available that one can download and install in a few minutes. This puts a real Apache web server, with PHP, Perl, and MySQL on a Windows machine. Since it supports URL rewrite, this is a better solution than installing PHP in IIS. The best of the WAMP stacks are XAMPP and Apache2Triad. See the Wikipedia comparison, but remember that some lack handy configuration features, and one must search, learn, and dig into the many configuration files. XAMPP is the easiest one I’ve used, and it has pretty much everything one needs to run a PHP/MySQL development machine. I run it from a USB stick.

If developing for an IIS server host, use IIS. If developing for an Apache server host, use Apache. One can install both under XP, but both can’t run at the same time, because they both use the standard HTTP port 80. Not a problem: Just put icons on the desktop for stopping and starting each one as needed. Yes, one can also run either one on a different port, but it’s more trouble than it’s worth: you need to code, then later un-code, all your dev site’s links with a port number in every URL. Not fun.

Any time a web server is running, and the machine is online, make sure the NAT in the router is blocking in-bound port 80, else risk a nasty intrusion from some jerk. One may test it by going to pingme.info and pinging port 80 from outside. The ping should fail, unless one intends to allow public access to the machine, in which case one needs to forward port 80 in the router as well as any software firewall, and build security into the web applications (that’s another major study). Note also that the ping might succeed if you haven’t disabled “Remote Configuration,” and enabled “Stealth Mode” in the modem/router. In that case, it’s the modem/router’s little web configurator server that’s responding, not your web server. If one needs to show a client some work, either upload it to a public web host, or temporarily allow password-protected access to your local server. Dyndns.com is a handy way to have a URL that keeps up with your dynamic IP address, and the basic service is free.

Development Environments

There are integrated development environments, and there are disintegrated development environments. The former tries to manage your work by placing project management, file management, coding, and testing in one gigantic, complicated program. They tend to cost a lot of money, and have a steep learning curve. The latter are preferable because one gets to choose one’s own file manager, editor, and testing software, and assemble the perfect fit for one’s likes and needs. They are not actually disintegrated, they simply use the operating system for integration, instead of some massive “do it all our way” application.

The following are what I have found to be the best choices for the core of my development environment (and for the record, no, I am not receiving any form of compensation from any of them, but I sure do wish I was!):

I hope these recommendations will prove helpful. You can’t go wrong with any of the above. Since it’s just human nature to like what we’re most familiar with, it’s a good idea to start out with the best stuff. I also have some favorites on the Linux side, but that’ll have to wait for another article.

Continued...

Page 5 of 6 12345 Current6

— KV5R is disabled. Please help. —

Valid HTML 5 Valid CSS WCAG 1 conformance Handmade with Ultra Edit Studio Xara Xtreme