Web Development Apps

I like editplus (option for instant uploading after programing = sexy), flashFXP (very quick and advanced FTP browser, good for remembering large amounts of websites), and gimp (easy-to-learn and easy-to-use advanced, free image editor).

ALSO, a really cool framework generator for YAML framework + CSS + HTML ouputted nicely is the Yaml Builder.
 


Karl, my biggest complaint with Prototype is that many plugins and such seem to require Scriptaculous, not that its a huge deal, but having to pull in possibly another 4-6 files does annoy me to some extend.

I have to admit that its been a while since I used Prototype, but having jQuery as 1 standalone file that has a transparent plugin system is certainly nice.

I agree, my first JS framework was Prototype as well and I found it rather unhandy just beacause of that. Of course you can paste all code into one file in the end - which is what I did at a point. But I find jQuery better to work with because it comes with richer features right from start, imho. And the documentation and repository *seems* more intuitive, meaning I can find what I'm looking for faster, and I'm able to customize it better. But I may be off since I haven't worked with Prototype for some time.
 
Karl, my biggest complaint with Prototype is that many plugins and such seem to require Scriptaculous, not that its a huge deal, but having to pull in possibly another 4-6 files does annoy me to some extend.

I have to admit that its been a while since I used Prototype, but having jQuery as 1 standalone file that has a transparent plugin system is certainly nice.

Just use protoculous, or protopacked then, which often compiles and packs both prototype and scriptaculous into a single js file. And by being packed, its also smaller than the two separate files combined from their original creator. The only problem with the packed versions is they're often least 1 minor version behind.

Also ever since proto 1.6 and scriptaculous 1.8 came out, they've made great strides in terms of compatibility and performance. Also there are times when I don't even need scriptaculous for dom extension (thus I'd only need prototype).
 
One more I just remembered....

WinSCP - All your FTP program are teh suck. WinSCP handles FTP & SFTP, great for people like me who dont want to setup FTP on there VPS and just use your SSH login.

Why not just use FileZilla? I find it works great :)
 
if it's just xhtml/php/css i'll usually stick with coda just because it's got transmit built-in (one of the better ftp clients on osx).. but for actual dev projects i tend to use textmate..

so i guess +1 for textmate..
 
I like Artisteer for quick, wam-bam-thank you maam, unique Wordpress and Joomla templates.
 
hmm bit late to the party as usual, but here goes. for seriuos php development i use and only use nusphere phped. seriously i tried all the other ides and just couldn't get on with them at all. why phped? i like it when you hit the run button (ctrl+F) it runs the script in a new tab insided its inbuilt IE browser. sweet, can't believe how much time that saves me and for the same reason i now use it to design sites with, ditching dreamweaver, especially if they have php or js embedded in the html.

As for other stuff, not much, i do a lot of bot development so livehttpheaders is a must for speed and for more serious header manipulation i recently got turned on to HTTP Analyzer v4 which analyzes any traffic into and out of your pc/mac. the filters are way more easier to setup than wireshark (imo) and it analyzes https traffic unencrypted. perfect for automating your favourite google apps, and jumping through their security loops ;), or reverse engineering a desktop tool or two you own to automate serverside.
 
Komodo IDE is probably one of the better IDe's I've found, reminds me somewhat of primalscript when I was still on windows, just wish I could put right to the server from it without having to do a 'remote save' ]

I'm a big komodo user. I enjoy it because it is the easiest IDE out there to code macros and plugins for.

I coded one macro to do the remote upload feature you are referring to. It is a bit limited, but it could be extended to be more dynamic (not need paths hardcoded, and the ability to upload entire folders). I fleshed it out just enough to work with what I needed at the time.

If you're interested, you create a macro in komodo and have it use javascript (right click in 'toolbox' and select 'add'->'new macro') . Inside the macro, paste:

Code:
komodo.assertMacroVersion(2);
if (komodo.view) { komodo.view.setFocus() };

komodo.doCommand('cmd_save')
//ko.run.runEncodedCommand(window, '%(python) \"C:\\\\PYTHON\\ftpDreamhost.py\" %F');

//komodo.view.displayPath

var scimoz = ko.views.manager.currentView.scimoz;
var linenum = scimoz.lineFromPosition(scimoz.currentPos) + 1;
var path = ko.views.manager.currentView.document.displayPath;

scimoz.insertText(0, cmd);

var filename = ko.views.manager.currentView.document.displayPath;

var cmd = 'python.exe -u \"C:\\\\PYTHON_SCRIPTS\\ftpDreamhost.py\" ' + filename;

StatusBar_AddMessage(cmd, "editor", 10000, true);

var runSvc = Components.classes["@activestate.com/koRunService;1"].
                createInstance(Components.interfaces.koIRunService);
                
var process = runSvc.RunAndNotify(cmd /* command */,
                                  ""  /* cwd */,
                                  "" /* environment settings */,
                                  "" /* stdin input */);

