Rosetta Code:Village Pump/Task creation process discussion: Difference between revisions

Undo revision 165652 by 218.108.170.168 (talk) Removed Vandalism & blocked Vandal.
(still on the feature)
(Undo revision 165652 by 218.108.170.168 (talk) Removed Vandalism & blocked Vandal.)
 
(15 intermediate revisions by 9 users not shown)
Line 1:
{{Vptopic
|topic=Task creation process discussion
|summary=Question on what kinds of restrictions should be applied to creation of tasks
}}
===Many tasks versus many languages===
The new [[J]] and [[Python]] contributors are creating lots of new tasks in preference to solving existing tasks. Should we be providing guidance on the types of tasks suitable for Rosetta Code? Here are my ideas, feel free to contradict.
Line 30 ⟶ 34:
:::::Those categories are a good start I think. We just need to hammer out the details and make sure we all agree on things. I wouldn't be opposed to some new rules for task creation (added to [[Help:Adding a new programming task]]), but I don't think we need rules on task deletion yet. I don't think we think about deleting tasks that much, and when we do a little bit of discussion is enough to figure out what to do. Maybe we should try to "meet" in the IRC channel to get a real time discussion going (and to make sure more people can chime in before it gets too crazy). --[[User:Mwn3d|Mwn3d]] 16:14, 15 October 2008 (UTC)
::::::Mmm… I'm afraid I can't make a commitment, since school is a little hectic at the moment. Probably the best way to do this would be for someone (possibly me, if I get the chance) to make a draft set of guidelines on a new page. Then we can all debate about it on the talk page and edit it, in the grand tradition of wikis. —[[User:Underscore|Underscore]] 22:24, 16 October 2008 (UTC)
 
Hi, I gave some thought to your third category:
* "... more complex examples that show how a given language is used in practice to write nontrivial programs"
I would think that non-trivial programs would just be too long. Reading RC and when thinking of examples I always try and think of something that in most languages I might know, would have a short solution, (as well as a short definition), and what I find interesting and think might be of interest to others. This tends to have me looking again at examples of the advertised strengths, (and weaknesses), of different programming languages; and at algorithms in general. I don't think it is good to go out of the way to think of examples that can be done by a large selection of languages I think that would lead to a rather bland RC. I like it when a task is done by several languages in a similar way, then along comes an entry that does it in a new intriguing way. Sometimes other languages then add their implementations of this new way. That's interesting! Someone once said that a good programming language will alter the way you think of solving a problem, and RC has introduced me to a few cases where the J language explanations are mind-blowing for example. The [[Look-and-say_sequence#Perl|Perl example]] of how to solve look-and-say with a regexp is another. --[[User:Paddy3118|Paddy3118]] 08:44, 26 April 2009 (UTC)
 
===Needing a feature===
Line 39 ⟶ 47:
:We had a request for this feature on the [[Rosetta code:Wiki Wishlist]], but it seems like it's a bit hard to implement. It would likely require a bot running on the RC server. I had tried to make a bot a few weeks ago, but hit a roadblock (and lost motivation). Maybe a bot person could be added to the list of jobs that people can claim in the new topic in the Village Pump (we should call him the "Bot Commander" or something). --[[User:Mwn3d|Mwn3d]] 16:10, 8 December 2008 (UTC)
::Hm, ... could it be done (with efforts :( ) the following way? Adding ''hidden'' templates to tasks, like placeholders for all RC-known languages... when a user adds a language, ''automatically'' the template is superseded by the header|lang template... or the user ''simply'' must remove it by hand... Then the finding of a task unimplemented in the language X will be the same as the finding of a task implemented in the language X (Solutions by Language)... but I don't know the details of running a wiki, so maybe it is not a good idea...? --[[User:ShinTakezou|ShinTakezou]] 23:28, 8 December 2008 (UTC)
:::I'd like an automatic solution. Giving users too many instructions for adding an example may discourage it. I really think a bot is the best way. --[[User:Mwn3d|Mwn3d]] 02:19, 9 December 2008 (UTC)
: Well, the feature existed for [[User:ImplSearchBot|a few months]] this year. Needs to be replaced. --[[User:Short Circuit|Michael Mol]] 17:45, 13 September 2009 (UTC)
 
===New issue, if it is an issue===
I am working on an implementation of the LZW algo in C (see [[LZW compression]]). There are languages where it looks so ''simply'' since the language provide ''hashing'' or similar in a rather standard and easy way. It is not so for C. I don't know widespread common libs that provides hashing or similar. And since I liked the task, started working on it, but of course first I needed to create 1) an easy way of handling strings as sequences of N bytes (therefore no the C way), 2) a ''dictionary'' (string hash → integer) with all the needed stuff. The code for the compressor only, with few lines of debug, and 18 lines for the compression usage example, is 400 lines long... I think I should create a new page, like LZW compression/C. Or is it better I create ''derivative'' tasks? The doubt is: these tasks would be just for C and similar languages that have not hash or string handling in a natural way (in all other cases, when a suitable task exists, and if the C source exists, likely the code is too much ''particular'' to be used in the LZW task...)? ... is this still ok for RC? waiting suggestions while completing the code... --[[User:ShinTakezou|ShinTakezou]] 01:00, 21 December 2008 (UTC)
:Is there some way of putting your code in a scollable section of say only 50 lines long? --[[User:Paddy3118|Paddy3118]] 15:35, 21 December 2008 (UTC)
:I would suggest putting any [[C]] hash implementation into [[Creating an Associative Array]], and then referencing that implementation in this task. Two tasks for one! --[[User:IanOsgood|IanOsgood]] 16:47, 21 December 2008 (UTC)
:I think that an existing C hash-table or data-structure library should be used, and that Rosetta Code should avoid reimplementing libraries like this -- [[Creating an Associative Array]] is oriented toward *using* an implementation, not making one, even if it doesn't explicitly say so. (And for what it's worth, I think the general principle to apply is: what would be enlightening to the reader?) --[[User:Kevin Reid|Kevin Reid]] 19:59, 21 December 2008 (UTC)
::Partly I agree. But the lib should be widespread and common (considered almost standard) (?), and I've found no such a lib (if you know one, tell me —it must be simple, not like SunriseDD I've found... it is overdimensioned for this and other tasks... but as last resort I will try to learn and use this). If widespread or ''almost'' standard are not requirements, I would upload my "hash-table" implementation to my site and drop a link to it, I suppose theoretically there's nothing wrong in doing so, since we are not really interested in performance or what (what about this? Can I use libs I've created, of course as GPLed code?). The implementation's aim of my code was to be able to write the algorithm almost as a translation of Java code. --[[User:ShinTakezou|ShinTakezou]] 00:03, 22 December 2008 (UTC)
:::I suppose I could use [http://uthash.sourceforge.net/ uthash], it seems simple enough. Going to adapt the code, but not this night:D --[[User:ShinTakezou|ShinTakezou]] 00:25, 22 December 2008 (UTC)
:::: Just to say as currently ended: I've used Judy library... for LZW, I've created a subtask for "binary strings" (opinionable), which proved to be usable (not elegantly) in other tasks too; while I've kept a specialized "dictionary" implementation for LZW. --[[User:ShinTakezou|ShinTakezou]] 23:45, 26 April 2009 (UTC)
Anonymous user