Monument ([info]marnanel) wrote,
@ 2006-10-20 13:52:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:gnome

I was musing about wikis today.
The year is 2010, and somewhere in the world a first-year undergraduate is checking her email on a college computer. This being 2010, the computer is running GNOME (version 2.25 as it happens), and some shortcoming about the way it handles windows has been bugging her for weeks. Well, she has a couple of hours free, so she goes to b.g.o to report the problem as a bug. A few minutes' browsing shows her that it's already in bugzilla, and marked with the gnome-love tag.

Let's imagine it's something like changing a loop which iterates over an array, and making it handle only members which have a certain flag set. (This is similar to how I myself got into GNOME.) Sure, it'd be a trivial thing to fix, since she's taken some C classes, but this is a college computer and doesn't have a development environment installed, and she has no means or inclination to get over the great hurdle of setting up access to a development environment. In 2006, the story might end here.

But this is 2010, so the relevant filename in bugzilla links to a Wikipedia-like site with the contents of the file on it. Every function has its own "edit" link; she creates an account on the site, finds the function she needs and adds the relevant "if" statement. She has the option of using plain text or a more Ajax-y IDE with syntax highlighting and crossreferencing in the style of LXR. Rather than changing the HEAD copy, the changes she makes affect only her sandbox.

Now she clicks "compile" in the sidebar and, after a few seconds of "please wait" while the build machine works on the problem, she's shown where she made a typo (two closing parentheses); she fixes it and recompiles, and finally the site gives her a link where she can download the newly-compiled binary.

However, in 2010, metacity has a large test suite, and the site knows about it. She clicks "test", one of the test machines gets to work on the new binary, and after a minute or so she is told that all tests pass.

At this point, there are four ways she can continue. She can edit some more. She can revert all changes in her sandbox so that it becomes identical to HEAD once more. If she was a GNOME developer (which she isn't) she could click "commit", provide a message, and add it into HEAD. But instead of all these, she clicks "make patch" in the sidebar, and it asks her for the bug number, and attaches it. Her future of contributing to free software is well underway.



(Post a new comment)

You are Enabling my Nerd self
[info]inyri_jax
2006-10-20 06:15 pm UTC (link)
and that is not a bad thing!

That is cool. Now I wonder, if, by chance, some yutz who had a mind to disaster would put in a "fix" or "patch" that created a new virus or bug, what would the system do?

That, in a nutshell, is my concern over Wiki. Anyone can change anything and change it for the worse.

(Reply to this) (Thread)

Re: You are Enabling my Nerd self
[info]marnanel
2006-10-20 06:18 pm UTC (link)
Random people, like the undergrad in the example, don't have write permissions. All they can do is what people can already do: make patches and add them to bugzilla to be read by the maintainers of the software. If the patches contain evil code, it will be caught when the maintainers read them. There's no change in this.

(Reply to this) (Parent)(Thread)

Re: You are Enabling my Nerd self
[info]frobisher
2006-10-20 06:49 pm UTC (link)
Ah, but do maintainers always catch dangerous code? I'm not convinced.

Not, mind you, that I think this is a bad idea or that there's no way around that problem.

(Reply to this) (Parent)(Thread)

Re: You are Enabling my Nerd self
[info]marnanel
2006-10-20 06:54 pm UTC (link)
I'm not saying they do always catch dangerous code; I'm just saying that the issue of dangerous code is orthogonal to the system I'm imagining here. This system lets people do things they can already do; the only change is that they do it remotely using a browser instead of locally using vi.

(This is with the exception of any automated tests, which would presumably need to run the submitted code. Perhaps those are less of a good idea.)

(Reply to this) (Parent)(Thread)

Re: You are Enabling my Nerd self
(Anonymous)
2006-10-20 10:26 pm UTC (link)
With the addition of Xen or even a jail, testing code can be made reasonably secure. That would also allow remote interaction with the code via a Java applet.

Actually, a very cool idea that I might even help develop if a project was started.

(Reply to this) (Parent)

Re: You are Enabling my Nerd self
[info]bluey
2006-10-20 08:12 pm UTC (link)
Since all it's doing is attaching the patch to bugzilla unless Random Jill has commit privs, wouldn't we have that problem today? Maintainers will usually not apply patches from bugzilla they haven't reviewed unless it's from a trusted source, so I don't see this as much of an issue.

(Reply to this) (Parent)


[info]naltrexone
2006-10-20 06:28 pm UTC (link)
I like your idea very, very much. I don't think there's any reason why your idea can't or shouldn't become a reality. I hope it does.

I think "storing code in a wiki" wouldn't necessarily be the way I'd frame it, though. I'd look at it more like a web interface for a tightly coupled version of CVS and bugzilla (perhaps further coupled with a wiki for developer discussions and documentation) that includes a browser-based IDE and seamless integration with testing suites and patch generation.

Which isn't much of a shift, but reframing it that way might lead to some additional insights in ways it could improve the community development experience.

Lord knows that if something like this existed for the Moz project, I'd be much more active in submitting patches. The hoops I had to jump through to even be able to compile Moz on a win32 box were astounding.

(Reply to this) (Thread)


[info]trochee
2006-10-21 02:05 am UTC (link)
I agree that this seems like a natural extension of the growing integration between Tinderbox, bugzilla and the venerable CVS.

Branch navigation for newbies is still too hard in CVS, but I suspect that CVS's successor source-control tools can handle this more easily. I really love the browser-based IDE which allows participants to compile and test on a shared test machine -- a great extension of Tinderbox.

And unlike the anonymous troll at the bottom, I think this is not a pipe dream. 2010 is more than achievable.

(Reply to this) (Parent)


[info]9000
2006-10-20 06:47 pm UTC (link)
Very interesting.

This supposes that CPU power is cheap by then, for compilation and testing are CPU-hungry and linking is not cheap, too. 15 years of my active programming experience shows that such things never quite happen :-\

(Reply to this) (Thread)


[info]homburg
2006-10-20 09:09 pm UTC (link)
I don't know about that - Comeau already have a page where you can upload code and have it compiled with their compiler. I don't see why current computers wouldn't be powerful enough for this scheme, especially if the compilation in this system was just to test the syntax (rather than re-building the whole application).

(Reply to this) (Parent)(Thread)


[info]9000
2006-10-20 09:29 pm UTC (link)
For certain types of languages, you don't need compilation at all.

But Gnome being what it is, that is, a set of large C applications, would take considerable amount of CPU, should this capability become popular. Note that [info]marnanel's vision includes getting a new binary runnable on client's system; cross-compilation is nothing new but has its pecularities.

OTOH, if there is not a lot of people simultaneously actually building binaries, even current PC technology can quite well allow for this. A system for producian a custom binary can be built even without fancy AJAX setup (and I do like and develop AJAX), with a text input page and a decent local text editor. There are nice web-embeddable source browsers, afaik, and cvs/svn over http is nothing new, too.

The real problem is, of course, money %)
Some anti-abuse measures should be taken, too.

(Reply to this) (Parent)

Where can I get some of those?
(Anonymous)
2006-10-20 07:40 pm UTC (link)
Where can I get some of those wonderfully powerful drugs you are taking?

Could happen today, wont happen.
Might happen someday fat chance of it happening anytime soon like 2010.

(Reply to this)


[info]sosiouxme
2006-10-21 09:38 am UTC (link)
that's an awesome idea. maybe sourceforge will do this.

there is a bit you left out which might cause problems though. although the patch might work and pass test suites, since our hypothetical student is on a university computer, chances are she can't actually try it out to see if it does what she expects. for that to happen, the metacity site would not only have to be able to compile the code, it would have to package it for her particular distribution, and she would have to have access to install (hopefully as an alternative to the officially installed version) the test version of metacity and configure her machine to use it. and even if she could make a patch and someone accepted it, it would be sometime before it made it back downstream to her official university install.

the administration issue is really beyond the bailiwick of the open source project itself, and for that reason i wouldn't expect a real solution.

however, for something less fundamental than GNOME or metacity, it might be entirely reasonable to expect to be able to download a compiled binary and just run it to see if it works as expected. and for people with access to install things on their own computer, there's still the packaging problem, but this would surely make it a lot easier to try things out. getting past the hurdle of setting up a development environment would have to be very valuable to open source.

(Reply to this)


[info]furahi
2006-11-03 05:34 am UTC (link)
WOW, wouldn't THAT be amazing? A development Wiki

Thisbeing 2006 I don't think even Google would *dare* trying to give CPU resources enough to compile an application to anyone outside if their offices, but hey, for 2010 it sounds almost plausible. Who knows? We might get 1024core processors by then =P (installed in motherboards that take 4096 of those, of course)

(Reply to this)


Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…