//var retval = process.wait(-1); /* wait till the process is done */


var cancelled = false;
var retval = 999;
try {
    retval = process.wait(3);  // Give the command a little bit of time to run.
    //dump("XXX RunAndNotify: child finished within 2s");
} catch (ex) {
    // XXX Could getLastError here to determine if the wait failed
    //     because of WAIT_TIMEOUT or WAIT_FAILED. Should probably not
    //     ignore the latter, but punting on that for now.
    //dump("XXX RunAndNotify: 2s passed, child has NOT finished");
    obj = new Object();
    obj.process = process;
    obj.command = cmd;
    ko.windowManager.openOrFocusDialog(
        "chrome://komodo/content/run/waitfortermination.xul",
        "komodo_waitfortermination",
        "chrome,close=no,modal=yes,resizable=yes", obj);
    if (obj.retval == "killed") { // Cancelled.
        cancelled = true;
    } else {
        filename = ex
    }
}


//scimoz.insertText(0, cmd);


if (!cancelled && process.getStderr() == "") {
    StatusBar_AddMessage(filename + ": " + process.getStdout(), "editor", 10000, true);
    
} else {
    StatusBar_AddMessage("ERROR: " + process.getStderr(), "editor", 10000, true);
}


//var process = runSvc.Run(cmd, '', '', '', true, '');
Basically, this is a macro that calls an external python script and waits for it to complete. In my specific case, the script is located at:

C:\PYTHON_SCRIPTS\ftpDreamhost.py

You can see in the javascript source where to modify that to your environment. It passes the current open file in the editor as a commandline argument. This python script is what actually does the FTP connect/upload.

I have the macro bound to ctrl+shift+s (it saves the open file locally then autouploads it to the ftp server).

The source of the python script is here:
Code:
#!/usr/bin/env python
import os, re, fnmatch, sys
from ftplib import FTP

baseDir = "C:\\PHP_PROJECTS\\myproject\\"
ftpdir = "test.remotedir.com"
username = "username"
password = "password"
server = "ftp.yourserver.com"

def uploadFile(filename):
    #print filename
    
    filepath = filename.replace(baseDir, "")
    
    #print filepath
    
    parts = filepath.split("\\")
    
    #print len(parts)
    
    file = parts[len(parts) - 1]
    
    #print file
    
    ftp = FTP(server, username, password)
    
    ftp.cwd(ftpdir);

    for dirs in parts[:len(parts) - 1]:
        #print dirs
        ftp.cwd(dirs)
        #ftp.dir()
    
    fileobject = open(filename)
    
    print ftp.storlines("STOR " + file, fileobject )
        
    
    # Clean up time
    #print 'Closing file ' + filename
    fileobject.close()
    
    #print 'Closing FTP connection'
    ftp.close()

    return
    

if __name__ == '__main__':
    if len(sys.argv[1:]) != 1:
        print 'usage: script.py filetoupload'
    else:
        uploadFile(sys.argv[1])
        sys.exit(0)
There are 5 strings defined at the top which need to be customized to your environment.

One weakness here is that the project directory and destination directory are hardcoded into the python script. This could be abstracted out and stored somewhere as a .properties file in the source file structure. The komodo javascript macro could then be instructed to read that file and pass the variables into the python script on the commandline.
 
some FOSS web dev tools

Open Source junkie here, using the following tools:

- GEdit for text editing: nice syntax highlighting, regex capable with plugins, etc
- Gimp for image editing: all the features I need for Web graphics, and quite fast to use. Only issue: When I want to learn a new technique, most tutorials are for photoshop and must be adapted. Oh well, that helps learn Gimp better right? :hollering:
- Firefox with plugins: Web Developer, Firebug, DownThemAll, WordTracker
- ies4all script to install IE5 and above in their own clean Wine sandboxes on my Linux system for testing pages
- winetricks to install MS core fonts, various VB and .NET runtime on my Linux system
- Filezilla for some site updates over FTP or SFTP
- rsync, ssh for pushing and tinkering with remote files on servers
- Bluefish: Web IDE, I am starting to play with this but it's hard to tear myself away from text editors after well over a decade! Bluefish gives you nice features like auto element completion, better tabbing system for multiple files, that you don't get in GEdit.
- bash tools like cut, basename, file, wc, grep, wget, imagemagick for batch manipulation: often resizing and converting images, renaming and gathering statistics from various files, and for external research.
 
  • Like
Reactions: mattseh
Arlene, What are the main advantages of git you're noticing over SVN? I've used cvs and svn both extensively in the past, but not git yet. Curious to know if it solves some of the longstanding issues of the rcs->cvs->svn lineage, like tagging/branching confusion.
 
its all about
notepad++ - php css js etc...
firebug - ff plugin
live http headers - ff plugin

photoshop cs4
dreamweaver cs4 - for css and html validation
page source in tab - ff plugin
foxy seo toolbar - ff plugin