Planet OTI

February 07, 2010

Brooke Kuhlmann

Protected: Theater Room - Walls

This post is password protected. To view it please enter your password below:


Article Series - Home Theater Renovation

  1. Protected: Theater Room - Dismantled
  2. Protected: Theater Room - Ceiling
  3. Protected: Theater Room - Walls

by Brooke Kuhlmann at February 07, 2010 03:02 AM

February 04, 2010

Boris Bokowski

Can we turn e4 into an orange?

Let me write a quick response to Elias' thought-provoking post. I hope there will be other (and not so quick) responses as well - it is important to step back every now and then to assess whether we are going in the right direction. But for now, I didn't want to let the issues he raises without an answer from the e4 team. The question for me is, how can we turn e4 into a juicy and sweet lemon? ;-)


Killer feature: I fully agree that support for styling and skinning is not going to be enough of a killer feature to convince everybody that it is worth stepping up to e4. What could be other killer features? To be honest, I am not sure. I would be interested in hearing opinions on this - please leave comments!

Download size: The 230 MB are easy to explain - this download includes the 3.x Eclipse SDK (167 MB), the EMF SDK (27 MB), some parts of WTP, GEF, and other bits and pieces. If you just look at the e4 bundles, they amount to just over 2 MB. The dependencies of the core e4 bundles (a subset of those 2 MB) are SWT, JFace, Equinox, and the EMF core runtime. It could always be smaller, but the 230 MB are just the wrong number to look at. Unless you are interested in the footprint of e4 + compatibility layer + everything from the current Eclipse SDK, but clearly it is not the long-term goal of e4 to always ship with everything from 3.x.

Different: This takes a little longer to explain, but luckily a good response already existed, in the form of John Arthorne's argumentation from bug 300099 comment 4 (I made minor adjustments to make it fit better into this blog post):

The purpose of injection was to make it easier to obtain services in the general case, as well as to decouple of service user from knowing or caring about who provided the service. I'll offer a couple of examples that I've taken from the existing 3.x code (all from the current ResourceNavigator.java in 3.6):

1) I want to print a message on the status line. In 3.x this is:

getViewSite().getActionBars().getStatusLineManager().setMessage(msg);

In e4 this should be:

@Inject
IStatusLineManager statusLine;
...
statusLine.setMessage(msg);


2) I want to get the selected resources:
 ArrayList list = new ArrayList();
if (selection instanceof IStructuredSelection) {
IStructuredSelection ssel = (IStructuredSelection) selection;
for (Iterator i = ssel.iterator(); i.hasNext();) {
Object o = i.next();
IResource resource = null;
if (o instanceof IResource) {
resource = (IResource) o;
} else {
if (o instanceof IAdaptable) {
resource = (IResource) ((IAdaptable) o)
.getAdapter(IResource.class);
}
}
if (resource != null) {
list.add(resource);
}
}
}
return new StructuredSelection(list);
I'm not sure how we handle multi-selection in e4, but this should be something
like:

 @Inject
public void setSelection(@Named("selection") List<IResource> selection) {
selectedResources = selection;
}
3) I want to associate a help context with my control
    getSite().getWorkbenchWindow().getWorkbench().getHelpSystem().setHelp(
viewer.getControl(), getHelpContextId());
In e4 this should be something like:

@Inject
IWorkbenchHelpSystem helpSystem;
...
helpSystem.setHelp(viewer.getControl(), getHelpContextId());


The end result is simpler code, but it also removes a mass of assumptions that
the client previously had to make, about what their containment structure
looked like and where specific services came from. I think we sometimes take
for granted how difficult it can be for clients in 3.x to figure out where to
get particular service from.


Having said all that, we have probably gone too far down the
"non-specification" route in e4. I think it is essential that we provide
interfaces containing specification of things clients must implement (e.g., you
need a doSave() method for parts that are to be used as editors). We can make
the interface optional if we want, but there has to be somewhere where we
specify the behavior expected/required for clients. To me this specification of
expected behavior for clients is orthogonal to service injection so I hope that
we can have both.

by Boris Bokowski (noreply@blogger.com) at February 04, 2010 11:52 PM

Mike Milinkovich

EPL Growth: The Symbian Foundation Goes Fully Open

It’s not too surprising that the Eclipse Foundation thinks that the Eclipse Public License is a darn fine open source license. It is arguably the most commercially-friendly of the copyleft licenses, and one which is particularly well suited for fostering a community building a software platform.

So in June of 2008 we were thrilled with the announcement concerning the formation of the Symbian Foundation and their selection of the EPL as their community’s license. It was a huge endorsement of the EPL which immediately shattered a couple of misconceptions about it. (I’m thinking of things like “the EPL is a Java license”, “the EPL is only for Eclipse projects” and the like.) But of course migrating a large and mature code base to open source takes a lot of work to do, so the original announcement was basically a promise of good things to come.

Today is the day that promise becomes a reality. The Symbian Foundation is releasing its entire code base under the EPL to the world. This is a major accomplishment for that community, and one which they accomplished months earlier than originally planned. Please join me in congratulating the Symbian Foundation in achieving an important milestone in their voyage to becoming a truly open source and open development community.

by Mike Milinkovich at February 04, 2010 01:15 PM

February 03, 2010

Boris Bokowski

Sometimes, bug triage is no fun

Here is how I intend to respond to a private email that I received today, about a bug that was filed yesterday. How would you respond in a similar situation?

Hi [X],

Thank you for reporting a problem with Eclipse. But - and maybe it's just me - the private email you sent today comes across as demanding. You are asking us to help you quickly, without investing time on your side to make the problem easy to reproduce for us. I understand that it's frustrating when things don't work the way you think they should work. However, remember that Eclipse is free software, and please consider if you are not already getting a lot more than your money's worth.

So, in your own best interest, could you please use Bugzilla (that way, everybody interested in the issue can follow the discussion), and help us reproduce the problem with as little time investment as possible on our side? I have already asked twice, on the bug, but I will ask one more time: Please attach [a file that will allow us to reproduce the issue] to the bug. I would expect to be able to use [list of steps] to get the source code into my Eclipse. Before uploading the attachment, it wouldn't hurt if you tried the import operation on a fresh workspace to confirm that we will be able to just run it. By the way, the recommended way to produce the file to attach would be [list of steps].

Thanks,
Boris

by Boris Bokowski (noreply@blogger.com) at February 03, 2010 10:54 PM

Mike Milinkovich

2010 Elections: Candidates Posted

The candidates for the 2010 Eclipse Foundation Board of Directors are now posted. There are five nominees for Committer Rep and five nominees for Sustaining Member Rep, each group competing for three available seats.

We will have the candidates full bios and positions up by February 8th. Voting opens on February 22nd. You can find a full description of all of the key dates here.

I hope to see lots of community members getting involved in the discussions!

by Mike Milinkovich at February 03, 2010 07:23 PM

Ian Skerrett

ianskerrett


Congratulations to the Eclipse PDT team for their top score on the recent InfoWorld review of PHP IDE’s.  Out of 8 PHP IDE’s reviewed, PDT tied for top marks.    The other top IDE was  Zend Studio, of course based on Eclipse.

The PDT project team and Zend have done a fabulous job creating a world-class IDE for PHP developers.  Eclipse is clearly doing well in the PHP developer community thanks to their work.

by Ian Skerrett at February 03, 2010 06:45 PM

Rick DeNatale

Dirty Rotten Scoundrels

I had an interesting debugging session the other day.

The Rails app I'm working on for a client uses oauth to get user info from one of the popular professional social networking sites.

In order to keep from hitting that site with an oauth request too often, yesterday I worked on a story to add throttling. The client wanted to refresh the data no more often than an application configurable refresh period.

Easy Peasy

Easy enough! I already had a model responsible for keeping the oauth token and returning the relevant data. I added a text field to the model where I could cache the data as a serialized object. Then I added code to the method which returned the data which checked to see if the refresh period had elapsed since the record was updated, and if so, make the oauth request to refresh the data, and save the updated record.

Hang on!

Then I started trying it out, and I got a surprise. The first time I asked for the data, it got fetched via oauth, and the model got saved. I asked again, expecting that the cached data would be returned, but once again the oauth request went out.

After playing with it some more in script/console, and adding some debugging printouts, I finally realized that the problem was that the updated_at field in the record wasn't changing. I saw that the sql query generated by the save was inserting the data value, but not a new value for updated_at, strange!

Alternatives

I'd been using the update_attribute method to change the data value. Just for giggles, I decided to see if setting the value and then explicitly saving the record would fix it. Nope! Exactly the same SQL was generated, with updated_at left unchanged.

Digging deeper

This is the point where I resort to reading code. This project has Rails vendored, so I had no qualms about inserting some debugging alterations to the code. Actually I'm not immune to temporarily monkeying with non-vendored gems to debug arcane stuff like this either.

So the first thing was to find the code in ActiveRecord which writes the updated_at attribute. I found it in activerecord/lib/activerecord/timestamp.rb

  def update_with_timestamps(*args) #:nodoc:
    if record_timestamps && (!partial_updates? || changed?)
      current_time = current_time_from_proper_timezone

      write_attribute('updated_at', current_time) if respond_to?(:updated_at)
      write_attribute('updated_on', current_time) if respond_to?(:updated_on)
    end

    update_without_timestamps(*args)
  end

Those familiar with Rails conventions will realize this as an override to the ActiveRecord::Base#update method using alias_method_chain.

So, in order for the timestamps to be written, record_timestamps has to be truthy, partial_updates? has to be falsy or changed? has to be truthy.

Now record_timestamps is a class_inheritable attribute on ActiveRecord::Base, which allows timestamp recording to be turned on or off for all or particular ActiveRecord classes, and that was true by default. The method partial_updates? determines whether or not the partial update feature has been turned on or off for the model, again this is true by default

This leaves changed? a method added by dirty tracking which indicates whether anything in the record has changed and therefore needs to be written back to the database as part of the update.

So facing this code, I inserted a puts to show me what those three values were.

And the culprit turned out to be the result of the changed? method, which was returning false!

Active Record Dirty Attribute Tracking

The partial update feature, along with. dirty attribute tracking, was introduced in Rails 2.1. Dirty attribute tracking keeps track of the value of attributes when a model is fetched, and partial update only writes changed attributes to minimize the amount of data send to the SQL adapter. They use an instance variable @changed_attributes, a hash mapping the name of any attributes whose value has been changed maintained by the write_attribute method. The changed? method indicates whether any of the attributes have changed. There's also a will_change method which alerts ActiveRecord that a an attribute might change directly, say with something like Book.title.capitalize!

So in this case my model fetched the data via an oauth request, and since the value hadn't changed, dirty tracking determined that the model object hadn't changed, so now updated_at timestamp was written.

I'd run afoul of dirty tracking/partial update before. Back in 2008, I got hired by a startup with a sizable Rails app they'd been working on, which used lots of ActiveRecord callbacks and observers. One of my assignments was to upgrade it from Rails 2.0 to 2.1, but the introduction of partial update made some subtle changes to things like the ordering of those callbacks and observed events which badly broke the application. The CTO quickly came to the conclusion that the upgrade was going to cost more than he deemed it to be worth. So, in our case, the jump from Rails 2.0 to 2.1 was a much bigger one than from Rails 1.x to 2.0.

The Fix

In this case, the fix was considerably simpler, use update_attributes(:data => the_date, :updated_at => Time.now). This worked and ensured that the updated_at attribute gets updated whenever the data is fetched.

One More Little Mystery

After fixing this, I moved on, but one little thing nagged at me. Since the data attribute hadn't actually changed its value, why hadn't the partial update code kept it from being written in the first place?

So I went back and looked a little harder at the active record code and found this:

  def update_with_dirty
    if partial_updates?
      # Serialized attributes should always be written in case they've been
      # changed in place.
      update_without_dirty(changed | (attributes.keys & self.class.serialized_attributes.keys))
    else
      update_without_dirty
    end
  end

Since the data attribute was serialized, it always gets written!

So Is This a Bug in ActiveRecord?

Actually I could make the case that there's one of two bugs here:

  1. Serialized attributes shouldn't be written under partial update if they haven't actually changed, or
  2. The updated_at attribute should be changed if there are any serialized attributes even if the values of those serialized attributes haven't changed.

To be honest, I'm not sure which if either of these is a bug. In my use case, I'd prefer that AR used option 2. On the other hand I can see cases where it would be preferable if updated_at reflected the last time the record actually changed.

On the other hand, I'm not sure that the code right now updates updated_at if the only change to a record is in serialized attributes at least one of whose values has changed.

But, I've got other things to worry about right now, so I guess I'll follow Scarlett O'Hara's advice and "think about that tomorrow!"

by Rick DeNatale at February 03, 2010 05:45 PM

February 02, 2010

Paul VanderLei

Talks at EclipseCon 2010

I'm involved in two talks at EclipseCon this year.

The first one is a 3-hour tutorial on Monday morning called Working with OSGi: The stuff you need to know. It's based on my upcoming book entitled OSGi and Equinox: Creating Highly Modular Java Systems. I'll be presenting with my co-authors Jeff McAffer (EclipseSource) and Simon Archer (IBM) as well as Chris Aniszczyk (EclipseSource). Should be loads of work. And loads of fun.

I'm also doing a talk on Tuesday afternoon called OSGi Best and Worst Practices. Again, I'll be presenting with Jeff McAffer and Chris Aniszczyk, plus Martin Lippert from it-agile in Germany. Martin really knows how to put the proverbial umlaut in OSGi! Personally, I'm hoping to focus more on the worst practices, since that's more fun. Got any ideas or pet peeves? I've already got one up my sleeve that will involve a shameless rip-off of my favorite Toothpaste for Dinner comic. Well, second favorite, behind this one. And, yes, I can recite the first 50.

