skysight-inc/HackerNews huggingface dataset:
Irrelevance of language works if you assume PLs to be more consistent, or abstractly-used than they are.

As soon as you need to squeeze out more (or even a little) performance, you need to know how the implementation works under the hood.

As soon as the languages abstractions begin to leak, you need a knowledge of the languages quirks and tells.

It takes a while to develop this experience, and there isn't necessarily a great deal of overlap between PLs.
> You need a great inliner. You want common subexpression elimination (CSE), constant propagation and folding, strength reduction, and an excellent loop optimizer. These days, you probably want to use static single assignment form (SSA), and some unique SSA optimizations like global value numbering (although you need to be careful about working set and compiler throughput when using SSA everywhere)…I hate to say it, but doing great at all of these things is "table stakes."

I'm not sure. It depends on the audience you're aiming for. Go has done very well with a compiler that essentially performs no compiler optimizations (by modern standards; certainly it doesn't do most of the above) by positioning itself appropriately.

> For example, there are ways to write the earlier loop that can easily "trick" the more basic techniques discussed earlier:

Yeah, bounds check elimination ends up nightmarish quickly. I think I prefer an approach that fixes the problem at its source, by just encouraging programmers to stop using for loops (which are bad for non-performance-related reasons as well). Note that all of the examples given use for loops; if they were rewritten using iterators, there wouldn't be a problem. C# has iterators, so the machinery is there; they just need to make it more painful to use a for loop than the iterator alternative. :)

> Imagine you have a diamond. Library A exports a List<T> type, and libraries B and C both instantiate List<int>. A program D then consumes both B and C and maybe even passes List<T> objects returned from one to the other. How do we ensure that the versions of List<int> are compatible?

I don't understand why this is a problem. Both separately compiled implementations of List<int> should monomorphize to bit-identical runtime value representations. Does the problem have to do with quirks of the compiler's RTTI implementation (e.g. making sure "foo instanceof List<int>" in package A works even if "foo" came from package B)?

> First, Go generates the interface tables on the fly, because interfaces are duck typed.

Does it really? That's interesting and seems extremely inefficient. I would have assumed that the Golang compiler would just statically determine the set of vtables that need to be used by the program and write them up front into rodata. Am I missing something?
I would worry that such a narrow focus (open source interface design) might not be enough to sustain an active community. It might work as long as you don't mind low traffic. It sounds more like a topic for a thread or subforum on a larger forum to me, though.
You would save lots of time figuring out the workflow for using DeDRM. It's not difficult at all. You're wasting time and ending up with poor (in visual quality and lack of flowed text) digital copies of your books. The only books that are worth scanning (and possibly proofreading to make them text rather than image-based books) are books that aren't available as ebooks or have some obscure DRM that's not removable by standard software.
The Year in Fungi
I've generally been growing to the idea that I want to hear all criticism towards my projects, whether it's good or bad, whether it's constructive or not. People suck at communicating, but when they leave criticism, there is always a reason somewhere at the core. It's the old saying that it is apathy, not hate, that is the opposite of love.

So when people are heaping hate on one of my projects, I am now starting to think of it as a failure of messaging on my behalf. If someone says something like "don't reinvent the wheel", it's because I've failed to explain my constraints that prevent me from using existing systems. Maybe one of those constraints is "I don't like that particular system". But whatever it is, it probably needs to be explained if someone is bitching about it.

I might rather people hated my projects than completely ignored them. Getting ignored sucks a lot. Receiving hate tells me people were actually excited by the idea and I was on to something, but that I didn't do something right. I can't figure anything out from getting ignored. It's just blowing in the breeze at that point.
Sure it does. A big part of optimization is specializing code to be fast by removing unimportant bits.

Here's a quick bad example:

int computation(int *a, int *b) {
if(a == NULL && b == NULL) return 0;
if(a == NULL) return *b;
if(b == NULL) return *a;
return ...something with *a and *b...;
}

...elsewhere...
int a[1024];
int b[1024];
...fetch data into a and b...
int c[1024];
for(int i = 0; i < 1024; i++)
c = computation(a + i, b + i);

Would you want this code, compiled with full optimizations, to run slowly because it does four NULL checks every time through the loop? A good compiler will probably inline the computation and eliminate all the checks because the condition they're checking for can never happen. Is that a bad thing?
The implementation is different to Intel's. AFAIK, bhyve has code to support one but not the other.
Then the Scandinavian countries would have two levels, like the Persian Gulf countries. We tried hard to create a society without a "gastarbeiter" group; no real poverty and no desperate/hungry people.

Because how immigration has been handled the last few years in Sweden, that ambition seems to fail the coming years. The social contract will need a rewrite. :-(

The shocking part is that seems mostly to be a result of party politics.
While it sounds like a nice gesture, it is quite dangerous actually. Maybe this generation of norwegians don't mind to give away part of their country but next generation will do. They might demand to give it back for some reason and here you go - endless disputes and friendship turns in hatred.
You only ever hear about people who run away from cops badly. Motorcycles are usually long gone before the police have a chance to call a helicopter, which they would be able to outrun anyways if they were on a straight road.

To be clear though I don't think that's the reason loudness isn't enforced. I imagine it more has to do with the fact that they aren't watching for it since they don't have any way to easily test it like speed.
> REST is whatever you think it is.

Nonsense. REST is what Dr. Fielding says it is, because he coined the term.
Yeah I thought that too. I think the author is specifically referring to 2.5" form factor SATA SSD's though.
Really? On OSX it's as simple as downloading postgres.app and dropping it in your applications folder. Couldn't be easier.
It doesn't always work, but when it does, its better than having to support an explosion of SDK wrappers that all essentially do the same thing (e.g, provide the services you mention)
[IANAL]

Distributing content created by other people has significant copyright implications. Sites with uploaded content have tended to draw enforcement actions because they often attract users interested in copyright infringing activities. Compound that by a large factor for international transactions.

Talk to a lawyer.
Can a Programming Language Make You Smarter?
You could definitely use diacritics to write Arabic-specific letters in Latin script but why would you do that?

I can understand the use case of Arabic transliteration in Latin script languages but other than that it becomes very impractical and inconvenient as the Latin alphabet was devised to represent the sounds common among the Europeans at inception and mutatis mutandis for Arabic.

So, it doesn't make any sense to use the Latin alphabet and overload the letters just to transmit the Arabic language through it.

The tri-consontant root is another problem and big hurdle for adopting the Arabic script in other languages as it's by design terse and there are a lot of implicit stuff due to omitting weak or short vowels from the words and this could prove problematic for some speakers of other languages. However, the Latin script is still not optimal and there are tradeoffs made in the languages based on it.
I don't think it will change surfing but it may contribute greatly in making this an Olympic sport... or perhaps create surf stadiums for contest a circuit?
Pirate Bay Founder Builds the Ultimate Piracy Machine
Losing in that context is this. You concede with the skydiving instructor and drop zone safety officer that you aren't cut out for the sport. You walk away from it with body physically in tact and take up something else. At least that's what losing is in skydiving if you're smart about it.
I would love to see the sericon experiment described in the article, but I cannot find it on YouTube.
I've used my real name on every online forum since I've been online. I never like to hide behind a screen name and don't trust others that try to hide their true identities.
How does this compare to native client?
9.5 completes the feature set for JSON document storage.
Sure, refugees are an external problem right up until they show up on your doorstep, and you are then legally obligated to coordinate and provide housing, healthcare, and assistance on an unprecedented scale that Sweden has never seen.

And do all of this under the direction of Sweden's track record of failed integration policies [1]

Easy-peasy indeed...

[1] - http://www.thelocal.se/20090923/22244
And REST as Dr. Fielding says it is is not as practical to implement as it should be. Hence the need for RESTful which just draws influence from his work.
Definitely agreed. I feel like I'm the only one who had no idea whether GTD was a product or service or some sort of TO-DO methodology...
Can we hire her to tell the drunk people outside to shut up and the neighbor not to blast his tv at 2am?
I just went through a fairly thorough soundproofing project for my apartment in SF. (If anyone has any questions or needs advice, I'm happy to help.)

Few things I learned: 1). It doesn't have to be expensive. My problem was that I live in a 2BR apartment with a wonderful roommate -- but we share a bedroom wall, and that wall is thin. So you can imagine the....awkwardness...at times.

I got quotes from various soundproofing specialists that ranged from $10k to $25k (!!!) to thicken the shared wall and reinforce the bedroom doors. Hogwash. I did some research, bought some raw materials (Green Glue, QuietRock sheetrock, solid-core doors, door seals) and did the whole thing for a fraction of that price.

2) Sound science is fascinating and DIY projects like this are kinda fun :) I've never been much of a DIYer around the home, but it takes on a whole new appeal when you have a clean end goal in mind and your quality of life takes a major improvement when the mission is completed.

Anyway -- this is a fascinating subject and I'm happy to geek out about it with anyone who's interested.
For me personally, the two most important constraints for a legitimate ReST application are:

- HATEOAS
- registered mime-types

In particular, the use of registered mime-types. An example:

Say we are building a restful music service similar to Spotify. Say we focus on the list of as users playlists. We can embody the currently logged in users list of playlists as a resource with a specific URL. This URL is opaque to both the client and server.

The representation of this list of playlists could be in the form of a Json hash where key is the playlist name and the value is the URL for the playlist itself.

We also could declare that the following interactions are available to any client that receives this payload from a HTTP GET request:
- Create a new playlist
- delete a playlist
And therefore we can fulfil the HATEOAS requirement.

As I understand it, in order to make this restful we must register this as a custome media type as the additional actions we have defined are part of the available interactions with this media-type.

Don't confuse the content of the representation with a definition of a media-type; we could declare our custom media-type as so:

Application/vnd.spotify.com.list.playlists+Json

It is the definition of the media type that dictates that the HATEOAS links in the header with the rel type of create or delete of how clients should interpret them. It is this media-type that dictates this.

It is my understanding that pumping raw Json over http, even with HATEOAS in the headers (or even worse, with links embedded in the Json with the out of band knowledge that a client should interpret our key/value pairs as hypertext based only on the resource URL) is not in anyway restful.
This completes the feature set for JSON document storage so you can now use Postgres instead of NoSQL solutions. However Postgres's replication story is still a little weak compared to other solutions.
> Nonsense. REST is what Dr. Fielding says it is, because he coined the term.

Yes, and be to accurate,I'm talking of what people call a RESTful architecture in software development.
Perhaps people are realizing that "buying" an ebook doesn't mean that you own it. For example, you can't resell it or lend it to your friend. Basically what Stallman says.
What movie is that in?
That doesn't obviate the point that it's an asset. If family or the rest of society is willing to bear most of the risk of failure with no upside, why wouldn't a VC take advantage of it?
There is a treaty from 1989, that all land disputes are closed and borders are final. They claim there is a glitch after that, so it is is a gift.
They already used "phone a friend" when they installed Python, so this time they are trying "ask the audience"; I can't wait to see them try and use "50/50" to install nginx.
Joe explains this on the first blog entry, almost nothing, hence why he decided to write these posts, so that the information doesn't get lost and the world outside MSR gets to learn a bit about what Midori was all about.
Ask HN: Is the “who wants to be hired?” post still working?
Is anybody getting job offers?

One may think the "who's hiring" post is by large the most useful / used of the three.
How Intelligent Lighting Is Ushering in the Internet of Buildings
A little weird to see it here, but ModularGrid is the best thing to happen to the modular synth community since transistors.
http://satwcomic.com/highest-points
I applaud your nod to empathy

Literature has been shown to increase empathy

There was no literature included in this list (am counting the two SciFi novels as fiction, but not literature)

To anyone looking for an edge, read more literature
Android on the desktop: Not really “good,” but better than you’d think
The author acknowledges this:

> Though I still appreciate some of GTD’s principles (next action, desired outcome as project, brain dumping, etc)

His issue is with GTD as a complete approach, and I very much agree with him. And while David Allen himself might give his blessing to 'partial' implementation (although his comment on the article suggests otherwise), the most common response I get when I talk about taking the best bits of GTD is that GTD only works if you implement all of it.

And I actually agree with that. I've 'religiously' applied GTD for years, but I kept falling off the wagon and forgot to do my weekly review, or some other crucial part of it. And without exception, the results were disastrous. Sure, there's bits and pieces that are useful, very useful maybe, but they're isolated enough to not be considered GTD anymore. If you do next actions the GTD way, you pretty much need to do the weekly review the GTD way, and you pretty much need to keep tabs on your inboxes without leaving any slack. That in itself can work against the more creative professions.

> So as long as you collect everything out of your head and into a system where you can review and prioritize, that's GTD for everyone regardless of your station in life.

If that's GTD, then I'd argue most productivity systems are GTD. Which makes GTD an empty signifier.

On a more positive note: even though I abandoned GTD as a whole, I did learn a lot of valuable things. And it did work very well in certain periods of my life when I had a lot of disparate things on my plate. And I might very well start using the system again if my work becomes more managerial or otherwise fit for GTD.

tl;dr: GTD in any meaningful sense means applying it as a whole. That's what sets it apart from other approaches. And for many of us, it doesn't work for a variety of reasons. For others it does, and that's okay too.
This company is 12 years old and has never once made an honest dime. How the hell is she or it succeeding in any capacity?
Great article series. Very easy to understand, and brings a lot of inner works of a managed runtime out.
What makes REST impractical?

And if REST isn't practical, we should use a different term to describe what we implement instead.

The meanings of words should be immutable, to avoid confusion. No, that's not how language has historically worked, but we can do better. After all, there are a lot of things we have historically done that we don't want to keep doing.
Well, it was innovation 20 years ago. Today there are more direct ways that achieve the same effect (such as canvas) without taking these roundabout ways.
I'm sure many people on ModularGrid are very proficient in computer-based music making, in fact any finished tracks generally end up being mixed and mastered in a DAW. Heck, the website even features a web-based modular music-making environment (TrueGrid).

