174 karma · joined February 1, 2012
This abomination has the ability to put more than decent computer into a miserable slug. I cannot imagine how much my client would have saved in productivity from all its employees and contractors if that thing was uninstalled.
I just spent the whole day trying to fix compatibility issues between different versions of npm libraries transitively imported in a project. Reusability in JS is a joke.
I mean, it is battle tested, has all the features you mention, plus pipeline of tasks, is extensible, can be clustered if needed, and, as a bonus, can serve as a CI as well.
The only downside I see could be the memory footprint, or the fact that you might despise Java.
I was on your side for a long time, but I've come to appreciate a minimalist, simple, well documented in-house framework over a hype-driven "solve-all-the-thing" one, even free and with a currently big community.
And by the community, I do not count those not having made any contribution but complaining about what is there in the first place.
This case is about the toolchain, but the same could be set about the code. Does it has to stick to an imperative form, as it is the most common widespread and understood paradigm, or can it be functional because it fits best the original design?
As long as the API is clean and the documentation is clear, I'm fine making the little extra effort to enter the world of the author rather than him/her lowering his/her expectation about what the project, as a whole, should be.
No, we don't.
Not only is it extremely expensive to go in court to have such a judgement for such affair, but it is also extremely complex as you are dealing with international laws and that most countries will not enforce a judgment made by another one for such "superficial" topics. And on top of that, you can add the Streisand effect.
Moreover, you still have the right to access the information, it will just not be shown by the popular search engines, as is the vast majority of the web.
This law is there to protect those that get a bad press on the web for things they already redeem themselves, have reach the prescription delay (e.g.: mistakes you did while you were minor) or that suffer from a side effect of some unrelated topic.
If you look at the questionnaire, it is long and complex enough to prevent most of abusive uses as it is the current case with the DCMA takedown idiocy. Plus the process is quite long (currently several weeks, or months) before a request is validated to prevent some scandale to be obfuscated that way.
Encoding without proper context means "convert in a coded form". Hum that's not exactly what we want. So, let's add the "computing context", now we have, as an example, the ability to encode a WAVE file into a MP3. But wait, we lost information here! Bummer...
Sanitization in the context of computing does not specifically means that you have to "encode", or better, "transcode". It means that you have to take appropriate measure so that your input DATA cannot be interpreted as CODE by the receiver. Bonus point is taken if the measure you choose is lossless in term of information carried by your data.
Problem, your theorem is dealing with discrete numerable infinity...
On the side note, English meaning of Sanitize is "Make clean and hygienic", nothing more. It says nothing about "removing". Other definitions are extensions based on CONTEXT, once again.
A word is nothing if not bound by a context. Developers have already developed part of this context. Design patterns names are an example of those words defined within the context. Sanitizing input is just another.
But database migration has little to do with version control of code. With code, when you switch from a version to another, either you have a bug^H^H feature, either you don't. And you can repeat that as many time as you want.
Data is another kind of beast. You cannot simply "DROP" a table or even a column back and forth and rely on your backups (if any...). You do no longer want a table? Do not use it anymore, be let it there. You want to migrate your data? make sure you do no loose information. And if you do, duplicate it somewhere if you have to "rollback", or at least choose sensible defaults that can be applied.
Data is there to stay, as complete and detailed as it was originally put in your datastore.
I tried it both with a GMail and a classical IMAP accounts. Both were a total disaster. Two years of development for THAT?!
Dates were messed up. Some mails would never appear, some would, but with another sender! Gmail labels were not properly managed, Lists cannot be deleted, even when emptied. And those new MailPilot.* folders are just plain wrong, it breaks your flow in ANY other mail client.
What a waste of time.