discovering public repository items?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
23 messages Options
12
Reply | Threaded
Open this post in threaded view
|

discovering public repository items?

Andrea Gammachi
hello. i've been browsing the Published Items but was unable to found a descriptive text for many packages (ASN, WSDL, TestBundle, SLesson, LAN, Grocery, CS2Soap, WaveDev, ... many others) so i'd like to know if i must to install or browse something else (an URL?) in order to see what an item installs.

is there a HOW-TO for publishing packages (i mean the right way :)?

andrea

Reply | Threaded
Open this post in threaded view
|

Re: discovering public repository items?

Mark Roberts
Andrea,

At 04:54 PM 7/18/2006, Andrea Gammachi wrote:
>hello. i've been browsing the Published Items but was unable to found a
>descriptive text for many packages (ASN, WSDL, TestBundle, SLesson, LAN,
>Grocery, CS2Soap, WaveDev, ... many others) so i'd like to know if i must
>to install or browse something else (an URL?) in order to see what an item
>installs.

Currently, there is no other information available. You can try loading
things and provided you land on the right entry point, you may not get too
many errors during loading, and then you can see if there are any class
comments for the parts that did load.

We have a forthcoming project called SmalltalkDoc which is intended to
provide a web interface to the contents of the repository, but it can't
conjure up missing descriptions for components.

>is there a HOW-TO for publishing packages (i mean the right way :)?

The "Source Code Management Guide" PDF in the /doc directory contains
probably more than you want to know about Store, packages, and strategies
for publishing.

For guidelines on writing the descriptive text attached to your own
packages, you might find this useful:

http://www.cincomsmalltalk.com/CincomSmalltalkWiki/Documentation+Standards+Proposal

HTH,

M. Roberts
Cincom Systems, Inc.

Reply | Threaded
Open this post in threaded view
|

RE: discovering public repository items?

Terry Raymond
Mark

I suppose we need to also consider annotating the packages
and bundles to indicate what VW version they apply to.
Additionally, I suspect it would be helpful to remove
obsolete items.

So, how do we manage it before it becomes unwieldly?

Terry
 
===========================================================
Terry Raymond       Smalltalk Professional Debug Package
Crafted Smalltalk
80 Lazywood Ln.
Tiverton, RI  02878
(401) 624-4517      [hidden email]
<http://www.craftedsmalltalk.com>
===========================================================

> -----Original Message-----
> From: Mark D. Roberts [mailto:[hidden email]]
> Sent: Tuesday, July 18, 2006 7:51 AM
> To: Andrea Gammachi; VWNC
> Subject: Re: discovering public repository items?
>
> Andrea,
>
> At 04:54 PM 7/18/2006, Andrea Gammachi wrote:
> >hello. i've been browsing the Published Items but was unable to found a
> >descriptive text for many packages (ASN, WSDL, TestBundle, SLesson, LAN,
> >Grocery, CS2Soap, WaveDev, ... many others) so i'd like to know if i must
> >to install or browse something else (an URL?) in order to see what an
> item
> >installs.
>
> Currently, there is no other information available. You can try loading
> things and provided you land on the right entry point, you may not get too
> many errors during loading, and then you can see if there are any class
> comments for the parts that did load.
>
> We have a forthcoming project called SmalltalkDoc which is intended to
> provide a web interface to the contents of the repository, but it can't
> conjure up missing descriptions for components.
>
> >is there a HOW-TO for publishing packages (i mean the right way :)?
>
> The "Source Code Management Guide" PDF in the /doc directory contains
> probably more than you want to know about Store, packages, and strategies
> for publishing.
>
> For guidelines on writing the descriptive text attached to your own
> packages, you might find this useful:
>
> http://www.cincomsmalltalk.com/CincomSmalltalkWiki/Documentation+Standards
> +Proposal
>
> HTH,
>
> M. Roberts
> Cincom Systems, Inc.

Reply | Threaded
Open this post in threaded view
|

Re: discovering public repository items?

Alan Knight-2
In reply to this post by Andrea Gammachi
There are two levels of comment associated with packages or bundles. One is the comment, and the other is the version comment. The first you can see in the published items list when no version is selected, and would typically say something like "This package does X, Y, and Z". The second will be shown when a particular version is selected, and would typically say something like "Fixed bug which caused the system to crash horribly whenever you clicked on something".

Unfortunately, not everything has comments at all. It's a public repository, so anybody can publish, and there are no requirements that they comment what they write - just the expectation that other people are more likely to use it if they can tell what it's for. One special case is that if a package is part of a containing bundle, the author(s) may not have put a comment on each sub-component, but only on the top-level component. So if you see a package and bundle with similar names, you are probably better of looking at the bundle. It would be nice to have a view which showed only the top-level components. The StoreForGlorpVWUI parcel adds a view for that, but it's kind of slow, and done only in the context of replication, so it's less useful. An alternative is to look at http://www.cincomsmalltalk.com/publicRepository/ which shows a view of things in the public repository, and is google searchable. It ignores anything that isn't top level, doesn't have a comment, and a couple of other criteria.

In a random sampling from your examples, Grocery does have a package comment, but no version comments. WaveDev has no package comment, but was last published in 2002, with a version name including 7.1, suggesting it's not very current. Unfortunately, over time there have been changes in the VisualWave organization leaving a number of obsolete packages/bundles. The things you would want to load for that are either VisualWave or WebToolkit. WSDL does have both package and version comments.

At 03:54 AM 7/18/2006, Andrea Gammachi wrote:
>hello. i've been browsing the Published Items but was unable to found a descriptive text for many packages (ASN, WSDL, TestBundle, SLesson, LAN, Grocery, CS2Soap, WaveDev, ... many others) so i'd like to know if i must to install or browse something else (an URL?) in order to see what an item installs.
>
>is there a HOW-TO for publishing packages (i mean the right way :)?
>
>andrea

--
Alan Knight [|], Cincom Smalltalk Development
[hidden email]
[hidden email]
http://www.cincom.com/smalltalk

"The Static Typing Philosophy: Make it fast. Make it right. Make it run." - Niall Ross

Reply | Threaded
Open this post in threaded view
|

RE: discovering public repository items?

Alan Knight-2
In reply to this post by Terry Raymond
At 08:54 AM 7/18/2006, Terry Raymond wrote:
>Mark
>
>I suppose we need to also consider annotating the packages
>and bundles to indicate what VW version they apply to.
>Additionally, I suspect it would be helpful to remove
>obsolete items.

The StoreForGlorpVWUI does add an obsolete blessing level, which can be used to mark packages to ignore, although right now the only thing that uses that flag is the public repository web index at http://www.cincomsmalltalk.com/publicRepository/

I think that marking things obsolete and selectively ignoring them is perhaps better than deleting things outright and losing potentially valuable version history.


>So, how do we manage it before it becomes unwieldly?
>
>Terry
>
>===========================================================
>Terry Raymond       Smalltalk Professional Debug Package
>Crafted Smalltalk
>80 Lazywood Ln.
>Tiverton, RI  02878
>(401) 624-4517      [hidden email]
><http://www.craftedsmalltalk.com>
>===========================================================
>> -----Original Message-----
>> From: Mark D. Roberts [mailto:[hidden email]]
>> Sent: Tuesday, July 18, 2006 7:51 AM
>> To: Andrea Gammachi; VWNC
>> Subject: Re: discovering public repository items?
>>
>> Andrea,
>>
>> At 04:54 PM 7/18/2006, Andrea Gammachi wrote:
>> >hello. i've been browsing the Published Items but was unable to found a
>> >descriptive text for many packages (ASN, WSDL, TestBundle, SLesson, LAN,
>> >Grocery, CS2Soap, WaveDev, ... many others) so i'd like to know if i must
>> >to install or browse something else (an URL?) in order to see what an
>> item
>> >installs.
>>
>> Currently, there is no other information available. You can try loading
>> things and provided you land on the right entry point, you may not get too
>> many errors during loading, and then you can see if there are any class
>> comments for the parts that did load.
>>
>> We have a forthcoming project called SmalltalkDoc which is intended to
>> provide a web interface to the contents of the repository, but it can't
>> conjure up missing descriptions for components.
>>
>> >is there a HOW-TO for publishing packages (i mean the right way :)?
>>
>> The "Source Code Management Guide" PDF in the /doc directory contains
>> probably more than you want to know about Store, packages, and strategies
>> for publishing.
>>
>> For guidelines on writing the descriptive text attached to your own
>> packages, you might find this useful:
>>
>> http://www.cincomsmalltalk.com/CincomSmalltalkWiki/Documentation+Standards
>> +Proposal
>>
>> HTH,
>>
>> M. Roberts
>> Cincom Systems, Inc.

--
Alan Knight [|], Cincom Smalltalk Development
[hidden email]
[hidden email]
http://www.cincom.com/smalltalk

"The Static Typing Philosophy: Make it fast. Make it right. Make it run." - Niall Ross

Reply | Threaded
Open this post in threaded view
|

RE: discovering public repository items?

Mark Roberts
In reply to this post by Terry Raymond
At 09:54 PM 7/18/2006, Terry Raymond wrote:
>I suppose we need to also consider annotating the packages
>and bundles to indicate what VW version they apply to.

SmalltalkDoc includes annotations for that.

>Additionally, I suspect it would be helpful to remove
>obsolete items.

There is a way to do that with Store, but somebody needs to decide which
items can go.

M


>So, how do we manage it before it becomes unwieldly?
>
>Terry
>
>===========================================================
>Terry Raymond       Smalltalk Professional Debug Package
>Crafted Smalltalk
>80 Lazywood Ln.
>Tiverton, RI  02878
>(401) 624-4517      [hidden email]
><http://www.craftedsmalltalk.com>
>===========================================================
> > -----Original Message-----
> > From: Mark D. Roberts [mailto:[hidden email]]
> > Sent: Tuesday, July 18, 2006 7:51 AM
> > To: Andrea Gammachi; VWNC
> > Subject: Re: discovering public repository items?
> >
> > Andrea,
> >
> > At 04:54 PM 7/18/2006, Andrea Gammachi wrote:
> > >hello. i've been browsing the Published Items but was unable to found a
> > >descriptive text for many packages (ASN, WSDL, TestBundle, SLesson, LAN,
> > >Grocery, CS2Soap, WaveDev, ... many others) so i'd like to know if i must
> > >to install or browse something else (an URL?) in order to see what an
> > item
> > >installs.
> >
> > Currently, there is no other information available. You can try loading
> > things and provided you land on the right entry point, you may not get too
> > many errors during loading, and then you can see if there are any class
> > comments for the parts that did load.
> >
> > We have a forthcoming project called SmalltalkDoc which is intended to
> > provide a web interface to the contents of the repository, but it can't
> > conjure up missing descriptions for components.
> >
> > >is there a HOW-TO for publishing packages (i mean the right way :)?
> >
> > The "Source Code Management Guide" PDF in the /doc directory contains
> > probably more than you want to know about Store, packages, and strategies
> > for publishing.
> >
> > For guidelines on writing the descriptive text attached to your own
> > packages, you might find this useful:
> >
> > http://www.cincomsmalltalk.com/CincomSmalltalkWiki/Documentation+Standards
> > +Proposal
> >
> > HTH,
> >
> > M. Roberts
> > Cincom Systems, Inc.

Reply | Threaded
Open this post in threaded view
|

Re: discovering public repository items?

Martin McClure
In reply to this post by Andrea Gammachi
Andrea Gammachi wrote:
> hello. i've been browsing the Published Items but was unable to found a
> descriptive text for many packages (ASN, WSDL, TestBundle, SLesson, LAN,
> Grocery, CS2Soap, WaveDev, ... many others) so i'd like to know if i
> must to install or browse something else (an URL?) in order to see what
> an item installs.
>
> is there a HOW-TO for publishing packages (i mean the right way :)?

The others who have replied all have good ideas on how this should be
done in the future. Since it hasn't yet been mentioned in this thread,
there is one attempt from the past to document this stuff:

http://www.cincomsmalltalk.com/CincomSmalltalkWiki/Cool+Things+in+the+Public+Store

which was envisioned as a place that folks could document their personal
favorites. I don't think this page has been regularly updated, though,
so its usefulness is limited.

-Martin

Reply | Threaded
Open this post in threaded view
|

Re: discovering public repository items?

Dave Stevenson-2
In reply to this post by Mark Roberts
 >> Additionally, I suspect it would be helpful to remove obsolete items.

 > There is a way to do that with Store, but somebody needs to decide
which items can go.

I agree with Alan about not removing items.  What may be obsolete for
the current environment may still have value for older environments.
Even in current environments an item may be useful as example code.
What we need is not less clutter in the repository itself, but better
tools for filtering the clutter based on more than just the name.

I think we need to ensure that 'obsolete' does not obscure the
usefulness of the code for older versions.  'obsolete' is really a
valuation of the usefulness of an item in the context of the current
environment.  I think a better approach might be to annotate versions
for which something has been known to work.  If the latest compatable
version is 5i.4, that should raise a big warning in the mind of anyone
looking for current stuff.  But for those looking for stuff for 5i.4,
'obsolete' won't get in the way.

For example, ForkedUI was 'obsoleted' by MultiProcUI.  It is more useful
to mark ForkedUI as compatable with certain versions (and maybe also
explicitly mark it as incompatable for version Y and later) than to just
mark it 'obsolete'.

While I'm at it, this reminds me of my biggest peeve with "blessing
levels", namely that they improperly mix incompatable metrics.
BasicBlessingPolicy offers the following:
        'Broken'
        'Work In Progress'
        'Development'
        'To Review'
        'Patch'
        'Integration-Ready'
        'Integrated'
        'Ready to Merge'
        'Merged'
        'Tested'
        'Internal Release'
        'Released'

This is a mixed bag of several metrics, such as:
        Quality:
                'Broken'
                'Work In Progress'
                'Tested'

        Distribution:
                'Development'
                'Patch'
                'Internal Release'
                'Released'

        Misc. State of Development Process:
                'To Review'
                'Integration-Ready'
                'Integrated'
                'Ready to Merge'
                'Merged'
                'Tested'

This is a very shallow attempt at categorizing these, but it serves to
illustrate the point.  To truly capture and retain the usefulness of
these categories of information, the current "blessing level" really
needs to be split into its various not-very-related parts.

Dave

Mark D. Roberts wrote:

> At 09:54 PM 7/18/2006, Terry Raymond wrote:
>> I suppose we need to also consider annotating the packages
>> and bundles to indicate what VW version they apply to.
>
> SmalltalkDoc includes annotations for that.
>
>> Additionally, I suspect it would be helpful to remove
>> obsolete items.
>
> There is a way to do that with Store, but somebody needs to decide which
> items can go.
>
> M
>
>
>> So, how do we manage it before it becomes unwieldly?
>>
>> Terry
>>
>> ===========================================================
>> Terry Raymond       Smalltalk Professional Debug Package
>> Crafted Smalltalk
>> 80 Lazywood Ln.
>> Tiverton, RI  02878
>> (401) 624-4517      [hidden email]
>> <http://www.craftedsmalltalk.com>
>> ===========================================================
>> > -----Original Message-----
>> > From: Mark D. Roberts [mailto:[hidden email]]
>> > Sent: Tuesday, July 18, 2006 7:51 AM
>> > To: Andrea Gammachi; VWNC
>> > Subject: Re: discovering public repository items?
>> >
>> > Andrea,
>> >
>> > At 04:54 PM 7/18/2006, Andrea Gammachi wrote:
>> > >hello. i've been browsing the Published Items but was unable to
>> found a
>> > >descriptive text for many packages (ASN, WSDL, TestBundle, SLesson,
>> LAN,
>> > >Grocery, CS2Soap, WaveDev, ... many others) so i'd like to know if
>> i must
>> > >to install or browse something else (an URL?) in order to see what an
>> > item
>> > >installs.
>> >
>> > Currently, there is no other information available. You can try loading
>> > things and provided you land on the right entry point, you may not
>> get too
>> > many errors during loading, and then you can see if there are any class
>> > comments for the parts that did load.
>> >
>> > We have a forthcoming project called SmalltalkDoc which is intended to
>> > provide a web interface to the contents of the repository, but it can't
>> > conjure up missing descriptions for components.
>> >
>> > >is there a HOW-TO for publishing packages (i mean the right way :)?
>> >
>> > The "Source Code Management Guide" PDF in the /doc directory contains
>> > probably more than you want to know about Store, packages, and
>> strategies
>> > for publishing.
>> >
>> > For guidelines on writing the descriptive text attached to your own
>> > packages, you might find this useful:
>> >
>> >
>> http://www.cincomsmalltalk.com/CincomSmalltalkWiki/Documentation+Standards 
>>
>> > +Proposal
>> >
>> > HTH,
>> >
>> > M. Roberts
>> > Cincom Systems, Inc.
>
>

Reply | Threaded
Open this post in threaded view
|

RE: discovering public repository items?

Terry Raymond
Dave

I pretty much agree with you. I think the items need
a tag indicating which versions they are known to work
with and they need a meaningful title or description.
The title or description really does not need to be as
extensive as some package comments are.

Now, who is going to do it?

Terry
 
===========================================================
Terry Raymond       Smalltalk Professional Debug Package
Crafted Smalltalk
80 Lazywood Ln.
Tiverton, RI  02878
(401) 624-4517      [hidden email]
<http://www.craftedsmalltalk.com>
===========================================================

> -----Original Message-----
> From: Dave Stevenson [mailto:[hidden email]]
> Sent: Tuesday, July 18, 2006 2:32 PM
> To: 'VWNC'
> Subject: Re: discovering public repository items?
>
>  >> Additionally, I suspect it would be helpful to remove obsolete items.
>
>  > There is a way to do that with Store, but somebody needs to decide
> which items can go.
>
> I agree with Alan about not removing items.  What may be obsolete for
> the current environment may still have value for older environments.
> Even in current environments an item may be useful as example code.
> What we need is not less clutter in the repository itself, but better
> tools for filtering the clutter based on more than just the name.
>
> I think we need to ensure that 'obsolete' does not obscure the
> usefulness of the code for older versions.  'obsolete' is really a
> valuation of the usefulness of an item in the context of the current
> environment.  I think a better approach might be to annotate versions
> for which something has been known to work.  If the latest compatable
> version is 5i.4, that should raise a big warning in the mind of anyone
> looking for current stuff.  But for those looking for stuff for 5i.4,
> 'obsolete' won't get in the way.
>
> For example, ForkedUI was 'obsoleted' by MultiProcUI.  It is more useful
> to mark ForkedUI as compatable with certain versions (and maybe also
> explicitly mark it as incompatable for version Y and later) than to just
> mark it 'obsolete'.
>
> While I'm at it, this reminds me of my biggest peeve with "blessing
> levels", namely that they improperly mix incompatable metrics.
> BasicBlessingPolicy offers the following:
> 'Broken'
> 'Work In Progress'
> 'Development'
> 'To Review'
> 'Patch'
> 'Integration-Ready'
> 'Integrated'
> 'Ready to Merge'
> 'Merged'
> 'Tested'
> 'Internal Release'
> 'Released'
>
> This is a mixed bag of several metrics, such as:
> Quality:
> 'Broken'
> 'Work In Progress'
> 'Tested'
>
> Distribution:
> 'Development'
> 'Patch'
> 'Internal Release'
> 'Released'
>
> Misc. State of Development Process:
> 'To Review'
> 'Integration-Ready'
> 'Integrated'
> 'Ready to Merge'
> 'Merged'
> 'Tested'
>
> This is a very shallow attempt at categorizing these, but it serves to
> illustrate the point.  To truly capture and retain the usefulness of
> these categories of information, the current "blessing level" really
> needs to be split into its various not-very-related parts.
>
> Dave
>
> Mark D. Roberts wrote:
> > At 09:54 PM 7/18/2006, Terry Raymond wrote:
> >> I suppose we need to also consider annotating the packages
> >> and bundles to indicate what VW version they apply to.
> >
> > SmalltalkDoc includes annotations for that.
> >
> >> Additionally, I suspect it would be helpful to remove
> >> obsolete items.
> >
> > There is a way to do that with Store, but somebody needs to decide which
> > items can go.
> >
> > M
> >
> >
> >> So, how do we manage it before it becomes unwieldly?
> >>
> >> Terry
> >>
> >> ===========================================================
> >> Terry Raymond       Smalltalk Professional Debug Package
> >> Crafted Smalltalk
> >> 80 Lazywood Ln.
> >> Tiverton, RI  02878
> >> (401) 624-4517      [hidden email]
> >> <http://www.craftedsmalltalk.com>
> >> ===========================================================
> >> > -----Original Message-----
> >> > From: Mark D. Roberts [mailto:[hidden email]]
> >> > Sent: Tuesday, July 18, 2006 7:51 AM
> >> > To: Andrea Gammachi; VWNC
> >> > Subject: Re: discovering public repository items?
> >> >
> >> > Andrea,
> >> >
> >> > At 04:54 PM 7/18/2006, Andrea Gammachi wrote:
> >> > >hello. i've been browsing the Published Items but was unable to
> >> found a
> >> > >descriptive text for many packages (ASN, WSDL, TestBundle, SLesson,
> >> LAN,
> >> > >Grocery, CS2Soap, WaveDev, ... many others) so i'd like to know if
> >> i must
> >> > >to install or browse something else (an URL?) in order to see what
> an
> >> > item
> >> > >installs.
> >> >
> >> > Currently, there is no other information available. You can try
> loading
> >> > things and provided you land on the right entry point, you may not
> >> get too
> >> > many errors during loading, and then you can see if there are any
> class
> >> > comments for the parts that did load.
> >> >
> >> > We have a forthcoming project called SmalltalkDoc which is intended
> to
> >> > provide a web interface to the contents of the repository, but it
> can't
> >> > conjure up missing descriptions for components.
> >> >
> >> > >is there a HOW-TO for publishing packages (i mean the right way :)?
> >> >
> >> > The "Source Code Management Guide" PDF in the /doc directory contains
> >> > probably more than you want to know about Store, packages, and
> >> strategies
> >> > for publishing.
> >> >
> >> > For guidelines on writing the descriptive text attached to your own
> >> > packages, you might find this useful:
> >> >
> >> >
> >>
> http://www.cincomsmalltalk.com/CincomSmalltalkWiki/Documentation+Standards
> >>
> >> > +Proposal
> >> >
> >> > HTH,
> >> >
> >> > M. Roberts
> >> > Cincom Systems, Inc.
> >
> >

Reply | Threaded
Open this post in threaded view
|

Re: discovering public repository items?

Martin McClure
Terry Raymond wrote:
> Dave
>
> I pretty much agree with you. I think the items need
> a tag indicating which versions they are known to work
> with and they need a meaningful title or description.
> The title or description really does not need to be as
> extensive as some package comments are.
>
> Now, who is going to do it?

SqueakMap attempts to do much of what has been discussed here. Looking
at SqueakMap and figuring out its strong and weak points would be a
useful thing to do for anyone thinking of attacking this problem.

If the licenses are compatible, we might be able to reuse some portion
of the SqueakMap code.

Check out http://map.squeak.org/ -- the interface from within Squeak is
nicer than the web interface, but you can see all of the package info on
the web.

-Martin

Reply | Threaded
Open this post in threaded view
|

Re: discovering public repository items?

Dave Stevenson-2
Well, as Mark mentioned SmalltalkDoc is already underway.  Wouldn't it
make more sense to begin using that?

Dave

Martin McClure wrote:

> Terry Raymond wrote:
>> Dave
>>
>> I pretty much agree with you. I think the items need
>> a tag indicating which versions they are known to work
>> with and they need a meaningful title or description.
>> The title or description really does not need to be as
>> extensive as some package comments are.
>>
>> Now, who is going to do it?
>
> SqueakMap attempts to do much of what has been discussed here. Looking
> at SqueakMap and figuring out its strong and weak points would be a
> useful thing to do for anyone thinking of attacking this problem.
>
> If the licenses are compatible, we might be able to reuse some portion
> of the SqueakMap code.
>
> Check out http://map.squeak.org/ -- the interface from within Squeak is
> nicer than the web interface, but you can see all of the package info on
> the web.
>
> -Martin
>

Reply | Threaded
Open this post in threaded view
|

Re: discovering public repository items?

James Robertson-3
SmalltalkDoc doesn't solve the problem.  Heck, you could solve a
large part of it if people put in Package/Bundle comments when they
published - if they won't do that, I seriously doubt that they'll go
wild over more doc opportunities :)


At 06:41 PM 7/18/2006, you wrote:

>Well, as Mark mentioned SmalltalkDoc is already underway.  Wouldn't
>it make more sense to begin using that?
>
>Dave
>
>Martin McClure wrote:
>>Terry Raymond wrote:
>>>Dave
>>>
>>>I pretty much agree with you. I think the items need
>>>a tag indicating which versions they are known to work
>>>with and they need a meaningful title or description.
>>>The title or description really does not need to be as
>>>extensive as some package comments are.
>>>
>>>Now, who is going to do it?
>>SqueakMap attempts to do much of what has been discussed here.
>>Looking at SqueakMap and figuring out its strong and weak points
>>would be a useful thing to do for anyone thinking of attacking this problem.
>>If the licenses are compatible, we might be able to reuse some
>>portion of the SqueakMap code.
>>Check out http://map.squeak.org/ -- the interface from within
>>Squeak is nicer than the web interface, but you can see all of the
>>package info on the web.
>>-Martin

<Talk Small and Carry a Big Class Library>
James Robertson, Product Manager, Cincom Smalltalk
http://www.cincomsmalltalk.com/blog/blogView

Reply | Threaded
Open this post in threaded view
|

RE: discovering public repository items?

Mark Roberts
In reply to this post by Terry Raymond
At 03:44 AM 7/19/2006, Terry Raymond wrote:
>I pretty much agree with you. I think the items need
>a tag indicating which versions they are known to work
>with and they need a meaningful title or description.

Indeed. SmalltalkDoc includes tags for code components to indicate the
versions of the VisualWorks for which the component was released, tested,
and deprecated.

Rather than deleting old components, we might mark them 'obsolete' or
'deprecated'. Eventually, the Published Items list could have some more
sophisticated filtering for these attributes.

>The title or description really does not need to be as
>extensive as some package comments are.

Yes, the solution in SmalltalkDoc is to have a "summary" which is a
one-sentence description of the component, and a "description" which is
longer and more detailed.

M

Reply | Threaded
Open this post in threaded view
|

Re: discovering public repository items?

Dave Stevenson-2
In reply to this post by James Robertson-3
Jim,

We're not suggesting that SmalltalkDoc (or any tool) will somehow
convince everyone to do everything right.  We were suggesting that
*anyone* can load an orphaned application from the public repository,
test to see in which versions of VW it works with, and annotate the
repository with their findings.  From there, we talked about what tool
might best suit that particular activity.

For my modest level of motivation, I don't want to have to navigate to a
pundle version in the Published Items tool, load it, navigate to that
pundle again in the RB, then navigate to its properties, manually add
the desired keys (Terry had suggested offline that was a good way to
store this info), manually enter their values, manually accept and then
also apply (now there's some pointless redundancy for you,
accept/apply), then publish the version with these newly updated
properties back to the repository.

Rather, I'm looking for a single tool that will let me browse unloaded
items in the repository, enter missing property values into a form, and
then at a single button click automagically apply the new properties to
the repository.  In other words, I want to type in real data and click a
single button, not jump under, over, and through a bunch of hoops.  My
unwillingness to deal with that kind of tedium is why I hesitated
answering Terry when he asked who was going to do it.

I envision something similar to the way the file browser will display
parcel properties when you select a .pcl file, but with the more
structured presentation an editable form would provide.  An enhancement
(plugin?) to the published items tool should provide this sort of
facility in its lower right pane, with a tab to show the version comment
(what it shows now), another to show the SmalltalkDoc info, another for
prereq, post-load, etc.  Changing any meta info in one of these tabs
should require a single click to update them in the repository.  Because
only meta information is changing, the pundle should not need to be
loaded to accomplish this.  If I remember correctly, this was one of the
goals of the Configuration Management project.

After talking to Mark, I understand that SmalltalkDoc does not yet
provide this capability (I also understand that he evaluated SqueakMap,
and found it unsuitable).  However, the obvious reason to involve
SmalltalkDoc is that it is the direction we have advertised.  Why create
new property keys that SmalltalkDoc will ignore?  If people are going to
start adding meta data to the public repository, it only makes sense to
add it in the form SmalltalkDoc will recognize.

Although SmalltalkDoc does not include the specific tool I described, we
have many of the pieces.  For a long time we have had a tool that can
browse code and meta information in the repository without actually
loading the items.  SmalltalkDoc already has UIs to present its
structured meta information.  We would need to combine some of these
pieces into a new tool, and add the missing piece of writing meta info
to the repository without first loading the pundle.  To me, creating
this kind of tool is the first step.  Then people will be more likely to
pitch in, because the hoops will be gone.  There will still be orphaned
applications, but the other roadblocks will be gone.

Dave

James Robertson wrote:

> SmalltalkDoc doesn't solve the problem.  Heck, you could solve a large
> part of it if people put in Package/Bundle comments when they published
> - if they won't do that, I seriously doubt that they'll go wild over
> more doc opportunities :)
>
>
> At 06:41 PM 7/18/2006, you wrote:
>> Well, as Mark mentioned SmalltalkDoc is already underway.  Wouldn't it
>> make more sense to begin using that?
>>
>> Dave
>>
>> Martin McClure wrote:
>>> Terry Raymond wrote:
>>>> Dave
>>>>
>>>> I pretty much agree with you. I think the items need
>>>> a tag indicating which versions they are known to work
>>>> with and they need a meaningful title or description.
>>>> The title or description really does not need to be as
>>>> extensive as some package comments are.
>>>>
>>>> Now, who is going to do it?
>>> SqueakMap attempts to do much of what has been discussed here.
>>> Looking at SqueakMap and figuring out its strong and weak points
>>> would be a useful thing to do for anyone thinking of attacking this
>>> problem.
>>> If the licenses are compatible, we might be able to reuse some
>>> portion of the SqueakMap code.
>>> Check out http://map.squeak.org/ -- the interface from within Squeak
>>> is nicer than the web interface, but you can see all of the package
>>> info on the web.
>>> -Martin
>
> <Talk Small and Carry a Big Class Library>
> James Robertson, Product Manager, Cincom Smalltalk
> http://www.cincomsmalltalk.com/blog/blogView
>
>

Reply | Threaded
Open this post in threaded view
|

RE: discovering public repository items?

Steven Kelly
In reply to this post by Andrea Gammachi
At 03:44 AM 7/19/2006, Terry Raymond wrote:
>I pretty much agree with you. I think the items need
>a tag indicating which versions they are known to work
>with and they need a meaningful title or description.

Why not use prerequisites? Surely it's better to improve those, rather
than add another mechanism. Think about the following:

* How do we know what VW version we are in? The VM's id is not the right
answer, since a 7.0 image could be used with the 7.4.1 VM.
SystemUtils.SystemVersionName has only been around since 7.2, so
wouldn't work for older versions, and is just a string set manually.

* Dependencies are rarely on a VW version per se, but on some feature
provided by some VW component. E.g. we quite often have a newer version
of the XML and WebServices stuff loaded, because we require corrections
or new features

* If the current prerequisite mechanism doesn't work nicely for
specifying the most basic of requirements, a VW version, it probably has
problems specifying prerequisites in other cases too. Improving it to
specify VW versions will improve it for other prerequisite cases.

* Packages are the primary code components, and already have a
versioning mechanism. The base visual.im contains versioning info for at
least all bundles. Cincom recommends publishing the base, and that would
be helped greatly if we all had the same version names - effectively
replicating a given version from the Cincom bear73 repository to our
local repositories.

* Good examples of prerequisite mechanisms that exist in other systems,
e.g. Linux package loaders, use the same mechanism for specifying a
dependency on a "system version" as for a dependency on the smallest
component's version.

Note that I'm not saying this is an easy problem, quite the opposite.
But it does seem to be something that needs solving, and adding another
hack solution isn't going to help.

Very roughly, I think as a minimum a prerequisite should be able to
specify a specific minimum and maximum package version. Normally, you'd
just specify the minimum version, and then that version or any
*descendant* would be legal. Note the difference from Store's broken
"load latest version" - that works fine until there is a branch, e.g.
publishing a fix to an old version.

Steve

Reply | Threaded
Open this post in threaded view
|

Re: discovering public repository items?

Dave Stevenson-2
Steve,

I resent your heavy-handed use of "common sense".  Are you trying to
destroy everything we've been working toward in this thread?  :)

Seriously, though, I think that while prereq usage *should* be the
logical approach, it may well turn out to be more difficult than the
alternatives in practice.  Let's look at the actual version strings
involved.  If I'm using a team image that is already reconciled to
Cincom's internal engineering repository, I can see that, for example,
VW 7.4.1 shipped with this version of Base VisualWorks
        '7.4.1 may06.5 - 1.1'
but if I look at visual[nc].im, I see no version at all for 'Base
VisualWorks', nor is that bundle replicated to the public repository for
reference.  So the problem of how to determine what version of the base
is loaded remains in the vanilla image, when loading the component from
a parcel.  To overcome this limitation with our current system, one has
to load store and publish the base to one's local repository.  But if
one did that, how would one know that the original version was '7.4.1
may06.5 - 1.1', rather than something completely irrational, like
'7.4.1'?  Also, how could people specify prereq criteria if they have no
control over the version string others will use when publishing the base
to their various local repositories?

Then there is the unstructured nature of our version strings, which make
specifying a range of versions far more difficult than it needs to be.
I cannot say:
        aPundle version
                between: '7.1 mar03.5 - 1.0'
                and: '7.4.1 may06.5 - 1.1'
since store's version strings cannot be directly tested for ordinality
with regard to the versions they name.

Dave

Steven Kelly wrote:

> At 03:44 AM 7/19/2006, Terry Raymond wrote:
>> I pretty much agree with you. I think the items need
>> a tag indicating which versions they are known to work
>> with and they need a meaningful title or description.
>
> Why not use prerequisites? Surely it's better to improve those, rather
> than add another mechanism. Think about the following:
>
> * How do we know what VW version we are in? The VM's id is not the right
> answer, since a 7.0 image could be used with the 7.4.1 VM.
> SystemUtils.SystemVersionName has only been around since 7.2, so
> wouldn't work for older versions, and is just a string set manually.
>
> * Dependencies are rarely on a VW version per se, but on some feature
> provided by some VW component. E.g. we quite often have a newer version
> of the XML and WebServices stuff loaded, because we require corrections
> or new features
>
> * If the current prerequisite mechanism doesn't work nicely for
> specifying the most basic of requirements, a VW version, it probably has
> problems specifying prerequisites in other cases too. Improving it to
> specify VW versions will improve it for other prerequisite cases.
>
> * Packages are the primary code components, and already have a
> versioning mechanism. The base visual.im contains versioning info for at
> least all bundles. Cincom recommends publishing the base, and that would
> be helped greatly if we all had the same version names - effectively
> replicating a given version from the Cincom bear73 repository to our
> local repositories.
>
> * Good examples of prerequisite mechanisms that exist in other systems,
> e.g. Linux package loaders, use the same mechanism for specifying a
> dependency on a "system version" as for a dependency on the smallest
> component's version.
>
> Note that I'm not saying this is an easy problem, quite the opposite.
> But it does seem to be something that needs solving, and adding another
> hack solution isn't going to help.
>
> Very roughly, I think as a minimum a prerequisite should be able to
> specify a specific minimum and maximum package version. Normally, you'd
> just specify the minimum version, and then that version or any
> *descendant* would be legal. Note the difference from Store's broken
> "load latest version" - that works fine until there is a branch, e.g.
> publishing a fix to an old version.
>
> Steve
>
>

Reply | Threaded
Open this post in threaded view
|

enreaching raw code [was Re: discovering public repository items?]

Jarek@GMX
In reply to this post by James Robertson-3
The question is what can be done to make it more natural to put comments
in all beneficial places. If there was a way to make people see the
benefits of writing the comments straightaway or somehow make it part of
the development cycle things could look different.
I have a similar feel that adding more ways of commenting code will not
work. Forcing constrains around it won't work either. It has to be
integrated into environment and "make sense to write them" for the idea
to pick up.

The problem is similar to the issue of maintainability of a help system
- it is not a challenge to create one. How to make it not become patchy
or deteriorates over time is the big deal.

We have a demand for a good help system but not much thoughts went into
it yet Some wild ideas were going in the direction of integrated
wiki/blog things... Any ideas welcome.


Regards, Jaroslaw.

James Robertson wrote:

> SmalltalkDoc doesn't solve the problem.  Heck, you could solve a large
> part of it if people put in Package/Bundle comments when they
> published - if they won't do that, I seriously doubt that they'll go
> wild over more doc opportunities :)
>
>
> At 06:41 PM 7/18/2006, you wrote:
>> Well, as Mark mentioned SmalltalkDoc is already underway.  Wouldn't
>> it make more sense to begin using that?
>>
>> Dave
>>
>> Martin McClure wrote:
>>> Terry Raymond wrote:
>>>> Dave
>>>>
>>>> I pretty much agree with you. I think the items need
>>>> a tag indicating which versions they are known to work
>>>> with and they need a meaningful title or description.
>>>> The title or description really does not need to be as
>>>> extensive as some package comments are.
>>>>
>>>> Now, who is going to do it?
>>> SqueakMap attempts to do much of what has been discussed here.
>>> Looking at SqueakMap and figuring out its strong and weak points
>>> would be a useful thing to do for anyone thinking of attacking this
>>> problem.
>>> If the licenses are compatible, we might be able to reuse some
>>> portion of the SqueakMap code.
>>> Check out http://map.squeak.org/ -- the interface from within Squeak
>>> is nicer than the web interface, but you can see all of the package
>>> info on the web.
>>> -Martin
>
> <Talk Small and Carry a Big Class Library>
> James Robertson, Product Manager, Cincom Smalltalk
> http://www.cincomsmalltalk.com/blog/blogView
>
>

