Hacker News new | past | comments | ask | show | jobs | submit login
JQuery plugins site accidentally deleted - last backup one year old. (jquery.com)
180 points by philjackson on Dec 9, 2011 | hide | past | favorite | 66 comments



One rule to live by:

Never use 3rd party javascript

In the 15-odd years I've been doing client-side web development, I've seen precisely one piece of script on the internet that worked as advertised and was durable enough to consider including in one my projects. That exception to the rule is jQuery itself.

jQuery plugins, however, exemplify that golden rule. Every time I've tried to use one (being a hopeless optimist and breaking my own rule), I've been bitten hard and ended up either rewriting it from scratch or spending more time trying to get it to work in a reliable manner than it would have taken to rewrite it from scratch.

I have no idea why this has to be the case, but it is. Javascript you find on the internet is worse than worthless. As such, while it's a shame they lost their plugin site, we're all probably a little better off for having to write our own stuff for a while.


That sounds like an excuse for NIH. It's an easy one to make because there are so. many. bad. jquery. "plugins". But there are also excellent ones; for instance, it seems like a big waste of time to replace jQuery Cycle. Similarly, I'm 50/50 on implementing dynamic tables by hand and using DataTables, but it seems silly to say "never use DataTables".


It seems very unlikely that any truly useful jQuery plugins are lost from this though, it seems likely that any that are unrecoverable (or extremely difficult to recover) meet the description he is making.


I never used the "plugins" site; it was impossible to know which "plugins" were truly careful and well-designed libraries, and which were just extractions from some web designer's last portfolio site.


I think it's a bit unfair to suggest that all jQuery plugins have problems (I use the validation plugin and it is excellent for catching mistakes before a user submits a form and starts the backend processing). I see them as being in the same boat as WordPress plugins - there are some which are well maintained and up to date, and then a huge pile of others which were quickly hacked together and then never looked at again.

It's the same with CPAN, PEAR and anything else where you allow users to contribute additional separate components which aren't maintained by the core developers.


I don't know if it is because of the javacript implementations being historically so distinct among themselves, and I maybe weego exaggerated a little bit. But that seems to be true to some extent among javascript libraries.

I'm not a very a very experienced javascript developer, just the occasional user, but the malfunctioning third party script syndrom is still out there on the javascript world. Sure the situation might be better than in 1997 but still...

I wouldn't say CPAN is comparable, the standard is higher and the modules work without glitches in most of the cases.


The comparison with CPAN was more to do with the abandoned modules - if you go onto CPAN you'll find lots of modules which were created years ago and then never updated, but they still show up in search results.


That's an incredibly broad brush you're painting with there. I've used things like jqgrid and datatables for years now with great success.


(Author of DataTables here) Thanks! There are some fantastic plug-ins out there, such as qTip, ColorBox, jqGrid, SlickGrid and many many others. Personally I take great pride in trying to maintain useful, up-to-date documentation, a large battery of unit tests and just generally trying to make the software as useful as possible, for the job that it is intended to do.

So there are (hopefully :-) exceptions to the rule!


Another vote for DataTables here, as it's made the current project I'm working on possible.

One question -- why Hungarian notation for all the API bits?


Legacy basically... When I wrote the first version of DataTables the company I was working fir then had strict coding standards that required the use of Hungarian notation, so I was "trained" in at at the time, and I've never wanted to break compatibility with old versions. v2 might see a clean break though (whenever I get the time to do that :-) ).


I love DataTables.

Don't bother breaking compatibility with old versions.

You want to know something that is 100x better? This exact comment on your FAQ page. More people will read it, understand you made that decision, and move on.

If someone cares enough they will fork it and change the variable names. But in reality it doesn't matter.


Awesome - thank you. I think I will do exactly that.


please don't do that. part of what makes using jquery plugins so horrific is that every new version is a "total rewrite" and/or drastically changes the API.

the API might use hungarian notation, and you might have fallen out of love with it, but so what? it's a pretty decent API and there's no real benefit to users in changing it. they'll all to have to update/rewrite their JS to stay up to date with the library for effectively no reason.


Thanks for the feedback - I really appreciate it. I'm currently in the middle of developing v1.9 of DataTables and backwards compatibility is key for me here. v2 is a good way off, and I'm certainly not committed to removing the hungarian notation (actually I find it quite useful personally). 1.x and the current API have been going since 2007 and is going to be supported for as long as I can see at the moment. If there are any breaking changes in v2, will be supported in parallel.

I know I don't want to update my own code for a new API on every release! Going back to the point of the OP there are certainly cases when writing custom code is beneficial for that reason, and equally (I believe) there are times when a tried and tested library such as DataTables is suitable.


