Rangi42 | 1 year ago | on: FLTK 1.4 Released
Rangi42's comments
Rangi42 | 5 years ago | on: Ask HN: Who wants to be hired? (April 2021)
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.
Rangi42 | 5 years ago | on: Building a runtime reflection system for Rust (Part 3)
> There's an open issue for something like this: Variadic generics[1]. But so far every attempt at an RFC has been closed or postponed.
Rangi42 | 5 years ago | on: Std::visit is everything wrong with modern C++ (2017)
#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.)Rangi42 | 5 years ago | on: Ask HN: Dark mode for HN please?
For news.ycombinator.com - https://pastebin.com/K1KS64KR
For hn.algolia.com (the search form) - https://pastebin.com/ksH6QcV4
Rangi42 | 8 years ago | on: Ask HN: Who wants to be hired? (April 2018)
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.
Rangi42 | 8 years ago | on: Ask HN: Who wants to be hired? (January 2018)
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.
Rangi42 | 8 years ago | on: Quadratic voting (2014)
Rangi42 | 8 years ago | on: Quadratic voting (2014)
I believe this is what is meant by "the collective decision rapidly approximates efficiency as the number of voters increases".
Rangi42 | 8 years ago | on: YouTube admits 'wrong call' over deletion of Syrian war crime videos
Rangi42 | 8 years ago | on: What about cartesian programming?
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
Rangi42 | 8 years ago | on: How former professional climate change skeptic Jerry Taylor changed his mind
Rangi42 | 8 years ago | on: How We Got 10M Teens to Read Fiction on Their Phones
[1] https://en.wikipedia.org/wiki/Cell_phone_novel [2] https://en.wikipedia.org/wiki/Light_novel
Rangi42 | 9 years ago | on: Five world map styles
> Why does Google maps use the inaccurate, ancient and distorted Mercator Projection?
> Maps uses Mercator because it preserves angles. The first launch of Maps actually did not use Mercator, and streets in high latitude places like Stockholm did not meet at right angles on the map the way they do in reality. While this distorts a 'zoomed-out view' of the map, it allows close-ups (street level) to appear more like reality. The majority of our users are looking down at the street level for businesses, directions, etc... so we're sticking with this projection for now.
[1]: https://productforums.google.com/forum/#!topic/maps/A2ygEJ5e...
Rangi42 | 9 years ago | on: Zerocoin implementation bug
From this presentation[1] or the source code[2]:
1 Lovelace = 1 Bitcoin
1 Goldwasser = 10 Bitcoin
1 Rackoff = 25 Bitcoin
1 Pedersen = 50 Bitcoin
1 Williamson = 100 Bitcoin
But yes, those are meaningless names in themselves. Metric prefixes like "hectobitcoin" would be better.[1]: https://sar.informatik.hu-berlin.de/teaching/2013-w/2013-w%2... [2]: https://github.com/Zerocoin/libzerocoin/blob/master/Coin.h#L...
Rangi42 | 9 years ago | on: How Do I Declare a Function Pointer in C?
Rangi42 | 9 years ago | on: New Ubuntu-based Precision line-up
Rangi42 | 9 years ago | on: People's underestimation of AI
Rangi42 | 9 years ago | on: Reflecting on the Right to be Forgotten
There's probably some point at which the ways I use that data can be classified as stalking or harassment, but simply collecting it is allowed.
Rangi42 | 9 years ago | on: Nommu Linux
At 100% scaling, they look they way they're supposed to.[1] But at other scales, particularly non-integer ones, their drawing code will need updating to use the new fl_override_scale()/fl_restore_scale() API.[2] (Now that 1.4.0 is officially out, I expect to get back to maintaining those programs.)
[1]: https://i.imgur.com/A7CvKFe.png [2]: https://groups.google.com/g/fltkgeneral/c/gcqn9EeA7_A/