HN user

rix0r

380 karma
Posts6
Comments89
View on HN

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?

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.

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.

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.

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!

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.

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.

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.

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?

RobustIRC 11 years ago

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?

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 :).

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.

3D Printing Store 12 years ago

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.

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!

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...

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 :(

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.

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.