Hacker Newsnew | past | comments | ask | show | jobs | submit | lightamulet's commentslogin

thanks for the bug report! oversight on my part, pushing hex support rn :)


i think this took me (1 person) like 40 hours max? all built in the last week, though i spent more time than i should have on it haha. quite ai-assisted, that's how most of the layout like the editor, player controls, even eval server got set up.

i spent way too much time on things like the language itself, map generation, and figuring how to only recompute the sim on material code changes vs whitespace and comments (it assembles to "bytecode" with debouncing! and the sim component takes the bytecode as a prop).

we'll see if good ROI, we definitely intend to run more of these types of challenges in the future, so much of this work won't go to waste


on the home page (dev.moment.com) you can type `theme -h` and then `theme set [name]` to change the color scheme, which carries forward to the sim!


Yes. I checked every theme and all dark themes are too low contrast. Pacman is good but comments are barely readable (gray on dark gray).


the answer is my editor doesn't have spellcheck and i apparently don't know english as well as i thought, fixing :')


Hey, I'm the one who built this particular challenge!

I had no clue, but thanks for the book lead! It didn't come up directly, but SimCity 2000 and especially SimCity 4 had a huge impact on me growing up / I still spin up SimCity 4 from time to time, so I imagine there's a massive indirect influence haha.


This is exceptionally beautiful. What did you use to build it? Vanilla JS?


This is actually all built in nextjs/react, though the initial sketches of the sim had no visualization and were just running in my terminal using bunjs


Moment | Distributed Systems Engineer, Product Engineer | ONSITE NYC | Full-time | https://moment.com | $200k–$325k + equity

Moment is building core infrastructure for fixed-income, the world's largest asset class (4M+ instruments, $150T total market). We work with some of the largest financial institutions to bring all of their fixed-income operations into a single platform.

Cool things we've built include a liquidity-aware portfolio optimizer, high-cardinality market data pipelines, and a best-in-class trading system and ledger. Backend stack is generally Go/Kafka/Postgres on ECS, though some of the quant-ier services are built in Python. Frontend stack is NextJS. Company stack is Slack/Linear/Notion.

Roles:

- Distributed systems engineer: build features + scale systems to model, optimize, and support an idiosyncratic, complicated domain

- Product engineer: build beautiful, powerful interfaces that put these new capabilities in the hands of asset managers, financial advisors, traders, and more.

See more + apply at https://moment.com/careers.


Trying to represent sudoku as an integer program leads to a natural way to represent the board: a 9x9x9 boolean grid where x and y are the board dimensions and z is the number in each square.

You end up with three symmetric constraints + the box constraint:

- The sum along any x, y, or z row is 1 (one of each number per row, one of each number per column, and one number per square)

- The sum of each 3x3x1 box slice is 1 (one of each number per box)

I really like the symmetry between the row sum constraints here. And it does pretty neatly align with the way many people solve Sudoku by writing little numbers in the squares to represent possible values before pruning impossible ones.


That representation of a Sudoku is elegant, but I think it is not the most natural representation. The base constraint programming style will use a variable per square with domain 1-9, and then 27 all_different constraints. This representation is a lot closer to how people talk about the rules of Sudoku, which in my mind makes it more natural.

A full MiniZinc program would look like this

    int: n = 3;
    int: s = n*n;
    set of int: S = 1..s;
    
    array[S, S] of opt S: puzzle;
    
    array[S, S] of var S: board;
    
    % Sudoku constraints
    constraint forall(row in S) ( all_different(board[row, ..]) );
    constraint forall(col in S) ( all_different(board[.., col]) );
    constraint forall(r, c in {1, 4, 7}) (
        all_different(board[r..<r+n, c..<c+n])
    );
    
    % Set up puzzle
    constraint forall (r, c in S where occurs(puzzle[r, c])) (
        board[r, c] = puzzle[r, c]
    );
    
    solve satisfy;

And an instance file looks like this

    puzzle = [|
         9, <>,  8,   1, <>, <>,  <>, <>,  4 |
         1,  2, <>,  <>,  8,  6,  <>,  5, <> |
        <>, <>,  7,  <>, <>, <>,  <>,  1, <> |
    
        <>,  8,  3,  <>, <>, <>,  <>,  6,  9 |
         7, <>,  6,   8, <>,  3,  <>, <>, <> |
        <>, <>, <>,   4,  6, <>,  <>,  8, <> |
    
        <>, <>, <>,  <>, <>,  1,  <>, <>, <> |
        <>, <>, <>,  <>, <>,  4,   5, <>,  1 |
         5,  4,  1,   9,  3,  8,  <>, <>, <>
    |];


Moment | Distributed Systems Engineer, Product Engineer | ONSITE NYC | Full-time | https://moment.com | $200k–$325k + equity

Moment is building core infrastructure for fixed-income, the world's largest asset class (4M+ instruments, $150T total market). We work with some of the largest financial institutions to bring all of their fixed-income operations into a single platform.

Cool things we've built include a liquidity-aware portfolio optimizer, high-cardinality market data pipelines, and a best-in-class trading system and ledger. Backend stack is generally Go/Kafka/Postgres on ECS, though some of the quant-ier services are built in Python. Frontend stack is NextJS. Company stack is Slack/Linear/Notion.

Roles:

- Distributed systems engineer: build features + scale systems to model, optimize, and support an idiosyncratic, complicated domain

- Product engineer: build beautiful, powerful interfaces that put these new capabilities in the hands of asset managers, financial advisors, traders, and more.

See more + apply at https://moment.com/careers.


> To review or adjust your AutoPay settings, click here.

> You can review or adjust your AutoPay settings at any time.

I honestly find the latter more confusing. It reads like documentation, so I'm primed to think that the link will take me to a documentation page about autopay settings rather than to my personal account settings. The former is very clear that it is prompting me to take an account action if I desire.


Here's the GitHub with the bill text and a forum for feedback, for the curious: https://github.com/responsible-financial-innovation-act22/RF...


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: