Web Development Tools; Coda vs. Espresso 2

Several years ago, I moved from Dreamweaver to Panic’s Coda as my primary web coding editor. The only feature I really missed was Dreamweaver’s function to check the timestamp on the server file before uploading an edited version of the file and alert me if I was overwriting a file edited elsewhere. Since I work on multiple Macs, that feature came in handy so I didn’t overwrite something I did the week before on another Mac. I modified my workflow to open Transmit, sync that directory to my mac, open Coda and start to work. I know I could have used Coda to work directly on the server but I never got comfortable doing that. Since I’m the sole “developer”, this workflow was ok for me. I wasn’t interested in setting up Git or SVN. Anyway, Panic updated Coda to Coda 2 so I did some looking around to see if I wanted to move from Coda to Coda 2. If you look at the reviews of Coda 2 on the App Store, it’s getting some pretty poor reviews. I know developers can be a cranky bunch but when you see words like “unusable”, “unstable” and “crashes”, it does cause concern. Since they don’t have a demo of Coda 2, I decided to look at Espresso 2, which does have a 15 day, full featured demo.

Espresso 2

My main need for a development tool is to be able to find a file quickly, make my edits, validate the syntax and upload it as quickly as possible. Autocomplete and tag closing are nice to haves but not essential. The main frustration I’ve had with Espresso 2 is that the appearance of the publishing cloud next to the file name has been hit or miss, especially on a Mac running Snow Leopard. I can’t live with that. I was working on a file last evening and the publishing cloud icon didn’t appear. Nor did it appear for any file in that directory. This morning, it seems to be working fine.

As with the plugin architecture of Coda, Espresso 2 uses ‘sugar’ additives to provide enhanced features. I’m not sure how robust the ‘sugar’ development community is for Espresso 2 but there’s stuff out there.


Espresso 2 and Coda (original) are not very different. Coda autocloses brackets and braces but in a rather annoying way which requires you to move the cursor between the braces before typing. Espresso 2 doesn’t autoclose braces nor does it highlight braces when you close them like Coda does. Coda doesn’t do the file checking I mentioned above and it doesn’t seem like Espresso 2 does either. Espresso 2 does PHP sytax checking but Coda requires a plugin for that. Espresso 2 is much superior when it comes to wrapping selected text with a tag. If I didn’t still have a bad taste about Espresso 2’s publishing, I would probably be using Espresso 2 as my sole development tool right now. I’m not sure if I could be efficient using both Coda and Espresso 2 right now and I’m certainly not plunking down the $$ for Coda 2 until I see some more favorably reviewed point releases that address stability.

Funky Domain Names

With all of the URL shortening services out there, it’s easy to notice all sorts of domains that aren’t .com or .net. So I was playing with my surname and sure enough, I can get a Slovenian domain (.si) which matches the last two letters of my surname. I guess they need to raise revenue somehow so there’s a bit of a charge for the domain name regardless of who I register it with.  Is $70 per year worth having a cute domain name? Am I being cheap?

Coda; Web Development on a Mac

I can feel Apple pushing me again. Last time, it was dumping ‘classic’ OS 9 for the new fangled OSX. All my old apps either perished or were finally updated. Now Apple is strongly hinting that I need to do the same with my legacy apps which are not universal binary, if in fact, Rosetta is an optional module for Snow Leopard as widely reported.

So I downloaded Panic Software’s Coda web development software the other day and started to play with it as a potential replacement for Dreamweaver 8 (yes, I know). I started with Dreamweaver because I needed to get up and running quickly and DW had a bunch of ‘out of the box’ solutions for me. As the years have gone by, I’ve found little use for DW’s WYSIWYG editing, canned login scripts and templates. I essentially code by hand but enjoy the autocomplete and syntax matching features. So without further ado, here’s my initial reactions and thoughts about Coda.

  • Splashy, familiar interface. Really feels like a Mac application and not something ported over. Normally, this doesn’t bother me but Coda just feels smoother.
  • Interesting effects and functional autocomplete and syntax matching. Automatically provides closing parens (very welcome since I tend to forget them). However, I wish it had DW’s add-ins which extend this feature to jQuery (sweet). Looks like the Coda API will allow third party developers to do this but we’ll see if there is a big enough developer base for this.
  • Coda lets you work on the server directly, if you want to. Feels like you’re working without a net until you get used to it. The integrated FTP is much more responsive than DW’s.
  • If you work on a single site from multiple desktops, Coda doesn’t provide you with the same sense of security that you won’t overwrite more recent work unless you run Subversion (which Coda does natively…very sweet). DW will tell you there’s a fresher version on the server during the upload process. Again, if you work directly on the server with Coda, you know you’re working with the most recent version.

On my Coda wishlist:

  • It would be nice if I could more quickly distinguish whether I was working on the remote or the local version of the file. Perhaps color coding the tab. I know there’s an icon there but you have to mouseover to see it.
  • Keystrokes (or better yet, a button) for reverse publish (better known as an ftp ‘get’). I’ve gotten into the habit on DW of opening a file and immediately getting it from the server with a click.

I haven’t played around with the CSS editor too much but it looks to be just fine. I think Coda will do nicely for me, especially at $99 USD.

In Praise of jQuery

I finally got around to jumping into javascript, specifically jQuery. It’s an awesome framework and a valuable part of the toolbox. Now I haven’t really found anything I couldn’t do server-side in php but there are certainly a bunch of things that are just easier using client-side, especially styling (which I hate). Using jQuery has improved my html coding, especially the use of optional attributes, which jQuery exploits quite nicely. There’s more to css life than just styles and ids.

When I first started with jQuery, all I saw was simple hide/shows and effects. It really didn’t take long to figure out how to use AJAX which not only handles form submissions but it lets me take a chunk of output and use it all over my static site. Change it once and it’s updated all over.

There are a lot of plugins around for jQuery to handle a lot of routine tasks like form validation and form submission. While I started out using plugins, I’ve eventually figured out it’s just as easy to code a couple of lines and have a customized solution that you can understand and manipulate.

Javascript and jQuery have a learning curve like most everything else but it’s worthwhile to give it a try.

Including Javascript in XHTML

I’m pressing on with learning javascript, specifically jQuery. I’ve made quite a bit of progress. I’ve got some working AJAX calls, and nifty CSS and text manipulation using jQuery. Of course, I’m not so good using external files so I put all of the javascript inside the HEAD tags of the page. This can lead to validation problems which can be easily solved with this terrific tutorial.

CSS, JavaScript and XHTML Explained » Including Javascript in XHTML: external, DOM created, CDATA & comments.

jQuery: I want to use it but…

It’s taken me the better part of a year to teach myself how to code in php and write MySql queries. Now I’m on to javascript and it’s not going well. Actually, I’m not really working that hard at javascript but I am interested in jQuery since it appears to be perfect for someone with a dangerously limited knowledge of javascript.

I haven’t gotten very far with jQuery. Probably because I don’t understand javascript. I wrote a couple of pages which use hide/show and animated transitions but that’s it. Just glitz rather than heavy lifting. I know I can use jQuery’s AJAX functions to call remote scripts via POST but I want to do something with the data that comes back. I just haven’t figured out how and I can’t seem to find a good online tutorial for this. Oh well.

jQuery: The Write Less, Do More, JavaScript Library