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

SCons is listed as a meta build system here, but it is clearly an end-to-end build system. It seems to me SCons even fits all the requirements listed by the author. Plus, you program your SCons build using Python.

He also describes the dynamic discovery of header dependencies of Ninja as a hack. It is true that it is a special case to handle a specific type of dynamic dependencies. But the basic idea behind it (using the compiler's diagnostic as the source of truth) is sane and efficient. The alternative is to scan the sources using a custom parser, which is slower and more fragile.


> The alternative is to scan the sources using a custom parser, which is slower and more fragile.

More fragile, yes, but I dispute the "slower" aspect. waf does this very well. In C you don't need to parse the entire program structure, you just need to parse what the preprocessor does.

Also there's a difference between the complete set of header dependencies (notably #include statements within an #if or #ifdef) and a more sane but incomplete methodology for #include statements (don't do it within #if/#ifdef). Not sure whether this is a big enough difference to try to matter.


You can definitely use the actual compiler with a more general build system with dynamic dependencies.


Rust strings enforce utf-8 encoding, yes. However, it seems Windows (which uses utf-16) allows ill-formed UTF-16, in particular it tolerates unpaired surrogates.

You can read more here http://simonsapin.github.io/wtf-8/


I saw this "shortcut" used in code snippets, on online JS/CSS/HTML editors like JSFiddle. It did not even occur to me this was part of JS spec, I thought the editor was generating code behind my back!


> It did not even occur to me this was part of JS spec,

It has nothing to do with JS spec; it's part of the DOM as defined by the HTML spec.


One of my preferred video clip ever was filmed entirely during a parabolic flight:

OK Go, Upside Down & Inside Out https://youtu.be/LWGJA9i18Co


"How We Did It" video: https://www.youtube.com/watch?v=pnTqZ68fI7Q

"In the course of 21 flights, we had about 58 unscheduled regurgitations."


This is unbelievably cool. I can't even imagine how they prepared and rehearsed for that!


What an insane lot of fun that must have been — so much fun just to watch them having fun!


The weightless chain reminds me of the latter half of Seveneves.


Wow, that was wild.


These days RhodeCode has a Community edition which is licensed under AGPLv3.


There is a very clever and beautiful algorithm that only uses the xor operation. It's the Luby Transform code, the simplest implementation of a Fountain Code. A Fountain Code lets you transmit a file over an unreliable connection (packets can be unordered, and even lost), with just a unidirectional communication. And this can be done just by xoring a random number of blocks from the file over and over!

A very good explanation of the algorithm: http://blog.notdot.net/2012/01/Damn-Cool-Algorithms-Fountain...


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

Search: