Can we attack the 'not enough libraries' thing straight on?

dblack@candle.superlink.net wrote:

My main qualm about this has always been at the last link in each
chain – that is, the “c.rb” in “a/b/c.rb”. One problem is that if
there’s one franchise holder for each potential module space, then if
that person’s module isn’t very good, there are all sorts of problems.
(I’m undiplomatic enough to suggest that this might happen, but would
probably be too diplomatic and/or cowardly to flag it publicly if it
did :slight_smile:

well, in the CPAN world, a/b indicates category. no single person
control this so there is room for everybody. you just have to name your
module sensibly, and if someone else has already taken that name, find
another sensible one. it’s usually not that crowded enough that this
system works fine until today.

take for instance the Mail:: namespace:

Index of /modules/by-module/Mail

as you can see, there are many many mail-related modules, some overlap
in functionality. for parsing mbox there’s Mail::MboxParser,
Mail::Folder::Mbox, and probably several others that i haven’t checked
out. they seem to live quite happily together and no one seems to occupy
or take hold of the namespace in a way that makes people think that
there is only one obvious mbox parsing module.

the good thing about this is that, since there are many choices for a
particular task, two things might happen:

  1. natural selection, survival of the fittest;

  2. one or more people will initiate an effort to make a superset/general
    module (e.g. Mail::Box). the resulting module might be good or bad, but
    in the specific case of Mail::Box, the author tries hard to merge all
    the good things from all the other existing modules and tries to do
    things better. it seems, so far so good.

Another problem is that more than one person might well write
perfectly useable modules in the same domain, which might differ from
each other in matters of API but each be to some people’s taste.
There has to be room for these.

yes, there always is.

That’s why, at the very least, I would advocate naming along the lines
of text/soundex/dbsndx.rb and text/soundex/marcel.rb, rather than
text/soundex.rb.

yes, fine with me too. at least the “text/soundex” part is there. in
CPAN there is the modules@perl.org mailing list where people discuss
these issues. i believe there are some cases where a proposed module
name/namespace is too general and others recommended another name.

we can also enforce this, if desired. say the first and second level of
the namespace is reserved for category only.

(I have no problem with the latter style for things in the standard
distribution.)

I admit too that I have a distaste for this kind of categorization,
because it freezes a particular, sometimes unconvincing snapshot of
how the pie is sliced. But I haven’t come up with any way to do away
with it entirely.

well, if there are 1000+ public modules out there (and we like that to
happen for ruby right?), people will sooner or later tend to organize
the namespace anyway. it’s nice to have one standardized way to do this.
on the other hand, organizing the namespace will encourage people to
submit their modules into the community (as is the case with CPAN). so i
see it as a win-win situation.

···


dave

Well - Jabber is out with the IETF, in an attempt to get it to become a
bonifide Internet Protocol and standard, so it should live with other
internet protocols probably - such as http-access, etc ?

Cheers.

···

On Sun, Jan 26, 2003 at 03:27:44PM +0900, Mark Wilson wrote:

On Sunday, January 26, 2003, at 12:52 AM, Iain ‘Spoon’ Truskett wrote:

[snip] Um, why is Jabber in WWW?

For reference, where would ssh, telnet, ICQ and IRC libraries end up?
[snip]

CPAN puts Jabber stuff under WWW. But if that’s silly, it shouldn’t be
copied. ssh, telnet, icq and irc libraries should probably go under
‘networking and www’ – especially if that’s where you would expect to
find them.

[snip] Um, why is Jabber in WWW?

For reference, where would ssh, telnet, ICQ and IRC libraries end up?
[snip]

CPAN puts Jabber stuff under WWW. But if that’s silly, it shouldn’t be
copied.

Ah. I think it’s because Net::Jabber can operate via http. Or something.
You’ll also find Net::Jabber under the general network header.

ssh, telnet, icq and irc libraries should probably go under
‘networking and www’ – especially if that’s where you would expect to
find them.

I’d be tempted to divide up networking and www. WWW is large enough to
be a category on its own. Much like you had Mail/News separate.

cheers,

···

On Sunday, January 26, 2003, at 12:52 AM, Iain ‘Spoon’ Truskett wrote:

Iain.

Gavin Sinclair gsinclair@soyabean.com.au writes:

This would be nice. In the volunteer, every man do his bit, world of
Ruby library development, it’s not possible to centrally manage this,
though.

That’s odd; I wonder how it’s possible that it works in the volunteer,
every man do his bit, world of Perl library development.

···


You are in a maze of little twisting passages, all alike.

Can you give an update on this project? I remember you described the
general idea some time back but don’t remeber the details. I’d love to see
this happen…

Regards,

Robert

···

On Sat, 25 Jan 2003, Peter Kwangjun Suk wrote:

–Peter Kwangjun Suk

(P.S. Someone mentioned cryptographic algorithms. At one time the
VisualWorks 5i implementations of some block ciphers (like DES) were
running 3% faster than RSA Data securities’ DLLs in C. Yes, that’s
right, 3% faster than the same algorithm in C. And these were pure
Smalltalk implementions. Just shows what you can do with great
generational GC, good design, and a great JIT VM. I happen to be
working on running Ruby on Smalltalk VMs.)

Gavin,

I think it’s a great idea. Why can’t it happen any time soon?
There can be a person or two who could try to sort RAA into appropriate
categories and those people can do this. They don’t have to be the
original developers.

Once the current RAA is sorted out, we can ask that authors of additional
modules select an appropriate category for their module.

Your idea allows for a good structuring if RAA without forcing each
contributor to agree to rename their module.

What would be the simplest way to get this into people’s computers?
Perhaps an ‘aliases.rb’ module that people can download? Then the
download page of each module in RAA could have a link to this
‘aliases.rb’. Or is this a bad idea?

···

On Fri, Jan 24, 2003 at 11:29:36PM +0900, Gavin Sinclair wrote:

IPC::Msg::foo …
IPC::SysV::quux …

I think this is a good idea, but unlikely to happen anytime soon.


Daniel Carrera
Graduate Teaching Assistant. Math Dept.
University of Maryland. (301) 405-5137

one wish would be to see tvision lib being developed by the original developer or the community. its a amasing and powerfull console ui lib
some one should really help bring it up to speed.

···

On Sat, 25 Jan 2003 01:11:13 +0900 Peter Kwangjun Suk suk@pobox.com wrote:

On Fri, 24 Jan 2003 23:10:00 +0900 > Warren Brian Noronha warren@freedomink.org wrote:

dear devels
it would also be nice to have all the libs assorted like
File/
Filetools…

IO/
Pipe…
IPC/
Msg
SysV…

In the Smalltalk community, there are a variety of open license libraries which could be ported quite rapidly. (Smalltalk is Homomorphic to a subset of Ruby, so porting is mostly mindless.)

In particular, you Ruby-istas might be interested in many of the things on this page:

http://www.cincomsmalltalk.com:8080/CincomSmalltalkWiki/VW+GoodiesParc

You’ll have to check on licenses by individual package.

–Peter Kwangjun Suk

(P.S. Someone mentioned cryptographic algorithms. At one time the VisualWorks 5i implementations of some block ciphers (like DES) were running 3% faster than RSA Data securities’ DLLs in C. Yes, that’s right, 3% faster than the same algorithm in C. And these were pure Smalltalk implementions. Just shows what you can do with great generational GC, good design, and a great JIT VM. I happen to be working on running Ruby on Smalltalk VMs.)

Hi –

[I wrote:]

I admit too that I have a distaste for this kind of categorization,
because it freezes a particular, sometimes unconvincing snapshot of
how the pie is sliced. But I haven’t come up with any way to do away
with it entirely.

well, if there are 1000+ public modules out there (and we like that to
happen for ruby right?),

I certainly do – I even started a thread trying to encourage it :slight_smile:

people will sooner or later tend to organize the namespace
anyway. it’s nice to have one standardized way to do this. on the
other hand, organizing the namespace will encourage people to
submit their modules into the community (as is the case with
CPAN). so i see it as a win-win situation.

I have to say, I think that lack of community encouragement to submit
modules is definitely not part of the problem here. RAA is actually
quite active, and there’s lots of encouragement, explicit and
otherwise, to share code there. It’s interesting in this connection
that a number of people feel that the problem revolves more around
searching and retrieval than around missing modules.

As for categories: it’s probably a somewhat abstract point, but I’ve
always wondered whether decisions to group certain things together has
an effect on how people perceive the possibilities of software usage.
For example, an archive might have an XML section, but no SGML
section… and it might have a Text section that’s unconnected to
the XML section, and so forth. In the end, I suppose one has to bite
the bullet and go with the familiar “AI, Algorithms, Benchmark,
Calendar…”-style view, but I’m intrigued by the possibility of
dynamic, equally (but differently) stratified views.

Of course this is purely an archive-searching thing. On one’s system,
a given module has to go somewhere specific.

ANYWAY… in order to live up to my own goal of not getting embroiled
in discussions about naming at the expense of writing modules, I
really should go look at Hal’s list and choose a module! :slight_smile:

David

···

On Sat, 25 Jan 2003, David Garamond wrote:


David Alan Black
home: dblack@candle.superlink.net
work: blackdav@shu.edu
Web: http://pirate.shu.edu/~blackdav

Iain ‘Spoon’ Truskett wrote:

CPAN puts Jabber stuff under WWW. But if that’s silly, it shouldn’t be
copied.

Ah. I think it’s because Net::Jabber can operate via http. Or something.
You’ll also find Net::Jabber under the general network header.

ssh, telnet, icq and irc libraries should probably go under
‘networking and www’ – especially if that’s where you would expect to
find them.

I’d be tempted to divide up networking and www. WWW is large enough to
be a category on its own. Much like you had Mail/News separate.

Folks:

I think there’s a hint here. The real world isn’t hierarchical. Why are
we assuming the archive should be?

Dave

Fair point, but it’s a matter of where the community’s at. I’m sure
Perl wasn’t always as organised as it is now. Ruby is extremely lucky
to be able to learn many things from Perl, but it still takes time.

Also, difference in languages engender difference in community
attitudes, approaches, capabilities, etc., although I can’t really
elaborate on that.

What do you think of the idea I put forward, though? I thought it was
right up your alley :slight_smile:

Gavin

···

On Saturday, January 25, 2003, 1:48:46 AM, Simon wrote:

Gavin Sinclair gsinclair@soyabean.com.au writes:

This would be nice. In the volunteer, every man do his bit, world of
Ruby library development, it’s not possible to centrally manage this,
though.

That’s odd; I wonder how it’s possible that it works in the volunteer,
every man do his bit, world of Perl library development.

Sorry, another reply.

Is it centrally managed in the Perl world? If not, I’d like to know
more about the processes that allow a decentralised planning model to
succeed. But I imagine that with the size of the Perl community,
there must be a few people qualified and inclined to take on the task.

The diminunitive size of the Ruby community only allows for one or two
people to manage a set of library mappings, as I proposed, and
probably not even that.

Gavin

···

On Saturday, January 25, 2003, 1:48:46 AM, Simon wrote:

Gavin Sinclair gsinclair@soyabean.com.au writes:

This would be nice. In the volunteer, every man do his bit, world of
Ruby library development, it’s not possible to centrally manage this,
though.

That’s odd; I wonder how it’s possible that it works in the volunteer,
every man do his bit, world of Perl library development.

IPC::Msg::foo …
IPC::SysV::quux …

I think this is a good idea, but unlikely to happen anytime soon.

Gavin,

I think it’s a great idea. Why can’t it happen any time soon?
There can be a person or two who could try to sort RAA into appropriate
categories and those people can do this. They don’t have to be the
original developers.

Well, it’s just that it takes a lot of non-core effort for
questionable gain. It’s “nice” but not essential. And categorising
things like that is completely non-trivial.

I suppose you could make it easy by just maintaining a single text
file, or perhaps a Ruby hash, describing the mappings, and dynamically
building the modules on startup.

Once the current RAA is sorted out, we can ask that authors of additional
modules select an appropriate category for their module.

Your idea allows for a good structuring if RAA without forcing each
contributor to agree to rename their module.

What would be the simplest way to get this into people’s computers?
Perhaps an ‘aliases.rb’ module that people can download? Then the
download page of each module in RAA could have a link to this
‘aliases.rb’. Or is this a bad idea?

I think ‘std’ (for standardization) is probably a more appropriate
name, and the most appropriate way to ‘distribute’ it is to maintain a
package of libraries that are referenced. This way people can have a
“standard” set of libraries (sounding like a bad name now - nothing to
do the Ruby “standard library”) that can be kept updated with small
patches etc.

That makes the project more worthwhile, because you’re sorting the
wheat from the chaff as well as tackling the naming issue.

Gavin

···

On Saturday, January 25, 2003, 4:49:07 AM, Daniel wrote:

On Fri, Jan 24, 2003 at 11:29:36PM +0900, Gavin Sinclair wrote:

Dave makes a very good point. and it was mentioned before that having multiple
categories that a given package can fall into can be very helpful.

case in point. i have a library that is primarily a database web-application
framework, but it can be used just for the database aspects and not the web
parts. if it gets placed under WWW then that will easily go overlooked.

and i think this is a good starting point for an improved RAA: Implement
multiple categories.

···

On Sunday 26 January 2003 07:35 am, Dave Thomas wrote:

I think there’s a hint here. The real world isn’t hierarchical. Why are
we assuming the archive should be?


tom sawyer, aka transami
transami@transami.net

Folks:

I think there’s a hint here. The real world isn’t hierarchical. Why are
we assuming the archive should be?

Careful there… You want the archive to be USABLE, regardless of how
well/poorly it models the real world. Correct or not, people at least
understand hierarchies.

i think that what’s been proposed is categorical and not hierarchical.

CAT·E·GO·RY

  1. A specifically defined division in a system of classification; a class.

  2. A general class of ideas, terms, or things that mark divisions or
    coordinations within a conceptual scheme, especially: a.Aristotle’s modes of
    objective being, such as quality, quantity, or relation, that are inherent in
    everything. b.Kant’s modes of subjective understanding, such as singularity,
    universality, or particularity, that organize perceptions into knowledge. c.A
    basic logical type of philosophical conception in post-Kantian philosophy.

HI·ER·AR·CHY

  1. A body of persons having authority.

a. Categorization of a group of people according to ability or status.

b. The group so categorized.
3. A series in which each element is graded or ranked: put honesty first in her
hierarchy of values.

so, IMHO, to categorize something as, for example, HTML::Template simply
implies the existence of a Template class which is related to HTML somehow.
it does not imply the abilities or status of Template relative to HTML, nor
does imply a ranking or grading of Template relative to HTML and thus does not
constitute a hierarchy.

-a

···

On Sun, 26 Jan 2003, Dave Thomas wrote:

Folks:

I think there’s a hint here. The real world isn’t hierarchical. Why are
we assuming the archive should be?

Dave

====================================

Ara Howard
NOAA Forecast Systems Laboratory
Information and Technology Services
Data Systems Group
R/FST 325 Broadway
Boulder, CO 80305-3328
Email: ahoward@fsl.noaa.gov
Phone: 303-497-7238
Fax: 303-497-7259
====================================

Gavin Sinclair gsinclair@soyabean.com.au writes:

Is it centrally managed in the Perl world?

Nope. People who are given CPAN access (anyone who asks for it,
basically) is implicitly trusted to know where would be a sensible
namespace to put their libraries. Most of the time they get it right,
because most of the time they know that people won’t find their
modules as easily if they don’t get it right.

There’s also the modules@perl.org list for those who aren’t sure
whether or not they’re likely to get it right, but peer pressure,
documentation and a very large set of sensible example namings
make it pretty easy.

···


lathos: nothing can make up for the middle class dinner
party couple sex ARSE of Sade

i dont mind helping u dudes to sort it out

···

On Sat, 25 Jan 2003 07:00:49 +0900 Gavin Sinclair gsinclair@soyabean.com.au wrote:

On Saturday, January 25, 2003, 4:49:07 AM, Daniel wrote:

On Fri, Jan 24, 2003 at 11:29:36PM +0900, Gavin Sinclair wrote:

IPC::Msg::foo …
IPC::SysV::quux …

I think this is a good idea, but unlikely to happen anytime soon.

Gavin,

I think it’s a great idea. Why can’t it happen any time soon?
There can be a person or two who could try to sort RAA into appropriate
categories and those people can do this. They don’t have to be the
original developers.

Well, it’s just that it takes a lot of non-core effort for
questionable gain. It’s “nice” but not essential. And categorising
things like that is completely non-trivial.

I suppose you could make it easy by just maintaining a single text
file, or perhaps a Ruby hash, describing the mappings, and dynamically
building the modules on startup.

Once the current RAA is sorted out, we can ask that authors of additional
modules select an appropriate category for their module.

Your idea allows for a good structuring if RAA without forcing each
contributor to agree to rename their module.

What would be the simplest way to get this into people’s computers?
Perhaps an ‘aliases.rb’ module that people can download? Then the
download page of each module in RAA could have a link to this
‘aliases.rb’. Or is this a bad idea?

I think ‘std’ (for standardization) is probably a more appropriate
name, and the most appropriate way to ‘distribute’ it is to maintain a
package of libraries that are referenced. This way people can have a
“standard” set of libraries (sounding like a bad name now - nothing to
do the Ruby “standard library”) that can be kept updated with small
patches etc.

That makes the project more worthwhile, because you’re sorting the
wheat from the chaff as well as tackling the naming issue.

Gavin

if you mean something like

module DbWebApp

end

module WWW
include DbWebApp

end

module DB
include DbWebApp

end

then i think this is a great idea. see my post about categories and
hierarchies.

-a

···

On Mon, 27 Jan 2003, Tom Sawyer wrote:

Dave makes a very good point. and it was mentioned before that having multiple
categories that a given package can fall into can be very helpful.

case in point. i have a library that is primarily a database web-application
framework, but it can be used just for the database aspects and not the web
parts. if it gets placed under WWW then that will easily go overlooked.

and i think this is a good starting point for an improved RAA: Implement
multiple categories.

====================================

Ara Howard
NOAA Forecast Systems Laboratory
Information and Technology Services
Data Systems Group
R/FST 325 Broadway
Boulder, CO 80305-3328
Email: ahoward@fsl.noaa.gov
Phone: 303-497-7238
Fax: 303-497-7259
====================================

Mike Campbell wrote:

Careful there… You want the archive to be USABLE, regardless of how
well/poorly it models the real world. Correct or not, people at least
understand hierarchies.

One word: Google.

OK, more than one word.

What happened to all those services that thought they’d organize the
information on the 'net into nice tidy hierarchies? Do you use them to
find information?

For me, the answer is rarely. Sometimes I’ll check one of the lists to
see if there are Ruby resources I haven’t come across, but right now I
actually find it easier to type ‘ruby racc’ into my search bar than to
navigate through the RAA.

Cheers

Dave

I liked the proposals which separated the functions of searching in the
archive vs. organizing the code from the archive.

Browsing for a given functionality seems to be best handled through
categories. (or Google search :slight_smile: However, once a given library,
module, or application has been located, I would think that accessing
the code would be via a unique location in a heirarchy.

The problem with code use from multiple categories is that naming
would be ambiguous regarding a given interface or codebase. What if
WWW::XML was the same code as Document::XML, but different from
Application::XML… You might end up loading the same library twice
into different spaces, or you might end up supporting two different
XML apis, etc.

Of course it is always nice to be able to make local decisions which
may be better suited to your particular needs and wants. Maybe if we
provided a remapping mechanism:

Local::Taste = require_as(‘too/deep/into/the/standard/heirarchy/for/my/taste.rb’)

Other than that, some storage of implementation fields would be nice
too: is it pure ruby, or an Win32 only extension, or a multi-arch
extension, dependent on an external lib, etc… but I’m sure that’s been
discussed before.

···

On Mon, Jan 27, 2003 at 12:53:30AM +0900, ahoward wrote:

On Sun, 26 Jan 2003, Dave Thomas wrote:

Folks:

I think there’s a hint here. The real world isn’t hierarchical. Why are
we assuming the archive should be?

Dave

i think that what’s been proposed is categorical and not hierarchical.


Alan Chen
Digikata Computing
http://digikata.com