Tuesday, May 29, 2012

Doc Watson RIP

I really enjoyed watching Doc Watson play.  I have his autograph.  I never got to see him at Merlefest.

Wednesday, May 23, 2012

Google Play Comments

Google Play Books does not include Project Gutenberg content.  In my view, there is no more important reason for an electronic book store.  FBReader rocks though.

Google Play Music is annoying.  There is a Music app thingy on my phone already.  It included quick, simple, lockscreen controls.  It can't play Google Music files, probably because they are all named 001.ogg in some random folder which it doesn't know to search.  If I use the google play music player, I get no lockscreen controls, and there is no equalizer on the output and it sounds like crap in my car.  If I use the built-in one, I can only play stuff from my computer or from Amazon, but it sounds great.  If I use the amazon player, still can't play the google ogg audio files, the lockscreen controls are big ugly and can accidentally close the player app, but there is an equalizer.  I'm going to stick with Amazon for actually paying for music.

Monday, May 14, 2012

Liferay 5.2.3 to 6.1 Oracle Database Upgrade Annoyances

The upgrade process runs in steps.  5.2.3 to 6.0.0 to 6.0.1 to 6.0.2 and so on through 6.0.12 and finally 6.1.0.  But if it fails in any substep, the entire process fails and you have to start all over.  Technically, you're supposed to restore the db to the pre-upgrade state before retrying, but I was too impatient to wait 10 minutes between every attempt so I didn't always do that.

  • Instead of using the tomcat startup.bat, use "catalina.bat run" or install tomcat as a service so you can tee or pipe the output.
  • If the 6.0.0 upgrade step dies, you have to delete all rows from the AssetEntry table to try again.
  • If the database has no SocialActivity ever, you will get an error when it tries to convert null to a Date.  Change the upgrade class to return some random garbage date.
  • If the 6.0.3 upgrade step dies, you will have to delete Role_ where name like '%Reviewer' in order to try again.
  • In the 6.1.0 step UpgradeCamelCasePortletPreferences, somehow the sql "select * from Layout where plid = ?" will cause an error that a variable is not in the select list when it clearly is (note to liferay guys: don't use wildcards in your select statments).  In my case it was trying to find a plid that didn't exist.  Change the upgrade class to catch the exception and return null.
  • If you include the legacy 5.2.3 properties file and also define the image hook as DatabaseHook, it will try to load the class "com.liferay.portal.image.DatabaseHook,com.liferay.portal.image.DatabaseHook".  Just remove one property definition
  • If you used the database hook for images, the 6.0.3 UpgradeAsset step will fail due to the IGIMAGE table not being found.  Turn off the image hook setting for now and try to restore your image gallery later.
  • During the validation step, some of my users had no associated contact or an invalid contactid.  I caught and ignored this. 
  • One of my users had a backtick in their screenname.  It caused an error when liferay tried to create her personal pages groups because it led to an invalid friendly url.  I edited the source data and also added a backtick to com.liferay.portal.util.FriendlyURLNormalizerImpl._REPLACE_CHARS so it would be removed automatically.
  • In the db, PortletPreferences.preferences seemed to always have unclosed xml tags in all of our environments.