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:
org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException
...
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.
After 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
- Open Eclipse Preferences (Apple-,).
- Type filter text "hyperlink", or navigate to General : Editors : Text Editors : Hyperlinking.
- Deselect checkboxes "Mylyn Tasks" and "Mylyn URLs".
- Click Apply, then OK.
- Restart Eclipse.
Results
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: beach ball, beachball, eclipse, mac osx, mylyn
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:
- Add GMail item access to notebooks.
- Give Google Notebook items organizational states, such as TODO, DELEGATED, DONE, BLOCKED.
- Task dependencies would be the obvious follow-on feature.
- Ability to bind a Google Calendar event to a project.
- 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: Google.com/ig 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: GTD, project, task, TODO