Admit It, Microsoft: You Suck at the Web - <AUTHOR> http://gigaom.com/2010/01/30/admit-it-microsoft-you-suck-at-the-web/

<comment><USER2> Just because you suck at something doesn't mean you should automatically give up. I think it's to Microsoft's credit that they're continuing to go after search. And they're making progress with Bing, albeit very slowly. I don't see anyone else attacking Google in search.

<comment><USER3> For quality search results theres also still <http://www.ask.com> and <http://www.alltheweb.com> . I wonder why we hear so little about those.

<comment><USER4> On ask.com I have to scroll the page to even reach the first organic result after the block of sponsored results. If you use it on a regular basis, don't you get tired of doing that?

</comment></comment></comment><comment><USER5> Bit of a baity article insofar as MS _can't_ "admit" they suck at the web and it would be suicide if they gave up on it.

I have a question regarding Bing, though. A while back, someone here made a suggestion that struck me as brilliant: that Bing provide an option to exclude web pages with Adsense ads on them from search results. This would get rid of untold jungles of webspam and deprive Google of revenue at the same time. Of course it would also exclude many legitimate pages, but webspam has turned into such a horrible problem that at this point I just don't care (especially if the filter were an option I could turn on and off). If MS did this, I would use Bing regularly. I can't think of any other reason to say that.

My question is: what besides accusations of anti-competitive behavior (which strike me as rather weak in this case, MS being far from the monopolist in search) would prevent MS from trying this?

<comment><USER6> I think too much of the web has Adsense on it for that to be a good idea.

