exercism

The Clojure Track: https://exercism.io/my/tracks/clojure
seancorfield 2020-04-04T04:53:52.142800Z

Does anyone else think the definition of "yelling" in the Bob exercise is lacking/vague/unintuitive?

➕ 1
seancorfield 2020-04-04T05:08:20.143800Z

Hah! Finally managed to get all the tests to pass but it still doesn't feel like a good definition of "yelling": https://exercism.io/mentor/solutions/723dccaa218e4495a333327052c0884d -- feedback?

seancorfield 2020-04-04T05:08:54.144700Z

(and, wow, this question has a huge variance in responses -- how did y'all respond to this?)

hindol 2020-04-04T05:13:16.145800Z

I used to peek at the test cases when I solved. Many questions don't explicitly state all the criteria.

seancorfield 2020-04-04T05:14:07.146700Z

Aren't we supposed to look at the test cases? They're part of the download, after all. And running lein test is about the only way you know you have anything close to a solution.

seancorfield 2020-04-04T05:15:14.147800Z

I swear I've spent nearly an hour on Bob trying to figure out what their definition of "yelling" is. Even looking at community solutions hasn't much helped -- I think it's a terrible question.

seancorfield 2020-04-04T05:15:34.148200Z

I have to say, so far, I am really not impressed by Exercism.

seancorfield 2020-04-04T05:17:47.148600Z

The machinery is very slick but the exercises are awful.

pez 2020-04-04T05:27:03.154400Z

I kinda like that the exercises are vague. It makes my creativity trigger. I also almost always start with running the tests. I often look at them. Depending on the problem. For Bob I think I didn't look at them, just tried to make them pass. The yelling part of Bob had me puzzled too. But I smiled all my way through that exercise, thought it was very fun.

seancorfield 2020-04-04T05:30:35.156Z

I've deleted my account. I was hoping for much better, after all the "buzz" I've seen about Exercism. Kinda glad I resisted signing up for so long.

porkostomus 2020-04-04T05:33:33.158100Z

As a maintainer working on the next release, I'm searching for ways it could be much better. Some we are already aware of: https://www.youtube.com/watch?v=5Cj1Dr9m3GM

pez 2020-04-04T05:35:16.159100Z

Wow. To me it has been the most wonderful thing! Here's my Bob solution, btw: https://exercism.io/tracks/clojure/exercises/bob/solutions/ada967a952664c9a8ce6a10bb9fac5cc

seancorfield 2020-04-04T05:44:51.160Z

Why define 0-arity functions? Why not use plain local binding expressions?

seancorfield 2020-04-04T05:46:23.161400Z

I find the regex approach to be mostly impenetrable. Some of the solutions I looked at were completely unreadable because of their reliance on regex (yours isn't too bad but I think it's pretty ugly in some places)

seancorfield 2020-04-04T05:47:01.162Z

If you trim first, it's much clearer when you're checking if ? is the last character.

seancorfield 2020-04-04T05:47:49.163Z

(to me, "yelling" should be a sentence ending in ! especially after they make that big (pompous) deal about "correct English" -- which they clearly are not adhering to!)

seancorfield 2020-04-04T05:48:53.163900Z

(I'm a bit surprised I can still view your solution BTW @pez given that I've deleted my Exercism account -- that means that all solutions are fully public?)

porkostomus 2020-04-04T05:49:42.164400Z

only once the student chooses to publish it

seancorfield 2020-04-04T05:50:25.164900Z

Yeah, I'm just still surprised you can view solutions when you don't have an account at all.

seancorfield 2020-04-04T05:52:31.166200Z

Anyways, since I've deleted my account, I should probably leave this channel too. I'm sure some folks will get benefit from it but I'm very disappointed in it and I won't be recommending it to anyone.

pez 2020-04-04T06:01:28.166900Z

omg

pez 2020-04-04T06:30:26.171800Z

@porkostomus I'm watching the video now (trying to get past the horrible title, haha). Anyway, I'm at where Jeremy is talking about splitting things up in learning and practising, and I quite like it. Seeing there is a complete new set of exercises needed for the learning track I want to offer some of my time on reading them and giving feedback on them and their manifestations in Clojure. Seeing I am somewhat in the target group for them. Maybe this channel can be used for such things to?

porkostomus 2020-04-04T06:35:18.174600Z

Yes that would be great 😀 The part where he mentions how new the platform is - that's the thing. It was never really put together with much thought to the learning path. That's what we're trying to change.

hindol 2020-04-04T06:45:44.176500Z

I remember Clojure Koans having a very well thought out learning path. https://github.com/functional-koans/clojure-koans

porkostomus 2020-04-04T07:32:33.199300Z

Yeah the koans are great! There's also http://clojurescriptkoans.com/ I refer to these often, so hard to beat. So little talk. Finely crafted to introduce just one thing at a time

pez 2020-04-04T06:45:57.176800Z

@hindol.adhya told me about the plans to automate some of the mentoring. I was very sceptical. But the way Jeremy presents it there, I think it will work.

pez 2020-04-04T06:47:31.178300Z

And, naturally, I also get very interested in the part about in-browser exercises. Will that be made in a way where the Clojure REPL is going to be in the front seat, you think?

porkostomus 2020-04-04T06:54:48.181300Z

Perhaps at some point, I agree that would be nice, as it is so central to the Clojure workflow. The way I think of the automated mentoring is more like we are building a "super-linter", that is, tooling to catch common things so that we can maximize the parts of mentoring where the human aspect is most effective.

porkostomus 2020-04-04T06:59:39.182400Z

This is the editor the site will be using: https://ace.c9.io/

pez 2020-04-04T07:03:43.185500Z

Ace is cool. I think I might look at it a bit deeper now, than I have before.

porkostomus 2020-04-04T07:03:46.185700Z

I don't think it has the ability to do stuff like structural editing or inline-eval, which is a shame :face_with_raised_eyebrow: I'd be up for the challenge of trying to implement something better

pez 2020-04-04T07:05:07.186700Z

Parinfer might be possible to stick in there some way...

pez 2020-04-04T07:09:46.191500Z

Also, we could look at how Calva could support the onboarding from Exercism better. Might mostly be a matter of documentation. For someone who has vscode and something like brew, it is pretty quick. I've been able to use babashka for my exercises a bit lately, so maybe there is a way we can ship that with Calva... Thinking out loud here.

porkostomus 2020-04-04T07:15:40.194200Z

Those are both great ideas! I would definitely be in favor of that. VSCode and Calva keep getting better and have become the starter-kit of choice, in my opinion.

porkostomus 2020-04-04T07:17:51.195200Z

Yeah it would be really great to add socket REPL support to Calva for babashka

porkostomus 2020-04-04T07:22:30.198400Z

There's this: https://marketplace.visualstudio.com/items?itemName=mauricioszabo.clover (It's by the same author of Chlorine for Atom) I don't use it though because I'm happy with my VSCode config and I'm afraid of messing it up, so I just use a different editor for babashka 😜

