Git Product home page Git Product logo

Comments (8)

kytrinyx avatar kytrinyx commented on August 30, 2024 1

We've got documentation about how the exercise READMEs are generated here: https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/fixing-exercise-readmes.md (not sure if it helps in this case).

If there are language-specific hints that would help they can be added to a HINTS.md file, and it will be included in the final README.

from erlang.

NobbZ avatar NobbZ commented on August 30, 2024

Hello Tejas!

I really appreciate your feedback and I do feel sorry about the points you mentioned. I also have to admit, that one tends to forgot how it was when beeing new and discovering such stuff as you did today.

Since I am the only maintainer currently, there is an important piece missing here: peer review. I have to trust myself that I have covered everything. Sometimes I miss some points though.

Of course I will do some additions to the documentation which covers your points. Currently I am thinking about writing a tutorial which acts as an introduction into exercism and erlang tool chain as used in the exercises. I think the structure/content will be like this:

  • fetch the first exercise (explain exercism fetch erlang)
  • run tests on that exercise and let them fail (explain rebar3 eunit)
  • add solution module, also sidenote about *.app.src and the version_test
  • run tests again and let them pass
  • submit solution (explain exercism submit)
  • fetch next exercise
  • guide through solving it the TDD way (maybe I will change order of exercises a bit to have some good example at this place)
  • submit the solution
  • let the student fetch, solve, submit the next exercise on his own, providing some places where he can find help, as well as explaining the possibility to submit unfinished solutions.

Also I will definitively provide some stub-modules, at least for the first couple of exercises in the next days. Until then I will open up an issue free to fetch for everyone.


And also an answer to your very last question:

I introduced rebar only a couple of weeks, ago, because it is much simpler to use then the former way of compiling and running the modules on your own everytime. Also using rebar is much more uniform, the command used to test is the same throughout all exercises, without it you had to specify the module under test every time, it used to look like this:

$ erlc *.erl
$ erl -noshell -eval "eunit:test(hello_world, [verbose])" -s init stop

This was also an issue on windows installations that used choco to install, since there was no "shim" created for erlc. One could have circumvented this by providing also the necessary commands to do the same from EShell (just type erl), but using EShell in windows is even worse regarding UX.

Last but not least, rebar gives us the opportunity to not only have single module exercises/solutions but multi-module as well. I think about splitting up zypper here, because it would feel much better designed when we had the actual zypper and the datastructure to zyp in different modules.

from erlang.

xymbol avatar xymbol commented on August 30, 2024

Landed here with a similar experience. For others, I will post a solution here:

  1. Create a src/hello_world.erl with the content below.
  2. Ignore the instructions, run with rebar3 eunit.
  3. All tests should pass.
-module(hello_world).
-export([hello/0, test_version/0]).

hello() ->
  "Hello, World!".

test_version() ->
  2.

@NobbZ Having a tutorial would be nice but seems like an unrelated goal. This track is up and can't wait to be fixed. Most of the people in Exercism have probably tried a few other languages. One should not expect additional background for one particular track.

Some ideas to make it better:

  • If rebar3 is the way to go then drop erl instructions
  • Provide placeholder files with comments for first exercises
  • Add more meaningful notes and pointers

For example, in the "hello world" exercise we have a version_test() function with an assertion for a test_version() function returning a meaningless value of 2. Why, really?!

I would put extra care in the first few exercises and run them through new users. Getting your feet wet is the raison d'Γͺtre for Exercism. Someone with a minimum experience in a particular language would not go through the pain otherwise.

Please let me know if I can help.

from erlang.

NobbZ avatar NobbZ commented on August 30, 2024

If rebar3 is the way to go then drop erl instructions

Please point me to where you have still found erl instructions? I was under the impression I already had removed them all.

Stubfiles and more/better hints are definitively on my TODO list, but I am alone in this track currently, having a dayjob, a newborn, her older brother, my wife, I am studying, and I do exercism if I find some time for it.

So, yes, help is appreciated and I welcome it, but I do not think, that I will be able to do anything beyond typo fixes before Easter, then lecture phase begins and I might be able to dedicate an hour or two per week to xerlang during longer pauses between lectures. Until then PRs are welcome.

from erlang.

xymbol avatar xymbol commented on August 30, 2024

Please point me to where you have still found erl instructions? I was under the impression I already had removed them all.

First exercise? Most others don't even have a README file. https://github.com/exercism/xerlang/blob/4ddca0e1ec8a550d360ee179a221c8e596349123/exercises/hello-world/README.md#running-tests

... but I am alone in this track currently, having a dayjob, a newborn, her older brother, my wife, I am studying, and I do exercism if I find some time for it.

Please, don't take any of this personally. Trim down the files, lower the number of exercises and make it clear that help is needed and, that material can be incomplete or outdated. Asking for help or stepping down are always options.

from erlang.

NobbZ avatar NobbZ commented on August 30, 2024

I don't take it personal. Just the other way 'round. I really appreciate your suggestions. But since I am the last maintainer in the track, stepping back is one of the last options I consider. I do not wan't to get xerlang orphaned, since the language is beautiful (well, the language minus its syntax ;))

Also, I won't reduce the number of available exercises, since it will make no difference if there are 10 or 100, the work that needs to be done is pretty much the same, since most of it is around the exercises.

You are right though. At some point I will need to check if all exercises are up to date with x-common and take action. But currently there is nothing forcing me to update the tests, keeping them in sync with upstream is only cosmetic.

For that dangling README.md which fools us... I never considered to look right beneath the exercises itself. since in theory the README gets auto-created from a couple of sources. But it seems as if the README in the repository is prefered over the auto-generated, which would be much more accurate. I will simply delete that dangling README, that should fix at least that issue (after @kytrinyx does the next deploy).

from erlang.

stale avatar stale commented on August 30, 2024

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

from erlang.

NobbZ avatar NobbZ commented on August 30, 2024

As with v3 everything will change in regard of UX and workflow, I will close this issue.

from erlang.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.