A piggy bank of commands, fixes, succinct reviews, some mini articles and technical opinions from a (mostly) Perl developer.

Good FTP clients

  • WinSCP (Windows)
  • WS FTP LE (Windows)
  • FileZilla (Windows, Linux)
  • FireFTP (Windows, Linux)

Music players on Ubuntu

I haven't yet found software for Linux that equals Winamp on Windows, for ease of playlist manipulation.

  • Movie player - ugh
  • Banshee - Can't easily work with albums. Play Queue is too fiddly. Can't copy music between Play Queue, File System Queue and Playlists.
  • Amarok - Better than Banshee. Actually lets me see my directories on disk! Easy to make playlists.
  • Clementine - Works. Easy to browse files, easy to make playlists.
  • XMMS - ?
  • Audacious - ?
  • Rhythm box - ?
  • Songbird - ?


thanks

Know if output is being captured in Perl

if (-t STDERR) {
    print "standard error is not being captured (it's going to the terminal)\n";
    # email the error
}
else {

    print "standard error IS being captured\n";
    # just print the error
}

Developing over FTP

Using Eclipse and RSE plugin:
  • Logs in okay
  • But seems to always be closing directory sub-trees I've opened in 'Remote Systems' panel
  • It wants to do an 'ls' on every parent directory in the hierarchy, every time I change files. Very slow.
Using CurlFtpFS:
  • Install in Ubuntu from the software centre
    • to mount: curlftpfs -v username:password@server.example.com local_dir/
    • to unmount: fusermount -u local_dir/
  • Performance is unusably slow... Eclipse wants to know about every single file on the remote server, not just the ones I'm editing.
  • Saving the file through Eclipse using CurlFtpFS takes even longer than it would to upload it separately.
Using FileZilla and gedit:
  • Browsing is fast
  • Editing is fast
  • But you have to navigate to every file manually each session, it doesn't remember what you had open
  • The system of holding temp files locally is not ideal, but FileZilla detects changes in them very nicely
  • You still can't grep over the files as they're all held remotely, and it's a bit fiddly to navigate to a specific file
    Editing locally with Eclipse, and uploading after changes are made:
    • Write an Ant script to upload any modified files?
    • ...to investigate

    Using vim's viewports

    • :sp [filename] will split the Vim window horizontally
      • Can be written out entirely as :split
      • [filename] is optional, if it's omitted then the current file is loaded in the new viewport
    • :vsp [filename] will split the Vim window vertically
      • Can be written out as :vsplit
    • Ctrl-e [filename] loads a new file into the current viewport
    • Ctrl-w Ctrl-w moves between Vim viewports.
    • Ctrl-w j moves one viewport down.
    • Ctrl-w k moves one viewport up.
    • Ctrl-w h moves one viewport to the left.
    • Ctrl-w l moves one viewport to the right.
      • Can also use the arrow keys instead of h/j/k/l
    • Ctrl-w = tells Vim to resize viewports to be of equal size.
    • Ctrl-w - reduce active viewport by one line.
    • Ctrl-w 10- reduce active viewport by ten lines.
    • Ctrl-w + increase active viewport by one line.
    • Ctrl-w 10+ increase active viewport by ten lines.
    • Ctrl-w q will close the active window.
    • Ctrl-w r will rotate windows to the right.
    • Ctrl-w R will rotate windows to the left.


    Full article

    Run bash in a viewport, with this plugin (easy installation).

    Macro recorders for Windows 7

    Testing on Windows 7 Pro (SP1), in a Virtual Box (VM) window, running under Ubuntu 11.04.
    • AutoHotKey - scripting only, but users have built a recorder too.
      • Overall good. Free.
      • Steep learning curve, but users on IRC channel are very helpful
      • Note: Trying running program in "Administrator mode" if it doesn't seem to work.
      • How to develop scripts:
        • Use Recorder to get basic outline
        • Use included Window Spy to get precise coords (set "CoordMode, Mouse, Screen")
        • May need to fiddle with WinActivate parameters
        • Put sections of functionality into subroutines and test them individually
        • Use TrayTips as debug output
        • Make sure you make the script Sleep for at least 300ms between each action
    • Quick Macro - Couldn't get it to work. Shareware.
    • Auto Macro Recorder - Couldn't get it to work, either. Shareware.
    • PC Anywhere - Couldn't even download it.