Technology Kills Deconstructing technology, one piece at a time…

14Dec/100

Choosing an Open Source License

There really isn't a right answer. The GPL v3 is great for developers of GPL'd software, but requires that all derived software keep the same GPL license. That simply won't fit my development model. I don't want every product I create that uses the libraries to have to be GPL as well, nor do I want that for other developers using the .

So there is the LGPL, which might be a good choice for my libraries, but has similar restrictions to the GPL that I simply don't want to require people to adhere to.

I then found the CDDL, and I really liked the way it was written. It's unfortunate that it's incompatible with the GPL or it would be my top choice for pretty much everything. But it's not compatible, and I don't want to keep my software out of the hands of developers of GPL'd software.

None-the-less, the CDDL is one of the few file-based open source licenses, and one of my requirements for some of my software is that I need to mix in some commercial libraries which are obviously not . The best answer might be a dual-license model, but as far as I can tell, I wouldn't be able to mix in with a GPL license, so the GPL version of those products would need to be severely crippled, which might not make sense to do at all.

The only course I can see clearly working is releasing the following:

  • For libraries containing only open source code, dual-licensing the CDDL and (allowing GPL developers to choose the , making it compatible)
  • For applications containing only open code, dual-licensing the CDDL and GPL, for the same reason as above
  • For libraries or applications containing open source and proprietary code, licensing only under the CDDL is the only option. Nothing compatible with the GPL can contain proprietary code in my understanding.

For this reason, I will try to keep as much of my code as possible in the dual-licensed projects and available for all open source developers. However, many of my applications themselves will be mixed in with proprietary code, and this will be released only under the CDDL (with the proprietary code released under its own license, all fully documented).

Of course, all of my past work up until this point is still available and can continue to be used under the MIT license it came with. Most of my future code, however, will not be released under an MIT license. None-the-less, if you opt for the CDDL license on my future projects, it has the handy addition of allowing you to mix it in with any proprietary, closed source code that you want, as long as you keep the original code and any modified files based off of the original code under the CDDL.

Due to all the confusion and incompatibilities surrounding the current crop of open source licenses, I was very tempted to simply write my own. But that would just add to the confusion, so the best choice right now seems to be to play along while being as open as possible.

I will be sure to fully document on each project the licensing model of the project and what it means for others wishing to redistribute the source code.

Enhanced by Zemanta

22Jun/101

Google Docs: Can’t I access my own documents?

Image representing Google Docs as depicted in ...
Image via CrunchBase

It's been a while since I've created a new document in Google Docs. I usually just need to access old documents or shared documents from others. But today, when I tried to create a document, I received an error to the effect of, "We're sorry, you do not have access to this document."

I was logged in with the same account that I just used to create the document, so the error was baffling. There was a link to request access for myself, specifically displaying the same address as the one I created the document with. So what the hell, I figured--I requested access. Immediately I received an email, at the same account I was already logged in to, requesting access for myself. I approved the request and the document opened without .

So I closed the document, and searched for it in , and then opened it again, and lo and behold I received the same Access Denied error.

I then remembered that last month indicated they were disabling access for Google while they worked on a new version to re-release later. So on a hunch I disabled offline access and everything is now working as expected.

Perhaps I was not supposed to have been able to use Google Docs offline, but then why was it still enabled for me? Either way, it looks like I'm stuck using the Online version of Google Docs until the problem is resolved.

Enhanced by Zemanta

11Jun/100

CakePHP Project: WebManager

I have started work on a solution to a problem I have been searching for for quite a while. Finding nothing that satisfied me, a while back I started on a new project titled WebManager (DE WebManager to be precise).

The functionality will include the ability to manage the entirety of a business or individual's web presense, from domain names and websites to providers, datacenters, , and more. Manage them all in one place and interact with them in intelligent ways--get renewal reminders, login links to all services, relevant contact information displayed on related pages, and much more.