So why use physical synths on top of that? There remains their loveable quirkiness and fun component (especially with analog). There's also various arguments saying that the resulting music is better in some way - but that's more of an endless, fruitless personal opinion / classic flamewar topic, which I will now blame you for re-introducing, and blame myself for elaborating upon.
How exactly does connecting to the PCIe bus obviate the need for RAID? RAID isn't about connecting drives, it's about not losing data. If you don't need RAID for your application today, you can purchase a non-RAID SAS adapter for a couple hundred bucks, or just use the onboard ports that are sure to be there.
Even with implementations, there are consistent themes. L1 caches have been around aa very long time.
Ha, I'm currently using FVP and started at around AutoFocus 2. It's not enough for all of what I do, but perfect for the crucial stuff. I've also been thinking about building my own tool that implements this. Let me know if you have something!
The Swedish government has a monopoly on the sell of alcohol, price is two to three times more expensive than the rest of Europe and you are forced to buy from State owned supermarkets which closes around 3pm on Saturdays and all day on Sunday. If this kind of socialism is a fairy tale for you, you can read more about it here:

http://hejsweden.com/en/the-swedes-and-alcohol-about-drinkin...
the millionaire fastlane by mj demarco.

It has the same problem as the 4hww where the name sounds very scammy, but the idea behind the book is really good.
An Incremental Approach to Compiler Construction (2006) [pdf]
The same reason people still like having old 8 bit computers instead of (or in addition to) emulators, cars that aren't electric, hand tools for woodworking, analog tape recording, vinyl records, letter presses, etc. The benefits are mostly about the tactile experience of handling the anachronistic technology, rather than the end result.

There is practically nothing one couldn't do with a software emulation of analog synthesis, but real hardware is more fun to play with for some people.
One Question You Should Ask About Every New Job
Maybe a certain level of karma would let one comment to increasingly older posts.
Thanks for this, I'm about to use it. Was actually working on a resume and this is perfect timing.
> I think I was pretty clear that my goal was to "make everyone happier"

How does your behavior achieve your goal, then? How do you know what would make people happy if all of your information about what makes them happy is snapshots of the past? Maybe a better study of the model would yield that the best way to make people happy is to offer them the exact opposite of what they had in the past? I don't understand how you can draw conclusions from data without understanding the model the data is a snapshot of.

> It's an irrelevant one, however, since you can't actually predict whether any action will change this distribution.

I didn't say that. I said that we can't predict with certainty and we're not trying to make predictions at all, but we do know from history that political and social action does work. That's how women were allowed to vote, go to universities, and become doctors and lawyers.

> that result in no testable predictions, I'm sorry for you

As I have spent even more years studying mathematics, I can tell you that neither subject was a waste of time, testable predictions or no. I feel sorry for you if testable predictions are the only measure of worth you know, but I hope that you are at least aware that much of the progress humankind has made wasn't due to any scientifically-predictable actions (and some of it was).

Nevertheless, I never said I can't make any testable predictions, only that we can't predict the course of history.

> Perhaps it might have been a better use of time to spend a semester studying complex systems instead.

Well, I did both.

> but the nonexistence of good predictions does not follow this - it merely changes the character of the predictions.

Really? If your measurement time (of initial conditions) significantly exceeds the time the predicted trajectory is within usable error, then yes -- nonexistence of predictions does follow. That doesn't mean, however, that we've seen that societies where social action was taken changed faster than those that didn't have social action. If nonlinear equations is your field then you know that, sadly, sometimes we are reduced to making qualitative predictions only.
That kind of thinking produces a race to the bottom. "Let's not be good-hearted, because our children might be jerks and resent us for it."

The solution to this is not to reach for the lowest common denominator, but to aim high (and raise decent children).
The Khan Academy of clit
Artificial Intelligence: Foundations of Computational Agents
Unless you're looking for a preachy and blind endorsement of "traditional" values (with a healthy dose of religion), steer clear of David Brooks.

If you're really looking to increase empathy, just read some good classical literature.
Comma free codes
Do your Nook books not work with the Nook readers for tablets and desktops?
tl;dr: there is no onboarding magic. It's "product simplicity".

So if Atlassian’s onboarding experience leaves a lot to be desired, how is it that they have scaled to $320M in recurring revenue with no sales team? How is the company only spending 12-21% of revenue on sales and marketing while other SaaS businesses are spending 50-100%?

Product simplicity.
The siri integration is also amazing and, at least when I last checked, not supported by other task apps.

Basically, if you tell siri to remind you of something, it creates a task in the Reminders app. OF imports this, including due dates.
React bindings for Elm
I believe this list might be relevant: https://en.wikipedia.org/wiki/List_of_Muslim_scientists
I'm not the biggest fan of markdowns for complex documents.

It's fine for little things like adding bold text or inline code blocks, it as soon as you start getting into anything complex it requires help text and constantly checking of the preview window.

Good WYSIWYG editors are much more pleasant to use. Quip, Medium and Facebook notes all do a good job of constraining formatting and being predictable.