Hello Skip;

The things that come to mind as sources of our own solutions are:

. krugle.com, which seemed to be the latest thing a year or so ago;
. CPAN, which is the ultimate solution for reusing community code, if it wasn't for Perl users ;-)
. Google Code , or something like that.

I'm wondering if and how these things could be adapted for J solutions.

Skip Cave wrote:
I have a problem all the time with the J docs trying to find solutions to problems that I know have been solved before, somewhere. The basic issue is that J users don't necessarily use the same names for things that the wider programming or general audience uses. Even regular J users don't always find that long-lost post that had the elegant solution to their current problem, which they vaguely remember from a couple of years back. For that matter, J users may not describe their solution in a way that can be recognized by others as a solution at all, for a specific type of problem. This problem is not particularly unique to J, as every group tends to invent some of its own jargon, but the broad applicability of J to general problems, and the extensive body of contributions from J users and developers, greatly exacerbates the issue.

Just looking at the forums for example, a majority of the questions posted on the forum by newbies and casual users have answers posted in the wiki, in a reference work, or in a post elsewhere in the forum. Often, there is an extensive wiki article on the subject, or a whole chapter in the reference book, but the newbie didn't find it. This is almost always because the terminology in the post or article didn't contain any of the keywords that the newbie was searching for. Some newbies are lazy, and ask for a solution without searching first, but most at least make a try at it, before posting a question.

J users post solutions to a wide range of problems in the forums, Jwiki, reference books, puzzles, white papers, and many other places. Unfortunately, keywords or phrases that might help other users find these solutions, are often not included in the postings, so the elegant solution is often permanently lost to users who are looking for that solution. No kind of fancy indexing scheme will find information, when a poster uses different terminology to describe their posted information, than the terminology that the searcher uses to try and find it. .

One of my biggest frustrations with J is when I have a problem that I am trying to solve. I know that I have seen the solution done elegantly somewhere in the past, but I can't find it. Many times, I never find the solution, and I end up struggling to re-invent the solution, but my answer seems never to be as efficient or bug-free as the post I remember. Sometimes I stumble across the searched-for post, long after I have cobbled together a solution, and I marvel at how much better the post was than my solution (and how much time I would have saved if I could have initially found the post.)

I have thought quite a bit about how one could rectify this situation, but there aren't any easy answers. There is a basic problem about describing algorithms, in that people tend to think about an algorithm in a specific context, and don't necessarily generalize the idea. Because of this, all of the descriptive wording in the post is focused around the specific problem, and a general text description of the algorithm is missing. For that matter, it may just be difficult to describe the algorithm in any unique way, which makes it hard to find in searches.

For example, I was looking for an algorithm to sequentially increment multiple digits, like the electric meter on my house counts up kilowatts. I couldn't find anything in the index about this. I searched, increment, electric, digits, and several other terms. No luck. Later I discovered that this is called an "odometer" function. If I had known the key word, there would have been no problem. I would have found Roger's elegant solution immediately (odometer=: #: i.@(*/)). As it was, I ended up with a kludge that took me a couple of hours to tweak and get working, which still had a couple of bugs that I had to work around.

There may be a way to at least help with this problem, however. What if there was a mechanism where users could add keyword tags to any post, article, forum page, or other document in the J panorama of information. It would be a a simple process where a user who say, found Roger's wiki odometer page, could click on a "add keyword" on the page, and add the keyword "electric meter" and perhaps just "meter" as well as "increment" to the page. So when a user searched for one of those terms, they could find Rogers' article immediately. If a user found a specific page or section in Henry Rich's reference book "J for C Programmers" that described a particular algorithm, the user could add several keywords that helped broaden the access to that section, for those that might use the new keywords for the search.

Anyone should be able to add keywords to the posts, wiki pages, or even to pages in the various reference books provided. Whenever a question-asking newbie is pointed to a post, the newbies' unsuccessful search terms should be obtained, and added to the specific post's keywords. In this way, the next time a newbie searched for that issue using that keyword, it would be found. The J community could help this along by adding their own keywords whenever they ran across a post or article that was hard for them to find, because of a keyword that they felt was missing. It wouldn't take long before finding solutions in J would become much more effective and efficient for everyone. Today, the range of solutions to problems posted in the various repositories of J information is amazing. The J wiki is a treasure trove of information, not only of J solutions, but general knowledge about algorithms. The largest barrier to the utilization of all fo that useful information, is simply the difficulty of finding it. I believe that fixing the discovery problem, and making it easy to use, will do more for J usage than any other single project that the community could take on.

Skip Cave

<<<>>>

Devon McCormick wrote:
Jack - this is an important and long-standing question. We've kicked this around at NYCJUG meetings without coming up with a very good answer. The wiki is increasingly useful - it might be more so if there were a "keywords" section that listed relevant phrases, such as common synonyms, not found in
the text of the wiki page.

For instance, I was looking for some J code to wrap lines of text beyond a certain length. I thought I had seen such code but I couldn't find it, so I
ended up writing something quick and dirty.  Later, I found an essay by
Roger where he solved this same problem (much more elegantly, of course).
 However, I couldn't find this piece by searching on the first several
phrases that came to mind. I need to add a wiki page about this to make it easier for other people in the future. (See how hard it is for you to find
this page now).

This sort of self-help
is much more labor-intensive than a mechanically-generated index but
may be the best solution over time if we can reach a critical mass of
people updating the Wiki.


On 1/31/08, Jack Andrews <[EMAIL PROTECTED]> wrote:
hi,
is there a plan for tidying up system/extras/help/index?
it seems that there was a good index at one stage.
now, it's hard to know where to go for different topics.
is google desktop the answer? (or grep -r ?)
or a fancy built in help search in the interpreter?
jack
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm





----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm


--
------------------------------------------------------------------------
|\/| Randy A MacDonald       | APL: If you can say it, it's done.. (ram)
|/\| ramacd <at> nbnet.nb.ca |
|\ |                         | The only real problem with APL is that
BSc(Math) UNBF'83            | it is "still ahead of its time."
Sapere Aude                  |     - Morten Kromberg
Natural Born APL'er          |
-----------------------------------------------------(INTP)----{ gnat }-


----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to