Comments (8)
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.
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 theversion_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.
Landed here with a similar experience. For others, I will post a solution here:
- Create a
src/hello_world.erl
with the content below. - Ignore the instructions, run with
rebar3 eunit
. - 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 droperl
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.
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.
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.
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.
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.
As with v3 everything will change in regard of UX and workflow, I will close this issue.
from erlang.
Related Issues (20)
- The master branch will be renamed to main HOT 1
- Configure online editor HOT 3
- Add key features
- [v3] Add tags
- Add prerequisites to Practice Exercises HOT 1
- Pass linting checks HOT 1
- [v3] Build Test Runner
- Build Representer and Analyzer HOT 1
- Update status of track
- Update status of Concept Exercises HOT 1
- Launch Tracker π΄
- Extract track-specific help instructions from `config/exercise_readme.go.tmpl`
- Extract track-specific test instructions from `config/exercise_readme.go.tmpl`
- Build representer
- Check docs are up to date
- Are you sure the tests for Robot Simulator work? HOT 4
- exception error: undefined function erlang:get_stacktrace/0
- Building a training set of tags for erlang HOT 21
- The `accumulate` problem uses inaccurate terminology HOT 1
- Add Reverse String? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from erlang.