Archive for September, 2008

It turns out DropBox isn’t the answer… yet…

A little while ago I wrote that I thought I had found the answer to my file synchronization problems in a service called DropBox. For a little while it looked as if it was going to do a really good job at keeping all my files in sync across multiple computers without having to carry a jump drive with me wherever I go.

Unfortunately, DropBox turned out to not be as good as I had hoped. Although it did a good job at small amounts of files I found that with large file counts and longer path names over 150 characters or so it started to miss a lot. In fact, on any given sync it would miss 10-20% of the 25,000 or so files I was trying to sync. In addition, all files with DropBox have to be stored in the same folder and your My Documents folder cannot be set to the root of a drive. In my case both of these issues turned out to be problematic as moving files resulted in me having problems with windows character limits in the path names.

In the defense of Dropbox it sounds as if these issues will eventually be resolved and they have a very active and helpful forum for support issues. Unfortunately for me though not have a good chunk of files was not something I could live with and I would have to move on to something else.

The next service I tried was Sugarsync. For about 2 days it seemed to be great until I noticed a fatal flaw. It would not sync the .htaccess files in my websites. I emailed support about the issue and although it took about 3 days they finally replied that this was by design and would not be changing. OK, I can’t understand why they would block these on a Windows machine, but whatever, time to move on again.

Now I’m with Syncplicity. I’ve been using their service for over a week now and it does a very good job of keeping everything in sync. It’s only real flaws are the need for a forced or manual sync as sometimes it takes the client a few minutes to find an updated file, and there is no Mac client yet. The latter is due out next month which, as I haven’t bought a Mac yet (I’m waiting for the new ones next month) really isn’t that much of an issue yet.

I don’t know if I’ll stay with Syncplicity in the long term as DropBox seems to have a lot of potential. However for now it does the job and does it well and that really is the bottom line.

IDEs for web developers

I’ve been looking for a good IDE for my web development for the better part of the last decade. My needs aren’t great, but no matter where I look I can’t find anything that can fulfill them all. Here is what I want in my IDE:

Must Haves:

1.) Must support coding in PHP, Javascript, HTML, CSS, and other common web technologies

2.) Must support the automatic uploading of files on save.

3.) Cannot add ANY extra files to the site itself. I can’t stand it when editors find it necessary to add there own meta files/folders to your site.

4.) Must run on Windows and Mac

Would be nice features:

1.) It would be nice if it would run on Linux too

2.) It would be nice if it would also serve as an IDE for C/C++ and/or Java

Seems simple, right? Unfortunately it really isn’t that easy. I’ve tried the following programs and none of them can do everything:

Adobe Dreamweaver CS3: This comes closest and is what I use most on a daily basis. It is the only one that supports the automatic uploading of files on save, and does a good job at general coding in PHP, HTML, CSS, and a few others. Unfortunately it doesn’t meet any of the “would be nice features.” In addition, although the price is affordable, I’m becoming a bigger fan of open-source software and am getting a little tired of the extremely high upgrade price every couple of years.

Bluefish Editor: This popular Linux editor does well at editing common web code, but that’s about it., and it isn’t available for Windows which kills it’s usefulness to me.

Netbeans 6.5: Netbeans 6.5 comes close. It supports PHP, Javascript, CSS, HTML, and the other file formats I use. It runs on Mac, Windows, and Linux, and it’s native function is a Java IDE so JAVA is supported as is C/C++ through an easy plug-in. Where it fails is in FTP support. It supports FTP on it’s new PHP plug-in however files must be uploaded manually rather than being uploaded automatically on save as in Dreamweaver. Rumors indicate that this feature may be forthcoming, but for now the lack of auto-uploading prevents me from making much use of it.

Aptana/Eclipse: Although 2 separate products Aptana is build on the Eclipse engine so I will review them together. Like all the editors I’ve tried they do well at actually editing the code. Unlike the others however they insist on adding a .project file to the site directory. Although this is a small inconvenience as a code purist I find it unacceptable that any program will add files I did not create myself. In addition the auto-upload feature is said to exist, but I’ve found it to be buggy at best and as of this writing I have been unable to get it to work on any of the 4 separate times I’ve tried it.

UltraEdit32: This program also comes close, it does a good job editing code in nearly any language used today. It does contain an FTP feature, however as it is only available in Windows I stopped using it before I bot to see if it would automatically upload files on save like Dreamweaver.

In a nutshell, until Netbeans refines the FTP features in it’s latest IDE I think I’m going to be stuck with Dreamweaver. It is the only IDE that works on multiple operating systems which will handle the bulk of the code I write and has the ability to upload my files when I save them. I have started using Netbeans as well, but this will be reserved for Java and C/C++ projects and will stay away from my websites for now.

Ah, the joy’s of learning a new language

Sometimes there is nothing more frustrating that learning a new language. No, I’m not talking about a spoken language like Spanish or French (although those weren’t easy when I was in high school either). I’m talking about having to learn a new programming language.

This week I’ve had to work my way into the C language for work in a class I’m taking. Although I’ve dabbled in it before I never really had a reason to really do much in it. After all, I don’t really do much development for applications that aren’t on the web.

