eclipse 3.5 – four good, 1 bad feature

I’ve been using Eclipse 3.5 for a couple months now making it a good time to share the features that affected me the most – 4 good; 1 bad.

Getting started

Quick install with favorite plugins:

My Eclipse 3.4 workspace was starting to get corrupted making it a good time to make a clean break.  It wasn’t too time consuming to download/install Eclipse and create a new workspace.  I also installed the plugins I use regularly as I wanted them installed before switching to do development in the new workspace.
Sysdeo – For Tomcat with Eclipse.
Subclipse – For Subversion repository access.  The install of this one leaves something to be desired, but that’s not Eclipse’s fault.  it’s a license thing.
Ecl emma – For code coverage.
PMD – For static analysis.

Workspace setup:

1) Pulling in the source code from SVN is trivial.
2) I tweaked a few settings in the preferences.  I could create an epf file, but I hadn’t changed much in the old workspace.  This was a good opportunity to look at the new preferences in any case.
3) Then there’s the “what I need to do project” – it’s not committed to SVN (which is an accident waiting to happen) – but I have all the information in my gmail account or in my head.  The bulk of that project was a “todo.txt” file which I used to keep track of what tasks I wanted to work on for JavaRanch.  This file is now gone.  Which brings me to my favorite feature #1.

Features

Favorite feature #1 – Task Lists

This feature is awesome!  It replaced my “todo.txt” file for keeping track of stuff. (It’s different than //TODO or //FIXME because it isn’t necessarily tied to code.)  You can specify the status, a due date, categories and estimates.  I’m one of those organized types who likes keeping lists.  At work, I have a piece of paper I write on as I code with little things that come to mind, test cases I need to write, other tasks, etc.  At home, I was using the “todo.txt” file in Eclipse because I have less desk space than at work.  This makes the transition to an actual task list system a natural one and a pleasure.  I also started using gmail’s tasks around the same time.  They serve different purposes.  Eclipse for development.  Gmail for other things.  Did I mention I really like this feature?

Favorite feature #2 – “Open with”

When you use “open type” there is a drop down next to open that lets you choose the “open with” option.  This is really nice.  I can’t count the number of times I’ve tried using open type on a JSP to have it tell me my encryption settings aren’t correct.  I know the solution – open in a text editor – but that wasn’t the default before.  A minor annoyance, but nice to see it resolved.

Favorite feature #3 – Export/import JUnit results

Being able to send an XML file to co-workers about failing tests beats a screenshot.   Especially in terms of seeing the stack trace for “it works on my machine” type bugs.

Favorite feature #4 – Generate toString

This speaks for itself. And easy way to generate toString so it spits out all the fields is a nice time saver.

And the worst feature

Code formatting.  What happened?  This used to work intuitively and well in Eclipse 3.4.  In Java, it gets rid of my careful placed (for readability) whitespace between lines.  I checked the preferences and “number of empty lines to preserve” is set to one.  HTML is much worse.  If I format a bunch of lines containing one <input> per line, Eclipse turns this

<input type="hidden" name="action" value="moveAllSave" />
<input type="hidden" name="module" value="${moduleName}" />
<input type="hidden" name="source_forum_id" value="${sourceForumId}" />
<input type="hidden" name="log_type" value="0" />
<input type="hidden" name="log_description" value="bulk move from admin console">

into this
<input type="hidden" name="action" value="moveAllSave" /> <input
type="hidden" name="module" value="${moduleName}" /> <input
type="hidden" name="source_forum_id" value="${sourceForumId}" /> <input
type="hidden" name="log_type" value="0" /> <input type="hidden"
name="log_description" value="bulk move from admin console">

Huh?  That didn’t happen before.   I tried setting “never join lines” but it doesn’t take effect for HTML. I guess I’m not relying on the code formatting.  Unfortunate as it will slow things down.  But yuck.  Just look at it.

search – wolfram alpha going live – part 3

I stopped watching the webcast (see part 2) about two hours in.  While WolframAlpha may go down over the weekend, it is up now for experimenting.  In part 1, I worried about my first impression:

What is interesting to me is that it gives you the answer, but not the source. For calculations, there isn’t really a source anyway. I don’t cite that 2+2=4. However, I do cite the population of Germany. So how are we supposed to know it is right? On the other hand, I think showing similar information you might not have asked for is cool.

Turns out this isn’t a big thing to worry about.  WolframAlpha gives you the source of it’s answer.  For example, I searched for swine flu.  It told me the scientific name along with the number of cases and deaths over the last couple of days.  In addition to a nice pop-up and PDF to export the data, it has a “source information” link at the bottom.  This shows the data set used to derive the answer along with other resources one might be interested in.

As a source for learning, I think this is pretty cool!

search – wolfram alpha going live – part 2

See part 1 for the background of this webcast or part 3 for my impressions after cutover.  Cnet also has an article on the last minute delays.

Interesting tidbits from the live webcast.  I’ll be updating this post as I watch.

8:55 CST:

  • They commented about all the traffic they are getting now through the backdoor they left open.  That should give them more!
  • Changing usership from academic to the general public.
  • And I’m out for the night.  Two hours of watching a deployment is about my limit unless I’m actually part of the project.  We had a five hour deployment at JavaRanch and have gone significantly longer than that where I work at a bank.  But those were projects I was on.
  • Good luck to the Wolfram Alpha team.  I hope things go smoothly and you don’t have too long a night.  I look forward to reading about it tomorrow.

8:50 CST:

  • Talking about how Wolfram Alpha relates to Mathematica

8:45 CST:

  • Back to interrupting the guy doing the testing.
  • There was some sort of connectivity problem.  They are deploying a patch now.
  • Among the many dashboards is a weather display in case they have to watch for weather

8:40 CST:

  • I lost my video for a couple minutes, but it looks like they are still showing the control room with background noise
  • A deployment doesn’t have every minute filled with excitement!

8:35 CST:

  • Just showing control room now.
  • People are sharing links in chat which do work even if you can’t do a new query from your area.  For example, what is a noreaster and area of california

8:30 CST:

  • Some people in chat seem to be able to get through to do queries.  I can’t though.  I wonder if it is IP address based to limit load until they are ready?
  • I just saw a comment “Yeah – it’s working in Massachusetts”

8:25 CST:

  • They are getting feedback from viewers via Twitter and through the software itself.
  • Someone is moderating chat in the software.  Quite frequently at the moment.  You have to be on the justin.tv version of the feed to contribute to chat.  Which unfortunately caused a reload of the video and I missed some.    There are a few relevant comments, but it’s mostly “chat spam.”

8:20 CST:

  • Cut to interviews with developers about mathematics behind the system along with how it relates to Mathematica.  Also talked about how they envision people integrating Wolfram Alpha into their own site along with as a search engine.  They also expressed interest in seeing what people come up with on their own.
  • The interview also covered the beginning – that they did unit conversion first.

8:15 CST:

  • More details of rac tour including the decisions of managing the physical cables.
  • Red is visible on the monitoring screen in the background.
  • They think the live webcast affected the bandwidth available for the load test.
  • Pointed out how the things that get you are always the little unexpected things.  (Of course – the expected things were planned for!)
  • Also pointed out how the nasty problems tend to come up towards the end for big projects.

8:10 CST:

  • Showed command line screen of load tester.  You can’t read it from the webcast, but it’s still there.
  • I would think it would be annoying to have a camera questioning you as you are trying to run a load test – but that’s just me.
  • Cut to tour of supercomputer.  At least now they are letting the load tester work!

8:05 CST:

  • Showed stream of data from queries.  They expressed that they did in fact take precautions that no personally identifiable information will be in the feed.
  • Don’t want too many people using system at once at first so not overwhelmed.
  • They are now doing a load test from a simulated “real” location to make sure the system won’t fall apart.

8:00 CST:

  • Showed monitoring graphs including queries per second along with discussion on what is desired state – growing but not beyond capacity.
  • They also showed the computer cluster graph and plan to show more throughout the night.

7:55 CST:

  • Cut to pre-recorded video of control room
  • Cut to pre-recorded video showing server topology along with cooling fans and server rack.  They also discussed failover – if one machine fails, another just takes over.

7:45 CST:

  • “We’re launching a product and not a TV show” – I like this quote.  it shows where priorities are.  Sharing cutover with the world is quite ambitious I must say.
  • Cut to tour of backup generator/uninterruptible power supply.  The UPS is good for 30-70 minutes.  It wouldn’t be needed that long of course as they pointed out the backup generator would go on within a few minutes.  I assume this piece was pre-recorder.

7:40 CST:

  • It’s a very large, distributed project.
  • They have two “webcast guides” to narrate things so “the guy in charge” can do work.
  • They explained the background noise – it includes thunder.  They are listening to feedback (from somewhere) on the webcast in realtime.
  • They walked through why so many people are in the room (including cutting to showing them) and their function – including load testing, cutover team, etc.
  • Given the thunderstorm, they explained that they do in fact have a backup generator for electricity.  Good contingency planning.

7:33 CST:

  • They have a tornado watch in Illinois during this deployment.
  • It sounds like a live webcast – the background noise is audible – you can tell he really is in a big room with a lot of activity.
  • There’s a nice dashboard setup on the wall for monitoring.