HNHacker News
TopNewBestAskShowJobs

rix0r

380 karma · joined April 5, 2010

submissionscomments
rix0r··on The Gruen Transfer is consuming the internet
Do you fundamentally disagree with the intent of the regulation, or are you just putting on your software engineer's hat and using your decades-long honed skill of trying to find edge case problems in a set of rules?
rix0r··on Hedy: Textual programming made easy
You are evaluating this as a tool that is intended to train people up to being professional software developers.

It's not!

It's instead intended to give every child in the world, regardless of inclination, some first-hand experience in programming computers. Some of these may go on to become professional software engineers, and if they do it will be time enough to become proficient in the common lexicon. Even if they don't, at least they've gotten a better understanding of these machines that inescapably pervade our lives. And kids that wouldn't have thought they'd have an interest in programming get an easy-entry exposure and may decide to pursue it professionally after all.

Given that that's the audience, the goal is to take away any barrier to the essential skill to learn, which in this case is writing instructions for an unthinking machine.

Kids that already know they love programming and are/were willing to do whatever it takes to learn it (i.e., probably nearly everyone on this forum, including myself), are not the audience! Those kids will make it one way or another. Hedy is for all the other kids out there.

rix0r··on Sieve is simpler than LRU
There seems to be a mistake in the animation.

> On a cache miss, SIEVE checks the object pointed to by the hand. If the object has been visited, its visited bit is reset

When the animation gets to the point where the I element is checked against the cache, the hand moves off of D without resetting its visited bit.

rix0r··on Everything you need to know about monorepos
Something very important not covered by the article:

Is the tool going to help me detect when I accidentally bypass the declared dependencies?

For example, in a basic monorepo it's very easy to accidentally rely on the file layout on disk (require'ing a dependency not in your package.json but that has been hoisted because it's a dependency of a different package accidentally succeeds, cp'ing files from `../some-other-project` should not be allowed but is possible). All of these invalidate some optimizations that monorepo tools want to make.

At scale with many contributors, it's HARD to teach and remember and apply all these rules, and so the monorepo tool really should help you detect and fix them (basically: fail the build if you mess up).

The article doesn't really make it clear which tools will do that for you. Pretty sure that Bazel does, Nx probably does, and lerna and turborepo don't.

rix0r··on Fixing memory leaks in popular Python libraries
Shouldn't

   sock.close()
imply

   sock.shutdown()
? Isn't it pointless to call both?
rix0r··on Windows 10 will use protected folders to thwart crypto ransomware
The UI is not really explained. I hope this is not going to train more generations of Windows user to click "yes yes yes" in response to annoying dialogs.
rix0r··on Things I Hate About PostgreSQL (2013)
But how would you go forward in the first place? Not with the "Forward" button, because you haven't visited the page yet.

Instead, you press "Right" or "PgDn" or what have you. So I would expect the converse button ("Left" or "PgUp") to go back a slide as well (which it presumably does).

That leaves the browser's Back button to go back to the previous web page.

Everybody's happy!

rix0r··on Hitchhiker trees: functional, persistent, off-heap sorted maps
For index-seeks, yes.

For key-seeks, it's a normal tree walk to the leaf (unless an INSERT is found at a higher level, iirc)

In practice, the blocks are so huge that any tree is going to have at most depth 3, and the root page is likely in cache, so 1 or 2 s3 fetches (= roughly 200ms, let's say)

I've been toying with the idea of putting the root page (or maybe the top 2 levels of pages) in DynamoDB, which would make them fast even if they weren't in cache.

rix0r··on Hitchhiker trees: functional, persistent, off-heap sorted maps
Funny: I implemented the exact same thing, with a focus on AWS and pagination (albeit less well-documented):

https://github.com/rix0rrr/libbruce/blob/master/README.md

rix0r··on Reference Counting: Harder Than It Sounds
Saying "use immutable data structures" here assumes garbage collection though.

If you didn't have garbage collection, when would you release the memory for these structures? That would bring you back to refcounting.

rix0r··on Show HN: ION, a JSON alternative – Versatile, compact, fast, binary data format
Well, why would it be? That's internal.

Hasn't been published as far as I can Google.

rix0r··on Choosing an HTTP Status Code
I hate that "Too Many Requests", or "Throttled", or what have you, is a 4xx status code.

It renders simple middleware logic like "retry on a 5xx, don't retry on a 4xx" invalid.

If you'd call it "Server Over Capacity" you could just as well argue for a 5xx code.

rix0r··on Socialist millionaire protocol
Can someone "explain like I'm five" why calculating a hash and comparing those isn't good enough?

Is it to protect against bruteforcing? What if the hash is made expensive to compute?

rix0r··on RobustIRC
Given a consensus protocol, it should be easy to connect the servers in a mesh though, right, getting rid of the tree structure and the single links?
rix0r··on The future of UI is text
Counterpoint: I was with a bunch of friends when I was young, we wanted to play some music, and we had a computer with some MP3s on it, AND speakers, but we happened to not have a screen lying around at that time.

Didn't have. A screen.

So I asked the guy, "Where are your MP3s?" (Answer, "D:\Mp3"), turned on the computer, then hit:

  - WinKey-R
  - D:\ <Enter>
  - Mp3 (quickly, in order)
  - Context Menu Key
  - P (as in "P"lay in Winamp)
Voila, music started.

Let me see you control a computer blindly with nothing but a mouse :).

