skysight-inc/HackerNews huggingface dataset:
A friend of mine in this discussion (microkernel vs monolithic kernels) discussed it this way;

"CPU architects design for monolithic kernels because they are the only type that have been commercially successful, further in the absence of any barrier to making a choice (micro/mono) the monolithic kernel choice has always prevailed. This may be a consipiracy on a monumental scale but it also may be that microkernels just don't work as well as their proponents would wish, and no amount of engineering investment has changed that in 20 years."

Ok, so that probably isn't word for word, but he said it in 2010, and here it is 2016 and its still true. I love the conceptual simplicity of micro kernels, they are easy to abstract and they are easier to show they have predictable response in a wide variety of situations. I have also met some really strong advocates for them, and listened as the QNX folks went on and on about how much they were investing in making these things better than any alternative, and yet here we are. I haven't attended a SOSP[1] symposium in a while but I do still look through their proceedings when I get a chance at the Stanford Library. And it hasn't felt like microkernels have really made any conceptual improvements in their design. Instead we are seeing more and more work going toward multiprocessing with a monolithic kernel on each processor and the thread separation being an interconnect rather than a memory bus.

[1] http://www.sosp.org
Lack of political motivation.
If we're using fashion as an analogy, it's kind of a mixed bag.

There's both this type of fashion: https://s-media-cache-ak0.pinimg.com/236x/c0/66/12/c06612029...

...and this type of fashion: http://img.izismile.com/img/img7/20140521/640/fashion_runway...

out there.

Things can be fashionable, yet crisp and usable. Things can also be crazy, stupid (to most), and groundbreaking (to a few). Put another way, fashion currently dominates, but that would be okay since we don't need to sacrifice good visual design in the name of performance any more.

Unfortunately:

* People get lazy.
* People don't user test.
* People like to follow trends.
* Designers and developers get micromanaged.

...along with all of the other monkey wrenches that most developers and designers have gotten used to. People end up building cool-looking websites that aren't as usable as they should be.
> Wait. I guess you did not read the article at all? It is all about atlasing.

Yes, I understand the technique. Perhaps I should be more clear about my terminology. I'm using "atlas" in the narrow sense of "actual pieces of bitmap data stored in a texture". My point is that this technique should not be a substitute for atlasing in this sense, but could well be combined with it.
People who write articles about how others are not so smart, may not be so smart.
I totally agree with you. I was a video person up until a few days ago actually, when I bought React Indie Bundle (which came with 4 books and 3 Udemy courses). I found myself in a lot of situations where I could not watch videos but I could read (i.e. when I would be without my computer). So I became more of a book person. I'd read concepts, and see if I can apply the concepts when I get to my computer.

I found it to be a more enriching learning experience over copying what someone does on a video and only kind of learning it.

However, to answer your question, there are some free courses like the famous Rails Tutorial [1] and Learn X the Hard way [2].

[1]: https://www.railstutorial.org/book

[2]: http://learnpythonthehardway.org/
I'd say Python's runtime only has a small fixed startup cost that prevent it from beating natively-compiled tools in no-op rebuilds (when no source file has changed). Some tools like tup or ninja reach insanely low times that are below the startup time of Python itself. But at such low times, it doesn't matter anymore whether it's 10ms or 100ms.
Pretty cool. Usually the Node community isn't into Rails-like stuff but I'll give this a shot.
Apowersoft Audio Recorder for Mac Personal License
> I feel for her but she needs psychiatric care

That's crossing the line of civility and you are actively making derogatory remarks of another HN member. who are you to judge her mental state? are you a doctor? Do you have a degree in psychology? No you don't.

You might read what happened and come to a different conclusion than what others have. That's fine. But you are making personal attacks with statements like that, and that has no place in this discussion. at all.
And, when that future arrives, maybe it'd be useful to revisit the topic.
Let’s Put the Future Ahead of Us
Ask HN: Why incompetent people get paid more at big companies and continue?
Over last 4 years I have worked for 2 most talked companies these days ( hint stock is down for both).

I felt that amount of incompetent people at these companies are as large as it can get.

There are managers, analysts who are sitting on their job for 3 or 4 years yet hardly know business functionalities, programming and other stuff that's making news everywhere. Both companies sucked a lot when it came to speed. Amount of approval, mediocre mountainous tasks I had to go through was un-parallel.

I have seen employees at both of these companies playing video games at work hours , people getting drunk during work hour, calling names, closed groups , politics and much more.

There are managers and directors who simply don't know what the fuck is going on. They exist to draw salaries. Most of these managers, directors and people with 3 to 4 years have form closed circles that refuse to let any person ( even acquihires ) to mix with them. All acquihires I know have left company ( including me ).

Another trend I have seen is fake engineers coming out of training academies such as HackBright and many more. In 3 months they claim to know stuff that have taken 4 years of engineering and numbers of years to master for others. I have conducted number of interviews and our suggestions were turned down by hiring committee at both companies for political correctness. I have seen people spending 8+ months on a product launch only to discover that it is not working as it intends to.

Now, worst part of all is these people are getting paid 150K+ to 200K+ per year. Heck, even hackbright graduates are getting paid more than hard working engineers.
Why is that US companies are openly axing their own future ? I feel bad for what is going on.
Dream come true!
And lack of tooling and lack of OS design. With NT they had actual isolation to allow local crashes, and MS has the static checker to ensure a level of quality to reduce said crashes.
Graal will be available as a plugin to stock OpenJDK's HotSpot in Java 9: http://openjdk.java.net/jeps/243 (although I don't know what it means regarding the production-readiness of Graal itself)
Is there any documentation yet? I'd love to try it out.
The funny thing is, a lot of websites I visit that use client side frameworks don't make optimistic/eager updates to the UI. You click a button, it hits the server does the update, then updates the button state. Therefore they're waiting for the roundtrip to the server before making the update anyway.

Just because something is possible doesn't mean people are actually using it. To make some optimistic updates you have to duplicate logic on client and server. It just gets really hairy especially when you're using auto increment id's in your database. That's just one of the problems. The complications it creates isn't even worth it. I'd rather just put a server in London. A lot less hassle then dealing with this over engineered client side bullshit.
FYI, a little googling will find the original article from 1979.
You have to decide for yourself what is relevant to your application-visible needs. If you deem that Linux is better for running your Java app than QNX, no one wants to take that decision away from you. I don't think that's where the real discussion is. The real discussion involving microkernels is about the future of OS development. Should it just be the same as Linux, forever, with no architectural changes? Have we literally written the last OS?

As a layperson, I can be persuaded microkernels are a good idea that could yield some reliability and security improvement. I can be persuaded that the performance issues are avoidable. But I'm also pretty sure that most of the problems we have with current systems are in code that would now be outside the microkernel anyway. We are going to end up with, optimistically, about the same number of lines of code. So to me it seems much more important what the development process looks like. Unfortunately there is not a lot of accessible research about that kind of thing, relative to things like microkernel performance which are at least easy to generate demonstrative benchmarks for.
> Now imagine you could never ethically satisfy that drive. Ever.

Would it be ethical to have sex with a virtual reality child?
Similarly people describe C as a form of virtual machine. You don't really write for the hardware but for the C semantics.
One of my favorite hobby projects is a dice-rolling gaming aid that morphed to a place where people can play RPGs online together over the years:

https://rolz.org/

Due to time constraints I've been neglecting it during the last months, but I'm looking forward to jumping back into development at some point.

When it started out, it was barely more than a Google search-like input box that would parse and execute RPG-style dice codes that I needed for GMing my own games. Over time, users had a lot of feature requests and this is how it got to today's state...
I guess I should have clarified that "reliable and predictable" performance is critical. In practice though, these systems have fast enough context switching.

I agree with you that "fast enough" is the only metric that matters here.
The configuration listed unfortunately doesn't work for the www version of the domain - Let's Encrypt requires individual certificates for the naked domain and each subdomain, including www.

Nginx configuration needs to handle the two (or more, depending on subdomains) certificates.

Let's Encrypt is a great initiative and hope that they can support nginx auto-renewal!
I have zero problem with everything you've listed here that she's said and done. You link to these things like they are incriminating evidence; I just see someone pushing back against an onslaught on bullshit.

Your first example is literally a bad amazon book review. Did you see what she said?

> The author Vivek Wadhwa spends his time harassing women on twitter when they try to call him out on his approaches to feminism. He's not interested in inviting conversation, but instead thinks it's acceptable to intimidate and silence women from his book's twitter account when criticism is directed at his personal account. He's using feminism to profit, and not because he actually believes in empowering women. This is despicable behavior, and it's been confirmed by multiple women at this point.

> If you want to read about how to empower women, actually buy a book that has a woman listed first on the cover, at the very least. Even the highlighted review on his website is by a man. Men that are actually trying to help feminism don't profit off of it, financially or with cred. They empower women's voices and amplify them. While this may be a collection of contributions by women, Vivek's behavior online casts doubt on his intentions.

> No, thanks. I already know what it's like to be an empowered woman in tech, and to have men like Vivek Wadhwa speaking down to me.

Yeah she's REALLY going after someone with that kinda language. You know want that is? that's her OPINIONS. She's not attacking him, calling him names, trying to intimidate him.

At no point did she say he was fat, ugly, should go join ISIS, that she's rape his ass with a dildo at his next book signing, or leave a project he's been involved with for years.

She's attacking his behavior, not his personhood. That's called being mature, and civil.

That you had all these links ready to go... leads me to question your bias towards the matter.

But nothing you posted is of any actual merit or counterpoint to what she's said in her post.
I don't see how these numbers would be more real than measuring programmers at work, unless you intend to help non-programmers write programs.
I don't see how the fact that someone might be on a fixed income makes it fair for their children to inherit the house and tax-basis from 50 years ago.

Also, I don't see why property tax increases for existing homes couldn't be capped in some way (say no more than inflation) to make this situation reasonable for people in the scenario you've laid out. But just saying, "Your taxes will never increase again as long as you stay in your home," hardly seems reasonable.
> Put another way, when people say they're using symbolic or automatic differentiation to "calculate" the derivative of a function, "calculate" means different things: in the one, they're "calculating" the exact, symbolic expression for the derivative (which can optionally be evaluated); in the other, they're "calculating" the floating-point approximation of the values of the derivative.

If this is correct, then both Theano and TensorFlow are definitely doing symbolic differentiation, no? The `grad` function in Theano (and the equivalent in TF, not sure what it's called) takes a computation graph (a symbolic expression of a mathematical function) as input and produces a computational graph expressing the gradient (which as you said, can then optionally be evaluated at specified points). So maybe the author wasn't referring to these types of frameworks when he said there have recently been an explosion of these autodiff tools? Or are Theano and TF and the like, in fact, autodiff tools as opposed to "symdiff" tools, but I'm still missing the point somehow?
Cap'n Proto: An Infinitely Faster Cerealization Protocol
What is the lifetime of a constexpr struct? I do not have the answer, but I suspect that is why this is not a bug.
He owned some of the assets, still, including the github org. Even though we negotiated an agreement, and were operating the company under the assumptions of that agreement, McNeil refused to sign it at the last minute and spent the past two months clawing everything back that he could. We still own the Balderdash LinkedIn page and npm account, for example.

He refuses to speak with me directly, so there's no resolution to this yet. Nor do we really understand why he decided on this course of action at all. I hope to bring things back to some equilibrium, but one permanent change is that we are no longer supporting Sails, and are directing all our efforts toward developing Trails.

The maintained-ness of Sails is really a separate issue from the ceo-schism drama. There are plenty of other literature which discuss the technical deficits of Sails, and the incredible amount of work it needs merely to be viable as an enterprise framework. That it relies on EOL'd dependencies, and has no plans to upgrade them, is an example.
Actually software do go bad over time and it's a well documented phenomenon in the industry [0]

[0]: https://en.wikipedia.org/wiki/Software_rot
Good IPC requires tight coupling between the IPC mechanism and the scheduling mechanism. In QNX, you call MsgSend, which sends a message and blocks. On the receive side, a process waiting in a MsgReceive gets the message and unblocks. The fast path for this, when there's a thread waiting for a message, does not go through CPU dispatching or CPU switching on a multiprocessor. This is crucial to performance.

You do pay a penalty for copying. For short messages, it's low. For anything that fits in cache, that you just created and will use immediately on the receive side, it's very low. Really big messages may add 10%-20% overhead. This is the main problem with drivers in user space, because they don't do anything with the data, they just move it around.

Incidentally, copying under QNX is preemptable by high-priority tasks. There's a hard upper bound on the longest uninterpretable kernel operation, and it's measured in microseconds. That's why you can use QNX for hard real time.

Contrast what happens on Linux. You have a few choices (System V IPC, pipes, sockets), but they all work like I/O operations. You send something, and you don't block when you do. If there's someone waiting on the queue or pipe, their thread becomes active, which means a trip through the scheduler to get them going.
Since the sending thread isn't blocked, if there's a free CPU, the receiving thread starts up on a different CPU, which means lots of cache misses. The sending thread probably blocks shortly after the send by reading something or waiting for a message, but the OS doesn't know that's going to happen. So when it does, there's another trip through the dispatcher for work to do.

In a compute-bound environment, this may mean that each IPC operation sends you to the end of the line for CPU time. Trying to use IPC operations like subroutine calls is painfully slow in such systems.

Write something that does short IPCs and waits for replies, and benchmark it. Then add some compute-bound tasks, enough to keep all the CPUs busy. If the IPC task performance drops by orders of magnitude, the IPC mechanism is badly designed.

L4 is very impressive, but I think they went a little too far by using shared memory as the main interprocess communication mechanism. This gets copying out of the kernel, but means that one process can screw up the format of the memory region it shares with another process. The OS may be robust and secure, but attacks on the process you're talking to by messing with pointers in the shared area may be possible.

The big problem with QNX is that it costs money. Linux is free, and Windows is basically given away with hardware and trialware.

I hope that someone writes a QNX-like microkernel in Rust. We need that.
Human-Like Robot 'Nadine' Who Has a 'Personality, Mood and Emotions'
You can think of AD as differentiating a function that is defined in terms of composition... e.g. f(g(h(x))), where (loosely) x is the initial state of your function and f, g, and h are differentiable mappings from one state to another. In this analogy, in a procedural language f, g, and h would be lines in your source code, which modify the overall program state to produce some final value. There are a few different ways to actually do it (including the rather tricky concept of "dual numbers"), but ultimately it amounts to differentiating the overall program f(g(h(x)) recursively using the chain rule. It's [often] more efficient than direct symbolic differentiation because of this recursive evaluation - think of it as something like tail-call optimization.

It's not an approximate method, nor does it care [directly] about floating point. If you have implemented some f' that approximates a mathematical function f and you use AD to differentiate f', you are calculating the exact derivative of f', not an approximation of the derivative of f. It's an important distinction.
I read it unambiguously as others fwiw
Google doesn't care about the server-side use case for V8. Microsoft, on the other hand, has some skin in the game, as they are pushing Node on their Azure platform. While I wouldn't want to see Node controlled by Microsoft (or any single vendor for that matter), it's not outside the realm of possibility that Node will be better off using (open source) ChakraCore over V8.
Here you go: https://en.wikipedia.org/wiki/Solomonoff%27s_theory_of_induc.... Follow the chain a little bit and you'll come to things like: http://www.hutter1.net/publ/aixiaxiom2.pdf. Super interesting but very impractical.
BlindTool: Phone App That Audibly Identifies Objects (with Neural Networks)
This really grinds my gears: I was just on pluralsight but seems like 90% of websites have this problem where existing members are treated as 2nd class citizens. I executed a search for "UX" and found a class I waned to see. After clicking int it I was given 2 options "sign up" and "cancel". So as an existing paid customer my only options are "login" on upper right which then puts me on main member screen so I can perform that search again. or go through login process, and then hit the back button exact # of times to put me back a that search results page. Then if they didn't fuck that up i'd be able to go to that course and see it. And believe me, some websites manage to fuck that up too.
Other versions of this UX antipattern is where you try to get to the content and 99% of the screen is about signing up while 1% is the tiny "sign in" hyperlink. It causes much anxiety to actually locate it.
Just Desserts: A Strange Tale of Fruitcakes and the Collins Street Bakery
I'll believe it's AI when the speech recognition error rates finally start dropping again.
It's not correct. They are doing AD, not symbolic differentiation.

Think of AD as evaluating the derivative step-by-step as you proceed through the program (or nodes in the expression graph in Theano's model). In contrast, symbolic differentiation instead would be to evaluate the entire program in terms of symbolic variables to produce a final expression for your quantity of interest as a function of the inputs, then differentiating that and substituting concrete values in.
He didn't predict Digg would fall hard in such a short time.
Having witnessed feuds between Founder and CEO before they're never a pretty sight, so thats why the future of Sails.js has been very disconcerting.

Hopefully relationships can be amended amicably and if Sails.js is truly dead in the water then hopefully Trails.js will pick up where it left off and on better footing I hope, but it will take some time and also some proper PR might of been helpful to the many Sails.js users as well as it didn't need to reach this point, also on that PR note should we expect that they can easily port over their Sails.js projects over to Trails.js?

I was hoping to re-visit Sails.js for a project but considering all that's been happening I'm not sure I should just go with something else like Python+Flask and let Trails.js mature a bit more.
Awesome to see a project from the SailsJS team. SailsJS was the first MVC framework which I worked it and was extremely easy to begin with. Kudos for using ES6.
Since my comment, i realized that the Pro version is backordered or not available yet, and it is the older version I see available.
Saylor has a lot of moocs that are very reading heavy.
http://www.saylor.org/
Correct. We do not currently support RubyGems. It's something we're working towards, but it's a fairly complex project and not having OpenSSL support currently limits the ability to install gems quite a bit. However, we do ship with a tool that will install gems using JRuby without Truffle and then running your script with a the $LOAD_PATH set up appropriately. Please see:

https://github.com/jruby/jruby/blob/master/lib/ruby/truffle/...

Re: Rails ... there's still a fair bit of work involved there. We've been working on passing all the ActiveSupport tests (we're currently at 99%), as that's a core dependency. We haven't looked much into the other gems. Things like ActiveRecord simply won't work since we currently don't run C or Java extensions. I think it's a bit more likely we'll start with a custom driver of some sort with an ActiveModel front-end. I strongly suspect the asset pipeline and Spring will present problems, as well. The rest of Rails should pull together somewhat quickly and that's a big goal for us in 2016.
I'm almost done with a short course on saltstack. If you're interested in automated configuration management, I'd like feedback once I'm done with this first draft of it.