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

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.


This is an excellent point and goal.

I've always thought that one of the better things we could do is to make programming not specialized; e.g. Excel-as-a-programming-language has arguably done more to bring programming to the masses than any other "real" language, and perhaps THAT's the goal.


I'm sorry, but you are building on a false premise. If you goal is to lure children unmotivated to learn programming you'd better be distributing sweets. Or (if you ask a Far Eastern, or Eastern European mom) threaten those brats with punishments. Replacing "for" for "voor" is not even a barrier removal as much as you seem to believe. Because "for" in programming has a separate meaning, and you'll spent the same amount of time explaining how it works whether it "for", or "voor". Except that programming-for can be useful for farther studies, and programming-voor is much less so. I answered here in a longer comment if you are interested:

https://news.ycombinator.com/item?id=42840778


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.


Yes, the illustration is incorrect, and does not match the code's evict function, which only moves the hand after marking the current object "unvisited".

From the initial state, with the hand pointing to A(visited), when the request for H comes in, A is marked unvisited before moving the hand.

When the hand is pointing to D(visited) and the request for I comes in, it should mark D unvisited before moving the hand. This "feels wrong" because D had just barely been marked visited, but it is an implication of the SIEVE algorithm.

It's generally a red flag when a "better, simpler" algorithm is explained with a faulty illustration, suggesting the author overlooked or misunderstood the implications of the algorithm.


Thanks for pointing out. We have updated the animation.


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.


In our mono repo at work, we have a few hundred devs in there daily working just fine. Linters check that there are no relative paths allowed (so you can’t rely on directory structure) and no absolute paths either. If you want to load a file in the tree, you must use a “blessed” constant or function to get the base path of your current code or some other code.

TBF, if you have centralized dependencies or your dependency on another module affects your dependencies, you are probably doing it wrong. APIs between parts should be well defined and not require the entire dependency runtime to be loaded to interact with it.


pnpm definitely doesn’t do that hoisting (unless you specifically ask it to).

It’s nice to suddenly see 10 missing explicit dependencies simply by virtue of running ‘pnpm install’ instead of ‘npm install’.


Shouldn't

   sock.close()
imply

   sock.shutdown()
? Isn't it pointless to call both?



You're 100% right... In this case the shutdown is called with RDWR... so the author could simply call close!


Is there any case where a shutdown() right before a close() makes a difference?


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.


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!


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

Why approach 10+ slides as "a single page"?

If you consider them as 10 web pages, the back button makes sense to go back one page. Same for the left button, given the "presentation" use case.

And if they were actually designed as webpages, with html links taking you to slide2.html, slide3.html etc., that's exactly what you would get.

So if anything, whether this is a SPA or not, this is more in tune with how the internet works, and how it was designed to work.


This way a person can link to a particular page.


You CAN link to a particular page. Here, page 14.

http://kupershmidt.org/pg/10_Things_I_Hate_About_PostgreSQL/...


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


That is very cool! When you end up doing reads, do you compute all the pending writes along the path from root to leaf, and then run queries on the projection?


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.


Is it a problem in practice to use reference counting for an "immutable data structures" ? Obviously it's not 100% immutable as the counters are updated. But if it's done with a thread safe reference counter the data structures is usable like a pure immutable data structure and doesn't need an additional garbage collector.


Oh, yeah, I missed that bit of context. Oops. OP's comment makes much more sense now...


Well, why would it be? That's internal.

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


I don't work at Amazon anymore so I thought maybe they had open-sourced it


Yes, a guy told us that Amazon has an internal data format called ION. We googled for it, but didn't find it, so we assumed Amazon wants to keep it internal.


Not that you are under any obligation to care, but this will now be very annoying for Amazon employees.

"Oh, you need to call that service using Ion, not Json. No, the other Ion..."


Not to mention if they try to use it internally, then might end up with package name conflicts..


Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: