3 ms·
I got stuck on Level 3, partially because Scala is a little wacky (but I learned to appreciate it!) and partially because their specs were super terrible. They
by jeremymcanally 13y ago
I got stuck on Level 3, partially because Scala is a little wacky (but I learned to appreciate it!) and partially because their specs were super terrible. They didn't mention it required substring matching or was case-sensitive until I'd been working on it for 2-3 days and then was out of time. Given the bad debug output (the head of a diff which often didn't show anything and didn't include what term the failure was for) it was really frustrating to make any progress.
And he's right about the servers and scoring; that, too, was frustrating. I'd pass a test case locally then push and have it fail because it was slower for no apparent reason. Overall, it was awesome up until Level 3. I wish I'd made it to 4 because that strikes me as an actual distributed systems problem rather than a minor tweak to an existing example like the others.
It wasn't a bad experience and the system they have to manage it all is cool. I just wish a little more care had gone into making that level a bit smoother.
- slackpad 13y agoYeah same here. I wish I had given up on Scala and used something more familiar to me. I kept having my index serialization randomly die and it wasn't very clear what was going on. It was great to get a taste of the language, though.
- adamnemecek 13y agoYeah, I ran into the same issue on Level 3 (the comment about Github search in the first edition of the readme threw me off since Github search does not do substring search). The worst part was that I knew what needed to be done from the very beginning but the simplest things were kinda hard to do in Scala and playing around with the setup to test things out was pretty frustrating since you had to recompile every time and the recompilation took aeons. (This is not meant to be a critique of Scala, while working on the level I kind of understood the appeal)
- ithkuil 13y agoI just rewrote it in Go, you can easily do the same with your preferred language. the readme is actually well written, and you can easily check the actual input you get by just sniffing. give it a try
- ithkuil 13y agoI just rewrote it in Go, you can easily do the same with your preferred language. the readme is actually well written, and you can easily check the actual input you get by just sniffing. give it a try
- brown9-2 13y agoTo be fair though, there was an update to the level 3 README published on 1/25 which made some of the requirements (substring matching) a bit clearer.
- jeremymcanally 13y agoYup, but that was kind of after I didn't have a lot of time to devote to it unfortunately. They did clarify but only after I whined. ;)
- grey-area 13y agoI'd pass a test case locally then push and have it fail because it was slower for no apparent reason. My theory was that the remote instances were really CPU constrained, and so much much slower than your computer, but for whatever reason local test runs were very misleading. The spec for level 3 was annoyingly vague at first, and the test output was really unhelpful as the diff started with lots of original data and was truncated. Level 4 was interesting, you should have a look - just the links alone are interesting ones, and I liked the raft paper, which was pretty easy to read even for neophytes. I might try to do better at it locally now when I have time free, but again, don't take local scores seriously, I scored in the thousands locally on that, but below 100 on remote. Must. do. better.
- danielweber 13y ago> the head of a diff which often didn't show anything They really needed "here are very small test cases to just find out if you doing things correctly." I spent at least a day wondering why things remotely were working locally but not working remotely when it turned out I wasn't giving file names in the proper format, something their "head of diff" format provided no feedback on.