This project came about because I was tired of having to manage my various web assets in all different disconnected places--my registrar for domain names, my various hosting providers and control panels, all of my websites, pages, and projects around the web, and more. It was all just getting to be too much, and while there are a lot of organizational tools, none of them seemed to be designed for this specific type of management. In this, I saw a way to make something that works better for me.

The project is built with CakePHP 1.3, the framework, and the MochaUI interface to give users a full desktop-like experience on the web.

I am not sure yet what different versions I will offer, and whether this will be a locally-hosted product or SaaS ( as a Service) hosted and provided by the Digital Empire. Only time will tell, and I should hopefully have some screenshots and more information posted soon.

6Apr/1018

SugarSync vs SpiderOak

Image representing SpiderOak as depicted in Cr...
Image via CrunchBase

Before I get started, let me just state that I still like SugarSync and once they can get past the issues that are evident in the current release, I will once again gladly recommend them to anyone. Those who have followed my posts know I have been having a myriad of issues with it.

Luckily, SharpCast has been helpful and has been trying to get in touch with me to further discuss the problems I have had. Unfortunately I have had absolutely no free-time other than 5 minutes here or there throughout the day, so I just have not had a chance. This is my fault, not theirs--as soon as I have some time available (hopefully this week), I will set up a call with SharpCast and hopefully we can get to the bottom of the issues.

In the meantime, however, because I still want a Sync solution, I decided to give another contender in the online backup/sync war a chance. This time, it was SpiderOak.

is a peculiar beast--in my week-or-so of using it so far, I am very impressed by some things, and a bit underwhelmed by others.

The Client Application

SugarSync has a nice interface for Windows that is simple to get started with, and offers a huge amount of features compared to something like Dropbox. The interface mostly fits in with the Windows UI, and it integrates with Explorer to show you the status of your synced folders with small colored indicators overlayed on the file/folder icons. There is no background service--the application must remain open (though it can be minimized to the tray).

SugarSync offers clients for Windows, Mac, iPhone, , , and Windows Mobile. Unfortunately this leaves other operating systems, such as , out in the cold.

SpiderOak, on the other hand, offers a consistent and advanced user interface which completely separates its main functions into tabs (Status, Back Up, View, Sync, and Share). The interface is not quite as simple as SugarSync's, but it is perfect for an advanced user looking for advanced functionality. Like SugarSync, there is no background service and the SpiderOak application must remain open (and again, you can minimize it to the tray).

SpiderOak seems to have a focus on being platform agnostic, at least on the Desktop side of things. They support Windows, Mac, and most popular Linux distros. From what I can tell, it looks and works the same on all operating systems it supports. This is a huge plus. You can back up (and even sync) folders between Windows and Linux, or any other supported platform. They have an application, but there is no Android, Blackberry, or Windows Mobile app just yet.

In short--For a simpler experience (somewhere in-between and SpiderOak), or if you require support for your Android, Blackberry, or Windows Mobile device, SugarSync might have just the interface your'e looking for. If you prefer more options over simplicity, or if you need support for Linux but don't mind waiting a while for better mobile support, I recommend SpiderOak.

The Web Interface

The two offer similar features from their web interfaces, but they look very different. SpiderOak takes a minimalistic approach to giving you only what you need where you need it. SugarSync offers a highly-polished web interface with a lot of flash and pizazz, but again, similar features.

SugarSync implements share administration in the main web interface, while with SpiderOak "Share rooms" are completely separate from your web interface.

SugarSync definitely has the more polished UI that is the nicest to work with. SpiderOak's offers similar functionality, but again, lacks some of the bells and whistles and is very minimalistic.

Speed

Comparing the speed of these services is a bit challenging. SugarSync transfers one file at a time, and does it quickly. SpiderOak takes longer to calculate files, and seems to be a bit slower uploading (perhaps because of the -side processing required), but it uploads batches of files at a time, and only the portion of the file that has changed.

If you need to upload a lot of files in the shortest amount of time, SugarSync will be happy to oblige. SpiderOak gives up a little bit of speed for some advanced data processing, so depending on how you use it, one or the other may be a bigger factor for you.

Backing Up and Syncing

SugarSync supports file versioning, keeps deleted items until permanently removed, and will monitor your filesystem for changes and automatically upload them. SugarSync even offers a Web Archive where you can store files without keeping them synced to any devices. You can move files there from your synced folders, or just upload something directly to the Web Archive. That is a nice feature to have. Also offered are things like simple file sharing, and a new feature with which you can email files to your SugarSync account.

This is a lot of functionality, but it is within this area that SugarSync also seems to suffer from some issues (see my previous posts, and the information below).

SpiderOak also offers file versioning, keeps deleted items, and offers the ability to monitor the filesystem live for backing up. It also allows advanced scheduling functionality, such as choosing how often to perform a instead of always doing it live. You can also choose when to schedule syncing and sharing processes--normally it is done on the same schedule as backing up, but you can choose another value.

SpiderOak does not seem to offer a Web Archive feature--every folder is assigned to a device (computer). SpiderOak does offer file sharing much like SugarSync's.

SpiderOak offers similar functionality, without some of the bells and whistles, but in my experience it does not suffer from any of the issues I have had with SugarSync.

Infrastructure

Not much is known about the SugarSync infrastructure--they advertise that data is SSL-secured, and encrypted once it hits their servers. They also indicate the data is stored in "geo-redundant, world class data centers." In practice this seems to work fine, but it's not clear what technology they use for storage and data validation on the back-end, so there is not much I can brag about here.

This is an area where SpiderOak shines. They have developed many open source components to help in this area. They use a custom-built transactional file-system API, They use advanced de-duplication to ensure that the same data is stored in only one place at any given time--this means you will never need to use up extra space when storing the same file more than once.

Price

Both services offer 2 GB of free storage to do whatever you want with--you can use all features, add multiple devices, and sync and share files up to your 2 GB limit.

Beyond 2 GB, both services are very comparable. At the time of this writing, storage from SugarSync costs more, but they do offer cheaper plans with less space than SpiderOak as well. You can get 30 GB from SugarSync for $5/month, which is nice for those who are extremely budget-constrained. On the other hand, you can get 100 GB from SpiderOak for $10/month. This is substantially cheaper per GB, but they only offer 100 GB-increments so you cannot spend less than this.

Problems

Neither service is perfect. But what about issues that might affect your data, or your ability to utilize the advertised features?

I'll switch this around and cover SpiderOak first, because it's the simplest in this respect. I have had two issues in the week or so I've used the service.

  1. The SpiderOak Windows client freezes when I try to expand my AppData/Local folder, where a lot of the files I want to back up are located. In the Back Up tab, as soon as I expand the folder, the whole app freezes for a few minutes, then unfreezes for a couple of seconds, then repeats continually until I close the process and start it again. This is highly annoying, and I have not had this issue with any other sync services.
  2. I backed up a folder on one machine, created  a new folder on the other machine, and then chose to create a sync between those two folders. While it consistently indicates it's processing the sync, it never actually syncs any of the files to the other machine. Maybe it's something I did wrong, but it seems like it should just work.

Next, SugarSync's issues--they run a bit deeper, and are the main reason I decided to check out SpiderOak in the first place.

  1. SugarSync constantly believes that some files are "Backed up and in sync", when in fact they do not seem to be on the server at all. The only way I realize this is when syncing something new to another machine, some files simply don't sync, and I then go in and verify they don't appear in my SugarSync account online. Renaming the original usually causes SugarSync to see it and upload it, but you then cannot use the original name, or it won't sync.
  2. In other cases SugarSync believes a file is not in sync, when it actually is. This happens even more often than the previous issue. I will modify a file that is in sync, and immediately upon saving SugarSync renames the file on my computer, appending " (From [Computer-Name])" to it. Attempting to rename the file back gets it immediately renamed by SugarSync again. I can see the file having the original name in my SugarSync account online, but it no longer exists on my computer and won't sync down. I have to delete the file from my SugarSync account online, then rename the new file back to the original name again. This obviously loses all version history for the file and takes a ridiculous amount of time for something that should be automatic.The worst part is, SugarSync never tells you when this happens, you just have to notice it. I eventually went so far as to create a script to scan all of my sync folders and let me know whenever SugarSync renamed a file without my consent. I ended up spending probably an hour per day just fixing all of my filenames.
  3. I re-installed SugarSync on their technician's recommendation, and was unable to restore my previous settings after that. Every time I opened SugarSync, it asked if I wanted to restore my old settings, I would choose 'Yes', and it would scan all of my sync folders again (which takes a very long time). Next time I open SugarSync when it's not running, it again asks if I want to restore my old settings and scans everything again. This was very annoying the the only way past it was to set up all of my sync folders again.

As you can see, I've had a couple issues with SpiderOak, but in my experience everything I transmit to them remains secure and unaltered. The integrity of my data is the absolute most important thing for me, and until these issues with SugarSync are understood, I simply cannot put my trust in it.

For novice or intermediate users without huge directory trees to sync, SugarSync works quickly and looks great--you'll have your data synced in no time, but for the time being, you would be wise to monitor that data and make sure it stays consistent with your expectations.

For advanced users, especially those with tons of files to sync and manage, I wholly recommend SpiderOak at this time. You do not need to baby-sit the back-up process or worry about your files being renamed without notification (or at all!). I am still getting acquainted with its sync functionality, and it is not quite as straight-forward and simple to sync folders between computers, but the functionality is there and your data is safe, and that makes me happy for now.

Reblog this post [with Zemanta]

21Mar/104

SugarSync Memory Leak

First, a quick update about my other major SugarSync issues-- assisted me in resolving the on my laptop in which I had to re-import the previous configuration and re-scan everything each time started. That was resolved by uninstalling, reinstalling, then not choosing to import my existing configuration, but instead starting a new one.

I still have major issues with the way it's handling syncing my files, however--every day there are tens or hundreds of files supposedly in which are renamed inexplicably whenever I try to save them. Deleted folders still reappear if I do not permanently delete them manually from SugarSync. Some files still never , even though SugarSync indicates all files are "backed up and in ." Hopefully they are still looking into these other issues as well.

Now, a new issue. For the past several weeks, I have been dealing with my Windows 7 Professional x64 machine's 4 GB of RAM filling up within a day or two of leaving it running. No listed application was actually using that --adding up the reported commits of all running processes did not equal the amount of RAM which was used up. So I knew I was dealing with some sort of leak.

I tried disabling things I didn't necessarily need, but nothing helped until I finally decided to disable SugarSync from starting. Even though it would report very small memory usage, my memory leaks stopped completely when I stopped running SugarSync all the time. Looking at the process's history it would regularly use ~500 MB or more, but nowhere near what was actually being used on my system.

I do not have this issue on my Windows XP laptop, so it seems to be related to SugarSync and 7 (not sure about Vista).

Anyone else noticed such behavior? I will report it to SharpCast so they can investigate further--maybe it's not SugarSync specifically but some interaction between SugarSync and another process running. But it makes my system crawl when the memory usage reaches 90 or 95% and the only resolution is a restart, so for the time being I am no longer running SS.

Reblog this post [with Zemanta]

15Mar/1020

SugarSync’s Bitter Aftertaste

Update from 3/17/2010: noticed my post and has committed to resolving my issues. The jury is still out, because nothing has been resolved yet; however I am hopeful that this means a fix will be on the way. See the bottom of this post for more information.

I was very stoked about SugarSync when I found it originally. In fact, I'm still in love with the features, and the entire service looks great on paper and works great at first glance.

Since then, however, I have discovered that I spend more time managing my folders than I do actually using my synced files--and not by choice.

There are several areas in which has proven frustrating and I feel really needs to be changed/updated:

  • When it says "All files are backed up and in sync" this is not necessarily the case. Often you will find files from another machine are missing on the current one. The folder is "in sync" according to SugarSync but obviously not in reality. This is a false sense of security and leads me to the next point.
  • When files are not truly in sync (No matter whether it says they are or not), changing that file on any other system causes the file to be renamed, having text appended to the name (such as "From Work Laptop - 2"). SugarSync is trying to be smart here by not allowing you to overwrite a file that might not be in sync. What really happens, however, is you usually end up in a position where you have several revisions of a file with text appended to them, but the original file is nowhere to be found. Putting something where the original file was causes it to be renamed. And this all occurs silently with no notification to the user and no indication that the files they are saving are being saved under a different name.
  • Many times I will delete a folder (while SugarSync is running, and I can verify it was deleted in SugarSync as well), and the next day I realize that that folder has synced back down to all my machines again. The only way to avoid this is to permanently delete the folder, making the "Deleted Items" bin useless.
  • On one out of my two systems, every time I close SugarSync and re-open it (such as when rebooting), it acts like the first time I started it, making me log in and doing a full check of all of my sync folders again from scratch. This takes a large amount of time, and thus far SharpCast has not been able to resolve the for me. This is not nearly as bad as the above issues, however, and I do have faith that SC will be able to assist me with this one eventually.

But those first two points essentially make a sync service such as this unusable.

  • You have to make sure everything you have is backed up somewhere else, just in case SugarSync loses it or it disappears from your sync folder.
  • You'll often update a file only to find that you can't--it always gets saved with a new filename. The only solution is to go to My SugarSync in a web browser, rename or delete the original file, then rename the newest revision back to the original name.
  • I've even gone so far as to create an AutoHotKey script which searches all of my sync folders for files that have been automatically renamed and prints out a list of them each day that I have to go back and fix. This is usually at least 40 or 50 files per day that have this happen--sometimes it is far more. No matter how many it is, it's annoying and it's too much to ask your users to do to keep their files in sync.

At this point, I would almost be better off doing it all manually. I want to love SugarSync--I want to be able to trust SharpCast with my data. But they need to first prove to me they can do a better job than this.

I will of course continue to post updates as any of these issues get resolved or at least have progress made on them.

In the meantime--has anyone had any good experiences with other online syncing services? I like DropBox but can't make full use of it because of its limitation of only working within the My folder.

A quick scenario for you:  Today I started my laptop when I got to work. SugarSync made me log in again and re-scanned all of my folders. After that 30-40 minutes, when SugarSync said everything was in sync, I opened up SharpDevelop and worked on one of my synced projects. Everything went great, until I went to build my source code. SharpDevelop told me neither of the required solution files existed.

Sure enough, I checked the directory, and SugarSync deleted the Solution file from my local machine, and each one I saved was renamed, appended with a "(From Work Laptop - 2)" (or 3, 4, etc). I then noticed almost every class I was just working on had the same problem. 10 minutes later when I finished renaming everything on My SugarSync online, I tried to build again, and it started doing the same thing over again!

If they cannot fix this behavior, at least show a dialog asking the user whether to rename the file or overwrite, risking losing any changes made on other machines. This is getting very frustrating!

Update Information from 3/17/2010

Shortly after my blog posting, SharpCast responded indicating they read my post and want to help me resolve my issues. I sent them a full application log/audit, and they responded today with the following message:

"Hi Ben,

We are working with our Engineering department to find a solution to your problem. I will update you as soon as I can."

My fingers are crossed, and I'm just itching to put it through its paces once they indicate the problem should be resolved. I will be sure to update this post, or make another one, when we get further along with this issue.

Reblog this post [with Zemanta]

23Feb/1016

Dropbox vs SugarSync

Image representing SugarSync as depicted in Cr...
Image via CrunchBase