Addison-Wesley will also be selling our book at the conference, and Jeff, Simon and I will have copies available to peruse. We'll probably give away a copy or two to some lucky winners.

The conference runs from March 22 - 25. See you there!

by Paul VanderLei (noreply@blogger.com) at February 02, 2010 01:50 PM

February 01, 2010

Mike Milinkovich

The Two Solitudes

I don’t think you can go to school in Canada and not read Hugh MacLennan’s the Two Solitudes. So for me it was an obvious metaphor for a phenomenon that has become apparent to me over the past year or so. That is: Europeans and Americans (particularly Californians) view the practice of software development in materially different ways.

I travel a lot to both Europe and California and I talk to a lot of people about what they are building and how they are building it. In my personal and completely unscientific experience the difference between the two regions is stark. I thought it might be interesting to explain what I am observing and see if others see things in a similar way. I freely admit that my experiences could be completely coloured by sample bias (e.g. maybe I’m just talking to completely different crowds in the different regions).

BTW, some of these ideas are distantly related to Michael Cusumano’s book The Business of Software, where he points out that the US is somewhat unique in looking at software as a business. Certainly there are not that many European independent software vendors relative to the US.

It seems that most of the Europeans I talk to are focused on large systems engineering problems. As a result, they largely view software as part of a supply chain, where what they are working on is going to either be part of or in support of a systems engineering product such as an automobile or an airplane. The next largest group that I talk to are fairly typical application developers working in large banks, insurance companies and the like. But here are the interesting bits:

  • Both of these groups are deeply concerned about software complexity and both are looking to modeling and model-driven development as part of the solution. They view modeling as absolutely strategic to their future ability to develop the software their customers or businesses will need.
  • I also see a lot more interest in desktop applications as opposed to web applications. Just recently I had two different conversations with groups that are migrating existing web applications to Eclipse RCP desktop applications. This is not to say that Europeans don’t build websites or use RIAs! But in my experience there is a very noticeable difference in the relative interest in desktop applications in Europe.

Now if you’re still reading this, you’ve likely guessed where its going next. My experiences in the US generally and even more so in California is that the Web is king and that anything which doesn’t run in the browser is uninteresting. I also uniformly get incredulous reactions if you ask someone in the US if they’re using modeling or model-driven development practices. They’re all hacking code with small, fast, super-smart teams. It’s just a completely different world in my personal experience.

Do others have similar observations?

The challenge for Eclipse in this context, of course, is to be relevant in both contexts. I actually think that we are doing a good — but not yet great — job of doing so. Projects like e4 are leading the way to making the Eclipse platform more relevant in the Web 2.0 world. But it certainly has a ways to go. The Modeling project has a virtual alphabet soup of technologies in it, but at the moment falls short of a providing a cohesive modeling platform. Something I hope to see the community begin to address shortly.

by Mike Milinkovich at February 01, 2010 10:17 PM

Patrick Mueller

remote web inspector - baby steps

Last week, I did a little work getting a remote debug story between an iPhone and WebKit's Web Inspector limping. Barely limping. More like crawling. Anyhoo, the write-up is here:

http://muellerware.org/papers/remote-web-inspector-baby-steps.html

by Patrick Mueller (noreply@blogger.com) at February 01, 2010 03:34 PM

Bjorn Freeman-Benson

The Opposite of Open is Theirs

Eclipse is at a cross-roads: it has more users than ever before but also less committer involvement than ever before [1,2]. Thinking about this, I'm struck by the similarity between Eclipse's situation and David Weinberger's "The Opposite of Open is Theirs", specifically he says:
If we allow others to make decisions about what the Net is for — preferring some content and services to others — the Net won’t feel like it’s ours, and we'll lose some of the enthusiasm (= love) that drives our participation, innovation, and collaborative efforts.
or, reworded for Eclipse:
If we allow others to make decisions about what Eclipse is — preferring some plug-ins and projects to others — Eclipse won’t feel like it’s ours, and we'll lose some of the enthusiasm (= love) that drives our participation, innovation, and collaborative efforts.
In other words, as long as the official Eclipse distros are controlled by single companies, the growing body of users will continue to be disenfranchised. I think the Apache Foundation epitomizes what the Eclipse Foundation should strive to emulate:
We consider ourselves not simply a group of projects sharing a server, but rather a community of developers and users.
Required diversity, decisions made by contributors, refusal to allow sponsors to control project direction, ... those are some of Apache's open fundamentals. If elected to the Board, I will work for moving the Foundation in that direction. I'm pro-member-company-profits, but not in a way that is anti-open. I want Eclipse and the Foundation to be viable in the long-term and I believe the only way to accomplish that long-term relevance is through a truly open meritocracy.

It needs to be ours and not theirs.

by Bjorn Freeman-Benson (noreply@blogger.com) at February 01, 2010 08:02 AM

January 31, 2010

Brooke Kuhlmann

Protected: Theater Room - Ceiling

This post is password protected. To view it please enter your password below:


Article Series - Home Theater Renovation

  1. Protected: Theater Room - Dismantled
  2. Protected: Theater Room - Ceiling
  3. Protected: Theater Room - Walls

by Brooke Kuhlmann at January 31, 2010 04:36 PM

January 30, 2010

Brooke Kuhlmann

Protected: Theater Room - Dismantled

This post is password protected. To view it please enter your password below:


Article Series - Home Theater Renovation

  1. Protected: Theater Room - Dismantled
  2. Protected: Theater Room - Ceiling
  3. Protected: Theater Room - Walls

by Brooke Kuhlmann at January 30, 2010 10:00 PM

Protected: Theater Room - Original Setup

This post is password protected. To view it please enter your password below:


by Brooke Kuhlmann at January 30, 2010 08:00 PM

January 29, 2010

Patrick Dubroy

An In-Depth Look at the User Experience of iPhone Safari

On stage Wednesday at the Yerba Buena Center in San Francisco, Steve Jobs introduced the iPad as “the best browsing experience you’ve ever had. Way better than a laptop, way better than a smart phone.” Quite a claim.

Of course, the iPad browser is Safari. And from what I’ve seen and heard, it’s more like the iPhone than the desktop version. John Gruber reported that “even though the screen offers the same pixel count as what was once the standard size for a laptop display, iPad Safari renders pages like iPhone Safari. The web surfing experience is all about zooming and panning.”

I’ve had an iPhone for a while now, and done my fair share of browsing in Safari. Since I’m interested in web browser user interfaces (c.f. Browser Bits, my blog on web browser UX), I thought it would be interesting to take a closer look at the little details that make for such a great browsing experience on the iPhone. By examining the most widely-used (and arguably best) mobile web browser, we can better understand what it takes to make a great mobile web browsing experience, and how we might do even better. But also, looking at the design choices made under the iPhone’s contraints can help us break free from our assumptions of what a browser interfaces should be.

Browser Controls

The first thing I noticed is that despite the restricted screen resolution of the iPhone (320×480) they’ve still managed to fit in most of the browser controls that we’re used to seeing.

Safari on iPhone

Along the top, we’ve got the page title, the URL bar, and the search bar. It’s interesting that they chose to keep the two bars separate, rather than combine them into one as Google Chrome does. They probably made this choice in order to stay consistent with the desktop version of Safari.

In fact, almost everything about iPhone Safari is strongly consistent with the desktop version. Page loading progress is shown in the URL bar, and the refresh and stop buttons appear at the far right of it. The controls along the bottom — the back and forward buttons, the bookmark button, and the “+” button — all work almost exactly the same. One small difference is that the “+” button, instead than just being used to add a bookmark, serves three purposes: “Add Bookmark”, “Add to Home Screen”, and (somewhat oddly) “Mail Link to this Page”. The last function seems a bit out of place on this menu, but without adding a button, I’m not sure where it would make more sense.

One of the clever design choices Apple made is that top control bar is actually positioned inside the scrollable content area, so that when you scroll down, it disappears off the screen. The initial content area is 356px high, and the control bar takes up another 60px, so the result is 17% more vertical pixels for the page contents.

The bottom control bar, on the other hand, is static. I’m curious to know if the choice to put those controls on the bottom was based on any empirical usage data, because it’s not obvious that they would be used more often than the controls on the top [1].

Another thing to note is how small the URL bar actually is. In most desktop browsers, the URL bar is massive, taking up most of the window width. The iPhone browser proves that’s mostly unnecessary — I’ve rarely needed to see more than the ~20 characters it shows by default. However, the URL bar and the search bar are only that size when they don’t have focus. When you tap on one of them, it expands to fill the full width of the screen.

One weakness of the smaller URL bar is that it makes it much harder for the user to detect a phishing attempt: on many sites, the entire domain isn’t visible. Tapping on the URL bar is useless because it shows the end of the URL, and scrolling it to the beginning is complex and slow.

Safari iPhone phishing problem

The extra width afforded when typing into the URL and search bars is nice, but I’ve found that it can lead to mode errors. When I want to go to a new page, sometimes I tap on the wrong box, and quickly hit the “X” to clear its contents. Once the box fills the screen, there is little indication which box you are typing in. The differences are very subtle: the search bar has fully semi-circular ends, whereas the URL bar is a rectangle with rounded corners. But what usually happens to me is that I type the first word of a search query, and then freeze when I realize that there’s no space bar on the keyboard.

If you’ve never used on iPhone, that probably requires a bit of explanation. On the iPhone, the on-screen keyboard changes depending on what kind of text field you are typing in. I’ll explain more in the next section.

Typing

Text entry on an iPhone is done using a soft keyboard that takes up the lower half of the screen. In most apps, the keyboard is in the configuration shown below left (notice the space bar). Symbols (like the ones you’d need when typing a URL) can be accessed by tapping the button in the bottom left corner. This is the same configuration used when you’re typing in the search bar. But when you’re typing in the URL bar, the keyboard is different, as shown on the right. The space bar is replaced with keys you’re more likely to need when typing a URL.

Safari iPhone dynamic keyboard

An additional hidden feature is that you can hold down the “.com” key to access “.net”, “.edu”, and “.org”. Very handy indeed.

One of the coolest things about this feature is that it doesn’t just work this way in the URL bar and the search bar. The keyboard will also reconfigure on any web page that uses one of the new HTML5 input types (like “url” or “email”). In “email” configuration, for example, the space bar is extra small, and buttons are added for “@” and “.com”. (For more information on this, see Mark Pilgrim’s very informative article on forms in HTML5.)

Ok, so most people probably don’t spend that much time thinking about the keyboard. The actual browsing experience in iPhone Safari consists of three main things: tapping on links, scrolling around the page, and zooming in to content.

Zooming

Before the iPhone, it was hard to use a mobile browser to view a site that wasn’t specially designed for a smaller screen. iPhone Safari made things much better by providing two ways of easily zooming in to view the page contents.

Safari iPhone pinch zoom

One way of zooming is to use the multi-touch pinch/anti-pinch gestures. Contrary to popular belief, this was not invented by Apple. In fact, Myron Krueger demonstrated this technique around the time that the original Macintosh was first released. That said, the mere existence of pinch zoom is not enough; the devil is in the details, and that’s exactly where Apple excels.

When you put two fingers on the screen and spread them apart, the view zooms in on a point located between your fingers. This is important, because it helps maintain the real-world “stretching” metaphor. An alternative implementation would have been to just zoom in on the middle of the screen. I’ve used interfaces like that — it’s very frustrating.

Another detail that Apple got right is the speed of the zoom. To be absolutely true to the real-world metaphor, the content underneath each finger should remain static relative to the finger. That is, if you put one finger down on the top right corner of an image, and the other on the bottom left corner, and then spread your fingers apart, they would still be over the corners of the image. In iPhone Safari, the zoom is actually slightly slower than this, meaning that you have to move your fingers a little bit further apart to achieve the same level of zoom — but it feels just right.

The second method of zooming in iPhone Safari is to double-tap on any content to make it fill the width of the screen. This is straightforward with an image, but not so much with text. The most common use case is to double-tap on a column of text, and the browser will zoom so that the column fills the width of the screen. In general, this works exceedingly well, but in some cases, it will zoom to the width of a particular element that is smaller that the column. I’ve seen this problem on sites that have threaded comments, such as Hacker News.

On the subject of zooming: many web sites have an iPhone-specific version that uses the the meta “viewport” tag to ensure that the width of the page matches the width of the device. This tag (introduced by Apple for iPhone Safari) has an option named “user-scalable” which allows the developer to control whether the user can zoom in to the page or not. The default is “yes”, but unfortunately many web sites set it to “no”. This can be frustrating on sites like Flickr and DeviantART, where you often do want to zoom in to get a better look at a picture.

Scrolling

The more you zoom in, the more you’ll have to scroll. On the iPhone, you do this using direct manipulation — just swipe in any direction to pull the page in that direction. Note that this is the opposite of how scrolling works on a trackpad. On a MacBook, swiping down with two fingers will move the viewport down, whereas on the iPhone, swiping down moves the viewport up.

When zoomed in, Safari makes it easy to scroll in one direction only. That is, a swipe that is not quite vertical will result in a perfectly vertical scroll with no horizontal movement. This way, when you’re scrolling down a column of text, you don’t have to re-adjust the horizontal position every time you scroll. In my opinion, it’s still a bit too easy to go “off the rails” when attempting to scroll vertically. However, it’s a delicate tradeoff, because you want horizontal scrolling to remain responsive.

When you are in the midst of scrolling, you see bars along on the side of the screen that look very much like a scroll bar in a desktop application. This goes for the entire iPhone, not just Safari. These “scroll bars”, however, are completely read-only. They are just there to help you get a sense of where you are on the page. When you stop scrolling, they disappear. It’s good that they don’t take up any screen real estate, but frustrating when you are on a really long web page and want to scroll all the way down to the bottom. This would be even more of a problem for scrolling back to the top of the page, except that there is hidden feature on the iPhone for this purpose. Tapping the status bar at the top of the screen scrolls the main viewport back to the top. Very useful, but very hard to discover. Well, unless you read the documentation.

When reading said documentation, I actually discovered another hidden feature. To scroll within a frame or a textarea on a web page, you can swipe with two fingers. However, on my iPhone 3GS running OS 3.1.2, this doesn’t actually seem to work with either textareas or iframes.

Just like other iPhone apps, Safari has “kinetic scrolling” — swiping with your finger gives the page momentum, and it will continue to scroll after you’ve lifted your finger off the screen. And when you hit the bottom or the top, it will scroll a bit past it before snapping back. It’s a nice, natural, and cute way of indicating that you’ve hit the end of the page.

For some reason though, web pages just don’t scroll the same as other controls on the iPhone. They seem to have less momentum, or more friction. John Gruber has written about this before, going as far as to say that it’s one of the main ways that iPhone web apps fall short of native apps.

Tapping Links

Besides scrolling, clicking on links is the most common thing people do in a web browser [2]. In iPhone Safari, following a link is as simple as tapping on it. It seems pretty straightforward and uninteresting, but given the size of a human fingertip and the small size of web content on the iPhone’s screen, it’s not as easy as it might seem. Given that most web sites are designed for use with a pixel-perfect input device (the mouse), it’s actually pretty amazing that about 95% of the time, I can manage to follow the correct link in iPhone Safari. I’d guess that the hardware is the major factor here, but it still feels like there is some kind of software heuristic at work. It’s easy to take this for granted, but given my experience with various multi-touch interfaces, it’s actually a remarkable achievement that tapping links on an iPhone is as precise as it is.

Another thing to notice is that scrolling and zooming are very rarely mistaken for a link tap. This comes at a cost of responsiveness — there is a slight delay after you tap a link, as it waits to see if another tap is coming. But the delay is subtle enough that it’s hardly noticeable.

Multiple Pages

Safari iPhone multiple pages

iPhone Safari does not support tabs. This isn’t surprising, due to the screen and resource limitations of the iPhone. Instead, it has the concept of “pages”, which are somewhat like multiple windows. When you click a link that would open in a new tab or window (such as in GMail), or open a URL from another iPhone app, it will launch in a new page. When you click on the “pages” button in the lower right, you can flip through all the pages that you have open. From this view, you can close pages, or create a new page.

When a link is opening in a new page, there is a nice little animation that makes it clear that you are going to a new page that is to the right of the current one. Without it, you might become confused and wonder why the back button doesn’t work anymore. This actually happens to me sometimes when using desktop browsers, and I’ve heard other people report having the same problem.

There is a limit of 8 pages that can be open at any time. I suppose this is to conserve resources, and to prevent the list from getting unwieldy. If you have 8 pages open and a link needs to be opened in a new page, you will lose the first one in the list. However, this has never actually happened to me.

Although they are called pages, they behave very much like tabs. They have a close button on the top left, and just like with tabs, when you close a page, the one to its right takes the focus. This is another example of how strongly Apple cares about keeping consistent with the desktop user experience.

The key feature of tabs that is not supported by iPhone Safari’s “pages” is the ability to open a link in the background. You can open a link in a new page by touching and holding the link then selecting “Open in New Page”, but this will immediately switch focus to the new page, rather than loading it in the background.

What’s Missing

Well, when you’re trying to put a fully-functional web browser on a mobile device, you can’t do everything. Here are some of the key things iPhone Safari is missing:

Flash

One of most discussed (and hotly debated) things about iPhone Safari is its lack of Flash support. It was never entirely clear whether this was a technical decision or a political one; that is, until Wednesday when we learned that the iPad won’t support Flash either. From a user experience point of view, this has its pros and its cons, but I think it’s a good thing for the web.

Find-in-page

A small annoyance that bites me from time to time is the lack of find-in-page support. However, there’s a plethora of bookmarklets out there that can add the functionality. (Actually installing bookmarklets is pretty painful, but I digress.)

Security and Phishing Protection

I mentioned the fact that small size of the URL bar makes it difficult to visually detect a phishing attempt. There’s also no way to see details about the SSL certificate. The only security-related thing I see is the lock icon that appears before the title when you’re using an SSL connection, but what good is that if you can’t even see what site you’re connected to?

Update: In the comments, PCheese points out that iPhone Safari has phishing protection just like the desktop version.

File uploading

Any file input widgets in HTML forms are just shown as being disabled. Since there’s no user-visible file system on the iPhone, this isn’t too surprising. Still, it would have been nice to provide a simple way of choosing a photo or video to upload.

Opening links in the background

In the study on tabbed browsing I ran in 2009, I found that many power users habitually open links in new tabs, especially on search result pages and on sites like Digg and Hacker News. I find that the inability to do this on the iPhone seriously changes my browsing habits. And I’m quite surprised that the iPad doesn’t appear to support tabs, though this may of change before it’s released.

Conclusion

The iPhone was a revolutionary computing device, in no small part due to how great iPhone Safari is. In its user experience, Apple did what they do best — put a great amount of energy and effort into perfecting the smallest details of the design. I hope this article has helped you notice more of those details.

The version of Safari on the iPad looks to be highly influenced by iPhone Safari. This is interesting, because its screen resolution is bigger than most web users had in 2005 [3]. If it really is “the best web browsing experience ever”, aspects of its design will no doubt trickle up into desktop browsers.


  1. Mobile Firefox (aka Fennec) takes an interesting approach: the back, forward, and bookmark buttons are in a control strip that lives to the right hand side of the page content. It is hidden by default, by can be revealed by dragging all the way to the right.
  2. See Weinreich et al.’s Not quite the average: An empirical study of Web use

by Patrick at January 29, 2010 06:19 AM

January 25, 2010

Ian Skerrett

ianskerrett


The 1.0 release of e4 is planned for July 2010.   Obviously, this is an important milestone for the Eclipse community.  The e4 development team is doing a great job building the next generation Eclipse platform.  However, as we all know, any new technology also needs evangelism, education and promotion.

People are already creating some compelling e4 tutorials, demos and presentations.   I am hoping that a coordinated effort might accelerate the material we have available when e4 is launched in July.   Therefore, I have started an e4 Evangelism page on the e4 wiki.  The idea for this group is to create 1) a consistent set of messages, 2) a repository of content produced or expected to be produced and 3) a community to brainstorm new ideas.  We are also going to host month conference calls for anyone interested in helping to spread the new about e4.  The first call will be this Thursday at 20:00CET, 2pmET/11amPT.   Call-in numbers are on the wiki page.   I hope you can join us.

by Ian Skerrett at January 25, 2010 07:26 PM

ianskerrett


What do the following people have in common?  Ed Burnette, Linda Watson, Alain Magilore, Chris Aniszczyk, Kimberley Peter,  Tim Schindl, Ed Merks, Dainel Megert, Remy Chi Suen, Eric Rizzo,  Nick Boldt, Paul Webster,  and Benjamin Cabe.

Or the following products: Gumtree, Lombardi TeamWorks, RadRails, BEA Worksship Studio, Jigsaw Interactive, PSICAT, Tibco Business Studio, eclipse-cs Checkstyle, QNX Momentics, JPMorgan Chase, Wind River Workbench, EclEmma, Cyrano, XMIND, MyTourbook, Instantiations WindowBuilder Pro, Acceleo, ProSys mBedded Server, ModuleFusion, CHord Scate Generator and Apache Directory Studio.

Answer:  They are all past winners of an Eclipse Community Award.  Since 2006 we have recognized some of the leading individuals and products that make Eclipse a great community.

At EclipseCon 2010, we will once again announce the winners of the Eclipse Community Awards.   Nominations for both the Individual Awards, Project Awards and Technology Awards close end of day Friday, January 29.  We already have great  individuals, projects and products nominated but please take the time now to recognize who you feel has made a difference this pass year.

by Ian Skerrett at January 25, 2010 03:30 PM

Brooke Kuhlmann

Firefox 3.6 Extensions

Firefox Logo

So Firefox 3.6 has been released and is ready for download. With it comes the challenge of determining whether some of your favorite extensions still work and, if not, what the alternatives are. Luckily, in my case, this version release didn’t cause too much trouble. Here are a few issues I ran into along with their solutions in case it is of interest:

  1. Easy Drag and Go - I really love the ease of being able to drag links on any page and have them open in a background tab. Unfortunately, this extension no longer works. The equivalent is QuickDrag.
  2. Obtrusive JavaScript Checker - I really hate obtrusive JavaScript code. It is bad coding practice, a maintenance nightmare, and truly ugly code to read. This tool helps detect and quickly flag web pages that are bad. Unfortunately, this extension has been broken for some time. The alternative is the Inline Code Finder extension for Firebug which is a much better solution overall.
  3. Dust-Me Selectors - This was a cool tool for detecting what CSS code is being used or not used on a web page. I like having it around to keep my CSS code tight. The equivalent to this tool is CSS Usage (a Firebug extension).

For a list of all my favorite Firefox extensions or Firefox related info in general, check out my Firefox page.

by Brooke Kuhlmann at January 25, 2010 01:10 PM

Bjorn Freeman-Benson

I'm a Candidate for Elected Committer Rep

Like Zaphod Beeblebrox, I'm the candidate you want to vote for. You've (probably) read my blog and you know that I believe the Foundation should be doing a lot more for the committers, especially the independent and small company committers. I want the Eclipse Foundation to provide value for the long-term and I, and others, believe that to do that, the Foundation has to change. I want to be your voice in that change.

I'm sure there will be many solid candidates running for the three open committer rep positions (the list won't be announced until Feb 3 and I have no inside information), but here's why I think you vote for me Feb 22-Mar 12:
  1. I've been on the Board before and I know how it operates. Even Mike said that I was one of the most effective Board members during my previous term. I'm confident that I will be one of the most effective members again. You want an effective representative.
  2. I've been on the inside of the Foundation and I know how it operates. I know the right questions to ask to make sure that the committers are getting the straight dope and the appropriate resources. If you've seen any board at work, you'll know that management tailors its presentations to present the best picture and thus without deep knowledge of the inner workings, board members are handicapped in their inquiry and oversight. My inside knowledge will eliminate that problem for, you, the committers.
  3. I've proposed specific reforms that will dramatically improve the situation for committers and contributors, e.g., moving the IP burden from the producers to the consumers (April 2009), and a less constrained "what it means to be an Eclipse project" (January 2010), and many others. I will push for significant reforms for the committers and contributors: especially you smaller, independent and non-corporate committers.
  4. I will advocate for a larger percentage of the Foundation budget providing direct value for the contributors. There are many ways that the Foundation could help the projects without directly hiring developers. For example, the Foundation should have someone actively helping each project enable and encourage community contributions (setting up processes, writing "quick start" guides, recruiting up bug triage volunteers, etc). And the Foundation should have a wiki-editor to curate the Eclipsepedia and make it into something we can be proud of (Ward himself explains that wikis are best when curated) ... The ideas are endless, but they need someone forceful to advocate them at the Board.
  5. I will communicate with you. You deserve to know what's going on. Neither rain nor sleet nor verbal attacks will silence me. I will keep the committer rep blog up to date by posting after each monthly Board meeting (instead of e.g. just twice a year). I will not repeat just the party line. I will hold weekly office hours on IRC with rotating times optimized for the Americas, Europe, India, and East Asia (noon EST one week, 3pm CET the next week, 9am IST, 9am JST, and then repeat).
I'm a small-time committer, but I'm independent. The big company committers are represented by their Strategic board members, but the independent and non-corporate committers also need someone at the table. I will be your representative at that table.

P.S. If you are an independent committer but you have not yet signed a membership agreement, you'll need to do that in order to be eligible to vote. Just being an active committer isn't enough: you also need to be a Committer Member.

by Bjorn Freeman-Benson (noreply@blogger.com) at January 25, 2010 07:07 AM

Ken Walker (music)

Kuku

Kuku is from the Guinea and Ivory Coast area.  Typically it is a women’s dance performed in a circle. It is a popular rhythm played at all kinds of festivals, including full moon celebrations. I recorded this today because someone I know said they were taking some Kuku dance lessons. 6 drum parts plus some solos

January 25, 2010 01:38 AM

January 22, 2010

Brooke Kuhlmann

iPhone Home Screen

iPhone Home Screen

Its always fun to look over someone’s shoulder and see how certain technology is used so I thought I’d share my setup. In this case, I’m talking about the home screen of my iPhone since it where I keep the most trafficked applications.

