User Experience Engineering

Monday, April 28, 2008


Ban the Beachball : Fix Eclipse on Mac OS X

The Eclipse IDE had become unusable. With each Save, the cursor would turn into a beach ball for several seconds. Startup messages pointed to a culprit: Mylyn.
java.lang.IllegalArgumentException: The feature 'application' is not a valid feature
Root exception:
MESSAGE While loading class "org.eclipse.mylyn.tasks.ui.TasksUiPlugin", thread
"Thread[main,6,main]" timed out waiting (5000ms) for thread "Thread[Worker-3,5,main]"
to finish starting bundle "update@plugins/org.eclipse.mylyn.tasks.ui_2.0.0.v20070627-1400.jar [399]".
To avoid deadlock, thread "Thread[main,6,main]" is proceeding but
"org.eclipse.mylyn.tasks.ui.TasksUiPlugin" may not be fully initialized.
Deselect Mylyn hyperlinkingAfter reading numerous posts on the topic, I tried many different fixes. Finally, I read the words of Eugene Kuleshov: "Another option is disable Mylyn's hyperlink detector wich you can do at Window / Preferences / General / Editors / Text Editors / Hyperlinking."

What worked

  1. Open Eclipse Preferences (Apple-,).
  2. Type filter text "hyperlink", or navigate to General : Editors : Text Editors : Hyperlinking.
  3. Deselect checkboxes "Mylyn Tasks" and "Mylyn URLs".
  4. Click Apply, then OK.
  5. Restart Eclipse.


Eclipse has faster startup, scrolling, and search, takes up less memory, saves without beachball delays, and supports my favorite plugins nicely. Turning off Mylyn hyperlinking makes my days more productive.

Other Fixes Tried

  • Removing or disabling Mylyn did not work. It seems there are circular dependencies.
  • Removed or disabled plugins, including Aptana and JSEclipse.
  • Upgraded to 4GB of RAM. Already had 2.6GHz MacBook Pro with 180Gb HD, and Mac OS X Leopard (10.5.2).
  • Freed up 80GB of hard disk space.
  • Increased Eclipse memory settings, and found out along the way that Eclipse has a Mac OSX bug that prevents Java VM detection. In the thread "--launcher.XXMaxPermSize: Can't identify Sun VM" you'll find no fewer than 34 posts, and no resolution, as of 2008-04-21. "java.lang.OutOfMemoryError: PermGen space" was the original complaint.
  • Turned off Eclipse spell-checking. General : Editors : Text Editors : Spelling. This eliminated the yellow squiggly highlights under variable names and reserved words such as "var", and sped up editing. Typically 100 such warnings in a 600-line JavaScript file. With six files open, memory footprint included Real Memory: 347MB, Vmem: 2.08GB. Without spellchecking, 214MB and 1.95GB.
  • Ran JBoss at the command line, instead of in Eclipse.
  • Turned Aptana code completion (contextual help) delay up to 9999 milliseconds.

Labels: , , , ,

Glad to find this post! I had a similar issue where I'd get a beach ball when twisting open java project source directories in the Package Explorer. It typically only happened when I first did this after a launch, but would often have to wait 30 seconds or more. It would also occur at other strange times.

I'm using Ganymede (3.4) and the checkboxes are named slightly differently. I disabled "Tasks" and "Task URLs" and the delays have gone away (so far, anyway). I've got Java 1.4, 1.5 and 1.6 and am running 10.5.4.

Thanks again,
. John
I'm glad that it helped!
I think this finally solved the abysmal performance of Eclipse on OS X. I had already tried other suggestions too such as disabling spell checking, increase memory allocation, etc.

Post a Comment

Links to this post:

Create a Link

Sunday, April 06, 2008


Google Project ("to-do") Wish List

Google Notebook needs integration with other Google offerings to make an effective way to get things done. Why? I want project management tools in lightweight, browse-anywhere form. Google seems well-positioned to provide a comprehensive TODO system. Tasks and Projects may arrive in the form of emails, phone calls, random thoughts, or ideas while reading a Web Page. Google Project would become a data model for loosely binding other Google item types, and tracking state.

Others Lack

  • In the years I used it, Microsoft Outlook never added the ability to make one task dependent on another. Perhaps to do so might have threatened Microsoft Project.
  • Many other services that attempt to provide project tracking are cumbersome. Web 1.0 whole-page forms that only work on an Intranet, and are cumulative (record running commentary) instead of offering a way to refine projects and tasks.
  • Similarly-focused products have barriers to adoption, such as costing money, platform-dependence, installation of software or plugin, and software updates. Corporate buy-in is required.

Google Project would offer the following features:

  1. Add GMail item access to notebooks.
  2. Give Google Notebook items organizational states, such as TODO, DELEGATED, DONE, BLOCKED.
  3. Task dependencies would be the obvious follow-on feature.
  4. Ability to bind a Google Calendar event to a project.
  5. Works for anyone, anywhere. Thrives through intellectual contagion.

User Story

I need to choose the most appropriate JavaScript framework for a new product in development. An email reminds me of this task. I search Google and Note 12 pages that compare frameworks and offer tutorials. The resulting Google combines these items to represent what needs to be done:
  • The email, with some annotation, becomes the Project
  • The bookmarks, with annotation, become tasks. E.g.: Compare jQuery and Dojo at URLs "A" and "B".
  • I schedule a meeting with another developer in Google Calendar.
  • I am reminded of the project and subtasks from multiple places: Notebook widget, GMail labels, Google Bookmarks, Google Calendar, and Google Notebook.

Google may benefit by expansion of its advertising base, and by upselling to an Enterprise version.

Labels: , , ,

Comments: Post a Comment

Links to this post:

Create a Link


March 2006   May 2006   July 2006   August 2006   January 2007   March 2007   April 2007   August 2007   March 2008   April 2008   August 2008   April 2010   May 2010   July 2010   September 2010   April 2011   November 2012   March 2013   December 2013  

This page is powered by Blogger. Isn't yours?