skysight-inc/HackerNews huggingface dataset:
In principle I aggree with saluki - I'd just add a little explanation:

JavaScript lets you control HTML elements, so it would be rather hard to begin with just JavaScript. Styles in CSS are currently indispensable when writing any HTML unless you want to rely on crude default formatting. That's why it's HTML -> CSS -> JS and not the other way around.

Moreover you have to understand that JavaScript is a client-side scripting language, that is to say that your scripts will be downloaded and executed solely and entirely on your computer. You will not have any way to open, read and write to files (except for cookies), because your script "lives" only inside the browser.

If you want your code not to be seen by a visitor of your website, or if you want the code to be executed before the page is downloaded and displayed in a browser, you need a server-side scipts like PHP or ASP so that for example the visitor has only access to the parts of the website you want him/her to read, or display content depending on the user login and password.

Later you will see that for storing and manipulating larger amounts of data you'll need a data base server, which makes sorting and managing information much easier and faster than if you'd accessed files directly from your servers' hard drive.

PHP and MySQL are for free and therefore they are recommendable for beginners - alternatives are Microsoft's .Net + MS SQL and many many other, which are arguably more robust for commercial, enterprise level applications.

Node.js is however a more modern way of doing things on-line, PHP belongs to the 2000s.

jQuery is good once you realise why plain javascript s*cks a great deal ;)

Staring your journey with online tools such as JS is ok, but it may be difficult to later jump into more... how should I put it... "serious?" languages - once you want to build your own standalone application software that runs outside a browser (not only because you have to use a compiler, but also because you have to pay attention to more details and plan ahead). For instance it's not impossible, but it seems that, switching from strong typed languages like C to weak typed is easier than the other way around.

Please do never underestimate or neglect learning about design patterns, data structures and algorithms no matter what language you're using or intend to learn.
That's surprising because if you pick up any professionally typeset book or magazine, you'll find ligatures all over. Some of them are quite subtle (e.g., the fi -> ﬁ ligature). I have to imagine then that your colleagues are getting distracted not by the presence of ligatures in general, but by a few decorative ligatures or characters present in the Slack font, which looks to be Lato. For example, Lato's ampersand is missing a chunk in the upper loop (https://www.google.com/fonts/specimen/Lato).
I see you are familiar with some dynamic languages such as javascript and ruby. How much more effort do you think it was to create this app in modern C++ instead of something like ruby?
a) i can't say with 100% certainty, but with 99% certainty someone dropped the index. they don't just disappear.

b) i really wouldn't recommend hitting mssql from anything other than the home grown system.data.sqlclient built into .net.

c) there are best practices on when and how to install updates. this is not it.

d) that is totally a pain in the butt and something msft should probably figure out how to have a reasonable option for.

one, very legitimate gripe i have for mssql is the default lock levels on reads. not everything needs to be fully synchronized and having to litter queries with (nolock) feels like bad design.

one, very legitimate gripe i have for pg; no stored procedures. functions are not stored procedures. also multiple result sets for a single query, but i digress.
"This paper started it all so, needless to say, I wanted to see an original copy of it."

One of the key measures in chemical similarity is the "Tanimoto", better known as the Jaccard similarity. Quoting from http://en.wikipedia.org/wiki/Jaccard_index :

> Various forms of functions described as Tanimoto similarity and Tanimoto distance occur in the literature and on the Internet. Most of these are synonyms for Jaccard similarity and Jaccard distance, but some are mathematically different. Many sources[3] cite an unavailable IBM Technical Report[4] as the seminal reference.

Huh! Worldcat says that a few copies are available. Now I want to see if I can get a copy. :)

I recently had to talk to a library archivist to track down what turns out to be a key paper which describes a practical topological encoding of a molecule for a computer. The author published it as a corporate white paper. If you look at the publications from the 1950s and 1960s you'll see people who cite the whitepaper, but as it wasn't part of the standard scientific literature, it wasn't saved, and no one has referenced that work for decades.

As it happens, he's also the person who coined "information retrieval", and was one of the influential founders of IR. Thus, his papers were archived, and still accessible.

One of the interesting things about hard-to-find papers like this is to see how the citations change over time, as typos get introduced and propagate.

"How much bold, radical, totally unpublishable (in any respectable journal) work is out there waiting to be dusted off and used to start new fields of study?"

No doubt quite a bit. I'm always reminded of the FFT, which was rediscovered in 1965 by Cooley and Tukey in the 1950s. It was first invented by Gauss, 160 years earlier, but not well known, "being published only posthumously and in neo-Latin".

As a culture, is it better to investigate more of the history, or spend time learning how to create this sort of thing?
Textbook example of escalation. Start with relatively easy to remove cookies. Savvy people clear their caches, the criminals move to automatic localstorage weapons. The savvy people start wearing AdBlock armor and rejoice. The criminals move up to armor piercing injection bullets. The everyday mom and pop don't stand a chance. 1984, yeah right man, orwell is today.
I actually did end up building a similar tool[1] for my self-published book, creating a printable PDF booklet out of markdown.

It's probably not good for serious publishing but I found it hell of a lot easier to work with than LaTeX and/or Word.

[1]: https://github.com/andrey-p/apocalism-js
> And yes, many times, it's a square.

Are you sure? In my experience, it depends on the context, but the pixels themselves are _not_ always of equal height:width ratio.

http://en.wikipedia.org/wiki/Pixel_aspect_ratio
It should be noted that word does indeed support all ligatures and glyph variants since Office 2013. Transparent text is also possible, put I guess it already was back then.
Because the terminology is tied into the code in ways that would cause incompatibility with past code if changed. For example, emacs uses "frame" to mean what we now call a "window" and vice versa, and all the functions for interacting with windows and frames reflect this usage. If one just did a blanket search-and-replace swap of window and frame throughout the entire Emacs codebase and documentation, you would probably have a working Emacs, but all external packages and customization code that interact with windows or frames in any way would now be broken. You can't just update the documentation but leave the code as is, because then you have to start telling people ridiculous things like "switch windows with 'other-frame' and switch frames with 'other-window'", which isn't going to be any less confusing that what you started with. Elisp is a dynamic language, so you can't set up some sort of name-translation layer and use it for backward-compatibility with old code (that code could have a reference to an old name inside a quoted form, or even a string).

And the window/frame term swap is only one of many such examples. So basically, you could make your own Emacs that uses modern terminology and is completely incompatible with all existing 3rd-party elisp code, and then you could try to convince people to switch to it. But would having two equivalent but fundamentally incompatible Emacs/elisp variants be beneficial to Emacs as a whole? I doubt it.
Ha, shameless plug :).

Thank you for the work you put into wikibooks.org/wiki/LaTex.

It's my goto place when I pick up LaTeX every ~5 months and need to remember the basics.
Until it supports something like the Microtype package, it won't come close - see http://www.khirevich.com/latex/microtype/ for instance.
As much as I wish EME wasn't a thing, it doesn't really change how functional an open source browser can be. It's just replacing a generic proprietary plugin like Flash or Silverlight with a content specific proprietary plugin (a CDM).
Did you have a look at word's math support in recent years?
The Rise of Extreme Daycare
It's typesetting DSL, but if you want to typeset you'd need a typesetting meta-DSL. The one thing that works fine with TeX is math, because math typesetting is build in. Typesetting something more specific other than english text and math is hard and ugly.

If does follow imperative paradigms, as it does, the programming language part is essential if you want to do anything meaningful with it. If exotic task you never need in typesetting, such as multiplication, is hard to implement, something is wrong. And IMO that is why LaTeX is so odd and hackish.

Context is much better, tough.

And, by the way, the unfortunalty dead ANT uses a nice Haskell like language and is still a typesetting DSL.

http://sourceforge.net/projects/ant.berlios/
https://web.archive.org/web/20090310012257/http://ant.berlio...
Link for the original infographic [PDF]: http://think.storage.googleapis.com/docs/behind-the-box-offi...
I can't remember if there's a similar thing as a background compilation that highlight errors as you type.

Check out Flycheck: http://flycheck.readthedocs.org/en/latest/
Patoline is a great project, that I have mentioned a few times in comments.

To start gaining traction though, it should migrate from darcs to git, and move their own repo to github. It would enable people to contribute more easily, as well as bug reporting and editing the documentation.
Thanks, excellent video to understand what people are talking about in this thread.
I am confused as to what data is being shown on the map. What do the numbers / colours indicate?

Is it merely plotting the number/location of mines, or does it show the "lives-at-risk" score?
Seek out the stories of prominent women on the Internet. This stuff happens over and over and over. The first time it seems odd. But the 20th? Nope.

Another way for it not to seem odd: Go read the book "Why Does He Do That?" by Lundy Bancroft. [1] (If anybody would like a copy, just contact me via email and I will send you your choice of paper or Kindle versions. I've given 12 away so far.) It's a book by a fellow who spent 15 years as a counselor in a program for abusive men. If you read that, then it's pretty clear that there are a lot of men out there who want to abuse women.

My take on a lot of this behavior is that the Internet, in connecting everybody to everybody, has connected a lot of would-be abusers to lots of women. Previously, they would have been sad and alone in their basements; they wouldn't have anybody to harass. But now they can mob up and attack women jointly.

[1] http://www.amazon.com/Why-Does-He-That-Controlling/dp/042519...
Call me oldskool, but I wholeheartedly agree.

Dependency injection via settings files leads to 'magic' code that's a mess to debug if you're new to a platform/stack (I'm looking at you, Symfony2)

No longer can you just click through an object and follow the path to where a dependency comes from, you now need to wade through stacks of code and then end up in some xml/yml/json file.
I think the donut hole would be used as unpressurised cargo space for luggage, moving the floor of the cabin closer to the bottom of the pressurised envelope, and reducing the strength and fastening requirements of having a pressure bearing floor separating the pressurised cabin space in the top half of a cylindrical aircraft fuselage from an unpressurised cargo space below.

I don't think any aircraft are built that way though, so I'm a little confused.
> The allocator I worked on maintained lock-free queues for remote frees. We would sometimes deallocate these queues entirely - but we knew this was safe because we would only do it when all of the chunks of memory attached to these queues were free.

In a memory allocator, don't you generally want to maintain freelists of memory that is available for reuse? If so, isn't there a race between threads trying to unmap the freed blocks and threads trying to reuse them?
Maybe not much. When working with C++ - at least in my experience - you get more use out of code navigation and code completion (two things that emacs supports rather averagely, even after customization) than you do out of text editing functionality (for which emacs is excellent).
> The next company that comes to mind is Craigslist.

Last I heard (and this was years ago), the crap UX is an intentional design decision from the top. I can't say that about Google or Netflix, but AFAIK with Craigslist, they're deliberately not trying to make the UX modern.
How about the US citizen who was killed by drone?
Pepe Mujica is doing great things in Uruguay but I really wish articles about him would focus more on what he is actually doing as a leader and less on his way of life.
It's density of mines - plotting all 6000 doesn't provide useful information. Scroll in and the pins will expand. Clicking on them will give you a link to our analysis for that mine.
As I wrote in https://news.ycombinator.com/item?id=8450316 , that account isn't even internally consistent.

In less than 200 years, and even with 2,000 ships (giving what, 100K people?), how did they built cities in Brazil and get up to the US. Did they walk through the Darién and the Aztec Empire, or did they have boats that could make it all the way there - including with elephants! - but not back to Mali?

This web site is mythologizing history to bolster support for Islam. There's no need to fake the history. Real Islamic history is impressive enough that it doesn't need to be tarnished by lies.
I used HTML & CSS for my resume: http://thisisbrians.com/resume.html
Another layman here. In claim 1 it refers to "a space outside the structure" which to me implies this is literally a hold right through the aircraft. EDIT: I think I'm wrong here, the structure refers just to the cabin.
The IPython notebook for the calculation is now in the repo:

https://github.com/tmsgost/Bayes_Impact/blob/master/explorat...
They're not yearly salary to yearly rent - it's yearly salary to monthly rent. It's just to make a comparison - if you want percent of gross for rent you can multiply by 12.

You can also consider that it's comparing median starting income to average 1 BR rent. One wouldn't expect just starting out that you would have an average single bedroom.
Wasn't Google pretty dominant when their SOAP API was available? Aren't they less dominant now?
A typical Gmail user was receiving only about five emails per day, most of which were of promotional nature, and as such, required no response.

Wasn't the whole point of Gmail supposed to be better spam filtering?
#shirtstorm leads to crowdfunding for Dr. Taylor
From the author of TRIM enabler:

"When will you fix this?
This problem will not get fixed unless Apple changes their policy. Have you ever wondered why disk manufacturers like Corsair, Samsung etc. have never written a Trim driver for OS X? Or why they never offer firmware update software to OS X? (The only firmware updates they offer for Mac is a MS-DOS boot CD)

The reason is that Apple is keeping the AHCI driver private, making it impossible for anyone, even these big companies, to create a driver for SSD’s.
So the issue is not that Apple “doesn’t allow Trim Enabler”, but that they don’t allow anyone to create AHCI drivers.
If they made public the AHCI driver, I would be able to make Trim Enabler “legit”. Right now, it is impossible. You can read more about the technical issues here."

http://www.cindori.org/trim-enabler-and-yosemite/
"why hang on to a dead word?"

Because it doesn't refer to a key. It's more of a identifier. It would be considerably more confusing to substitute whatever key you think it should be. Cmd? Alt? Opt? Esc?

When I see "M-" in the literature, I know what that means and translate it to the relevant keystrokes. For instance, M-x for me is actually "C-[ x". I've customized it that way. However, we have a lingua franca for communicating commands despite the personalizations.
Thats not the sane way of implementing coroutines in C. Use makecontext/swapcontext if they exist, or implement in assembly.
It's probably because everybody who's using email for their business doesn't use Gmail. They use Outlook, or maybe just IMAP and a client.
Buygw2gold
A thought I've had about this is that perhaps the speed limit within a universe (299,792,458 m/s in ours) is relative to a constant at its Big Bang moment such as total energy contained or maximum rate of expansion of space-time. If the smallest particles of our universe are smaller universes and our universe is a tiny particle within a larger universe, then the speed limit within each could be different.

This theory would allow FTL travel in a larger universe relative to the speed limit of our universe, but not FTL communication. FTL travel within one universe may be the escape velocity required to enter the next larger universe outside of the origin universe's boundary. But a transmission, originally traveling FTL, sent into a smaller universe may be slowed by its speed limit (similar to light propagating through a non-vacuum medium). In a universe expanding like ours, the transmission would never reach the destination.
Just as FYI / technical distinction, you can be sued for rendering first aid, the likelihood of that suit being successful is unlikely due to the protections under the good Samaritan laws. Lawyers can still be expensive. As a professional you should always have professional indemnity insurance on top of whatever the employer provides.
Thanks. As a Vim-only user I don’t know all these Emacs things (but am willing to learn).
I agree that this is the pattern generally, but it doesn't explain Netflix's decision specifically, unless they're secretly planning an ad-based revenue model, which doesn't seem likely.
Talking Math at Pixar
AT&T’s Customers Have More Reasons to Choose VoIP
I don't find the "fi" ligature to be at all subtle. I commented on my reading experience in this other reply: https://news.ycombinator.com/item?id=8615657. You're right that Lato has some peculiar glyphs, but there have definitely been specific comments in my office about the "fi" ligature.
Potion – object and mixin-oriented (traits) language
No. What I'd bet is happening here is that you, like many people, don't really understand how an executive order works.

Except in a very specific set of circumscribed cases, the President cannot overrule Congress by fiat. An executive order communicates through the President's own administration how they plan on interpreting the laws written by Congress, and how they will exercise whatever rulemaking authority Congress has delegated to their administration.

If the President is declaring through executive orders an intent to ratchet up surveillance of US citizens, that is very much Congress's responsibility to resolve. The President is exercising rulemaking authority carved out by Congress. That authority --- OBVIOUSLY --- needs to be curtailed.
The real solution to this problem is to properly remove the left recursion. Student's often make the mistake the author did. Let's examine our favorite grammar:

E -> E + T
| E - T
| T
T -> T * F
| T / F
| F
F -> id
| number
| ( E )

The obvious way to remove left recursion in the grammar is to "flip" the non-terminals. Like so:

E -> T + E
| T - E
| T
T -> F * T
| F / T
| F
F -> id
| number
| ( E )

This is wrong. Consider the string "28 / 7 * 2". The orginal grammar produces the following parse:

E
|
T
/|\
T * F
/|\ |
T / F 2
| |
F 7
|
28

The new grammar produces:

E
|
T
/|\
F / T
| /|\
28 F * T
| |
7 F
|
2

When computing the expression. These tree produce different answers. The first gives "8", the correct answer, the second gives "2". Basically, it is parenthesized incorrectly.

To fix this problem the solution is to insert intermediate non-terminals into the grammar:

E -> T E'
E' -> + T E'
| - T E'
| e <--- standing in for epsilon, the empty string
T -> F T'
T' -> * F T'
| / F T'
| e
F -> id
| number
| ( E )

Consider the new parse tree

E
/ \
/ \
T E'
/ \ |
F T' e
| /|\
28 / | \
/ | \
/ F T'
| /|\
7 * F T'
| |
2 e

If processed correctly this tree will yield the correct expression tree.

*
/ \
/ 2
/ \
28 7

The "trick" is to swing up subtrees from the prime nodes. The operator coming up from the prime node is going to be the root of the subtree (for that precedence level) and the new operator is going to be inserted as the left most descendent.

To see how this works with code. Checkout this example recursive descent parser for this grammar.

https://github.com/timtadh/tcel/blob/master/frontend/parser....

The swing and collapse functions are defined here:

https://github.com/timtadh/tcel/blob/master/frontend/parser....

You can read all about how to do this correctly in the "Dragon Book" Section 4.3.3 (page 212) in the second edition. "Compilers: Principles, Techniques, & Tools" by Aho et. al.
In France, the official method (taught in first aid classes) is the 5+5 approach from the red cross described in another thread.
Neat idea. Minor correction: This is a published patent application, not a patent. According to USPTO records, it published last month, but examination has not begun.
XCode is amazing for C/C++ development, but Emacs is just better as a text editor. The rtags project [1] is under active development right now to have more IDE-like features in Emacs for C/C++ developers. There are some other projects, for example clang-complete-async [2]

[1] https://github.com/Andersbakken/rtags

[2] https://github.com/Golevka/emacs-clang-complete-async
www.runads.com is doing the same for their mobile advertising campaigns.

The ad-tech industry is targeting mobile advertising as the Next Big Thing, and they're right to do so. Anyone not tracking and optimizing ads toward the permacookie will be left behind.
Costs too much, I think, in that I think they're probably losing too much business. I know that I clicked the button happy to pay $10, they probably could have squeezed $20 out of me, I balked at the "$50/yr".

I think it might very well be worth paying that to someone just learning vim. I'm skeptical enough of that population understand that, though.
Probably not anytime soon.

We simply do not spend a serious amount of time on learning/practicing correctly. We spend the majority of our time "cutting code" rather than on skills development.

Even the average google developer mostly does work which doesn't really push them. They are still learning but at a much slower pace than they could be. So we aren't really learning quickly at work.

Maybe 20% of the profession spends a serious amount of time (5+ hours a week) on software development outside of work. Of those the vast majority are either mostly "doing" by working on an idea/open source (aka a lot of the HN crowd) or learning the latest and greatest framework/language etc while ignoring the huge gaps in their fundamentals.
Mind sharing a link please? ConTeXt is not really searchable.
The annoying thing about customising Emacs is that when following along with tutorials, I keep tripping up against shortcuts that I have reconfigured to work in a different way. Luckily emacs lets you type out the command in full to bypass the short cut key. I can then determine if it is useful enough to remap the command to a different key.
You're right, I just skimmed it to get an overall impression of the tone, didn't spend any time appraising its worth as a critique.