Fork me on GitHub
#off-topic
<
2021-09-03
>
sova-soars-the-sora04:09:40

Hi, I have a bunch of quiz questions to throw at my users. There are multiple chapters, and then each chapter has quizzes associated with it. Something like 15-50 questions per chapter. I have a cumulative quiz that I ask the user 30 questions, but it gives a lot of repeats and older questions (earlier chapters). I want to somehow have it focus on newer chapters with a gradient. So say you've completed up through chapter 5, you'll get questions from chapters 1, 2 3, 4, and 5. I would like those 30 cumulative quiz questions to have a gradient of sorts, maybe 10 from chapter 5, 8 from chapter 4, 7 from chapter 3 3 from chapter 2 2 from chapter 1 (+ 10 8 7 3 2) oughta be 30 There can be many chapters so I'm wondering how I could code-ify this idea.

hiredman04:09:35

Exponential decay

hiredman04:09:46

N points on an exponential decay curve that are equidistant and sum to M

sova-soars-the-sora14:09:30

That sounds nice. Discrete exponential decay 😄

dominicm12:09:35

@sova Could spaced repetition algorithms maybe help here? https://en.wikipedia.org/wiki/Spaced_repetition

dominicm12:09:42

Anki uses SM-2 or something like that.

Drew Verlee12:09:31

I feel that sr is ok, but not ideal. I would rank it less useful then having a discussion about the topic in question. It relies to much on your own current understanding. It's early though, and I just jumped into this thread at the end lol.

dgb2313:09:31

I’ve been on a journey to drastically improve software quality. A good chunk of it is working on communication and discipline. Then I also read a ton of books on software design and am continously improving fundamentals as well (algo, math...). Just now I found out that I introduced an annoying UI bug. The mistake was two fold, for one I didn’t keep my code DRY, so I thought I fixed something but didn’t really. Secondly I didn’t test the UI after the changes rigorously enough. I’m going to start to write a bugs and mistakes journal. Pretty sure this has been suggested in one of the books I read years ago like ‘Pragmatic Programmer’ or ‘9 Debugging Rules’ or similar. The hope is that by writing down mistakes, I wire the experience more deeply in my brain and maybe it will be fun to read after a while. If anyone has experiences/thoughts about this or maybe other suggestions I’m all ears!

2
2
sova-soars-the-sora14:09:32

My good friend keeps a journal of big mistakes and he writes them down to vent, and also to generalize issues that otherwise caught him off guard. You won't run into the same exact problem or issue or blindspot again, but you can extrapolate and avoid similar ones in the future ^_^

👍 2
sova-soars-the-sora14:09:30

He talks about it in this Podcast

sova-soars-the-sora14:09:20

I think Spencer gets into talking about the mistakes journaling at around... 27 minutes? somewhere in 27-35

dgb2316:09:32

Fantastic! Thank you for the suggestion. I already started my bug/mistake journal and look forward to watch this video.

sova-soars-the-sora14:09:45

Spaced Repetition is cool but would require me to track a lot more data than I developed infrastructure for 2 years ago 😅

sova-soars-the-sora14:09:33

So i'm trying to do a reasonable update in question quality without redoing a lot of infra and see if that will help. I think exponential decay that sums to N will be a good approach to try first and cost significantly less in dev time dot hax

sova-soars-the-sora14:09:12

Just gotta do some "discrete exponential decay" now ^.^ any algorithm designers who got ideas i'm all ears

sova-soars-the-sora14:09:54

Maybe I can use some of that.

cgrand17:09:57

I believe it was bogus

sova-soars-the-sora15:09:59

This is me doing newb math to get a result 😄

(let [o 15 ;offset
      arr  ;finished-product array
      [(int (* o (Math/pow 0.7 1)))
       (int (* o (Math/pow 0.7 2)))
       (int (* o (Math/pow 0.7 3)))
       (int (* o (Math/pow 0.7 4)))
       (int (* o (Math/pow 0.7 5)))
       (int (* o (Math/pow 0.7 6)))
       (int (* o (Math/pow 0.7 7)))
       (int (* o (Math/pow 0.7 8)))]
      sum (apply + arr)]
  (prn arr)
  (prn "sum = " sum))
=> [10 7 5 3 2 1 1 0] sum = 29 Kinda like that. will probably need to round that zero up and dynamically figure out a decent offset based on the number of elements (in this case 😎

sova-soars-the-sora15:09:26

talk to you later have a lovely and productive day everyone 🙂

partywombat 2
mauricio.szabo15:09:30

A little question about notebooks: I'm trying to purchase one and I somehow got into Tuxedo Computers, System76, and some Amazon computers. This one seems REALLY interesting: https://www.amazon.com/Gaming-GeForce-Windows-Notebook-Computer/dp/B097Q4YZFY. It does have a Ryzen processor, so I've been curious on how they perform, how's Linux support, etc 🙂

cp4n17:09:22

I bought a Ryzen thinkpad recently and it is very fast. First thing I did was wipe windows and install linux. What I will say though with linux is that you want to run something with newer kernel version and drivers. Won't perform as well on anything older than ubuntu 20.04. Something newer is even better.