Reply | Threaded
Open this post in threaded view
|

Re: enreaching raw code [was Re: discovering public repository items?]

Mark Roberts
Jaroslaw,

At 06:59 AM 7/20/2006, Jaroslaw Podgajny wrote:
>The question is what can be done to make it more natural to put comments
>in all beneficial places. If there was a way to make people see the
>benefits of writing the comments straightaway or somehow make it part of
>the development cycle things could look different.
>I have a similar feel that adding more ways of commenting code will not
>work. Forcing constrains around it won't work either. It has to be
>integrated into environment and "make sense to write them" for the idea to
>pick up.

After looking at this problem for several years, my conclusion is that
there is an underlying cultural dimension that is separate from the tools
issue, and this now seems to me more decisive. For whatever reason,
Smalltalkers just tend not to write comments. In other programming
communities, comments are considered part of the development process. In
ours, they are not. Smalltalkers have various excuses for why comments are
not necessary, which eventually conflict with the needs of somebody trying
to learn Smalltalk or re-use some existing code. In the larger scheme of
things, the lack of comments serves to isolate us from the rest of the world.

This thread started because somebody was looking in the public repository,
found no comments for the code components published there, and then (very
charitably) wondered if the comments were to be found somewhere else. The
answer was "no" and this is where the rubber hits the road. Then, we
started talking about ways to improve the situation.

While I agree that we can and should improve the tools, the pay-off is
likely to be small. As Jim pointed out, if people won't use the existing
mechanisms they likely won't suddenly start making extensive use of any new
tool options. We can get some improvement, we need to improve the tools, we
need to be realistic about the outcome.

So, we might also consider "social" solutions to this problem. Right now,
nobody is in charge of the public store and the burden falls upon each user
to decide what each component does, what works, what doesn't, what's
released, what's obsolete, etc. There are no conventions, no rules. If
somebody were in charge of the repository and they could act as an editor,
marking some things obsolete, nagging developers about comments, etc., it
would help to improve the new-user experience. The tools also need to be
improved, Store is deficient in this regard, but if we really care about
making the public repository accessible to new developers, then I think we
need to do both.

Imagine that we were all journalists working for a newspaper called "The
Public Store Times". We write articles, and through the miracle of modern
technology, we publish them ourselves. Yet, we have no editor in charge of
our newspaper, and we have no editorial standards. Each journalist has
his/her own idea about what at article looks like. Sometimes, occasionally,
new people read our newspaper and say "Your newspaper is kind of tedious to
read -- how about including a little summary before each article?". At this
point, we might discuss editorial standards -- "What should an article look
like? How should it be organized? Should it have a one-line summary? Should
we refuse to release it until it does? Etc." We might discuss an editorial
function, i.e., "Should we try to get an editor in charge of this?".
Finally, we might discuss tools, i.e., "How can we improve our tools so
that it is easier to write good articles?".

This last discussion about tools is what we always have, but clearly this
is not enough. We could improve our tools 200% but some journalists still
won't use them. In lieu of new policies and somebody to enforce them, or in
lieu of a collective decision to suddenly change the way we write articles,
the quality of our newspaper probably won't improve much.

This is a half-hearted analogy, but the point is clear enough. Since we do
not collectively think it is important to communicate with new users, e.g.
by making our repository legible to them, we haven't really discussed
editorial standards or an editorial function (somebody "in charge").

If we decide that we care about making the public store more legible to new
developers, we might do the following:

         -- Institute a policy that any code marked as "released" must have
adequate package/bundle comments
         -- Decide on a simple definition of an "adequate" comment
         -- Put an administrator in charge of the repository who can change
blessings on components, e.g., demoting anything that is blessed as
"released" which lacks comments
         -- Fix the Published Items tool to include a "blessing filter" so
that by default in VisualWorks NC, it only shows released components. The
filter can be twiddled easily, of course.
         -- Improve the IDE tools for adding comments, perhaps along the
lines of SmalltalkDoc
         -- Add a web interface for displaying the contents of the
repository, again, along the lines of SmalltalkDoc

If we did all of these things, it would dramatically improve the noob
user-experience with Store. It would make it easier for new developers to
join us, i.e., to grow our community.

>The problem is similar to the issue of maintainability of a help system -
>it is not a challenge to create one. How to make it not become patchy or
>deteriorates over time is the big deal.
>
>We have a demand for a good help system but not much thoughts went into it
>yet Some wild ideas were going in the direction of integrated wiki/blog
>things... Any ideas welcome.

This point is tangential to the thread, but by chance I have done some work
on the VisualWorks Help System and my experience has been similar to yours.
The problems are in authoring content and maintaining the system and the
content. The VW Help system was a prototype, there have been no resources
within Cincom to improve it since, and so it has deteriorated into its
current state of decrepitude. Since VisualWorks lacked basic UI features
like a hypertext widget, we had to build the VW Help browser using a
third-party package from Arbor. This package came with no documentation,
inadequate comments (sound familiar?) and it is now unmaintainable junk. We
want to throw it out but, five years later, VisualWorks still doesn't have
any support for hypertext.

 From here, there are roughly two directions ahead. One is that we build
hypertext support into VisualWorks and write a new Help Browser. The other
is that we punt completely on the idea of integrated Help, admit to
ourselves that VisualWorks isn't up to the job of building a Help Browser,
and just use an external web browser. The problem with the latter direction
is that we lose the ability to click on something in the Help browser and,
for example, open a Workspace or load a parcel into VisualWorks. We lose
the ability to search the content. Also, and more significantly, all modern
IDEs are now moving towards integrated Help/Documentation. Eclipse, for
example, has this. The facility for help/documentation/tutorials in Eclipse
is now years ahead of VisualWorks and the gap is only going to grow wider.
This translates into a direct impact on the noob experience, and IMHO
Eclipse now offers a superior noob experience. We can argue all we want
about the weaknesses of the underlying language, we can argue all we want
about the design of the Eclipse IDE, we can be the Sony Beta to Eclipse's
VHS, but Eclipse offers a smoother noob experience.

The other direction would be to build a new Help Browser and push for
greater integration of tools/help/doc inside VisualWorks. This means we
need to solve the long-standing problem of hypertext. Fortunately, the
situation has changed since we built the prototype Help Browser. There is
now a real XML display subsystem called WithStyle. It also includes an XML
editor. It would not be difficult to build a new Help System using
WithStyle. In fact, I made a small prototype to see how it would work. It
is not difficult to read the existing Help content and translate it into
structured XML, I have tried that too. The difficulty is getting WithStyle
more properly integrated into VisualWorks, and finding the cycles to do all
the editorial work to update the content and get it into order. I can't do
that now.

If you are interested in talking about this second direction, feel free to
e-mail me directly.

Cheers,

M. Roberts

Reply | Threaded
Open this post in threaded view
|

Re: enreaching raw code [was Re: discovering public repository items?]

James Robertson-3
Hmm.  I spent my time in the mines of C (and other
languages).  Believe me, comments were no more common there than they
are in Smalltalk.  Don't mistake the "corporate standard" comment
blocks at the top of each function as meaningful comments - they are
typically copy/pasted, possibly edited, and then never, ever kept up to date.

At 08:41 PM 7/19/2006, you wrote:

>Jaroslaw,
>
>At 06:59 AM 7/20/2006, Jaroslaw Podgajny wrote:
>>The question is what can be done to make it more natural to put
>>comments in all beneficial places. If there was a way to make
>>people see the benefits of writing the comments straightaway or
>>somehow make it part of the development cycle things could look different.
>>I have a similar feel that adding more ways of commenting code will
>>not work. Forcing constrains around it won't work either. It has to
>>be integrated into environment and "make sense to write them" for
>>the idea to pick up.
>
>After looking at this problem for several years, my conclusion is
>that there is an underlying cultural dimension that is separate from
>the tools issue, and this now seems to me more decisive. For
>whatever reason, Smalltalkers just tend not to write comments. In
>other programming communities, comments are considered part of the
>development process. In ours, they are not. Smalltalkers have
>various excuses for why comments are not necessary, which eventually
>conflict with the needs of somebody trying to learn Smalltalk or
>re-use some existing code. In the larger scheme of things, the lack
>of comments serves to isolate us from the rest of the world.
>
>This thread started because somebody was looking in the public
>repository, found no comments for the code components published
>there, and then (very charitably) wondered if the comments were to
>be found somewhere else. The answer was "no" and this is where the
>rubber hits the road. Then, we started talking about ways to improve
>the situation.
>
>While I agree that we can and should improve the tools, the pay-off
>is likely to be small. As Jim pointed out, if people won't use the
>existing mechanisms they likely won't suddenly start making
>extensive use of any new tool options. We can get some improvement,
>we need to improve the tools, we need to be realistic about the outcome.
>
>So, we might also consider "social" solutions to this problem. Right
>now, nobody is in charge of the public store and the burden falls
>upon each user to decide what each component does, what works, what
>doesn't, what's released, what's obsolete, etc. There are no
>conventions, no rules. If somebody were in charge of the repository
>and they could act as an editor, marking some things obsolete,
>nagging developers about comments, etc., it would help to improve
>the new-user experience. The tools also need to be improved, Store
>is deficient in this regard, but if we really care about making the
>public repository accessible to new developers, then I think we need
>to do both.
>
>Imagine that we were all journalists working for a newspaper called
>"The Public Store Times". We write articles, and through the miracle
>of modern technology, we publish them ourselves. Yet, we have no
>editor in charge of our newspaper, and we have no editorial
>standards. Each journalist has his/her own idea about what at
>article looks like. Sometimes, occasionally, new people read our
>newspaper and say "Your newspaper is kind of tedious to read -- how
>about including a little summary before each article?". At this
>point, we might discuss editorial standards -- "What should an
>article look like? How should it be organized? Should it have a
>one-line summary? Should we refuse to release it until it does?
>Etc." We might discuss an editorial function, i.e., "Should we try
>to get an editor in charge of this?". Finally, we might discuss
>tools, i.e., "How can we improve our tools so that it is easier to
>write good articles?".
>
>This last discussion about tools is what we always have, but clearly
>this is not enough. We could improve our tools 200% but some
>journalists still won't use them. In lieu of new policies and
>somebody to enforce them, or in lieu of a collective decision to
>suddenly change the way we write articles, the quality of our
>newspaper probably won't improve much.
>
>This is a half-hearted analogy, but the point is clear enough. Since
>we do not collectively think it is important to communicate with new
>users, e.g. by making our repository legible to them, we haven't
>really discussed editorial standards or an editorial function
>(somebody "in charge").
>
>If we decide that we care about making the public store more legible
>to new developers, we might do the following:
>
>         -- Institute a policy that any code marked as "released"
> must have adequate package/bundle comments
>         -- Decide on a simple definition of an "adequate" comment
>         -- Put an administrator in charge of the repository who can
> change blessings on components, e.g., demoting anything that is
> blessed as "released" which lacks comments
>         -- Fix the Published Items tool to include a "blessing
> filter" so that by default in VisualWorks NC, it only shows
> released components. The filter can be twiddled easily, of course.
>         -- Improve the IDE tools for adding comments, perhaps along
> the lines of SmalltalkDoc
>         -- Add a web interface for displaying the contents of the
> repository, again, along the lines of SmalltalkDoc
>
>If we did all of these things, it would dramatically improve the
>noob user-experience with Store. It would make it easier for new
>developers to join us, i.e., to grow our community.
>
>>The problem is similar to the issue of maintainability of a help
>>system - it is not a challenge to create one. How to make it not
>>become patchy or deteriorates over time is the big deal.
>>
>>We have a demand for a good help system but not much thoughts went
>>into it yet Some wild ideas were going in the direction of
>>integrated wiki/blog things... Any ideas welcome.
>
>This point is tangential to the thread, but by chance I have done
>some work on the VisualWorks Help System and my experience has been
>similar to yours. The problems are in authoring content and
>maintaining the system and the content. The VW Help system was a
>prototype, there have been no resources within Cincom to improve it
>since, and so it has deteriorated into its current state of
>decrepitude. Since VisualWorks lacked basic UI features like a
>hypertext widget, we had to build the VW Help browser using a
>third-party package from Arbor. This package came with no
>documentation, inadequate comments (sound familiar?) and it is now
>unmaintainable junk. We want to throw it out but, five years later,
>VisualWorks still doesn't have any support for hypertext.
>
> From here, there are roughly two directions ahead. One is that we
> build hypertext support into VisualWorks and write a new Help
> Browser. The other is that we punt completely on the idea of
> integrated Help, admit to ourselves that VisualWorks isn't up to
> the job of building a Help Browser, and just use an external web
> browser. The problem with the latter direction is that we lose the
> ability to click on something in the Help browser and, for example,
> open a Workspace or load a parcel into VisualWorks. We lose the
> ability to search the content. Also, and more significantly, all
> modern IDEs are now moving towards integrated Help/Documentation.
> Eclipse, for example, has this. The facility for
> help/documentation/tutorials in Eclipse is now years ahead of
> VisualWorks and the gap is only going to grow wider. This
> translates into a direct impact on the noob experience, and IMHO
> Eclipse now offers a superior noob experience. We can argue all we
> want about the weaknesses of the underlying language, we can argue
> all we want about the design of the Eclipse IDE, we can be the Sony
> Beta to Eclipse's VHS, but Eclipse offers a smoother noob experience.
>
>The other direction would be to build a new Help Browser and push
>for greater integration of tools/help/doc inside VisualWorks. This
>means we need to solve the long-standing problem of hypertext.
>Fortunately, the situation has changed since we built the prototype
>Help Browser. There is now a real XML display subsystem called
>WithStyle. It also includes an XML editor. It would not be difficult
>to build a new Help System using WithStyle. In fact, I made a small
>prototype to see how it would work. It is not difficult to read the
>existing Help content and translate it into structured XML, I have
>tried that too. The difficulty is getting WithStyle more properly
>integrated into VisualWorks, and finding the cycles to do all the
>editorial work to update the content and get it into order. I can't
>do that now.
>
>If you are interested in talking about this second direction, feel
>free to e-mail me directly.
>
>Cheers,
>
>M. Roberts

<Talk Small and Carry a Big Class Library>
James Robertson, Product Manager, Cincom Smalltalk
http://www.cincomsmalltalk.com/blog/blogView

Reply | Threaded
Open this post in threaded view
|

Re: enreaching raw code [was Re: discovering public repository items?]

Mark Roberts
At 09:46 AM 7/20/2006, James Robertson wrote:
>Hmm.  I spent my time in the mines of C (and other languages).  Believe
>me, comments were no more common there than they are in Smalltalk.  Don't
>mistake the "corporate standard" comment blocks at the top of each
>function as meaningful comments - they are typically copy/pasted, possibly
>edited, and then never, ever kept up to date.

http://docs.python.org/lib/lib.html

I can't speak as a Python expert, but looking at this it seems that every
module has a comment.


>At 08:41 PM 7/19/2006, you wrote:
>>Jaroslaw,
>>
>>At 06:59 AM 7/20/2006, Jaroslaw Podgajny wrote:
>>>The question is what can be done to make it more natural to put comments
>>>in all beneficial places. If there was a way to make people see the
>>>benefits of writing the comments straightaway or somehow make it part of
>>>the development cycle things could look different.
>>>I have a similar feel that adding more ways of commenting code will not
>>>work. Forcing constrains around it won't work either. It has to be
>>>integrated into environment and "make sense to write them" for the idea
>>>to pick up.
>>
>>After looking at this problem for several years, my conclusion is that
>>there is an underlying cultural dimension that is separate from the tools
>>issue, and this now seems to me more decisive. For whatever reason,
>>Smalltalkers just tend not to write comments. In other programming
>>communities, comments are considered part of the development process. In
>>ours, they are not. Smalltalkers have various excuses for why comments
>>are not necessary, which eventually conflict with the needs of somebody
>>trying to learn Smalltalk or re-use some existing code. In the larger
>>scheme of things, the lack of comments serves to isolate us from the rest
>>of the world.
>>
>>This thread started because somebody was looking in the public
>>repository, found no comments for the code components published there,
>>and then (very charitably) wondered if the comments were to be found
>>somewhere else. The answer was "no" and this is where the rubber hits the
>>road. Then, we started talking about ways to improve the situation.
>>
>>While I agree that we can and should improve the tools, the pay-off is
>>likely to be small. As Jim pointed out, if people won't use the existing
>>mechanisms they likely won't suddenly start making extensive use of any
>>new tool options. We can get some improvement, we need to improve the
>>tools, we need to be realistic about the outcome.
>>
>>So, we might also consider "social" solutions to this problem. Right now,
>>nobody is in charge of the public store and the burden falls upon each
>>user to decide what each component does, what works, what doesn't, what's
>>released, what's obsolete, etc. There are no conventions, no rules. If
>>somebody were in charge of the repository and they could act as an
>>editor, marking some things obsolete, nagging developers about comments,
>>etc., it would help to improve the new-user experience. The tools also
>>need to be improved, Store is deficient in this regard, but if we really
>>care about making the public repository accessible to new developers,
>>then I think we need to do both.
>>
>>Imagine that we were all journalists working for a newspaper called "The
>>Public Store Times". We write articles, and through the miracle of modern
>>technology, we publish them ourselves. Yet, we have no editor in charge
>>of our newspaper, and we have no editorial standards. Each journalist has
>>his/her own idea about what at article looks like. Sometimes,
>>occasionally, new people read our newspaper and say "Your newspaper is
>>kind of tedious to read -- how about including a little summary before
>>each article?". At this point, we might discuss editorial standards --
>>"What should an article look like? How should it be organized? Should it
>>have a one-line summary? Should we refuse to release it until it does?
>>Etc." We might discuss an editorial function, i.e., "Should we try to get
>>an editor in charge of this?". Finally, we might discuss tools, i.e.,
>>"How can we improve our tools so that it is easier to write good articles?".
>>
>>This last discussion about tools is what we always have, but clearly this
>>is not enough. We could improve our tools 200% but some journalists still
>>won't use them. In lieu of new policies and somebody to enforce them, or
>>in lieu of a collective decision to suddenly change the way we write
>>articles, the quality of our newspaper probably won't improve much.
>>
>>This is a half-hearted analogy, but the point is clear enough. Since we
>>do not collectively think it is important to communicate with new users,
>>e.g. by making our repository legible to them, we haven't really
>>discussed editorial standards or an editorial function (somebody "in charge").
>>
>>If we decide that we care about making the public store more legible to
>>new developers, we might do the following:
>>
>>         -- Institute a policy that any code marked as "released" must
>> have adequate package/bundle comments
>>         -- Decide on a simple definition of an "adequate" comment
>>         -- Put an administrator in charge of the repository who can
>> change blessings on components, e.g., demoting anything that is blessed
>> as "released" which lacks comments
>>         -- Fix the Published Items tool to include a "blessing filter"
>> so that by default in VisualWorks NC, it only shows released components.
>> The filter can be twiddled easily, of course.
>>         -- Improve the IDE tools for adding comments, perhaps along the
>> lines of SmalltalkDoc
>>         -- Add a web interface for displaying the contents of the
>> repository, again, along the lines of SmalltalkDoc
>>
>>If we did all of these things, it would dramatically improve the noob
>>user-experience with Store. It would make it easier for new developers to
>>join us, i.e., to grow our community.
>>
>>>The problem is similar to the issue of maintainability of a help system
>>>- it is not a challenge to create one. How to make it not become patchy
>>>or deteriorates over time is the big deal.
>>>
>>>We have a demand for a good help system but not much thoughts went into
>>>it yet Some wild ideas were going in the direction of integrated
>>>wiki/blog things... Any ideas welcome.
>>
>>This point is tangential to the thread, but by chance I have done some
>>work on the VisualWorks Help System and my experience has been similar to
>>yours. The problems are in authoring content and maintaining the system
>>and the content. The VW Help system was a prototype, there have been no
>>resources within Cincom to improve it since, and so it has deteriorated
>>into its current state of decrepitude. Since VisualWorks lacked basic UI
>>features like a hypertext widget, we had to build the VW Help browser
>>using a third-party package from Arbor. This package came with no
>>documentation, inadequate comments (sound familiar?) and it is now
>>unmaintainable junk. We want to throw it out but, five years later,
>>VisualWorks still doesn't have any support for hypertext.
>>
>> From here, there are roughly two directions ahead. One is that we build
>> hypertext support into VisualWorks and write a new Help Browser. The
>> other is that we punt completely on the idea of integrated Help, admit
>> to ourselves that VisualWorks isn't up to the job of building a Help
>> Browser, and just use an external web browser. The problem with the
>> latter direction is that we lose the ability to click on something in
>> the Help browser and, for example, open a Workspace or load a parcel
>> into VisualWorks. We lose the ability to search the content. Also, and
>> more significantly, all modern IDEs are now moving towards integrated
>> Help/Documentation. Eclipse, for example, has this. The facility for
>> help/documentation/tutorials in Eclipse is now years ahead of
>> VisualWorks and the gap is only going to grow wider. This translates
>> into a direct impact on the noob experience, and IMHO Eclipse now offers
>> a superior noob experience. We can argue all we want about the
>> weaknesses of the underlying language, we can argue all we want about
>> the design of the Eclipse IDE, we can be the Sony Beta to Eclipse's VHS,
>> but Eclipse offers a smoother noob experience.
>>
>>The other direction would be to build a new Help Browser and push for
>>greater integration of tools/help/doc inside VisualWorks. This means we
>>need to solve the long-standing problem of hypertext. Fortunately, the
>>situation has changed since we built the prototype Help Browser. There is
>>now a real XML display subsystem called WithStyle. It also includes an
>>XML editor. It would not be difficult to build a new Help System using
>>WithStyle. In fact, I made a small prototype to see how it would work. It
>>is not difficult to read the existing Help content and translate it into
>>structured XML, I have tried that too. The difficulty is getting
>>WithStyle more properly integrated into VisualWorks, and finding the
>>cycles to do all the editorial work to update the content and get it into
>>order. I can't do that now.
>>
>>If you are interested in talking about this second direction, feel free
>>to e-mail me directly.
>>
>>Cheers,
>>
>>M. Roberts
>
><Talk Small and Carry a Big Class Library>
>James Robertson, Product Manager, Cincom Smalltalk
>http://www.cincomsmalltalk.com/blog/blogView
>

12