The first project I had to complete was to write my own version of fgrep. Fortunately it only had to be a simple version and didn’t have to make use of any of the options in the original. I got through it, but it wasn’t pretty. I found myself reverting to various functions and syntax that I use every day in Java and PHP, but of course don’t work in C. There-in lies the real challenge in learning a new computer language. Syntax is easy, and once you know the available libraries you can accomplish a lot. However when that syntax varies only minimally from what you’ve come to know, and when the libraries you’ve used for years are no longer available to you it can get very frustrating.

I guess I can’t complain. It never hurts to add another skill to a resume. I can say however that debugging in something you’ve never really worked with before can be more than a little taxing on your stress level however.

Linux Development on Vista

I’ve been using Linux off-and-on for about the last 10 years. At times it has even been my only operating system on whatever computer I was using. The thing was I wouldn’t dual-boot and none of the virtual machines I tried could really keep up with what I was doing.

As for the dual boot, it just never seemed worth it to waste so much of my hard-drive space so I could waste more time switching between operating systems whenever I needed something on the other one. As for the virtual machines, although they would load a guest OS, they tended to make one system or the other almost unusable in that switching between the two was often less than a pleasant experience. Heck, I don’t know how many times I’ve killed either the guest or the host when the VM did something it shouldn’t.

Finally, as of last week, I think I’ve found a VM I really like. Actually, it’s a VM I’ve used for some time, but until it’s latest update I found it less than an enjoyable experience. This new [updated] VM is VirtualBox by Sun. In the 2.0 release last week it is more stable, and seems to be much more efficient in how it handles the resources on the host system. Finally I can run Ubuntu for various tasks on my primary machine without having to worry about how long I have until the next crash!

Have I solved my file problems?

For a while now I’ve been on a search for the holy grail of file synchronization. I’ve tried dozens of applications, but so far they have all fallen short in one of two ways. Either they sync files between two workstations requiring both computers to be on to sync (like Foldershare), or they are essentially an online backup (i.e. GoDaddy’s online folder) requiring me to manually move files between the server and the local computer which, while not only an inconvenience y requiring extra steps, can also be VERY time consuming as most services don’t easily sync the files between the server and computer requiring me to re-download everything each time I want to update one machine. These shortcomings are made even more obvious when the data in question involves tens of thousands of small files many of which are changed on a regular basis.

Originally up until about 6 months ago I did manually update the files every time I wanted to work on a project. In fact, just about every Friday night when I switched from my office computer to my home computer I would spend about 2 hours downloading the content of the web projects I would want to work on over the weekend. This exercise would then be repeated each Monday morning when I returned to the office. If I wanted to do much work during the week at home I was just out of luck as I often don’t have time to download entire sites and couldn’t take the chance of overwriting work I did at the office by working on the older files on my laptop. Something had to change.

Last Spring I discovered the wonders of the Western Digital Passport hard drive. This highly portable device solved most of my problems by allowing me to store everything on a portable hard drive which I could then bring to and from the office each day. This solution was almost perfect, but on occasion I would forget the drive if I was running late, or it would get unplugged when I was working causing a lot of headaches (I keep my laptop on my lap so whenever I would get up it would tend to fall).

Finally yesterday I found the holy grail of my file woes. I found an application that would automatically sync a folder on my computer with a secure server, and then replicate those files to my other computer as well. Best of all, unlike some of the other solutions that had failed me, this application is totally free for up to 2GB of space.

Known as Dropbox, this new little app came out of beta testing yesterday and has already become a very valuable tool to me. I’m using it on both my office and home computers and after transferring about 25,000 files it hasn’t missed a thing.

Other than being free, Dropbox has a few other features I’m certain I will grow to love over the next few months. First, it’s simple. There are only a couple of options to worry about, and you never have to tell it to do anything. Simply place your data in your synced folder (the application will automatically select your my documents folder to sync, but you can change this to whatever you want) and the application takes care of the rest. Second, it’s fast. If you’re adding a new file it will upload or download the entire file, but for changes, it will only transfer the part of the file that is new which can save you a lot of bandwidth when working with large files such as images. Next, Dropbox offers an easy to use web interface that allows you to access and manipulate your files from any computer with a web browser. Finally, unlike anything else I’ve found, you can use Dropbox on Windows, Mac, AND Linux so chances are you should be able to sync your data no matter what you use.

On the downside (yes there is a downside), I’ve found a couple of minor problems. First, the application is rather resource intensive. I’ve watched it throughout the day and although it’s CPU usage is low (it hasn’t gone above 30% for more than an instant), it has averaged between 50 and 150mb of RAM pretty much all day. In addition, you can’t specify more than one folder to sync, and it will not sync a whole drive. I have my “My Documents” folder assigned to a partition on both my computers and I had to move everything into a sub-folder in order to get it to work. Finally, unlike Foldershare, Dropbox only gives you the option to sync one folder which can really throw off your filing system.

In a nutshell, even with it’s shortcomings Dropbox is the best solution I have found to date for keeping large amounts of files syncronized between multiple computers.

Go to the Dropbox homepage

Archives