porkostomus 2020-04-04T07:26:05.199200Z

I hear it supports nREPL now though, so perhaps it will no longer be an issue...

pez 2020-04-04T07:46:09.201600Z

Yeah, an nREPL server is being added to babashka. Still has some quirks used from Calva. I will try to figure out what is not happening. Not sure if it is possible to bundle babashka with Calva, but if it is, it might open up for a cool Exercism lab 😃

borkdude 2020-04-04T07:46:53.202300Z

@pez Can you test the latest version I posted in the #babashka channel? I was planning to release it today, but if it still has quirks we can maybe fix those before releasing

pez 2020-04-05T18:24:11.209100Z

Yeah. Since parts of Calva are written in cljs.

pez 2020-04-04T07:48:21.202600Z

The same branch as I have been testing so far?

borkdude 2020-04-04T07:50:07.202800Z

it's been merged to master now. I've also posted binaries over there

pez 2020-04-04T08:01:36.203300Z

Calva relies on the info op to support navigation and doc lookup. So that is probably most of what is not going on.

pez 2020-04-04T08:03:28.203500Z

And on my wish-list would be the test ops. That would make it work for many Exercism exercises.

pez 2020-04-04T08:04:45.203700Z

But clojure.test in itself is not supported yet, right?

borkdude 2020-04-04T08:08:43.203900Z

yes, it is

pez 2020-04-04T09:32:41.204500Z

I don't get completions from it...

borkdude 2020-04-04T09:34:05.204700Z

hmm, good point, me neither. I'll make a separate issue for it

borkdude 2020-04-04T09:34:55.204900Z

https://github.com/borkdude/babashka/issues/328

pez 2020-04-04T09:51:41.205300Z

Cool. Since I never use it directly to run tests I didn't know what to evaluate. 😃 But, now looked that up and, yes, indeed it runs my tests. Sweet!

borkdude 2020-04-04T12:26:15.206100Z

@pez The issue is now fixed on master

pez 2020-04-04T16:27:22.206300Z

Awesome. Also saw you released it. That's awesome too!

borkdude 2020-04-04T16:29:44.206500Z

yeah. btw, you were mentioning to include bb. some other idea that could be interesting to explore: use sci inside Calva, so people can configure VSCode/Calva using Clojure itself. https://www.npmjs.com/package/@borkdude/sci#use-from-javascript

borkdude 2020-04-04T16:30:26.206800Z

an example JavaScript project which uses sci to expose a Clojure DSL: https://github.com/Deep-Symmetry/bytefield-svg

pez 2020-04-04T16:32:31.207200Z

The ClojureScript runtime is shipped with Calva as well. NOt sure how to leverage that, but anyway. 😃

borkdude 2020-04-04T16:33:23.207400Z

the CLJS runtime?

pez 2020-04-04T21:33:56.208400Z

So, the Meetup exercise was a bit extra interesting. :thinking_face: https://exercism.io/mentor/solutions/2d316846219d4bc0ac79d1aeaf3888d7