ASP.NET File Upload with *Real-Time* Progress Bar - redux

Posted on July 31, 2008 by Matt Berseth.
Categories: ASP.NET, Contributors.

So, guess who just got the memo ...

Dear Matt,

Uploading large files with ASP.NET is difficult.

Sincerely,

Every ASP.NET Developer and their Mother

After sufficiently embarrassing myself with my earlier post, I decided it was high time I spend a little bit more time understanding this problem. And lo and behold Jon Galloway has already written up a nice survey on the topic. So to bone up on the issues I followed all of the links Jon provided as well the ones provided by all of the one-off emails I received in response to my previous post (thanks everyone).

Of all the upload components I checked-out (SWFUpload, FileUp, Flajaxian FileUploader, RadUpload, NeatUpload, ASP.Net File Upload/Download Module, etc...) I was the most interested in the last 2 (NeatUpload and ASP.Net File Upload/Download Module). They are both free, have my kind of licensing and come with the full source code.

So I downloaded both of these components and played around with plugging them into the demo app I blogged about previously. Both components include progress bar web controls, but I already have a progress bar widget that I really like. So my focus was on seeing what it would take to leverage only the HttpModule portion of these components and checking out how I could have the module interface with my progress bar. Like I mentioned previously, I want something that looks like this ...

image

image

image

NeatUpload Vs. Darren Johnstone's ASP.Net File Upload/Download Module

Both NeatUpload and Darren Johnstone's components seem to have a rather large following, but I chose to see how I could extend Darren's control because it was already using AJAX plus a custom HttpHandler to communication the upload progress back to the client. And that seems really close to what I wanted. If this doesn't pan out, NeatUpload actually seems to have a larger following so I will probably go back and revisit this topic using NeatUpload instead.

How it Works

From what I can tell, Darren's component basically works by injecting a hidden INPUT element into the form that contains the file INPUT(s). The value of the hidden element is a Guid that contains a well-known prefix (Darren uses the token ::DJ_UPLOAD_ID::). Then as his custom HttpModule is processing the request, it looks to see if the form contains this token. If so, he tucks the upload progress information into memory using the id value as the index. Then, if a client wants to query the upload progress, they can query his component using this guid as the look-up value.

Below is a screen capture of the request body. The hidden field is highlighted in yellow.

image

Querying the Upload Status

The second cool thing about Darren's control is that he has included a custom handler for accessing the progress of an upload. This makes is pretty simple to get at the upload progress using your favorite AJAX library. Below is a small snippet of JavaScript that I am using in my demo app for getting at the status of the current upload.

  1. intervalID = window.setInterval(function(){
  2.  
  3.     var request = new Sys.Net.WebRequest();
  4.     request.set_url('UploadProgress.ashx?DJUploadStatus=' + token + '&ts=' + new Date().getTime());
  5.     request.set_httpVerb('GET');               
  6.     request.add_completed(function(executor){
  7.    
  8.         //  the progress is returned as xml
  9.         var e = executor.get_xml().documentElement;                   
  10.         var empty = e.getAttribute('empty');
  11.    
  12.         if(!empty){
  13.        
  14.             //  extract the attributes I am interested in
  15.             var percent = e.getAttribute('progress');
  16.             var file = e.getAttribute('file');
  17.             var kbs = Math.round(parseInt(e.getAttribute('bytes')) / 1024);   
  18.             var size = Math.round(parseInt(e.getAttribute('size')) / 1024);                       
  19.        
  20.             //  update the progressbar to the new value
  21.             progressBar.set_percentage(percent);
  22.             //  upadte the message
  23.             updateMessage('info', 'Uploading ' + file + ' ... ' + kbs + ' of ' + size + ' KB');
  24.            
  25.             if(percent == 100){
  26.                 //  clear the interval
  27.                 window.clearInterval(intervalID);                       
  28.             }                       
  29.        }                   
  30.     })
  31.    
  32.     //  invoke the request
  33.     request.invoke();
  34.    
  35. }, 1000);

Sample App

No live demo this time, but I do have a sample application. You can download it here.

Conclusion

Well, that's about it. I am curious, how have you handled file uploads in the web apps you have worked on? 3rd party component? Something home-grown? One of the components I mentioned above?

That's it. Enjoy!

SSH-Agent Saves Time During Remote Logins [Command Line]

Posted on by Gina Trapani.
Categories: Contributors.

If you're constantly logging into a remote server using SSH and you're sick of typing your password every time, tech site Webmonkey details how to save time without sacrificing security. Using SSH-Agent, a utility that acts as a broker between your local machine and remote machine, you can log in without typing your password every time (but also securing your private key from attackers). Hit up Webmonkey to get the rundown on using SSH-Agent on Linux, Mac, and Windows. This one could have done well on yesterday's list of top 10 command line tools.

Automate a Remote Login Using SSH [Webmonkey]


Top 10 Command Line Tools [Lifehacker Top 10]

Posted on July 30, 2008 by Kevin Purdy.
Categories: Contributors, UNIX, Windows.


When you need something done quickly, efficiently, and without any software overhead, the command line is where it's at. It was the first way humans told computers what to do, but as graphics became increasingly important, the command line, or terminal, became an insiders' secret weapon. But with the right commands and a little bit of know-how, anyone can get things done from a text-only interface. Let's take a look at 10 commands and tricks that make the terminal more accessible, and more powerful, on any system. Photo by blakepost.


Note: Mac OS X and Linux users have robust command line interfaces baked right into their systems. To get to them, head to Applications->Utilities->Terminal in Finder. It varies in Linux, depending on your distro and interface, but a "terminal" can usually be found in an "Accessories" or "Utilities" menu panel. Windows users are best served by installing and configuring Cygwin, a Unix emulator, which we've detailed in a three part series.


10. Customize your prompt

term_customized.jpgIf you're going to spend any time at the terminal, or want to start doing so, it should be a welcoming place. To go beyond green or white on black, check out this Ask Lifehacker response, in which Gina runs through a few simple ways to change the colors, and the greeting message, on your prompt for Windows, Mac, or Linux systems.


9. Force an action with sudo !! ("bang bang")

sudo_bang_bang.jpg You already know that prefixing a command with sudo makes your system execute it with superuser privileges. But when you forget to sudo, the !! or "bang bang" comes to the rescue. When you've perfectly crafted a long command that does exactly what you need, hit Enter, and d'oh—you don't have sufficient access privileges—you can sudo !! to repeat the last command with superuser privileges. It's the ultimate nerd triumph: "Oh, you didn't like that command? Well, then sudo !!"


8. Create whole directory trees with mkdir

When it comes to organizing music, pictures, documents, or other media, nested folders become a necessary annoyance—as in right-clicking, choosing "New Folder" and then naming and clicking through each of "The Beatles->White Album->Disc 1." It's far easier from the terminal, as the Codejacked blog points out:
mkdir The Beatles\White Album\Disc 1
Some terminal users have to add a \ before spaces, but you get the idea. If you're a Vista user who's just not down with Cygwin, you can still pull this off with the md tool in command line.


7. Filter huge lists with grep

Some terminal commands spit back a bit too much information, and that's where grep comes in. Need to manually kill a faltering Thunderbird? Punch in ps aux | grep bird, and you'll get back the specific number to kill. Need to know which files don't have your company name in them? grep -v DataCorp *.doc. Programmer Eric Wendelin explains grep more in-depth.


6. RTFM with man (and more)

man_cropped.pngLet's say a program, or web site, has just asked you to run a command to unlock or enable something, but you'd like to know just a little more before jumping in. Add man before the command (as in man ssh) and you'll get manual-style pages detailing how to use the command. Bit too much material to process? Try whatis for a brief description, --help after the command for basic usage, or any of these other command-line learning tools.


5. Manage processes with top

Most systems have a tool to view "tasks" or "running programs," but they usually hide the true guts of what your system's doing from you. The Hackszine blog points out that Mac and Linux users can harness the power of the built-in top command to track and kill runaway processes making your system unstable. There's also ps -aux for a single-screen, non-updating look at what's bugging your computer.

4. Master wget for powerful file-grabbing

wget_cropped.jpgThe wget command has been around since before there was all that much stuff to actually yank from the net, but this extensible, multi-purpose tool has lots of great uses these days. You can mirror entire web sites locally, resume huge downloads on the flakiest of connections, download the same file every hour to keep tabs on a project, and do much, much more with wget. It's one of those elegantly simple tools that's only as powerful as your creativity.


3. Get way beyond system searching with find

Once again, programmer Eric Wendelin offers real-world examples of how powerful a command line tool like find can be in, well, finding files and directories that match the smallest criteria you can imagine. Want a list of every HTML file that references the hexidecimal color #FF0000 (red)? find can totally do that for you. As Wendelin points out, find, by itself, is about as convenient and powerful as a total-system searcher like Google Desktop or Quicksilver, but piped into and out of other tools like grep, it's a powerhouse. For a more pared-down look at some of find's powers, check out this tutorial at Debian/Ubuntu Tips & Tricks.