<comment><USER5> Yes, but pages with Adsense ads on them are of poorer average quality (I'm guessing) because there is so much spam. Google have an obvious conflict of interest preventing them from doing much about this. That conflict of interest is just about my only real grievance with Google; I'm otherwise a happy Google user with no incentive to switch. Why wouldn't MS exploit this? The suggestion isn't that they suppress Adsense pages altogether, just provide an option to filter them out.

</comment></comment></comment><comment><USER7> > Mabye it's time the company sold off its online division to a company that > is just that – like Yahoo.

I don't think Microsoft could find a buyer for its online division.

</comment><comment><USER8> According to the graph in the article they actually made profit in 2004 and 2005 and only a small loss in 06..

I'll admit some of the web products suck (hotmail?) but not bing, they haven't been able to profit from it. I guess currently they are after marketshare rather than profits. Think of it like a startup burning through some initial VC money to get customers except that they have a lot of money to burn!

Disclaimer: They pay my bills, but am not really a fanboy just not anti- microsoft.

<comment><USER9> Hotmail is the second most popular e-mail service on the web, second only to Yahoo! Mail.

<comment><USER8> Popularity of a product is not a true sign of "not sucking" :P

</comment></comment></comment><comment><USER10> Ok, but who, other than Google, does actually make a lot of money on the web? Yahoo is struggling and most of what they offer is generic crap monetizing their old brand.

I have no idea whether Facebook makes any money. It can't be easy judging by their desperate attempts to trick users into doing things that are bad for them.

Twitter should make tons of money considering their service is trivial (I know it's not trivial to operate at that scale) and their mindshare huge. But how much money do they make?

Content creators like journalists, authors or musicians find it very difficult to make money as well.

Amazon does make money, but they are a retailer, not a web company I would say.

In my view, it's an open question whether the ad funded web is a viable business model for a lot of companies or just a niche in which very very few big players make all the money.

</comment><comment><USER11> You could make the same argument about almost everything Google's done except for search/advertising/youtube.

<comment><USER12> Hmm ? Gmail, Docs, News, Reader

Successfully bought and developed

Analytics, Blogger, Google Earth, Picasa etc

<comment><USER2> Add Docs to the "bought" list -- that was an acquisition too (of Writely).

</comment></comment></comment><comment><USER3> Microsoft always seems to need one or two attempts before they make a really good product. Win95 -> WinME -> WinXP. Zune -> Zune2. Vista -> 7\. They may not be as agile as Google, but a lot of smart people work at MS. I hope they succeed with good search. Google needs some competition.

Having said that: Bing sucks b __*s in Germany.

<comment><USER13> Pretty much everyone I met at Microsoft was very smart. But at least within my division, the available energy was never utilized very effectively. I always compared it to a muscle car, sure that V8 has a lot of power, but boy that car can't handle for anything.

With that said, you just can't apply blanket statements to the company. "Microsoft isn't good at the web" just doesn't really mean anything. The Bing team is for all intents and purposes, a completely different company from the IE team, from the Xbox and Zune teams from DevDiv... How a given team at MS does largely depends on how effective its management is. Some teams have really effective managers, PMs, and developers that can execute. Others don't. There is very little (almost none) energy, process or direction that gets applied across the entire company.

<comment><USER10> "[...] the available energy was never utilized very effectively"

Doesn't that apply to all big corporations to some degree? I think it's a tradeoff between using each individual's potential and utilizing economies of scale. The latter requires coordination of many people, which reduces the leeway for all individuals involved.

Corporate culture is certainly important, but no corporate culture can completely overcome the limitations imposed by utilizing size. At least that's what the ad-hoc scientist in my head says, you know, the one that never reveals any sources ;-)

</comment></comment></comment><comment><USER14> <http://en.wikipedia.org/wiki/Schadenfreude> ?

<comment><USER15> I can't help but wonder if we could derive a whole new term specified to Microsoft.

</comment></comment><comment><USER16> "Does Microsoft not realize that all the spoils of the mobile web are going to the companies that control the front-end interface — that is, the big mobile OS players like Android and iPhone and not the fringe players like Windows Mobile?"

Sounds like what folks said about desktops in the late 90s. History tells us that the device/PC ends up simply being a way to access the web. Sure, there are always some intensive apps that require the local cpu, but those are rarely for the mass market.

</comment><comment><USER17> Why does everyone forget about Messenger? With about the same number of users as Facebook, it's hardly a failure.

<comment><USER6> Does messenger actually make Microsoft any money?

I have an MSN Messenger account but I never use their client for it. I've always used 3rd party applications.

</comment></comment><comment><USER18> You know what also sucks at the web? Blog posts with a pointless blurry 330 kilobyte PNG at the top.

</comment><comment><USER19> Not the only thing I would say that they "suck at".</comment>


Don't use assembly unless you're an expert - <AUTHOR> http://quetzalcoatal.blogspot.co.uk/2014/04/if-you-want-fast-code-dont-use-assembly.html?m=1 <comment><USER2> I'd rather say "don't use Intel x86 assembly unless you are measuring very, very carefully". First, few architectures have so many weird traps and interactions as x86 does. Second, most of these things become visible once you start measuring (although you have to be very careful when measuring performance, as it is an art in itself).

The x86 these days is effectively a poor-man's VLIW machine: you have a number of units with out-of-order execution. This means that you can look at your instruction stream as a stream of VLIW instructions for all of the CPUs units. The performance of your code might depend not just on the exact number of instructions, their execution times, their latencies, but also on the interdependencies between your instructions and scheduling constraints. Getting that right is a nightmare, and even if you do get it right on your chip, there are at least several major x86 architectures in use, each one with its own peculiarities.

As a counterexample, I recently wrote some ARM (Thumb-2, for the Cortex-M4) code. It wasn't very difficult, and the code I wrote was _much_ better than what gcc could produce.

<comment><USER3> A random thought just crossed my mind -- how about a genetic algorithm that experiments with all these options and evolves towards the best performance?

Run speed is objective and measurable, which is desirable for a fitness criterion.

Somehow, you'd have to specify which instructions can be moved around and which can't -- or maybe not, if you could also assess whether the program executed "successfully."

I don't really see it as practical, but it might be fun. Might uncover optimizations that no one has seen before.

<comment><USER4> It's not a genetic algorithm, but FFTW's planning system actually does perform experiments to optimize for a particular machine's hardware.

<comment><USER5> Genetic algorithms are just a particular kind of stochastic hill-climbing graph-search. (EDIT: It's actually a general graph, not a tree.)

</comment></comment></comment></comment><comment><USER6> Writing SSE assembly (not intrinsics) by hand can sometimes give you over a 10x speedup in an inner loop of a computationally expensive problem, like CPU bone animation of vertices.

And while it's convenient to use intrinsics to generate SSE (intrinsics look like ordinary C functions and save you from having to write actual assembly), it's impossible for them to _always_ be as efficient as a clever programmer. I'm pretty sure that generating perfectly efficient SSE from SSE intrinsics is an NP-complete problem. So a clever programmer will always be able to boost performance more than a compiler.

That said, the two biggest arguments against assembly are:

(a) performance matters much less in the modern day,

(b) you kill your portability by writing inline assembly. If you expect your code to run on Windows (and gamedevs expect their code to run on Windows, though this may be changing) you'll need to maintain two parallel, #ifdef'd hand written bits of assembly that do exactly the same thing: one for GCC, and one for MSVC. It's a Royal Pain.

Those are two damning arguments, and it's why SSE assembly crafting has become something of a lost art.

EDIT: I originally led with "It's disappointing that the author makes no mention of SSE assembly," but this was confusing due to the distinction between assembly vs intrinsics. They did briefly mention SSE intrinsics, but not that hand-written SSE assembly is sometimes superior for raw performance. Also, getting a strikethrough modifier on HN for edits would be wonderful.

<comment><USER7> > I'm pretty sure that generating perfectly efficient SSE from SSE intrinsics > is an NP-complete problem. So a clever programmer will always be able to > boost performance more than a compiler.

Being NP-complete doesn't really have anything to do with whether humans can solve a given problem better than computers or not. It just means that it (probably) takes exponential time to solve.

I believe there is no distinction whatsoever, in principle, between computers and humans (our brains are just big, complicated calculators). As such, it's only a matter of time before computers beat humans in compilation at every point, just like the situation in chess. People claimed for years that humans will always have some edge in chess, because they "understand" the game, or have "ingenuity", or something like that. Nobody claims that anymore, since computers absolutely massacre humans. And similarly to chess, computers have been getting better and better at a very fast rate, while humans have stagnated more-or-less.

As an aside, computer chess got quite boring for me, due to the homogeneity of current programs, but it did help to show me the limitations in current programming languages and compilers. So I'd like to do my part to put humans in their place in another field. My still very-much-not-even-close-to-finished contribution, that I haven't found much time to work on in a while, the Mutagen programming language: [https://github.com/zwegner/mutagen](https://github.com/zwegner/mutagen)

<comment><USER8> Often, the compiler cannot produce better code than humans because of the failings/features of the language being used. Even c/c++ has many gotchas, for example the assembly code might have to constantly dereference a pointer because the source code (in this case) does not guarantee that the data won't have been changed by others. Meanwhile, a programmer who hand-crafts the same assembly language might know that this won't happen, so they can keep the value in a register.

In theory, some of these shortcomings could be solved by a well-written aggressive whole-program optimiser that could deduce data usage & aliasing, but in practice they don't/can't, few people use WPO and it fails when you use library code.

In short, compilers probably don't have enough info to beat a skilled assembly programmer.

<comment><USER7> Absolutely--I see this as a failure of current programming languages and compiler technology, though, and not a fundamental barrier. We should aim to take away all the impediments to the compiler's job, like the aliasing problem you point out. Then, we can just sit back and let the blinding speed and precision of computers take over, trying all the different possible compilations of a given program.

This is the main goal of the Mutagen language. See the link above for a bunch of hand-waving about compiler technology that might exist some day :)

<comment><USER9> It's quite doable in C nowadays. Just use the restrict keyword which pretty much just gives the compiler a permission to assume that nothing aliases the pointer in question.

It's not that hard to write loops in C that vectorize well. And you get the benefit that those same loops also vectorize for ARM neon.

<comment><USER8> While the restrict keyword helps several cases, it's not a catch-all. Even worse, it is very easy to get wrong, leading to near-undetectable errors in your code at some future date.

Worse, it's almost impossible to retrofit into large existing code. Even turning on strict aliasing in the compiler might cause hideous problems. The compiler can't always warn you about these.

The 'holy grail' is still for a compiler that can infer this stuff from the code. With existing C code, that requires at least WPO and some very deep reasoning about pointer usage. The other approach is a different programming language that makes data/variable access control more explicit.

<comment><USER9> I agree that retrofitting existing codebase is a pain.

Turning on strict aliasing is a mixed bag as programs that break when it's on are explicitly breaking the C spec. But one must make amends to support badly written legacy code. The official way to handle the aliasing across types is to use unions.

In my opinion the default behaviour in C should have been what restrict does. And a keyword to allow alias and yet another to allow aliasing across types, because unions are bit tedious to use. As an example float *aliased foo. And warnings when you cast normal pointer into aliased one or cast across types if the pointer is not aliased across types.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> Don't follow this editorialized title's advice if you'd actually like to become an expert [1].

The actual article is quite good and makes a very valid point. Don't jump to machine code whenever things get a bit slow, chances are you're introducing more problems than you're fixing, and it's very difficult to outdo the compiler. Generally you should start by looking for macro-optimizations instead. But to add my own advice, it's still an _incredibly_ worthwhile thing to learn, even if you don't expect to ever run into the types of scenarios which will benefit from optimization at this level.

Why? Programming languages do everything they can to abstract away the machine, and abstractions do leak [1]. Even mostly air-tight abstractions over machine code [2]. Because of this, learning the entire "stack" makes debugging higher-level code much easier. When you can understand what's happening with every level right down to the metal, what were once ridiculous off-the-wall problems become recognizable and much easier to reason about.

So _do_ use machine code if you'd like to _become_ an expert. Just use it on your own time, and don't use it under duress.

1: Presently reads "Don't use assembly unless you're an expert."

2: [http://www.joelonsoftware.com/articles/LeakyAbstractions.htm...](http://www.joelonsoftware.com/articles/LeakyAbstractions.html)

3: [http://stackoverflow.com/questions/11227809/why-is- processin...](http://stackoverflow.com/questions/11227809/why-is-processing-a- sorted-array-faster-than-an-unsorted-array)

<comment><USER11> > The title of this post was obviously meant to be an attention-grabber

It's becoming very common to have a catchy title and then a disclaimer for it in the article.

<comment><USER10> A trend which is both tempting and annoying. I have a feeling that this is causing some people to develop an analogue to "advertisement blindness" where people tend to ignore titles which fit into certain models. I think the filter gets tripped for me any time people use overly emotional modifier words, the word "this," or the phrase "what happens next." This title didn't fit any of those, however.

</comment></comment></comment><comment><USER12> _and then runs the function 1000 more times, measuring each run independently and reporting the average runtime at the end._

When it comes to measuring the performance of code like this, averaging run times is not the way to do it.

To remove the noise caused by context switching, just run the code many times and report the single fastest run you get. This should be the value closest to running the code on an OS without preemption (i.e. you want to measure how fast the code runs on the bare metal without interruption).

Even Facebook's Folly library [0] changed their benchmarking code from using statistics to just providing the fastest run. As the comments say:

        // Current state of the art: get the minimum. After some
        // experimentation, it seems taking the minimum is the best.

        return *min_element(begin, end);

This is explained in the docs [1]:

 _Benchmark timings are not a regular random variable that fluctuates around an average. Instead, the real time we 're looking for is one to which there's a variety of additive noise (i.e. there is no noise that could actually shorten the benchmark time below its real value). In theory, taking an infinite amount of samples and keeping the minimum is the actual time that needs measuring._

[0]: [https://github.com/facebook/folly/blob/master/folly/Benchmar...](https://github.com/facebook/folly/blob/master/folly/Benchmark.cpp#L142)

[1]: [https://github.com/facebook/folly/blob/master/folly/docs/Ben...](https://github.com/facebook/folly/blob/master/folly/docs/Benchmark.md#a-look- under-the-hood)

</comment><comment><USER13> Sort of a tangent, but you know what I'd love to see? A compiler that could emit comments with the code it generates. They wouldn't have to be brilliant, just whenever it decides to optimize some bit it emits a generic "why". It'd be even cooler if it was a website that hooked up to something like GCC, and you could feed it some C code and get a hypothetical "what would the compiler do here" sort of deal.

I realize that's kind of crazy, but it'd be an awesome teaching and debugging tool. I don't look at disassembly a lot, but when I do it's not always particularly obvious why the compiler generated a thing in a certain way.

<comment><USER14> It's not exactly what you're asking for, but gcc with -fdump-rtl, -fdump-tree, and -fopt-info can show you quite a lot of what's going on.

</comment></comment><comment><USER15> Don't use assembly, period.

I can make things go more than 10 times faster in assembly. My main job is as manager/entrepreneur but I could read-write assembly as a result of my experience and I help-guide other people easily.

In the real world 10 times faster is nothing. You should spend the time understanding the problem in a mathematical way, and VERY IMPORTANT, documenting your work using images, text, voice and video.

This way you could make things go 100, 1000, 10000 times faster as most algorithms could be indexed, ordered in some way as to make it extremely fast, like doing log() operations instead of n squared or cubic or to the elevated to four or five(when you manage several dimensions like 3D with time or video analysis or medical tomography).

More important than that, 10 years from now it will continue working in new devices or OSs and will be something that supports the company instead of being a debt burden because the original developer is not here now(or you don't have the slightest idea of what you did so far away in the past and did not document).

The main problem is that people is not self aware that they forget things. And your brilliant idea that makes everything go 3 times faster is nuts if it makes everything way harder to understand, or if it could be forgotten even by you.

<comment><USER2> That's not good advice. Whether you need to use assembly depends on the particular situation at hand.

Here's a practical example: as a result of redesigning the algorithm to use fixed-point and implementing it in assembly, I got it to run 600x faster than the initial C version. Big O complexity was the same, the difference was in the constant factor. But the constant factor matters! In my case, it meant that you could get your computation done in half a day instead of a year.

Yes, it took me 3 weeks to get the algorithm implemented, instead of a single day, but even so — it was definitely worth it. And in many cases even a 3-fold improvement in speed is important, if you have long-running calculations.

<comment><USER16> That bit about fixed point is exremely interesting.. I found your blog post about the project you're (I think) referring to ([http://jan.rychter.com/enblog/2009/12/4/x86-assembly- encount...](http://jan.rychter.com/enblog/2009/12/4/x86-assembly- encounter.html)), but it doesn't mention the fixed point part.

Not knowing too much about processor architecture, I don't understand how fixed point can be much faster, since floating point ops are implemented in hardware.. I presume you used integer operations on your fixed point values, but could you explain a bit why it ends up being much faster than floating point?

<comment><USER2> It all depends on how precise your fixed point values need to be. If you can squeeze them into 8 bits (I could), you can use SSE 128-bit registers to operate on 16 values at a time. It gets even better with AVX, although that wasn't available to me at the time.

So the speedup is not just from going to fixed point, but from managing to use the vector instructions.

</comment></comment></comment></comment><comment><USER17> Just another form of Knuth's "Premature optimization is the root of all evil (or at least most of it) in programming."

Or my personal variant Most optimizations will end up in things being slower.

<comment><USER18> You forgot the whole quote. "Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%."

Knuth is saying that in most cases optimizing prematurely is not worth it, which is right, but just as critical is the part saying that there are parts where pays off to consider optimization early. Writing your logging function in assembly likely fits into the 97%. Writing your N-queens solver, if you're aiming for all-out speed, likely fits into the 3%.

Of course not thinking about optimization at all will lead you down a path where your software is unoptimizable, or at least very difficult to optimize. Ask anyone who's had to optimize a video game that manages all objects in a scene graph, where reorganizing a cache hostile tangled web of pointers to base classes is a herculean feat.

</comment></comment><comment><USER19> Don't try to learn things, unless you want small minded people to get upset.

</comment><comment><USER20> If no one did it, there would be no experts.

</comment><comment><USER21> I upvoted this post (not enough IMO) when it was in the "new" page and glad that it made it to the front page, many good posts dont.

A persistent peeve of mine is this vapid commentary that would invariably show up in programming language related discussions

       "what's the point of this language, if one needs speed, it will be written in C".

Some would replace "C" with "assembly" in that sentence. The point is that if a piece of code is doing something non-trivial, it is extremely hard to have confidence in the correctness of handwritten code that is written entirely at a low level. Smart compilers apply drastic, and sometimes unintuitive transformation to optimize code. To do the same manually and using low levels of abstractions would require a toure de force to pull off correctly. This simply is not going to happen often. Its precisely for speed that we need a high-level, yet optimization friendly, language so that we can delegate the job of optimizing the code to the compiler. Compilers are much better at applying large correctness preserving transformations than we humans are. The "write it in assembly" works in the small, not in the large.

<comment><USER2> Whenever I write anything non-trivial in assembly, I always go through a series of progressively lower-level implementations in C. The last ones emulate SSE instructions with for loops and correspond very closely to the assembly code. It isn't possible for me to write a serious chunk of assembly 'just like that'.

<comment><USER21> I did not bookmark it, but there was this fun blog post about writing a number crunching HW assignment in Scheme (much against contemporary wisdom). But It ended up other implementations in C. The trick was to write it in CPS and keep hand transforming it iteratively till it was efficient assembly in a different syntax. I would still argue that that you are really writing in a high level language/abstraction and the rest is mostly tedious transliteration with special attention to keep the FPUs busy, efficient memory loading and register allocation.

<comment><USER22> Perhaps you're referring to this: [http://www.cs.ucla.edu/~palsberg/course/purdue/cs565/F96/sob...](http://www.cs.ucla.edu/~palsberg/course/purdue/cs565/F96/sobel.ps)

<comment><USER21> Yepp! thats the one

</comment></comment></comment></comment></comment><comment><USER23> How can one become an expert without using assembly on a daily basis?

</comment><comment><USER24> And in order to become an expert...you'll need to use assembly whilst not quite there yet. [Hopefully not for mission critical code though]

</comment><comment><USER25> No big deal. Just become an expert then. It is not that hard. Just have a look at Ian Piumarta's work [1,2]. Future systems will probably facilitate programming on every level from the bare metal to the highest abstraction. I.e. no strict boundaries between the implementation of the application and the implementation of the compiler/interpreter.

[1] [http://piumarta.com/software/maru/](http://piumarta.com/software/maru/)

[2] [http://www.youtube.com/watch?v=cn7kTPbW6QQ](http://www.youtube.com/watch?v=cn7kTPbW6QQ)

EDIT: There are other reasons to write machine code than performance.

</comment><comment><USER26> I feel like people are assuming that the only reason you write assembly is for performance. I try to stay as far away from it as possible, but sometimes there is no other way (barring finding a library that itself has written assembly). Some examples: finding a backtrace, getting the CPUID, or calling a function of arbitrary number of arguments (for some reflection like capabilities: imagine a function like "void foo(void (* func)(), ArrayList * args, char * arg_types)" and getting foo to call func with args passed as arguments, not an array). If you can, you should try and find a library to do those tasks, but the libraries themselves have no choice but to write assembly as you just cannot do those things in plain C.

<comment><USER10> Absent of other details, I think in most cases this is an argument to go higher-level, not lower-level.

</comment></comment><comment><USER27> It's not the application but a man's need to be an animal again. Frankly, writing Ember.js apps via CoffeeScript which has roughly 11 layers of abstraction feels like a metrosexual man eating a processed food with organic marketing on a IKEA furniture (CoffeeScript -> Compiled Javascript -> Ember.js -> jQuery -> JavaScript -> Chrome V8 Engine -> WebKit Layout Engine -> GTK+/Cocoa/Chrome Windows View -> Linux/OS X/Win32 display API -> C/C++ -> Assembly).

There was a time when a man can eat raw meat (machine code) but he can start again today by eating bloody beef.

<comment><USER28> Unless the man grows, feeds and slaughters the cow himself, that "bloody beef" is just as removed from animalistic experience as the organic food.

It's ridiculous to pretend that eating hormone-accelerated mass-processed meat is closer to nature. Sure, it's oozing blood, but that blood is tainted by an enormous industrial profit machine.

<comment><USER29> My boss knows assembly.

My boss also hunts animals with a bow and arrow.

Does he get a pass?

<comment><USER10> Only if he made the bow and arrows himself from sticks, fibre, and shale he found in the woods, _and_ if he also purified/doped/etched his own silicon wafers.

<comment><USER30> That Seattle kid who fought an octopus on its turf, bare handed, probably counts though.

</comment></comment></comment></comment></comment><comment><USER31> This has been true for a long time, even when the x86 architecture was much simpler. I worked on an SDK for an 80386-based platform back in '97, and it was unusual for me to do better than the Watcom C compiler.

</comment><comment><USER32> I don't really understand how the author is managing to contradict the previous HN discussion.

[https://news.ycombinator.com/item?id=7301913](https://news.ycombinator.com/item?id=7301913)

<comment><USER33> Well the previous discussion was centered around the same assembly implementation as this one. The only difference is, in the previous discussion the fastest C/C++ implementation was 1.1x slower than the assembly. In this current discussion, the author managed to write a C++ implementation that runs faster than the assembly version.

<comment><USER32> Okay, but as far as I can tell he changed the algorithm (recursive c++, pop/push to global array, etc) ... doesn't that kind of negate the argument unless you change it in the assembly version as well?

<comment><USER33> True enough. That reinforces a couple of other points that tend to become apparent from these sorts of comparisons and benchmarks:

1) High level languages are easier to refactor and maintain than lower level languages (changing the algorithm in the assembly's a big job).

2) For performance, the algorithm used is almost always more important than the language you choose to implement it in.

Both of those points back up the author's assertion, it's a shame he didn't specifically discuss them.

I used to hand-code assembly (or generate it, eg "compiled bitmaps") back in the 8086 days. For many situations there were easy gains to be had that couldn't be achieved so easily in high level languages. These days I wouldn't dream of attempting it other than perhaps for vector code in an inner loop. I'd far rather spend the time profiling and optimising the algorithms and data structures because that's where the big gains are going to be. To go ahead and implement something in assembly when the algorithm clearly isn't yet optimal is perhaps fun but also kinda insane.

</comment></comment></comment></comment><comment><USER34> Percentages are for suckers. If you're not optimizing your code with actual use cases then you're just wasting your time. Id say 90 percent of code any one would ever write would not provide any benefit if it "ran faster".

No one will ever know or care that a 5ms operation only takes 2ms because of how "savvy" you are. No one knows or cares what language you used. Its just a program.

If you can produce a working program in a high level language but chose to use a low level one.... whyy?

<comment><USER35> Depends on the context.

If your operation is relaying a 20ms audio packet from one side of a call to another, 50µs to 20µs is the difference between handling 200 concurrent calls and handling 500 (per CPU, minus non-linear scaling with increasing CPUs and other overhead). Unlike the cost of hardware, which every customer would have to buy separately, the development cost can be spread out over many customers.

If $50,000 of developer effort can save 50 customers $1000 on hardware, you've already broken even in a sense.

</comment></comment><comment><USER36> This is nothing new; letting an optimizing compiler do the heavy lifting has been the general-case recommendation for a long time now.

But there are still circumstances where it's necessary to write assembly, particularly in things like real-time programming. Doesn't matter how good a job the compiler did on the overall program, if you can afford 16 cycles on an inner loop and the compiler spits out 24 then you've gotta hand-tune it.

<comment><USER30> I wish there was more ability to specify the paths I really care about being low latency (even at the expense of throughput) and the like. As it is, it's rare that I drop below C, but more common that my C winds up restructured for what it happens to do to the output code.

</comment></comment><comment><USER37> Even if you are an expert, consider whether the next person to maintain your code will be an expert. Assume they aren't and that they know where you live.

</comment><comment><USER38> Something the author doesn't mention is how intel tunes their architecture to be faster on code output by popular compilers. This means that it is likely that N generations of x86 from now, the C code will run even faster relative to the hand-written code.

</comment><comment><USER39> I would hope that asking people to stay away from assembly doesn't inhibit creating new experts in assembly through putting in the effort.

</comment><comment><USER5> And keep in mind, that on CISC processors, the average C statement works out to ~2.7 assembly language operations.

</comment><comment><USER40> I MISS THE Z80!!!!

Old folks only would even understand

</comment><comment><USER41> time to go dust off nasm and maybe an avr assembler.

assembly isn't just for speed ..its for fun too.

</comment><comment><USER42> Don't you need to be an expert to use ASM?

<comment><USER43> No. C and Assembly are not that far apart, using ASM requires knowing Assembly.

</comment></comment><comment><USER44> In other news ... don't use C#, PHP or any other language for the same reason.</comment>


What's up with popup ads? - <AUTHOR> http://www.straightdope.com/columns/read/2566/whats-up-with-popup-ads

<comment><USER2> Interesting in light of the (relatively) new penchant for pop up ads that don't create a new window. Can we expect those to go away, too?</comment>


What The Swedish Pirate Party Wants With Patents, Trademarks, And Copyright - <AUTHOR> http://falkvinge.net/2012/10/13/what-the-swedish-pirate-party-wants-with-patents-trademarks-and-copyright/ <comment><USER2> Please explain how content that is inherently very expensive to create (such as big movies and games) would be funded under the proposed system.

Please take into account the following:

1\. The studies usually cited saying that piracy does not reduce the income of content creators are studies of the _current_ _system_ , where there are legal barriers to the kind of commercial support of file sharing your proposal advocates. They are irrelevant to the question of what would happen under the proposed system.

2\. Sites like TPB are completely legal under the proposal. It seems likely that the legalization of commercialization of file sharing (only the actual file sharing itself must be non-commercial under the proposal) will cause many other competitors to TPB to appear. Why wouldn't Google get in on it-- integrate sharing of commercial movies with YouTube, for instance.

I would expect this to make file sharing become the main way most people get their content. Even those who prefer physical media and aren't technologically sophisticated enough to deal with burning discs will likely find someone serving them commercially.

E.g., I'd expect something like Red Box to appear that instead of dispensing pressed DVDs for rental downloads the movie the customer wants via file sharing, burns it to a DVD-R, and dispenses the disc. I have no doubt the operator of such a daevice could structure things in such a way that the customer is not paying for the shared file itself but rather just for the costs and service of retrieving the file and burning it, and so would be commercial support of file sharing, not commercial file sharing.

<comment><USER3> > Please explain how content that is inherently very expensive to create (such > as big movies and games) would be funded under the proposed system.

Kickstarter-like model? This has been shown to work.

Donate and get your name in the credits, get included in the production process, get a vote, etc., or some other perks.

<comment><USER4> Kickstarter is also a pre-order system.

People who donate to kickstarter will do so at least partly to get a copy of whatever at a (possibly) reduced cost.

The costs of kickstarter pre-orders are also partly dictated by the market value of other similar products, $20 for an indie game or whatever.

Under this system that incentive goes away since there will be no personal advantage in making the lower end pledges especially since the perceived cost is now free.

I'm sure someone will jump on and say "but I will do it just to support the project!" , congratulations but you are probably in a minority.

</comment></comment></comment><comment><USER5> TBH, I think the appeal to "economic growth" is often the wrong argument and instead there should be a focus on maximizing benefit for the public and the individual.

Having lots of patents and stuff produces economic growth and jobs, just not for inventors, creators, manufacturers, distributors, retailers and salespeople. Instead it creates economic growth for lawyers, para-legals, judges, courts and patent trolls.

Recently it was reported that Apple and Google both spend more on intellectual property related activities than on research and development, and they spend a lot on research and development. This shows that there is economic growth, but it is not desirable economic growth the same way a disaster like Hurricane Katrina or Hurricane Andrew created after they destroy entire regions and contributed to those economies via recovery activities.

Instead the argument needs to focus on growth that is maximally beneficial for society at large. IP strong and IP weak regimes both produce economic growth, but in different vectors, but only a weak IP regime produces an economic environment where the availability and quality of the goods and services available improves while the price drops of those same goods and services drops. That is maximally beneficial.

<comment><USER6> > Recently it was reported that Apple and Google both spend more on > intellectual property related activities than on research and development, > and they spend a lot on research and development.

I hope this particular bit of FUD doesn't take off. The study that reported this accounted for e.g. the Motorola Mobility purchase as being a "intellectual property related activity." While IP was surely some part of the Motorola purchase, it also came with products, engineers, physical plant, etc. It's ridiculous to chalk up the $12 billion spent on the purchase to "intellectual property related activities" but that's exactly what the study did.

All the study says is that Apple/Google spend as much money buying technology as they do developing in house. Which is not news to anyone. Heck, many (most?) startups are driven by the prospect of an eventual exit in the form of an acquisition, and intellectual property is part of every such acquisition. Should you count all startups acquisitions as part of this supposedly undesirable Katrina-like expenditures on "intellectual property related activities?"

</comment></comment><comment><USER7> Patents act as a tariff against imports. So, if the US abolished patents, imports of products using US inventions could compete on an equal footing (perhaps winning, because of cheaper labour costs; perhaps not). For example, Foxconn could manufacture iPhones and sell them itself.

What happens when the supply of existing patents runs out? i.e. consider it globally, not nationally. I can only guess that people wanting to develop inventions for commercialization would try to keep them secret - and people wishing to invest in commercializing inventions would prefer those that can be protected (by keeping them secret). This, apparently, was the situation before patents.

But this is Sweden (not the USA), which I hazard is a net-importer of patented products, so Sweden doesn't gain from patents. In fact, the Netherlands did abolish patents, and Switzerland delayed enacting them - and that was _good_ for their economic development. I understand that they were compelled to, by powerful countries who _did_ benefit from patents. [http://en.wikipedia.org/wiki/Societal_views_on_patents#Histo...](http://en.wikipedia.org/wiki/Societal_views_on_patents#History)

It seems logical to me that patents and copyright encourage investment in inventive and creative work, by enabling the value of the work to be captured. As a researcher, I also feel that the work of inventors and artists _should_ be rewarded. But I agree the present system doesn't seem to be working very well.

</comment><comment><USER8> They sound like very reasonable proposals, that I would think most people with common sense with accept. I especially find interesting the proposal to use R&D for the pharmaceutical industry from the Government. I just don't know how practical that is. It would need serious commitment and serious investment from Governments to do that.

In countries where healthcare is also paid by the Government, that might work, but I doubt many of them would take on it eventually. I don't think any of this would be implemented in US in the short to medium term, though, as that kind of proposal would be immediately considered communist by half the country (especially if Fox News has anything to say about it).

I'm also not sure if I would let the Government be 100% responsible for the pharmaceutical R&D, but maybe it could use taxpayer money for some R&D anyway, and any drug that comes out of it, would be patent-free. Think of it as the open source Linux to Microsoft's Windows, or Firefox to IE. Companies would still be free to patent drugs and sell them for whatever they want, but the Government would be able to reverse engineer or create very similar alternatives that are patent-free, and much cheaper.

<comment><USER9> > _I especially find interesting the proposal to use R &D for the > pharmaceutical industry from the Government. I just don't know how practical > that is. It would need serious commitment and serious investment from > Governments to do that._

You're quite right in this analysis - especially with your followup about this being the most applicable where healthcare is also paid by the government.

In Europe, 83% of the pharma revenue - on average - comes from taxpayer money, mostly through drug subsidies. Yet, only 15% of their revenue total is used for R&D (and another 30% of the total is used for manufacturing), according to the pharma industry's own numbers.

So if we pay all of those 30 percent units for manufacturing from the tax coffers, another 15 percent units is needed to bring research on par. That takes us to 45 percent units - but we're paying for 83 percent units today. We can afford to double the research and still save a significant chunk of taxpayer money.

This doesn't even begin to take into account that 70% of today's new pharmaceuticals are so-called _copycat drugs_ with no other purpose than to circumvent another company's patent monopoly. If we assume that these resources will be spent researching new drugs instead, as nothing is patent- encumbered, we have tripled the research _just in forcing drugs to be generic_ , before taking actual increases or decreases in research funds into account.

The loser here is the pharma industry's _"marketing"_ account, which has been overly well-fed with taxpayer money.

Cheers, Rick

<comment><USER10> There's also the point to consider that much of the pharma industry's output is bogus: see Ben Goldacre's recent book _Bad Pharma_.

</comment></comment></comment><comment><USER11> The main problem with IP laws (and I exclude trademarks here because they have different properties) is that they discourage the use of content and ideas that have been created or invented. This is an unintended side effect of current system - the original aim was to reward and increase supply, rather than decrease demand.

So the Swedish Pirate Party are asking the wrong questions. They should be asking how can we continue to support innovators and inventors, even if they don't have the means to be producers, while not decreasing demand.

A good solution is to provide an alternative to the monopoly model with something more like a tax. A business can elect to pay a certain fixed percentage of their profits before IP costs, IP revenue, and tax to a pool of money which is distributed to creators / inventers. In exchange the business is exempt from IP laws (excl trademarks) as long as it only trades with individual consumers and similarly exempt businesses. Each participating business is legally required to declare what content / inventions they used to create their product / services, and the participating businesses that supplied them, or face penalties; copies of content or inventions made by anyone must be labelled with the reporting code. The pool of funds is distributed based on a formula taking into account the direct (used by business making profit) and indirect (i.e. used to create something in the supply chain of participating businesses) use of content / ideas that contributed to the profits.

Under this system, participating businesses would want to read and apply as many relevant patent documents as possible, and use as much outside content as possible, since they don't pay any more, meaning that there is much more reuse of ideas, but the creators of that content would still be rewarded.

</comment><comment><USER12> It seems a bit ridiculous to say you want to legalize _non-commercial_ file sharing and then specifically cite TPB, a website full of ads and affiliate shitware doing billions of pageviews a month.

It really just detracts from the better arguments made. Do you want to shorten copyright and reform patents, or do you want to legalize very commercial file sharing?

<comment><USER9> This isn't ridiculous at all. To use a parallel, you can commercially facilitate non-commercial _dating_ as much as you like, and many websites make a killing out of doing so. If they were to facilitate _commercial dating_ (prostitution), it would be a different matter, and that would be illegal in most places.

But as long as the main activity is legal, then of course it's also legal to commercially aid somebody in doing so. Entire industries are built on that fundamental logic.

Cheers, Rick

<comment><USER12> Are you claiming TPB is not commercial because the person sending the file is not charging the person receiving the file, in a relationship facilitated commercially by TPB?

<comment><USER9> TPB may or may not be commercial, and it doesn't matter in the slightest here, as they're aiding a _noncommercial and therefore legal_ sharing of knowledge and culture. Aiding that would always be legal under this proposal.

Somebody making money off of _aiding_ a legal noncommercial sharing doesn't make the original sharing commercial and illegal. Again, compare dating.

And if you can make money off of people wanting to share culture and knowledge, all the better for you.

<comment><USER12> By that argument there is basically nothing that qualifies as "commercial" file sharing because ultimately those bytes are moving for free whether it's P2P or a bootleg DVD transferring them to a DVD player.

 _Everyone_ benefits from patent reform, copyright reform, the cost of drugs being reduced, DRM being abolished etc. Why derail those arguments with "and legalize piracy!" when TPB etc's perhaps illicit business models are of no lasting consequence to anyone but the few whose pockets they line?

<comment><USER13> I think the argument is not so much "legalize piracy" as it is "decriminalize 30% of the society". In this case, it's obvious that the law sucks.

Also, it's pretty easy to judge when file-sharing is commercial - whenever it is done by a commercial entity, e.g. a for-profit radio station that would otherwise have to pay public-performance fees.

<comment><USER2> Falkvinge explicitly said above that it doesn't matter whether or not the entity is commercial.

<comment><USER9> No, I said that it doesn't matter whether an entity _aiding_ noncommercial filesharing is itself commercial (like The Pirate Bay might be; just having ads does not make an entity commercial).

The analogy with the postal service made earlier was actually quite apt.

Cheers, Rick

<comment><USER12> I'm increasingly curious what you consider commercial - there's an awful lot of businesses out there with the exact same monetization methods as TPB that are indisputably "commercial".

The line between "aiding file sharing" and "file sharing is their business model" is also very, very questionable. We all saw what happened to Mininova when they stopped "aiding".

<comment><USER14> Could you name a few so this discussion can make more sense?

TPB could easily run without ads. In my mind adding ads to something should generally not affect legality.

A guy who prints DVDs with movies on them and sells them on the street is a commercial pirate. A guy that takes DVDs someone else made and brings them to people is a courier. It's not a very complicated distinction.

<comment><USER12> You need examples of ad supported websites? Really?

The commercial nature of the site affects whether it falls under non- commercial file sharing the OP would like to see legalized of course, in which case it changes the argument from "legalize non-commercial file sharing" to "legalize commercial piracy".

<comment><USER14> Sorry, I guess I misunderstood that point. I thought you were saying something about the commercial nature extending to site uses, not just pointing out that there are commercial sites funded by ads. You're definitely right on that point.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> > A ban on DRM (digital restriction mechanisms), or at a bare minimum, making > it explicitly legal to break digital restriction mechanisms if needed for > any use that is itself legal.

I don't see how banning DRM entirely would ever be a good idea. Lots of code could be misconstrued as DRM, and there are a number of free speech concerns that remind me of bans on encryption up to certain key lengths. What about building DRM for research purposes, code analysis, etc? Why exactly would DRM need to be banned when it has always been so easy to work around?

<comment><USER16> I believe that the law should be either-or: either you can come to the courts to seek remedy for infractions of your copyrights _or_ you can pursue vigilante justice through DRM schemes. If a company drops a rootkit into your computer because you popped in a CD, well, then I think the courts should wash their hands of it if that company then insists that their extrajudicial measures failed.</comment></comment>


China paper carries Onion Kim Jong-un 'heart-throb' spoof - <AUTHOR> http://www.bbc.co.uk/news/world-asia-20518929 <comment><AUTHOR> Hilarious! Although amazing that it wasn't picked up on as a spoof...</comment>


AWS Launches Cross Region EC2 AMI Copy - <AUTHOR> http://aws.typepad.com/aws/2013/03/ec2-ami-copy-between-regions.html

<comment><USER2> This is one of those features that's so useful, I've been wondering why this wasn't already done years ago.

Great news.</comment>


App.net will be funded. - <AUTHOR>

Although App.net still needs to raise 10.6% of their goal and 51 hours doesn't sound like much time, it makes up 6.9% of the total time they've had to raise their goal.
You may have already heard from folks familiar with Kickstarter that contributions on campaigns like this one tend to spike at the beginning and end. As a result, there has been significant momentum building up just in the last couple of days.
Specifically, App.net has added approximately $45,000 in backing in just the last 12 hours. With only $53,000 left to raise, it's hard to see how they won't do it in the next 51 hours. <comment><USER2> I believe in App.net and I think many people too. It will make it there. :)

</comment><comment><USER3> I am totally excited about this. Go App.net!

</comment><comment><USER2> ... and it did it.</comment>


Who listens to scientists? Mostly just other scientists. - <AUTHOR> http://theincidentaleconomist.com/wordpress/who-listens-to-scientists/ <comment><USER2> In a delicious piece of irony[1], the paper that this post refers to appears to be behind a paywall, illustrating one of the causes of the problem. (Edit: since the post is erroring out, the link to the abstract is: <http://pus.sagepub.com/content/19/1/115>)

My field (computer science) and a few others at least don't have the problem of paywalls. Authors always make their works available; a few publishers have relaxed their copyright policies and others have an implicit promise not to sue. It's not ideal, but it's not too bad.

Public communication, however, remains quite bad. It is very unfortunate that in the current system, researchers have no incentive to communicate with the public or do anything except rack up publications and citations.

I write a blog about my research (<http://33bits.org>) and I've been pleasantly surprised by the level of public interest. In my ideal world, research grants would come with some strings attached to get scientists to fulfill some of their social responsibility.

In related news, if you're in the Bay Area there's an Open Science event next week with Michael Nielsen that I'm really excited about. [http://blogs.plos.org/everyone/2011/06/15/%E2%80%9Cwhy- the-n...](http://blogs.plos.org/everyone/2011/06/15/%E2%80%9Cwhy-the-net- doesnt-work-for-science-and-how-to-fix-it%E2%80%9D-a-talk-by-michael-nielsen- at-plos-san-francisco-hq-june-29th-at-6-pm/)

[1] Is it irony? The word is so overused I can't even tell anymore.

<comment><USER3> Paywalls for scientific papers burn me up.

The US government pays at least $50,000 in grant money for each paper, but it can't find $5 to make it available for the public in perpetuity, as does the arXiv.org preprint server.

(arXiv.org looks, on the surface, to be a success, but always been functioning on operating budgets that are meant for something else... It's existence has hung on a thread more than once It still struggles to find a sustainable funding model, despite the fact that it costs 1/200-1/1000 as much to make papers available on arXiv.org as does a peer reviewed paper)

Frankly it seems to be an insult to the taxpayer that we pay for research and can't read it/

<comment><USER4> Things are changing. Now all publicly funded research in the USA and UK must lead to open access publications. This does not mean that the actual final version of the paper will be available to everybody though: normally it's the unedited copy, the manuscript as it was submitted to the journal before publication.

This is definitely the case with all bio/medical research; isn't like this in computer science and other sciences too? Is the publishers lobby so powerful?

<comment><USER5> That may apply where you work, but it is _not_ universal. I work at NASA and almost all the papers we generate are (regrettably) published behind paywalls. And the consequences are far worse than having to fork over a few (thousands of) dollars to read them--our scientists are contractually bound NOT to discuss their research during the blackout period prior to publication. It's stifling to research and the community.

<comment><USER6> Out of curiosity, which journals are these? The NASA scientists I know of that work in astrophysics seem to publish in the normal journals and put their papers on arXiv like everyone else.

</comment></comment></comment></comment></comment><comment><USER7> There is a joke that goes: "On an average about a handful of people end up reading your thesis, and you hope your committee is among those few :-)"

The subject of scientific publishing is a very interesting topic. There are multiple issues at stake and I would be very happy if people point out to well written discourse on the following questions.

* The state of affairs of journals today, and the open journal movement. Why in the age of the internet, we're stuck in a relatively ancient publishing system.

* The gap between popular science and scientific research. This comic was very popular: <http://www.phdcomics.com/comics/archive.php?comicid=1174>

* Whether the onus on popularizing science lies on scientific researchers. In particular, does the public have to take more effort to understand science, or do the scientists have to take more effort to publish both for the community but also for public consumption. Do these skill sets overlap? Can there be scientific "popularizers" who are specialists at writing pop-sci that is accurate yet can be understood by a layperson.

<comment><USER8> Here's a crack:

* The state of affairs of journals today, and the open journal movement. Why in the age of the internet, we're stuck in a relatively ancient publishing system.*

If you're talking about "why do we have publishers?", then that is a question that you can search HN for, as we often have this discussion about IEEE/ACM. I'm strongly against _publishers_ but not the system of _publishing_ , because we need those peer-review systems.

* The gap between popular science and scientific research.*

There are multiple factors at work here.

1\. Often, researchers are working on something that _just can't be sold as popular science._ That's why we call them researchers. Particularly in Computer Science, a lot of what you could call "popular science" really means "shipping products." If it's cool enough, it's cool enough to sell it.

2\. Many, many universities are very poor at selling research. Exceedingly so. The schools you hear about all the time; MIT, Stanford, etc. are those which can afford big, able PR departments. These guys are also not interested in necessarily selling the facts. MIT are particularly guilty of this, often writing articles like "MIT researchers change the fundamentals of all AI" when its this little incremental step, that, while important, has not set the world on fire and comes with lots of caveats.

Popularizing science is not what researchers should be doing. There's this really terrible blame game that happens right now, where it's en vogue to blame scientists and just add more things to their job role. In a university, we're expecting them to: teach, find money for research, perform research, write papers and advise undergraduate/graduate students. Oh, and now they should be responsible for performing scientific outreach, otherwise they're all insular and elitist. That's why companies like Google and Microsoft are becoming so attractive, you get to _just do research_. That's what your trained for, that's what your career is.

If we want to worry about popularizing science and encouraging STEM takeup in young people and all this stuff that we keep hearing about, then you're going to have to _hire people to do it_. The NSF can start putting money in grants that are ring-fenced to funding a PR department that actually goes and does this stuff. Universities already take 50% out of all research grants anyway, putting them towards library fees and such. Expecting researchers to do it all is becoming more and more untenable.

</comment></comment><comment><USER9> I am a mathematician. My research concerns the distribution of discriminants of cubic fields. I doubt exceedingly that anyone without extensive training in math (other than my mom) would have any interest whatsoever in looking at my papers.

I have heard it complained that we scientists don't "talk to the general public" enough. I would _very much_ welcome specific suggestions for how to do this. I would cheerfully invest time and effort in this kind of thing if I felt like people would be interested.

<comment><USER10> If you were to start a blog where you provide links to your papers (when allowable) along with synopses for those of us with only an engineering-level math background, you might be pleasantly surprised at how much interest your work attracts--particularly on places like HN. Please let us know if you decide to do so, and I'll be sure to bookmark you.

<comment><USER11> If you have only an engineering-level math background, the blog will have to explain what a field is, what a cubic field is, and what a discriminant (of a field) is, in every post. And it will have to do it briefly enough that you stay interested, and accurately enough that what follows is meaningful. This sounds to me like an impossible task.

Mathematicians do have the advantage that all their papers are open-access. If you're interested in math, you can cruise on over to arXiv and read 60 abstracts an hour.

<comment><USER12> "[...]the blog will have to explain what a field is, what a cubic field is, and what a discriminant (of a field) is, in every post."

At most once. Links are what the internet is for:)

<comment><USER11> Moving the explanations out of the blog posts into a separate page or pages makes the problem harder, not easier, because it keeps you from omitting parts of the background that aren't necessary to understand the relevance of some particular result.

If you want links, here they are:

[http://en.wikipedia.org/wiki/Field_(mathematics)#Definition_...](http://en.wikipedia.org/wiki/Field_\(mathematics\)#Definition_and_illustration)

<http://en.wikipedia.org/wiki/Cubic_field>

[http://en.wikipedia.org/wiki/Discriminant_of_an_algebraic_nu...](http://en.wikipedia.org/wiki/Discriminant_of_an_algebraic_number_field)

The thing is, those articles probably aren't brief enough for many people to stay interested, and they probably _also_ don't go deep enough to make any particular one of impendia's results comprehensible. (And I'm also not sure if they're readable to people with only an engineering background in math.)

(In case you think I'm being snooty about engineers, I dropped out of college and have never published a theorem; instead, I have made my living writing software.)

<comment><USER12> Many people wouldn't stay interested; I'd say the vast majority wouldn't. But, after explaining those things to the extent that you thought was worthwhile, you ended up with 100 long term readers out of the x billion on the internet, I'd count that as a huge win, myself.

</comment></comment></comment></comment></comment></comment><comment><USER13> This is something that I'm trying to solve with a project of mine: <http://www.tiris.org>

For example, you can comment on this paper right here: <http://tiris.org/papers/15>

If you are a user you can then follow what goes on with the paper (new comments, tags, etc.), you can follow the user who submitted it, seeing as he is likely to have similar interests, you can follow the tags the paper is tagged with and so on.

It is dream for Tiris to be embeddable into various scientific sites (blogs, project pages, etc.), with a system similar to Disqus, but with a knack for science (for example, latex is supported with $$ math $$).

We're slowly but surely getting there, if there is anyone reading this who feels passionate about opening up scientific communication, drop me a note.

<comment><USER14> Awesome project, I've been thinking a lot about how to open up research and get more researchers to collaborate. I wanted to drop you a note to talk some more, but not sure how as HN doesn't have a PM system (right?).

Take a look at this project which is similar to yours (not mine btw): <http://annotatr.appspot.com/>

<comment><USER13> Awesome commenter is awesome! Thanks, there's still a lot that needs to be done but I'm getting there.

Annotatr looks somewhat similar yes. They too have some issues with getting to critical mass, but you have to start somewhere. I have to look into integrating more services into Tiris (pubget, citeulike, mendeley). I think the biggest difference will be when I implement the embeddable commenting system, which should enable easier access to Tiris.

About dropping me a note, hmm, yeah, that could be a bit difficult. Sorry about that. If you come to my site <http://www.juretriglav.si> \- there is an email link right at the bottom of that page. Sorry I have no better way.

Off-topic: How does HN usually solve this lack of PM issue?

<comment><USER15> _How does HN usually solve this lack of PM issue?_

Many people put their email in the About field of their profile. You can obfuscate it if you wish, or just trust your spam filters.

</comment></comment></comment></comment><comment><USER16> I'm somewhat confused why this is an issue. Who listens to anyone in a specific field? How many non-plumbers read up on issues that matter to plumbers? Most research publications are describing incremental advances in highly technical fields. Why the hell would the public care about (to take an example from my J Neuroscience rss feed) seratonin reuptake transporter function in C Elegans? They won't. However, when that breakthrough comes that makes it relevant to curing cancer or whatever, they'll hear about it.

Reading some posts below, people seem to think that just because public money is being spent on "science", everyone should be able to understand it. My answers to that:

(1) Your money is being spent trying to find advances in technology/physics/medicine/whatever. We are hard at work doing so. We will let you know when something happens.

(2) It took Us (us = the researchers you're accusing of being insulting and callous towards the public) many, many years to understand what the hell we're doing. Your expectation that you will understand it without the necessary background is misinformed and frankly amusing. That being said, the popular press is there to do exactly that; contact your favorite media source and ask that they cover more advances in "science". They get paid to do this sort of work for you.

In re-reading this, it sounds pretty callous. I guess that's because I've become jaded by the constant "Why can't you explain this stuff easily! you must be a bad scientist! I'm going to write letters asking not to fund you!" The better question should be, why does the press not cover this stuff? Maybe they think (rightly so) that no one actually cares about it. Go ahead, ask to have our funding cut and spent on your medicaid bills; don't come whining to me when me and all my scientist friends have left to country to work in a more science-friendly environment.

<comment><USER17> "Your expectation that you will understand it without the necessary background is misinformed and frankly amusing. That being said, the popular press is there to do exactly that; contact your favorite media source and ask that they cover more advances in "science". They get paid to do this sort of work for you."

The problem is that the people assigned to cover science for the mainstream press generally don't understand what they are writing about and, I strongly suspect, because they operate under constant deadline pressure they never even read the scientific literature. They just interview the scientist who did the research and interview another scientist in the field for another perspective and report the most interesting "sound bites" from those two interviews along with a bunch of horribly naive (and often flatly wrong) conjectures about what it all means. You can't really blame them. They're journalists. Most of them majored in journalism, English literature, political science, or history in college and probably never took a science course above the 100-level at any time in their entire undergraduate program. What we need is more Richard Dawkinses, Michio Kakus, and Carl Sagans - academics who take on the task of explaining science to non-scientists. The way you get that is by creating the funding apparatus to make it happen. Academics are quite sensitive to the priorities of funding agencies - they rapidly become very interested in research topics for which funding exists. :) If funding exists for a professorship focused on enhancing the public understanding of science, there will inevitably be plenty of academics competing to fill that position.

<comment><USER16> I agree with this, but given that there's barely funding for research itself now, this task has fallen to nonprofits. Hopefully they can do a good job of it.

</comment></comment></comment><comment><USER18> There's of course also the point that, duh, heavily focused work is mostly read by peers. It's equivalent to saying HN is only read by software engineers/startup types, so it's insular.

Yes, it is. By design.

</comment><comment><USER19> I'm not sure a comparison to mass media is necessarily appropriate. It's probably more important for engineers and entrepreneurs to bring relevant scientific knowledge to the market than it is for scientific papers to be published in mass media.

But it would be nice if peer-reviewed scientific papers were easier to obtain and read.

</comment><comment><USER20> The problem here is documentation.

Consider: a field, from research to development to supporters and advocates is a series of concentric circles. The innermost is the smallest and most knowledgeable: cutting edge and long-standing researchers. The mid-circles are commercial developers. The outermost circle is largest and least knowledgeable: end users, advocates, etc.

The purpose of documentation in this model is to inform and educate the next circle out. The definition of documentation in this model is the process by which the next circle out is informed and educated.

Now the mid-circles are pretty good at documentation, but the inner circles, the researchers, are very, very bad at it. Institutionally bad. So bad, that the whole function of documentation to bridge the moat that has grown between researchers and developers is taken over by other groups where it is done vaguely well. Now in applied physics and mathematics, especially related to computation, you don't see much of that moat. Discoveries echo the world pretty rapidly: there are open communities and open publishing forums, and the interesting stuff is picked up pretty quickly - anyone out there who might want to develop in those areas has ample opportunity to learn about it and make the decision to participate. Think about memristors and quantum computing as good examples.

This is far from the case for the life sciences: the gulf there is huge and yawning, and there is no comparable open community large enough to close it (DIYbio and open biotech movements are still too small). That's one of the reasons I started Open Cures:

<https://www.opencures.org>

As I think there is a great deal to be done here to make biotech and the life sciences look much more like physics in their documentation - and here I mean documentation in the sense above, the propagation of information and learning from the circles of research to the circles of development.

<comment><USER16> What a terrible way to describe it!

> Now the mid-circles are pretty good at documentation, but the inner circles, > the researchers, are very, very bad at it. Institutionally bad. So bad, that > the whole function of documentation to bridge the moat that has grown > between researchers and developers is taken over by other groups where it is > done vaguely well.

Has it occurred to you that the problem is not that the groups are bad at it, but that you are too ill-informed to understand it? Sure, some are bad at "documentation" as you call it, but some (arguably more) are excellent. As a scientist, my job is to do research and advance the field. I will explain it as necessary to the very best of my ability to whoever cares. Please don't tell me that "I'm very, very bad at documenting" just because (1) you never asked me and (2) I haven't just done it by default, out of the goodness of my heart. Read my publications, read my (free) abstracts, read the summaries of my work available in numerous paid journals if you're that interested. But please don't insult me.

<comment><USER20> Your response, I think, well illustrates my point. If your output is abstracts, reviews, and papers then you are not documenting as I have narrowly defined it above - you are working on materials for your own circle.

<comment><USER16> (Doggone HN noprocrast settings...)

I think I'm realizing that the problem here is one of responsibility. To use your terminology, you are claiming that it is the responsibility of the researcher to document everything he (or she, whatever) does for every "circle", and I'm claiming to the contrary.

To that end, let me describe the firehose that is today's science publication. It's been two weeks since I last read through my science RSS feeds, which contain selected publications from about ten journals. In that time, there are around 1000 entries. That's just a small selection of the field... there are many more journals I'm choosing to ignore simply so that my sips from the firehose aren't completely overwhelming.

I will suggest that having every researcher document every finding for every circle is a tremendous waste of time, as the vast majority of that "documentation" would never be read, as no one in the outer circles has interest in it, even if it was written in an accessible manner. In that mindset, I don't think it's the responsibility of the researcher to document his work for the public. Furthermore, given the huge amount of research put out each week (like my RSS feed above shows), just surveying all of it regularly to find what's interesting to the "outer circles" and then writing up in appropriate terminology is close to a full-time job.

I know that in neuroscience, the field I'm currently working, we have the Society for Neuroscience (<http://www.sfn.org/>) which puts in a lot of work to make the general findings accessible to the public. They do a yeoman's job, I think, and if you browse their site you'll find a lot of very recent science written for the "outer circles", as you call them. If you're interested in a field, find that field's SfN and check out what they wrote; don't look to the experts themselves for regular updates.

</comment></comment></comment></comment><comment><USER21> What really torques me off about open access is how totally complicit the libraries are. The bigger their budgets, the more powerful they are. So they have no incentive to provide papers to the researchers who actually need them.

</comment><comment><USER22> And this is bad why?

</comment><comment><USER23> Scientists tend to publish papers that aren't yet peer-reviewed and are only available in publications that cost a lot of money to obtain.

Why am I not surprised that most of those papers aren't brought to the attention of the public at large? In fact, I'm not only surprised, I'm pleased. Many of them will be making outlandish claims that can't be backed up through peer review. The public would jump on them like they were fact, though, since a 'scientist' published it.

Scientific discovers that are news-worthy DO get published to the public.

This is really not an issue.

<comment><USER24> _Scientific discovers that are news-worthy DO get published to the public._

Where by "the public" you mean "people who are willing to pay the Nature Publications Group $32 per article, or subscribe to _Nature_ for a few hundred bucks per year _per journal_ , or who happen to routinely take the time to travel to a library which subscribes to the _Nature_ journals."

In other words, you mean: Other scientists. Which is what this study apparently tries to back up with actual statistics.

Scientific publications aren't secret, exactly. They're just orders of magnitude more obscure than everything else in our society. I can sit in a chair and read entire encyclopedias of trivia, download entire albums and movies, I can buy the complete works of various popular novelists and read them on my Kindle for ten bucks apiece, I can barely _avoid_ learning about the various memes of the day, yet I can't read the average scientific article unless I'm paying tuition, working as a postdoc, physically sitting in MIT's library, or willing to pay the cost of a hardcover book.

<comment><USER25> There are a few tricks to obtaining science publications without paying the journals.

1) Publications are increasingly easy to find via services such as google scholar, pubmed, and citeseer. Often times, these services will link to freely downloadable versions of the paper. However, should this not be the case, you still have two options.

2) Go to the author's website. It's very common for academics to put preprints or other free versions of their papers on their personal websites. You may need to check all the authors on the paper, but a good rule of thumb is to check the first listed author and the last listed author.

3) If the above isn't available and you really want to get access to the paper, you can always try emailing the authors and asking for a copy. As with personal copies on websites, giving out copies to those who ask is allowed by most journals.

4) As you point out, you can physically go to a library and use a public terminal. Most large cities have universities. Save up the hard to find references and make a weekly or monthly trip to the local university library.

In the far past, you used to have to go down into the "stacks" at a university and dig out a physical copy of a paper you wanted. These stacks were not always accessible to the public and did not always contain the journal you wanted. In comparison, academic material today is more accessible to the average member of the public than it has ever been.

<comment><USER26> There is a small issue with your tricks and that is that the end user...you or I, knows about the paper in the first place and are trying to gain access to it.

The broader issue as I see it, is that for a layperson or a hobbyist in a scientific field it is near impossible to find papers that you did not hear about through the media or by being in proximity to the authors.

If you do happen upon them, it's usually by pure dumb luck and happenstance. More centralized and open locations for discourse are required.

How about a ycombinator for scientific research?

o.

<comment><USER25> There is definitely a need for services that collect, categorize, and disseminate new scientific information in an easy to understand fashion. These types of services would be valuable both to the public and to researchers.

The trouble is that services needs to be domain specific and it is likely a full time job to continually mine the journals for new content. User submissions are an excellent idea, but probably not sufficient on their own. For example, there is already HN-like site for biomed: <http://hackermed.com/hot>

There is opportunity here, especially in the areas like health and fitness which are more popular to the public.</comment></comment></comment></comment></comment>


Ask HN: How do you handle the fear of complexity? - <AUTHOR> I'm working as a software developer and sometimes I feel a certain anxiety when starting a new complex task.
I would like to get rid of this unpleasant feeling of initial frustration because I feel it's holding me back.
Sometimes I see software developers working on complex tasks without being afraid to start them and they somehow ignore the frustration of working with complex tasks.
I was wondering if there is someone here who had same issue and how they managed to get rid of it.
Thanks! <comment><USER2> In the end, every complex task is made up by a lot of simple ones.

Always do research before starting on the actual development. It will clear up a lot of things on the very beginning. Helps you create milestones (goals), which can give you confidence when you reach them. The more you practice this, the easier it will be to see the details in new projects in the future. Helps you create an analytical mindset.

I think everyone suffers from this, from time to time. Only practice can help you overcome this.

I had the same feeling a couple of months ago with a brand new project, with lots of tech I haven't used before. But we (another dev and myself) sat down and spent a month with research. We wrote numerous documents on every aspect of the project. Spent a week in a meeting room shelling out the design and how things will fit together. It was a priceless experience.

Highly recommend the R&D approach. We are engineers and it seems so many times we fail to do the R(esearch) part of our work. We just jump right in and drown in the middle of the complexity we face.

<comment><USER2> Another example I should mention here to prove the great value of Research.

I had a project years ago, was working alone on it. Took months to complete, but the whole application was a small disaster. Lots of small bugs and UX issues.

Made up my mind, sat down, rewrote the whole thing in two weeks. Was 70% better then the first version.

The lesson is that I could have spent a month or two with Research and create a clear goal, instead of writing an application from scratch with no clear goals, guidelines and milestones.

Could have saved a couple of months and lots of headaches. But I was fresh Dev back then and this is not taught in schools. Or at least it wasn't when I was there.

</comment></comment><comment><USER3> I think the first thing is to realize that this is normal. Whenever you start something that is outside of your comfort zone, you will most likely feel discomfort. So, trying to get rid of something that is normal won't really work :) However, what you can do is change the way you look at this discomfort. Ask yourself where it is coming from. Are you maybe afraid that you will fail? Once you see what causes the anxiety, you can start seeing it for what it is: just a feeling that comes and goes.

</comment><comment><USER4> I follow Polya's advice, and find a part of the problem that I know how to solve. Divide and conquer, basically. I think the panic comes from overload, from trying to visualize too many parameters. I've been doing this for 30 years, but I still get the same experience every time I step out of my comfort-zone.</comment>


Apple does not care about your living room - <AUTHOR> http://www.zdnet.com/apple-does-not-care-about-your-living-room-7000017187/

<comment><USER2> I couldn't disagree more. While Apple may be foolish to release a full TV with the screen, opening up apps (read: games) with the new third-party controller support in iOS7 only stands to grab them easy market share and grow the living room iTunes purchase portal. It's easy money with little RnD. My guess? They're just waiting until shipping an A5X with 64GB flash storage in a hockey puck is possible at $99.</comment>


U.S. nuclear sniffer plane has left the UK heading towards Norway and Barents Sea - <AUTHOR> https://theaviationist.com/2017/02/22/u-s-wc-135-nuclear-sniffer-airplane-has-left-the-uk-heading-towards-norway-and-the-barents-sea/ <comment><AUTHOR> Relevant discussion from a few days ago:

[https://news.ycombinator.com/item?id=13683110](https://news.ycombinator.com/item?id=13683110)</comment>


Mercedes-Benz caused an outcry in China by quoting the Dalai Lama - <AUTHOR> https://www.nytimes.com/2018/02/06/business/mercedes-daimler-dalai-lama-china.html <comment><USER2> Know your audience. No matter how well intended or innocuous, if you inadvertently tread on a sensitive subject as perceived by the audience,you will get trampled.

<comment><USER3> "The audience" was a western social media site blocked in China. Are we truly going to censor ourselves on our own platforms that the offended can't even reach?

I get that the answer is a capitalistic 'yes!', and I don't particularly have any love for the feudal Tibetan llamas but we do need to recognize what is happening here.

<comment><USER2> I don't think it's that different from H&M having some kid wearing "Cutest Monkey" and not being aware some people might find offense. I call my sisters kids monkeys on occasion, no one thinks it's offensive, but some people will, regardless of intent. There are many other cases equally tone deaf in other countries too. You just gotta be aware that you potentially have a worldwide audience and there could be a group who takes offense and sometimes you have to make a hard decision regardless when two opposing opinions have valid points.

</comment></comment></comment><comment><USER4> The government in China is great at manufacturing these sorts of astroturf campaigns. What else would you expect from a fascist regime?</comment>


Show HN: PriceCompare.bike – Find cheap bike parts online - <AUTHOR> http://pricecompare.bike/?utm_source=hn <comment><AUTHOR> Hi all. I am a software engineer who also loves cycling. Being a cyclist I buy most of my gear online and I do it often. As an online shopper for cycling components I was having hard time finding the cheapest online store that sells a part that I want. As a side project of mine I've decided to build an automated price comparison website that would focus on cycling products specifically so I have developed [http://pricecompare.bike](http://pricecompare.bike).

The way it works is that it fetches products from several big online vendors offers easy way to search and browse these products and find the cheapest price for any given product across various online retailers. At the moment I have around 15 online retailers that I index daily with close to 200000 products in my database.

The unique features is that it manages to group the same product from different vendors under on the same product page (thus allowing you to select the cheapest online retailer for that product, if avaliable) and has a decent search engine. The grouping part is not perfect yet and I'm working on it implementing different algorithms to improve it.

I have built it completely from scratch. It took me about a year to get it to its current stage. It's developed using Ruby-on-Rails, with Postgres and Elasticsearch as databases. I'm currently working on marketing it and getting some feedback from users. I also some cool features that I'm developing such as a price history feature that will be able to tell you if the current product price is good and if you should buy it or not based on previous price history (like on flight reservation websites).

Let me know if you have any questions of feedback.

Thanks.

<comment><USER2> Several things I searched for were cheaper at bike24.com

<comment><AUTHOR> Hi

Thanks for the feedback.

Unfortunately bike24 don't provide product feeds for 3rd party use so I am not indexing them yet.

Currently the following online shops are indexed: Chain Reaction Cycles, Evans Cycles, Tweeks Cycle, Hargroves Cycles, Merlin Cycles, Wiggle Online Cycle Shop, ProBikeKit, CycleStore, Performance Bike, RibbleCycles, AW Cycles, Cycle Surgery, Velo Champion, OutdoorGear UK

</comment></comment></comment><comment><USER3> Finally a good alternative to qbike, works good too</comment>


In Praise of Karel Capek - <AUTHOR> https://www.nytimes.com/2018/08/16/books/in-praise-of-karel-capek.html <comment><USER3> "War with the Newts" is simply amazing.

I read this book as part of a University course in "Russian & Eastern European Sci-Fi literature", and reading this book was just about the only time I wasn't slightly bitter about having signed up for the course. Like the NYT article states, it paints a vivid picture of how our very human, not-quite- good-but-just-OK intentions frequently lead to utter catastrophe, despite their seeming relatively innocuous at the onset.

It's a damn fun read, too.

<comment><USER4> > reading [ _War With the Newts_ ] was just about the only time I wasn't > slightly bitter about having signed up for the [Eastern European SF] course.

Really? _War With the Newts_ is great, but there's a lot of other great Russian / Eastern European science fiction. What else did you read in the course?

</comment></comment><comment><USER5> "The Absolute at Large" is a delight.

 _"It's nothing to do with poisonous gases," Marek yelled at him. "It's something a thousand times worse. Listen carefully to what I tell you, Bondy, this is something beyond human understanding, there's not the slightest trick or dishonesty about it. This carburator of mine can burn matter completely, it burns it so perfectly that there's not even a speck of dust left behind; or I suppose you'd say it smashes matter, pulverises it, takes it apart electron by electron, it consumes it, grinds it - I don't know what to call it. In short, it consumes it entirely. You've no idea just what enormous power there is in atoms. With half a hundredweight of coal in its boiler a liner could sail all the way round the world, keep the lights on in all of Prague, power a huge factory, whatever you like; with a piece of coal the size of a walnut you could heat and cook for a whole family. And it needn't even be coal at all; you can fuel my carburator with the first pebble or handful of dust you come across by your front door. Every crumb of matter contains more energy within it than the biggest steam boiler; it simply has to be digested! It simply has to be burned entirely! Bondy, I can do it; my carburator can do it; you'll be forced to admit that twenty years of hard work were well spent."_

</comment><comment><USER6> His brother - Josef Čapek - was also a writer (and a painter):

[https://en.wikipedia.org/wiki/Josef_Čapek](https://en.wikipedia.org/wiki/Josef_Čapek)

He wrote a wonderful illustrated children's book about cat and dog living together:

[https://www.goodreads.com/book/show/19431013-all-about- doggi...](https://www.goodreads.com/book/show/19431013-all-about-doggie-and- pussycat)

[https://web2.mlp.cz/koweb/00/04/37/75/99/povidani_o_pejskovi...](https://web2.mlp.cz/koweb/00/04/37/75/99/povidani_o_pejskovi_a_kocicce.pdf) (originally published in 1929, so it's public domain, Czech version, but at least you can check the illustrations)

Sometimes both brothers wrote together:

[https://en.wikipedia.org/wiki/Brothers_Čapek](https://en.wikipedia.org/wiki/Brothers_Čapek)

Josef was actually the one who came up with the word "robot":

[https://en.wikipedia.org/wiki/Karel_Čapek#Etymology_of_robot](https://en.wikipedia.org/wiki/Karel_Čapek#Etymology_of_robot)

</comment><comment><USER7> While praising, author could use that háček over Čapek last name because that diacritical mark does makes the difference when it comes to pronunciation.

<comment> java-man indeed!

</comment></comment><comment><USER8> Funny coincidence, I just read "War With the Newts" a couple weeks ago, and I've been recommending it to everyone. It's a quick read and highly entertaining.

I'm definitely going to check out more of Capek's work.

<comment><USER9> For something little bit different I recomend Tales from Two Pockets, which contains 48 short stories each just few pages long. All of those are mystery stories and each is unique.

<comment><USER8> Thanks! Short stories are my favorite, so I'll be sure to pick this up.

</comment></comment></comment><comment><USER10> And if you're into classical music you may enjoy the Makropoulos affair, an opera by Leoš Janáček based on a play of Karel Čapek about the inhuman inhuman concept of eternal life. Witty and beautiful.

[https://en.m.wikipedia.org/wiki/The_Makropulos_Affair_(opera...](https://en.m.wikipedia.org/wiki/The_Makropulos_Affair_\(opera\))

</comment><comment><USER11> It is a great book, and the cover of mine is pretty cool, too: [https://pictures.abebooks.com/isbn/9780048233080-uk.jpg](https://pictures.abebooks.com/isbn/9780048233080-uk.jpg)

</comment><comment><USER12> His "R.U.R." really blew me away, considering when it was written and how much I could see its influence in a lot of more current scifi. I haven't read "War With the Newts" yet, but it's now next on my list.

<comment><USER13> Its worth it I sought out via a library loan after doing RUR at school - <USER2> might also want to try We by Yevgeny Zamyatin you can definitely see its influence in 1984 and other dystopian novels and some cyberpunk</comment></comment>


Netflix: The One Mistake That Might Haunt Them Forever - <AUTHOR> http://statspotting.com/2013/01/the-one-mistake-that-might-haunt-netflix-forever/

<comment><USER2> Not likely. Amazon and Apple provides a lot more content than just TV/movies. Netflix does not.

Netflix does one thing and it does it extremely well. The Amazon prime tv/movies web interface is a complete and utter nightmare to use that I only ever go to for the tiny offchance that Amazon has something that I can't find on Netflix.

I would have no use at all for a Netflix branded tablet or anything like that.</comment>


Node-OS: The first operating system powered by node.js and npm - <AUTHOR> http://node-os.com/ <comment><USER2> There's probably some interesting stuff in here, but _" operating system powered by node.js"_ is a little strong. They also say things like _" NodeOS is an operating system built entirely in Javascript"_, which isn't true at all.

They basically replaced bash and some of the gnu utils with node.js scripts. The OS itself is just Linux.

<comment><USER3> Linux is just a kernel, the proper terminology is Node/Linux.

<comment><USER2> It offers a pretty limited list of user space utilities: [http://node- os.com/docs/Commands.html](http://node-os.com/docs/Commands.html)

It does seem interesting, just noting that their rhetoric might be a bit off base.

</comment></comment></comment><comment><USER4> I think I will stick to my Bash-OS.

</comment><comment><USER5> I find the idea intriguing, but it's not clear to me from reading the site what is it for. What cool things one can do with this Node-OS that wouldn't be possible/easy with another Linux?

Also, what's the story for GUI applications? npm is mostly used for libraries, not full apps, so I'm not sure why that was a good pick for an OS. I guess it would be nice if there was a web view as the default GUI mechanism, so one could use web apps as if they were native without having to resort to things like Electron.

</comment><comment><USER6> This is basically Node slapped on top of a Linux kernel.

I would find it way more interesting (to say, way more actually a 'Node OS') if they implemented a really lightweight kernel to drop into JS kernel modules as soon as possible, and implement all features in JS (paging, filesystems) etc.

</comment><comment> lachlan-sneff It's an interesting idea, but as far as I can tell, it doesn't take advantage of the fact that all usermode code is sandboxed. You could potentially run everything in supervisor mode/ring 0 and remove a lot of the systemcall overhead.

<comment><USER7> As predicted by gary bernhardt[1].

FWIW, I don't think doing that will be a net win. I/O-bound applications might run slightly faster (I think gary bernhardt's number was 5%), but in exchange they'll take quite a bit more system resources, which mean increased power use and reduced lifespan.

1: [https://www.destroyallsoftware.com/talks/the-birth-and- death...](https://www.destroyallsoftware.com/talks/the-birth-and-death-of- javascript)

<comment> lachlan-sneff Could you explain what you mean by saying that they'll take more system resources?

<comment><USER7> More ram, cpu usage, etc.

So, imagine you have a given task. One option is it takes 60ms to execute and during that time it takes 50% cpu. Or, it takes 50ms to execute but takes 80% cpu. The second one takes less wallclock time but more cpu time.

</comment></comment></comment></comment><comment><USER8> You keep using that word. I do not think it means what you think it means.

</comment><comment> swingline-747 Is this Atwood's law Gravity Probe B?

</comment><comment><USER9> Oh my God</comment>


Ask HN: How do you roll up event data in 2018? - <AUTHOR> For analytical tasks (data dashboard, fraud analysis), we need to quickly roll up our large event-based data. How do you do it? <comment><USER2> Roll up in what sense?</comment>