skysight-inc/HackerNews huggingface dataset:
Node is popular because the initial learning curve is so easy, but I think it's a bit deceiving. There's a considerable step up from writing a basic node app and building a full "real world" app.

When you first start out, you don't realize that flow control is going to be an issue, you don't realize that you're likely going to need to figure out how to do stream processing. Those aren't especially difficult to learn, but it's a delayed learning curve. You don't know that you'll need them until you run into a dead end. There are libraries/modules that help with that now, but it's not trivial to figure out which is needed (at least not for someone just getting started).

Node is an interesting tool, and I think it solves some issues elegantly. I think some people use it for projects it's not suited for, but that happens with every language/framework/tool.
Well that law is a good theoretical instrument.
But aside from some computations which have been deliberately designed to be impossible to parallize, it seems to me that Amdahls assumes that there is some constant part of the program that just can't be parallized. I disagree with that, and I think Erlang offers the best counterargument-- just because some part has to be done on one node (or thread) doesn't mean that the computer can't do other work at the same time.

Sure if your mental model of computation is do this, then that, and then do these two things in parrallel and then do these other things in parallel then gather all the results, this would suggest you have a problem under Amdahls law. If your mental model is a set of independent nodes sending messages to each other then when you run into a bottleneck, you spawn a few more of the most commonly used nodes. Suddenly there is no part of the program which has to be run sequentially while the rest of the world waits.
Overall I would have to say no.
Much of the code (or more specifically the design/architecture of that code) that I wrote X years ago is horrible. At least I feel good in the sense that I have made a measured improvement in that department so it is not really what I dislike.

The problem is with doing corporate programming where you end up working on projects which you basically know are bad ideas from day 1. The amount of code I have written which has ended up being unused or underused is staggering.

Plus whenever policy on something changes I end up having to rewrite a bunch of stuff just to accommodate some sort of arbitrary change which I will then end up changing back some months down the line.

There is also the issue of having to work with other developers who don't really understand things like thread safety or O(n) vs O(n^2) or even how to use basic features in a DBMS.
Yes but how much of this problem is a spatial limit and how much is a product of other physical limitations?

You might be able to reduce critical paths using memristors and 3d circuits but I imagine there are other fundamental issues.
Oregon movers guide
If you are preparing for a move, then you know there are plenty of things that must be done before moving day. Getting ready for the Oregon movers to arrive at your home is no simple task. From the very moment that you learn you will be moving, there will be activity around your home.
Irony: "Sound will be bigger than video...If you can find the time to _watch_ it, do that and then let's discuss his arguments" (emphasis mine)

Why do we have to have video of everything from programming tutorials to "guy walking around a stage talking"?
> you are writing javascript, which is a pretty shitty language in which to develop apps these days.

Woah. I do both Python and JS, and guess what - there are a fair number of people who hate Python's significant whitespace. And to them, it's also a "hacky" language (with all kinds of __foo__ stuff). So, shitty-ness is in the eyes of the beholder.

> It's for fad chasers who have no idea how real servers manage to serve volume.

There are real world apps like Trello, which is on Node, and are scaling well. Get your facts right, or stop trolling.
I tried to dig deeper to em-activerecord, but it really was a better idea to build a very simple orm layer with specific sql queries instead of a more complex solution.

This problem is noted by the developers of em-activerecord and em-synchrony a several months ago already. There seems to be no progress, which might lead to a harder problem or that people are not using these libraries in bigger services.

But my point was, that Node.js seems to be much much more finished product compared to EventMachine for example. With EM you have to live without most of the Rails and for example testing the EM code with unit tests is not so nice job to do...

What I liked the most with EM are the Ruby fibers. The best solution for hiding the callbacks and writing nice and readable code by far. Too bad the fibers are a bit of a ghetto still, like somebody said earlier.
World’s tiniest steam engine using lasers instead of coal
I thought that this is what aids are for, congressmen hire young hopefully smart ideologically compatible aides who reasearch topics and write good summaries explaining the issues involved.
Yeah, don't do this. Your co-workers will rapidly come to fear you touching their code if you keep rewriting it all the time.

Try and pick up their 'style' if there's a consistent one and code like them. The way they name their variables, etc. If not it'll just take time. The more you touch particular parts of the code base, the more familiar you'll get with it. The more you work with someone else's style, the more you'll be able to parse it.
Although not a book about becoming a VC or angel investor, Venture Deals by Brad Feld and Jason Mendelson of TechStars and Foundry Group does cover a lot about investments and common things you should understand (which is something useful to know if you're looking to get into the business).

Link: http://www.amazon.com/Venture-Deals-Smarter-Lawyer-Capitalis...

Although again this isn't a book on the subject, here is a blog post talking about it: http://www.askthevc.com/wp/archives/2007/01/how-to-become-a-...

Also: http://www.quora.com/How-do-you-become-a-venture-capitalist?...
What you've described has been available for a while in Haskell[1]. These tiny, parallelizable units of computation are called "sparks", and are spawned off as easily as "par x y".

[1]: http://www.haskell.org/ghc/docs/7.0.3/html/users_guide/lang-...
hm, what if, let's say, someone came and started doing so-called miracles -raising people from the dead and such. If you witnessed first-hand those miracles in a way that left no room to doubt their validity (i.e., they were done in a controlled environment) and you were completely certain they could not be justified by current scientific understanding, wouldn't it be likely to take the leap and consider his claims plausible (provided, at least, they had internal consistency)?

If so, then one would only need to demonstrate a sufficiently impressive failure of current scientific understanding to account for some events that would appear to be caused by his actions, in order to push what would be considered a plausible religion.
No it won't. EOM
I'm the guy who did Patternify, in case you have any questions/feedback.
Wow. What are you so frightened of? It's obvious from your post that you have invested a great deal of time in python and you are terrified that Node is going to take away your livelihood. That is not going to happen. Python is here to stay, just as Javascript is. Both will continue to be improved over time, but there is no reason to freak out and lash out at other people. Relax.

And I'd like to see the results of your study where you have proven that "most people inexperienced enough to choose node are inexperienced enough to never need to scale". You should publish such a bombshell study.

But in truth, your fear is causing you to make nasty attacks and, well, just make shit up. Come on, just admit it, Sneak.
Not so sure, people are used to buying allot of things without needing to use their voices.
When amazon launched I doubt that the fact people couldn't specify which books they wanted to buy via voice control was a major hurdle.

I think the next generation will view buying most things via some text or graphics based menu as nothing unusual at all.
Yes. Afterwards, I learned more about standards and specifications (including taking on a weird fetish for lurking on the mailing lists where people actively are working on them), and realized that my attempts were flawed by premise. ;P

Seriously, POSIX is /not/ able to provide for you the ability to have a single program always work on every system: they tried really hard, but the world isn't perfect. They were (and are) attempting to unify and control something really complex, and they made remarkable progress given how many people they were trying to bring together who already had existing incompatible implementations.

In this case, they carefully made clear that this behavior was unspecified. That does not mean that they failed or that their specification was broken. In fact, I'd argue the opposite: if they had required implementations to do something in specific, the specification would be broken as it would not have described reality. You can't just claim that the implementations of your standard that people are actively trying to code against don't exist or are incorrect.

Honestly, though, to take a more direct appraisal of your question, the real epiphany for me came when someone clubbed me over the head with the difference between "portable" and "ported", and then demonstrated that all of the people that had come before me whose work I most admired had concentrated on making "portable" code as opposed to "ported" code: the most amazing code I've ever seen is the code that has managed to easily be adapted to changing environments as it had the simplest design and most powerful abstractions from the underlying systems, often as a direct result of attempting to embrace so many unrelated platforms.

Which then leads to a "better" question: have you ever tried to write code that could easily be ported between multiple operating systems, whether they be any of the numerous implementations of Unix (old or new, BSD or System V, largely compliant or downright buggy), Windows (using native APIs, not compatibility wrappers), or Mac OS (9, not X)?

If not, I recommend trying it, as that is what "portability" really is: once you experience it for your own code, it is difficult to take projects that insist on only working on a single homogeneous set of environments seriously anymore.
Why is one loop slower than 2 in C?
I havent developed in php in years, but here is my tale on it from my current point of view.

Of this whole article the one thing that jumped out at me was "broken and ignored tests". Being an open source developer myself, I greatly value the tests in every open source project. Nevermind the fact that this is PHP which warrants the use of tests even further because of the various points the author makes.

I hope that going forward the maintainers of the PHP core ensure that every bug fix has a passing unit test along with it. That would at least keep the dam holding back the flood intact.
So I tried this on my friends while we were all waiting in line for a movie.

I tried it on one friend first and she glaced at it and immediately thought it was spam. Then I sent it to her BF who thought it was weird but also assumed it was spam. Both were annoyed when I told them I had sent it for giving a service their phone #. The couple is young and fairly tech savvy.

Also, the message-success screen was too wide for the iPhone and would not zoom out properly.

Perhaps this should be done by email? The big problem with the phone is that you provide them with no context at all about the site.
Haskell for the Evil Genius
Another background pattern generator at http://www.patterncooler.com/

It has a built in pattern editor, I think it uses some svg madness. It's very impressive.
Understanding Human From Inside
I still think that your definition of beneficial and deleterious is defined post-hoc as "survives/does not survive long enough to reach the stable state."

In my example earlier regarding extinct bird species on New Zealand, were there ever any beneficial mutations? After all, the genes no longer reproduce.

My point is that there is no stable state, so it's better to have a shorter-term definition of "beneficial" and "deleterious" based on relative reproduction fitness compared to others in the species population over a short time frame.

Additionally, beneficial and neutral mutations do not always spread to 100% of the species population. A Y-linked trait won't spread without a male lineage.
Simply have a text menu which could be translated into all major languages

My understanding is the cash registers at a lot of fast food chains currently use pictures/icons rather than text (and a lot of cashiers can't do simple math for making change if the machine doesn't calculate it for them or there was an error or you would like to change something after the drawer is open). I don't see why this wouldn't work for ordering, and no need to translate into "all major languages".
From that video allot of it seems focused on using human tools to take food (such as toasters, forks etc).

It would probably be better to replace the single robot with things like a toaster robot and a lifting robot etc.
NASA Mars Rover Finds Mineral Vein Deposited By Water
On any site where there is a voting mechanism, you're going to have a certain amount of groupthink. And likewise, on nearly every such site (especially HN), complaining about being down voted is often like throwing gasoline on a fire.

There has been discussion about how to improve the site, sometimes from PG himself, sometimes from others. It isn't perfect, but in comparing the signal-to-noise ratio of HN to some of those other sites, I find that HN shines. Do you have any specific ideas on how to improve things here?
Seems like the world is full of super-talented people these days...
Not recommended. Matrix multiplication is really slow, even with Incanter. I doubt you'll get very far with data analysis without multiplying a few matrices so avoid.
Django (and Rails)(and their ORM) are easy solutions, but they are solutions that complect and therefore are not simple.
I said don't catch signals, not don't use them. See signalfd() et. al.

Though I'm curious why you're wanting to trying to interrupt those syscalls. In particular, why are you waiting on a process that you don't know is already dead? That's what SIGCHLD is for. And the only case I can think of for a blocking open() is a network/fuse mounted file. In which case the filesystem will surely eventually return an error (and if it doesn't no amount of voodoo in your application logic is going to correct the bugs in the underlying system).
looking at the spreadsheet, "shiny newness" seems to be "velocity"; it has the highest weight of all (twice the average).

i can only begin to imagine the conversations a year down the line:

- how did you decide this?

- we used a spreadsheet. science!

- so you weighted against the asynchronous approach that confused your developers earlier?

- actually, we put most weight on it being an exciting new technology.

- oh.

https://docs.google.com/spreadsheet/ccc?key=0AvBGESHWxhk2dHJ...
I'm not going to argue too much between JS and Python.

But whitespace as debate topic over corner cases in JS language? really?

And also Trello is just launched and suddenly it scales off miles away? really?
I want to scale my app on modern, multi-core computers. I know, I'll write everything so that it all runs in a single thread!

This is the same fallacy that gets repeated every time node is mentioned. If you're scaling up past a single machine you have to figure out how to share state between multiple machines anyway, so you may as well run a process per core. Then you have a single way to share state, rather than one way between cores and another between machines.

So unless you're writing a desktop app that needs to scale up but only to all of the cores of a single machine, you're sometimes better off simplifying the state-sharing logic.
Yeah. This can be a serious issue, for the record. It is difficult for me to come up with an experience that has made me quite as angry as calling urllib.urlopen().read() in a highly-contended program (Apache2 mpm_worker) and getting an EINTR exception bubbled all the way up to the top... I mean, what did they expect I do: retry the entire HTTP fetch? ;P

I finally switched to mpm_event, which caused me to no longer get signals constantly, but until then I was seriously running a patched copy of Python to work around this issue; an issue, by the way, which was reported at the beginning of 2007, and only fixed midway through 2010. :(

http://bugs.python.org/issue1628205

The general idea, however, is that if you are using a low-level primitive, one that nigh unto maps directly to a system call (as opposed to urlopen ;P), then you actually "want" (supposedly) EINTR to not be handled for you, as it might be your intention to use it to do something valuable (just as you might from a C program).
I do wonder about transparent persistence & versioning - bring on the unlimited undo, independent of editor processes. This would require a better interface for navigating the history than undo/redo or git log. Time Machine is an exploration in this direction.

"Save" can tag a state as interesting.

But please don't conflate "cd" and "update" - I rarely cd (emacs), but I really don't want to grab partial changes from other branches just because I'm working in a directory. Notification that a file has been changed in other commits would be fine, but "a directory" is a poor heuristic for unit-of-change.
Single threaded, but small enough processes that multiple processes in node makes up for it. http://nodejs.org/docs/latest/api/child_processes.html

build a process pool and queue jobs to background processes, it's the same arch, you'd use if you had threads so what's your point?
> Fun fact: electrons in an metallic wire under a potential difference move only in the order of mm/s.

Your link says otherwise, when you read down into the comments...

Basically, only a few atoms are able to "conduct" an electron in a wire... Mostly the ones near the surface.

And in turn, the true speed of the electrons traveling throught a wire in DC is in the m/s range, not mm/s.
Daniel Kahneman has a nice TED talk about the distinction between experienced and remembered happiness:

http://www.ted.com/talks/daniel_kahneman_the_riddle_of_exper...

It's probably not a very good idea to always put experienced happiness above remembered happiness, though.
Yup, shitty-ness is in the eye of the beholder. I wish that every time a discussion of syntax came up, we'd be as quick to make reference to Wadler's law as we are to make reference to Godwin, when Nazi's are brought into the picture.

http://www.haskell.org/haskellwiki/Wadlers_Law

Arguing syntax is more often then not pretty absurd, unless you are arguing how the syntax actually changes semantics (like with S-expressions and overloaded parens).
clicky link - http://www.lstack.com
The Visible Apps of the Free Market
I'm in Groningen. Same name on hacker buddy.
Awesome, but please highlight matching parenthesis.
The actual number for Java is a little bit skewed probably. You're only using one maven central repository (which is already big enough). But there are other repositories as well such as RedHat's (JBoss, Hibernate, etc). SpringSource's (Spring frameworks, grails probably, and everything under SpringSource umbrella).

And also keep in mind that scripting languages have higher number largely because people use them for writing scripts/command-line as well. And if they insist to use Java for scripting well then... they deserve to be punished by walking up and down the stairs 20x per library per decision.
I like everything up to and including this part:

"I believe that the recent financial and economic crisis was of great importance and in its ultimate essence it was actually a very edifying signal to the contemporary world."

I'm glad he prefaces the next paragraph with "Most":

"Most economists relied directly or indirectly on the idea that the world, including human conduct, is more or less understandable, scientifically describable and hence predictable. Market economics and its entire legal framework counted on our knowing who man is and what aims he pursues, what was the logic behind the actions of banks or firms, what the shareholding public does and what one may expect from some particular individual or community."

Because I know that the Austrians (most hard-core free market types) don't fit into the above.

"And all of a sudden none of that applied. Irrationality leered at us from all the stock-exchange screens. And even the most fundamentalist economists, who – having intimate access to the truth - were convinced with unshakeable assurance that the invisible hand of the market knew what it was doing, had suddenly to admit that they had been taken by surprise."

The invisible hand of the market did know it was doing. It was correcting an unsustainable boom. Were sovereign debt crises the fault of falling prices and fluctuations in stocks, or because governments spent more than they took in? Was the housing boom in the US a result of the market going crazy for no reason? (hint: take a look at the CRA, low interest rates, fannie and freddie to figure out that the answer is no)

The "visible hand" was what screwed up. This includes: governments and coordination of activities between central bankers/globalists to explicitly run the course of the world on their fiat money regimes.
Negative margin as used in pavpanchekha's example centers the box also in browsers that do not support margin:auto. It's not complex if you know why it's done that way.
Nor should it. semver is just about versions. npm does know about tests with scripts.test in package.json and there are some projects in the works to run tests automatically from npm like CPANTS but it's still early.
The source of all love, truth and beauty is the human mind's interaction with the actual world around it. Conciousness arises from the particular way matter is arranged in the brain, and it ceases to exist when the brain does.

I agree that love, truth and beauty are not simply reducible to matter alone. But that does not mean they have a mystical or otherworldly basis either: invoking supernatural explanations to explain software is obviously foolish, but trying to explain software in terms of atoms gets you nowhere.

This is why I reject both supernatural/mystical/religious and materialist positions. The earlier is conceptually flawed because it rejects or denigrates the physical world (at least in part), and the latter is just as flawed because it rejects the conceptual framework necessary to fully understand phenomena outside of the special sciences. Both camps claim that love, morality, etc. do not have much (if anything) to do with reason and reality.
Those micro-sequential portions are right now lumped into one huge 'can't fix', to be able to exploit parallism at that level would make huge speedups possible.

After all, Amdahl's law is 'bad' when you're looking at a 20% segment that you can't improve, but as you get closer to 100% the pay-offs of even small optimizations becomes larger and larger.
"It's obvious from your post that you have invested a great deal of time in python and you are terrified that Node is going to take away your livelihood."

No it's not. You're just making one hell of an assumption.