Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Extreme Community (discussion)

by deprecated (Priest)
on May 08, 2001 at 04:24 UTC ( [id://78731] : monkdiscuss . print w/replies, xml ) Need Help??

So I have a ton of projects open right now. I'm working on, pretty well simultaneously, And a whole slew of other things. dusk and I get to work on another of my modules together, and I frequently get help from japhy and converter.

Not too long ago, I took down a whole bunch of notes about why my idea was as cool as it is. I have since lost them. This, then, is off the top of my head.

Extreme Community is...

Extreme community is what happens when you take Extreme programming (please see Kent Beck's book or Extreme programming... in perl?) for more information) and smoosh it into a community. Folks, I write redundant code. I have a pet subroutine that I have been revising for at least two years. It's now highly specialized and does everything I want it to do flawlessly. I find that from time to time, its great to just drop code like that into people's laps. It saves them an hour or two of code and does what they want.

My friend patrick told me the other day he had this great idea. He wanted to write a script to look at his hard disk, grab the mp3 names, and then query the CDDB to find the names of the tracks he was missing from the cd's that he had. Well, I have 80% of the code that does that. Now, imagine on the scale of a thousand monks. How many of us are doing the same thing? In XML Application Servers, Coyote describes an application that does almost exactly what my current client does. I obviously couldnt just give him their code, but I could contribute lots of insight into how that is done. Read on, intrepid monken...

A Vision of more productive programmers...

So imagine I decide I need a pair programmer. I've got me, but I am now desperately in need of code reviews. Who better to review that code than somebody who is working on a similar vein? Furthermore, if you put the two of us together, you get the combined mass of both of our code. So you get code done quicker, and you get more thoroughly debugged code!! Whoa! Imagine that!

Sure, sourceforge does this. But sourceforge is not a community. Its not close-knit. There arent discussion forums. There arent Code Catacombs. As tilly said in Re (tilly) 3: Licensing and Rape-Proofing your ideals.,

    As my friend Karsten pointed out to me, deprecated is not anonymous to me. He is a pseudonym. He is an identity. He has a lot invested in that identity. From that identity I could probably track down the person. Then he really wouldn't be anonymous. In fact I could probably just ask him who he is. The odds are that he would tell me, I could call directory assistance and could tie the identity he has built up to a name known in the real world and a voice on the phone. I would then have attached the identity to something the real world recognizes.
We, for the most part, are all friends, and get along. We're on good enough terms that we could sit down and code together. Imagine the stuff we could produce. Even if we didnt produce anything as a whole, imagine all the snippets and nuts and bolts we would produce. I have something on the order of 800mb of perl code (that is a LOT of perl code) sitting in my /devel directory. I've been thinking recently of making a cronjob to just stuff it all into a publicly readable web directory. In fact I may do that if people ask for it. It might not be useful to everyone. It might not be useful to me. But somebody might find it useful. And that saves me time, and it saves them time.

So I thought about how cool this would be and I thought to myself, well, brother dep, it would suck a lot to just dump this in vroom's lap, and you know he wont code it up. He's too busy. So, I went out and I installed the Everything Engine. I checked this software out. It seems like it could support what I'm talking about. A separate section where users could make new project nodelets and add requests for codeninjas to them and post the stuff they find useful and stuff. I'm just no good with the EE. I cant seem to figure out even beginning to develop with it.

jcwren's recent idea, Web Hosting for Monks is a good one. I propose a similar one. Code Hosting for monks. I can put up an anon ftp site where users can upload tarballs of code which can then via cron and some trickery, be exploded into hierarchial web directories. This isnt so tough to do.

I'd like to know if people are receptive to this. If I get a positive response, I will put the EE back up and allow anyone to hack on it who would like to. My webserver can handle far more hits than its bandwidth can support, though I am putting it on a T1 as of 18 May 01.

I'd also like to know if anyone has suggestions as to ways to integrate such a Code Vault with other communities.

As for security, well, I am pretty good about that kind of stuff, and I think I can handle a single anon ftp dropbox. I'm happy to give out shells for users to maintain their own dirs, but I think jcwren has that handled.

brother dep.

Laziness, Impatience, Hubris, and Generosity.

Replies are listed 'Best First'.
Re: Extreme Community (discussion)
by mincus (Chaplain) on May 08, 2001 at 04:51 UTC
    Great idea, very ambitious. Perhaps it might be best to consider combining this with what is already going on with jcwren.

    I tried to get into sourceforge once... but it was difficult for me to get hooked on it, because there, as you said, was no community aspect of it. If any of my friends read this, they would cringe, because when ever I talk about the internet, all that comes out of my mouth is community this, community that. But, most of the successful websites have all had that aspect, and they all have a way that the community is in "control" of the site.

    As far as the extreme programming goes, I envision threads of short code snippets for what ever the project is, that have a quick succession of improvements and optimizations ala PMs very own golf tournaments. The code could be categorized and then that thread would be avail to people wandering through the site for a very tight and efficient way to do things...

    again, I think that it is a wonderful Idea, and I would love to take part in it... Im sure there are some giant hurdles to this happening, but it seems like it would come together if there was enough interest.

    sorry for the incoherent rambling... I tend do that when I get excited about an idea...


Re: Extreme Community (discussion)
by koolade (Pilgrim) on May 08, 2001 at 07:25 UTC

    That sounds to me too like it'd be a good project. The biggest problem would be find a good way to wade through the mess. I have a lot of perl code laying around too, but not all of it is "production quality". I think it's great that you have 80% of what someone's looking for, but will it take them more time to learn your existing code and finish it than it would for them to start from scratch?

    I think the code would have to be organized very well, and put into well-defined titles. There's a lot of potential for forking code when you look at smaller programs. Deciding between a script that queries CDDB for mp3s named Artist_Album_Song.mp3 versus a script that looks for Album_Artist_Song.mp3 would be a nightmare. It might be better to focus on larger projects than those that are more on the side of under 1000 line throwaway scripts.

    Also, there are hundreds of sites out there where you can download one of thousands of CGI scripts. It's really hard to find good stuff there, and something that fits your needs. This couldn't be one of those sites. Again, maybe it would have to focus more on consolidating duplicate efforts so that there's less noise, and less bad code.

    But yeah, if we can solve some of the implementation problems, it's definitely something I'd be interested in.

      I think this should not be a replica of CPAN... This is an opportunity to peer-review code that isn't polished enough to submit to CPAN to be saved for posterity. (Also it's an opportunity to review polished projects, but that shouldn't be the limit for inclusion.) If you catagorize by project, then yes, you'll have a lot of repeated projects that are impossible to choose between. If you catagorize by individual module or script, there will be many thousands of files to catagorize. I'm more in favor of an amorphous, dynamically organized collection, because who really wants to manually sort n-thousand individual scripts into catagories?

      The code should definitely be indexed and searchable. Preferably NOT publically on google, because I don't want my grungy five-year-old mistakes being aired in public.

      Code should be indexed on either comments and POD, or just on POD. That means the most descriptively documented code gets the best reviews. :-)

      Is there any way to replicate google's "page rank" and further weight the result by a "code worthiness" and/or "coder XP rating"? That would help people who are looking for good code to learn from and use.

      Finally- incentive to review. I think the XP system is a good one. Reviewers gain XP and grant code worthiness points. Code that's been deemed worthy should be offered upon the altar of CPAN. :-)

      Implementation-wise, could this be done as E2, translating directories into nodes and files inside the directories as sub-nodes? (yes, I realize I said "finally" in the last paragraph. But implementation comes after design. :-)

Re: Extreme Community (discussion)
by snafu (Chaplain) on May 10, 2001 at 20:46 UTC
    I have to tell you that I really really like this idea and jwcren's idea! I would like to help out but my time and resources are limited. I will definitely contribute in any way I can though. I have already emailed jwcren for an account. I see this as a huge boost for the perl community out there!!

    I am still very new to perlmonks. I would love to actually be able to know some of the folks here. I think that your ideas will be a catalyst for this to occur.

    - Jim