I've found if the plugin has enterprise/business implementations, often that is a good indicator of durability.

Most of the jQuery plugins I've implemented involve me doing a proof of concept with the original plugin, then stripping it down or modifying it to meet any unmet performance or

Mixing plugins can be frustrating - it would be nice if some of them got together to do a plugin distro... it's the next logical extension.


I agree. In any case if you're skilled enough to roll your own, you'll be skilled enough to separate the wheat from the chaff.


I think there are a couple others trustworthy like backbone.js.

Most jQuery plugins were spagetti dom manipulations with a config object passed/merged in to defaults.

I never trusted that plugin site, and would always make sure the plugin was on github and being actively maintained etc.

I really like the idea of https://www.ruby-toolbox.com/ the stats on last update issue fixed, and popularity metrics helps allot. JS should have the same.


An important point is that even if the plugin is completely robust, it probably contains a huge amount of code/options that you personally will never need or use, so while finding something for proof of concept is easy, finding production practical plugins are hard.

An example for me was that we needed something that would float buttons in certain positions depending on user input, so the obvious solution was to get a plugin that did tooltips and change the graphics to hide everything but a button. Worked like a charm and not a single error on any browser or mobile device. The problem was it was nearly 75k all in. This is no criticism of the author, he did an amazing job of being as broadly adopted as possible by giving every option everyone had asked for and more. Obviously though I only need 1 set of those options out of the hundreds he'd had squeezed into his code.

Before we went live I decided to find time over a weekend to rewrite and got it just as stable and robust for under 6k. Clearly as a one off this is could be considered a minor issue but with times that by 5 plugins and you start having an unpleasant experience for people.


I think what you have highlighted is really a general problem with a lot of freely available software and that is the authors set out to solve a problem that they have, release it to the public and then get deluged with feature requests, which being nice people, they duly implement. Before anyone knows what has hit them, the little solution has become a big bloated piece of crap that is too large to use.

I've released a number of WordPress themes and I always get requests like "put in an option so the menu can be on the left or the right", "make it so I can pick any font from Google fonts using just a dropdown in the theme options" and many other wacky requests. I find myself having to draw a line between useful requests that everyone will benefit from and crazy edge cases that just serve one or two people but will destroy the elegance of my original vision. It's hard saying no to people, but it has to be done.


That's a great optimization to apply after you've shipped an app to paying customers.


> One rule to live by: Never use 3rd party javascript

This is a curious blanket statement. While I have run up against the odd crappy jQuery plugin, the tried-and-true plugins work flawlessly - often throughout jQuery's versions.

I think you're doing a disservice to those who take the time to make great jQuery plugins. The web - as a whole - is better because of the power that these plugins offer designers and developers alike. More people can abandon Flash for simplistic bells & whistles because of the jQuery Plugin.


This is a general point for all 3rd party code and has been on my mind for a while. What I'd really like are developer plugins that are documented not just functionally but architecturally.

Ideally they would be something you could pull off github, read the docs and understand the main architectural concepts involved (say, autocomplete) and then easily extend. This would be of far more value to me than a plug-in that try's to do everything under the sun for a mythical end user.


When I first started using jquery, that's exactly what I thought plugins would do. To my surprise, a huge slice of plugins are basically non-flexible widgets. This is rather childish and useless. Why would a javascript developer want a fancy styled fragment of a page?


While I think that's a bit dramatic, I do find that I often have to manually modify javascript libraries I use before they work the way I expect. I'm thankful for the 90% of the library I did use, though.


I disagree.

Yes, there are terrible Jquery plugins out there. But, I have a nice collection of ones I've used in previous projects that have saved me many hours.

I can now concentrate on the functionality of my application rather than writing yet another table pagination plugin.

It's also nice because if you can find a mature enough plugin, most of the bugs have been fixed for you through the community of people that use it.


"Even more unfortunately, I didn’t back up the database before I began this process."

That's the takeaway here, no matter how much of a hassle it is backup the DB before you practice delete-fu - no matter how ninja you are you will make a mistake.


We had this debate a couple of weeks ago: always clone your DB to a staging or local server and practice on that, and never do your delete-fu in a REPL!

But as we all hated that bloody website anyway I doubt anyone will shed a tear.

Maybe it was a relational-algebra-based freudian slip...


If you have a good setup, you shouldn't need to backup the database before every destructive operation. If I went in and accidentally deleted every user record in my database right now -- the site would crash -- but I would be able to restore the site to the point judt before I screwed it up. This recovery would come from the last full backup and the transaction logs.

If my server crashes, the hot replicated backup server will take over. If a hacker destroys both servers and all local backups then I have my last full offsite backup and my nightly off-site transaction log backups so, at most, I'd lose one day.

