Bluehost + cpanel vs OVH + plesk

I’ve used Bluehost as domain registrar and hosting provider for many years now.  A few years ago, when I started supporting more domains, I moved my domain registration over to since they off whois privacy for free.

With more domains, I decided to upgrade to a VPS at bluehost.  At first it seemed to go well as everything was transferred over.  Then I wanted to enable SSL on all of the domains since Let’s Encrypt provides the certs for free.  This is where things started going downhill…

Bluehost requires dedicated for each IPs to enable ssl, which you have to pay for.  This is a very antiquated policy as apache has supported SNI (host multiple SSL sites with a single IP) for awhile now.  So at first, I started pursuing that option with bluehost.  But then they told me I had to install a new cpanel for each domain.  The support they provided was helpful, but it took me 3 or 4 support chats to get through the process.  Overall, it was getting harder and harder to get anything done.

But now I finally had a VPS I had root access and full control.  But bluehost support warned me that if I broke something, the only option is to do a re-image of the entire server and start over.  So I was afraid to use root for much of anything.

Then I went to install wordpress via cpanel, which didn’t work.  Apparently this had been broken for weeks and support gave me the manual instructions for installing at wordpress.  This is when I decided there must be a better way.  Even though installing wordpress from scratch is pretty easy (a few steps), I was going to setting up staging sites for each domain and I needed a better approach.

Then I remembered OVH.  About a year ago, I had a client who was going to need help hosting a java application.  I had started looking into OVH and really liked it, but then the client took a different approach which no longer required java.

OVH has been great.  The major improvements are:

  1. Much faster OVH VPS for the same money I was paying with bluehost
  2. SNI support, supports multlple SSL sites on one IP
  3. Ability to take a snapshot of the VM.  This is invaluable.  Take a snapshot, log in as root and go crazy.  Didn’t work out?  Just restore the snapshot with the push of button from the admin panel
  4. I chose to try out Plesk instead of cpanel.  Plesk is awesome!  The Let’s Encrypt plugin alone is worth the move, it configures SSL automatically and gets the cert
  5. Plesk interface is modern and makes it very easy to install and manage wordpress instances.
  6. Everything that needs to be done can be accomplished on your own.  Either through the OVH control panel or the plesk control panel.  No more support calls for common tasks.  Even uncommon tasks like installing a different OS with cpanel or plesk is fully automated through the OVH control panel.

I’m paying a little less than I was for bluehost and I am so much more productive.  While there is a bit of learning curve with Plesk, the forums are a great source of information, and overall, things work very well.

Please let your thoughts and comments below.  I’ll be happy to go into more detail about my setup if there is interest.


MoneyDance Backup/Restore Problems

I was importing some OFX files and I noticed some corruption in my account register for a couple of accounts. No big deal I thought, I’ll just restore from a backup….

What a painful experience that was. Here’s the solution I came up with that finally worked for me:

Note: This is with MoneyDance 2015.6 on Linux, although it should apply to other OSes as well

1. Figure out where your backups are stored. If you’re not sure, go to File menu -> Preferences -> Backup tab and you should see this:

backup settings
Backup config dialog

2. Next, open a file explorer and navigate to that directory. Choose a backup to restore and copy it somewhere else.  For this example, I will use the file moneydance.2016-03.24.moneydancearchive and /home/dave/mdversions/2016-03-05 for the “somewhere else” directory

3. Rename the file, adding “.zip” to the end:

4. Unzip the archive file.  You should now see a moneydance.moneydance directory in /home/dave/mdversions/2016-03-05

5. Now we need to disable dropbox.  Otherwise, as soon as you load the backup, MoneyDance will go crazy trying to sync and you’ll end up with tons of duplicate entries in your accounts.  To do this, login to dropbox, select your name in the upper right, choose settings, then go to the Security tab.  Look under “Devices” and “Apps Linked” and delete anything that may be uploading data to MoneyDance.
Note: Changing your dropbox password will not work, you have to do remove the devices and apps.

6. Go back to Moneydance.  Select File menu -> Open -> Open other…

Open other menu
Open other menu

7. A file dialog will appear.  Now the tricky part, selecting the backup (no, I’m not kidding).  Go into /home/dave/mdversions/2016-03-05 and click moneydance.moneydance once.  Your file dialog should look like this:

Correct way to select the backup.  Note that Selection=/home/dave/mdversions/2016-03-05 and right below that is moneydance.moneydance.  If you double click moneydance.moneydance by accident, “Selection:” will have nothing next to it which is incorrect.

8. Hit Ok and wait.  It took about 20 seconds for the file decryption password dialog to appear.  If you did something wrong in the previous step, then nothing happens.  No error dialog, nothing.  This is quite aggravating.

9. If you are sure that you did everything in step 6 and still nothing happens, try creating a new dataset, then loading the backup.  Create the new dataset by doing File menu -> New… then Next, Finish.  Then go back to step 5 and try to load the backup again.

10. If, after restoring the backup, blue dots start flashing next to each account like crazy, that means dropbox was still enabled somehow.  The restored backup is likely corrupt with duplicate transactions.  Go back to the first step and start over.

11. If you backup restored properly and everything looks good, congratulations!  Note you now need to reinstall any plugins you were using.  Then re-activate dropbox in MoneyDance.  Clear all data from any mobile apps you are using and then setup those up to sync with MoneyDance again so they all pull data from the MoneyDance program itself.

Outstanding questions?
Where is my data stored now?

Overall, I’m very disappointed with this experience. I consider myself a relatively patient person, and I was even calm during the whole MoneyDance 2015 fiasco. But not being able to restore a backup quickly is a major issue for any type of financial management software. I understand Infinitekind is a small software development company (not as small as me!), but this really needs improvement.

As I’m writing this, I noticed MoneyDance 2015.7 was released about two weeks ago.  Looks like the file load dialog issue could be fixed.  But I suspect the majority of these pain points still exist

Hope this helps someone else, I spent a lot of time figuring this out for myself.

Please share your thoughts and experiences.

MoneyDance Plugin Upgrade Notes

With the release of MoneyDance 2015, Infinite Kind changed the API that plugins must use to extend MoneyDance.  There is some documentation, but I have’t found a comprehensive “plugin upgrade guide” so I decided to document some items here.  Here are the steps to upgrade a 2014 or earlier plugin to 2015+:

  1. Download the new development kit from Infinitekind developer and replace your existing moneydance api jars with the new ones.
  2. In meta_info.dict add   “minbuild” = “1000”
  3. The RootAccount class is no more.   getRootAccount() now returns a simple Account object
  4. The Account class no longer implements/extends IncomeAccount or ExpenseAccount.  You now call getAccountType() which returns an enum indicating Income, expense, etc
  5. In order to access root account specific objects (BudgetList, etc), you will need to replace  getRootAccount() with getCurrentAccountBook()
  6. You will likely get unresolved class errors for various MoneyDance classes.  It appears the high level package the package has been moved to com.infinitekind.moneydance.  Best to delete your old imports and try to auto-import against the new api jar  For example: Budget, BudgetList
  7. Many classes that were in the com.moneydance.awt package have been moved to com.moneydance.util . For example: CustomDateFormat
  8. Replace all calls to setDirty() with syncItem()

Other helpful resources:

MoneyDance 2015 Javadoc