HN user

barbierocks

44 karma
Posts5
Comments16
View on HN

Schoolhouse.world | Full-stack web developer | REMOTE (in EST time zone) | FULL-TIME | https://schoolhouse.world

We are a new non-profit startup founded by Sal Khan (founder of Khan Academy) with the mission of connecting the world through learning. Our peer tutoring platform empowers students everywhere with free online tutoring over Zoom. It's still the early days — we just launched our new website and have a couple thousand learners from 40+ countries, with plans to grow this platform to millions. It's been an exciting journey.

We’re a five-person team, and we're looking for exceptional full-stack developers who thrive in a fast-paced environment and can do some of everything.

— Stack: React, TypeScript, Next.js, Node.js, PostgresQL, AWS

— Qualifications: Full stack development, with scalability and devops experience a huge plus. Can build things from scratch. Excited to learn anything and everything.

— $: Competitive salary.

— tl;dr: Foundational role in a mission-oriented startup leading a movement in peer tutoring.

If you're interested, please email us at engineering@schoolhouse.world!

Schoolhouse.world | Full-stack web developer | REMOTE | FULL-TIME | https://schoolhouse.world

We are a new non-profit startup founded by Sal Khan with the mission of connecting the world through learning. Our peer tutoring platform empowers students everywhere with free online tutoring over Zoom. It's still the early days — we just launched our new website and have a couple thousand learners from 40+ countries, with plans to grow this platform to millions. It's been an exciting journey.

We’re a five-person team, and we want people who thrive in a fast-paced environment and can do some of everything:

— Stack: React, TypeScript, Next.js, Node.js, PostgresQL, AWS

— Qualifications: Full stack development, with scalability and devops experience a huge plus. Can build things from scratch. Excited to learn anything and everything.

— $: Competitive salary.

— tl;dr: Foundational role in a mission-oriented startup leading a movement in peer tutoring.

If you're interested, please email us at engineering@schoolhouse.world!

Hashing it Out 6 years ago

Essentially correct! Instead of `1 None` it'd fail with a `KeyError`. You can get a probability distribution too:

    1 baz       1/8
    KeyError    1/8
    2 foo       1/8
    2 bar       1/4
    2 baz       3/8
Hashing it Out 6 years ago

Here's a cute follow-up: what are all possible outputs of the following program?

    import random

    class C:
        def __hash__(self): 
            # return 0 or 1, with equal probability
            return random.randint(0, 1)

    x = C()
    d = {}

    d[x] = "foo"
    d[x] = "bar"
    d[x] = "baz"

    print(len(d), d[x])

Thanks for all the feedback!

1. Hmm, perhaps we could change the game model? Instead of solving as many as you can in three minutes, we could (1) have a set time per problem, and a fixed number of problems or (2) have some system to add back time for correct answers.

2. This is on our todo list!

3. Yes, see my comment from above -- we're thinking of simple ways to accept slight variations. A way to contest variations might is a good idea.

4. How do you propose we do this?

5. So right now, a problem is worth ceiling(length of our solution / 10.0) points. This seemed like a good way to reward harder questions proportional to the time spent solving them. Any other suggestions?

Supporting custom macros seems hard, but we should be able to fix spacing problems if we revamp the comparison logic entirely. Thanks for filing the Github issues -- we definitely welcome any contributions, so let us know if you have any ideas!

Also, we're friends with Evan and have already gotten his feedback. :)

1. That's why we added a point system, but I agree the variation in difficulty is pretty wild.

2. See my comment above - comparison is a tough problem right now, the website is pretty simple. We'd like to improve it though!

Yeah, the comparison logic is pretty simple right now (see my comment). Unfortunately, `\not\in` and `\notin` look slightly different.

We're figuring out the best way to accept slight variations. It's a tough problem and isn't as simple as increasing the pixel threshold. For example, replacing a + with a - has an extremely small pixel difference (and the two characters have the same width, so it doesn't affect anything else), but we shouldn't accept both.

One of the developers here! Right now, we compare answers visually, so for example `n \choose k` and `\binom{n}{k}` will both be accepted. However, sometimes there are things that look similar to the human eye, but are rendered slightly differently -- this is usually due to alignment, spacing, or size. For example, `\not\in` (bad) vs `\notin` (good) is a pretty annoying example. Making the comparison / feedback mechanism better is a tough problem. It isn't as simple as increasing the pixel threshold: replacing a + with a - has an extremely small pixel difference (and the two characters have the same width, so it doesn't affect anything else), but we shouldn't accept both.

Right now, the website is a super simple static HTML page. If we have time, we'd also like to add some new features, like a leaderboard and (hopefully) better comparison logic. Feel free to contribute, and we appreciate the feedback!