Recent submissions

Comment · 1 year ago
Comment · 5 years ago
Location: New York City, NY

Remote: Yes

Willing to relocate: No

Technologies: Java, Spring, C, C++, Python, Spark, SQL, MongoDB, Angular, HTML5, CSS3, Javascript, Typescript, Git, Windows, Linux

Résumé/CV: https://www.linkedin.com/in/remyoukaour/

Email: [email protected]

Experience: 3 years full-stack fintech development; 2 years academic research; various web development; BS+MS in Computer Science

I've worked on a variety of projects in the past few years, from web app frontends and backends to an automated trading system, as well as retro assembly programming in my spare time (it's the polar opposite of Java+Spring's high-level abstraction). I'm seeking full-time employment but would also be open to short-term positions.

Comment · 5 years ago
Comment · 6 years ago
With C++17's compile-time conditionals, plus good old C preprocessor macros, you could do this:

    #define MATCH_VARIANT(x) [](auto& x)
    #define CASE_VARIANT(x, T) constexpr (std::is_same_v<std::decay_t<decltype(x)>, T>)
    
    MATCH_VARIANT(arg) {
        if CASE_VARIANT(arg, string) {
            printf("string: %s\n", arg.c_str());
            // ...
        }
        else if CASE_VARIANT(arg, int) {
            printf("integer: %d\n", arg);
            // ...
        }
        else if CASE_VARIANT(arg, bool) {
            printf("bool: %d\n", arg);
            // ...
        }
    }
(MATCH_VARIANT could be extended to allow capturing vairables, or just omit that macro, it saves less typing than CASE_VARIANT anyway.)
Comment · 6 years ago
Comment · 8 years ago
Location: New York City, NY

Remote: Willing to consider

Willing to relocate: No

Technologies: C++, C, Python, Java, PHP, SQL, HTML/CSS, Javascript, Windows, Linux, Git, GUI design, technical writing

Résumé/CV: https://www.linkedin.com/in/remyoukaour/

GitHub: https://github.com/roukaour/

Email: [email protected]

I left Stony Brook University in 2017 with a Master's in Computer Science, and am currently seeking a software development position. I'm open to contract, part-time, or full-time opportunities. I care about writing code that's not just correct, but documented for the developers' sake and designed for the users' sake.

Comment · 8 years ago
Location: New York City, NY

Remote: Willing to consider

Willing to relocate: No

Technologies: C++, C, Python, Java, PHP, SQL, HTML/CSS, Javascript, Windows, Linux, Git, GUI design, technical writing

Résumé/CV: https://www.linkedin.com/in/remyoukaour/

GitHub: https://github.com/roukaour/

Email: [email protected]

I left Stony Brook University in 2017 with a Master's in Computer Science, and am currently seeking a software development position. I'm open to contract, part-time, or full-time opportunities. I care about writing code that's not just correct, but documented for the developers' sake and designed for the users' sake.

Comment · 9 years ago
As the paper's abstract states, "Quadratic cost uniquely makes the marginal cost proportional to votes purchased". The full paper shows their proof and the assumptions behind it, such as "an individuals’ value for votes is likely to be approximately linear in the number of votes she casts so long as her utility is driven by the impact she has on the vote total, as argued by Mueller (1973, 1977) and Laine (1977)".
Comment · 9 years ago
If merely 100 less-wealthy voters out of the whole population couldn't coordinate to buy a few extra votes—and they wouldn't even have to explicitly communicate, it would just take 100 people who individually hear about the issue and decide to vote more—then how important can the issue really have been to them?

I believe this is what is meant by "the collective decision rapidly approximates efficiency as the number of voters increases".

Comment · 9 years ago
Sounds like the system would be doing its job in that case.
Comment · 9 years ago
That translates fairly well into Python, with its set type and list/set/dict comprehensions.

    def setrange(first, next, last):
        return set(range(first, last+1, next-first))
    
    fizz = setrange(3, 6, 100)
    buzz = setrange(5, 10, 100)
    fizzbuzz = fizz & buzz
    fizz -= fizzbuzz
    buzz -= fizzbuzz
    num = setrange(1, 2, 100) - fizz - buzz - fizzbuzz
    line_map = dict({n: "Fizz" for n in fizz}.items() +
        {n: "Buzz" for n in buzz}.items() +
        {n: "FizzBuzz" for n in fizzbuzz}.items() +
        {n: n for n in num}.items())
    for i in range(1, 100+1):
        print(line_map[i])
Some SETL features Python lacks:

• No ellipsis notation for ranges; must use the "range" function and add one to the maximum value, or define a custom "setrange" function

• Can't concatenate dictionaries; must concatenate their "items" lists and convert back to a dictionary

• No consistent map-lookup notation; collections are indexed with brackets, but functions are called with parentheses

Comment · 9 years ago
Comment · 9 years ago
Comment · 9 years ago
Comment · 9 years ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton