Saturday, March 19, 2011

Dropbox - Free, cloud-based file synchronization


What does it do?
Dropbox is a super-simple solution for those of us with multiple computers, and a lot of files that we want to keep in sync.  Dropbox creates a folder on each of your computers called "My Dropbox"-- anything you drop into your Dropbox on one computer shows up in the Dropbox folder on all your other computers.
The free version of Dropbox affords you a healthy 2 gigs of cloud-based, instantly synchronizing storage space.
Why do I care?
Access to Dropbox is quick and easy
It's easy, it's cross-platform (Available for Mac, Windows, Linux, iPhone, iPad, Android, BlackBerry, web,) it's secure, and most importantly to this blog-- it's free! 

While internet-based storage solutions have been around just about as long as dialup internet (see also Apple's iDisk, now a part of the MobileMe subscription service,) Dropbox really excels in its ease of use, blending seamlessly into your desktop, just like any other folder.  


On the Mac side, your Dropbox is always just a click away, showing as an icon on the right side of the menu bar [right]-- in Windows, it's in the system tray.


How can I use it?
There are a slew of uses for a service like Dropbox, some more obvious than others-


- Keep important files in sync between multiple computers
This is probably the most obvious use of Dropbox. For example, you may have a laptop, a desktop, a computer at work, and a smartphone.  You'd probably like to be able to access the same files on all of them without fooling around with e-mailing documents to yourself, copying to a USB drive, lugging around an external hard drive, or trying to access a network drive. If it's in your dropbox, it's ready to use on any of your computers.


- Backup in case of a laptop disaster 
For those of you unfamiliar with the first 3 rules of computing, they are (in order): Backup, backup, and backup.
If you've ever had a laptop stolen, lost, dropped into a body of water, [okay, maybe just a run-of-the-mill hard drive crash,] then you know what I'm talking about. Laptop drives are significantly more susceptible to failure since they're constantly being jostled around while in use.  If your Laptop takes a dive on you, your files on Dropbox are safe and sound, out on the cloud.


- Simplify multiple machine backups
A great trick is to have your periodic/automatic backup solution back up your Dropbox. (See also Carbon Copy, FBackup, SuperDuper, LaCie SilverKeeper, whatever!) What exactly does this do for me, you may ask? This means you can just pull your important files from several different computers into your Dropbox, and know that they will be automatically archived or backed up by your periodic backup program. Slick!



- Simple team collaboration
In lieu of a shared drive solution, Dropbox can make a great sharing solution for a small team working together on a project where everyone needs to access and modify the same documents. If someone makes an unwanted edit, the document versioning functionality allows you to roll back to a previous version with no hassle.


Dropbox public photo gallery- created from your desktop!
- Easy, public photo galleries
This is pretty awesome-- truly one of my favorite features. Any folder that you create within the Photos folder of your Dropbox automatically becomes a public, web-based photo album that you can share with others with a simple link. [Right] Viewing photos with the Ajax-enabled web interface is quick and easy to navigate. There's even a slideshow option to present the entire album in series.


- Transfer files between computers quickly
For me, this has been one of the most useful application of Dropbox so far. Are you tired of e-mailing files to yourself when you want to view them on another computer? Do you store things in your Gmail account? Not only is this a pain, but it takes up valuable space in your email, and it's a chore to clean out.


I use Dropbox to transfer files between computers, or even between Virtual Machines... Install Dropbox on your host machine, as well as any guest OSes for your Virtual Machines, and presto-- an easy way to get things into (or out of) your VM. Dropbox sync is generally very quick, taking only a few seconds for the sync to begin. Not familiar with virtualization? Check out my post on VMWare Server.


- Sync music, bookmarks, contacts, preferences, whatever
It's a simple concept with exciting implications-- if you use the same applications on multiple computers, use Dropbox to let them share and automatically synchronize data. For example, synchronize your FireFox profile across multiple machines-- when you add, rename or delete a bookmark, it is synchronized instantly. Move your iTunes music library into your Dropbox to synchronize your music across all your computers- (If you're not familiar with how to move your iTunes music folder to somewhere other than the default location, try this LifeHacker article.)

Document Versioning
- Keep Track of changes with Document Versioning
As you make updates to your documents stored on Dropbox, previous versions are stored automatically and are accessible via the Web interface. Make a bunch of ill-advised edits to your term paper at 4am? Log on at Dropbox.com and pop back to yesterday's version.



- Mobile Interface
Dropbox is also available for iPhone, iPad, Android, and BlackBerry.


More Space? Refer your friends- or try the paid version.
Though the free version comes with an impressive 2gb of storage, if you plan on using Dropbox heavily, you can earn an extra 250mb of storage space for every person that you refer that signs up for Dropbox (up to 8gb!). If you found this article interesting and would like to try Dropbox, I'll refer you! Use this link to sign up:
Sign up for Dropbox for free 


Need more space than that? (Or don't have any friends?) You can opt for 50gb of space for $99 a year, or 100gb of space for $199 a year. Monthly rates are also available, though the annual plan gets you a bit of a price break. 


I've been running the free version for a few months now, and surprisingly haven't used up 2 gigs yet, thoroughly enjoying Dropbox! 




"The Cleverest Ways to Use Dropbox That You're Not Using"
For some additional tricks, I'd suggest LifeHacker's "The Cleverest Ways to Use Dropbox That You’re Not Using"

Wednesday, February 16, 2011

Synergy : Control multiple computers with one keyboard and mouse

For years, it has been possible to control multiple computers with a single screen, keyboard, and mouse, using a hardware device known as a KVM (Keyboard, Video, Mouse switch).  A KVM switch is a great geek tool in itself, and is a wonderful option if you A) want to buy a piece of hardware, or B) only own one monitor.  The crappy thing about a KVM is that they all claim to work flawlessly with any type of keyboard/mouse combo (yet never do,) and you can only view one desktop at a time on your single monitor.  Most require either tapping a button on the switch itself or hitting a keystroke combination (like scroll lock twice) to switch between computers.  (Mac people, you may notice there's no scroll lock key on your keyboard...)

Enter Synergy-- a free, open-source tool that allows you to use one keyboard and mouse to control multiple computers (Mac, PC, Linux/Unix) on multiple monitors, as though they were seamlessly connected.

Sounds cool, you say, but how exactly does it work?


Requirements
Synergy requires that all computers to be controlled together be on the same local network, i.e. they are all plugged into the same switch or on the same wireless network-- since Synergy sends keyboard and mouse commands over a regular old TCP connection.  (My suggestion is to opt for a wired connection to avoid latency.  A small difference, but a notable difference at times.)  Synergy is installed on all computers that will be part of the group-- including the one with the keyboard and mouse attached, and those without.  The computer with the main keyboard and mouse is the "server," and the other machines are "clients," that receive keyboard and mouse commands (from you) over the network. 
Once Synergy is installed and all computers are talking to one another, the magic happens.

What it Does
As previously mentioned, Synergy allows you to control several computers on several screens, with one keyboard and monitor.  When you move your mouse off the left hand side of your main screen, it pops onto the right hand side of the next monitor, and voila-- you are controlling the next computer.  No pressing of buttons, no key combinations, and you can see what is going on with all computers at once.  The added bonus is that your clipboard contents (i.e. what you are copying and pasting) comes with you as you switch from computer to computer.  So in other words, I can copy the body of an e-mail on my PC, and paste it on my Mac.  Spiffy.

Limitations
The most surprising thing about Synergy is how well it works-- so long as your network connectivity is up, it works like a champ.  (Keep in mind, your internet connection is not required here, just the local network connection between machines.)  The synchronization of clipboard contents can be a bit delayed if you are copying a large body of information, but generally just takes a few seconds
By far the least savory part of using Synergy is just the initial setup.  The Mac version requires a little command line work and super user access.  However, if you know where the Terminal app is located and have used it before, the actual setup is really not that difficult.  Configuring the Mac version is a matter of editing the "synergy.conf" text file.  The config itself is relatively straightforward, but again, it's not something I could describe to my grandma.

Fortunately for most, the setup for the Windows version has a UI that is a bit more straightforward.  I won't get into the particulars here, but fortunately the Synergy folks did-- there is a nice Youtorial-based tutorial to help you through the process, regardless of what OS you are using.  Similarly, automatically starting Synergy on login or startup is relatively straightforward in the Windows version, and a bit more confuddled in the Mac or Unix versions.

If you are that guy with 2 computers and a laptop on your desk, and are looking to quit spinning around in your chair, switching between keyboards, definitely give Synergy a try!

http://synergy-foss.org/

Saturday, February 12, 2011

VMWare Server : Free Virtualization Solution

Another favorite tool of mine, VMWare Server is not new, (the current version, v2.0.2 was released over a year ago) but is a killer option for running multiple operating systems on one system (even simultaneously) for testing or development purposes.

What does it do?
If you aren't familiar with Virtualization, the basic concept is that your "host" machine can use VMWare Server to simulate one or more "guest" operating systems, which stay entirely separate from your current system.  In other words, it's like running "another computer" in a window. 



Applications for Virtualization (Why do I care?)
Why exactly would this be helpful, you might ask?  If you are a web developer, a software tester, or just your run-of-the-mill geek, the ability to host multiple operating systems can let you keep a bevy of browsers at your immediate disposal, or simulate the interaction between separate client and server machines.  Running Windows 7 but wondering what your web site looks like in FireFox 3 in XP?  Fire up your XP VM and find out.  If you need to try your desktop application on various operating systems (Windows XP, Vista, 7, even various Unix/Linuxes), virtualization is where it's at.  You can start with a clean installation of each OS, and take a "snapshot" of the virtual machine before making any changes.  You can install your desktop application, change settings, alter registry settings or otherwise mangle your VM, and roll back to that snapshot at any time.  Awesome!

Virtualization of Data
For a more advanced example, virtualization is an essential tool when performing automated software testing, or developing data-intensive applications.  Like the example above where we destroyed a clean installation of Windows (and then revived it,) we can do the exact same thing with a database server.  (A complete set of data needed for testing is often referred to as a "Golden Database.")  This allows us to minimize data setup time and avoid corruption or data integrity errors when developing or testing on less-than-perfect code.  When using an automated software testing tool (like HP QuickTest Pro, SmartBear TestComplete, or free and open-source Selenium,) consistent test data is essential for achieving reliable automated test results.

Portability
Finally, virtual machines are far more portable than installing test or development systems directly on actual hardware.  It's easy to copy a VM to another machine, or even to host it on the cloud to boot it up from anywhere at any time.

Requirements
As you could probably imagine, VMWare Server (and Virtualization in general) requires some serious hardware... or at least performs significantly better given more resources to do so.  The host machine I use for Virtualization tasks runs VMWare Server under Windows 7 Ultimate (64-bit) and has 8 gigs of RAM.  I can easily run 2-3 VMs at a time on this setup, but this does vary with the task at hand.
Though the added RAM is vital, when running multiple VMs, the bottleneck is often in disk read performance, so running separate hard drives per system, a RAID setup, or even just an SSD drive, can improve performance significantly.  With the 8gb at my disposal, disk contention is the bottleneck when running multiple VMs simultaneously.

Alternatives and Upgrades 
While we've spent most of our time talking about the advantages of Virtualization in general, there are a few different ways to go about implementing it-- only one of which is VMWare Server.  VMWare Server allows you to manage multiple Virtual Machines on your computer, boot them up, pause them, shut them down, let them interact with each other, and manage snapshots.  However, there are a few limitations-- it is free for non-commercial use, it limits you to one snapshot per Virtual Machine, requires a "host" operating system for use (thereby taking a bit of a performance hit), and is not intended for use for production systems.  

VMWare Player is a simplified variant of the VMWare solution, intended for those users that would only need to make use of a VM without added complexity.

VMWare Workstation, on the other hand, is the more powerful (paid-for) end-user solution-- you can read more about it here.

VMWare's main competitor is Microsoft Virtualization-- and a quick visit to their site shows that they are intently aware of that fact.  As always, the degree to which you'll love the Microsoft alternative is directly proportionate to how committed you are to drinking the Microsoft kool-aid.

But for me, the flexibility, shallow learning curve, and free-ness of VMWare Server wins my vote.  Give it a shot!


Footnote:
Various free operating systems:
Fedora (a la RedHat Linux)

Friday, February 11, 2011

First Post... phpBB : Free and Open Source Web Forum!

Hello, World!
I'd like to start off the blog with a good one-- and this one is so good that it amazes me that it's actually free.

What is it?
phpBB is easily my favorite web forum software-- it's free, it's GPL open source, it's well-adopted, feature-rich, easily customizable, and pretty straightforward to install. phpBB is the most widely used open source bulletin board system on Earth, and for good reason.



Hosting and Install
Unlike some other forum systems, phpBB does not offer a SaaS model, but will point you in the direction of several web hosting platforms that cater to those that want simple installation and maintenance for their phpBB forum.

If you choose to go the route of downloading and installing phpBB, any LAMP host will do, as will a Windows/MS SQL or Oracle setup.  I run a phpBB forum on GoDaddy, and it probably took me a grand total of 15 minutes to go from zero to live forum.  phpBB uses a web-based interface for initial setup-- and the process is even smoother than it was a few revisions ago.  Just upload the /phpBB folder to your web site, visit /phpBB/install -- and you're off and running.  For me, the only difficult part was configuring the outgoing mail settings (for member notifications and such)-- but that was mostly due to the fact that GoDaddy tends not to publish this information so readily as I'd recommend. (See footnotes.)

Control Panel
The control panel interface is well-organized and bears just about every feature you'd need when managing a forum-- though the option to monetize your forum through sponsor ads or Google AdSense (or otherwise add static content) is curiously absent.  (A trip to the /phpBB/cache folder reveals a series of template files where you could add this type of information, if desired.)  There are a ton of templates hosted within phpBB's Styles section to choose from-- or of course you have the option to roll your own to fit your existing site's style.

Alternatives, anyone?
One major alternative to phpBB is vBulliten, which is a bit more feature-rich and commercialization-friendly.  A forum license for vBulliten will run you $195, a year of support $80.  The main benefits of vBulliten over phpBB include actual paid support and the option for a built-in Content Management System and Blog-- the latter two available only with the $285 Publishing Package.

As for me, zero dollars for a fully-featured web forum is the clear winner.  Give phpBB v3.0.8 a shot, and let me know what you think.


Footnote:
For those using GoDaddy that want to take notes on the outgoing e-mail settings:
Use SMTP server for e-mail : Yes
SMTP server address : relay-hosting.secureserver.net
SMTP server port : 25
Authentication : Plain
SMTP username : yourusername@yourdomain.com
SMTP password : [blank]