2. Set up powerful backups with rsync

rsync_cropped.jpgYou can spend a lot of money and time hunting down a perfect backup app that works with all your systems just the way you want. Or you can spend a few minutes learning the basics of rsync, the flexible, powerful command that makes one folder (on your system) look like another (where you back up). To put it simply, rsync is a cross-platform, completely free Time Machine, if you use it right. Luckily, Gina's already shown us how to do that.


1. See your most-used commands with history, make aliases for them

awk_cropped.jpgOnce you're comfortable with the terminal and getting good use from it, you might notice some of the more useful commands require an astute memory and typo-free typing—unless you make them shorter and easier. Start off by copying and pasting this command (on one line):
history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -r
It will return a ranked list of your most commonly-entered commands using your command history—and you can start creating aliases to shorten them and make them easy to remember. Or you could search through your recently-used commands with as-you-type results for quick-fire repeats.


While these 10 commands are generic and applicable on all systems with a Unix-like terminal, Mac OS X offers a few Mac-specific tools. Here are useful command line tricks for Mac users.


We're love to have some CLI fun around here, and we know our savvier readers have tons of cool terminal hacks and tricks that are new to us. So, please—share the knowledge and spread the wealth in the comments.


Power Up Windows Explorer with Free Add-ons [Windows Explorer]

Posted on July 28, 2008 by Gina Trapani.
Categories: Contributors, Windows.


When moving, copying, pasting, browsing, and getting information about your files feels like tedious work—and it can in the feature-sparse Windows Explorer—you need some power add-ons that can help. Instead of completely replacing Windows Explorer with an alternative file manager, you can pick and choose the extra features you want and add them piecemeal. Let's take a look at some free power add-ons for Windows Explorer that make dealing with your growing file collection faster and easier.

Note: Installing every single one of these toolbars and add-ons may slow down Windows Explorer, so pick and choose the ones that give you the features you need.


qttabbar.pngQTTabBar Adds Tabs to Windows Explorer: Get the tabbed browsing experience in Windows Explorer with the QuickTimeTabBar add-on. Once installed, right-click on the Explorer toolbar and select the QTTabBar toolbars, which add both tabbing and other features, like access to recent tabs and file previews. QTTabBar works in Vista and XP with .Net Framework 2.0 or later. QTTabBar homepage, original post.


explorer breadcrumbs.png
Explorer Breadcrumbs Adds "Breadcrumb" Folder Trail: Move up and down your folder hierarchy with ease by adding a "breadcrumb" folder trail to Windows Explorer. This little ditty is a a bit buggy—it didn't work for Adam in his original tests, but it has worked for me—so proceed with that in mind. Explorer Breadcrumbs is a free download for Windows 2000 and XP, donations requested. Explorer Breadcrumbs homepage, original post.


Xentient Thumbnails Offers Actual File Preview: Replace Windows Explorer's boring default image icon with a preview of the actual image itself as shown above. Xentient Thumbnails is a free download for Windows XP only. Xentient Thumbnails homepage, original post.


filebox-extender.jpg FileBox eXtender Keeps Oft-Used Folders Always In Reach: Add favorite folders you're always reaching for to every Explorer window with FileBox eXtender, which adds two small buttons that drop down a file menu, and a quick keyboard shortcut to get to those folders as well. Set up your preferred key combo (Adam suggests Ctrl+Shift+F) and type the first letter of the folder you want to select it. FileBox eXtender works in Open and Save dialogs as well, in Windows XP and Vista. FileBox eXtender homepage, original post.


teracopy.pngTeraCopy Speeds Up Big File Copy Jobs: Get greater control of file copy operations—especially ones that involve several gigs—with TeraCopy, a simple utility that offers pause, resume, and error recovery to your file copy jobs, as well as speeds them up overall. TeraCopy homepage, original post.


openwide.pngOpenWide Customizes the Open/Save Dialog File View: Set your Open/Save dialog to always list your files in details view, automatically focus your keyboard where you choose, and even place the box's exact location on your screen using OpenWide for Windows XP and 2000. OpenWide homepage, original post.


foldersize.pngFolder Size Sorts Folders by the Size of Their Contents: Add a column to Windows Explorer that displays how much space a folder's taking up with Folder Size, a small utility that also lets you sort by folder size as well—making quick cleanup of empty or space-hogging folders a snap. FolderSize is a free download for Windows XP only. Folder Size homepage, original post.


