skysight-inc/HackerNews huggingface dataset:
So, uh, what will I gain by ditching jQuery?

I will lose a beautiful API with a simple, terse and familiar syntax. I will have to work with an ugly, inconsistent and loquacious API, which has no guarantee of being cross-browser (or accounting for various browser quirks).

And for what? I doubt 81 KB would make much difference to 99.9% of my visitors.

As for performance -- it makes sense to rewrite bottlenecks in pure highly-optimized JS. But to write vanilla JS from scratch, without even knowing whether you'd need that performance boost is a pure waste of time.

UPD: it has been pointed out that this webpage is directed at developers of JS libraries. In this case, all these points are valid, but the title, then, seems to be either misleading (as in "link-bait" misleading) or a plain truism.
That's really interesting... Especially in light of the article on HN which pointed to sitting slouching back as being the "best" posture to be in (which is my preferred posture when coding), and having a good chair where the back tilts might actually help.

I do agree with you about the plane thing. When I'm flying redeye from SF to FL, I try to either find an empty row and lay down or lean on the window and sleep. I did sit in a Herman Miller chair before when working for a well funded tech co. and I used to look forward to sitting on the chair and getting in the zone. I was OK, even after sitting for a long period on those.

The oddest issue I had then was getting blisters on my back since the chair wasn't a mesh back (it wasn't an aeron) and tended to heat up from me sitting in it for a long periods of time. Although, that happened a few 16 hours day in a row.
I've not played with `inline-block` grids enough to be honest, but I've made a note to revisit it in v4.
Hi, I'm one of the founders. We use unique device identifiers, which you can reset yourself on iOS, to help ensure account security. For example, when you log in from a new device.
There are some good ideas floating around, and we could do a lot better than the direction we're going now, but I don't think it's really possible to try and eliminate all the ways in which money buys influence.

Once you can employ people to work for your political ends (by directly engaging with congressional staff, by producing supportive research, by working a PR campaign...), you have a bigger voice than someone else, whether laws allow you funnel campaign cash by the shipping container or not.

My guess is that the only real way to balance this out is have more citizens talking to congressional staff.
Entrepreneurship is Not About Creativity
Marketing is anything you do to help people find and use that awesome product you're building. It doesn't do anyone any good if they don't know that it exists.
Interesting idea! I don't see a direct analogy with how we communicate in the real world. So I wonder what use will emerge for that medium. Network sentiments?

Anonymity will be relative to how unique your behavior is among your address book contacts. Might become an awesome tool to educate people about the difficulty of anonymizing content...
Hierarchy of DevOps Needs
Paypal lies.
Both. Squatting makes your bowels more relaxed which helps emptying them:
http://wellnessmama.com/wp-content/uploads/InfluenceofBodyPo...
"I could see the SQL injection happening; I pretended it wasn't happening, like a good developer, but it was there. Website users shouldn't create those kinds of problems. I don't know what the trick is to avoiding them, but many of users do".
A client that relies on receiving an explicit failure response is broken. When the server is killed by the OOM killer or when power of the server fails or the network connection between the client and the server fails (for too long) while the commit is in progress, the client also doesn't get an explicit response, and thus also doesn't know whether the commit succeeded or not, so it has to deal with that case anyhow - and if it doesn't lose data in that case, it won't lose data on SIGKILL either.

And the whole point of a journal is that it doesn't need to be clean. If your database requires the journal to be clean on startup as a condition for its correctness, then the journal is useless, it could just as well just require the data itself to be consistent. The only reason why there is a journal is so that correctness is not affected when writes are interrupted as any point.

Also, for that matter, a SIGTERM might be able to guarantee that the journal is clean, but it would be highly broken if it tried to guarantee that the client gets to know about the result, as that could take an arbitrary amount of time that might be dependent on the behaviour of remote systems, which would be terrible shutdown behaviour indeed.

Really, the only reason why a database should even try and catch SIGTERM is when checkpointing on shutdown is a lot cheaper than log recovery on startup - other than that, it only makes the code more complicated without providing any benefits.
Why would anybody want to use XMPP with mobile anyways?

Anyone with an Android-device is already using it. Android's push-notification depends on XMPP to work, and Gtalk/Hangouts is already piggybacking on that, making it a free ride.

So, unless you are on the patent-troll side of mobile, you have no reason not to use it.
My colleagues and I learnt that lesson the hard way. We are working on a WYSIWYG editor (Aloha-Editor) and the first version did depend on jQuery (and jQuery UI for that matter). That caused a lot of trouble for people integrating the editor in their websites, especially if they were already using jQuery. For our particular case we really didn't need it, as it's just as easy to say .getAttribute() instead of .attr(), and we didn't use selectors much, if at all. Effort is underway to get rid of the dependency from the core library in the next major release.
Logged in to post basically the same comment, then saw you already had. Essentially, no one who knows what they're doing in Python would write the function that way.
It can save a lot of time and make a communication between project team clear and prompt.
I really don't have any major complaints, at first noscript was messing up things but everything works afterwards so far.

One idea though, where you have the green box that can be hidden, it would be nice to have an interpreter box there, to mess around with as one goes through (and keep it persistent between pages). That way, if someone just wants to mess with the text already entered on the page, they can, but if they are like me and like retyping things (a form of mental note-taking) they could do that too.

I know at first the main issue I found with lisp was that I didn't know how to get an environment going to just mess around with, and having something like that might be useful to provide a standalone from the iSICP (or it might not).

Overall, very impressive, good stuff.
Ignoring the article's snarky tone, i am not really sure if there's anything interesting left. Actually people are currently advising to move from OS-specific code to HTML, the mobile movement was long before that. Not sure where the author gets that trend for native apps.

But considering that this comes from LinkedIn, i admit things like IMAP MITM are only feasible with truly native apps, as opposed to PhoneGap-based ones or even "pure" webapps.
>When I read:

> if name and pets and owners

>I have no intuitive idea of what that means, of what's going on in the program.

I agree with you, when I read that I think if name and pets and owners, what? All equal each other? Seems like an unfinished statement.
I've never really understood the point of most of the Spring usage I've seen; seems like most people want to replace Java code that is type-checked and can throw exceptions at reasonable places when something goes wrong with XML 'code' that has neither of these properties and thus turns debugging into a black art. Apparently, this is the right way to do things.

The only reasonable use case I've encountered in practice is the ability to replace some major components of your program with stubs for use in automated testing.
GoDaddy accepts partial responsibility in social engineering attack
nowadays most people don't even know what a swale is

crusso raises his hand then goes off to google.
That sounds more like an argument for picking a canonical version of jQuery that can be cached aggressively, rather than everybody shipping a probably-buggy re-implementation of the 25% of jQuery they need.
I'm surprised by your definition for a function named is_digit_char. I'd expect such a function to be something like:

return len(s) == 1 and s[0] in string.digits

Or

return re.search('^\d$', s)

Then it can be used idiomatically. The function you defined I'd call parse_int:

def parse_int(s)
"Return a parsed integer from 's' or None if it's not an int."""
...

Which would then be used as:

i = parse_int(s)
if i is None:
...your function definition...

$0.02.
So the input/output pairs are a linked list of objects? Which then contain vectors comprised of linked lists? I am not very into JavaScript, but that right there must preclude this from doing anything significant in a reasonable amount of time?
True, and it's somewhat disturbing to see "environmentalists" tie themselves in rhetorical knots trying to argue for nuclear with a straight face.
Great? Looks bland. Anyone else have a weird box sitting under the download button? http://i.imgur.com/U5OyI7g.png
This link is in the first sentence: http://matt.might.net/articles/by-example-continuation-passi...

You don't think that would be enough to explain continuations to a working programmer? It doesn't really use any specific or formal mathematical language, and explains them mostly in terms of js with examples.
Resig on document.querySelectorAll: http://ejohn.org/blog/thoughts-on-queryselectorall/