And I'm not much of a sysadmin -- I've a sole developer and I usually sysadmin by Googling everything and using some common sense and yet I still managed to throw this setup together. You would think a site as big and important as jQuery would put have some common-sense backup procedures in place.


Definitely. And after you back up, do a SELECT, confirm you're seeing the correct records, and only then change the SELECT to a DELETE.


There are two periods in your career when you are most likely to this: when you very little experience or a whole lot of experience. The former because you have no idea what you are doing, the latter because goddamnit I know what I'm doing.


Apart from the actual takeaway here, it is interesting to see how more and more projects are moving away from Content Management Systems, custom CMS scripts, and related solutions and instead host everything on Github. This is really good, especially because Github has a hell of an interface compared to most home-baked solutions.

Another thing that comes to mind here are Jekyll, Hyde, and Toto, content management / blog engines that make it easy to host everything on Github and use it as a storage. Toto even uses Github as the main and only storage.


Except they're still going to use WordPress, which is... a content management system.


Github fanoboyism?

I don't see why that would be so good. Even if github is the best thing thing in the world after chocolate cookies.

Personally I don't like jquery plugins website, I find it clunky. Secondly, I agree that github has a nice slick interface. I still don't think the massive migration to github is a good thing. I would much prefer more diversity. Github doesn't even have a discussion/mailing list platform, I don't think that's a very positive thing for many projects, just to give an example.

But mostly I'm curios, 'specially because of their interface', what are the other reasons?


I would say what’s positive is that more projects are finding ways to move away from a centralised database into a distributed, replicable system such as Git. Github provides an easy-to-use interface to Git, but this way of working is not necessarily limited to GitHub.


We are very sorry, but also very excited!

Damage controlling like a ninja.


they shouldn't be sorry. Developers actively avoided the plugins site for the last few years, as it was nearly useless for finding up-to-date, quality tested and mantained plugins.


>Developers actively avoided the plugins site for the last few years //

There are several comments on the linked page from people, developers even, that say they hung out there daily.


There were usually multiple plugins (of varying quality) sharing the same name, most outdated, no documentation, sometimes no link to a source repo. It was hard to navigate and slow to search. I work with 6 other front-end devs, none used it.


Not to mention that the JQ people apparently decided to leave plugin comments as absolutely undifferentiated blocks of text concatenated without the benefit of CSS. In fact, just this one fact has led me to a belief that JQ people are not actually interested in usability. A lot of people talkin', but nobody knows what's going on.


And painful for those starting with jQuery/plugins before they realize it's better to look elsewhere... :)


Note to badger7: your post appears to be dead.

badger7 39 minutes ago | link [dead]

Many of us have made that mistake - we're the ones with 'WHERE' tattood on the back of our right hands.



So, is this the real story behind this post? https://news.ycombinator.com/item?id=3310904

From the original response: "In cleaning up spam on the old site we got a bit overeager and decided it wouldn't make sense to leave the broken remains."


Meh. Previous discussion centered around the distinction between shuttered and shut down. Now that it is a moot point, we can get on with actually having a jQuery plugins database that is more useful than blindly using google hoping to see the right plugin for the job.


Yep, I expected the chaos during that discussion. Nowadays, jQuery world is getting weird


Nice way to make a clean break. Personally, I wouldn't blame them if they did it on purpose (not that I'm suggesting they did).


"And nothing of value was lost."


I bet someone has a more recent [partial] mirror of the site/plugins (even than archive.org), one of the chaps at Google maybe?


Can't wait for the announcement that they accidentally deleted all of the lines of code for IE-specific hacks.


I'm actually glad this terrible site is gone and makes room for something better. Now delete the rest of jquery.com, please!

Don't get me wrong, I love jquery. Just the website is an abomination...

Curiously a large portion of their target audience consists of web-designers. Has really nobody offered to replace that mess with something good?


I think this may be intentional and not accidental to weed out obviously dated plugins. I mean if a developer cares enough about his or her plugin, then they will update it on the new site - is what my guess is about their reasoning.


i like a bit of house cleaning, there were a lot of outdated plugins there anyway.


I think this was planned.


when I worked at motorola, there are sysadmins that were fired _immediately_ after they did 'rm -rf /'.

on another company, those sysadmin could not recover from a mis-operation either, the whole company lost 4 month of development time. those people, amazingly, still keep their jobs.

Adam should leave this project the second day, this kind of error is simply unforgivable.


Sounds to me like your CTOs should have been fired and the admins kept their jobs. If your company can be crippled by a single box being destroyed, it's probably not the individual devs or admins at fault. An errant 'rm' or damaging programming error is more of a risk than a disk failure or a building fire. If you don't plan for that, your company is making a scapegoat out of the person who made an honest mistake. At my last two companies I worked for, it would have taken multiple geographic regions being simultaneously affected by major catastrophes for 4 months of work to be destroyed, and I'm not even sure that would have done it with any degree of certainty.

Where were your redundant source control servers, local and offsite backups, iterative staging environments, etc? Hell, I have all of those at my current workplace and I still keep unofficial backups of everything critical on my workstation. These are all long-established best practices and relatively simple and cheap. The only way I'd fire someone over 'rm -rf /' was if it was done with malicious intent or was one of many examples of someone's ineptitude of negligence.

On an open-source project with low/no budget and less checks and balances, I think you have to be even more forgiving.


Free and open source projects dont 'fire' their contributors. They appreciate their contribution.

He just made an honest mistake.

The only sad/odd thing is that they had no daily backups.


This is the reason i'm not touching jquery - everything beyond jquery and jqueryUI - should be untrusted to a degree.

I think this should be reminder it's not a bad idea to use more comprehensive solutions like dojo toolkit or YUI.


Why in the world i'm being downvoted? Fact is that plugin repository was deleted and everyone acts like no damage was done. It's perfectly valid to use more full featured js stack and do not depend on 3rd party code that can get unmaintained/disappear any day.


>Why in the world i'm being downvoted?

I imagine it's because we find your attempts to correlate maintence of the plugin repository by jQuery's shepards and the quality of plugins developed by independent people illogical.


where did i write that? I said that that EXTERNAL plugins can get unmaintained at any point and "vanish" from web - or start getting incompatible with future jquery releases. Which seems perfectly logical to me and it happened before many times.


> i'm not touching jquery

> plugin repository was deleted and everyone acts like no damage was done.

Your comments weren't about being wary of using random third party plugins that are likely to go unmaintained. I assume that everyone looks out and is cautious of that, as I do. I presume for example that when searching for django social-auth apps, a high priority in making a choice is the activity and last commit timestamp.

Your two comments above just seem to link the plugin repo to hating on jquery in general, which I don't really understand.

(for example, the top comment in this thread is basically "be wary of third party javascript", but it's actually phrased that way and it's been much better received)


you took random parts of my bigger statement and try to prove your point. Keep your silly accusation of "hate" to yourself. And no - not everyone does like you do, it takes someone very arrogant or just young and naive to assume "that others do as i do". Hey i always make backups - hence what happned with them never took place (you see how stupid this logic is) - and yes i agree you do not understand what i wrote, maybe you will one day. For now i dont feel like discussing this further with someone who makes his own conclusions, puts them in my mouth and acts like i said something offending. so EOT from me

PS. Read my first comment two or three times IN FULL. Then maybe you will get the message i tried to carry over. Reading text with understanding is a very valued skill.


You're kind of being a jackass. You point blank used this scenario to dog on jQuery and say you would "never touch it" and went so far as to say you'd use a more robust one. You're really going to act like I'm mischaracterizing what you said?

And you're really going to tell me I'm being "young and naive" because I expect that others probably watch out for whether they're using a maintained project or abandonware?

You need to lose the attitude. I didn't even downvote your comments but I wish I could downvote this last one. Probably the rudest reply I've ever received here. It's not as if you're new here. I keep coming back to this and reading it in shock. I can't believe you're being this delusional, accusatory and flat out rude towards me. Someone pissed in your Post Toasties this morning.

I don't even have a point I'm trying to prove here. I couldn't care less if you like/use or dislike/avoid jQuery.


OK i'll try to explain this as clearly(and politely) as i can:

> This is the reason i'm not touching jquery

I'm using something else because of external plugin situation for jquery in general.

> everything beyond jquery and jqueryUI

Where do i attack jquery project? "You point blank used this scenario to dog " WHERE ?

> should be untrusted to a degree.

It means you should be extra careful what third party code (beyond jquery maintained projects) you choose.

> "went so far as to say you'd use a more robust one."

Oh so now it's in bad tone to provide alternatives to your favourite framework? Seriously we are not supposed to speak of other software here?

> "You're really going to act like I'm mischaracterizing what you said"

Yes, seriously in my eyes you do exactly that - that's why you got harsh replies. I might have to live with jackass tag, but It is my right to not agree to change my words to something else.

Can we move to something else, it's not like we are contributing to topic anymore.


I already quoted you on these points. Direct quotes. That don't change their meanings even in context.

>Can we move to something else, it's not like we are contributing to topic anymore.

Thanks White Knight. You're the champion of usefulness in this thread.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: