What do you use for site coding, FTP, and file management? Suggestions?
I use Dreamweaver and hate it. It's bloated and slow, it has far too many features that I never use. Basically I am looking for code-coloring/view, file management and FTP. What are you using?
36 comments
[ 925 ms ] story [ 1251 ms ] threadI would also look into deploying your site via whatever vcs you use as opposed to through ftp, it forces you to keep everything inline
Generally, I prefer rsync. Rsync can exclude all of the .svn directories so you are pushing the latest working copy and it also only pushes files that are new or have been changed on the source machine.
You can easily write up a little deployment script that you run when you are ready and up you go; it does many of the same things (exception being delete) that Subversion's update command does for you.
Because I use rsync with a shell (rather than it's daemon process), I generally have a passwordless private key to the server so rsync can run without constantly asking me to authenticate.
Use source control such as GIT, commit your work then its as easy as 'cap deploy' to send it to the server, no messing with files!
Hands-down it's the best text-editor I've ever used. But it's also an FTP/SFTP client. And it'll integrate with your version control. And it will provide you with a local console/SHH, CSS editor & browser preview (if you are a web-developer) and a small reference library built-in to the app...
In case you haven't noticed I really can't speak highly enough of Coda. And to make matters even better, if you have a bug: report it. Don't be surprised when you hear back from the developers the next day...
http://www.panic.com/coda/
I'm also not a huge fan of the Coda CSS editor, although modern browsers are quickly obsoleting CSS editors anyways.
As far as Coda vs Emacs... I think that's like anything else. I can replicate all of the functionality of Coda using GEdit + plugins on Ubuntu but it doesn't have the same feel of a beautiful, coherent, whole. I've never gotten into vim/emacs in particular as I'm a bit of a fan of nice GUIs.
My deployment method is to commit to svn, then svn update on the server (plus a script to move the current live site to a backup location in case I need to roll back). This is faster than FTP and means I've never, ever launched code that I haven't committed. Even on a one-man project that's useful.
Adobe, if you're listening at all, start again from scratch. Make something actually good!
You'd think that the free FTP utilities would be good enough, but SmartFTP has so much polish and so many small enhancements (especially when it comes to handling multiple connections, auto-resume, remote file editing, transfer queuing) that it blows everything else away.
That being said, I'm still on version 2.0, while the current release is 4.0. I can't comment on how much better or worse it's gotten.
Editor: Substitute your favorite lightweight, powerful editor for vim. Emacs and textmate are good choices, I hear. I stuck with vim and am quite happy, because using the mouse or arrow keys feels like so much effort. I don't like the heavy meta key dependence of Emacs: most of the people I know who use Emacs have special keyboards, whereas I'm very comfortable using my notebook keyboard for vim. Haven't tried Textmate because I run Ubuntu, but Mac people give it a lot of praise.
FTP: I actually use FTP very sparingly, mostly for clients that have no idea what a VCS is, or have FTP-only access to their server. If I just need to upload miscellaneous files, like images etc., I'll scp or rsync from a shell. But FileZilla is pretty good, and it's cross-platform.
File Management: rsync for very large files (media stuff), giant tarballs, or stuff I don't like to keep in the VCS, like config files with secrets. Otherwise, I use whatever VCS is appropriate for the project, which is usually Subversion. I use Git when I have a choice.
Fireworks CS4 for graphics editing and splicing
Cyberduck is a good ftp/ssh over ftp/file client.
For sure use some form of source control to manage files. ( I don't care what you use just use something. Subversion is ok. Git and Mercurial are nice too.)
My preferred method for updating a site is to checkout/clone from source control to a new location in your websites hierarchy and then create a soft link to the new directory. Scripts can automate this process.
ln -si /var/www/mysitecheckedoutfromsourcecontrol /var/www/mysiterootsetupinwebserverconfig
After that, If you have problems with the new site, you have a simple one line command to revert the site back to a known good point in time. All you have to do is relink it to the old site and you are off and running.
ln -si /oldsitepath /var/www/mysitesetupinwebserver
Call me old fahsioned...
On a java project I work on I use intellij, and I hate every second of it. The amount of (external api) stuff to remember is simply too large to commit to memory though.