Friday, January 26, 2007

Subversion: Not Impossible, and Tall Buildings

Most buildings have one common design aspect: the exit is usually on the ground floor, and it is accessible by using the elevators or the stairs. But exiting a building that way is inconvenient if I want to leave a building Right Now, without delay. Achieving this is not impossible: I can simply jump out a window. Does that sound foolish? It all depends on the context.

If I'm on the fifth floor and I want to leave casually -- as is usually the case, under normal circumstances of everyday life -- jumping out of the window makes no sense at all, even though it's not impossible to do so. The building, and my body, weren't designed for this, making it too risky. However, under special circumstances which deviate from the norm -- for instance, if the building is on fire -- then jumping from the fifth floor may make perfect sense. But that's an exceptional case, certainly not part of the regular process of exiting a building.

What does all this have to do with Subversion?

After reading Mike's blog about Parallel IP approvals for incubating projects, I could see one problem coming at me from a mile away (roughly 1.6 km). With Parallel IP Approval (PIPA?), projects in incubation are authorized to put code into CVS that has not yet been approved. I can only speculate that regular requests to remove code (either because it's not approved, or because it's no longer required) will be triggered as a result. Although Mike's blog only mentions CVS, many Incubating projects may prefer to use SVN instead of CVS, and that's where the problem begins: SVN isn't designed for deleting files or directories permanently, without leaving a history. This is a non-issue for CVS, however, and one reason why parallel IP using CVS is a Non Issue.

Although not impossible, to delete something from SVN is difficult: one must dump the whole repository to a dump file, edit the dump file to remove the offending records, delete the repository, re-create the repository (empty), and load the dump file in to the repository. Difficult, indeed, but it's not impossible.

But does it make sense to do so?

It depends on the context. If permanently deleting files from a repository is a normal, expected and somewhat regular occurrence, then I must argue that SVN is simply not the right tool to use. On the other hand, if code was committed accidentally and it must be deleted for legal reasons, then the special circumstance certainly warrants the trouble and hassle of removing it, as it's an exception, not a rule, to delete files.

So what's the point of this post? Just because something is Not Impossible doesn't mean it's Not An Issue. And for this reason, I'd state that projects in Incubation only be permitted to use CVS -- as lame as that may sound -- simply because of the way SVN is designed vs. the way we would be expected to use it.

Thursday, January 18, 2007

Bugzilla bugs: another big one squashed

I just got a notice this morning from Mozilla's bugzilla, stating that bug 299405 has been fixed. I couldn't be happier, as this bug was affecting Eclipse's Bugzilla users as well. This happens when you submit an attachment and add CC addresses that aren't recognized by Bugzilla.

The Mozilla team admits that the implemented fix isn't the best way to solve the problem, but it's much, much better than spewing out some cryptic Perl error that no one understands.

Good to see Mozilla working on making Bugzilla users happier.

Inside MySpace

I read an interesting article on Baseline called Inside MySpace. It's interesting (to me, anyway) to read about how sites struggle with scalability as the site grows very rapidly. I got a real shocker when I read about how they switched to SQL Server 2005 while it was still in Beta. Why? Because the latest SQL Server was only 32-bit, thus limiting the amount of RAM it could access to 4GB.

Yikes. Why the heck are they running this on Windows?

Had they used Linux, they wouldn't have had this silly restriction, and they wouldn't have had to resort to using Beta database server software.

Wednesday, January 10, 2007

More power for

We just added more power to more CPU power and more bandwidth.

As I blogged previously, we received a fifth node server for the cluster and it should be in service today to help take its share of the load. We added this fifth node not because we needed more processing power now, but because a) more power helps us cope with the very infrequent but always annoying Denial Of Service attacks and b) with only four nodes, if one node was offline for whatever reason, running on only three nodes was risky. Technically, can run on only three Itanium node servers as configured; however, should one fail, our site would crumble with only two in service. Having five node servers means we can still keep running with up to two nodes down.

Our cluster handles all of our website traffic, including, all CVS connections, RSYNC connections for mirrors, and e-mail.

We also added 10 Mbps of permanent bandwidth, putting our cap at 70 Mbps. We're no longer under constant saturation.

The new server and the added bandwidth should carry us well into 2008 -- or so I hope. Enjoy!

Thursday, January 04, 2007

Remote editing using Eclipse DSDP/Target Management

Last year I was looking for an SSH/SCP/SFTP plugin for Eclipse. I figured it would be great to connect to my favourite Linux servers using Eclipse so that I can edit and transfer files directly from within Eclipse itself, over a secure channel. Back then I tried a couple of plugins but nothing worked good. I eventually gave up and reverted to working locally, with the SSH shell.

Then I stumbled upon this juicy nugget on the Eclipse newcomers group and it's exactly what I was looking for. I installed the RSE and it works exactly as expected. Using the SFTP connection method, I can connect to my servers, browse my files, open and edit PHP, HTML and other various text files using my favorite editor tools seamlessly in Eclipse as though they were local. Opening the file triggers a download, saving the file triggers an upload.

To use RSE, just follow these steps:
  1. Using the Update Manager, add an Update site, using this URL:
  2. Browse the TM update site, and install the RSE runtime.
  3. Restart your workspace
  4. Open the Remote System Explorer perspective, then create a new connection by right-clicking the Remote Systems pane.
  5. Browse, open, edit, save.
Although I'm not about to abandon my trusty Linux shell, RSE provides a great interface for those users who need to manipulate files on a Linux/Unix server.

Wednesday, January 03, 2007

Phoenix themes for 2007: moving forward

On our last Phoenix call of 2006, we came up with the list of themes for 2007. These themes will be the focal points of our work on the Eclipse website(s) this year.

The list of themes is on the Phoenix wiki, but I'll paste it here for your reading convenience:
  • Ease of Use / usability
  • EclipseLive
  • Cooler look
  • Reliability
  • Common look & feel across the site
The Eclipse website is one of the most important tools provided by the Foundation and used by the entire Eclipse community, and this year we want to continue moving forward and make the site better. Expect the Phoenix team to open bugs, requesting your valuable feedback on how you want the information on our website to be structured and presented to you.