Let me start by saying I am a long-time and major fan of Dropbox. Initially I didn't get why it was so great, but then I started using it more and now I can't get by without it. I think of it as my own personal cloud for all my stuff.

But that means you have to change the settings of every single application whose data files you want to keep synced so that it stores them in the folder. What about applications which don't allow you to change their data file location? Creating symbolic links in Windows (easiest in Windows Vista or Windows 7) is one way, but you'll quickly find you need to move the real files into your Dropbox folder and link them to their original location. This is backwards and doesn't seem like a very great idea.

So a few of my applications are synced with Dropbox ( logs, Website-Watcher data, MyLife Organized data, etc) and the rest are somewhere else--usually in my Application Data folder. The situation was not ideal.

Enter SugarSync--I found it while reading a comparison article in which Dropbox was named the clear winner. I wanted to see for myself, however, so yesterday I gave it a try.

Just hours after investigating , I became a Premium member and upgraded to 30 GB and I cannot imagine going back to Dropbox.

There are several reasons for this:

  • Out of the box, with almost no configuration, it does exactly what Dropbox does (admittedly, with a few extra dialogs than Dropbox has). You can move everything from My Dropbox into the Magic Briefcase folder and you're all set.
  • You can any folders you want from any of your registered computers with SygarSync, and you can choose which other computers should get that data and where it should be stored.
  • You have a Web Archive--basically online storage that is not automatically synced down to your computers, but is available anytime.
  • There is a mobile app for (and iPhone, Blackberry, etc) which gives you online access to your files as well as syncs your mobile camera pictures to your account (which are then made available on all of your computers).

It's stunning what difference the ability to sync any folders makes. Here are some of the things I'm doing with SygarSync now:

  • Sync all of my PC game profiles and saves. It works like SteamCloud but for literally any game.
  • Sync my library so I have my organized documents available anywhere is installed.
  • Created a new sync directory called Apps in which I installed the PortableApps.com platform and have been filling it up with portable apps. Now most of the apps I use (and likewise their data files) are synced between my PCs and available from the simple PortableApps.com menu system.
  • Sync my pictures, videos, and other media files without having to move them somewhere else first and lose Windows' integration with those files.

There is a lot more I haven't discovered yet--but I have uploaded over 16 GB of synced data in the past 24 hours and I am simply amazed at how well it is all working.

From what I understand, they have a fairly agile cycle and are making frequent fixes and additions, and generally get new features up faster than Dropbox.

I have no less love for Dropbox, but that love is overshadowed by my new infatuation with SugarSync. To the cloud!

Reblog this post [with Zemanta]

1Feb/100

Mint.com Android App Update

Mint.
Image via Wikipedia

As a user and lover of both an Android phone and the Mint.com website, I long for the day when I will be able to use the two seamlessly together (without needing to resort to viewing the full heavy-weight website on my phone).

iPhone users have had a .com app for a while, and all indications are that it's top-notch. Word on the grape vine is that .com are internally testing a new application for their service. A full release is likely coming at the end of Q1 2010, but we will be eagerly awaiting more information from the Mint.com developers to confirm or deny that rumor.

Reblog this post [with Zemanta]

22Oct/090

Monitoring System In Place

In a further effort to make all sites and services in the DE stable and ensure the highest uptime, we have deployed a full-scale at an off- location in Germany.

This means that we can get a full picture of our network and service status at a glance at any time. It also means we are notified when anything goes down, is running slowly, or becomes unresponsive. In addition, we have the ability to automatically bring things back online and resolve some issues without having to wait for me to fix them.

This is a big jump forward for our network infrastructure, and this means we are now running four full network servers in four different datacenters spanning three countries to provide our sites and services under the highest quality and most ideal circumstances.

Let me know what you think! Have you noticed a difference in any of our sites and services? Is there anything you'd like to see, or any changes you'd like made? We'd love to hear from you!

Reblog this post [with Zemanta]