Much ado about scripting, Linux & Eclipse: card subject to change

Showing posts with label process. Show all posts
Showing posts with label process. Show all posts

2010-10-01

JBoss Tools: making it easier to build against a complex target platform

So you want to be a JBoss Tools developer? Awesome. Welcome to the family. SVN sources are here, JIRA's over here and there's cold beer in the fridge*.

But you say it's a pain in the tuchus to download over 25 zips or add a whole bunch of update sites and hope you get everything you need? Yeah, no argument there. If only there was an easier way to resolve all the dependencies you need to get building, much less to even RUN this stuff.

To make this process simpler, I've created a p2 repo (update site) from our target platform file, which has been recently updated to include Helios SR1 dependencies. You can track subsequent work in progress here: JIRA JBIDE-6982. You can also report any issues there too.


So, now, just add this single site** into your vanilla Eclipse 3.6.1 Classic (or a Helios SR1 bundle), uncheck the box for 'Group Items by Category' and you can install everything listed. For great justice.


Some handy links:


Some handy HOWTOs:


* - Due to beer2peer limitations, YMMV.

** - I'm aware that the update site throws a 403 if you open it in a browser. I can't be arsed to generate an index.html just yet, nor are there categorized features. Because really, you don't need either - this site is only meant to be used by p2.

2009-08-13

We Don't Need Another Repo

Re Wayne's blog about an Eclipse.org Maven Repo:

EMF has had an undocumented/unmarketed Maven2 repo for about 4 years now.

All you need is to take an update site zip, unpack it, rearrange the folder structure, and rename the jars. Then you create little XML files called .poms to describe the jars in the tree, and Maven-aware tools can read the tree. It's fairly trivial. http://download.eclipse.org/modeling/emf/emf/maven2/ is the URL, IIRC. About once every 2 years someone asks about our providing such a repo, and I give out the URL. Clearly not a huge demand for it.

One might argue that creation of such a folder structure is in the purview of Athena's publishing scripts, which today eases the process of copying your bits to download.eclipse.org, then unpacks your Update site so it can be scanned by p2 rather than downloaded as a single archive. It too is fairly trivial. I would not be adverse to converting my existing shell script for the EMF repo creation into a generic Ant script for use by Athena users.

Frankly though, I think it would be more valuable if the m2eclipse folks added support for reading/converting p2 repos. Publishing yet another file format would require another release-train-like workflow (we already have two: EPP and buckybuilder for Galileo) and more people maintain it. Even if every project published their own maven repo, we'd want for the sake of ease of use to aggregate them into a central place for easier navigation and discovery by maven tools. So, like with Ganymede, we'd have each project's bits copied to two places on disk for each build. (Galileo used composite repos to POINT at project repos rather than copying them saving tons of disk space and CPU cycles. AFAIK, Maven does not support this concept, but I could be wrong.)

There's also another benefit to having tooling to support converting from p2 repo to maven2 repo: the aggregate repo could be housed at apache.org and suck THEIR bandwidth and support resources instead. Thus just as Eclipse.org is upstream from Fedora's Eclipse project .rpms (which are upstream from Debian/Ubuntu's .debs), Eclipse.org p2 repos could be upstream from Apache's Maven repo(s). After all, Apache already collects maven artifacts for non-apache.org projects to facilitate the use and adoption of maven, so this is entirely in line with their standard operating procedures.

Thoughts?

Posted from Blackberry using Opera Mini, by the side of Shawnigan Lake, Vancouver Island, BC

2009-07-16

HOWTO: Be full of C.R.A.P.

In part 1 I rambled on at length about what I think needs to be done to prove yourself to a project team in order to become a committer on tht project.

So, what the crap's up with being full of C.R.A.P.? I'm not referring to the four principles of design (Contrast, Repetition, Alignment, Proximity), though there are some similarities here.

For me, being full of C.R.A.P is about the transition from one state to another:

Contributing
Responsive
Able
Peer
to Committed
Responsible
Active
Participant

How do you move from one state to another?

Give a crap, Clean up some old crap, Make some new crap, Now you're C.R.A.P.!

Simple, right?

'Till next time...

HOWTO: Becoming an open source project committer

The Tweetosphere/blogosphere has been buzzing with discussions about what one needs to do to be a committer @ Eclipse.org.

I got my rights by working for IBM and being handed the keys to the Porsche when I started working at the Toronto Lab as a member of the EMF team, oh so many lunar eclipses ago. No longer with IBM, I'll retain my committerships until I manually ask to be removed, or they claw 'em from my cold dead hands. After all, what's a revised patch but a 2nd Amendment? (Aside: seriously, people, it's 2009. You don't need a gun. There's no Imperial Army coming to steal your land. LET IT GO.)

For most committers, however, you can't just be appointed to the job; you have to earn it. So, here are my tips for getting on *my* project, the Athena Common Build.

  1. Easiest way to get on the project: be invited by someone already on the team by personal recommendation (see criteria below). Others can +1/-1 the suggestion based on the criteria below, but in my experience with other projects, no one ever vetoes a nomination. (I've seen it once, and it only delayed that person's committership by about a month.) So cozy up to the existing committers, and you're in. Why is this? Because it's OPEN source, and how can you be open if you exclude people who want to contribute?
  2. The nominee must use the project at least weekly, if not daily. For Athena, this means you have to be actively writing Ant scripts, doing builds, or at least be active in PDE or p2 development. Why is this important?
    a) I don't want "dump and run" code which I'll then have to maintain, and
    b) if you're not a user, you can't intelligently decide what pains exist and which are important to solve
  3. I'd like to see two accepted patches to prove you've got the technical skill, and that you're willing to thrown down and help with existing known issues - see 2 (b) above.
  4. If you're not technical (or not *yet* technical), then you need demonstrated skills or commitment, or have worked in a related field with someone mutually known who can vouch for you.
So, what constitutes "commitment?" Lots of things...
  • show up to meetings
  • comment on or write bugs, blogs, wiki, articles, recipes, HOWTOs, newsgroup, mailing list, IRC
  • submits patches or test cases
  • help triage bugs
  • mentor students (GSoc or other)
  • runs contests, does viral marketing, etc.

Now, of course, these items are not all mesaurable, but if people know you're involved, and you'd like to be a committer, you'll likely be voted in. (Many people trying out Athena may have noticed I've offered them committer rights in exchange for code or doc contributions. So far, no takers, but the offer stands.)

Frankly, I'd rather have more people as committers who do little to the code base but who have the power to do so when needed. For example, (if the data is accurate) Kim's only committed 48 LOC in the past 9 months, compared to my 80,000 LOC (seriously, that can't be right) - but what she, Andrew and Andrew have done has been invaluable. And, often much more valuable, they've all helped out with with advice in bugs. Thanks!

Good planning trumps code any day.

Continued in part 2

2009-07-09

E-Fail

It's taken a while, but I've managed to get some metrics for how much mail I actually process.

Here's my inbox 3 weeks ago before I went on vacation for a week, then went without VPN access for a few days. The xkcd strip is particularly appropos.

Here's that same inbox today, sporting a newer version of Thunderbird. Note the pileup of over 1,000 emails in three weeks, in just ONE of the mailing list filter/folders I monitor.

So, other than filtering by sender & subject, automatically marking my own mailing list replies read, colourizing emails to make the more important ones stand out, and using "Show Unread Threads" view filtering ... what else can one do to manage the deluge?

Does anyone have any good, realistic strategies for dealing with 1000s of emails a month?

2009-05-20

Use Your Metadata, Vol. 1

It's been a bad week for update sites and Galileo contribution from Modeling... and I confess I'm partly to blame. That and the fact that despite documenting processes, workarounds, tips, tricks, and advice... no one Reads The Fine Mediawiki (Category:Releng or Modeling Project Releng).

Highlights:

  1. The mysterious appearance of a new version of org.eclipse.osgi_*.jar in releng.basebuilder's R35_M5 tag, which caused an ant <copy/> used to rename a file to fail because copy can't merge two jars into one file. Still no idea why an old basebuilder tag would magically grow a new jars, but I've worked around the now-faulty assumption w/ smarter Ant code.
  2. A change to the way our sites are created, in an attempt to workaround what I believe (but can't yet prove) is a flaw in the way content.xml is produced - namely, if the xml file is > 21M, it gets truncated or corrupted. We used to cache 2 or 3 releases of a given project (eg., M5 and M6) on the same site, in order to give people a way to "back up" to the previous release; now, you only get the latest (bug 271486). I confess I screwed up here and instead of replacing a folder with new contents, I was copying INTO that folder - `cp -r one two` resulted in folder one/two/ instead of two/. I fixed that by changing to a move instead of a copy, but a downstream process failed because of the assumption that both one/ and two/ would exist. The lessons here are: a) shotgun debugging sucks, and b) don't change the way stuff is created after M7.
  3. People publishing two updates to a site at the same time, resulting in the appearance of two </site> tags in a site.xml file, causing p2 metadata generation to be incomplete or fail entirely; unfortunately, no error is logged when this happens so it's rather difficult to decipher the tea leaves. This may be the real source of the metadata corruption, if not the "file is too big" issue above.
  4. Observations about obsolete jars corrupting metadata, but no one taking it upon themselves to clean up the site or do some troubleshooting
  5. People inconsistently naming their milestones (it's 2.0.0M7, not just M7!) and corrupting our Release Notes database. This one amazes me the most since it takes seconds to see what was done last time (check any of the following: RSS feeds, release notes, downloads pages, update sites) and follow suit. And, of course, the conventions are documented, along with the rationale (consistent patterns == simpler code).

Or, to put it another way...

Sick of this life
Not that you'd care
I'm not the only one with
whom these feelings I share

Nobody understands
Quite why we're here
We're searchin' for answers
That never appear

But maybe if I looked real hard I'd
I'd see your tryin' too
To understand this life,
That we're all goin' through

Sometimes I feel like I'm beatin' a dead horse
And I don't know why you'd be bringin' me down
I'd like to think that your love's
Worth a tad more
It may sound funny but you'd think by now
I'd be smilin'
I guess some things never change
Never change

So, please, can we stop opening bugs (277172, 277105, 277034, 276928, 276641) and just use the tools and docs already available?

2009-05-11

Automatic Eclipse mirror selection / Better download pages?

Have you ever wanted to fetch a whole stack of Eclipse project runtimes so you can build against them? For example, say you want all the Galileo M7 builds from Platform, TPTP, BIRT, DTP, WTP, and dependencies (EMF, GEF, XSD). You can find the URLs for each zip you want on the projects' pages, and download them one-by-one from the closest mirror, but that's time- and bandwidth-consuming, esp. if you want these on a remote server, not your local box.

Enter the "&r=1" option on http://www.eclipse.org/downloads/download.php, which will fetch from the closest mirror automatically.

So, now, you can script the M7 stack fetch like this:

for u in $*; do
  if [[ ! ${u##*file=*} ]]; then # add the r=1 suffix
    u=${u}"&r=1"
  fi
  echo "wget $u ..."
  wget --no-clobber "$u"
done

Then run it like this:

./fetch.sh \
"http://www.eclipse.org/downloads/download.php?file=/tools/gef/downloads/drops/3.5.0/S200905011522/GEF-runtime-3.5.0M7.zip" \
"http://www.eclipse.org/downloads/download.php?file=/birt/downloads/drops/M-R1-2.5M7-200905061338/birt-report-framework-2.5M7.zip" \
"http://www.eclipse.org/downloads/download.php?file=/birt/downloads/drops/M-R1-2.5M7-200905061338/birt-wtp-integration-sdk-2.5M7.zip" \
"http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/drops/N_DTP_1.7/dtp-1.7.0M7-200905052200.zip" \
"http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/S-3.5M7-200904302300/eclipse-SDK-3.5M7-win32.zip" \
"http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/S-3.5M7-200904302300/eclipse-SDK-3.5M7-linux-gtk.tar.gz" \
"http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/S-3.5M7-200904302300/eclipse-SDK-3.5M7-linux-gtk-x86_64.tar.gz" \
"http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/S-3.5M7-200904302300/eclipse-SDK-3.5M7-macosx-carbon.tar.gz" \
"http://www.eclipse.org/downloads/download.php?file=/modeling/emf/emf/downloads/drops/2.5.0/S200905041408/emf-runtime-2.5.0M7.zip" \
"http://www.eclipse.org/downloads/download.php?file=/tptp/4.6.0/TPTP-4.6.0M7-200904260100/tptp.runtime-TPTP-4.6.0M7.zip" \
"http://www.eclipse.org/downloads/download.php?file=/webtools/downloads/drops/R3.1/S-3.1M7-20090505073946/wtp-S-3.1M7-20090505073946.zip" \
"http://www.eclipse.org/downloads/download.php?file=/webtools/downloads/drops/R3.1/S-3.1M7-20090505073946/wtp-jpt-S-3.1M7-20090505073946.zip" \
"http://www.eclipse.org/downloads/download.php?file=/modeling/emf/emf/downloads/drops/2.5.0/S200905041408/xsd-runtime-2.5.0M7.zip" 

So, now the only problem is that every project structures & styles their downloads pages differently...

  1. DTP -> choose file(s)
  2. GEF -> choose file(s)
  3. EMF/XSD -> choose file(s)
  4. WTP -> choose build -> choose file(s)
  5. Platform -> choose build -> choose file(s) & platform(s) -> click through warnings
  6. TPTP -> choose branch tab -> choose build -> choose file(s)
  7. BIRT -> More Downloads -> Recent Builds -> choose build -> choose file(s)

Am I the only person that finds this inconsistency annoying? Is it time for a more consistent UI? I'm exploring what to do for Athena-based builds, and welcome suggestions in bug 275682. What pages do you like best? Worst? Which are easiest to use? Hardest? Do you prefer the old blue-and-white pages? The purple Phoenix pages? The grey Nova pages? Any UI designers want to contribute?

Or, really, are downloads obsolete? If we could collect statistics on p2 jar downloads, I'm sure we'd see that most people prefer that approach, and I for one would certainly prefer to just build against a p2 repo (or 7) than a pile of zips. I suppose the hybrid solution for now is to provide zipped p2 repos for download, many projects do today (Modeling, GEF, PDT, VE ...).

2009-05-07

A Week Without Firefox

Last week I fired the Fox and switched to using Opera 9.6. Today, I'm back to Firefox 3.0 because while Opera has a few nice features, it ultimately lags behind FF (for me, anyway) in usability and functionality.

Here's how they stack up:

Opera 9.6's Pros

  1. Sidebar notepad feature
  2. Speed dial homepage
  3. Minimalist UI with sidebar (incl. a handy notepad app and the usual suspects (transfers/downloads, history, bookmarks). For web dev, there's some handy extras like Links (a list of all the links in a page) & Info (page metadata)... but then FF also provides these via a different UI
  4. Ability to do "g keyword keyword2" to search Google for those keyword(s) (Firefox just does this without the "g")
  5. Mouse gestures
  6. Single "Wand" password manager login for entire session (rather than per-window - see Firefox Cons below)

Firefox Pros

  1. Awesomebar searches within history allow minimal typing like "hu ec ve l ar" to pull up a long URL like https://build.eclipse.org/hudson/view/Athena%20CBI/job/cbi-ve-1.4.x-Ganymede/lastSuccessfulBuild/artifact/
  2. Ability to create keyword associations for bookmarks, so that "b 272403" will load https://bugs.eclipse.org/bugs/show_bug.cgi?id=272403
  3. Tons of plugins/extensions, including: mouse gestures, Twitter, Delicious, Tab colouring & detach/merge, ...

Opera Cons

  1. Location bar only works with URLs and sometimes page names. Way more typing needed than in FF
  2. No ability to undo the closing of a tab
  3. Cannot reproduce FF extensions in Opera; Delicious and Twitter integration are not nearly as good; no tab colouration, single view of downloads, no Tasktop support.
  4. Cannot store username/password pairs for in-page login forms (only browser-level ones). Repeatedly having to log in to JBoss Hudson every few hours is a royal pain.
  5. Crashes unexpectedly but previous session can be recovered.
  6. Lame icon with a dropshadow. Retro, sure, but c'mon, they've had that for AGES, and it's just lame.

Firefox Cons

  1. Memory bloat
  2. Crashes unexpectedly but previous session can be recovered.
  3. When reloading a saved/crashed session, every single page requiring access to the password manager pops a login dialog; sometimes I get to enter my password 7 or 8 times, or hit ESC repeatedly to lose those tabs.

I also briefly tried Firefox 3.1beta4, but as none of my extensions work there yet, it's not much better than Opera at this point. It's supposed to be better on memory, and has new bells and whistles being added to the Awesomebar. It's also supposed to be implementing a lot of functionality I get now from the above extensions, such as better tab management.

So, ultimately, I'm back to Firefox 3.0.10.

2009-05-04

Git 'Er Done

The discussions in bug 257706: Host a git repository on Eclipse Foundation servers, support git as the repository of Eclipse projects rages on, wind blowing in both directions.

Let's look at the objections to Git @ Eclipse:

Implementing a common build infrastructure would also be complicated by additional code repositories as well.

Not true; the Athena system already supports CVS and SVN, plus a "build from local sources" mode which works w/ a cvs/svn tree dump, a workspace w/ checked out projects, or (TBD, we haven't tested this yet) with a git repo. And we have an open bug to make repo tree structure irrelevant to the local checkout mode. Party on. There is even a Git plugin for Hudson so you can use Hudson to watch your repo for changes, like it does with CVS and SVN.

Can't use unapproved or non-EPL code at Eclipse.org

Not true; from discussions w/ legal@eclipse.org, I've been told at least twice that as long as you're not SHIPPING code that falls under a non-EPL or non-approved-CQ you're entirely fine to USE that code as server-based infrastructure. Rock on.

Cannot include tooling in a release train or host its project at Eclipse.org

Not true; since eGit is EPL and jGit is BSD, I don't see a problem with distributing the tooling that would connect to a Git repo hosted at Eclipse.org. We worked around the license woes for SVN tooling support. We can do it again. (Of course IANAL, TINLA.)

Conclusion:

No legal concerns with use of Git as hosted server infrastructure. Dash Athena (Common Builder) will support Git. Tooling is safe for inclusion in release trains (either fully like CVS is or partially like SVN is).

Only remaining issue is therefore to get it installed and allocate resources to support/manage it. With all the erosion going on lately, this need should not be trivialized.


Before the thaw this spring, this tree was on top of the bluff. With nothing to support it, it was dropped like an unchampioned feature request.

However, in the spirit of open source, several people on the above bug have offered to help w/ setup, testing, support, etc. So the burden here will be shared, like many things at Eclipse (eg., Babel, Hudson). Erosion continues, but we can all help to shore up the loss.

As most people prolly already know, Sourceforge supports the whole spectrum of VCS and DVCS options. If we don't want people to host projects there, Eclipse has to at least offer something from the DVCS world to encourage participation here. Keep the barrier to entry high, and people will go elsewhere. Lower the barrier, and people will come here to party instead.

With everyone feeling the economic- and time-pinch these days, can we really afford to discourage contributions at Eclipse simply because, as the silverbacks say, "why, back in my day, we only had CVS, vi, and notepad, and dangit, that was good enough!" ?

After all, the new world is inevitable.

2009-05-01

Just enough process

This entrace to a forested area in my neighbourhood used to be blocked by a fence with a chained gap wide enough to barely permit clearance for a bike, requiring me to duck to get through.

Recently, it was replaced with just enough of a barrier to prevent cars from getting in, without disrupting the flow or pedestrians, dogs, and cyclists.

Sometimes a whole new approach can vastly improve how a community can gain access to resources.

2009-04-30

Behaviour Modification

Dave Carver's been talking a lot about Scrum, XP, and the EDP and where the suck is.

His latest post contains "in Pictures" in the title, but contains no pictures. So, with tongue planted firmly in cheek, here's one:


Image borrowed from basicinstructions.net

2009-03-30

Zimbra mail filters

Get too much mail? Don't we all. Here's how I filter it so it's more manageable. Log in. Click Preferences > Mail Filters. If you use Thunderbird, you can set tags and automatically move emails into IMAP folders. Then, just make sure the tags you've set exist in Thunderbird, and you'll get colourized, sorted mail.

2009-02-21

Oops, I'll read it again!

Apparently at some point in the last month or so I set a filter to mark all inbound mail from Eclipse Bugzilla as already read. If I've been completely ignoring your comments in Bugzilla, I do apologize. Please ping me via those bugs - I've fixed the filter, so I'll now see your comment as unread and will respond.

I also discovered yesterday that since January about 80 emails to my Red Hat address had been incorrectly marked as Junk. I am now tracking that box too, just in case more gets incorrectly categorized.

On the plus side, this gives me an opportunity to use a Children of Bodom cover tune, in keeping with Britney Month. :)

Yeah yeah yeah yeah yeah
Yeah yeah yeah yeah yeah yeah



I think I did it again
I made you believe
I just didn't care
Oh baby
It might seem like a slight
But it doesn't mean that I'm serious
'Cause to misfile my email
That is just atypically me
Oh baby, baby

Oops! ...I did it again
I filtered your mail,
Ignored and prescreened
Oh baby, baby
Oops! ...Hundreds of notes a day
Gotta prioritize
With filters and labels

You see my problem is this
I'm reading away
'Bout UK lottos, that do not exist
I cry, four one nine, yeah
"Don't you see I'm a prince, from Nigeria!"
But to miss so much email
That is just atypically me
Baby, oh

Oops! ...I did it again
I filtered your mail,
Got lost in the trash
Oh baby, baby
Oops! ...Bayes thought that you were spam
Not sent here as pure ham
No, not so innocent

Yeah yeah yeah yeah yeah yeah
Yeah yeah yeah yeah yeah yeah

Oops! ...I filed it away from my view
Lost in a gig of email
Oops! ...I've fixed the filter that was screwed
Mistake was innocent

Britney Spears - Oops! ...I Did It Again

2009-01-06

Blackberry Linux Mail, Calendar, Tasks & Contact Sync, Part 2

Things have improved since my last post, despite the fact that I managed to kill Thunderbird along the way and lost a good chunk of today figuring out to restore it. Luckily I can read French, or I may never have found the solution to the elusive -203 problem.

Aside:

To recover from a corrupt Thunderbird profile, create a new profile using thunderbird -ProfileManager, then transfer your data to the new profile. Easy-peasy.

Next, reinstall all your extensions. I use these 15 extensions.

I've also managed to get barry to work for backing up my Blackberry on Fedora. Turns out the problem is that it simply needs root privileges.

Here's how the data flows, drawn with JBoss Tools' jBPM Graphical Process Designer:


click to enlarge

I don't yet have a solution for Zimbra contacts & calendar being accessible on the Blackberry, short of manually duplicating entries from one repo to the other. Still, 5 out of 7 data sources synched is pretty decent.

2008-11-14

New & Noteworthy: Marketing Your Hard Work

There's been a lot of talk lately in cross-project-issues-dev@ (search for "must-do") about the relative merits of having a set of enforced rules for participation in the annual release train.

If you'd like to void an opinion, here's a poll.

Re: the requirement for more frequently updated New & Noteworthy documents, I'm amazed how many people object to being told they need to better market their projects. Really, that's all a N&N is -- a digest of what's important to convince people to upgrade to your latest efforts. (In Modeling we employ a mix of manually created copy & screenshots w/ automatically-generated lists of bugs closed by milestone, release or individual build.)

If project leaders & committers don't see value in writing marketing copy to showcase their efforts, then why do their employers see fit to pay for marketing/branding/sales people to sell their products? Given that sales people are driven by dollars, would they bother if it didn't work?

Bottom line: Believe in what you do, trust that it has value, and talk it up once in a while. Sure, it's effort, but it's worth it.

2008-11-02

Request For Comment: The End Of SDO?

Four months ago, I started a discussion about simplifying the EMF download experience. Consensus appears to be that we should keep the EMF-SDO-XSD "All-in-one" SDK zip, perhaps more.

Now, a new proposal is in the works: removing SDO from the EMF build, and from this year's coordinated release, Galileo. The source would still be in CVS, but we'd stop providing SDO binaries. This would also mean the much-loved* EMF-SDO-XSD "All-in-one" SDK zip would be renamed to EMF-XSD "All-in-one" SDK, but would otherwise continue as is.

For more on this topic see:

EMF 2.5 - Simplified Downloads (bug 240223)
Remove SDO from Galileo (bug 251402)
Consider improvements to the termination process (bug 249408)

To voice your opinion, please post your feedback in any or all of the three bugs linked above.

Thanks!

2008-09-25

And the plan said...

With everyone's standardized project plans due next week, I've been tasked to draft a consistent workflow for the Modeling projects. And because we're such Model Citizens, I'd like to share it with others, in case this approach works for your project too. See details here.

On that note...

And the plan said usability, motherhood, apple pie
So I shined up my Chrome
Logged into the Bugz and I went in to run a query
It came back with a list of items, too many to possibly do
So I flagged a few, set milestones, and voom!
A plan came into view

woah!

(Chorus)
Plan, plan everywhere a plan
Charting out development, done for The Man
Do this, can't do that, did you read the plan?

And the plan said a lot of these
Have been deferred outta sight
So I looked at those bugs and thought to myself,
Hey! I'll submit a patch tonight
To contribute to this project or to get some new feature in
If God was here, he'd tell you to your face,
Thanks, man you're some kinda winner

Chorus

Now, hey you Mister! Can't you read?
You ain't got to be a committer to get a seat
You can write a patch, or build a new feature,
Ain't supposed to be hard
Plan says anyone can contribute,
Just look for the 'helpwanted' keyword!

And the plan said everybody welcome
Come in, site down and code
But when they passed around the hat
At the end of it all,
I didn't have a buck to unload
So I got me an account with Blogger
And I made up my own little site
I said thank you Eclipse for thinking about me,
I'm alive and you're alright

Chorus x 2

Five Man Electrical Band - Signs

Incidentally, there are over 2500 open 'helpwanted' bugs, with over 1100 closed. Thanks to everyone who's contributed over the years!

2008-06-17

Toward Standardized Groups

June 5 marked the death knell for my conquest for world domination through Eclipse committer groups.

Before then, I was in a whopping 62 different linux groups on dev.eclipse.org, coming in third behind Kim and Sonia (80 and 79, respectively).

However, with Karl and Matt actively cleaning up these duplicate and often empty groups & standardizing the names, my numbers have dwindled to a mere 55. Sadly, I'll lose 4 more when we standardize GEF...

Still, consistency is better than world domination, right?

If your project needs some housecleaning, Karl's looking for volunteers to work with him on this effort. If you are interested, I'd recommend starting with a shared spreadsheet (eg., [1], [2]) to document your before and after states.

2008-06-06

HOWTO: Contribute

There's been a fair amount of discussion about volunteers and community outreach of late, both on the Planet and in the newsgroups. The following is probably nothing new, but here's my take.

In eclipse.platform.swt, Ed said:

Human nature is such that if everything is working smoothly, for example, if every desired SWT feature simply appears out of thin air, then there is no compelling need to change behavior. Only when things get painful or uncomfortable is action taken. If the belief is that others are responsible for providing the level of comfort to which we've grown accustomed, that action will typically take the form of complaints rather than constructive steps to deal with the issue directly.

I couldn't agree more. That's been my experience w/ PDT -- blog about successes/failures, open bugs, see minor improvement. This was Phase One: Complaining. Not very effective.

Then I started lurking in #eclipse and found that there were a lot of people eager to use PDT, but who were having issues getting it up and running, or migrating to it from another PHP editor. So, after finding myself answering the same questions over and over, I started contributing to the Eclipse wiki, writing docs on installation & migration. Phase Two: Support / Documentation.

Last week, I found myself volunteering for PDT's first Bug Day (which frankly didn't go as well as I'd have liked). To digress for a moment, here's why:

Of the bugs tagged for BugDay, Roy suggested I look at the ones about code formatting, as they were long-standing issues.

I know next to nothing about structured text editors and how the data model is used to properly indent code, so this was a bit of a struggle -- first to find where to insert breakpoints, then to really understand what was going on. Roy was very supportive and helpful, but ultimately I don't think I had enough experience to really be useful.

The other reason for my failure to launch was that much of BugDay got eaten up with my other commitments, and the time zone offset meant that by the time I was done with all my other stuff in Toronto, it was very, very late in Israel. Time zone offsets suck. Incidentally, if you're looking for a way to help PDT, here's their list of BugDay bugs, for which they're actively seeking patches.

Digression aside, I've also been actively contributing to the PDT newsgroup and mailing list, fielding more setup, migration, and install questions. Phase Three: Feeling the Pain / Getting Your Hands Dirty.

PDT has had some tough times in the past with Integration builds only being delivered once a month and update sites that only provide Release builds, or incorrectly displayed requirements & install instructions on build pages. So, as Ed said, there's a pain: a pain that I want to help fix. And because the pain is personal, I've offered to assist with their build infra so that they can more easily publish weekly builds and monthly milestones, which they seem thrilled about. Clearly this is a shared pain. Phase Four: Code Contribution.

So... what's the point of all this? Offer your help as best you can. Do what you can to be supportive out on the periphery. Get your name out there. Chat with the teams on IRC, in newsgroups, or on their dev list. Worm your way in. Contributing to Eclipse means giving your time, but it should also mean ownership of what you contribute, because others need to give their time to process your contributions. The more you show your commitment & involvement, the more effective you will be.

After all, Eclipse is a meritocracy -- you have to earn your seat. :)

2008-05-29

I. P. Freely

This is your brain.

This is your brain on a fortnight of IP logs and About files.

Clean IP / From Where Did Our Code Come

Sometimes
I feel I've got to code all day
I've got to code all day
But the pain
Of rewriting from scratch, oh me!
The libs I share
Must have come from somewhere
And I think I've lost my light
For I toss and turn
I can't code at night

Once I ran to you
Now I run from you
This tainted code I've given
Given my Abouts all to you
Fix my log
And thats not nearly all

Clean IP x2

Now I know that I can code all day
I want to code all day
And there'll be more time everyday for me
To build things right
We need someone to hold us tight
And you want clean code to stay
But without its due it won't stay that way

Once I ran from you
Now I run to you
This clean IP you've given
Given my Abouts all to you
Gen my log
(Though it's but nearly done)

Clean IP x2

More CQs please!
I can not stand the way you tease
Orbit's the only way to go
But we need a lot of CQs, too

Clean IP x8

IP, IP
From where did our code come?
Ooh, don't you wonder
Don't you wonder no more
I've got this burning
Yearning, yearning
Nested inside jars
Ooh, deep inside jars
And it hurts so bad
I used third party code
So commonly
With a burning love
For my Apache
And now I will surrender
To clean pedigree
You're in my log now
Ooh, you're in my IP

Soft Cell - Tainted Love / Where Did Our Love Go?