Good SO discussion on this topic:
http://stackoverflow.com/questions/11503534/jquery-vs-docume...
User Interfaces as an act of communication
SafeWayHealth is one of those. They sell the, cash, price of healthcare procedures to large employers that self insure. This DRASTICALLY reduces the cost of healthcare (e.g. a company pays $800 cash for a colonoscopy, vs. $7,000 via insurance). The problem is they only sell this info to companies with 10,000+ employees.

This service needs to exist for everybody.

http://safewayhealth.com/

Source:
http://www.quora.com/Medicine-and-Healthcare/What-are-some-o...
This is exactly what we're trying to combat. For modern browsers, in many cases, it's just not true. There are a few utility methods that are tricky to replace, but you really shouldn't be including jQuery only for it's utility methods.
ERP software is notorious for doing this.

Many a growing company has found itself forced to change its business processes to align with the SAP way of doing things, instead of the other way around.

At the top end of the scale, companies are large enough to write custom software. At the bottom end of the scale, you can't yet justify buying software, so a lot of processes are still done manually.

It's in the middle that you tend to get squeezed. You're too big to do things on paper, but you don't have the in-house development talent to customize the software to fit your needs.
It's odd, but after reading everything and the examples at the end, I feel we need jQuery more than ever. Kind the opposite of the OP is stating. Great post though.
What an irrelevant post. I'm sure the $75 they spent on their domain name is critical to the Muslim Brotherhood's attempts to brainwash the west. Or something.
you never use gettext in REPL :) and it's common to use '_' as gettext. Less typing, more readable strings.
If you don't believe me, you should believe Alex Martelli [1], a random Python developer [2] or just read Official Python documentation [3] which recommends assignign gettext.gettext to '_'...

[1]: http://stackoverflow.com/a/2745537/720077

http://stackoverflow.com/a/1739541/720077

[2]: http://stackoverflow.com/a/5893946/720077

[3]: http://docs.python.org/2/library/gettext.html
Something wrent wrong saying on sign up... Is it down?
Flatron – Flat Sublime Text Theme
Hi, I'm one of the founders. Your description is just about spot on. :-)
For Android at least, the async tasks pieces seem very interesting, although a little verbose. I guess it can't be helped in Java though. If Android adopts Java 8's lambdas that should clean up nicely though.
just for reference here's the original link to this breakdown.

https://plus.google.com/u/0/106075758531242552855/posts/JrPi...
WhatsApp is using a customized version of XMPP: http://en.wikipedia.org/wiki/WhatsApp
You might not need jQuery 1.x.

You might be able to use jQuery 2.x instead, which is smaller, faster, and drops support for IE8 and below.
Not sure if it's up your alley, but if you like strange and terrible music from the 70s and 80s, check out Crap From The Past (http://crapfromthepast.com/). Every show from its ~22 year history is available from archive.org (http://archive.org/search.php?query=%22crap%20from%20the%20p...). Enjoy!
Realizing One Web
I realized recently that the reason that there is no way of mocking C is because of a weakness in the language implementation/design. In Python, it's easy to mock and unit test globals, because in the test you can just overwrite them in the test's setup, and restore them in the test's teardown.

You could argue that it's a static vs dynamic typing thing, and I don't know enough to really dispute that, but it seems to me that there's no inherent reason that a static type system can't handle using a different concrete implementation. I think you can do this with Java/C# by doing some library loading trickery, but it'd be inconvenient.

And that's the whole point of all this, isn't it? Automated testing is a convenience that saves you from doing manual testing. Unit testing is a convenience that catches test failures before commit rather than during the automated testing phase. Creating the unit test, well, is it more convenient to create 8 interfaces and completely change the way the code is structured, or is it more convenient to mock out the singleton? It depends on the circumstance, I've done both in various languages. It's good to have the option.
This is an ad.

It's only vaguely disguised as a how to, even if it is something many HN'ers are dealing with.
absolutely! that one is quite high up on my python_idioms_to_import file
That's a really bad analogy.

People don't use Ruby because C's standard library works differently across different platforms.

This isn't about "rewriting jQuery methods with vanilla js". It's about using the built-in, native, vastly more performant methods that come standard on modern browsers.
(I can't reply to jessedhillon's follow-up comment yet & i don't want to wait so I'll just reply here....)

If you look as far as... oh say, the top of this thread on HN, you will hear accounts from people who have apparently done this very thing (asking PayPal for last 4 digits and gotten an answer). So it seems like their policy did not forbid it, anyone could do it, so why not believe the hacker's claim?

You can't have a policy of routinely giving out certain info then deny that you gave it out in a case where it caused a security breach. What is the defense there? "Well yeah ordinarily we DO give that out but we could tell this guy was a hacker so we didn't." Yeah, they wish. If they regularly give out last 4 digits, then the claim that they didn't in this case is absurd.
I'm sorry, but I find this attitude really bizarre. You seem to confuse marketing with advertising, and even then it still feels bizarre. How are people meant to discover products, or solutions to their problems?
Couple improvements to some of the modern-browser code examples:

FadeIn:

element.style.transition = 'opacity 400ms ease-in-out';
element.style.opacity = 1;

Each & filter (this also applies to people's complaints about browser methods not working on collections):

[].forEach.call(document.querySelectorAll(selector), function(el) { ... })

The native versions also usually run several times faster than the JQuery versions, which is the main reason to use them. This meme that you can't build performant, jank-free HTML5 mobile apps? It's largely because of JS libraries and developers that don't know which operations are fast and which are slow.

I'll also plug my colleague's autogenerated index of the HTML5 APIs:

http://html5index.org/
I guess you're right in the cases of the aquifer's. There are 2 possible solutions. 1. Tax water pumped out of aquifers so that demand levels off at the aquifer fill rate, or 2. Wait until all the the aquifers are depleted to lower levels and force people to re-drill their wells and build new more expensive pumps. Eventually the cost of pumping out the aquifers will reduce demand to the aquifer fill rate.
Pair Programming Tools – 2014 Q1 Survey
GoDaddy accepts partial responsibility in attack of N’s account
>"If we are reducing to absolute absurdity... This conversation is over."

My example was based on the many governments which have treated certain races as sub-human; I agree it is not directly analogous, but I was trying to demonstrate that democracies are not always fonts of virtue.

You went and called me a "Randian" (without any demonstrated reason), I believe it was you who was enjoining a "battle" through unsubstantiated allegation.
I wondered to myself, why did he create a custom website just to present this? It seems like a great way to position yourself as a skilled front-end developer and advertise your services to potential clients. I suppose it could also have been done out of some kind of altruism, but I'm guessing the former.

Either way, this is pretty neat, and I'll probably be bookmarking it. We're using ClojureScript now and migrating away from jQuery, so this may prove handy.
Indeed you don't need jQuery. Though, there are standards and there are market/industry standards. jQuery has become a market standard wrapper. If jQuery isn't used, developers will still write a wrapper to ease some of these methods. It is better if that is a common market standard like jQuery than everyone doing it.

The amazing part of jQuery still to this day, beyond the selectors (which can now be replaced yes), is the plugin system. Just like Python, there is a plugin for everything and if you don't like them or there isn't one, developers can easily make one and share it with the world and it just works (tm). It is the most easily pluggable javascript library. It creates a baseplane that developers can be more efficient in. Everybody tries to replace the jQuery selectors, animation etc but they miss that jQuery is a platform and a pluggable one at that. It is responsible for tons of productivity.
The first example alone is reason enough to use jQuery - why would I want to use four statements instead one? Why would I want to have to remember to call `send`? Why do I have to remember the last boolean parameter of `open`?
> However, using native JS as the page suggests, I will need to construct a loop within my function, especially if I'm using the DOM supported getElementsByClassName method, returns a pseudo-array of DOM nodes which don't have the style method available on them. You'll notice the examples already assume a selected element and leave much of this heavy lifting out.

You don't really need jQuery for that, though. You just need a forEach-like function that works with NodeLists. This is easily implemented in three lines of JavaScript.

> Furthermore, jQuery offers the selection simplicities of Sizzle (ie: "#div .container .item). To do the same selection process in vanilla JS, I'll need to nest 2 getElementsByClassName functions in a getElementByID function, and return the concatenated results from each potential .container. That is to say nothing of more complex selectors.

Not since IE8. These days, you can just do document.querySelectorAll('#div .container .item'). For most common selectors like the one you showed, Sizzle ends up delegating to this method anyway. You only need Sizzle for selectors that cannot be expressed in CSS (e.g. "select a UL with only one child", which would require the CSS4 ! marker).
Because we are software writers and we are looking for problems to which our skills are a solution. The barber might just need another paper calendar, but then where does that leave me, the software developer? It leaves me still in need of a job.
I've had pretty terrible performance with complicated CSS animations that I managed to clear up with switching to JavaScript and requestAnimationFrame
I'm surprised they don't have the Google Books n-gram dataset [1]. Then again, maybe they're more focused on data that doesn't have a good home already than on mirroring.

[1] http://storage.googleapis.com/books/ngrams/books/datasetsv2....
What if $(el).length === 0?
Greenspun's Tenth, updated for 2014: "Any sufficiently complicated website contains an ad-hoc, informally-specified bug-ridden slow implementation of half of jQuery"

I understand the visceral opposition, but once you start writing a fallback to support some browser (something to support IE or FF or Safari or Chrome ...) you might as well use the battle-tested solution (and write your own thing if you find performance to be unacceptable and trace the bottleneck to jQuery)
I think "bland" is what they were going for since this version of Bootstrap is more barebones stylistically and it's up to the developer to make it look the way they want.
This is genuinely what I think as a user. For example, I quite frequently write a tweet and then delete it because I have second thoughts about whether I want to be associated to it.
S3 keys use the leading ~16 bytes for partitioning, most significant first, as I recall. Prefixing with guids is ideal, epoch timestamps are pathologically bad, a "random" char should be enough for 99% of users.
Another product going directly to the waste bin.
Continuous delivery workflows at Google, Facebook and Amazon
Totally idiotic.

"Our service is totally private and anonymous, except for your telephone number, IP address, browser type, access type, pages viewed, etc... but 'we promise not to abuse that information'"

...Riiiiiight. Just noticed one of you is ex-google as well, I'm sure you learned a lot about respecting peoples' privacy there.
Could someone in the ad industry please confirm the key assertion of the article: that the targeting value of Snapchat's data is comparable to Facebook's targeting value? With improvements coming in NLP and computer vision (i.e., understanding images and someone's preferences), it also seems unlikely to remain true even if true today.
That weird box displays as an ad for me.
Morpheus Wants You to Drive a KIA
In other words, it's not different nor more secretive (likely less) than any other platform for sharing ideas out there.

What would be interesting is an application that does not log and keep track of the user's identity (this obviously does), one that runs on a similar "no-log" infrastructure, and whose code is open source and readily available for auditing.
This be right on a purist level, but on every practical level there is little reason not to use [library of your choice]. If you're loading from the google/jQuery CDN (with suitable fallback, obvs.) you've got a good chance of a cache hit, and even if it misses it's a tiny one-off penalty.

And ultimately, why not? jQuery works, has a wide base of users, etc. Sure your trivial Js might not need jQuery features now, but as you add more dynamic behaviour, at some point you'll wish you had just used it to begin with.

A better message might be: make sure you know what the underlying javascript looks like, because there are a lot of people helpless without jQuery.

PLUG: if you're bored of jQuery, try Dojo. Far more power, in a less intrusive form, IMO.
First successfully grown human skin in the lab
Yeah man, we only use domains that are hand made in 'Murka!!! Yeeehaw.
Lamborghini and McLaren Dealerships Drive Bitcoin Adoption in USA
agreed, draw.io is awesome.
Seems like this kind of thing would have extremely low lock-in. All the usual mechanisms for that are invalid in this case.