Dev Software

Software for Web Development

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 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.

2011 Update: Windows 7 Home Premium comes with IIS 7.5, which supports URL rewrite and PHP, meaning that you can run all those neato Linux/Apache-type web apps under IIS. Doing so has a considerable learning curve, but the Microsoft Web Platform Installer makes things pretty easy.

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!):

  • File Manager: Total Commander (TC). Managing the file system is at the very core of all serious computer work, and Total Commander is the ultimate file manager. It’s a classic dual-pane file manager, making all file operations visual and simple. It also handles FTP, compressed archives, and networking tasks. Dozens of free plugins expand it further (it’ll even read Linux partitions from Windows). It’s $38 and worth every penny. Once you get used to it, you’ll never run Windows Explorer (or anything else) again. It’s running on my system 99% of the time.
  • Editor: Note Tab Pro (NTP). This is a high-powered tabbed editor with clip-book libraries, a powerful macro/clip-book scripting language, and almost infinite configurability. One can do things like edit 300+ files at a time, autosave, add code cleaners and validators and multiple browsers, etc, so that it becomes the core of the development environment. Dozens of script libraries are available for all the popular scripting languages. It’s $30 and well worth it. Customizing it and using it effectively does have some learning curve, but it scales well with one’s projects and skills, and the more one learns to do with it, the better it gets. I’ve used it heavily for over seven years and still don’t use half of it’s features.
  • Update: I started using UEStudio a while back. UEStudio is the high-end version of UltraEdit. It is by far the most powerful and fully-featured editor in the world. Why did I switch from my beloved NoteTab? One reason is, NoteTab’s syntax highlighting is rather primitive (HTML only), while UltraEdit’s highlighting is, well… Let’s say you have HTML, CSS, ASP, and JavaScript all in the same file. Ultraedit will detect each one and highlight it according to your preferences! And it has a few million other nice features as well.
  • Browsers: Internet Explorer 6 and 7, FireFox, Opera, and Chrome. Use what most of the public uses for all output testing. The “Preview” built into most IDEs are even buggier than the rendering engines upon which they are based. I don’t trust them. Testing on IE6 is a problem because (1) it’s the buggiest of all browsers and (2) it’s still widely used, and (3) it won’t coexist with IE7 on the same system. I run it in my networked backup machine, and before delivery, give the project a run-through on that machine. What a pain. IE6 is to web development what bad drivers are to video cards.
  • Update: I now use a program called “MultipleIEs” to run IE6 on the dev machine. It will allow various IE versions to coexist.
  • Image Viewing and Processing: IrfanView is free, and does everything you need except image creation. It integrates well with Total Commander and views most image and most media types with a click on the filename. It also does neat stuff like bulk conversions and thumbnail pages.
  • Image creation: Photoshop. Steep learning curve and even steeper price, but it’s the king of the hill. Some people like the GIMP, but I just can’t seem to get used to it.
  • Update: I dumped Photoshop and started using Xara Xtreme. It’s a layered vector-and-bitmap-in-one graphics development environment that beats Photoshop in every way, particularly in the learning-curve department. Best $100 I ever spent!
  • Office Suite: OpenOffice.org version 3 is now out, and capable of completely replacing MS-Office versions 97 through 2008. Free. Don’t expect perfect conversions on complex Word documents. I don’t use it much, but occasionally a client will send doc files and one needs to open them extract the text. A side note here: Don’t ever rely on the “Save as HTML” feature of word processors—they generate messy code and one will spend more time cleaning it up than one would spend just formatting the raw text by hand.
  • Handy stuff: AutoReplace, FastStone Capture, ColorPic, and ThumbPage are good little freebies for developers.
  • System Utilities: Defraggler, by the makers of CCleaner: Best defragger I have ever used. SyncBack: Can do automatic backup jobs and/or continuous file sync. It’s the only free backup worth having. CCleaner: Install it, then occasionally right-click the trashcan and click “Run CCleaner.” It kills off all temp files, Internet cache, cookies, History, etc. Very fast, effective, and free. Ditto: A nice and simple clipboard enhancer.
  • 2011 Update: Now using Cobain Backup — it’s free, it’s the best. Set it to back up your work twice a day, and your whole system once a week. Also, set it to run CCleaner before every backup.
  • Security: Avast Antivirus, SuperAntiSpyware, [Spybot Search & Destroy got too slow and buggy], and Sandboxie. If your run a NAT router, the Windows firewall is sufficient and you don’t need some complex after-market firewall. Run questionable downloads in Sandboxie—no amount of security software can protect you from downloading and running a trojan, but you can run it sand-boxed and if it squeals your AV, dump the sandbox! That little tip alone will save you the “fun” of a complete reinstall of Windows and all your stuff. KeePass: A great password safe. Free. When developing, one makes dozens of passwords, for apps, clients, and online resources. Run it on a USB stick, and set SyncBack to back up the stick daily.
  • Lowering your profile: What with Google profiling everyone, ISP sniffing, and all that bloody rot, I now recommend using proxies for all your online research. Startpage.com is a good search engine proxy that doesn’t record your IP or search terms. And if you’re doing research on the darker underbelly of the web (or any “controversial” subject matter), it’s a good idea to browse anonymously via the Tor network.

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…

Leave a Reply

Your email address will not be published. Required fields are marked *