Thursday, September 28, 2006

Quality of Service - what would we do without it!

Eclipse 3.2.1 was just released to the Grand Public, and our bandwidth is now maxed out - as usual. Luckily our network infrastructure is configured with elaborate Quality of Service (QoS) rules, meaning CVS, Bugzilla and our websites get priority access to outgoing bandwidth. Downloads get stuck at the end of the queue with whatever's left.

To test this in action, I use my 5 Mbps cable connection at home and wget (also available for that other OS). I'm usually good for 550 KB/s downloads from eclipse.org when we're not saturated, so let's see what happens.

Test 1: download an SDK from from download.eclipse.org using wget (no QoS):
bash-3.00$ wget http://download.eclipse.org/eclipse/downloads/drops/R-3...etc
[snip ] 66.12K/s

Test 2: download a large file from https://dev.eclipse.org (with QoS):
bash-3.00$ wget https://dev.eclipse.org/access_log.2.gz
[snip] 476.67K/s

Same servers, same Internet connection, different packet priority == fast website, CVS and Bugzilla (as fast as Bugzilla can be) even when we're overloaded with download requests. How neat is that?

Wednesday, September 27, 2006

Wayne's Lunch and Learn

Once a week for the past two weeks Wayne has been hosting a small Lunch and Learn activity at the Foundation's office. The goal here is to help bring Eclipse Foundation Staff up to speed on the various Eclipse technologies. Last week Wayne introduced us to bottom-up design by coding jUnit tests first. This week we learned that Plugins are First Class citizens, and he showed us how to build a plugin. Very interesting stuff.

At any rate, it's impressive (and entertaining) to watch him produce hundreds of lines of code in mere minutes by simply pressing a few keystrokes. Eclipse rocks, but he definitely knows his stuff - most likely because he's a semi-Old Dude who knows Smalltalk.

Tuesday, September 26, 2006

Eclipse "winamp" Skin!


I recently discarded Windows XP from my laptop and installed Linux (I was using Linux in VMWare before). You know how it is when you reinstall your OS - you need to reconfigure everything. After using the same XMMS (Linux' WinAMP) skin for decades, I sought out a new one. Lo and behold, I found the 'Eclipse' skin. It's pretty slick. It might also work on WinAMP.


I feel like a real Eclipse guru now.

Thursday, September 21, 2006

Cool Bugzilla Stats

In bug 157642 I commented on some neat Bugzilla stats. The title of the bug is "RESOLVE LATER" has become a synonym for "NEVER". The submitter stated that 5,000 bugs out of over 150,000 are resolved as LATER, which is about 3%. I break it down further in comment 3, and Gunnar offers some insightful comments (as usual). It's an interesting read. What's your take on RESOLVED/LATER? (Alex, this is your cue)

Saturday, September 16, 2006

Blind programming

During my 4h30m flight to Vancouver (to get to the Europa Build Workshop) I did something I hadn't done in a very long time: Blind Programming. I'm in the process of modifying our Contribution Questionnaire to automagically feed Bugzilla bug entries as part of the IPZilla effort and wanted to get ahead during my flight, instead of staring at the clouds.

I guess I got too lazy to configure Apache, PHP and MySQL on my laptop before leaving, so I was stuck coding PHP and SQL without a webserver or a database. I discovered that nowadays I don't code like I used to -- testing is now so easy and quick that I test after every few lines of code I write. On the plane, without a running test environment, all I could do was (gasp!) read the code and try to figure out what was going on.

I'm pretty confident that the 2 hours of code I pounded out makes a lot of sense. It probably has a dozenbugs, but I'm sure all it needs are a few tweaks. I hope.

Wednesday, September 13, 2006

Live from Europa Build Workshop

I'm in Portland this week attending the Europa Build Workshop, organized by Ward, Bjorn and Anne. So far it's very interesting, as there are many bright minds here offering great ideas and solutions.

We started the day with a great breakfast and an introduction to get to know everyone, then we moved onto the Lightning Restrospectives. We then spread out and had break-out meetings, and ended the day with a game of small-scale golf and a few drinks at a pub.

Besides meeting everyone, the highlight of the day (for me) was hearing the great insight from the Linux Distros guys. These folks have been doing "simultaneous releases" of hundreds of disconnected OSS projects for years, and they've brought lots of experience to the table. They also shared the pain they experience when trying to build Eclipse and other Eclipse projects straight from source, and from there stemmed a discussion on Build Best Practices. It's on the Wiki, so feel free to comment!

Friday, September 08, 2006

IPZilla - a better gateway to Eclipse IP

When Eclipse committers want to incorporate a large third-party code contribution in their project, they need to fill out a Contribution Questionnaire (CQ). This questionnaire is then received by the Foundation's IP team for review. Right now, it's not pretty:
  • the questionnaire info simply gets dumped into an e-mail. Welcome back to 1994.
  • there's a whole bunch of redundant Committer, Submitter and PMC fields. We already maintain our committers' names, adresses and phone numbers in a database, so it's silly to ask them again.
  • it's hard for everyone to track the status (and the evolution) of the whole process.
Enter IPZilla - the solution to all our problems (sort of) - which is what I'm working on now. By installing a second instance of Bugzilla (something all our committers are very familiar with), we can automate the CQ so that it automatically creates a new bug contribution into IPZilla that our committers will be able to track. IPZilla will be available via a committers-only section of our website called Committer Tools.

Having grown a brain since the original CQ design, I have connected IPZilla to both the Eclipse Bugzilla and Foundation Committer databases, allowing IPZilla project information to be pulled automatically from a trusted source. Also, the CQ will contain fewer fields, as the committer will be automatically identified and won't be required to type their personal information.

I suspect IPZilla will be a great new tool for committers, project leads and the Foundation IP staff alike, reducing data redundancy and allowing for better workflow and process tracking.

Thursday, September 07, 2006

Protecting your data.

Once in a while we get asked to move an Eclipse project from Technology to another top-level project. Of course, this involves moving CVS and Bugzilla data. Because Bugzilla doesn't have such "move" tools, we need to go in and manually run SQL UPDATEs on the database.

Manipulating live data this way is scary business. If anything happens to the CVS or bugzilla data, we immediately have dozens of committers armed with hand grenades, revolvers, shotguns, SMGs and RPGs just itching to use them.

So how do we protect the CVS and bugzilla data from potential disasters caused by, among other things, human error?
  • We issue test commands on offline datasets until we get them right
  • We maintain offsite snapshots of data for fast restore
  • We maintain both realtime and delayed snapshots of all our data
I think the key here is realtime and delayed snapshots. A realtime mirror server will offer little to no protection in case of an "rm -rf /" or a bad SQL UPDATE/DELETE command.

Here are the levels of data protection we employ here at the Eclipse Foundation:
  • Redundant disks. No single disk failure should prevent access to the data.
  • Redundant storage/database servers. No single server failure should prevent access to the data. This is a costly proposition, as 1.5 TB of disk space is instantly cut in half. Be wary of SANs - even with RAID, the unit itself is a single point of failure if not cloned.
  • Offsite clone servers. We have a server in a different physical location that contains not one, but 2 copies (today's and yesterday's) of all the eclipse.org data. This "eclipse.org-in-a-box" is fully equipped to serve our web site, CVS and database if required, and gets daily snapshots from the main servers.
  • Backups to tape. We run nightly backups to tape, with monthly offsite backups.
Sound like a lot of infrastructure? It is. But considering what's at stake, we think it's worth it.

Update: fixed a spelling mistake in the word "wary" (Thanks, Bjorn)

Tuesday, September 05, 2006

Eclipse website for users and newcomers

Up until now, the eclipse.org website(s) were mainly targetting Eclipse developers and plug-in developers, where the main focus of the site was around the projects. Now, the Phoenix team has been tasked with making our website easier to use for newcomers and for Eclipse users.

The following bugs are related to the makeover of many aspects of our site:

Eclipse website confusing for newcomers
https://bugs.eclipse.org/bugs/show_bug.cgi?id=128555

New Resources landing page
https://bugs.eclipse.org/bugs/show_bug.cgi?id=152488

Improved website for Eclipse users
https://bugs.eclipse.org/bugs/show_bug.cgi?id=152513

Pillars of Eclipse
https://bugs.eclipse.org/bugs/show_bug.cgi?id=155235

Feel free to provide feedback on any (or all) of those bugs.

Eclipse 3.2 SDK download stats

The Eclipse SDK 3.2 release just registered over 1.28 million downloads, and an additional 27,000 downloads using BitTorrent (a whopping 2%). Not too shabby. The busiest day for downloads was July 3, with 31,000. Where does all the traffic come from? Here are the top-20 countries:

1.  United States 260911
2. China 203305
3. Germany 117520
4. Japan 99931
5. Brazil 61017
6. France 47107
7. India 42395
8. United Kingdom 33939
9. Korea, Republic Of 32244
10. Canada 31845
11. Italy 23363
12. Spain 23246
13. Poland 17487
14. Taiwan 16512
15. Australia 15048
16. Switzerland 14133
17. Netherlands 11811
18. Argentina 11183
19. Sweden 10635
20. Mexico 9921