placesbareditor.pngPlacesBar Editor Adds Frequently-Used Locations to the Open/Save Dialog Box: Save and open files straight to your most frequently used files by adding them to Windows' Places bar using the PlacesBar Editor. Unlike PlacesBar Tweaker, PlacesBar Editor works for Microsoft Office dialog boxes, too. PlacesBar Editor is a free download for XP and Vista, donations requested. PlacesBar Editor homepage, original post.


infotag-magic.pngInfoTag Magic Displays File Details on Mouse Hover: Peek inside a file with InfoTag Magic, a small utility that displays a file's metadata (like MP3 tags) in a tooltip when you hover your mouse pointer over the file. Windows XP only. InfoTag Magic homepage, original post.


If this list of add-ons doesn't cover what you want or need in Windows Explorer, check out our recent Five Best Alternative File Managers post, as nominated by Lifehacker readers.


What are your favorite add-ons for Windows Explorer? Let us know in the comments.


Gina Trapani, the editor of Lifehacker, likes a more powerful Windows Explorer. Her weekly feature, Geek to Live, appears every Monday on Lifehacker. Subscribe to the Geek to Live feed to get new installments in your newsreader.


The Lifehacker Editors’ Favorite Software and Hardware [What We Use]

Posted on July 27, 2008 by Tamar Weinberg.
Categories: Contributors.


Lifehacker readers range from the complete newbie to the most seasoned techie, but where do the Lifehacker editors stand? We polled our own editors for the computer hardware and applications they swear by and we're breaking it down for you here. This post is categorized into the software each editor uses on a daily basis, the operating systems we live in, the hardware we rely on, the peripherals we utilize on a regular basis, and webapps we need. Then we tell you exactly what kind of user we think we are.

Gina Trapani, Editor:

The Basics

  • Firefox: I spend the majority of my day in my favorite browser, where I manage email, write Lifehacker posts, read RSS, and surf. My must-have Firefox extensions include: Foxmarks (so my bookmarks are everywhere), DownThemAll! (for downloading big files), CoLT (for grabbing links to drop into Lifehacker posts), all of the Better Extensions which I put together, Firebug and Chris Pederick's Web Developer toolbar (for development), and Greasemonkey and Stylish for customizing pages. (Here are my current user style picks.)
  • Quicksilver: On any Mac, I'll Cmd+Spacebar out of habit, because I've come to rely on QS so much for launching apps, moving files, resizing images to Lifehacker's standard sizes, and accessing frequently-used documents on the Shelf.
  • TextExpander (Mac) and Texter (Windows): Not only does TE and Texter help me write Lifehacker posts by auto-expanding HTML snippets, it auto-corrects typos and helps me stay on track with our style guide (by automatically replacing things like "wifi" with "Wi-Fi", for example).
  • TextWrangler (Mac) and EditPlus (Windows): Everyone needs a good text editor, and these two are my picks. (TextWrangler is free, but EditPlus is not).
  • KeePass: The day I sat down and created my KeePass password database—and decided every time I'd set up a new password I'd store it there—was a good day indeed. While I do use Firefox to save web-based logins, KeePass is an awesome secure parking place for Wi-Fi, network, computer, and file passwords as well as software serial numbers. Since it's Mac and Windows compatible, if I save a password on the PC's copy of Firefox, I'll also enter it into KeePass so I can still look it up on the Mac.
  • Adobe ImageReady: A throwback to my web dev years, I still reach for an old copy of IR whenever I have to do any image editing beyond simple cropping and resizing. Been meaning to get good at a free option for awhile now—and I'll have to, since Adobe discontinued ImageReady releases.
  • Adium (Mac) and Pidgin (Windows): I'm not a huge IM user, but when I need to hop on for a quick chat these are my two clients of choice.
  • Cygwin: I'm not running a Linux desktop full-time, but I do need my ls and scp. While Terminal.app offers these Unix command line tools built into OS X, Cygwin can give it to you on Windows.
  • InstantShot (Mac), Skitch (Mac), and SnagIt (Windows): Since I take screenshots all day long, these three apps are indispensable. For a simple snap and resize, I use InstantShot and Preview; to annotate screenshots SnagIt and Skitch get the job done.
  • Mozy (Mac and Windows), Time Machine (Mac), and SyncBackSE (Windows): Since I work at home with no IT department backing up a network drive, backing up my important data's up to me. I bought an unlimited Mozy subscription for off-site backup in case of fire, flood, theft, or tsunami, and use Time Machine and SyncBack to run regular local backups to a FireWire drive.
  • GeekTool (Mac) and Samurize (Windows): I like having my todo.txt, a calendar, and a set of daily reminders in front of my face every day. So while I keep my desktop clear of shortcuts and documents, GeekTool and Samurize pins my top tasks, a two month calendar, and remind reminders to keep me on track during the day. Here's more on setting up GeekTool on the Mac, and incorporating text files on your desktop with Samurize.


Primary OS

It's changed over the years and will continue to shift, but right now I split my time about 80%/20% Mac OS X and Windows XP. I plan to increase my Windows time (and get Vista into the mix) to better serve Lifehacker readers, who are primarily Windows (about 70% at the moment, though this chart changes by the minute). Setting up a Hardy desktop is also looking more and more tempting.


Hardware

I used to use four different computers on a regular basis, but keeping them all maintained, synced, backed up, and up to date with operating system patches became too much. So last year I decided to simplify and pare down the machine I use for work purposes to one laptop (so I could take it with me when I travel), and chose:

  • A 15-inch MacBook Pro to which I added a stick of memory, using Adam's guide. I run both Windows XP and Leopard on this machine with VMware. (I used to Boot Camp and virtualize that partition in Parallels—but when I needed more internal hard drive space, I killed the Boot Camp partition and now just virtualize XP.) I've also got...
  • An ancient Dell Dimension tower which I launched Lifehacker on mostly goes unused now. For awhile I used it as a file server, but to reduce energy consumption, I decided keeping an always-on file server was overkill for the two people who live in my household.
  • A G4 PowerBook, which was replaced by my MacBook Pro last year, lives in the living room. For a beat-up secondary computer, the PowerBook still does triple duty as a media center file server for my XBMC, a recipe reference in the kitchen while we cook, and my other half's main computer.
  • A classic Xbox running XBMC is my primary media center for watching downloaded video, and my TiVo records TV episodes online.


Peripherals

Besides a stack of external hard drives, a Netgear router, an ink jet printer, and a widescreen Dell monitor I hook the MacBook up to when I'm at my desk, I've got:

  • A Fujitsu ScanSnap mobile scanner for Mac, which is perfect for scanning receipts, contracts, and newspaper articles. I reviewed the Windows version here and loved it so much, that when I sent the review unit back to Fujitsu I bought the Mac version as soon as it was available..
  • An iPhone, which I had misgivings about purchasing when I lost my Nokia. The iPhone 2.0 software isn't without problems that are dogging me as well as a couple of others, but for the most part, it's a very pleasant gadget to use.


Webapps

Even though I still like keeping important files saved to my local hard drive, I've moved most of my daily work into a Firefox tab (which makes it easy to access from the iPhone as well). I use dozens of webapps, but the primary ones are:

  • Gmail: A year or so ago I abandoned Thunderbird to use Gmail's web interface exclusively, mostly for its conversation thread view (which T-bird doesn't quite handle as well) and its keyboard shortcuts, and because I'm constantly working on the Better Gmail extension.
  • Google Reader: Once I switched from Bloglines to Google Reader, I've never looked back—even though Adam did almost convince me to move to NetNewsWire, I'm too happy with my Reader workflow to change things up. I'll often read feeds while I'm on line at the grocery store or in the doctor's waiting room, and star items that may turn into Lifehacker posts later.
  • Google Calendar: The Lifehacker staff uses a shared GCal calendar to schedule vacations, conferences, and software launches, and I use it for my personal calendar as well.
  • Campfire: In lieu of instant messenger, at Adam's suggestion, the Lifehacker staff started hanging out in a Campfire room throughout the day while we write, which helps us coordinate and ask quick questions and make decisions so much faster than over email.
  • Twitter: I don't have the time to fool around on Facebook or Flickr as much as I used to, but contributing to and scanning Twitter is a fast, efficient way hear what my pals are up to and blog with very little effort. Twitter's helped me keep in touch with my NYC friends, find story ideas faster than they break in my RSS reader, recruit guest writers, keep tabs on people I admire and look up to, and poll people I trust quickly.
I also love MediaWiki and del.icio.us. Here's more on the apps that run Lifehacker's virtual office.


Self Assessment

I'm a late early adopter. I love to try out new apps, but after reviewing thousands over the years here at Lifehacker, I think long and hard before I actually work one into my daily workflow. I'm a big open source advocate—to the point of a tendency toward that "tinfoil hat" free software extremist mindset—but I will (and do) compromise for beautiful and easy-to-use software, too. It's great that you can do so much in the cloud these days, but I like to store and manipulate my own data and avoid webapp lock-in as well—so, for example, I back up my Gmail account via POP. I love tinkering with software, but I'm not as much of a hardware DIYer as my co-editors, many of whom have built their own computers.


Adam Pash, Senior Editor:
The Basics


Primary OS
I've been primarily operating in OS X since I built my Hackintosh, but I'm always running VMware Fusion (another must have) with Windows and (sometimes) Ubuntu.


Hardware
I'm using the Hackintosh as my main desktop, an aging MacBook Pro with OS X and Vista in Boot Camp, and an older Windows box that's a dedicated Media Center back-end. Then there's the Xbox 360, of course, which gets about as much tinkering time as the Media Center.

Both of my desktop computers (the Hackintosh and the Vista Media Center) were built from the ground up.

There's also my iPhone, which I use almost as much as my laptop these days.


Peripherals
After a weekend of watching a friend regularly reboot his router while I was visiting recently, I should give credit to my router, which is intermittently either running Tomato or DD-WRT. They're rock solid.

I've got a Logitech MX Revolution wireless mouse and one of the new slim Apple keyboards, both of which are very nice to work with daily. I've also got a cheap-ish Canon MP180 printer/scanner combo with a recently broken printer tray.


Webapps

  • Love Gmail. I've been making a small move to desktop apps lately, but until Google makes a desktop version of Gmail (not likely) or someone rips off the main tenets of the Gmail interface, I'm not leaving it any time soon.
  • I'm also a big fan of Mediawiki as a software, and—naturally—Wikipedia. I may have well been answering this question in 2004.


Self Assessment
I'm a big fan of anything I can build for cheaper than I can buy it. Hardware DIY gets easier and easier every year, and I've managed to do just fine for myself without ever picking up a soldering gun or anything of the sort. It's all much easier than most people think.


Kevin Purdy, Associate Editor:
The Basics

  • Firefox: With the following extensions: Foxmarks (syncing between systems and Firefox portable, Password Exporter (same reason), CustomizeGoogle (newly installed, mostly for the Google Link annoyance described at #8, and the dev build (i.e. Firefox 3-compatible) of Tab Mix Plus.
  • Launchy and Texter: Both suggestions from Adam, both indispensable to my Windows work. When I'm in Linux, though ...
  • GNOME Do and Snippits: The Linux semi-equivalents.
  • Pidgin: I used to use the last version of vanilla AIM that worked with the (then-free) DeadAIM plugin, until I became a Linux geek and friends started hitting me up on GChat.
  • GIMP: Because I truly do suck at Photoshop, so I'm learning day-by-day with its free counterpart.
  • Prism: For running Campfire, Google Calendar, and a few other apps in distraction-free shells on the desktop.
  • Revo Uninstaller: For cleanly and completely uninstalling most of the software I test out on the job.

Primary OS
I honestly split my time between Windows Vista and Ubuntu Hardy Heron (8.04). Up until recently, I'd been almost exclusively running Hardy (which I've openly professed my fondness of) with a wirelessly synced iPod touch, but I can't get my dual monitor setup working in Hardy, and iPhone 2.0 put a nix on the second—for now.


Hardware

  • A five-year-old desktop I built myself, now doing light testing duty with XP installed
  • A Lenovo ThinkPad T61P (dual-booting Ubuntu and Vista)
  • My parents' old desktop, turned into a multi-function home server (converted with help from Gina's guides and this starting point.
  • My wife's Compaq Presario laptop, which suffers its fair share of guinea pigging.

Peripherals
  • Linksys WRT54G (ver. 6) router: Big mistake, considering I have to wince every time Adam finds a new Super Router firmware (like Tomato or DD-WRT), and I have to sit it out with my locked-down blue box.
  • HP Deskjet 825c: Hooked up to the home server for remote printing (from every system except Vista, of course).
  • iPods: I've got an old 4 GB mini, the wife has a 4 GB nano, and I'm constantly tweaking my 8 GB touch.
  • LG LCD monitor: Originally for the old desktop, now a dual screen for the ThinkPad.

Webapps
I use quite a number of them, but the main ones are:
  • Google Docs: I might switch over to the more feature-rich Zoho Suite one day, because the feature I love most about GDocs is simply that it saves every few seconds. The accessibility and offline abilities don't hurt, either, though.
  • Reader: Both during morning posts and casual browsing through the iPhone-friendly beta.
  • Gmail: Big surprise, I'm sure, but I mostly use it through Thunderbird via IMAP for both work and home mail.
  • Remember the Milk: On my AWN dock in Linux, on my iPod touch, my iGoogle start page, through my phone and email—a truly universal but simple to-do list.

Self Assessment
I'm obviously a big fan of open source and free software, as you can probably tell from the lists above. I chose and customized my laptop in large part for its Linux-friendliness, and I'll always favor software and webapps that can be accessed from any computer. In general, though, I can never leave well enough alone—a good trait in writing for this site, I'd think—and while I'm pretty satisfied with my current array of tools, I'm thinking a few lower-tech, real-world productivity tools—index cards, anyone?—could probably find a useful home somewhere in my system.


Jason Fitzpatrick, Contributing Editor:
The [Free] Basics

  • Launchy: Although I'm a relatively new user of Launchy, I'm finding rapidly that I use it enough that I'm frustrated when I'm on a computer that doesn't have it.
  • Digsby: With lots of people on lots of different messaging platforms, Digsby makes my life easier.
  • Picasa2: When dealing exclusively with client files I'll use a program like Adobe Lightroom, but for ease of use and for a program that is easy to use for my non-techie wife, Picasa2 is a fantastic fit.
  • TeraCopy: I hated the built-in file handler in Windows. When you're moving 80 gigs from one drive to another you don't want to come back after your lunch break and see there was an error at the end of the transfer and the whole thing aborted. TeraCopy takes that pain away!
  • xplorer2 lite: I also hated the default file explorer in Windows. When you're editing large amounts of media and organizing it, having an explorer alternative on steroids is the only way to go.
  • UltraVNC: Over the years there have been all sorts of fancy new ways to remotely connect to your home PC, but I've never found anything I like more than a basic VNC connection.


The [Paid] Basics

  • Photoshop: I've been using Photoshop for almost 15 years now and short of writing my own programs and playing with them, haven't had more fun with another piece of software.
  • UltraMon: If you have dual monitors, it's invaluable.


Primary OS
My primary OS is Windows XP. I'm usually in some state of tinkering
with OS X (working on a Hackintosh just for kicks), and Linux. I find as time goes on that with Linux I'm less tinkering with the limited free time I have to play with it and more enjoying it. Linux has really matured since I first installed it in 1994.


Hardware
I used to be an avid computer builder. As far as my primary machine for daily use goes, I usually just purchase a machine that's on sale and throw a bunch of RAM and hard drives in it. I don't game much anymore, so my rig doesn't need to bleed speed. All of that said I have a ton of parts and I often strip down computers before people send them off to be recycled so I have more than enough motherboards, hard drives, etc. to build all the random projects I set my mind too. The level of parts in my workshop has reached a saturation point actually, and it is extremely likely that my next computer will be built from them with a few newer pieces thrown in.


Peripherals
I don't really have any peripherals that I love... except my Logitech Trackman Wheel. I've been using a Logitech Trackman for over 10 years now and I love controlling the entire movement of the mouse with just my thumb. If Logitech announced they would no longer be producing the Trackman, I'd go out and buy a stockpile just to be safe. If we're being a bit looser with definition of peripherals, I'm quite fond of my Windows Mobile phone, the HTC Apache, it's a rather common WM phone but I like having a device I can custom and tweak to my hearts content. I frequently use the BuildOS program from PPCGeeks.com to rebuild my entire phone and try new things.


Webapps
The only web apps I use with any consistency are Gmail and Google Reader. I also use SmugMug to catalog and share media with family and clients and Mozy to back up data. For my Windows Mobile phone I use the service DashWire to conduct remote backups of contacts and other data.


Self Assessment
My computer usage reflects strongly on my general personality. I don't use many social networking tools, I'm not the kind of person that Twitters the minute details of their life. I share my personal pictures on a password-protected site only for family, not on Flickr. When I'm working I use a pretty Spartan set of tools which helps me stay focused. Google Reader to distill my feeds, Firefox to help fling me about the web, a simple calendar, contact list, and to-do list in Outlook to sync with my Windows Mobile phone. And when I'm goofing around instead of getting work done I'm all over the map experimenting with new software, dubbing foreign films, playing in Photoshop, building a TiVo clone out of spare parts from my workshop bins, trying out new tweaks on my XBMC, etc. I love experimenting and playing with computers, I've just come to a point in my life where I have enough of a time crunch that I have to be careful to fence off the "Let's see what we can solder to this!" part of my love for computers from my "Let's get some work done and pay the bills!" part.


Tamar Weinberg, Contributing Editor:
The [Free] Basics

  • Notepad2: I'm not a developer so I don't really need the extravagant features offered by LH favorite Notepad++. I do love the line-numbers and color-coding of Notepad2, and that's all I'm looking for in a Notepad replacement.
  • Pidgin: I'm a fan of purple penguins and find Pidgin's options easily configurable for my needs. I also use a very old version of AIM with DeadAIM because the GUI is oh-so-nice. By the way, Digsby is on my list of apps to try!
  • Irfanview: Because it's so incredibly lightweight and small, Irfanview is a great app to use for image viewing and to resize or crop images quickly.
  • Firefox: Firefox 3.0.1 is a terrific browser, and unlike 3.0, this baby doesn't crash at all on my computer.
  • VLC Media Player: I used to open files and never be able to locate the proper codecs. VLC eliminates that hassle. When I have downtime and want to watch a movie or TV show on my computer, VLC does a nifty job, and it's also pretty lightweight too, which adds to the appeal.

The [Paid] Basics
  • FlashFXP: Unlimited lifetime upgrades and a purchase that was made several years ago made this an easy choice.

Primary OS
My primary operating system at this time is Windows XP Pro. Ah yes, a Mac OS would be nice, but I've been procrastinating on making the plunge! Windows XP does what I need. Additionally, I run a Fedora 9 box in the corner of my apartment and am always SSH'd into it to tinker around with the system.


Hardware
My main computer is a Dell XPS M1710 laptop, but I built the two desktops I use (they run Windows XP and Fedora 9). I test Lifehacker software on another old Dell laptop. I also have a MacBook Air that I haven't yet used. I know Gina is going to kill me when she reads this.


Peripherals and Gadgets

  • Samsung ML-2010: Really the family printer of choice, and we like it because of the network printing capabilities. I'm a big fan of getting up to gather my printouts days after I print them out!
  • Flip video: I'm new to the video world, but the Flip has proven to be a small yet affordable camcorder that produces quality results.
  • Treo 755p: I've been using Palm OS for almost 10 years now and can't really fathom moving over to a Windows Smartphone.
  • iPod touch: I once wished for an iPhone without the phone. Then, Apple announced the iPod touch. All it needs now is more storage space.
  • Lots of external hard drives: I've suffered way too many hard drive failures to risk losing data again, so I have more than a terabyte of data stored on external hard drives in the event that my main drives fail.

I don't use other peripherals on a regular basis primarily because my desk is my lap and my office chair is a couch. There's not much you can use here without things falling all over the place.


Webapps

  • Gmail: I really like Gmail, especially since it now supports IMAP. I have four tabs of Gmail for the three accounts I use (three of which are on Google Apps for Domains). Really, who doesn't like Gmail?
  • Flickr: To put it simply, photo sharing rocks. I'm a big fan of social media and I love being able to tag photos, comment on them, add notes, and organize them into sets that others can easily see and navigate to. I also love how you can bookmark your favorite photos with the "call a fave" feature.
  • Twitter: I use Twitter on a pretty consistent basis mostly to foster and build professional relationships. I enjoy that it has an API with hundreds of available applications. I primarily use Twhirl with Twitter and I take heavy advantage of the SMS tools when I'm mobile.
  • WordPress is my blogging platform of choice, but I do use MovableType maybe even more regularly.
  • FriendFeed: FriendFeed is one of my favorite tools ever to keep abreast of the news that interests my colleague and peers, and the conversation is growing. The best part is that you can hide the noise and only focus in on the signal.
  • Carbonite: This non-intrusive backup solution for Windows and Mac is tough to beat for the price of $49.95/year for unlimited storage.

Self-assessment
Much of what I use revolves around my work behavior, since I'm tremendously focused on using the computer for all work and no play (if I play, I'll go with a console of some sort—my Wii and Xbox360 get some nice face time when I have a spare moment). I'm somewhat old school but I love to try new things provided that I don't have to install them on my computer (well, for the most part).


Now it's your turn...
Readers, what are your preferred freeware, shareware, and commercial apps? What gadgets and peripherals tickle your fancy? Which webapps do you use consistently? Share your all-time favorite recommendations in the comments.