Slashdot Mirror


Open-Source Component Repository?

Aiken wrote in looking for comments on an idea he's had. To sum it up, what do you all think about this: "The development of a central GPL'd component repository would be an asset to the open-source community". My question: Do you all think this exists (couldn't Freshmeat be used for this purpose) or is this a niche that is still open? There is MUCH more to this, so if you are interested, please click below.

The following was submitted by Aiken:

Premises

  • Companies that do extensive programming develop their own software libraries... binary trees, networking code, graphics routines, things that need to be done in all sorts of programs.
  • While the open-source community has developed excellent tools (emacs, ecgs, etc.) to do their programming on, we have not developed such components.
  • A critical issue facing open-source developers is how to find other developers who will contribute to their project.
  • Having access to well-tested and proven components such as these could greatly decrease development and testing time needed for other software.

Conclusion

The development of a central GPL'd component repository would be an asset to the open-source community.

Elaboration

Consider the Standard Template Library. Linked lists, stacks, queues, and the like can all be used without having to write them from scratch and debug them. This saves time and improves readability, since they follow a common syntax and have common operators.
The open-source community is not bound by restrictions held on the standard library. We can write code that deals with networking and image formats that are commonly used, regardless of whether or not they are in the standard.
Generating repositories of these components would allow casual programmers to dip into a vast resource base. Instead of spending their limited time finding other programmers to help out, they could simply take and use the code that was already written for them. Rather than create a subroutine for a single program, you would create a component which could be used in hundreds of programs by developers you didn't know existed.

Issues to Consider

Just some kinks in the idea that I can see needing to be worked out:

  • How to ensure that components are GPL'd... e.g. that some student's university doesn't want to claim credit for the code they wrote
  • How to ensure quality code and documentation
  • Who should run the repositories
  • What components to provide

Thoughts? aiken@quakemail.com.

170 comments

  1. Counter examples... by kwerle · · Score: 2

    The various libraries gnome uses?

    The CPAN PERL modules.

    MiscKit. gnustep.

    To name a few off the top of my head.

    1. Re:Counter examples... by Anonymous Coward · · Score: 0

      I think the point here is not ftp servers and project homepages. It is an online LIVE repository of software objects that could even be used remotely. The real power of object technologies have never really been explored on a grand scale. (due to the fact that CORBA is just now gaining wide spread acceptance) Think about a huge collection of objects that could be fetched on demand by programs, report errors to a central authority, provide some type of cvs-like interface for debuggers to check code in and out. It could be like OpenDOC or OLE to the Nth extreme. Wouldn't it be cool to have objects embeded in a document that physically reside half way around the world? Corba and the different object schemes could actually do for software development what HTTP did for information retrieval.

    2. Re:Counter examples... by Anonymous Coward · · Score: 0

      > It is an online LIVE repository of software
      > objects that could even be used remotely.
      No. You've missed the point by a country mile...
      The aim is reusable components (not online
      ones that can be integrated).

      > The real power of object technologies have never
      > really been explored on a grand scale. (due to
      > the fact that CORBA is just now gaining wide
      > spread acceptance)
      Due to that fact that CORBA is the 'Standard'
      and is far too inflexible for general
      experimentation. (Personally, I'd like
      something with an interface resembling
      Smalltalk, not C++).

      > Think about a huge collection of objects
      > that could be fetched on demand by programs,
      > report errors to a central authority, provide
      > some type of cvs-like interface for debuggers
      > to check code in and out. It could be like
      > OpenDOC or OLE to the Nth extreme.
      Pinch yourself. There'd be a large amount
      of work required for a runtime environment
      that could support what you describe.

      > Wouldn't it be cool to have objects embeded in
      > a document that physically reside half way
      > around the world?
      Like or tags in an HTML document?
      Already done on the web. The problem is
      'canning' the document, such that it's global
      dependencies are removed.

      > Corba and the different object schemes could
      > actually do for software development what
      > HTTP did for information retrieval.
      Different object schemes, possibly.
      CORBA? Definately not!

  2. It exists... by Anonymous Coward · · Score: 0

    There is such a repository, it's the internet.


    Networks Never Lie

    1. Re:It exists... by Foogle · · Score: 2
      Fair enough - if the Internet is a repository, then we need a catalogue :)

      -----------

      "You can't shake the Devil's hand and say you're only kidding."

    2. Re:It exists... by N!ght$h@de · · Score: 1

      But it would be nice to have one URL to go to for the purpose of downloading all the new stuff...

      --
      **There are varying shades of darkness, I am but one of the many.**
    3. Re:It exists... by Anonymous Coward · · Score: 0

      Doesn't Andover have a site like that already? www.freecode.com?

  3. Good idea! by Rayban · · Score: 2

    It's like the Giant Java Tree... I don't see any reason why it would be a bad idea. The worst that could happen is that a few projects get a new home.

    --
    æeee!
    1. Re:Good idea! by jilles · · Score: 2

      What we really need is standardization. Standard APIs and custom implementations. If there's one thing you can learn from the Java platform it is that standard APIs are very convenient.

      It's much easier to standardize APIs then component implementations. The reason for this is that there is never a single best implementation for all circumstances. With standard APIs forking of projects is no longer a problem as long as the API is preserved.

      BTW. what exactly is meant by a component here. Corba? A C library?

      --

      Jilles
    2. Re:Good idea! by Anonymous Coward · · Score: 1

      And here's a a link to Giant Java Tree :)

  4. Not Freshmeat by KBrown · · Score: 2

    Freshmeat is a references repository where you find the links to each project's home page and download places, but (as Murphy said) when you find in Freshmeat the app you need the most, the ftp server where the app is suposed to reside is offline and the project's home page is offline also. You then just end with a bunch of useless references.

    The need is for a central FTP repository (with enough mirrors) where every project leader should upload every project's release.

    Then Freshmeat should have the reference to the project's home and to the directory in the repository where you can get the sources.

    --
    --
    1. Re:Not Freshmeat by Anonymous Coward · · Score: 1

      I agree totally. But there is no need to despair, because there already IS an Apps site that is OpenSource only: AppWatch. No commercial stuff, only apps announced on the same day, a "not-maintained-means-useless" policy, and a real effort to keep the information updated and organized. I think that with very little modification AppWatch could become this new GPL (or rather OpenSource) repository. All the GNU stuff is already there, and over 650 OS apps are already catalogued and being tracked.

  5. CPAN Works nicely for Perl... by DiningPhilosopher · · Score: 2

    Perl has just such a thing (as I'm sure most of you know) - CPAN, the Comprehensive Perl Archive Network. I've done Perl development from time to time and I've often found very useful things in CPAN which I could directly apply to my work.

    I program primarily in C and have never seen the C CPAN equivalent... I would love to see a widely mirrored repository of reusable C code.

    As far as quality goes, CPAN seems to be of very good quality... I have no idea how submissions are handled, but I assume there's some sort of acceptance process. If it's all self-regulated I'm impressed.

    --
    /* The beatings will continue until morale improves. */
    1. Re:CPAN Works nicely for Perl... by SEWilco · · Score: 1

      Yes, CPAN has a pile of stuff. Now go to their web site, find the Gtk-Perl module, and figure out how to download it. Something about the arrangement tends to make me look at everything by a particular author...

  6. Sounds good by Foogle · · Score: 1
    Sounds like a real good idea. Freshmeat's not really the place for it though. There's not enough structure at Freshmeat and, unless you know what you're looking for, it'd be hard to find a needed component.

    A new site perhaps? GPLStuff.com?

    -----------

    "You can't shake the Devil's hand and say you're only kidding."

    1. Re:Sounds good by thal · · Score: 1

      > A new site perhaps? GPLStuff.com?

      gasp! hurry up and register it! _never_ mention a catchy phrase with .com after it without realizing that someone else is going to beat you to the punch.

  7. CPAN Anyone? by byoung · · Score: 2

    It seems to me that this *has* been done before, with much success. I'm referring to the Comprehensive Perl Archive Network.

    CPAN enables the Perl programmer to not re-invent the wheel one more time. I'm sure that most of the people here are aware of it (being that there seem to be a lot of Perl bigots here).

    I think that something similar could be set up for C/C++ code, but I'm not volunteering! =)

    I don't really know if freshmeat is the right location for something like it, but that's purely subjective.

  8. Good idea... by Anonymous Coward · · Score: 0

    This sounds like a great idea. There's numerous time's I've had to 'fix' someone else's program, and lots of the routines are just 'hacks' which barely do their job... If instead of
    each programmer hacking together a barely-working, spagetthi-code routine to read x or y format, they could use a standard, well-tested library... This would greatly help
    the problem of many linux programs being less than bug-free, and would add to their maintainability. This sounds like something open-source programmers should *definitely* embrace.
    Proud Coward, too lazy to create an account...

  9. Why Open Source by Arandir · · Score: 2

    If it's going to be GPL'd only components, then the majority of Open Source licenses will not be able to use any of them. So why call it Open Source? Why not simply "The GPL Component Repository" instead?

    Far be it for me to tell the repository maintainers which components they can or cannot accept, but I think if they were a bit more flexible, and allowed at least LGPL components, then it would be much more useful for the Open Source community. I think the freshmeat method of listing which license a component is under would be even better. Then we could have GPL'd, LGPL'd, BSD'd, AL'd, MPL'd, etc, components, and a developer could choose which component best met their needs.

    --
    A Government Is a Body of People, Usually Notably Ungoverned
  10. I can see the ideology becoming a problem here with regard to the licensing of such components. There are other problems too, but let's just consider the GPL issue.

    The General Public Virus is all very well for something like Linux, where the only thing you are likely to derive from the existing codebase is -- another Linux. Components are meant to be generic and widely-usable by their very nature. Will putting them under GPL mean that they infect the code that utilises them? That is the GPL's intent. This will make such components unusable not only in proprietary software, but also in BSD-licensed software (and public domain software for that matter). Such a severe limitation is counterproductive, in my estimation, and will probably limit the potential success (measured in terms of active users and contributors) such a project might otherwise enjoy.

    I would therefore suggest that the LGPL be used in preference to the GPL, if one insists on a GNU-derived license.

    --
    proof, n. A demonstration that a conclusion is implied by certain premises and axioms.
    1. Re:GPL? by Starselbrg · · Score: 1

      Oh shut up. The GPL is not a virus, and if you want to make a non-GPL product, then don't put the GPL code into yours. The intent of the GPL is not to infect others, it's to allow freedom. If the GPL wasn't "viral" than anyone could take the GPL'd code, use it, and not give anything back to the community. It's intended to prevent that from happening.

      We all owe a lot to the GPL, so quite your snivelling about it being a Virus and don't use GPL'd software if you don't want to.

      --
      Got HTML? Want LaTeX? Try html2latex
    2. Re:GPL? by Klaruz · · Score: 1

      I think using the LGPL would be a given, since this would esentially be a library depository. What about something like how debian groups free /non free software in their apt system. LGPL/GPL libs and non GPLed libs. I know I'd prefer to use LGPL libs in my software whenever possible, but if it comes down to it I'll live with a restrictive license to get the job done in time.

    3. Re:GPL? by Arandir · · Score: 2

      Maybe it's not a virus, but it is infectious. One line of GPL code in a 100K BSD app will force the entire app to be GPL as well. If that isn't infectious, then what is?

      If this is the behavior you want with the GPL, then BE PROUD OF IT, and stop snivelling about it not being viral. Stand up and proclaim to the world that you use the GPL precisely because it's a viral free license!

      But the topic at hand is a component repository. If everything in it were GPL libraries, then only GPL apps could use it. Not even LGPL libraries would be able to use it! I'm assuming that this repository would be for the whole community, not just GPL-only coders.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
    4. Re:GPL? by Anonymous Coward · · Score: 0

      Which is it, "The GPL is not a virus," or "If the GPL wasn't 'viral'" (admitting by the inverse hypothetical case that it is)?

    5. Re:GPL? by Anonymous Coward · · Score: 0

      Oh grow up. The GPL portects code under the GPL. You may not use your closed or non-GPL code to remove the rights of the USERS to further modify distribute etc. If you don't like this don't use the GPL code. Write your own and don't whine that you can't steal from us.

    6. Re:GPL? by Wolfier · · Score: 2
      If that one line of GPL code is in your 100K BSD app, it is because you want to use that line - i.e. if you tend not to use the GPL for your app but use even one line of GPL code, it is your fault.

      It is different from a virus, where an executable is passively infected without you knowing it.

      Therefore, by the nature of a virus, the GPL is NOT viral. If you insist on calling it a virus then I guess it must be a virus that depends on manual infection thru the hand of programmers.

      Try to find a virus behaves just like that!!

    7. Re:GPL? by Imperator · · Score: 1
      One line of GPL code in a 100K BSD app will force the entire app to be GPL as well.

      I've got it! I'll write the incredibly-useful "Include IO Stream Library" (which won't even compile), put it under the GPL, and anyone using that line of code will have to release their product under the GPL?

      --

      Gates' Law: Every 18 months, the speed of software halves.
    8. Re:GPL? by Starselbrg · · Score: 1

      I put the viral part in quotes as a gesture meaning that I use the original author's words, but don't believe in them. It's a form of written sarcasm.

      --
      Got HTML? Want LaTeX? Try html2latex
    9. Re:GPL? by PG13 · · Score: 1

      I don't believe this is quite true. No program could use the static libraries..however given that you cannot copyright the library interface (hence why WINE can be free) anything could load the shared library

      --
      Marriage is the "pseudo-ethics" that cloaks the messy truth of sexuality in the raiment of propriety -- it's "Don't Ask,
    10. Re:GPL? by Anonymous Coward · · Score: 0

      it is pretty easy to look at a file or group of files and see if they are covered by the GNU GPL. if you don't like that license, don't use the code. also 1 line of code is not covered by copyright, just as a single sentence isn't copyrighted by it's author. i imagine anything greater than 10-20 lines of code is copyrightable and then you must abide by the license of said code.

  11. ive had a similar idea - didnt get posted tho. by matman · · Score: 1

    Well, I've had a similar idea to this. Such a site could be used as well as a central repository not only to software components, but also to open sourced projects as a whole. Also, it could serve as a place for people to start when looking for information and for the people who are in charge of certain things. I've done a fair bit of thinking and have already started some preliminary work on such a project. I'd LOVE some help/to help someone else out who might be further along than I :) email me :) johnston@itactics.com and i'll get back to u ASAP

  12. Source Code Verification by debrain · · Score: 3
    Since there is no way to automate source code testing, one of the issues that has been abound is some way to rate various types of software, based on their robustness. It'd be nice if there was a linear scale (ie. 1-5, 5 being mission-critical, threaded, scalable) or some such in a t-uple. (ie. (a,b,c), where a is efficiency, b is scalability, c is stability).

    The next big thing is documentation. Some sort of XML standard for code and project and app documentation (separate, of course, but related), would be just dandy for everything. Relating everything ala one standard is what makes things work in nifty ways.

    And a centralized source would be great. ie. something to Linux what CPAN is to Perl. That'd be a *huge* repository, difficult to update, on ultra-fast servers. That makes things very difficult to find as well. (See microsoft.com)

    These things are difficult to implement without a given infrastructure. Without said infrastructure available to everyone, and used ubiquitously, things will probably centralize around companies such as Caldera, Red Hat, Corel, et al. The only difference is that, instead of a centralized repetoire of Linux software, it's distributed (perhaps with lots of overlap) between companies. That might be a good thing, though, as there is no central point of failure, and it is a competitive system.

    My wish list. :)

    1. Re:Source Code Verification by Bastian · · Score: 1

      I could see taking criteria like that and starting a project for Open Source programers similar to what the Hornet Archive was for the demoscene - a searchable directory listing of stuff with each entry having a small blurb about platform, language, maybe a 10 word abstract, and a link to the actual stuff, and have the coordinators review everything and make sure it fits a standard format and check to see the code works.

      Though I can't see many hackers wanting their contribution to the Open Source community being reading/reviewing code rather than making/modifying it.

  13. Sounds like C Snippits by named · · Score: 1
    From the old Fidonet (newsgroup? can't remember what they were called then) C discussion area.

    IIRC, they're still on the web (though not as comprehensive as I remember them). http://www.brokersys.com/snippets/

    they'd be a good start for something, in any case. There are lots of goodies (though some really old, irrelevant stuff too) in there.

    1. Re:Sounds like C Snippits by Anonymous Coward · · Score: 0
      From the old Fidonet (newsgroup? can't remember what they were called then)

      We called them FidoNet EchoMail. (Yes, its off-topic, but let's leave room to reminisce)

      Ahh, the joys of being a FidoNet node.. Man, I loved that network :)

      Jimbo, 1:124/2342

    2. Re:Sounds like C Snippits by MobileC · · Score: 1

      Or Pascal's SWAG - Source Ware Archival Group

      --

      Fran
      :):):)
      1st 1st Poster of the new Millennium!

  14. Hmmm... by antizeus · · Score: 1
    At first I cried, "Such a thing would be useless to me! I like building things from the ground up!" I'm the sort of person who reinvents the wheel a lot. This is good for (1) educating myself about hard-core low-level details, and (2) building things that do exactly what I need, no more, no less.

    Then I realized that I could in fact use such a repository after all. Lately I've been thinking about looking into writing device drivers. I've never done such a thing before, and wouldn't know where to start (except searching for some basic knowledge on the topic). If I could go to this hypothetical repository and grab a few device driver templates, that would go a long way towards my education. I'd probably still end up building them from the ground up, but at least I'd have some training wheels to use before reaching that stage.

    That's that I think would be most promising about the repository idea. Not being a source of code that I can rip and put into my own projects, but rather a source of examples to learn from. The more I think about it, the more I like it.

    --
    -- $SIGNATURE
  15. Duh... by Squirtle · · Score: 1

    Guys, before we can have a component repository we need a component model. We don't have one.

    1. Re:Duh... by Anonymous Coward · · Score: 0

      Something COM like? Mozilla's XPCOM?

  16. Maddog would seem to agree... by DiningPhilosopher · · Score: 1

    Your comments remind me of comments made by Maddog Hall at the last Linux World Expo here in San Jose.

    He brought this up as a very understandable example of the value of open source in general... Lots of companies develop tools and components which are not really part of their products - generic applications for doing standard boring business things. These companies wouldn't hurt themselves by sharing such applications, at least from a marketing or legal perspective, and they're constantly wasting money developing these things when others already have them lying around.

    I don't see why this concept should apply only to whole applications and not to smaller code fragments (e.g. a good hash table implementation).

    --
    /* The beatings will continue until morale improves. */
  17. Already dealt with... by jfrisby · · Score: 1

    To an extent, this is already dealt with in the form of domain-specific repositories like CPAN for Perl...

    I hereby volunteer to set up such a thing for Mason components... Easier than for C++ since Mason is innately component-based... :)

    I had already planned on distributing Mason components on my site -- those that I developed at least... I think it works well to expand that idea...

    Jon Frisby, Sr. Software Engineer,
    Personal Site (MrJoy.com)

    --
    MrJoy.com -- Because coding is FUN!
  18. Component Format? by Lally+Singh · · Score: 1
    If we do something, we'd have to do something
    around the area of an object repository. Not
    just library implementations; most linux dists
    have waay too many libraries that do far too little.

    Perhaps we could build some kind of description
    format, like which design pattern it follows,
    dependancies, runtime costs, time complexity,
    etc...

    Something to think about.

    --
    Insanity Takes Its Toll. Please Have Exact Change

    --
    Care about electronic freedom? Consider donating to the EFF!
  19. Freshmeat by pb · · Score: 1

    Yep, there's no reason Freshmeat couldn't be used for this.

    It has a section for "License", I guess if you could search by that, or search for what you want and check the "License" field, it'd work perfectly fine.

    Or, for the really lazy, write something that searches Freshmeat and parses the output if you don't want to do it the old-fashioned way. (i.e. reading it yourself. :)
    ---
    pb Reply rather than vaguely moderate me.

    --
    pb Reply or e-mail; don't vaguely moderate.
  20. Diversity of code by xanth · · Score: 1

    The problem with creating a single monolothic open source repository stuffed with functions and class libraries for everything under the sun is that people's needs are far too diverse. The current model, where tidbits of functionality for specific topics are maintained by various organizations considered "authoritative" in that field, has proved fairly effective. Some notable examples include netlib, libwww, ARPACK and of course CPAN.

    I'm not sure what purpose would be served by bringing all of these various efforts under a single roof. They all have differing philosophies, goals, and styles. Some, such as ARPACK, are highly domain specific, and its maintainers are unlikely to care about "generic code repositories." The STL filled a very important niche, but having gotten the basic algorithms and data structures out of the way, creating a massive interdisciplinary code repository is an unachievable and perhaps undesirable feat.

  21. Not a bad idea. by Amphigory · · Score: 3

    This is not a bad idea, but there are some issues you are going to have to deal with.

    First, for this to be of maximum effectiveness, you need to make some evaluation of the quality of contributed code. One of my big problems with Freshmeat is that, when I am presented with 17 http proxy servers, I have no idea whch one is the freeware standard under active development and which one is some guys perl script until I download them.

    Second, in an ideal world there would be some standards applied to the modules. What do you do when you have three different tcp/ip socket abstractions, dependent on three different string classes? And you also want to use the database class, which is dependent on a fourth string class?

    Also, don't confuse components with just code modules. Components are bigger, and have a simpler interface. Typically, they represent a significant body of code, unlike a function. Component based programming is about plugging together the components with very little glue code: hardly the same thing as a "function library".

    Also, it seems to me that for maximum effectiveness in components, you need a standard in interfacing them above and beyond a functionc all interface. Currently, GNOME uses CORBA, KDE is using something of their own spinning based on libICE and their own RPC mechanism and CORBA (ARG!), and everyone else is spinning and just using libraries.

    So, you have three choices. Pick between GNOME and KDE (and have a lot of components that a lot of people can't or won't use), develop your own component standard (how many ways can I say bad idea?) and carry two sections, one with KDE components and one with GNOME. Oh yeah... You could say that your repository is less for components than libraries: still a worthwhile project.

    What I would really love to see is you foster development of new software and adaptation of existing software to work within a given component framework. I dearly wish GNOME and KDE would standardize, but it looks like they won't. I really don't know which is better: GNOME seems better developed, KDE seems to likely engender better support in the OSS community.

    Anyway.. Those are my thoughts, do with them as you wish. Let me say that I would LOVE to see a component archive -- but I think it's going to have to come with standardization of some kind. Guys: we have got to agree on a common standard environment, including at least interoperability.

    One thing you could do is this: develop some components under straight CORBA, avoid doing GUI components altogether for the time being (until some standards develop), and hope that KDE actually continues with CORBA now that they've partially "dissed" it.



    --
    -- Slashdot sucks.
    1. Re:Not a bad idea. by Mouse · · Score: 1

      With CORBA 3.0, there will be a standard for components called CORBABeans. From what I have seen of the standard, it look extremely promising.
      It is platform neutral. Supports local and distributed operation. It is a mimic of the JavaBeans standard which is really very cool except for the poor performance ...

      It could be a contender for use in such a repository, as well as, GNOME and KDE.

  22. This already exists: AppWatch by Anonymous Coward · · Score: 0

    If the issue here is an Open Source-only Apps site, it already exists. Check out AppWatch.

  23. What about other Alternate-OS users? by babbitt · · Score: 2

    While I realize that /. is primarily a linux-related area, I would like to call attention to those fledgling programmers who would like to develop open-source software on other, more propriatary platforms. I use BeOS.

    While I realize that C code is C code, I would just like to mention/propose that other OS-specific code be accepted also. I have no clue how to impliment a BWindow() :)

    --
    "AOL, CIA, NSA, whatever, they all collect information, and they are all out to screw the american public"
  24. Sounds like Abisource by grappler · · Score: 2

    have you checked out Abisource? I think that's more or less the kind of thing you mean.

    They are working on productivity apps, but I believe they also have a repository of useful code that would fall under the "components" heading.

    Of course, I could be wrong, in which case it would be just swell if somebody would correct me...

    --
    grappler

    --
    Vidi, Vici, Veni
  25. A Question of Licences by dmoen · · Score: 1

    I hope you don't mean that *only* GPLed code would be allowed in the repository. A repository of reusable C and C++ components would be of much greater benefit to the Open Source community if other Open Source licences were permitted, as well as public domain source code. That's because the GPL is incompatible with most other Open Source licences (eg, original BSD, MPL, QPL), and there are quite a few Open Source projects that don't use the GPL. My personal preference for reusable C/C++ components is the public domain, because that is compatible with *all* Open Source projects. I'm hoping to publish some reuseable C++ components next year, and I'll make them public domain for this reason. Will I be permitted to contribute to this proposed repository?

    --
    I have written a truly remarkable program which this sig is too small to contain.
    1. Re:A Question of Licences by NovaX · · Score: 2

      If its public domain, couldn't they just GPL it? Then, even if they do play the scrouge, your code is up for use. That kills off the reason you'd make it public domain rather than GPL.. but the point of making it free was to allow anyone to do with it as they pleased.

      Anyway, I doubt that only GPL code would be allowed, just anything that complied with OSI. A few reasons... much of anything done turns out to be for ego, it would reduce the ammount of code/apps submitted (thus reducing the quickness of success), and with the notion that open source = higher morals (and its not even ==), people would bash them for only GPL code (they might be all GPL-lovers, but its the social trend). The FreeBSD driver site that was announced a few weeks ago went BSD when people whinned (Linux people only I believe.. I didn't see anyone say "I'd love to have them support OpenBSD.. would make my life a lot easier." And of course.. the next thing I saw after the change.. "will they support Darwin?"

      So never fear.. if they build it.. they'll take your code for right or wrong, but they'll happily take it.

      --

      "Open Source?" - Press any key to continue
    2. Re:A Question of Licences by Arandir · · Score: 1

      If you make the stuff public domain, there is nothing to stop the repository from slapping a GPL license on it to prevent YOU, the original developer, from using their enhancements on your own public domain projects.

      Perhaps think about submitting them under a MIT like license. No one would be able to change the license, but they would still be free to use whatever license they wished for any derived code.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
  26. Big issues just below the surface by srp · · Score: 3
    We've kicked this idea around for the last two years. The biggest thing is coordinating everything, documentation and versioning.

    A few issues:

    Once a component goes into the repository, what's the best way to keep backwards compatibilty?

    Who controls versioning for each component, and decides what goes into it?

    Most coders hate writing doc. How do you maintain consistancy for your docs?

    Someone pointed out that you need a component model; there's at least one group that's working on that (name escapes me at the moment).

    Which languages do you support? Do you have interoperability between languages? What do you use now? Corba? It's going towards the JavaBeans model in the next version ....do you go for that?

    Those are just a few of the things to worry about.

    Don't get me wrong, I think this is a great idea. It's going to take a LOT of work to coordinate.

    I think the best way to handle this is to get a very small group (four or less) people together, and decide these, and the other issues that will arise. Don't use any more people than that...if you do, the committee will argue until they're blue in the face, and you'll never get anything done.

  27. get more adventurous by hatless · · Score: 2
    CPAN is a good starting point for inspiration.. but could it be taken further?

    What if you could take the CPAN system's support for automated download and install of modules and apply the concept to, say, Java environments in some of the following ways:
    • Automated download and install of beans, JARs, etc. from any of a set of mirrors via CVS, WebDAV, FTP, ot the like.
    • Distribution (and auto-generation) of Javadoc, UML diagrams, beaninfo, etc through similar open mechanisms
    • Integration with development environments, to allow the repositories to be browsed as though all the files are local, by distributing RDF catalogs of metatdata. (Picture GnoRPM to get an idea of one UI approach to this). Selecting a package would trigger retrieval of API docs, class diagrams, or the package itself.
    • Similarly, a utility analogous to AutoRPM could handle automated, unattended installation of necessary packages. RPM itself could be the means for this, but maybe it could be taken further to standardize such actions as installing and registering a servlet, genertating IDL, deploying code on an ORB, etc.

    In other words, making a freshmeat not for direct human access, but for automated machine access and autodiscovery.
  28. Very good idea by wiliano · · Score: 1

    It would be very nice to have one common place for component/(C++ class) shopping. I think that the open source community by its nature would greatly enhance the quality of such components. For example, instead of 50 people writing 50 different Date classes for their individual projects, the effort could go into producing a high quality Date class. There are many people that could contribute their expertise. I'm sure there are thousands of developers more knowledable about re-entrancy issues than I am, and they could add their modifications to the code for the benefit of everybody else.

    So next time that you need a drop down combobox with multiple selection and user defined icons for KDE or gnome.... or you need graphical speedometer component, you just might find it at the code repository.
    Willy

  29. Metalab (aka sunsite) pretty much does a good job by nyet · · Score: 1

    Metalab does a bang up job, especially since they require an LSM submission for stuff that goes in /pub/linux

  30. Another tack. by Grech · · Score: 1
    Several people have pointed out that a lot of the "wheels" that are being re-invented are different on the outside. What about something like this:

    The repository specifies interfaces, [ie The Prototypes of the public methods, and the names of the public constants.] Individuals deposit implementations of the interfaces. The result: 4 different String's, which are interchangeable.

    I know this is OOP dependant, but for this to work, objects or clusters therof are a neccessity (this last assert()ed without proof.)

    --
    It may not be just, but it is fair, and that is more important.
    1. Re:Another tack. by Patrik+Nordebo · · Score: 2

      There is nothing about interfaces that require objects. You need user-definable types, but there are very few typeless languages, so that's not a problem. As long as you have types, you can specify the signatures of every public function, which is what is needed. So there wouldn't need to be anything OO about it.
      Actually, you don't really need user-definable types, either, but they make it a lot easier.

  31. AppWatch looks fine by Anonymous Coward · · Score: 0

    This site seems to only support OpenSource applications, and better, those that have quality and are actively developed. What you need more? Freshmeat has a large database, with more than 6000 applications, but most of them are or bad stuff, or no longer maintained, or simply have broken links, exaclty what one said before. AppWatch also seems to announce any application faster than any other site. I have seen some sites copying new releases that were announce on both Freshmeat and AppWatch. This is why I can say that we only have these sites, and AppWatch seems to be better if you really want to only support OpenSource software.

  32. I'm all for it!! ;-) by RayChuang · · Score: 1

    Given the increasing popularity of Linux, and centralized repository of GPL'd files and source code will be a HUGE boon for Linux itself.

    That way, Linux users won't have to hunt all over the 'Net TRYING to find the files they want. This is going to be more critical with the release of the Linux 2.4.x kernel the end of this year with its increasing support for USB (and eventually IEEE-1394) devices.

    Complain all you want about Microsoft, but the fact that MS has a very good download library makes it relatively easy to do things like patches and upgrades.

    I think Freshmeat should be converted to this, with FTP servers directly connected to the Freshmeat HTTP server for easy downloads.

    --
    Raymond in Mountain View, CA
  33. I iterate. by pb · · Score: 2

    As has been mentioned before:

    There's no reason for this to have to be GPL-only.

    Yes, freshmeat is a bunch of links to a bunch of software.

    Also:

    Maybe 'component' wasn't the best choice of words here. How about 'reusable code', or 'useful functionality'? Is that a better buzz-phrase, guys?

    There are already central archives. They are called public, anonymous ftp sites. Like metalab.unc.edu or ftp.cdrom.com.

    Feel free to use one of those, but all you really need to make is a database with info about what is available where, under which license. And Freshmeat already does an okay job of that, at least.

    So go make your own Freshmeat with an archived repository, license info, and links.

    Comments?
    ---
    pb Reply rather than vaguely moderate me.

    --
    pb Reply or e-mail; don't vaguely moderate.
  34. schools by loudici · · Score: 1

    I have been thinking about that too, and i think one natural way to do that would be to have the teaching institution manage that. Instead of trying to find toy assignments for C/C++ students, having them all work on a mega STL would seem less pointless.
    Maybe the french open source senators (tm) could get funding to hire some gurus to lead the project too
    Laurent
    ---

    --
    Dev elpizw tipota, dev phoboumai tipota eimai lephteros http://euclidian.org
  35. Re:It exists... but imagine the potential by Ozwald · · Score: 1

    You're right, it does exist. But, I think it could be better.

    Delphi has had sites like this for years and they are huge in both size and importance. For example, lets say I want my application to do Blowfish encryption. I do a search on the "Delphi Super Page" for a freeware with source blowfish component. And viola, 3 show up. They literally have thousands of components and several dozens uploaded daily.

    If you want to see this for your self, check out:
    main site:
    http://delphi.icm.edu.pl/
    or mirror sites:
    ftp://ftp.cdrom.com/pub/delphi_www/index.htm
    http://community.borland.com/homepages/dsp/
    I'm not suggesting a copy of this site. I think the interface is awkward and there is a lot of shareware crap, but it has been an invaluable on many occasions.

    There has also been other sites out there that had programming FAQ. Kind of a dejanews except dedicated to Delphi only. I think that programming *nix in general could massively benefit from centralized knowledge/component base.

    But be warned. It is a lot of work to maintain sites like this. Several Delphi such sites have vanished for unknown reasons, such as www.delphi32.com and www.delphiexchange.com, among many others. The Delphi Super Page and Torry's Delphi page from Russia are the few good ones left.

    Ozwald

  36. Where's the glamour? by jebbono · · Score: 1

    I think this is a great idea, I'd love to see it done. I hate coding simple (not to mention complex) structures that I know have already been dealt with before. The thing is, I think this is something that will suffer due to the "Achilles' Heel" of OSS, which is that without the fiscal benefits, no one wants to do the lame stuff. I think this is why interfaces to everything will be consistently less "tweaked" than their non-OSS brethren: tweaking GUIs is boring. As awesome as this would be, it would be a tremendous amount of work to get it all going properly and the make-or-break parts of it would be especially boring. What would make this work would be extensive documentation, ratings, testing, etc., aka: the boring stuff. Does anyone see a way that OSS will eventually deal with the boring stuff? Are their people out there that really like come up with comprehensive documentation for components? Look at the JDK API docs at java.sun.com for some clues as to how huge and critical and undertaking just documenting some of this stuff would be. To those who say, "but building an OS is surely a larger undertaking...": yeah, it is. But is interesting and fun and the rewards are directly experienced by you. Carefully documenting, testing, and all-in-all preparing for distribution some component you wrote for another project is of no direct benefit to you, valuable as it is to the community. I don't know people who like doing this kind of stuff.

  37. Not conviced by Chilli · · Score: 2
    There are already many free software "components" available. They are usually called libraries, which doesn't sound as nice as components, I admit. The article, for example, mentions all sorts of abstract data structures, which are, for example, already provided by GLib. There are also libraries for dealing with image formats (imlib comes to mind) and there are networking libraries. IMHO, the free software community was so far very effective at producing libraries for all sorts of problems.

    So, what's the point of the proposed repository? I guess, it wouldn't be very useful to implement the functionality that we already have all over again. What would really be needed is a site that makes it easy (especially for less experienced programmers) to find the library (or component, if you insist) that they need.

    A search on freshmeat isn't terribly effective if you do not already have a rather clear picture of what you are looking for. In other words, it would be helpful to provide an index that makes it easy to find the functionality that you need. The index could then for example point to the freshmeat entry of a selected software component. Organising such an index in such a way that it is easy to navigate is definitely a challenge, but it would probably also be very helpful.

    Chilli

    --
    -=- Just a random lambda hacker
  38. linuxberg? by Quarm · · Score: 1

    Isn't Linuxberg kinda like this? Tons of mirrors, broken into categories, etc. I know freshmeat is kind of like it, but as someone said, most of the time it's just a reference, b/c the web site or ftp area is down. But I would think that they've already got the idea down.

    ./brm

  39. Algorithms by sheldon · · Score: 1

    The discussion appears to be more about algorithms rather than components.

  40. Don't we already have this? by Nelson · · Score: 1
    I mean, I think of my entire GNU/Linux system as a component repository.


    I think this would be an interesting challenge though. It's been my experience that in the commercial world, most components are either too limited because of the lack of source or too hard to use becuase they don't want you to have the source and they are too focused on being a "component" or "reusable" and generally end up sucking. It's a rare balance of ease of use and power that makes a good component. opensource throws all that out the window because you can customize and tailor pieces for your task and as a result not too many are focusing on producing just pieces. You have to do more work to get at the pieces but you can make them do what you want.


    It should be an interesting experiment, if nothing else. It will be interesting to see what is "good" and what isn't. It will also be interesting to see the "component granularity" that is popular. (the classic example is to have reusable hashtable, tree and list classes but those are very easy to implement and don't buy you a lot by reusing them. An HTML widget or an RTF widget, on the otherhand, is a substantial amount of effort and can buy a lot if they work nicely.)

  41. Good idea as far as I'm concerned... by N!ght$h@de · · Score: 1

    There should be a place where we can go to download all the new GPL stuff as well as the older stuff. I know of several people that would just get goose-bumps knowing that everything is in one easily findable location. There are also times we have spent searching the Internet for several hours trying to find a link that wasn't dead or temporarily dropped due to servers being down or overloaded. I'd love to see one site with enough bandwidth to handle the "/. effect". I know how this crew gets when there is a new site with some really cool stuff on it...

    --
    **There are varying shades of darkness, I am but one of the many.**
  42. No kidding by Dwonis · · Score: 1

    Exactly. I want my work to be licensed under the terms of the GPL, therefore I use the GPL. I do maintain the copyright of all my code, so I can dual-license it where I want, but otherwise the GPL outlines the terms I have applied to my code. If I don't feel the GPL is quite right for what I do (like GTK/libc), I'll use the LGPL, or whatever suits my needs. If you don't like it, don't use my code in your projects. It's as simple as that.
    --------
    "I already have all the latest software."

  43. Try gjt.org by Tim+Macinta · · Score: 1

    Somebody has already started something along these lines for Java programs called the Giant Java Tree. Check it out at www.gjt.org . Everything there is either GPL, LGPL or public domain. There's some great stuff there, like JCVS for example.

  44. I have been saying this for a long time now... by Jack+William+Bell · · Score: 3

    Only I want to take it even further. First off, let me reference two previous posts on SlashDot: 'Its the API's Stupid!' and 'Again: Its the API's Stupid!'. In those posts I made the case for developing an API that was both an Open Source Component development/delivery/runtime system and a set of standard Components built with/for it. Quote from those posts:

    "We need a fast, simple, powerful and complete Open Source solution for component based development. An API (preferably a cross platform one) that you can write code to in any of the most popular languages. And it must have a reference implementation that is open source with a GPL license. It should be highly Object Oriented and should provide base objects for every major Design Pattern. It should front-end the OS so completely that you can write a new OS which directly provided the relevant API's (making it a kind of Meta-OS). The API itself should be open and there should be a standards committee that isn't loaded with representatives from the big companies. Plus, no-one is penalized for producing a non-compatible version (other than the fact that compatible versions would probably receive a greater market share)."

    Also Quote:

    "I have been working on my own for some time to develop the beginings of such a standard. A kind of hobby for me. And I know there are plenty of people out there who will claim such a thing already exists in (choose one) PERL, Python, Smalltalk, Gnome or some flavor of the month. I don't think any of those things meet all the criteria of the environment I want to see, but I can state one thing rather confidently... Until we pull together a produce such a thing the Open Source movement will have a lot of difficulty competing against Sun and Microsoft in the Business Systems space. "

    One person sent me a pointer to Bamboo, an Open Source project to develop a component runtime system (partially using Mozilla code, which is cool). Others have referred me to CORBA and even ZOPE. Personally I think all of these things are good (although CORBA may be too heavyweight). But none of them go as far as I would like.

    Although I want to see real code as well, I think the process should start the way any good development process should start: With a good design. With an architecture. I am currently calling this the 'COA' or 'Common Object Architecture'...

    In one of my design documents I describe it this way: "A shared set of class and interface specifications that may be implemented in any language and/or with any distributed object methodology. The COA is a Specification, a Platonic Ideal - any implementation of the architecture is coupled to the COA only to the extent to which it correctly exposes the interfaces of the architecture. The intent is to create a standard system workspace for programmers to use that transcends operating systems and programming languages. Furthermore the COA is intended to facilitate the creation of distributed applications where the objects may reside on any system on a network, but look like they are local to the calling application."

    Then, once the design is complete, we throw it open for development. Much like a protocol, anyone can develop both open and closed source versions of the COA. Of course I expect the Open Source versions to get more use...

    And these versions might be developed for any platform and in any language because one basic part of the COA would be a split of the class definitions into two types: Native and External. Native classes have standard method calls that may be directly implemented in whatever language/object environment is being used. External classes may only be accessed through a common messaging interface defined in the COA Messaging library.

    This means that Native classes are generally 'synchronous'. They return control to the calling code immediately, allowing them to be implemented as 'In-Process' and 'In-Thread' with the calling code. In most cases Native classes will be fairly small grained 'tool' classes used as components in building larger, more functional, objects.

    External classes are extremely large grained 'Actor' objects that expect 'prompts' and execute 'behaviors'. They operate asynchronously, the only way that calling code can know they have completed a requested function is when they return a message indicating this fact. Although an External class may actually be implemented to run in the same process space and even in the same thread space as the calling code they function as external servers where the calling code is the client. In many cases the calling code may only be connecting to a lightweight message interface class which front-ends an External class running on another machine entirely.

    These two types of classes exist to provide an opportunity to "Have our cake and eat it too." The Native classes may be bound at compile time (for those implementations that support it) and will operate with the least possible amount of interface overhead. Plus they make it possible to create implementations of the COA in environments that do not provide for multi-threaded programming. Meanwhile the External classes allow for disconnected operation and execution across system boundaries with the least amount of overhead possible.

    Sometime soon I expect to set up a discussion group on this topic. Anyone interested? Email me and let me know...

    Jack

    --
    - -
    Are you an SF Fan? Are you a Tru-Fan?
    1. Re:I have been saying this for a long time now... by Anonymous Coward · · Score: 2


      Hi Jack,

      As the architect of Bamboo, I am very honored
      that you have listed my project along side
      CORBA, but am also very interested in how/why
      it doesn't meet your needs.

      I'll be the first to admit that Bamboo lacks
      some of the features found in other component
      frameworks, but I consider that a strength. As
      I see it, all the kernel (user space) must do
      is load and unload code, downloading it from
      the network as needed (to resolve dependencies).
      All other functionality (which you desire) can
      be loaded as required. This enables the Bamboo
      kernel to remain small (186Kb compiled) and
      interoperable with existing wiring standards,
      remoting standards, programming languages, and
      VMs. Case in point, I run programs that have a
      C++ engine (for performance), with COM wrappers
      (actually Mozilla's XP-COM) for versioning, a
      Java AWT based GUI, and Python/Tcl/Perl scripts
      all in the same process address space!

      In summary, like yourself, I was not satisfied
      with existing options. What I have developed
      is a practical, easy to use (based on user
      comments), cross-platform mechanism for loading
      code in/out of a process's space, regardless of
      the programming language. While Bamboo is a
      powerful mechanism on it's own, I strongly
      believe that users should augment it with other
      technologies to solve issues such as safety
      (as in MMU, not authenticode), versioning,
      remoting, reflection, meta-programming, etc.

      So, what would you say about using Bamboo to
      develop the COA on top of?

      Sincerely,

      Kent Watsen
      http://watsen.net/kent

  45. Why not modify CPAN? by Imperator · · Score: 5
    Why not take the existing CPAN system, modify it to support the features we'd need for this sort of distributed project, and use that? It would need support for multiple languages (say, CPAN::Perl, CPAN::Cplusplus, CPAN::COBOL, all inheriting from CPAN.pm), the ability to specify what parts of the archive different mirrors have (because not every site will want to carry the COBOL stuff), some sort of automatic configuration for people who want it (face it, manual configuration is easier to implement but often unnecessary), and a new name (CLAN? :).

    This is a GPL'd system written in a GPL'd language that's available on a wide variety of platforms. Why reinvent the wheel to prove that we don't have to reinvent the wheel? :)

    --

    Gates' Law: Every 18 months, the speed of software halves.
    1. Re:Why not modify CPAN? by god · · Score: 1

      Because it's the "Comprehensive *Perl* Archive Network"! You're welcome to go for "CCAN", though ;-)

  46. Delphi components - LOTS of them! by KyleCordes · · Score: 2

    Interestingly, the Delphi community has produced VASTLY more components, many free or quite inexpensive (with source available) than the much larger groups of people using VB, C++, etc. The only other community with such a large set of components is Perl (CPAN).

    Just one category, database access components, sports over 50 entries.

    (minor plug warning:) I operate a web site that contains extensive information about database access components:

    http://kylecordes.com

    It's a lot of work to maintain my list of 50 or so products... maintain a global registry of similar detail would be full time work for several people.

  47. GPL vs LGPL? by Artie+FM · · Score: 1

    Just imagine we had this component library. Imagine that we had a huge database of reliable components that would work together easily. If this library were GPL'ed it would actually not be available for general usage buy just anyone. The program you were plugging it into would have to be GPL'ed as well. This would be a great incintive for newly developed programs to use the GPL as well. The result is the ability to tell management that by using the GPL you could get your product to the market faster, with less bugs and with more standard features. Although the LGPL is great it does not promote open source applications to this degree.

    This isn't viral behavior but there is a bandwagon or "me too" effect that is associated with the GPL.

    --
    Be insightful. If you can't be insightful, be informative.
    If you can't be informative, use my name
  48. Already in the works! by DrFickle · · Score: 1

    Bowie J. Poag of Propaganga fame is already starting exactly this at www.system12.com

    1. Re:Already in the works! by DrFickle · · Score: 0

      Sorry to be a tard, but I forgot something..

      I found this out on Linux.com's interview with him...just posted today.

  49. Re:VERY BAD IDEA!!!! by N!ght$h@de · · Score: 1
    For starters, I think the language useage tells us all a bit about the personality here...

    Secondly, the lack of a user name tells us a bit more about this in'duh'vidual.

    Lastly, The whole GPL idea is to keep people from patenting the idea published. We write the code, or we modify the code written by others to suit our needs. Patents are pointless through this method. Nobody's getting very rich, but we are making one of the best OS's out there even better by pulling ideas from programmers all over the world. Nobody has even tried to patent any of these programs of code enhancements, as far as I know.

    By the way, I'm sure that it would've been posted on /. if somebody had tried it...

    --
    **There are varying shades of darkness, I am but one of the many.**
  50. APT RPM and other such things by mrolig · · Score: 1

    I think such a repository is necessary and would need to be able to serve as an apt source for debian packages and have an apropriate structure for updates by other distributions. I know debian isn't the only one with the ability to check a repository for updates, but it would be nice to have a central unofficial debian source

  51. Metalab! by Anonymous Coward · · Score: 0

    I don't know why you're complaining. Metalab was made to upload your projects. BTW, Freshmeat has tons of links pointing to sunsite.unc.edu, the wrong site. They have lots of dead links, and don't seem to know a way to replace sunsite by metalab in the links. Poor guys.

  52. It's More Than Just Software by lls · · Score: 1

    It is important to realize that projects are way bigger than just software. There are jpeg, midi, HTML, txt, etc. files that need a GPL'd component repository too. In fact, any work that can be copyrighted needs to find a friedly home in the Component Repository.



    The Component Repository needs to be a home for artists, musicians, mathematicians, architects, philosophers and poets. Let's see, did I leave anyone out? Oh yes, programmers too.

  53. Already exists.... by Forrest+J.+Cavalier · · Score: 4
    Went online in October.
    http://www.rocketaware.com/

    Includes special sections for GNU software, BSD man pages, FAQs, AskSlashdot (back to the beginning), Programming related books. Even has links to cosource.com, dmoz, yahoo, fatbrain, amazon.
    Over 15,000 off-site programming related links. You must check it out. A single idea just like the one that started this thread was discussed about 18 months ago. This is the result.

    On tap: (coming up) on site discussion, all of the unc metalab linux archives, and anything else we think of or get suggestions, or gets submitted.

    1. Re:Already exists.... by samantha · · Score: 1

      I don't believe it already exists. In evidence I point out that there is question
      about its existence. With a truly effective open source component repository
      the question would be very succinctly answered. This touches on
      an important point. One of the problems with such a repository is having
      a truly effective indexing system and some way of categorizing the semantic
      content of items to some level. The entire software industry awaits such a
      beastie.

  54. Re:VERY BAD IDEA!!!! by Anonymous Coward · · Score: 0

    1st point: irrelevant 2nd point: irrelevant 3rd point: That won't stop those who patent. 4th point: irrelevant

  55. System 12? maybe by marnold · · Score: 2

    An interview with Bowie J. Poag just went up today on linux.com. Here's an excerpt:

    linux.com: What's System 12 all about?

    Bowie J. Poag: System 12 will be a resource stockpile for Linux application developers. For lack of a better buzzword, we don't really know what to call it yet, but the basic premise is this: System 12 (hopefully) will do for Linux application development what Themes.org did for windowmanagers. We're going to be offering a series of free "component toolkits" for developers to include in their own work. In exchange for using our work, we will be offering them free hosting space on our server so they can showcase their work to the community.

    Visit the System 12 site if you're anxious.

  56. Upload to Metalab, Announce at AppWatch by Anonymous Coward · · Score: 0

    I don't know why you need to register another site. Metalab is actually the best place to upload your files, and is mirrored all around the world. AppWatch is the only site that tracks only OpenSource projects that are actively developed and good. They also don't seem to like broken links (check their FAQ). No need to reinvent the well. Metalab AppWatch

  57. i lust moderator points... by Giant+Robot · · Score: 1

    This is a great idea (i think)! moderate this post up (please?)!

  58. Re:It exists... not really by celtic+heretic · · Score: 2

    The internet is fine for a distributed, poorly catalogued repository. If, that is, you know where to look. As a casual (i.e. non-professional) programmer I haven't the slightest idea where to start if I want a GPL module to do task-x in any language other than Python or Perl. Sure there's lots of places for code but I've had to wade through commercial garbage for hours and still not find anything useful.

    I'd like to see a site that kept material up to date and indexed by task and by language. And not just say basic but also who's version of basic (or C/C++, Pascal, etc). Something that could say to the green programmer "What do you want? We have this abailable for platform X, language Y, etc."

    If what I said is nonsense,
    I'm making a point with it.
    If what I said makes perfect sense,
    you obviously missed the point.

    --

  59. Linuxberg is crap by Anonymous Coward · · Score: 0

    They suck all announcements from sites like Freshmeat and AppWatch, and announce 90% of old stuff. Yes, it's just a repository for applications, but too bad. If you are just looking for a repository, there's no need to use Linuxberg. Try Sunsite or any other with an Incoming.

  60. The Universal Impedance Problem by Christopher+B.+Brown · · Score: 2
    This idea is pretty cool. Unfortunately, it has several problems:
    • Were you planning to support one language? Or multiple languages?

      If the only language is C++, then your project will be rejected because some people prefer to use C, Objective C, Scheme, Perl, Python, and Eiffel.

      If you plan to use many languages, then you probably have ONE choice for a structure on which to build this, namely ILU (Inter Language Unification). Unfortunately, that leaves you with a set of data structures that are to some extent a "lowest common denominator" of the things supported by all of the languages.

    • Is what you want supported already by CPAN or by www.python.org ?
    • By the way, if you wanted the facility to be network-distributable, then you definitely want to use ILU or some other CORBA variation.

    In effect, the only choice for the sort of "componentizing" that you're describing is some variation on CORBA. You probably need to get a copy of the Henning/Vinoski book on CORBA, and to start writing chunks of IDL to represent all the sorts of interfaces that you want to be able to have "published."

    Unfortunately, there's still an impedance problem, as:

    • There are wide variations in performance between ORBs as well as between components that can communicate "real directly" via memory as they're running in the same process as compared to components that may communicate hundreds of times more slowly because they reside on separate hosts.
    • Components may be implemented in ways that vary considerably, and which may require significant configuration effort to get their service running.
    --
    If you're not part of the solution, you're part of the precipitate.
  61. Don't say shit by Anonymous Coward · · Score: 0

    Why? I don't see a reason to support deb or RPM. Make you own specs using the sources.

  62. Re:CPAN Works nicely for Perl...But not for C! by xanth · · Score: 2

    A CPAN like mechanism would work well for languages that have very well defined, unambiguous specifications. Perl, for instance, behaves pretty much the same way on all (at least Unix) machines. Java and Python, as well as most other "interpreted" languages also share this characteristic.

    C and C++, being much older, with more carryover "baggage", however, do not have the luxury of a fully specified language definition. In the ANSI spec for C/C++, there isn't even a set size for the basic data types! All that is required are various ambiguous properties such as sizeof(long) >= sizeof(int) >= sizeof(short)

    A generic C/C++ code repository would face much difficulty in maintaining portable code that would just work for anyone, given the nature of these languages. As far as Perl, Java, and Python go, there are already many code repositories available: CPAN, Gamelan, and Python.org all contain links for downloadable "modules" for these languages, repsectively.

  63. Build GUI-free CORBA SERVERS by Christopher+B.+Brown · · Score: 4
    Some good ideas here; it is definitely important not to build components so that they will be heavily dependent on one "Desktop Environment" or another.

    The example that I keep citing (and nobody has ever done anything to bring to fruition) is that of the calendaring systems. GNOME and KDE both have calendar programs that "grok" the iCalendar specification, but only partially. In particular, iCalendar was designed to allow "Calendar clients" to connect to a "Calendar server" that could provide schedule information for multiple users.

    What they should do is to define a CORBA interface to talk to a Calendar server; by having common IDL that would be free of ties to any GUI there could be one implementation of a Calendar server that both the GNOME and KDE clients would talk to.

    This is much same idea as the notion that any sort of web browser can talk to an HTTP server.

    Don't be so sure that KDE has "dissed" CORBA as dramatically as you're thinking; what they have concluded is that running raw GUI calls through CORBA to implement compound documents is quite ridiculously inefficient. Note that the GNOME guys have largely concluded the same thing. (ORBit appears more efficient than MICO, so GNOME may get away with doing more with CORBA than KDE can...)

    The point is that CORBA has enough overhead involved that you don't want to be shipping around tens of thousands of CORBA calls per second.

    On the other hand, using CORBA to request:

    • ... That a text editor be invoked to edit a file,
    • ... That a document, specified as a tree, be submitted to a printer,
    • ... That a bundle of configuration data be retrieved
    all represent areas where there's large enough "granularity" that CORBA can be useful.
    --
    If you're not part of the solution, you're part of the precipitate.
  64. A bad idea by Anonymous Coward · · Score: 0
    One thing you could do is this: develop some components under straight CORBA, avoid doing GUI components altogether for the time being (until some standards develop), and hope that KDE actually continues with CORBA now that they've partially "dissed" it.

    Which vendor's CORBA to use: IONA, TAO, MICO, OmniOrb, Orbacus? Which threading model? Bi-directional IIOP or not? BOA or POA? They are not source-level compatable despite what you may believe. CORBA is the best non-standard standard I've ever had the misfortune to use. Just say no to CORBA.

    1. Re:A bad idea by samantha · · Score: 1

      To the extent your comment is true there are errors in the vendor's implementations
      of ORBS and OAs. The entire idea is interoperability including bridges between different
      vendor's ORBs. If this is broken then something is seriously wrong.

    2. Re:A bad idea by Anonymous Coward · · Score: 0

      If we're talking source code compatability for CORBA - forget about it - too many differences between vendors' APIs and different levels of conformity. Possibly at the protocol level they *might* be compatable. The name services from all vendors are all FAR FROM COMPATABLE. CORBA just ain't ready for primetime.

  65. This is a GREAT idea!!! by Anonymous Coward · · Score: 0
    I have been looking for something like this for a LONG time! I have produced and am producing code that

    1) I haven't particularily wanted to write because i know it's been done before and would be happy to reuse somebody else's code but couldn't find any and didn't want to wade through the code for a slew of other tools hoping i could find the code i needed.

    2) I would love to share in a "functional" form, rather than just as complete source code for a tool i have written. (although the latter would be available, also)

    3) I would love to contribute fully functional (background) engines and functions for things i have written as a "proof of concept" but had no intention of polishing an entire package to be releasable. The code snippets would be of value to others, but the form of the tool for which i wrote them certainly wouldn't be of use.

    This is just a damn good idea. I don't have the resources to set this up, but if somebody did, I would certainly contribute! ...and use it!

  66. Anonymous CVS + CVS extensions + CVS robot prober. by MetalHead · · Score: 2

    It strikes me that a lot of Open source code is out there in CVS repositories, much of it available by anonymous CVS. It also strikes me that the maintainers of this code *want* to maintain control of their repositories to make sure that things like backups happen to their satisfaction, etc, so it seems unlikely that a *centralized* place for repositories will appear, and even if it did, it doesn't seem too appealing. The decentralized disorganized spread-out chaotic highly-excessively redundant nature of the current state of things probably has something to do with its success.

    So, back in the old days, there was archie, which used to go out and search FTP sites anonymously and make a giant index of what was out there. Now we have web crawlers.

    How about something like archie or web-crawlers except it goes out probing port 2401 (cvspserver) and catalogs what it finds (maybe does a "cvs co -c")

    An extension to CVS to allow a sort of description of what's in the repository (freshmeat style?) to be probed might be cool.

    i.e. maybe a "cvs -d wherever whatchagot" command, that could just spit out the contents of some files in CVSROOT, perhaps without even requiring a "cvs login" And a standardized anonymous CVS login and password might help...

    Hmmm. Maybe I'll propose this in info-cvs@gnu.org. But it's kind of a chicken & egg thing. Without the cvs-indexer-robot, what use is the new command, (and everybody would need to upgrade to the newer CVS server) and without the new command, the web-indexer isn't really feasible.

    Hmm. Maybe I'll just implement the damn thing (the cvs mod, not the cvs robot, I'll leave that to someone else with the bandwidth and the hardware to do it with.) and submit the patch to bug-cvs@gnu.org...

    Later, got to look into some code!



    --
    Bang the head that doesn't bang!
  67. Possible flaw by Imperator · · Score: 2

    CPAN depends on testers (of known quality) to approve items. Not every language has as centralized a community. This may mean giving people of known quality temporary autocracies to recruit a pool of testers of known quality. After the high standards are set, a more democratic (or anarchist, depending on your POV) can take over.

    --

    Gates' Law: Every 18 months, the speed of software halves.
  68. Trove Project by Ugmo · · Score: 1

    A Few Comments:
    1. Great Idea!
    2. Can we break up existing code into pieces and organize them? There is a lot of it out there in all the other Opensource projects
    3. The infrastructure and ideas are similiar to the Trove Project (which is similiar to Freshmeat)
    http://www.tuxedo.org/~esr/trove/

    That's all

  69. Re:The Results by Anonymous Coward · · Score: 0

    you put your comment on the wrong story. this goes with the rare glitch project.

  70. Who uses components and what license do they want? by ShaggyZet · · Score: 1
    I think if we look at who uses components to build applications, we'll see that (to a large extent) it's consulting firms. These firms that are not very likely to release anything under GPL. They're really only making money because they got the contract or wrote the demo code and showed it to the client first (What, you mean they're not innovating? HAHA).

    I think the only way that something like this would work is to allow any type of license.

    Having said that, I think it's a great idea. Personally, I've dealt with RogueWave components a lot, and I'm not impressed, even if they have started releasing Linux versions :) I think open source could reach their mark very quickly.

  71. CORBA/C++ go bye-bye - Hello HTTP/XML. by Anonymous Coward · · Score: 0
    CORBA may have been a nice model on paper, but the sheer simplicity of HTTP has already overwhelmingly and irrevocably crushed it forever. Its sort of like the ATM vs. IP wars in networking - yes, ATM was good on paper, but rolling it out was another issue. IP was simple and worked well for its task. That is why all the ATM vendors are moving to IP.

    Now, you may say "HTTP doesn't do anything!!". Au contrare. When coupled with XML, you can implement a variety of RPC protocols such as SOAP or XML-RPC. As much as it pains me to agree with them, Microsoft is right about XML - it is going to demolish these cumbersome middleware technologies - including its own DCOM. Unfortunately the linux community, forever chasing tail lights, still see CORBA as viable.

    CORBA never really had much of a chance. The development community really never latched on to it - its simply too complicated in a world where the dominant protocols are getting simpler all the time.

    1. Re:CORBA/C++ go bye-bye - Hello HTTP/XML. by zmower · · Score: 1

      I spy a troll. And one who makes no sense. To summarise your post: CORBA has been crushed forever by HTTP but the Linux community still see it as viable and yet developers never really latched onto it. Hmm.

      So why did Sun introduce an ORB into Java2? Why do KDE and GNOME both use CORBA?

      As the CORBA component spec is a language-independant superset of EJBs expect CORBA to become even more popular than it is now.

      As for XML/RPC, if you think CORBA is cumbersome then how will passing parameters as text improve performance?? And how will you be backwards compatible when Microsoft changes their DTDs?

      zmower (posting from an IP-over-ATM network!)

      --

      Sig pending!
    2. Re:CORBA/C++ go bye-bye - Hello HTTP/XML. by Anonymous Coward · · Score: 0
      And how will you be backwards compatible when Microsoft changes their DTDs?

      Backwards compatibility is lost whenever a standard significantly changes. The same would happen to CORBA is OMG drastically revised its standards. Thats why you go with an open model like XML-RPC.

    3. Re:CORBA/C++ go bye-bye - Hello HTTP/XML. by zmower · · Score: 1

      The key word in your first sentence is 'significanty'. CORBA is a mature standard and so is unlikely to change significantly. As for being open, you can't get much more open than the OMG.

      zmower

      --

      Sig pending!
    4. Re:CORBA/C++ go bye-bye - Hello HTTP/XML. by Anonymous Coward · · Score: 0
      CORBA is a mature standard and so is unlikely to change significantly.

      Replace "mature" with "dead" and you're a little closer to the truth.

  72. How about open source test plans/cases/scripts? by Mark+Bullock · · Score: 1

    Doesn't open source software get tested? Test plans, cases, and scripts would be great resources!

    1. Re:How about open source test plans/cases/scripts? by Ward+Cononamously · · Score: 1

      In fact I'd like to see Open Specifications. These can be a lot more fun than code. Specifically - specifications that can be animated and argued about. With Open Source not only do you choose what to do, you can do it right too!

  73. Let CORBA die by Anonymous Coward · · Score: 0

    The linux community is making a disastrous commitment to CORBA, a technology that frankly has been killed off by the web. IIOP never became meaningful to anyone - HTTP-based XML RPC is poised to crush COM, CORBA, and all of these other top-heavy middleware solutions.

    1. Re:Let CORBA die by PG13 · · Score: 1

      If anyone can explain what XML actually does which is useful I would be glad to hear it. And don't tell me it is a subset of SGML or it is a language definition standard...neither of these give any clue about how it could in any way be useful...neither does the XML spec...it appears to be just a large complicated way to specify parsers

      --
      Marriage is the "pseudo-ethics" that cloaks the messy truth of sexuality in the raiment of propriety -- it's "Don't Ask,
    2. Re:Let CORBA die by IntlHarvester · · Score: 1


      If it's simple, and it's text parsing (XML), the open source community will have no problem mastering it.

      If anything the "commitment" to CORBA is "disastrous" because it's likely to be outclassed and incompatible with quasi-proprietary commercial implementations, and thus worthless as a standard. Open Source works best with simple, baseline protocols - HTTP, DNS, and potentially XML-RPC.
      --

      --
      Business. Numbers. Money. People. Computer World.
    3. Re:Let CORBA die by samantha · · Score: 1

      The idea that CORBA has been killed off by the WEB is utterly absurd. CORBA is a hell of a lot more than an RPC transport mechanism. CORBA calls, despite there often bemoaned slowness are much faster than any of the standard WEB technologies such as JSP, servlets, CGI, XML RPC proposals, SOAP and so on. Jave RMI does a fraction of what CORBA does but only for a single language environment. IIOP became meaningful to a hell of a lot of organizations judging by what is actually used. HTTP-based XML RPC is only a transport and RPC mechanism and not a terribly efficient
      one at that. It doesn't even address where the receiver finds the object/function addressed or how the arguments should be unmarshaled, much less transaction services, name services, persistent services
      and the rest addressed by CORBA. Nor does it specify what distributed objects and functionality is avialable in a standard way. It is frankly worse than useless to diss a technology without
      understanding what it attempts to address.

    4. Re:Let CORBA die by samantha · · Score: 1

      Being part of the open source community does not require that one be simple-minded.
      There is a lot more to distributed programming environments that actualy work than a simplistic set
      of transport and RPC mechanisms. Those of us that have spent much time doing real world distributed
      programming know this. There is nothing wrong with HTTP, DNS, XML and so on for what they are good
      for. But claiming they will take the place of tools designed for things they were never been to cover is plain
      wrong.

    5. Re:Let CORBA die by Anonymous Coward · · Score: 0
      It doesn't even address where the receiver finds the object/function addressed or how the arguments should be unmarshaled, much less transaction services, name services

      Trying to describe all of these services across a network is exactly what killed CORBA.

    6. Re:Let CORBA die by Anonymous Coward · · Score: 0
      Being part of the open source community does not require that one be simple-minded.

      You mean like blindly following CORBA because everyone says so? I have used it extensively over the past 2 years in large banking environments - and it is needlessly complicated for what little it does. When you start an enterprise project with CORBA - soon all you are consumed with is maintaining CORBA itself instead of dealing with the business logic at hand. Also, being at the mercy of certain leading CORBA vendor's bug-fix cycle is not a pleasant thing. And despite what people say to the contrary - switching vendors is very difficult - different CORBA vendors' versions are far from compatable at the source level.

    7. Re:Let CORBA die by Anonymous Coward · · Score: 0

      What we NEED is orthogonally persistent, network transparent, disributed SELF.

  74. You're just reinventing CORBA, poorly by Anonymous Coward · · Score: 0

    CORBA died for a reason. Its bulky and complicated. Try moving slightly ahead to a world where data is abstracted as XML, and transferred using HTTP.

  75. Hmm, why not utilize the /. model? by Shokwave · · Score: 1

    Putting the license issue aside for a moment, I wonder how something like a /. model could woulk for rating the quality of code?
    Someone could submit an object/component to a team of people who would weed out (loosely) the duplication and plain useless things. These people could be picked by a vote of peers or some such method to establish a core of competence that the community at large trusts. Once it passes the initial quality check (one or more times) it could be up for a peer moderation style review.
    When searching for a particular object you could set a quality threshold on your search. The higher the threshold the less likely you may be to find something exactly like you want, but the code you do get should be of high enough quality to impress the people who used it and rated it, in fact may be built well enough to allow you to modify it to suit your needs, maybe even to the point of creating something which may be of value checked back into the moderation system as a new object.

    --


    I love you... Ok I love you AND the UNIX operating system, but then I've know it longer.
  76. Re:CPAN Works VERY nicely for Perl... by fornix · · Score: 1
    Now go to their web site, find the Gtk-Perl module, and figure out how to download it.

    Get the cpan module. It gives you a cpan command shell. Then type in "i /Gtk/" to get a list of all Gtk related stuff. Type "install Gtk" and it downloads it, compiles any parts written in C, installs, and than tests it for you. Also reminds you of what modules are out of date and updates them for you. Gotta love it!

  77. Repository == Internet? by Synic · · Score: 1

    Most things on the internet seem more like a suppository.

  78. It would be better without the GPL. by regs · · Score: 1

    Here's an idea: rather than use the GPL for all the components, use a BSD/Artistic style license. Why? The GPL prohibits the code from being used in classic "cathedral" closed source projects. Why is that important, you ask? Well, if there were enough free (speech and beer) libraries do, oh, say, anything on Linux or *BSD, they suddenly become a much more attractive development platform than they already are. Time to market and cost of development drop through the floor. Linux and BSDs market share shoot through the roof as they become the preferred developer platform... since it's so damn easy to write code for a platform with extensive libraries.


    And the upshot of it all is that it means less messing around with Microsoft products and more jobs working in the environments we love!



    --
    --

    --
    "In Cyberspace, no one can hear you be sarcastic"
    1. Re:It would be better without the GPL. by Anonymous Coward · · Score: 0

      ...prohibits the code from being used in classic "cathedral" closed source projects...

      Bzzzt. The "Cathedral" was a swipe at the GNU/FSF organizational structure and not originaly aimed at closed source development. Of course now the 'definition' has been expanded to create additional speaking opportunities and OSI consulting gigs.

  79. Obvious bait.. by Kitsune+Sushi · · Score: 3

    The usage of the term ``General Public Virus'' all but confirms it. Serious usage of this term indicates a lack of understanding, and is strongly indicative of the notion that the person using said term dreams of software that they may not only use, but abuse as they see fit (and, indeed, extends this dream to cover all software ever created.. apparently this isn't just restricted to people who deal in warez anymore). No one is forced to GPL their software, and if you wish to build your work upon the work of others, you must abide by their licensing scheme. If you don't like it, do it yourself. It's rather simple.

    Complaining that the GPL doesn't achieve your aims and objectives very well is ludicrous. Just don't use it. What can not be argued (reasonably) is that the GPL fails to achieve its own aims and objectives. It has done so with flying colors. So, if you like the GPL, use it, if you don't, then another license will suit you better. Complaining that you can't turn GPL'ed software against its intended goal is paramount to complaining you can't enslave people anymore.

    The other obvious hole in the logic presented here is the notion that you can't use GPL'ed code in a public domain software package. This isn't entirely true. Public domain means that there is no copyright license. You are free to fork the unlicensed software package and relicense it. So, while it is true that you can't use GPL'ed code in public domain software and still have it be public domain (it is now under a copyright license -- at least your fork of it -- the GPL), it is not true that you can't do it at all. You could relicense it under any other license as well. Of course, the original would still be public domain, but your ``distribution'' of it wouldn't have to be.

    --

    ~ Kish

    1. Re:Obvious bait.. by The+Famous+Brett+Wat · · Score: 1

      I will ignore the ad hominem element of your post and respond to the remainder.

      No one is forced to GPL their software, and if you wish to build your work upon the work of others, you must abide by their licensing scheme. If you don't like it, do it yourself. It's rather simple.

      Nor is anyone forced to buy proprietary software, but if you wish to use it, you must abide by the licensing scheme. Licenses are like that. My point is that a substantial amount of free software is not GPL'd, and for a component repository to be of general use to the free software community it should not be GPL'd, as this will make it legally incompatible with all the people who wish to contribute under any license other than the GPL. Now if you particularly want to be exclusivist, then by all means use the GPL, but exclusivism isn't going to help a project in my opinion.

      The other obvious hole in the logic presented here is the notion that you can't use GPL'ed code in a public domain software package. ... So, while it is true that you can't use GPL'ed code in public domain software and still have it be public domain...

      Thanks for making my point for me. If I am actively maintaining a public domain program and a GPL'd library exists that would be useful to me, then I effectively have two choices: either abandon my public domain status and incorporate the library, or reimplement whatever features in the library I wanted. Of course, I could fork the code, but do I really want to maintain two versions of the code? No. If I'm going to have to implement a fully public domain version of the code, then why would I bother with the GPL'd code?

      Maybe someone else will fork the code and GPL it, but that's no business of mine, and in any case, that's the benefit of public domain over GPL isn't it -- you can fork it under a different license.

      Complaining that you can't turn GPL'ed software against its intended goal is paramount to complaining you can't enslave people anymore.

      Oh, please! I'm not complaining that I can't turn the GPL against its intended goal. What I'm saying is that when it comes to a choice of licenses in a shared component repository, I counsel against the use of the GPL. If you are dead keen on GPLing your stuff, then go ahead and knock yourself out with it. In my opinion, you are making it less free and less usable if you do so. You and Richard M. Stallman can disagree all you like on that point. For everyone else, it's a no brainer: if you're using anything other than the GPL for your code, and you have a choice of incorporating third party GPL code or free-but-not-copyleft code of roughly equal quality and functionality, you'll choose the non-GPL code to save being sucked into the GPL event horizon.

      Personally, I'm all for cooperatively written software, and a component repository would be great. CPAN is a good example. You'll note that nearly all of CPAN is dual-licensed GPL/Artistic precisely so that you don't have to become part of the GNU collective just to use it. And given the propensity of GPL advocates to accuse others of guilt by association with "slavery", "warez doodz", and other "abuses" of software, I'd rather keep my software genuinely free and well clear of the General Public Virus.

      Yes it's my right not to be infected by your GPL'd code, and I intend to exercise it! The fact that I'm not the only one with this belief is one of the reasons why a purely GPL'd component library would not be popular. I can use Linux in good conscience because the GPL doesn't affect my ability to write non-copyleft free software on it. With a component library, the only way to use it is to infect your code with it!

      --
      proof, n. A demonstration that a conclusion is implied by certain premises and axioms.
    2. Re:Obvious bait.. by AME · · Score: 1
      No one is forced to GPL their software ... if you don't like it, do it yourself.

      This is the single most used argument of GPL proponents. (It's usually followed by something implying that not using the GPL causes other entities to take the code hostage and make it proprietory. I'm glad you didn't make this silly assertion.)

      Now, before some GPL-zealot chimes in with, "But the GPL is free!" let me point out (as if noone ever has before) that the GPL is a very restrictive free license. Perhaps the GPL is free, but free isn't necissarily the GPL. It is important to note that, of all the open-source licenses, the GPL is the only that I am aware of that doesn't play well with any of the others.

      Some intelligent and well meaning individuals even argue whether the GPL is actually free, and I am at times tempted to agree with them. The GPL is indeed "obligatorily open," but that doesn't necessarily promote freedom, unless it's the FSF defining "freedom."

      Instead, the GPL promotes the GNU Project. Everything GPL is a part of the GNU Project, and everything that uses GPL code must become GPL, and thus become a part of the GNU Project.

      This is great if you are a big fan of the GNU Project. There are plenty of good reasons to be, but some people aren't or don't have the choice. If the developer doesn't control the all the licenses involved in a project then it boils down to two possibilities: rewrite the GPL code or rewrite the non-GPL code. In either case, good solutions exist which can't be used. Which portion do you suppose the developer will rewrite if the non-GPL portion of the project is, say, Oracle?

      Now, I said all that to say this: The problem here is that we are discussing an open-source repository rather than a GPL repository. The former would be generally useful to free software projects and the latter would be useful only to GPL projects. If your stated goal in life is promoting the GNU Project then a GPL repository would right up your alley. But if you have issues with the GPL, either legal or philosophical, then a GPL repository's usefulness to you is marginalized.

      Don't make the mistake of thinking that the GPL is congruent to free. There are lots of ways to make software free, but only one way to make software GPL. Not everybody who dislikes the GPL is a horrible miscreant who wants to enslave software.

      --
      "I have a good idea why it's hard to verify programs. They're usually wrong." --Manuel Blum, FOCS 94
  80. System 12, components, and ideas. by Bowie+J.+Poag · · Score: 1


    Just to clarify a few things....


    A) The interview I gave with linux.com took place yesterday afternoon. Apparently, this Aiken guy probably read it when it was posted earlier today and decided to apply the same idea to sourcecode in his post to Slashdot. Ideas dont hurt anybody, so quit railing on him.


    B) The sort of thing we're doing at System 12 doesn't encompass code-based components. Sound, graphics, and font component kits, yes..but not code.


    C) This idea isn't new (or unique) and I certainly cant claim to be the originator of the idea... In my case, i'd been kicking the idea around for a good 2-3 years before finally having the opportunity to have a go at it this summer. However, as many people have pointed out, other people have been similarly kicking around the idea for quite some time, it appears.


    Bowie J. Poag

    --
    Bowie J. Poag

  81. damned license incompatibilities by Roundeye · · Score: 1
    This may be a bit of late-night idiocy, but, allow me to think "out loud" if you will for a moment.

    I am a firm believer in Open Source for a number of good reasons of which we are all likely aware. The issue of licensing always comes up and often good Open Source code can't work together with other good Open Source code because of incompatibilities with licenses.

    Often, a developer will release code under one license, and since s/he's the developer, also later release it under another license (it's proprietary and then GPL'ed, or Qt-licensed then GPL'ed, etc.). What would happen if, given that there are say 5 "blessed" Open Source licenses which happen to be incompatible with one another, a developer took his code and released a copy under every one of these 5 blessed licenses?

    While this is not sufficient to solve incompatibilities, since the next developer on the BSD (say) branch adds his code in and just keeps it BSD-licensed; if everyone were doing it then the new code could be released under all the blessed licenses. This of course does nothing to make currently GPL'ed code compatible with BSD-licensed code, but is something gained by doing this for later code?

    Is there a license that one could write which is something of a meta-GPL? In the sense of saying: "Code under this license must be redistributed under this license and under (blessed licenses 1-5)"... I'm not sure that's particularly cogent, but maybe someone gets my drift.

    It's late enough that I can't tell if this is absolutely idiotic or somewhat sensible. Oh well, that's what flames and moderation are for.

    --
    "Cause there's 40 different shades of black, so many fortresses and ways to attack, so why you complainin'?"
    1. Re:damned license incompatibilities by Ed+Avis · · Score: 2
      Is there a license that one could write which is something of a meta-GPL? In the sense of saying: "Code under this license must be redistributed under this license and under (blessed licenses 1-5)"...

      Well, you can distribute perl under the GPL or the Artistic License, at your option. But for what you want, you'd be better off using the XFree86 licence, which is compatible with pretty much all the others. Or better still, just release it into the public domain, and people can relicense it under whatever terms they wish (BSD, GPL, proprietary, etc).

      Bear in mind that if you allow people to distribute the code under the BSD licence, you also allow them to distribute it under a proprietary licence, since the BSDL allows this.

      --
      -- Ed Avis ed@membled.com
  82. Maybe I'm missing something, but... by Anonymous Coward · · Score: 0

    Isn't the point of component repository to hold programming solutions to common problems. I believe that it shouldn't just be a collection of all the open source libraries.

    It should contain complete solutions with simple, consistant interfaces. In a sense, it would be like a collection of abstract data types or design patterns.

    How many of you have written your own FIFO routines? Or better yet, how many times have you written FIFO routines? A FIFO is a very common design pattern (that's why its part of the C++ STL). Yet without such a repository, we are doomed to re-write it each time, unless we each keep our own repository, but then that wouldn't benefit the next guy. With a public, open source component repository, everyone would have access solutions to problems someone else has solve before, and may only need to tweak a few minor internals (i.e., what type of object get put into the FIFO).

    What I think will probably be needed is not only a server w/ mirrors to host the site, but a group of developers, that would act as moderators for what gets put into the repository. They would ensure that the code fairly autonomous (i.e., it doesn't need a lot of support functions written by the user of the component), it is inspected for quality (i.e., peer review type activity), it compiles cleanly, and ensure that the code can be released under an appropriate open source license.

    Some added benfits of such a repository, could include software patent protection if some company tries to patent a solution to a programming problem and the solution already exists in a pulic forum.

  83. A good idea, but... by Harik · · Score: 1
    From reading other comments, some people are pointing this out as well. So to avoid being redundant, I'll try my hand at some possible solutions.

    First off, quality. Probably a simple voting system requiring a registration would suffice. Since it's not a religous issue (no freshly developed code fragment has the religous overtones of VI or EMACS) there shouldn't be too much ballot stuffing. Email registration takes care of the casual skript kiddy.

    Simply rating the software on it's stability and efficiency would be nice. Comments on it's usability (how clean is the API) and the like would also be good.

    Finding what you're looking for. A much harder topic indeed. Not many people go in looking for a Red-Black tree code fragment, so there probably needs to be some documentation on what functions do what you're after. Pointers to some excellent books on programming also apply.

    How about Compatability? The whole thing is useless if every component depends on yet another different piece of software. (Which is why I'm so happy that aprintf is in glibc. That's a major improvement) Perhaps defining common APIs for common functions is a good idea? There's not too many ways to handle string classes, so if they were compatable, eventually they would be mergable into one well-done class instead of 35 mediocre classes. Identifying what is good and what sucks and standardizing should be the primary goal.

    Lastly, Licence conflicts. If such a thing is done, to be truly useful it will have to be usable by everyone, not just GPL software. Nobody will contribute if we lock out all BSD style licences. My reccomendation here is that anything that's more then just a fragment of code be LGPL. Moreso, all of it should be linkable into a single LGPLed library. This avoids namespace bloat, as well as ./configure bloat. Code fragments? If you really want to GPL the code to free the first node of a linked list, you need to take a large, blunt object and beat yourself with it. Save the GPL for a PROJECT, leave simple coding examples public domain. Let the download counter of your snippet be your reward.

    And as soon as such a thing exists, I've got a handful of code of varying utility I'd put in there. timer management, IO, buffering, whatever I've had to write. I'd like to clean out my attic and see if anyone else gets a use out of it.

    --Dan

  84. Re:Stealing by Arandir · · Score: 2

    "Write your own and don't whine that you can't steal from us."

    It's not stealing, it's sharing code with my friends :-)

    --
    A Government Is a Body of People, Usually Notably Ungoverned
  85. Thoughts by umoto · · Score: 1

    I wonder how many have considered an idea that I have been tossing about in my head as of late. I don't believe this is very far-fetched: proper use of the Unix process model could be considered a form of component-based programming!

    I can hear it now: "Boo! Hiss! Components have to be built on CORBA or DCOM or (name your acronym)!" Let me try to describe my view. Feel free to disagree!

    The major benefits, in my view, of component-based programming are:

    1. Components can be assembled with minimal effort.
    2. The system scales well because additional hardware can simply be added.
    3. Components are isolated from each other, so debugging is much simpler.
    4. The developer has many choices of programming languages and platforms.

    Which of these things can't be duplicated by a Unix script? Since multitasking is inherent and clustering is available, assembling a system using familiar Unix languages and multiple processes can be just as efficient as a CORBA equivalent. A Unix process does indeed have a component-like interface, though it may not be apparent at first: command-line arguments, the environment, pipes, signals, and sockets.

    Therefore, it could be argued that the "component repository" is already on any Linux user's HD. Image manipulation utilities, formatted document generators, network protocol implementations, forms-based GUI generators, widgets, etc.

    I'm going to provide a counterargument as well, however. An object-oriented component model needs to have easily defined and flexible interfaces. All Unix-based interfaces depend on a serialized stream of bytes. That is not appropriate when you want to send a polymorphic object!

    Thought number two (much simpler thought and probably more useful): as long as we can first decide on a standard model (CORBA would be a good choice), we could begin building components out of the GPL utilities already out there. "wget", "ispell", XML processors, and more are good candidates.

    Thought number three: The KDE people are already building lots of components. We have to build on their efforts as well as others'.

  86. Licensing by babbitt · · Score: 1

    Is there a license that would allow code to be re-used in a commercial application, but would force the commercial site to re-publish any changes that they made to the source?

    --
    "AOL, CIA, NSA, whatever, they all collect information, and they are all out to screw the american public"
  87. Re:Who uses components and what license do they wa by Patrik+Nordebo · · Score: 2

    Why would it matter to a consulting firm if they have to release their code to the client under the GPL? They're not making money from selling code licenses, they're making money by providing services to the customer. Of course, they might also build up an internal repository of components, but if they can get a vast number of components for free, they might consider it worth giving up the advantage they get from having proprietary code for that advantage of having all this free code available to them.
    For consulting firms specialised in niches, this might not work out to their advantage, but for most consulting firms, I would expect it to make sense. Though I don't have any experience with consulting firms and their code libraries, so I might be way off, but I suspect I'm not for most outfits.

  88. We need an index, not a library by Anonymous Coward · · Score: 0

    We don't need a component site. We need a component index. That index would list names a brief functionality description, an evaluation and pointers to similar components/libraries. We already have this for applications (eg. freshmeat/tucows/google) but not for components.

  89. Re:Stealing by Anonymous Coward · · Score: 0


    But your friends don't share
    and if they don't share, well they're
    no friends of mine
    </DIV>

  90. Trove? by Ed+Avis · · Score: 3

    What is happening with the Trove project?

    --
    -- Ed Avis ed@membled.com
  91. already exists also by quiddity · · Score: 1

    Another GNU GPL "module" or "component" structured system is being built up by Arsdigita.
    For more information check out:
    the guide to the Arsdigita Community system,
    Arsdigita.com,
    and the photo.net web tools review

    --
    .
    . hmmm
  92. Documentation for said components. by Nerant · · Score: 1

    I'll start off with a quote from the story/Ask Slashdot thingy:
    -> How to ensure quality code and documentation
    Quality code? The open source community is full of talent: and the peer review system inherent in open source provides ideal motivation for contribution. Reuseable code is one of the many Holy Grails of coding: component technology, object oriented languages etc all endeavour to achieve this, and none have reached the full potential of the concept.
    Why? The inherent nature of companies and firms, (the world's largest software company is an ideal example) to promote aggressive THEIR technology at the cost of their competitor's technology. Visual Basic Controls are a form of code reuse: so is the Perl CPAN system.
    In light of the above, it seems logical to rely upon raw source code for reuseable code, instead of company/firm controlled binary formats.
    However, we have to realise that while much code is generic and reusable, the general case is that we're gonna have to adapt the code found in said repository for our own uses.
    Documentation is key. Excellent documentation, or even step by step tutorials for those embarking upon their first open source project/first coding project even. Everyone is free to contribute and hack to the full extent of their own talents. Excellent documentation, for eg(my thoughts as an example: others may disagree) detailing the workings of the code, possible flaws etc etc, original intent would be a great aid to the maintainence and continued advancement of this collective pool of knowledge. Documentation help makes code even more reusable.

    just my 2 cents

    --
    Be kind. There are too many mean people out there already.
  93. Re:Who uses components and what license do they wa by samantha · · Score: 1

    Do you wish to insult all users of components? Have you not noticed the use of components in both KDE and to a large extent GNOME?
    Do you wish to insult all consultants? What do you think a lot of open source hackers do to make their daily bread? Why assume that consultants
    cannot consult based upon open source? Why insult all components and the idea of components just because you didn't like a particular
    set of components? Do you even understand what components are and are not?

  94. Glib already does most of this... by Tet · · Score: 2
    Glib already gives you linked lists, binary trees, hash tables and numerous other handy data structures and useful routines. It's widely used (being the basis for gdk/gtk, and hence Gimp, GNOME etc.) and fairly bug-free. For more details, see http://www.gtk.org/rdp/glib/book1.html.

    Primarily for use in C, but bindings exist for numerous other languages, too.

    --
    "The invisible and the non-existent look very much alike." -- Delos B. McKown
  95. we need system engineering, not hacking by Anonymous Coward · · Score: 0


    why not just be sure that the code works?

    there are methodologies out there that guarantee robustness, performance and absolute adherence to requirements. a nice by-product is complete system documentation that actually reflects the implementation. (what a concept!)

    what open source needs is a set of tools to support these methodologies. (not to mention the actual awareness, appreciation and understanding of this technology.)

    real system engineering anyone?

    contact l2b for details.

  96. Then again.. by Kitsune+Sushi · · Score: 1

    ..I wasn't even arguing with your views on the subject of a component library, merely how you presented them. Slanderous terms such as the ``General Public Virus'' do not promote understanding. See Bruce Perens' long list of running commentary on the subject for more about the ``viral behavior myth''.

    And since you bothered to claim that for everyone except RMS and myself it's a ``no brainer'', perhaps I should point out that despite the fact that *BSD has been around far longer and was fully functional before the conception of GNU/Linux.. well, which is more popular today, do you think? And, ah, why do you think that is? If it was a purely technical edge, there would be no room for GNU/Linux, as *BSD has been mature for far longer. And since the GPL isn't a ``truly free'' license, it couldn't be philosophical, either, eh? Quite simply, your argument holds water like a sieve. Good job!

    At any rate, you're doing very little to prove yourself as anything other than a bigot to me, especially since you opted for another low blow by implying that GPL'ed software is not truly free. The GPL is free in the sense that it wants to be, and there is more than one kind of freedom.

    Thanks for making my point for me. If I am actively maintaining a public domain program and a GPL'd library exists that would be useful to me, then I effectively have two choices: either abandon my public domain status and incorporate the library, or reimplement whatever features in the library I wanted. Of course, I could fork the code, but do I really want to maintain two versions of the code? No. If I'm going to have to implement a fully public domain version of the code, then why would I bother with the GPL'd code?

    So.. so what? All this proves is that you should choose your words more carefully, and have a better comprehension of what you're talking about. I certainly didn't ``prove your point'' for you, since what I said didn't have a damn thing to do with what you said except for the fact that I disproved an offhand remark of yours. Then again, very little of what you've said hits me as being very clueful.

    If you really want to make your case on these kinds of issues, do so in a calm, eloquent manner.. one that promotes understanding rather than bandying about all sorts of flamebait-loaded terminology. You certainly don't come off as being very informed.

    To top all of this off..

    And given the propensity of GPL advocates to accuse others of guilt by association with "slavery", "warez doodz", and other "abuses" of software, I'd rather keep my software genuinely free and well clear of the General Public Virus.

    And somehow you feel that your particular brand of bigotry is any better?

    Yeah. That's precisely what it is. Now to explain: There are *BSD bigots. There are GPL bigots. There are all sorts of bigots. However, just because, say, some black person calls a white person a ``cracker'' or ``honkey'' doesn't make me glad I'm not black any more than some white person calling a black person a ``nigger'' makes me wish I wasn't white. Again, your arugments don't make sense. Apparently you spend too much time paying attention to the lowest common denominator rather than informing yourself about the issues at hand and then going on to make an educated decision.

    To clarify: I made some inflammatory remarks in response to your rather obvious bigotry. I was not making inflammatory remarks toward people who support licenses other than the GPL (even proprietary ones, and certainly not other free software ones), just those who slander the GPL for reasons that are completely unfounded. Being slanderous just to be slanderous is what we call either ``flamebait'' or ``inflammatory''.

    As an aside, I'm not completely against proprietary software. I don't think it's ``give me GPL or give me death!'' I think PINE and PICO are nifty. There are better tools, like Mutt and Emacs (or just Emacs with Emacs/Mutt), but PINE and PICO still fit their niche. I don't see a reason for them to be GPL'ed. I also don't see a reason for games like Quake to be GPL'ed. While it would be nice, computer games aren't quite as important as your basic tools, such as your compiler and debugger and what have you. Critical pieces of your overall system (such as the OS) do well as free software because, quite simply, they need to work, and if you have to beg someone to fix their fuckup, it's not going to seem very worthwhile to use that OS.

    Public domain and, say, BSD-licensed software are free software just as GPL'ed software is free, except that without a copyleft, there's no guarantee that they'll stay free. There's less incentive to contribute to the main branch. There's more incentive to fork it into a commercial work. Generally speaking, there's less incentive to share. Those who uphold any semblance of the Hacker Ethic would want to share, and would want others to share too. The perceptive ones, such as RMS, would realize that most people do not want to share, and that if they're going to make software that can not be shared, they sure as hell are not going to use his software in the same manner as their proprietary works.. And thus was born the GPL, a license which forbids others from restricting the rights of users to share GPL'ed software and code. The only ``advantage'' BSD-style licenses have is that they may be made proprietary. This is sort of counter-productive to people who believe in sharing, since proprietary software is not meant to be shared.

    --

    ~ Kish

  97. GPL Software Citation Index? by two_can · · Score: 1


    Excellent Thread.

    I've been thinking along the same lines for a while.

    I think the key will be the "citation index", to use the scientific research term. Just like research papers.

    Usually well documented code points back to where it came from, just like the web.
    But more useful are forward pointing links.

    ex:
    "I see this really neat "pattern" from 6 months ago,
    but it is not quite right,
    let's look forward to see what someone had done with it, and perhaps they are closer to what I need."


    This is exactly what scientific papers and such already have: citation indexes. I used the paper version (age showing) of "current contents" when doing research in a University environment. A version is now online here ISI: Online Current Contents .


    A standardized set of XML-ish tags or commands to let the web spiders like Altavista or google find these sites would also be very useful...

  98. Now this is more interesting.. by Kitsune+Sushi · · Score: 1
    Now, before some GPL-zealot chimes in with, "But the GPL is free!" let me point out (as if noone ever has before) that the GPL is a very restrictive free license.

    Naturally the GPL is a restrictive license. There is no other way for it to remain free software (for sure). The author of the GPL, RMS (this is not counting the gang of lawyers that helped him out), doesn't even believe in copyright licenses. He wishes everything could all be public domain. The obvious problem is that most people aren't hackers, don't give a damn about the Hacker Ethic, and certainly don't feel like sharing.

    The GPL makes sure that there is still software you can share. Unfortunately, it is written in such a way that it can not ``play nice'' with the other free software licenses, but if it were to do so, it would also open up holes that proprietary software licenses could take advantage of, and thus be able to transform the GPL'ed work into a non-free software package.

    This was clearly against RMS' intentions.

    Some intelligent and well meaning individuals even argue whether the GPL is actually free, and I am at times tempted to agree with them. The GPL is indeed "obligatorily open," but that doesn't necessarily promote freedom, unless it's the FSF defining "freedom."

    Copyright law is intended to serve as a safeguard against the natural right to copy. The right to copy is one of the freedoms the GPL upholds. Yes, it is the FSF's brand of freedom that the GPL upholds, but when you talk about being free, you talk about your freedoms. Pluralized. This is because you have several freedoms (this is from the point of view of a U.S. citizen, FYI). In the U.S. you are not completely ``free'' in the sense that you have every available freedom known to humanity. This is because there is more than one kind of freedom. The GPL does a very good job of defining which freedoms it upholds, so calling it ``non-free'' is an exercise in counterproductive nonsense, as it is paramount to saying that ``anything less than anarchy is not free, and if I can't be free, I'm going to create an anarchy''.

    The problem with any anarchy, however, is that there are no laws or governmental bodies to protect your freedoms, and thus, you can lose your freedoms the first time someone comes around whom you can't best in a fight. The notion doesn't sound very appealing. Of course, anarchies wouldn't be a problem if everyone was an essentially good person. Only the most naive of us believe this is the case.

    This is great if you are a big fan of the GNU Project. There are plenty of good reasons to be, but some people aren't or don't have the choice. If the developer doesn't control the all the licenses involved in a project then it boils down to two possibilities: rewrite the GPL code or rewrite the non-GPL code. In either case, good solutions exist which can't be used. Which portion do you suppose the developer will rewrite if the non-GPL portion of the project is, say, Oracle?

    Much of this could be applied to proprietary software licenses as well. It is simply the nature of the beast. Unless everyone feels like sharing software freely as was done in days past, there will be a need for the GPL. And since the GPL must uphold the freedoms it promises its users, it's going to have to be a restrictive license. I'm sure that RMS would agree with me that this is an unfortunate situation.

    Now, I said all that to say this: The problem here is that we are discussing an open-source repository rather than a GPL repository. The former would be generally useful to free software projects and the latter would be useful only to GPL projects. If your stated goal in life is promoting the GNU Project then a GPL repository would right up your alley. But if you have issues with the GPL, either legal or philosophical, then a GPL repository's usefulness to you is marginalized.

    Quite naturally. However, I was never commenting on the overall topic at hand, merely the slanderous usage of terms such as the ``General Public Virus''. I would actually agree that a repository which contained software from all of the free software licensing schemes would be a Good Thing. I would also wager that a separate repository for GPL and LGPL stuff only could be a Good Thing as well. If you went through all of the above simply to state this, you need not have bothered. I knew this well enough before I even clicked ``read more''.

    Don't make the mistake of thinking that the GPL is congruent to free. There are lots of ways to make software free, but only one way to make software GPL. Not everybody who dislikes the GPL is a horrible miscreant who wants to enslave software.

    All I ever asserted was that GPL'ed software was free software, not that it was the only free software. Therefore, neither of those comments apply to myself particularly well.

    --

    ~ Kish

  99. Linux ports? by bdr · · Score: 1


    Perhaps a new distro would be a better idea :-)


    I wonder why something like BSD's ports collection doesn't exist in the Linux World. I frequently find myself hunting for a .src.rpm in order to try to fix something or at least have a glance at the code, but

    1. not all mirrors mirror the SRPMS.
    2. most SRPMS won't build when you're not root.

    (I don't like tarballs because I tend to lose track: what's installed, where it is installed, what file belongs to which package... Plus I like having the patches that integrate the software in the distro.)

    (I know there are other package managers but AFAIK they don't support source packages as well)

  100. check out www.sourcebank.com by jmvidal · · Score: 1

    I havent used it much, but its a start.

  101. GPL, Public Domain & Fork-Proof Licences by dmoen · · Score: 1
    If its public domain, couldn't they just GPL it?
    If I take a copy of the King James version of the Bible (which is in the public domain) and slap a copyright notice on it, the copyright isn't valid: only the author of a work can copyright the work. If someone simply slaps a copyright notice and a GPL onto my public domain source file, it isn't valid.

    If someone makes improvements to an open source software project, there are strong social pressures to contribute the changes back to the project maintainer, rather than creating a fork. For example, Softway Systems (a for-profit company) has contributed all of their changes to the pdksh back to the project maintainers. Since pdksh is public domain, Softway released their changes to the public domain. In short, people do contribute to public domain software projects, and forking is not inevitable.

    If I was paranoid, and wanted to prevent people from forking my open source code, I wouldn't choose GPL over public domain for that reason, because GPLed code is just as easy to fork as pd code. I would instead choose a fork-proof licence like the QPL.

    The real benefit of the GPL is that it has restrictions that prevent bad people from doing bad things with your code (ie, making the code unfree). The real benefit of the public domain is that it is compatible with every software project. That means more people using the software, and more people contributing useful changes back to the project maintainer. Notice the difference in emphasis here.

    --
    I have written a truly remarkable program which this sig is too small to contain.
    1. Re:GPL, Public Domain & Fork-Proof Licences by Patrik+Nordebo · · Score: 2

      You can't slap a copyright on a public domain work as is, but as soon as you modify it somehow, you have copyright to the modified work, and then you can GPL it. You can, e.g., simply add a GPL copyright notice in every file, and then license the work under the GPL. So it is certainly possible to take public domain source and put it under the GPL without even changing the actual code.
      Many people would, of course, find this to be offensive, but that doesn't mean you can't do it.

  102. Counterexamples, object frameworks, repositories by Anonymous Coward · · Score: 0

    A component repository implies the existance of a framework which allows interaction between elements which constitute the repository. In many cases, these components can be utilized without the need to study and understand the code. An understanding of the interface is sufficient. To be successful, such a project must define something at the level of a framework. CORBA is an interesting framework which allows integration of many languages into such a framework. But it has two problems: the specification does not define enough detail for specific environments, and it has a SIGNIFICANT learning curve. Now let's take a lesson from history and our peers: KDE and Gnome have been in talks for a while regarding a component architecture which allows inter-communication of their respective elements. It has gone under the name of OpenParts, and the technical issues have been quite contraversial. Now let's take a lesson from our rivals. Their component standard is the illustrious ActiveX. It is a formidable, robust, mature rival technology. (It also has a significant learning curve, which is only aleviated by well-integrated development tools.) I know little about OpenParts, so a comparison on my part would be an injustice. Perhaps some day we will see Wine provide an ActiveX to OpenParts gateway. That day is still a LONG way away. There are many more component technologies and frameworks. Many are suited only to a particular language or class of applications. Name your poison. Doesn't this call for an objective SlashDot feature on component technologies?

  103. This is not an easy task by Jorrit · · Score: 1

    I think it is not easy to make such a component repository work well. Ideally you would expect all components to behave well and work well together. But this is not obvious. Imagine someone builds a nice graphics polygon class (just an example). It uses some Vertex class to represent the vertices. Another person builds a bezier curve class which is also controlled with vertices. Unfortunatelly he/she made his/her own version of Vertex because the work was done independently of the work of the Polygon creator.

    This is difficult to avoid if you just throw together components made by several people. The problem here is that components are often based on/or use smaller sub-components (like Vertex). So there will be many implementations of those classes. And they will most likely not be compatible (although hopefully easy to convert).

    So a good component library should preferably avoid this and try to reuse globally accross all components. This is no longer an issue of just reusing components, it is also an issue of making sure that the components themselves are also making the best use of available components.

    This is not an easy task. But it can be done.

    Greetings,

    --
    Project Manager of Crystal Space (http://www.crystalspace3d.org). Support CS at http://tinyurl.com/cb3x4
  104. I'm getting one together by Sagev · · Score: 1

    I was planning on beginning work on this sometime next week, oddly. I've expanded heavily on the idea, and I think that making sure they're all GPL isn't all that important. BSD license would be fine. Code without a license would also be fine. Basically, what you'd need to worry about is whether or not it's freely redistributable.

    Obviously, one wouldn't want to put up the source distrobution of Sun's JDK. Sun's community license prohibits it, and Sun would probably come yell at you. If, on the other hand, you find a piece of code that has as a license header:
    'Hope this code is useful to you. Enjoy'
    Then you -can- post that, since the author clearly doesn't much care what his code is used for.

    Now all I need are ideas for domainnames. :)
    --Sagev
    wales001@my.bomis.com

  105. Re: Bamboo for COA by Jack+William+Bell · · Score: 2

    Thank you for responding Kent!

    First, let me say that I am actually considering Bamboo as one of the underpinnings of the COA. As you pointed out -- in this case being lightweight is an advantage. Actually a huge advantage.

    But let me quote from my original post (referring to Bamboo, Corba and ZOPE): "But none of them go as far as I would like." As a basic technology underlying the COA Bamboo is very nearly perfect. Much as the ZOPE Object Database design (ZODB) is nearly perfect for COA persistent storage. Only thing is, these are peices of what I see as a larger whole...

    The real point is that I want to design first and develop afterwards (what a thought!). Not being a foolish egoist, I have every intention of incorporating any existing technology that would work as part of the whole. And I do see Bamboo as possibly filling a specific role, both in code and architecture. I would welcome your help in making this so!

    So what do I need right now? Something you are probably doing anyway: Architectural documentation for Bamboo. Preferably with UML diagrams and with more detail than the overviews I found drilling down from the Bamboo web site. And I would really appreciate your active participation in the COA effort. Everyone involved has real jobs of course, and so we will probably proceed in fits and starts. Plus there is the usual possibility of the whole thing just fading away. But I can guarentee you one thing; this is an idea whose time has come. If it isn't the COA it will be something else.

    Jack

    --
    - -
    Are you an SF Fan? Are you a Tru-Fan?
  106. organizing the code by xeno · · Score: 2

    The question that immediately comes to mind is how to organize the code. CPAN is PERL-specific, and other repositories tend to be similar in terms of supporting a single language.

    On the other hand, the purpose of the proposed repository is to support the distribution, improvement, and archiving of GPL code. IHMO the specific language should be secondary; i.e. the repository directory for a given type of network interface would contain C, C++, Java, Perl, and other code.

    Confusing? Yes, somewhat. There would certainly be disjoints where there is no equivalent code, and the repository hierachy would have to be somewhat general. But doing so would have the implicit effect of encouraging porting, cross-platform development, and ultimately support sharing and development of GPL code in a manner that's not been done before.

    -just my .02

    --
    I think not...(*poof*)
  107. Code Evaluation by Slimbob · · Score: 1

    I was wondering how one might design a site to entice readers to evaluate source code for a public repository, and I realized that I'm looking at a pretty interesting one here on slashdot: meta-moderation.

    I'm wondering if anyone has considered setting up a server like slashdot for code, allowing code modules to be submitted publicly like articles, with some header that describes the code. Interested readers could click to see the full code as well comments that others have made, and of course they are free to submit comments of their own. And if their inputs are valuable (reflected by ratings numbers), they may even be invited to meta-moderate new submissions and comments.

    Ending note: How is meta-moderation working out on slashdot? Most of comments I see (generally score 3+) are worthy of the rating, but is there any abuse? Any comments getting excessively down-moderated? Just curious.

  108. Re:Let CORBA die - exactly by Anonymous Coward · · Score: 0

    Well put. XML/HTTP is the better way - the language of the web. CORBA/IIOP compatability is just not there, nevermind the 1000 page spec from hell for CORBA.

  109. free web developer for hire : ) by Arkahn · · Score: 1

    It's an exciting idea. I'd be very interested in working with somebody on something like this, either an existing website or a new one. Email me (ryan@l-s.com) if you'd like to know what I could do to contribute.

    Ryan

  110. Re:Stealing by Arandir · · Score: 2

    Why should it bother *you* that *my* friends don't share?


    Software should not be owned. If my friend asks me to make a copy, it would be wrong to refuse. By putting a copyright on the software, you are asserting ownership over it, and denying me my natural right to share it. People not only deserve free software, they deserve software without conditions.

    --
    A Government Is a Body of People, Usually Notably Ungoverned
  111. LGPL Info by Bernal+KC · · Score: 1
    Since I was ignorant of LGPL I did a bit of research -- something other flamebaitee's obviously neglected to do. LGPL is clearly a better choice for the type of component repository under discussion. From FSF's GNU Lesser General Public License page:
    "This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it.[...]

    For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License."

    To me it is obvious that LGPL is better suited for a repository that aims to create defacto standard bomponentry -- for the exact reasons that led FSF to coin the LGPL.
  112. many repositories specific to language or theme by tangent24 · · Score: 1

    I agree with the comment that the entire Internet is such a library.

    Having multiple specialized sites, perhaps centrally indexed ensures that one language won't get ignored by the people that run the a general interest site.

    Build it and they will come!

  113. Open Source semantic search engine by Cyberfox · · Score: 1

    Greetings,

    Wouldn't this be nice to type into a search window:

    'C++ class !(public constructor) && (public static method returning selfclass)'

    This would find all C++ classes in all projects that contain no public constructors, and have a public static method (class method) that returns the same class as it's defined in. This would be an adequate 'search for singleton class' function, for anyone who knows Design Patterns. (Yes, it would probably become a macro, so you could search for 'singleton && "config"' to search for singleton classes that contained the word 'config' someplace in them.)

    I'm working on this myself, although I've completely surrendered on C, because there are virtually zero projects that don't abuse the pre-processor in ways that make the code unparseable (semantically) without being run through the pre-processor first. (And if you try to do that, you need to know how the project is built, what defines are declared, etc, and your include files need to be the same as X platform, etc... This rapidly becomes a nightmare, trust me.) C can be indexed using 'glimpse' or something similar, but semantic indexing is pretty much just impossible without lots more information, and therefore non-automatable, which is my number-one priority.

    C++ is nicer, because fewer people do Stupid Things with the preprocessor. (WHY would you define 'FOREVER' as 'while(1)'?!? Think it's cute, or something? Bleh...)

    Java is *GOLDEN* because it's completely semantically parseable with no problems with the preprocessor. It doesn't HAVE one. I love indexing Java.

    On the other hand, I have about 1.2G of .tar.bz2'ed source files, and I'm not indexing anywhere NEAR all of them, because a small subset quickly outruns MySQL's 2G file limit, and just a few more quickly outruns ext2's 4G single-file limit. (I have about 40G at home that I'm using to do the indexing on... I bought a pair of 20G drives just to experiment w/ this problem.)

    ReiserFS might work, that's on my list to try (if it's stable), but I need to get the indexing working better for C++, and then see if I can't shrink the database files some.

    Ahhhhhnyhow, basically, it's a hard problem to properly index and search large source bases, without simply abusive resource utilization problems. If all you want to do is 'glimpse' index it, that's easy, but it loses a lot of what you'd want to search for I feel. (Context isn't preserved, because glimpse indexes non-structured content. This is a great generic solution, but I believe firmly that code can be better indexed with a custom solution.)

    On the other hand, you also NEED to 'glimpse' index on the comments, and the non-source files in a project tree. (Figuring out which is which is harder than you might think, sometimes.) This lets you search reasonably for 'This needs to be fixed!' long after it's been forgotten by the original author.

    This is my main personal project these days, the coding project that keeps me sane while I'm having to reverse engineer and document what's been done by the hardware engineers (who no longer work there) at my company, instead of programming like I was hired to do.

    At least I don't need to be in a server room on New Years. *wry grin*

    Anyhow, if you have any suggestions (yeah right, this is sadly already off the radar for most slashdot readers, I guess...) feel free to drop me a line at cyberfox@vixen.com.

    I don't know of anyone (outside of commercial companies) working on this kind of problem right now. I think it would be a good resource, and it's a fun project for me... Oh, and of COURSE the code is going to be GPL'ed if/when I ever make it useful to anyone outside myself.

    Cyberfox!

  114. Software repository sites by Anonymous Coward · · Score: 0

    There's a large list of sites with reusable software for several different languages here.

  115. Re:It exists...sunsite... by Anonymous Coward · · Score: 0
    You do need a catalog a
    • very good one
    or better than that.

    But the applications and libararies and more than you want to deal with is on sunsite and the mirrors.

    Have you really gone through it recently?

    sample mirrors that are semisets (part subset part superset)
    ftp.cdrom.com
    ftp.rge.com

    CPAN is a subset of these sites.

    The cataloging is probably really important. Ex: looking for fast lookup. Examine zdbm. What? oh that is included with c-news or inn.

  116. Re:VERY BAD IDEA!!!! by N!ght$h@de · · Score: 1
    Paranoia is taken to an extreme here, isn't it?

    By the way, there were only three points. The fourth line was simply a comment.

    --
    **There are varying shades of darkness, I am but one of the many.**
  117. Debunking a Myth regarding the GPL by dmoen · · Score: 1
    You can't slap a copyright on a public domain work as is, but as soon as you modify it somehow, you have copyright to the modified work, and then you can GPL it. You can, e.g., simply add a GPL copyright notice in every file, and then license the work under the GPL. So it is certainly possible to take public domain source and put it under the GPL without even changing the actual code.

    Not true. This is a widespread misconception. This is no more or less legal than taking a GPLed source file, deleting the original copyright notice and inserting a BSD copyright notice.

    Here's a quote from US copyright law:

    103 (b) The copyright in a compilation or derivative work extends only to the material contributed by the author of such work, as distinguished from the preexisting material employed in the work, and does not imply any exclusive right in the preexisting material. The copyright in such work is independent of, and does not affect or enlarge the scope, duration, ownership, or subsistence of, any copyright protection in the preexisting material.
    In other words, if you add a copyright and GPL notice to the top of a public domain source file, without making any other changes, then the copyright and the GPL licence only applies to the copyright and the GPL notice, not to the rest of the file. The copyright and GPL notice do not place any restrictions on the original public domain source code ("does not imply any exclusive right in the pre-existing material").

    But wait, there's more. Consider this:

    506 (c) Fraudulent Copyright Notice.--Any person who, with fraudulent intent, places on any article a notice of copyright or words of the same purport that such person knows to be false, or who, with fraudulent intent, publicly distributes or imports for public distribution any article bearing such notice or words that such person knows to be false, shall be fined not more than $2,500.
    If you take a public domain source file that I wrote, and insert a "Copyright 1999 Patrik Nordebo" notice (plus a GPL notice), then you are committing a criminal offence.
    --
    I have written a truly remarkable program which this sig is too small to contain.
    1. Re:Debunking a Myth regarding the GPL by Patrik+Nordebo · · Score: 1

      Ok, so US copyright law differs more from Swedish copyright law than I thought it did. But if I were to do that (in Sweden), I would hold copyright to the derivative work, and that might mean that I would also hold copyright to it in the rest of the countries that have signed and ratified the Berne convention. But I haven't actually read the Berne convention, so I'm not sure about that.
      Actually, there probably isn't much difference. I would only hold copyright to the work in the modified form. If you were to extract the original, I doubt my copyright would still apply.
      But that doesn't prevent me from distributing under the GPL, AFAICT, it just means that the GPL wouldn't be completely enforceable. You would have to use the GPL if you wanted to include any of the stuff I modified (like the license notices), but you could extract the original work and it would still be public domain. Whether that invalidates the whole license or not I don't know.

  118. Re: Bamboo for COA by Anonymous Coward · · Score: 0


    Hey Jack,

    We agree that Bamboo only represents a part of the whole solution,
    however, we would not be so bold as to presume that we know the
    correct component architecture needs for all possible future
    applications. For that reason, we believe that currently the
    proper place for such an architecture would best be served
    within a Bamboo module, rather than in the Bamboo kernel itself.

    That being said, we would love to collaborate on the design for
    a COA module. Our internal projects are in need of just such a
    solution. Unfortunately, our current resources and schedule can
    only allow us to commit to helping with the specification, and to
    adding whatever Bamboo kernel support is necessary, if any.

    We hope to hear back from you on your thoughts.

    Yours,

    Kent and Howard