rix0r··on How Unreliable is UDP?
Well, yes and no.

TCP has been designed in such a way that it interprets packet drops as a sign of "congestion" (which was typically true in ye olden days of purely wired networking), and it will start sending less data in response.

Whereas in wireless networking, occasional packet drops are just a fact of life and are not indicative of competing flows trying to share the channel. So it actually makes [some] sense that wireless protocols try to compensate for the behaviour of the transport protocol used by 90% of all data: TCP.

rix0r··on 3D Printing Store
Out of curiosity, what kind of scanner do you have?

I've been wanting to scan all my important mail and documents for a while, but I need the process to be as frictionless as possible for me to actually go through with it and I'm unsure what kind of scanner to buy for that.

rix0r··on How to win at rock-paper-scissors
I would have said "steen schaar papier" (rock scissors paper).

I guess, taken all over the world, most permutations show up.

rix0r··on The World's Most Powerful Browser-Based IDE – Codio
I've been thinking about this for a while:

What a good unique selling point for an online IDE would be, is automated online testing--preferably with continuous integration.

I've been in the position enough times that I'd like to contribute some small fix or feature to a project, only to be put off by the effort necessary to set up a local development environment to make my 5-line change.

An online IDE could completely forego that: fork the code online, make my change, automatically run all the tests (preferably instantly!) so I can check I didn't break anything, and send a pull request!

rix0r··on A collection of not so obvious Python stuff
It's not ENTIRELY obvious. For example, tup[0].extend([1]) would work fine, and the behaviour of __iadd__() seems like it should be the same as extend(). In fact, the reference[1] has the following thing to say:

> For instance, to execute the statement x += y, where x is an instance of a class that has an __iadd__() method, x.__iadd__(y) is called.

However, this is patently not true, apparently:

    tup = ([],)
    tup[0].__iadd__([1])  # Works
    print tup

    tup = ([],)
    tup[0] += [1]  # TypeError
    print tup

[1] https://docs.python.org/2/reference/datamodel.html#emulating...
rix0r··on Better bash in 15 minutes
File system paths may belong in the shell, but what about paths with spaces?

To be honest, I trust myself more manipulating paths in a language like Python than to put all quotes in the correct places in Bash :(

rix0r··on Raising a moral child
The way I look at it, it's that the admonition, "don't be a cheater," is stated BEFOREHAND, before any cheating has taken place. The child then still has the opportunity to make being a "not-bad" person (i.e., a "good" person) a part of his or her identity.

If, on the other hand, the child had already cheated, you would express disappointment in that the supposedly good child had displayed uncharacteristic behavior.

rix0r··on Don't Learn to Code, Learn to Program – But Come Back in 10 Years
Is the entire premise of Neuro-Linguistic Programming (NLP) not that you can influence people's thought patterns by using language as code, as instructions?
rix0r··on Why You Shouldn't Interrupt a Programmer
To my mind, the cartoon is more of a depiction why you should avoid mutable state and non-local effects.
rix0r··on Why You Shouldn't Interrupt a Programmer
I actually made one about that :)

http://rix0rrr.tumblr.com/image/42866777562

rix0r··on In Lieu of Money, Toyota Donates Efficiency to New York Charity
I can't tell if this is sarcasm.

People are usually unaware of their own incompetence (I don't mean the term harshly), so I would expect hiring outside expertise seems would usually take a back seat to just buying supplies.

rix0r··on The Importance of Excel
Excel and similar tools are never going to go away. It's just got too much utility for that. The best thing we can do is provide spreadsheet users with the same quality of tools as we ourselves are used to.

I know a startup in the Netherlands working on just that, and it's a golden business opportunity with a large untapped market!

http://app.infotron.nl/

http://app.infotron.nl/Home/Blog

http://www.felienne.com/?cat=15

rix0r··on Error codes vs exceptions: critical code vs typical code
It's very good that you understand how to write exception-safe code (although makeAMess() should typically be OUTSIDE the try {} block), but he's clearly comparing the NAIVE cases, i.e., people not paying attention to errors in either idiom.
rix0r··on Show HN: A versioned filesystem inspired by Git
So on close() ?
rix0r··on Ubisoft "Uplay" DRM exposed as rootkit
You'd have to implement a TCP server listening on a privileged port (< 1024). Surely no browser would allow this.
Page 1 of 3Next →