Thursday, December 13, 2012

EMC Documentum

I'm fairly new to Documentum for enterprise content management.  It's not bad.  Not great, but could be worse.  Except for one insane thing.  You can have two different files in a folder with the SAME NAME.  Nutters.  Hard to remember and causes me much grief.

Monday, November 26, 2012

TrixBox Dying?

Our trixbox server is dying.  At least it seems to be.  The CPU randomly spikes when nothing is happening despite no changes in months.  No calls, no nothing, just high cpu alerts very frequently for the last three weeks.  This is TrixBox branded hardware running trixbox pro with a current license.  Coincidentally, Trixbox CE is apparently dead now.  I can't wait to migrate to PBXInAFlash when this thing dies.  I just hate the idea of giving them VPN Access to our network so that we can manage our own voip server through the web interface.

Wednesday, November 21, 2012

Tuesday, November 20, 2012


I wonder if ceramic could have e-paper type digital ink blobs embedded in it so that subway tiles could work as low power highly durable display units.  Or maybe just layer e-paper on top of the ceramic and under the glaze. 

Monday, November 05, 2012

Liferay 6.2 Milestone 1 Build

Liferay 6.2.0 CE M1 appears to be out.  I doid't know what the M means or how it would fit with CE, RC, and GA alphabet soup that they started to use with Liferay 6 until I read this.  They seem to have a habit of dumping things on sourceforge and not doing a release announcement for a few days if at all.  Good sales tactic for the EE, I guess. 

Thursday, November 01, 2012

URL Shortcut Files on Windows

Apparently windows cares whether you use .url or .URL.  If you make the file extension lowercase, opening the link will fail with the message "The target "" of this Internet Shortcut is not valid".  Also if you put commas in the file name, you will get the same error.

Monday, September 17, 2012

Instant Simple Data Apps

I'm a big fan of this idea:

XMLPortletFactory is a software tool that creates database tables maintenance (CRUD) portlets from XML files.  Portlets generated only work on Liferay portals, and come out with source files (JSPs, .java, etc.) so programmers can extend and modify whatever is being generated to suit your software development needs.  In Help and Support section you will find Wikis, Tutorials and samples to get started.

Of course, the Liferay blog is full of other ways to do the same thing, but it's not bad to have more tools instead of less.

Wednesday, June 27, 2012

New Liferay Upgrade Fun

Upgraded a different site with slightly different configuration.  Also only going from 6.0.4 to 6.1.0 this time.  I had a thousand times less data so it was extremely fast.  I also abandonded my customizations on this site becuase I'm sick of dealing with converting an ext environment to an ext plugin.  If I need to change crap, I'll do it directly in the trunk source.  Screw extensions.
  • Unlogged in users can see my private sites!!  They can't see the content, but they should just get redirected to a login page.  Supposedly this is already fixed in the nightlies.  I don't have public sites on this installation at all so this is a major annoyance.  I was just bouncing users from to and now they are confused because instead of a sign in page, they see "you don't have permission to view this" inside 5 different contentless portlets. 
  • My image gallery was upgraded, but the images were saved on the file system as "1.0", while the file version the document library had saved was "1" leading to a lot of file not found exceptions until I did a find/rename.
  • Images that were in subfolders didn't make it through the upgrade.  I'll have to grab them from the backup, manually figure out which picture is what, and places them in the file system location liferay is checking or reupload through the front end.
  • This process never ever works 100% right.  Backups are crucial because you need to manually fix things after the upgrade.

Monday, June 25, 2012

Liferay 6.1 Jackrabbit Bug

If you use jackrabbit for your document library, Liferay documentation suggests that your ext plugin should have a file
  • ext-impl/src/com/liferay/portal/jcr/jackrabbit/dependencies/repository-ext.xml
    • Description: This file allows overwriting the configuration of the Jackrabbit repository. Refer to the Jackrabbit configuration documentation for details (
    • Original file in Liferay: portal-impl/src/com/liferay/portal/jcr/jackrabbit/dependencies/repository.xml
However, if you actually deploy, liferay will copy the standard repository.xml from the core to your data\jackrabbit directory.  Which means there was no point whatsoever to repository-ext.xml.  It sort of mostly worked in 5.2.3 though, so it's just a reversion bug.

Cross posted to the DL Blog.

Friday, June 08, 2012

Sales Thought

Amazon/woot/online stores should get anandtech or tomshardware or whoever (phoronix) to publish or republish a review of whatever tech product they have as a daily deal on the day they deal it.  Particularly for SSDs, it would be a nice resource and possibly get more people to buy than just random internet stranger comments would.

Wednesday, June 06, 2012


For the record, WWF always has and always will stand for World Wrestling Federation and nothing else.

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. 

Monday, April 30, 2012

Liferay Web Content Tokens

I did not know that even without all the fancy macro/template/velocity stuff that Liferay Journals/Web Content can do, there is the ability to still insert some dynamic content based on stuff like the j2ee context root.

Examples (for mostly unmodified liferay 6.1 guest community content with liferay still deployed to /ROOT):
@company_id@: 10153
@friendly_url_current@: /web
@friendly_url_private_group@: /group
@friendly_url_private_user@: /user
@friendly_url_public@: /web
@group_friendly_url@: /guest
@group_id@: 10179
@image_path@: /image
@layout_set_friendly_url@: /web/guest
@main_path@: /c
@protocol@: http
@theme_image_path@: /my-custom-theme/images

Deprecated tokens

@friendly_url@: /web
@friendly_url_private@: /group
@page_url@: /web

I grabbed the list of tokens from instead of the wiki page.

On a side note, you still can't use the Liferay IDE with a non-ROOT j2ee context root yet.

Thursday, April 26, 2012

Correct DDOS Response

Never ever call Comcast business support for help.  They will reset your router/firewall config without asking you and completely fuck up your network. 


Wednesday, April 25, 2012

Redfin Quick Review

After missing the initial call from the guy because I can't usually talk on the phone at work in my shared space, I was never able to get a response. 

Redfin, great in theory, probably super busy agents as a result, I'll never really know.

Monday, April 23, 2012

AlloyUI Problem

I'm giving up on abandoning jQuery in my latest iteration of my Liferay theme.  I cannot for the life of me get a dropdown menu using menuNav to work.  If anybody knows how to do this, I would really appreciate a little help.  I can make the yui examples work, but can't get a dropdown in my theme to do anything useful.  Back to superfish menus for now.

Friday, April 20, 2012

OpenHardware DC

That was moderately fun.  Only one stupid question from the peanut gallery (some NASA guy compared open source hardware to growing marijuana and talked for a long time preventing me from getting in my question about when techies should decide to call in the MBAs or take business classes themselves), but several neato things at the demos.

Conductive playdoh for building circuits:

RepRap, MakerBot, of course (3d printers).  Got to play with one of the gears hearts.

Sparkfun guy was there with tons of arduinos and other gadgets.

A toy piano covered with pieces of either fruit or jello which then work as real toy piano keys.

Bunnie Huang

A seeing eye glove which senses distance and feeds it back to the wearer somehow (I didn't hear how)

HacDC guy talking about the DC hackerspace which is in Columbia Heights and too far away from my house for me to attend.

Thursday, April 12, 2012

Open Hardware DC

I'm excited about this:

Especially since I don't get to play with hardware nearly enough.  There's not a hackerspace nearby and I don't have space in my home for a workshop.

Monday, February 27, 2012

Spam Annoyance

I signed up to review a bad hotel on and am now being spammed like hell.  FYI

(It's possible that it's due to some other cause but I haven't signed up for anything else in a long while and the timing is perfect for them to be at fault)

Thursday, January 05, 2012

Why does Java have a maximum memory size at all?

It might make sense for applets but 99.9999% of java code runs on servers now.  Memory limits should be deprecated for code which doesn't run through a browser.  Heck, I think applets should be deprecated.

Is there a real reason why it ever had a maximum heap?  I don't know.  If it's still used it should be optional with the default being unbounded heaps.