Here is a break down of my home screen (left to right, top to bottom):

  • OmniFocus - Inspired by the book “Getting Things Done” by David Allen, this is the best app to implement David’s teachings perfectly via software. This app is heavily used (hence being in the first position). Sync’s perfectly with the desktop and truly is my digital brain. Well done OmniGroup!
  • Groundwork - At one point I tried to do accomplish all professional work within OmniFocus (and still do when I’m the solely responsible). The only problem is that OmniFocus is for single use and doesn’t work well in a team/collaborative setting. This is why it is handy to have Groundwork around to sync with your Basecamp setup. Perfect for checking status and not loosing ideas while on the go.
  • Nezumi - Almost all my Ruby on Rails apps are running on Heroku. This is a handy app for managing your apps while from the road. It is limited in function but having log, reboot, and console access is a nice backup plan.
  • Ego - Sounds bad but is actually quite useful when it comes to tracking Google Analytic, Feed Burner, and Twitter stats for various my Ruby on Rails applications.
  • Messages - Default iPhone app, sometimes useful. I don’t really use SMS much but keep it around since others like to communicate that way. Personally, I think SMS should die much like email.
  • Tweetie - Another app that makes managing multiple Twitter accounts easy. I use Tweetie on both the iPhone and desktop.
  • Skype - My favorite instant chat client. I use no other. Obviously, very handy to have on the phone. Also, a great way to save on SMS text costs.
  • Calendar - Default iPhone app. What can’t be done (or doesn’t make sense to do) in OmniFocus, is done here. Syncs perfectly with my desktop app. No complaints.
  • Maps - Default iPhone app. Always handy and now on the 3GS version of the phone, it does a pretty good job of keeping track of where you are in real-time.
  • 1Password - So passwords suck and just about every web site and application known to man does it their own special way. The only way to deal with the chaos is to use 1Password. I love having this on the iPhone because it syncs with my desktop client and allows me to easily cut and paste complicated 20-character or more passwords into my local iPhone app configurations or web pages. BTW, as you might have guessed, this didn’t truly become useful until Apple enabled cut and paste support.
  • Dropbox - While some people might like Evernote, I still find files and folders extremely handy. This app does all the heavy lifting of keeping my files and folders synced between all machines. Plus they give you up to 3GB of space for free. Brilliant.
  • Billings - When I was running my own consulting company (actually, I still do), this app was used a lot. I keep it around now because I like track my open source and personal project work. I’m mostly curious as to how much time I spend on things and like to know whether my speed is increasing over time.
  • AccuWeather - So far the best weather app for my tastes. Since I live in the mountains and ride a metal steed, it is wise to know what is brewing. Especially in the dead of winter.
  • Clock - It’s what gets me up in the morning. Also handy for when you are in the kitchen.
  • Calculator - For those calculations that would take too much brain power to compute.
  • Convertbot - For unit conversion calculations. Handy when cooking or in the garage. It’s also an elegantly designed application and worth looking into if nothing else to help inspire your own designs.
  • Phone - While I don’t use the phone much, it does give me access to my contacts.
  • Mail - Used often with Inbox Zero discipline. What can’t get processed immediately gets scheduled via OmniFocus.
  • Safari - Used mostly for info lookup. Always handy in a pinch and for testing your own sites, of course.
  • iPod - Besides, the OmniFocus app, this is probably the secondly most used app for constant learning. Audiobooks and educational podcasts are heavily consumed.

For a list of the apps mentioned above and other iPhone related news, check out my iPhone page for more info.

by Brooke Kuhlmann at January 22, 2010 02:14 PM

January 21, 2010

Ian Skerrett

ianskerrett


One aspect of the marketing discipline I don’t like is when marketeers spend considerable amount of time and money investing in logo designs, names, colors and tag lines.   I used to work for a company where the VP Marketing claimed the new logo and look was going dramatically propel the company to greatness.    Hundreds of thousands of dollars later the company still had mediocre products.   There are many examples of unsuccessful corporate re-brandings/re-naming of previously successful software companies; remember Inprise?  This is one area of marketing where I tend to place less importance and effort.

Given that personal bias, I come to the Eclipse logo.  If I am not mistaken the Eclipse logo has been around for 8-9 years without a lot of change.  It has done our community very well.  It is well recognized in our industry and I like it.  That being said design practices have changed and it might be time to look at ‘modernizing the logo’.

The e4 development team, specifically Susan McCourt,  got me thinking the time is right.  The e4 development team has been looking at updating some of the Eclipse UI elements but they started to realize this might start to impact the Eclipse logo.   Therefore, I agreed to look at updating the logo.

So what does this mean?

I don’t believe we are creating a new logo; we are updating/modernizing it.  The results of any update must be readily apparent that this is the logo for the Eclipse community.    We aren’t going to invest in a multi-million ad campaign to promote the new logo.  If we choose your contribution, appropriate Eclipse swag will come your way;  maybe even with the new logo.  :-)

If we are going to make the change for e4 and Helios, then we need to get it done by EclipseCon.  Therefore, I want to set a date of March 15 to conclude on a new look or decide we remain with the existing look.

For a point of reference the artwork for the current logo and the different versions is available at eclipse.org/artwork/.

As a reminder, we are not designing an e4 logo, so please don’t incorporate e4 into a new look.

Submit your suggestions, ideas and comments on this bug.

Start your artistic engines and get designing.  Your creation could be with us for the next 8-9 years.

by Ian Skerrett at January 21, 2010 08:40 PM

Tim Ellison

Oracle += Sun

Well, it took its time coming, but reports are that the acquisition has been approved by the EU today.

I expect a number of Sun employees will be opening their mailer with trepidation when they get into work this morning. Its the end of an era for a big name in the industry, but a great opportunity for a new era in the Java ecosystem.

Congratulations and good luck to all those involved.

by tim (noreply@blogger.com) at January 21, 2010 11:23 AM

Andrew Low

Free Airport WiFi

Back nearly 2 years ago I wrote about the lack of “free” wifi at the Ottawa airport, I was pleased to find out they now offer free wifi. I’m not opposed to paying for wifi access, but most of the providers charge more than I’m willing to pay.  If it’s not free then I think theStarbucks model of buy something (a coffee card) and get access is a great way to go.

As you can see from the image, there is still an optional pay service at YOW – but the free one is clearly marked.  I ran a quick speedtest that showed 186kbps down / 26kbps up – not very fast but I don’t expect much for free.  It worked well enough to check twitter and get to my web mail.

For this trip, I was headed to Florida.  The Orlando airport (MCO) also has free wifi, currently it is supported by Google through the holiday season but it is always free.  I’ve been in several US airports which also have free wifi year round, and given that you’ll likely end up waiting around for your flight having internet access is a great way to while away the time.

Ideally any location you end up waiting in for some undetermined amount of time should have (very) cheap or free internet.  My car dealership has free wifi in the waiting area, why not extend this to doctors offices, bus stops, train stations, banks, etc?  Imagine if the government decided that all of its public service centers (think passport office) would have free wifi - I’d be way more willing to sit patiently and wait.

One last note – I’d like to recommend the WiFi Get app for the iPhone/iPod Touch. I think it’s a must have app if you travel with your device.

by Roo at January 21, 2010 05:27 AM

January 18, 2010

Boris Bokowski

Eclipse Labs

Mike wrote on his blog back in December that the Eclipse Foundation is "looking at creating an Eclipse Foundation affiliated forge where projects which are based on the Eclipse platform, but are not interested in hosting at eclipse.org can run their projects."


Click on the image, but it's not an official eclipse.org Eclipse Lab!


Admittedly, this announcement was a little vague, most probably because this is part of the Eclipse Foundation's program plan for 2010, and lots of details still need to be worked out. In the comment section, Mike wrote that he is "expecting to announce this at EclipseCon in March." This tells me that there are at least a few open questions that need to be answered, or negotiations that need to take place, or else this could have been announced in detail already.

As a committer representative on the Eclipse Board of Directors, I know a little bit more (but not too much) about this, but Board meetings are confidential, for good reasons - otherwise Mike wouldn't be able to openly discuss his vision and plans with the Board, which is one of the main functions of the Board of Directors.

So let me just go through what everyone does know (or can know) so far, based on what Mike has written in his blog posting and in the corresponding comment section, with a little bit of added interpretation and speculation just because it's rumour season:

  1. "An Eclipse Foundation affiliated forge where projects ... can [be] run" sounds to me like a concrete place for project hosting, i.e. a URL like eclipselabs.org. It turns out that this domain has been registered in December by the Eclipse Foundation. My hope is that soon, eclipselabs.org can be listed in the "Specific requirements" section of this wikipedia article on software hosting facilities, as a specialized software forge for Eclipse-related open source projects.

  2. This is for projects that "are not interested in hosting at eclipse.org", and "Eclipse Labs will hopefully over time form a powerful complement to the projects hosted at Eclipse.": Sounds to me like existing projects at eclipse.org will not be affected. Instead, I hope, this will be attractive by pulling together open source projects that currently would have to be started or hosted elsewhere (e.g. at Sourceforge, Github, Google Code, ...).

  3. "There will obviously be some constraints (e.g. only Eclipse Foundation projects can use the org.eclipse namespace, and be part of the release train)": Sounds like there will be a clear distinction between Eclipse projects on one side and Eclipse Labs projects on the other side. There are many good reasons why you may want to run a project at a less restrictive software forge, for example:
    • minimal overhead to get started
    • use whatever process you like for releases, adding and removing committers, adding dependencies to other software, etc
    • no mandatory IP review
    Likewise, there are many good reasons why projects find it attractive to be Eclipse projects hosted at eclipse.org:
    • benefit from the Eclipse brand and Eclipse marketing efforts
    • use the same meritocratic principles and practices as every other project, making it easy to build trust across projects
    • approved IP cleanliness, to ease adoption by large organizations and governments
So while the "Foundation as a Service" idea is an interesting thought experiment, I think a reasonable next step is to create Eclipse Labs as a place to start Eclipse-related open source projects easily. This will establish two Eclipse-branded places for hosting projects, at opposite sides of the fast-and-loose vs. regular-and-dependable spectrum.


Yet another non-eclipse.org Lab, click on the image!


Eventually, it will become important to handle the transition between Eclipse Labs and eclipse.org. For example, a project at Eclipse Labs may want to move to eclipse.org at a later point in time when it is more mature. Anything that can be done to ease this transition will be to the benefit of Eclipse, and it may make sense that projects make the transition in several steps. For example, an Eclipse project may want to depend on software from an Eclipse Labs project, at which point an IP review will have to be conducted on the eclipse.org side. Or a project at Eclipse Labs may want to become an incubating eclipse.org project, which would mean adopting the Eclipse processes but not necessarily a full IP review until the project makes a release at eclipse.org.

I hope this was useful information^H^H^H^H^H^H^H speculation. ;-)

P.S. I have used some words of Miles Parker's excellent blog post for the reasons why you would choose Eclipse Labs vs. eclipse.org as the place to run an open source project.

by Boris Bokowski (noreply@blogger.com) at January 18, 2010 04:43 PM

Bjorn Freeman-Benson

Foundation as a Service

The assertion by Doug and Boris (and others) that soon we'll be able to create Eclipse projects in less than 15 minutes led me to the interesting discussion of "what does it mean to be an Eclipse project?" In the past, being an Eclipse project meant six things:
  1. Source repository at eclipse.org (CVS or SVN)
  2. Mailing lists, newsgroups and forums at eclipse.org
  3. Following the Eclipse Development Process (committer elections, release reviews, etc)
  4. Clearing all code through the Eclipse IP Process
  5. An opportunity to be part of the annual coordinated release
  6. A select few projects can be part of the standard distro
With the advent (soon) of the non-eclipse.org-hosted Eclipse projects, I assume that at least four of these will no longer be required:
  1. Source repository at eclipse.org (CVS or SVN) Can host a project anywhere; can use any repository technology
  2. Mailing lists, newsgroups and forums at eclipse.org Can host the community anywhere
  3. Following the Eclipse Development Process (committer elections, release reviews, etc) Can follow any reasonable open source process (I'm assuming this because the current EDP requires at least a one month pre-creation review period which is contra-indicated for 15 minute project creations.)
  4. Clearing all code through the Eclipse IP Process IP Process is optional. (again, because the IP process is slow, if one will be able to create a project in 15 minutes, clearly the current IP process will not be involved)
  5. An opportunity to be part of the annual coordinated release
  6. A select few projects can be part of the standard distro
This seems like an excellent expansion of what it means to be an Eclipse project: basically, it appears that what it will mean is "if your project is Eclipse related and open source, you can be an Eclipse project".1 At the same time, however, in certain contexts, there is value to items 1-4, so I imagine this new scheme as "Foundation as a Service", in other words, Eclipse projects will be able to subscribe to whichever of the Foundation processes and infrastructure is best suited to that project.

Perhaps you want to use the portal for committer elections: your project could do that; or your project could choose to use a mailing list for elections. Perhaps your employer requires that all the code pass through the Eclipse IP Process: your project could sign up to be one of the "certified IP clean" projects; or if you didn't feel that need at this time, your project could opt-out of that service. And so on... I imagine that each project will have badges on its project page showing which of the various services and characteristics it has, e.g., "active", "diverse", "ip clean", "well documented", etc. Some badges would be algorithmically determined (active), some by the Foundation (ip clean), and some by the community (well documented).

I think this Foundation as a Service scheme is a great way to expand and extend the Eclipse ecosystem. It allows the Foundation to do that which the Foundation is good at while at the same time broadening the definition of what it means to be an Eclipse project.

1 I have no visibility into the details and thus I'm probably wrong in one or more or all aspects of this idea.

by Bjorn Freeman-Benson (noreply@blogger.com) at January 18, 2010 05:30 AM

January 15, 2010

Ian Skerrett

EclipseRT


This has been a really good week for the EclipseRT runtime strategy. There were three announcements that indicate we are making good progress for establishing Eclipse as a community for creating innovative runtime technology based on OSGi.

1. Project Virgo was announced and proposed this week by SpringSource. As Mike and Adrian have described, this an important step towards making it easier for enterprise developers to adopt OSGi and EclipseRT technology.  Project Virgo plus Project Gemini (proposed by Oracle and SpringSource) bring to Eclipse all of the key reference implementations for the OSGi Enterprise specifications. If you consider the fact that Jetty is already an EclipseRT project, then the runtime story is looking really good.

2. Yesterday, Heiko Seeberger from WeigleWilczek proposed to bring the existing ScalaModules project to Eclipse. I believe the future of OSGi needs to include support for other languages.   Right now, OSGi is too tightly tied to Java. I see this support for Scala and the e4 work on JavaScript bundles as an important part of the future for EclipseRT and OSGi.  I would love to see support for other languages at Eclipse? Ideas and contributors are welcome.

3. Jeff McAffer announced his Equinox and OSGi book has been sent to the printers. I realize there are other OSGi books that have been published. However, my feeling is we need more.  We need to make it easier for developers to understand and adopt OSGi, books are a key tool to make this happen. Congrats to Jeff, Simon and Paul for adding to their book to the mix.

Three key announcements that point to nice momentum for EclipseRT.  I also think there are more good things coming.    EclipseCon will be an exciting time for EclipseRT and OSGi.

by Ian Skerrett at January 15, 2010 02:10 PM

January 12, 2010

Mike Milinkovich

One Big Step for EclipseRT

The future of Java technology in the enterprise rests with its rapidly evolving ability to regain its original promise of lightweight, flexible and dynamic application development and deployment. In other words, the faster Java gets to the stackless stack, the brighter its future will be. As James Governor said in his seminal article, “component-based development is a common idea, but component-based production is a whole different ballgame.” That has been the vision of the EclipseRT project since its inception: the ability to support deployed runtimes which use only those components actually required by the applications at hand. This is an inherently service-based approach, and one which has seen rapid adoption by enterprise Java and Enterprise Service Bus vendors.

SpringSource has long been one of the most visible and vocal leaders of lightweight, componentized Java runtimes. Today, they bring that leadership to Eclipse. The Virgo project proposal brings to EclipseRT project a key component (no pun intended) required to provide a complete offering of OSGi-based runtimes from the Eclipse Foundation: a complete module-based Java application server designed to run enterprise Java applications. Based on SpringSource’s dm Server, we believe this project will increase the momentum of the enterprise Java developer community under the Eclipse umbrella.

The past couple of years, “establish Eclipse runtime technology as the leading open source runtime platform” has been on the top of the list of the strategic goals of the Eclipse Foundation. The recently announced Gemini project — and now Virgo — go a long way towards realizing that vision.

You can read more about Virgo on Adrian Colyer’s blog post.

[Revised to fix broken link to Adrian's post.]

by Mike Milinkovich at January 12, 2010 01:16 PM

January 11, 2010

Bjorn Freeman-Benson

Tim Bray on Missing Huge Opportunities

Tim Bray writes:
"The community of developers whose work you see on the Web, who probably don’t know what ADO or UML or JPA even stand for, deploy better systems at less cost in less time at lower risk than we see in the Enterprise. ... More important is the culture: [with] development cycles [no] longer than a single-digit number of weeks."
The Foundation needs to both enable, but also to actively lead, the community toward this kind of development... It should take no more than 15 minutes to start a new project (or new projects will go to github). It should take no more than 15 minutes for a newbie to get started contributing to a project (or people won't join). It should take no more than a week to finalize a release (or we'll be left behind). Etc... There's a lot of good technology at Eclipse and a lot of good people in the community, but the software world is going through one of its regular massive waves of change, and the Foundation processes are contra-indicated for being part of that wave. I want to see those processes changed so that the greatness that is Eclipse can participate in the change that is occurring.

by Bjorn Freeman-Benson (noreply@blogger.com) at January 11, 2010 06:00 AM

January 10, 2010

Ken Walker

Winter Bike Commuting

This is the first year I’ve just kept biking once it started getting colder and snowier. Pete, on my team, has been doing this for a few years and I decided to keep my bike fitness I’d do it as well. I’m also taking an Off-season cycling class at the RA centre which started focusing on core strengths and is now heading into pushing the aerobic capacity we’ve built up. Biking through the week is critical as just taking the 1 class per week was not going to cut it and I’d rather be on the road that sitting in a gym.

So what was required? Well I have a mountain bike I bought more than 14 years ago at Pecco’s bikes in Ottawa. I got one of their not so great frames but XT components and V brakes (very new at the time). I’ve beaten the snot out of this bike, really! I moved onto two subsequent full suspension mountain bikes (one was stolen) but have always had this one around as a commute without worry bike. The frame not being well painted was quite pitted and chipped so the bike looks like something not worth stealing. Sounds like a perfect winter biking solution.

Where did I start? I bought some Nokian Mount and Ground W tires (check down on the link for description of these tires) from my local Ottawa South bike store The Cyclery. These have 160 carbide studs and are specially formulated for winter riding. I also went to Canadian Tire and bought a balaclava and some snowmobiling mittens. These have now been labelled the Mutant Ninja Turtle gloves since they have two fingers instead of 4 to give dexterity but keep the fingers warmer.

The rest of the equipment I already had because I did ride in the fall and in the rain. So the next trick was layering my clothing and deciding what to wear based on weather reports. I started out dressing really warmly, two long sleeve layers under my biking gore-tex raincoat. The raincoat doesn’t really offer any kind of insulation but since it’s gore-tex it keeps the wind and sleet off. It also has a back zipper and arm pit zippers. I have the matching gore-tex cycling pants and wear them overtop of a pair of Chlorophylle Diversity Pants (I guess I’m diverse enough now). I have an insulated headband, a tuque and the balaclava I mentioned. I also have some excellent Descente Wool Socks which are insanely warm. For shoes I’m just wearing (destroying) my standard hiking shoes (not boots), nothing overtop just the shoe. I have some rain booties but they just don’t fit overtop of the hiking shoes, they’re meant for thinner cycling shoes.

The layering is really important and depending on the temperature I have to dress a bit warmer to ensure that I actually heat up. After that period I usually unzip the pits of my jacket and maintain a core temperature that’s comfortable and not too sweaty. For the legs I have discovered that if it’s warmer than -13˚C and not too windy I don’t need my gore-tex pants nor do I need to wear the mutant ninja turtle mitts, just my insulated gloves. Also the balaclava has only been needed a few times, it usually just makes my head too hot.


Lighting: Given that the ride home is always in the dark I like to both be seen and be able to see things on the roads before I hit them. For the front I have an excellent LED light from CygoLite the Mitycross. This is about a 30 watt equivalent and has a flashing mode I use in the morning. I also have this excellent rear light that’s like a lighthouse, the Planet Super Flash rear light. Most of my clothing also has reflective strips as does the back of my pannier and I just added another light to my rack which I won’t have flashing, just on.



Maintenance, maintenance, maintenance.... This cannot be underestimated when winter biking. I now have put aside 2 hours per weekend to clean up and lube and fix my bike. Clean up means just getting the crap off of everything but not actually washing it as I have nowhere to do that. I do a thorough chain cleaning with a tool and brush everything off as best I can. I’ve already installed new teflon coated cables for my rear gears as there were constantly sticking. I somehow ripped the stem off of a presta tube and had to change that. At work, luckily I can bring my bike inside and let the snow melt out of the inside of the gears. Everything on the bike not already rusting is certainly rusting now. Ottawa uses a lot of salt on the roads.

Traffic: So there are certainly no bike paths open at all and Ottawa has done a piss poor job of even having bike lanes on the roads in the summer. There are NO East/West bike lanes on either Carling or Baseline. Carling was recently all fully resurfaced and given it is a 3 lane road that doesn’t often have 3 lanes of traffic ever, I was hoping they’d reduce it to 2 wider lanes and a bike lane. No such luck. Even on Alta Vista where they have bike lanes AND they claimed that they were full season lanes, at the beginning of 2010 they had still not cleared the snow banks covering the bike lanes. This city is so screwed and backwards. I’ve volunteered for the Roads and Cycling Advisory Committee however it looks like my term will not start until November 2010 as the docket is full and people need to be cycled out so to speak. The drivers have actually been quite good, much better than summer even. I haven’t yelled at anyone or so much as waved a fist at a moron yet. In the summer that happens weekly even though I’m on the bike path most of the time. Perhaps, I’m hoping, there’s a bit of respect for freezing my ass on a hunk of metal (actually I’ve been warm all along but don’t tell them that). So if all goes well I hope to write a letter to the editor near the end of the winter and thank the people who commute like I do along my route and have given me a wide berth. Optimistic eh?

I still track all my commuting on my trusty Garmin Edge 705 which hasn’t frozen up yet. Ha, what has frozen up is my water bottle. I usually put warm water into it but by the time I’m at work it’s all slushy.

Coldest ride thus far:
Dec, 18th, 2009 - -22˚C

January 10, 2010 06:18 PM

January 07, 2010

Mike Wilson

Classic arcade games aren’t.

At CES, Microsoft announced “Game Room for XBOX 360″, which is purported to “recreate the old school arcade experience for you (and your avatar)”.

Game Room presentation
(Image courtesy Engadget)

For Pete’s sake people, can we please stop finding yet another way to re-deliver games that we got bored of twenty years ago. If we ever want the world at large to treat games like a valid art form, we’ve got to stop glorifying trivial gameplay and graphics so stupid-ugly that they can be implemented by emulating the whole bloody machine in JavaScript.

by McQ at January 07, 2010 06:41 PM

Tim Ellison

Dear Santa ...

Thanks for the socks and all that, but my G1 is nearly 18 months old now and I was thinking about getting a Nexus One.

The first problem was that trying to go through the order process using FireFox doesn't seem to work.

Every path after the 'Continue' button results in:I had assumed that the system was busy, but the problem lasted a long time, so I tried with IE, and hey presto it works.

The next 'problem' is that the phone is sold via the US, and as Google are right to point out, that means the sale incurs an import duty when it comes into the UK.

Rather than stumping up the $529 (~=£330) our American friends pay for the phone, delivery included, I was now looking at...

$529 for the phone
+ $19.99 for a UK charger
+ $29.65 shipping

with UK Sales Tax on the total at 17.5% and a 6.5% import duty on all that, which makes it ~$725 (i.e. ~=£453). Ouch.

For the difference I can almost fly to the US and pick it up myself!

by tim (noreply@blogger.com) at January 07, 2010 04:08 PM

Lucky New Year

I went to the Google home page today, and clicked on the "I'm Feeling Lucky" button without anything in the search box.

The result was a page with countdown in seconds,


a quick arithmetic shows it's counting down to the New Year. So somebody is expecting 2010 to be lucky!

UPDATE:

Now the New Year has arrived, the same empty Lucky Button press gives some 'fireworks'!

by tim (noreply@blogger.com) at January 07, 2010 10:26 AM

January 05, 2010

Bjorn Freeman-Benson

January 03, 2010

Darin Swanson

Reason to Run 2010


Reason to Run #187: Having a targeted goal is a great way to succeed with a New Years fitness resolution.

Reason to Run had an amazing year in 2009. It was our first year organizing races and we met so many great people. With the partnership of our wonderful sponsors, we were able to raise over $17,000 for the charities associated with our events: the Micah Project, Alex Martinez Memorial Fund, CERN, Caring Bridge and the Catalyst Partnerships.

In April 2009, we had the Spring Burst 5k and 10k, with Pace of Courage 5k and 10k in August and then we finished the season with the Catalyst Challenge in October.

These three events are back for 2010, so add them to your race calendar and come out for more fun with Reason to Run: http://reasontorun.com/races.html

The first event of the year is the Spring Burst 5k and 10k: http://reasontorun.com/springRaces.html and registration will open in early January.
Join us on our Facebook event for the Spring Burst and invite your friends to share in the excitement leading up to April 10th: http://www.facebook.com/event.php?eid=214848049130

Happy New Year!!
Darin and Trisha

by Darin Swanson (darin@reasontorun.com) at January 03, 2010 09:44 PM

Bjorn Freeman-Benson

Trade Association Revisited

As a follow-up to "It's a Trade Association", I thought I'd explain why I conclude that the Foundation is not an open source entity.

I start by asking if you consider Microsoft an open source entity?

Probably not, in spite of Microsoft providing open source project hosting at codeplex.com. Similarly, although Google is very open source friendly and provides open source project hosting at code.google.com, it too is not an open source company1. The Linux Foundation is clearly an open source organization. Red Hat is widely acknowledged to be an open source company even though it doesn't host the Linux project. And so on... Thus clearly "X hosts open source projects" is not sufficient to qualify X as an open source entity, but what is sufficient? It seems that:
An open source organization or company is one that contributes a significant number of developer-person-hours to open source projects.2
Microsoft does not contribute significantly to open source projects; Red Hat does. The Eclipse Foundation does not; whereas the Eclipse-centric companies do (IBM being the star contributor). Thus the Foundation itself is not an open source organization: it's a trade association of open source companies, and as a trade association it undertakes activities to support those companies (such as mailing lists and source code repositories).

An identical relationship can be seen between, for example, the Seattle Public Library and the Friends of the Seattle Public Library. The Seattle Public Library does all the real library work: it has the books, the buildings and the librarians; the Friends "support library programs, ... promote community awareness of libraries, advocate for robust city funding of The Library, ...". Nobody mistakes the Friends for the actual library, but everyone acknowledges that the Friends play an essential role in maintaining the community around the library. The Eclipse Foundation is the "Friends of the Eclipse projects": it doesn't do the actual project work, but it plays a role in maintaining the community around the projects.

1 Some people claim that Google is an open source company because it is the world's largest contributor to open source projects, and I'm fine with that position as well: it simply reinforces my point that what makes a company or organization an open source entity is the contribution of developers, not the hosting of projects.

2 One could also apply other criteria, such as "primary business success depends on open source" but "supplies developers" seems to be the primary characteristic from which all others derive.

by Bjorn Freeman-Benson (noreply@blogger.com) at January 03, 2010 12:51 PM

January 02, 2010

Mike Wilson

Review: Uncharted 2: Among Thieves

uncharted2Uncharted 2: Among Thieves is the sequel to the 2007 game Uncharted: Drake’s Fortune. At it’s core, Uncharted 2 is an “action adventure” game — think Tomb Raider — with all the standard features: run and gun levels, platforming, environmental puzzles, etc., but what really sets this game apart is the cinematic quality of the ultimate experience.

To give you some idea of what I mean, I can tell you that I happened to be watching the latest Indiana Jones movie on the day after I finished Uncharted 2. Hands down, the game beat the movie at every level — action, story, characters, even emotional impact.

This is a good game. It’s definitely the best PS3 game I’ve played in 2009, and I’d put it up with the “greats” like System Shock and Mass Effect in terms of how much I enjoyed the experience. If I had to complain about anything, I’d say that the strength of the story ultimately limits the replayability, but even at that, I suspect that I will play it again at some point.

Click the picture above to get to the official game site. If it doesn’t start automatically, check out the “E3 Trailer” to see what you are getting yourself into.

Summary: Get it.
Rating: 9.5/10

by McQ at January 02, 2010 09:08 PM

December 31, 2009

Andrew Low

Earning Trust for Your Email Server

I host my own email server, this in itself is a very odd thing to do in this day and age.  If you want email to come from your domain, Google offers this for free and provides the same interface as Gmail. If you insist on running your own mail server, then setting it up to use your ISP as a smarthost is the easy way to go (very easy with Ubuntu), of course I didn’t take that path.

As an aside, setting up a mail server that uses fetchmail to gather email from the various accounts you have, and using a smarthost configuration to send email does give you most of the benefits of running your own mail server with very few headaches.  The reason to do this might be that you don’t want to trust Google (or someone else) to hold all your email, and/or you don’t want the individual PCs in your house to be the storage for your email (hard to migrate to a new machine, recover from disaster).  This is how I started down the path of running my own true email server. [I keep thinking that someone should create an easy to install NAS add-on that provides exactly this type of email server]

Ok, maybe you don’t want to run your own email server but you’re interested in knowing what is involved… Having a static IP address is handy, mostly to save you from DNS issues.  While you can manage to have a domain name tied to a dynamic IP, many blacklists include the IP ranges used by ISP for dynamic addresses.  Of course you need a domain name, and a DNS server too.  You might also want to consider a secondary MX record, in case your connection goes down.  You’ll also want to check that your ISP isn’t blocking port 25 outgoing, and having a valid reverse DNS is important too.

So you’ve followed the Ubuntu documentation and setup a mail server, great.  Assuming your IP address is “clean” (ie: not on a blacklist), then you can probably send email just fine.  Until you start hitting problems where spam filters have taken a dislike to your system – in my case it was Rogers (email provided by Yahoo) that treating my outgoing as spam.  One solution is to have the recipient add your email address to their address book so they do still get to see your email.  It may still get tagged as [Bulk] but it won’t get lost.  This isn’t a great solution for someone new you want to contact, or a friend who isn’t terribly technical.

It turns out there are some additional measures you can take on the email server side to add more trust.  There are three I’ve implemented:

All of them rely on the same basic ‘trick’ of adding a TXT record to your DNS information that serves to validate the email.  This works for the simple reason that spammers tend to use botnets made up of machines without valid DNS records.  SPF simply is a declaration that the IP address sending the email is allowed to send email for the specified domain.  DKIM is an updated version of DomainKeys, but both can be used concurrently and some systems only know one.  Both DKIM and DomainKeys have the email server sign the email with a secret (private) key, and the DNS record has a public key that will validate the signature.

After implementing all three, it turns out Yahoo was still tagging my email as spam.  Very frustrating.  One solution I did consider was to avoid the problem entirely and selectively smarthost email going to rogers.com (and yahoo.com, etc).  In the end, it turns out that Yahoo maintains their own blacklist of sorts and you can request to be removed.  To check this, you need access to a yahoo email account that you can send test messages to.  By examining the header you will see X-YahooFilteredBulk if your IP is on their blacklist, this appears to be independent of the status of your SPF/DKIM/DomainKeys authentication that should show as a pass.  The solution is to fill in the Yahoo form, and be persistent.  Much of the form will not apply but you do need to fill it in with something reasonable (and valid).  After a couple of exchanges over several days I was rewarded with this reply:

While we cannot fully exempt your mail server from our SpamGuard
technology, we have however, made appropriate changes to this IP address
in our database. This should help with delivering mail to the
appropriate Yahoo! folders.

Now email sent to yahoo.com is not tagged as spam or [Bulk] – I did a little victory dance once this happened.

The remainder of this post goes into some of the details of getting the three (SPF, DKIM, DomainKeys) implemented.

(...)
Read the rest of Earning Trust for Your Email Server (341 words)

by Roo at December 31, 2009 03:49 AM

December 28, 2009

John Duimovich

Slideware


You take your most precious things, and you put em on some cheap slippery plastic and hurl them down snow covered hills until they scream with joy (and then beg you do it again and again). You only stop after two face plants, one noggin with ice chunk collision and a busted sled from a near miss between a 200 lb man and a 5 year old boy.

Don't worry, it's a "mom approved" activity but if the moms were not actually there, dad would have sent them all down the steep side. (which is great ! btw)

by John Duimovich (noreply@blogger.com) at December 28, 2009 07:41 PM

MacGyvered

Happens to every phone I've ever owned, eventually the charger slot requires manual intervention to support charging. It's those darn custom super small charger plugs which can't withstand the eternal plug-unplug cycle. I suspect they are designed to fail during the holiday season when getting a new phone is the last thing I want to go out and do.


Meanwhile, MacGyver lent me some rubber bands and suggested I skip the fruits and go robot.

by John Duimovich (noreply@blogger.com) at December 28, 2009 05:08 PM

December 26, 2009

John Duimovich

173 years of blogging (1926 - 2099)

Google thinks I've been blogging for 173 years. I know this because on a regular basis, the google bot fetches blog entries from far past and future dates. The Google bot is slowly working it's way through time, month by month (Google is just being very thorough).
I noticed this in my web server logs (you don't scan your logs once in a while ?). I found multiple entries generated by fetches by the google bot. I saw a bunch that looked like this.
"GET /?month=11&year=2039 HTTP/1.1"
"GET /?month=12&year=2039 HTTP/1.1"
"GET /?month=1&year=2040 HTTP/1.1"
The earliest year was 1926 and I was about to break into the Y2.1K on the high end. I was amused at the time, Google was proactively fetching future blog entries in eager anticipation of their high quality and entertainment value. I fetched one of the future date pages and sure enough, a valid page is returned with no errors displayed and the calendar shows the correct future month and a link to previous and the next month as well. Ok, that explains why google is crawling forward in time - my silly blog software is publishing future links. I checked my front page and was surprised to see the link to the future date was not there - apparently the software is intelligent enough to not link into a future month if you were on the current month. It's just not smart enough to not link to future dates if you happen to fetch a future month. Sounds like a simple fix to me.
But we do have a mystery - how did google get that first link into the future if it's not published on my main page ? I first assumed that google was smart enough to know how to manipulate patterns like "year=2009" and do an increment to "year=2010" and walk through the entries that way but that's just asking for bad links so I doubt it. I think it's more likely that was is a timing window - daylight savings time or possibly when I moved from the old server HW to the new server, that a date mismatch caused a future link to be generated which started google on the path forward (and backwards). It does make you wonder, what do these guys do ? They generate future links from year to year and I suspect they (and many other calendar web pages) will have Google and other sites fetching pages through time.
So, Google follows these links into next month and prev month and by the time I caught up with it, 173 years of blogging had passed. For reference, in the full log set (6 months worth), there were 5300 GET's with past or future dates.
I decided instead of waiting to see "year=3001" in my blogs at some point, I should fix the code. Should be easy right ? Well, yes it was it was so easy I fixed it three times. I check the main page and see a juicy looking "calendar.js" script reference so I grab that file. Take a couple peeks and I notice the code has a check for the current date and doesn't insert a future link if you are in the current month (m==currentMonth && y==currentYear). Clearly only excluding the current month is bogus. I tack on the obvious (y > currentYear) and think to myself "that was easy". Time to test - and of course the change has no effect. I futz with it a few times and nope, the changes have no effect. I hack in some obvious visible changes "December" -> "HACK DECEMBER" so I could see it and know I was in the right file. Nope, this code is not running.
So, grep around (again) and voila ! find a *second* file that looks "calendar like" but not called calendar (hidden code crafty!) and again - I find the exact same code, apply same changes and retest. Nope - no effect. This is getting silly. So, first - to prove the files are the real ones, I use the old trick - rename the two files, lets be sure they are being used at all, rerun the tests - nope - deleting the files has no effect. Obi-wan speaks to me These are not the files you're looking for.
Grep around some more, and hey, even more calendar code ! (must have been a 3 for one sale), and voila!, the same code there too, with a incorrect comment that says "prevent future dates from being displayed" and of course the exact same bogus code. ( kind of like shipping 3, 4, 5 or more JVMs in your product (grrrr), the more the merrier of course, but updates may require a visit from Obi-wan to guide your choice )
Third times a charm, and the link into the future is gone, so next time Google grabs the last cached link, it will stop the eternal march into the future (and it did). I also fixed the eternal past links, choosing an arbitrary cutoff so that Google doesn't march it's way down to 1/1/0001 or something since those old blog entries are soooooo embarassing.




by John Duimovich (noreply@blogger.com) at December 26, 2009 01:50 PM

December 25, 2009

Ken Walker (music)

Sorsonet

Sorsonet is a mask dance from the Baga ethnic group from West Guinea, Boké region. There’s one mistake on the call in that I missed an open tone (well at least that mistake ;-). It has two balafon parts as well. Enjoy!

December 25, 2009 06:11 PM

December 22, 2009

Mike Wilson

E-book Readers

Here’s a quick link-of-the-day with MacWorld’s take on an a number of the currently available e-book readers:

Review roundup: E-book readers

Personally, I’ve tried all of the Sony’s, the Kindle 2, and a couple of other e-ink based ones. In all cases, I found the screen flash on page turns quite frustrating. Ken tells me that you get used to it, but for me the iPhone still bests all of the other devices, as long as you aren’t trying to read PDFs. (And that’s not just because I’ve always got it with me.)

What I really want is an Apple tablet with a Pixel Qi-like display.

by McQ at December 22, 2009 06:44 PM

Avatar

Ok, so the story isn’t deep — seriously, the guy beside me in the theatre brought a four year old and a six year old and despite the disturbing parenting choice they both “got it” just fine.

And even though the er… avatars didn’t quite make it out the other side of the uncanny valley, they were close, oh so very close. I can honestly say that there were many scenes where it never even occurred to me to think about how long it would have taken to render.

You owe it to yourself to go see this in 3D. Even if it doesn’t seem like your kind of movie, the sheer artfulness of it is enough. Afterwards, leave a comment. There are things worth discussing.

Update: There are likely to be spoilers in the comment stream, so if you haven’t seen the movie yet, don’t click through.

by McQ at December 22, 2009 06:32 PM

Ian Skerrett

ianskerrett


The EclipseCon Program Committee will be hard at work over the holidays.   They have until January 9 to review 430+ submissions and select about 150 talks for the final program.  Given the success of my recommendations for the Early Submissions, I thought why not give them a helping hand.

My vote goes to having lots of case studies at EclipseCon.  I enjoy hearing how people use Eclipse for building cool applications.  Therefore, here are the case studies I found in the EclipseCon submission system:

Creating Dynamic Enterprise Applications with Eclipse RCP – Cerner Healthcare is using RCP to build their next generation healthcare software. What is one of the hottest IT topics in the US:  Healthcare and a major player is using Eclipse RCP.

Case Study: SRM 2.0 – A next generation shared resource management system built on OSGi and Spring DM – St Jude Hospital has create a lab management system using OSGi and Spring DM. Looks like they migrated from JavaEE to the new OSGi architecture. I need to see this presentation!!

Modeling the World – If you want to move an oil rig, then model it first – Modeling the movement of oil rigs at Marintek

My Unmanned System is Eclipse Powered – unmanned surveillance systems for things like border security.

OneBench Reloaded – Pushing the (OSGI) Modularity Story in an Enterprise-wide Rich Client Stack
– JPMorgan is a long time user of Eclipse RCP.  OneBench is a great case study on the power of RCP and I’d love to hear the update.

Use Xtext to Automate PBX Stress Testing – An interesting use of XText; DSLs and XText have a huge amount of interest.

Eclipse Modeling at Deutsche Boerse AG – More XText goodness, this time at the German Stock Exchange.

Practitioner Report: Migrating a large modeling environment from UML/XML to GMF/Xtext – Okay, another XText case study. A German billing center for pharmacies migrations to GMF/Xtext.

SDOL an Exclipse-Based DSL – State of Montana using Eclipse to create a DSL. Did I mention DSL and Eclipse is hot?

Eclipse meets Systems Biology – Using Eclipse RCP technology to predict the effects of drugs and mutations.

Eclipse to the Rescue – This case study was one of the early bird selection, so we get to see some pretty cool RAP and RCP applications for doing emergency planning simulation.

CRM for Mobile Customers With Eclipse – Besides being a cool RCP app in a cool space, they are using EMF, BIRT, p2, and maybe b3. Looks interesting.

Elexis – Private Practice With Eclipse – RCP application for patient records.

My apologies if I have missed some case studies.  Please feel free to add them as a comment.

EclipseCon PC no need to thank me.  You have a tough job, since I know there are lots of other really interesting submissions but please make sure I get to see some of these case studies.

by Ian Skerrett at December 22, 2009 03:16 PM

December 21, 2009

Bjorn Freeman-Benson

Declining Resources on the Eclipse Core

To provide some numbers behind my concerns about the lack of continuing investment in the Eclipse core, I spent some time analyzing the commit log data. At the recent member presentation, Donald said that there are 935 committers at Eclipse (slide 7). That's a good number because it demonstrates a broad set of interests at Eclipse, but I'm primarily concerned about the Eclipse core (the Java IDE plus Equinox) - what are the committer numbers for that essential-to-all-of-us core?
  • There have been a total of 1,159 unique committers to all Eclipse projects since 2001.
  • Of those, only 227 (19%) have ever worked on the Eclipse core.
  • Of those, only 48 (4%) are active today.
  • And that 48 represents an almost 20% decline from the high in 2004.1
So, the Eclipse core is the base of everything that we users use, and the base of everything that the ecosystem sells, and that core has less than 5% of the total committers - that's not a good situation by itself. And then that less than 5% has been declining for years - that's doubly not a good situation.

The Eclipse user base and ecosystem are expanding, but the all-essential core is not. The unsung heros working on the core are not getting the help that they need to continue doing the fantastic things they've been doing for all us. The Foundation needs to lead the way in convincing all the strategic members to put full-time resources into the core [1]. And it needs to lead the way in lowering the barriers for casual contributions to the core [2]. That is what I'm agitating for... That and world peace.

1 If you consider the core to be just the Java IDE, then the number-still-active is lower and the decline is larger: 25+%.

by Bjorn Freeman-Benson (noreply@blogger.com) at December 21, 2009 05:00 AM

December 20, 2009

Andrew Low

Nokia 5310 Review

Well way back in March of this year I got myself a new cell phone, the Nokia 5310.  Now that I’ve had it for a good part of the year, it is overdue for a review posting. Many of my friends have iPhones, BlackBerries, or Android (HTC) phones – giving me some serious gadget lust.  I’ve read other reviews of the 5310 which put it in the smartphone category, and while it is a good phone and has reasonable performance and functionality – it isn’t in the same league as an iPhone.

Let’s start with what I like a lot about the Nokia 5310: Battery life – I charge my phone once a week, Sunday night. Granted I’m not a heavy user of the phone: I’ll log 15mins of calls during a given week, a few text messages, and this week I listened to MP3’s on it for an hour – all on one charge.  My number two feature is the form factor, this phone is small.  Many do not like the candybar style – but for me, I find it works.  Up third is voice / call quality.  My experience with Nokia phones is that they deliver great voice quality, and the 5310 has not let me down.

Ok, on to a few negatives.  The camera is pretty poor, it feel slow and needs bright well lit scenes to take pictures that don’t totally stink.  The display while nice and readable, even in full sun – seems to have two small dust leaks in the bottom corners.  The result of the dust leak is visible in the photos of the phone, it doesn’t impair day to day use but it is sort of annoying.  That’s it for the negatives really, I might complain a little about the buttons not being very positive feeling but I’ve gotten use to them.

The pictures above shows my iPod Touch and the Nokia 5310, it really puts into perspective how small this phone is.

Other features that I’ve found useful: Bluetooth support, both headsets and data connectivity over bluetooth.  This allows me to synchronize the address book with my computer and move pictures, music, or MIDP (java) to and from the phone.  There is also a USB cable interface (good for firmware updates).  It has a standard 3.5mm headphone jack, and it does support MP3 playback (the quality of the music playback was very good).  There is a speaker on the back, and it is quite loud (great for speaker phone calls).  It has a micro SD slot, and I’ve got a 1Gb card in there but it will support up to 16Gb.  The screen resolution is 320×240 and as I mentioned above, it is quite readable in even full daylight.

In summary – it a great little phone.  The battery life is awesome and let’s me taunt my iPhone friends.  I don’t think any of the carriers are offering these anymore, but you can find them used for $120-$175 quite easily (in fact, I purchased mine used).

Now you might have noticed the Apple logo on the screen in the first picture, there is a story behind that.  This specific Nokia 5310 is unlocked, and unbranded (some say debranded).  Read on for the gory details..

(...)
Read the rest of Nokia 5310 Review (679 words)

by Roo at December 20, 2009 04:05 AM

December 18, 2009

Mike Wilson

Afghanada

I continue to be thankful that we are lucky enough, as Canadians, to have access to the best-of-breed, thought provoking, genuinely compelling content from CBC Radio One. I have talked about their shows both positively (e.g. Ideas) and negatively (e.g. Wiretap) before, and now I’d like to draw another excellent program to your attention: Afghanada.

Afghanada is a radio drama series about the day-to-day life of a small group of Canadian soldiers stationed in Kandahar Province. The writing is strong, with a cast of characters that truly feel like living, breathing individuals put in frequently hellish situations. Having never been a soldier, I cannot say whether the portrayal of these people’s lives is accurate, but I can say that the power of this show has made me feel more compassion for the individuals in our armed forces than all of the traditional news reporting put together.

I am particularly pleased that you can now get all three seasons worth of Episodes of Afghanada via iTunes. Season one is an awesome deal, at $12 for 22(!) half hour episodes.

I highly recommend this series to anyone who enjoys well acted, radio programming.

(and say “Hi” to Coach for me)

by McQ at December 18, 2009 08:20 PM

Spammer creativity

It’s fascinating.

I was reviewing the comment spam for this blog, or rather I was reviewing the ones that didn’t get automatically caught — there’s always a couple. This time, there was one reply that genuinely looked like it could have been legitimate. The content was apropos of the original post, if not directly focused on it; it was clearly not machine generated (i.e. no “dissociated press” style errors); and the tone was heartfelt.

The only things that seemed out of whack were:

  1. The text was written in a way that it could apply to a fairly wide range of original posts.
  2. There was a website link attached to it that seemed a bit dubious.

I really couldn’t definitively cast it as spam. But, for those that don’t know, I loath spammers. To give you some idea of how much, on one of my other sites you can find this:

I formally curse all spammers as follows:

Your children will die of a disease that would have been curable, except that you put such a drain on the internet that the communication needed to discover the cure did not happen.

You get the idea.

In any case, this time the particular comment in question didn’t make it. So, if you’re out there thinking that you legitimately replied to this site, and you don’t see your response, and you’d like to have a discussion about it, feel free to send me a note.

by McQ at December 18, 2009 05:13 PM

December 16, 2009

Rick DeNatale

Holy CoW!

Last week the Phusion guys, gave a talk at Google about the implementation of Ruby Enterprise Edition, and it's now available on YouTube.

It's good stuff if you are a VM geek, like me. The cover two major topics

  1. How they made the Ruby 1.8 garbage collector Copy on Write (CoW) friendly, which allows multiple Ruby processes to share memory for unchanged objects. This greatly reduces the footprint of a typical Rails Deployment for example. They talks about a series of attempts to change the Ruby GC to move the mark bits from the objects themselves to a separate memory structure. The result is significant memory savings, a slightly slower GC, but overall faster Ruby performance because they replaced malloc with a faster allocator (from Google apparently) which more than offsets the GC performance
  2. How a contribution from the Event Machine developers improves thread context switching for Ruby 1.8's user space threads. Ruby 1.8 handles thread context switches by copying the execution stack to and from the heap, which can result in significant time being taken up by memcopy calls. Ruby Enterprise edition now has an optional feature which instead switches the base stack pointer on a thread switch. This is processor specific, and is only available right now for Intel 32 and 64 bit processors.

So if this kind of stuff interests you, I'd recommend spending the half hour or so that it takes to watch the video

by Rick DeNatale at December 16, 2009 02:50 PM

December 15, 2009

Bjorn Freeman-Benson

Leadership in Solving the Tragedy

In "Seven Harsh Truths About Running Online Communities", Paul Boag says "an anti-social [situation] is your fault" and so I wondered what my fault was in causing the reaction to my trade association post. As far as I can tell, it was my use of the word "leadership" in reference to "the Foundation is not providing leadership to solve the Tragedy of the Commons". In reflection, I can see how it could have been misinterpreted as a personal attack rather than a professional disagreement, so let me explain my use of that word. I'll start with what appears to be an unrelated story:
During a recent visit to the Wikimedia Foundation, I had a very interesting discussion about community and change with Sue Gardner (Executive Director) and Erik Möller (Deputy Director). One of the topics we touched on was the video format the Wikimedia Foundation has chosen: the open format Ogg Theora. They spent a lot of time and energy on the format decision because it was a difficult tradeoff: on one hand, choosing a proprietary format (WMF, Quicktime, Flash, etc) would provide immediate access for everyone, but conflict with their goal of "freely available information everywhere for everyone". On the other hand, choosing an open format would limit availability but would ensure the information remains unfettered by a single company. So what should they do?

Instead they chose a third route: they chose an open format but at the same time, used their leadership position in information to convince the major browser vendors to include Ogg in HTML5. This is huge. This is leverage. This is change for the better.
The Eclipse Foundation could play the same leadership role in solving the Tragedy of the Commons. Mike is the charismatic, forceful leader that member companies would follow - in fact, I think he's the only person in the Eclipse ecosystem who could create the kind of corporate investment that is needed - that's why I was a key vote in hiring him at the beginning1. I believe that no single company is willing to step into the resource vacuum because nobody (not even IBM) has the deep pockets that IBM had from 2000-2004 — our only hope of corporate investment to solve the tragedy is a central leadership bringing the major strategic players to the table to staff the core team.

That's the "leadership" I was talking about. That's my critique; that's one area where, in my professional opinion, the Foundation could be doing better.

The Foundation is doing lots of good things:
  • Ralph continues to create a fantastic European community and the repeated success of Eclipse Summit Europe is entirely to his credit
  • Donald has taken over EclipseCon and does a fantastic job supporting the member companies
  • Ian continues to expand the Eclipse DemoCamps and Eclipse Days - an absolutely vital part of the growth of the Eclipse community
  • Denis and his team provide solid IT infrastructure
  • and more
I'm pro-Foundation. Perhaps I don't make that clear enough in my posts, but I am pro-Foundation. Because I believe in the power behind the Foundation, I can be pro-Foundation at the same time I believe there is more it could be doing.

1 John Weigand and I were the elected Committer reps on the Board. I resigned from the Board when Mike hired me into the Foundation a year later.

by Bjorn Freeman-Benson (noreply@blogger.com) at December 15, 2009 06:48 AM

December 14, 2009

Ian Skerrett

ianskerrett


The next step for Eclipse Marketplace (MP) is bringing MP direct to the Eclipse user desktop.  We want to build a MP client that will be distributed in all of the Helios EPP packages.   Instead of navigating to a separate web site, the Eclipse user will have an integrated user experience to discover Eclipse solutions.

We have already started a discussion about the MP client requirements.   Please feel free to add your thoughts to the discussion.

We want to have the MP client built in time for Helios.  To make this happen, the Eclipse Foundation has a budget to fund the development work.  Therefore, we are now asking interested parties to submit proposals for creating the MP client.

Some details about what we would like to see in the proposals:

1. The requirements for the MP client will be documented in this bug.  The final list of requirements will be determined with the developer/organization building the MP client and the Eclipse Foundation.  Each proposal should describe the approach the developer/organization will take to fulfilling these requirements.

2. The intention is for the MP client to become a component of the EPP project.  All the code developed will be open sourced and the developers building the code will be expected to follow the Eclipse development guidelines.

3. Each proposal should describe the experiences the developer/organization has with building Eclipse solutions that would be relevant to a MP client.

4.  The MP client needs to be finished in time for Helios.  Therefore, a feature complete beta needs to be available by March 19 (Helios M6).

5. The developer/organization will be expected to support the MP client through Helios SR1, SR2 and the 2011 release train.  Support will include bug fixes, testing and release engineering for the new releases.

6. Each proposal should include the cost for the work.

7.  Proposals need to be submitted by January 15, 17:00ET.  Send your proposal to me at (ian dot skerrett at eclipse dot org).   We will make our selection by January 29.

Feel free to contact me or leave a comment if you have any questions.  We are on a very agressive timeline but I am very excited about this next step for Marketplace.

by Ian Skerrett at December 14, 2009 04:31 PM

December 11, 2009

Mike Milinkovich

It’s a Dessert Topping and a Floor Wax

Last week we saw probably more conversation than any of us wanted about the notion that Eclipse is a trade association and therefore not an open source community. I believe that perspective to be misguided as it implies those two states are somehow mutually exclusive. They are not. And it is our community’s embrace of both that makes Eclipse unique.

The Eclipse Foundation is and always will be a trade association. It is also and always will be an open source community. This duality is built into our bylaws, our organization and, I would assert, our DNA. Consider the following sentence from the first paragraph of our Bylaws:

The purpose of Eclipse Foundation Inc., (the “Eclipse Foundation”), is to advance the creation, evolution, promotion, and support of the Eclipse Platform and to cultivate both an open source community and an ecosystem of complementary products, capabilities, and services.

That sentence captures the very essence of the Eclipse Foundation. Our mission is to both move the technology and community forward and to work on its commercialization. The “trade association” of member companies financially support the operations of the Eclipse Foundation. Over 70 of them also provide committers who work on projects. There are relatively few obligations that an Eclipse member company undertakes when they sign the membership agreement, but one of the most important is to create a commercial offering based on Eclipse technologies. It is that obligation which completes the loop from open source to commercialization to trade association and back. Those trade association members are not strangers: they are companies that are intimately involved in and committed to the success of the entire Eclipse community.

There is no doubt that the focus on commercialization places added burdens on Eclipse projects. Our development and IP processes require real work to comply with. But there is value in that labour, and the value is in the added use, adoption, commercialization and plain old respect that the Eclipse brand brings to a project. Not every Eclipse-based open source project needs to be hosted at the Foundation. For some projects, our processes may be too heavyweight. But those projects are still a valuable part of the broader Eclipse ecosystem.

The Eclipse community is also an open development community. I strongly believe that our development process has all of the attributes of openness, transparency and meritocracy that open development requires. Our unique approach to open source development is what enables things like the annual release train, which is arguably the best run, most predictable feat of software engineering on the planet. And let’s not forget that although many projects at Eclipse are supported by developers working at member companies, there are many also projects with active participants who are here as individuals.

But there is also no denying that we have our challenges. Every project would love to have more resources and more community involvement. We need to make it easier for newcomers to contribute. There are projects who frankly don’t do a great job of welcoming contributions. We have to attract more resources committed to evolving the core platform. We have a major new release of the platform coming next year. The staff and the Board of the Eclipse Foundation recognize all of these challenges and are working very hard to address them.

The balance between a trade association and an open source community makes Eclipse unique in the software industry. We have always been both, and that has always been an important part of our success. We are different, and in my mind that is a very good thing. I believe that we should all be very proud of the organization that we have created.

by Mike Milinkovich at December 11, 2009 02:21 PM

December 09, 2009

Mike Milinkovich

Membership Value Programs for 2010

Monday I blogged about some of the program plans we have for 2010 that are targeted at our project and committer community. Today, let’s turn to some of the things that we have in store for our members and the commercial ecosystem around Eclipse. Not all of these are new, but in each case there is significant value to the community, and there are at least a few new twists that we have planned for 2010.

  • Events: First of all, we are going to be continuing with the program items which have been very successful for the community the past couple of years. Amongst the most successful are the event programs that deliver the Eclipse Days and the Democamps. You may not be aware of this, but each of these events is sponsored in part by the Eclipse Foundation, in conjunction with one or more member companies. They have been enormously successful for bringing the community together, and in delivering value to members. For next year we are planning Democamp programs that line up with the Helios and e4 releases. And we hope to work with the members to bring even more topical Eclipse Days to your locale.
  • Conferences: EclipseCon and Eclipse Summit Europe are significant events in the annual calendars of the ecosystem. Although the content is very technical, a great deal of the talks are relevant to Eclipse users and adopters. The exhibit halls are also a great place for companies to show the cool products that they’ve been building with Eclipse. Running these conferences is a huge amount of work for a small organization such as the Eclipse Foundation, but they do great things for the ecosystem.
  • Eclipse Marketplace: As Ian blogged about yesterday, this week saw the launch of our new “Eclipse Marketplace”. This is a completely new replacement for the venerable Eclipse Plug-in Central (EPIC) website that has served the community well for so many years. Marketplace is a new code base with more features and more flexibility. (As an aside, I would like to recognize the great work that Genuitec, Instantiations and EclipseSource (formerly Innoopract) did in creating EPIC, and then helping us with transitioning its hosting to the Eclipse Foundation.) In 2010 we are going to be looking to expand Marketplace’s visibility in a couple of interesting ways:
    • We are going to be creating a Marketplace client that will ship with the Helios packages. The hope is that by making it easy to get plug-ins directly from within the IDE that will be able to drive more traffic to the commercial and open source plug-ins which make up the Eclipse ecosystem. Please comment on the bug where we are gathering requirements.
    • We are going to be working to make it easier for users and adopters to find products and services which are based on particular Eclipse projects. Using the data that we will have in Marketplace you will, for example, be able to find the companies that offer services for a particular Eclipse project.

    By the way, if you just read the above and are thinking “that’s lame, where’s the Eclipse AppStore?” you are not alone. We looked long and hard at doing an appstore in 2010 but in the end decided that we just did not have the resources. It turns out that while building the infrastructure for a commercial appstore may be tractable for an organization as small as the Eclipse Foundation, dealing with the legal and tax issues of selling in countries around the world is not. We will be re-evaluating this decision again next year.

  • Ship Helios and e4: Many readers may be surprised to see this topic listed under the program value for the commercial membership. After all, aren’t these Eclipse open source projects? They are indeed. But in terms of the value that the Eclipse Foundation brings to its commercial membership, these major new releases represent a lot of marketing, IT and IP value add from the Foundation staff. The annual release train brings enormous value to the commercial ecosystem because it provides them with a stable, predictable and IP reviewed platform each year upon which products can be built. The release train has been enormously beneficial to the commercial ecosystem. Obviously, most of the work is done by the project community. But it also represents the single largest work item on our annual calendar at the Eclipse Foundation.

So those are a few areas that the Foundation staff will be working on next year. I hope you agree that it looks like a busy and productive year coming up in 2010.

by Mike Milinkovich at December 09, 2009 08:28 PM

December 07, 2009

Mike Milinkovich

Project Community Enhancements for 2010

I mentioned in a comment last week that — pending Board approval of the 2010 budget — there are a number of items which we’re looking at for 2010 that we at the Eclipse Foundations are pretty excited about. These are some major pieces of work that we are going to be focusing our time and energy on.

There will also be a number of significant programs for the commercial members, but those will be the topic of a separate post.

  • Build and Test: The team here is aggressively begging companies for the hardware contributions required to take on more of the build and test requirements for Eclipse projects. If we are successful, we will happily provide additional infrastructure and support for build and test activities for projects. But don’t forget that the hardware is actually only a relatively small part of the total solution here. The resource management that the webmaster team will take on will be a significant amount of additional work for Denis and team.
  • Git: Denis and the webmaster team have been working hard on getting read-only git mirrors up and running on eclipse.org. But we really look at this as just the starting point. We view git as the SCM solution of the future at Eclipse and hope to have it up and running for as the main SCM repository for as many projects as possible by the end of 2010. Our reason for doing so is pretty simple. From what we can tell, the use of git at Eclipse is going to make it easier for contributors to make and track changes to the Eclipse codebase. And anything which gets us significantly more contributors is a very good thing.

    That said, there are a couple of items that are out of the Foundation’s control that the community will have to help with.

    • The CVS Team Provider that has been in the platform for years is really good. In fact, it is so good and so stable that it makes CVS very usable from within Eclipse. For git to gain traction at Eclipse, the EGit Team Provider is going to have to get good, and do so quickly. If we want to see git adopted to a significant degree, my personal belief is that we are going to have to ship EGit with Helios. My guess is that you, the community, are going to have to help make that happen through use, feedback and contribution. (Note that I do not know what the plans of the EGit project are. This is my personal opinion.)
    • The Eclipse Foundation doesn’t tell projects what to do. So if git is going to be adopted at Eclipse, the projects are going to have to vote with their feet. In other words, we are going to have to see a number of the large and mature projects bite the bullet and make the transition to git. Because if there is little or no evidence of this within the projects, then the investment by the EMO will be for naught.
    • In some ways, the most difficult part of this will be deciding which of the existing SCM systems we’re running to shut off. I personally have a major problem with the idea of running CVS, SVN and git for anything other than a short and constrained period of time. The main reason for this that having multiple SCM systems is a barrier to contribution for the community. If someone needs to learn three different SCM systems to interact with and contribute to three different Eclipse projects, then we have failed our community.
  • “Eclipse Labs”: We’re looking at creating an Eclipse Foundation affiliated forge where projects which are based on the Eclipse platform, but are not interested in hosting at eclipse.org can run their projects. There will obviously be some constraints (e.g. only Eclipse Foundation projects can use the org.eclipse namespace, and be part of the release train) but Eclipse Labs will hopefully over time form a powerful complement to the projects hosted at Eclipse.
  • “Get Involved”: We are going to be adding some variant of a “get involved” menu item to the left nav for project home pages. We want to make it easier to contributors to understand how to get involved with every Eclipse project, and we want to help projects to learn and follow best practices on how to facilitate more community involvement. Obviously, this may require some additional work for some projects, but the increases in community involvement, contributions and project diversity will be worth it to all of us.
  • Artifact Repositories: We want to make it easier for adopters of Eclipse technology to find and consume the great work that’s happening in the Eclipse Foundation projects. For this reason we are going to be looking into what technologies would make it easier to consume Eclipse software. To be blunt, we don’t know what this might be at the moment. It could be Nexus or Buckminster or Tyco or something new from the B3 project. We just don’t know and we won’t be making any final decision for six or seven months. If people are interested in getting together for a BOF at EclipseCon, I think that would be a great way to move the conversation along.

As you can see, this is a pretty significant list of projects for 2010. Denis, Wayne, Ian and their respective teams are going to be carrying the ball on these. So comment at will, but please also consider buying them a beer at EclipseCon :-)

by Mike Milinkovich at December 07, 2009 07:34 PM

December 05, 2009

Bjorn Freeman-Benson

How Changing the Home Page would Make Eclipse More Welcoming

I believe Eclipse needs to be more welcoming to contributors. I've written about this in the past [1,2,3,4,5] and even suggested some ideas about how Eclipse could improve [6,7,8,9]. So far there's been no major change: it's still just as difficult to contribute. There's no easy way to get started, no easy way to get the code and build it yourself, etc:
  1. The IntelliJ home page gives equals time to "Download" and "Contribute". The Eclipse home page strongly emphasizes "Download" but doesn't have the word "contribute".
  2. The IntelliJ contribution page (1 click from the home page) lists all sorts of ways that you can contribute to the community from the easiest all the way through becoming a committer.
  3. That page even has a prominent How to Check Out and Build page, and the process is two simple steps: (a) git, (b) ant. Period. (With Eclipse even the documentation I could find admits that the "documentation [falls] short on some specifics".)
Which IDE is more inviting to contributions?

This post has been revised based on feedback. Some comments may refer to a previous version.

by Bjorn Freeman-Benson (noreply@blogger.com) at December 05, 2009 08:14 PM

It's a Trade Association

I've been believing and promoting that the Eclipse Foundation is new combination of open source and commercial interests. But I've recently concluded that I was wrong and that the Foundation is an industry trade association.
... an organization founded and funded by businesses that operate in a specific industry. An industry trade association participates in public relations activities such as advertising, education, political donations, lobbying and publishing, but its main focus is collaboration between companies (see "Membership benefits"), or standardization (see "Eclipse industry working groups").
It's ok that the Foundation is an industry trade association, but it means that the open source side of Eclipse (including me) must stop wishing for the Foundation to solve the Tragedy of the Commons and find some other way to make it happen. The Foundation will continue to provide benefits to the corporate members, that's fine - I've always been pro-profit. And the Foundation will continue to do marketing around the open source projects - nobody ever complained about too much PR help!

There will still be a symbiotic relationship between the Foundation and the open source projects, but if the Foundation is not going to provide the leadership and resources to maintain the core, how can we do it ourselves? What are the mechanisms and rewards we need to put in place?
One thing that a number of people have concluded is that we need a repository that is not constrained by the IP process. That should be easy to do (google code or github). What else?

This post has been slightly revised based on feedback. Some comments may refer to a previous version.

by Bjorn Freeman-Benson (noreply@blogger.com) at December 05, 2009 01:11 PM

How to Improve Eclipse Day

Some people thought my previous post was too negative, so I am trying again: same ideas, different wording.

I attended and spoke at Eclipse Modeling Day in New York. The speakers were all knowledgeable and sincere: my favorite was "Building DSLs with XText" by Heiko Behrens of itemis.

I think these Eclipse Days and Eclipse Demo Camps and other smaller, frequent, regional events are the way to go - I think the pendulum is swinging away from expensive centralized annual conferences.1

Along with the shift to local conferences is the shift away from powerpoint bullet presentations: in this era of ubiquitous information, there's no reason to go to a single location to watch presentations. You can watch presentations at your desk, you can read presentations on your iphone, ..., there's no shortage of great information available. People are going to a live presentation to do something other than what they can do at their computer.

Thus the sole purpose of gathering people together at a Day or a Camp or a Conference is for people to meet people and therefore the entire Day/Camp/Conference must be designed for maximal people meeting. Organizing for people meeting means that you wouldn't spread ten talks over two rooms because that splits the (already smallish) crowd into two. Two smaller sub-groups reduces the common experience base and thus reduces the hallway conversations... Etc. It's all about designing an experience for people to meet people.

Shorter talks, single track, inducements to start conversations, ... that's what makes a great Day.

by Bjorn Freeman-Benson (noreply@blogger.com) at December 05, 2009 01:06 PM

Datablindness

During my time with the Foundation, I was tasked with producing a monthly graph of metrics for Mike to present to the Board. These metrics were unproductive in the economic sense in that the metrics never produced any actions. It was, as Eric Ries says, "Datablindness". For example, the Board wanted to know the total number of committer accounts which doesn't have any connection to how much good work is getting done in the projects.

What would be a useful metric - something that is actionable if it goes outside of the desired/nominal range?

This post has been revised based on feedback (I had used the word "useless" where I now use the word "unproductive"). Some comments may refer to a previous version.

by Bjorn Freeman-Benson (noreply@blogger.com) at December 05, 2009 12:56 PM

Eclipse Needs More Diversity

Here's one reason that we need more diversity at Eclipse: "I can't believe my eyes, Conforming to the Norm". We should be constantly questioning the status quo rather than just conforming - productively, not destructively, but definitely actively.

This post has been revised based on feedback. Some comments may refer to a previous version.

by Bjorn Freeman-Benson (noreply@blogger.com) at December 05, 2009 12:48 PM