What is the best approach to web app development in Python without a RDBMS? - <AUTHOR>

Having read a couple threads [1] on dropping the RDBMS in favor of keeping data in RAM and logging to disk, I'm wondering what is a good setup for a typical Python web app.
There seem to be a number of options; memcached, BDB, ZopeDB, metakit, serialising into sqlite...
Any ideas?
1. [http://news.ycombinator.com/item?id=14605], [http://news.ycombinator.com/item?id=16098]	 <comment><USER2> <http://itamarst.org/software/cog/>

Cog is the Checkpointed Object Graph object database, providing semi- transparent persistence for large sets of interrelated Python objects. It handles automatic loading of objects on reference, and saving of modified objects back to disk. Reference counting is used to automatically remove no longer referenced objects from storage, and objects will be automatically be attached to the database if a persistent object references them.

</comment><comment>

I looked this package over a few years ago, and I think it got an awful lot of things right... but not enough.

It's worth examining the design if you want to understand the intricacies of non-RDBMS approaches. A lot of thought went into it.

</comment><comment><USER3> Depends, what are your requirements or what does your program do?

RDBMSes are popular because they're easy and they perform decently for most answers to the previous question. And it may be that an RDBMS _is_ the best answer for your application.

<comment><AUTHOR> I should have been clearer in the question, I'm not looking for a solution to a specific problem, I'm looking for a general approach to building this kind of system, or an understanding of the benefits and trade-offs of different methods. I understand why RDBMS are normally used, and am comfortable with SQL, but I'm interested in the alternatives.

<comment><USER3> Start simple: store the data in-memory in whatever way makes sense, and just write a log file that contains pickled transactions that can be played back. Conceptual sketch of how I would do it follows. This isn't "the" way to do it, just "a" way to do it.

      # this is the utility method used by the rest of your code
      # to register a new user. maybe this is at module scope in
      # the User.py module
      def register_user(user):
         run_transaction(AddUserTransaction(user))

      # this is the actual object that represents the
      # transaction
      class AddUserTransaction(Transaction):
         def __init__(self, user):
            Transaction.__init__(self)
            self.user = user

         # all Transaction objects have an apply() method
         def apply(self):
           Transaction.apply(self) # invoke base method

           # the following MyGlobalUserTable probably just
           # stores a couple dicts as indexes over the user info
           # e.g. it will have a dict by username, by user ID, etc
           MyGlobalUserTable.add_user(self.user)

      def run_transaction(t):
        # apply the transaction first, then write to the log.
        # since if it crashes while running the transaction,
        # you don't want to crash again when you play back the log.
        t.apply()
        transaction_log.append(t)

Here transaction_log.append(t) is some method that will pickle the transaction and append it to some log file. You'll have multiple classes like AddUserTransaction, all derived from Transaction. When you crash and want to play back the transaction log, all you have to do is unpickle the Transaction- derived objects and call apply() on them in the same order. <http://docs.python.org/lib/module-pickle.html>

Caveats:

\-- This will eventually get to have too large a startup cost to play back all the transactions, when you have a huge number of transactions. You can fix it at that point, and you can just replay all the transactions to get the data imported into the new format.

\-- The above approach is horrid if you want to launch a new process for every single request. You'd have to replay the transaction log for each incoming request, you'd have a data coherency nightmare, etc. So if you want to use this approach, make sure you're using something that shares one process amongst all requests.

You might also need to worry about whether your server is multithreaded and in that case deal with locking and other crap. I'd suggest going simple with something like Twisted's single-request-at-a-time approach. This isn't as bad as it sounds at first; you just write everything to finish ASAP, and if there's something you need to come back to, you just request the Twisted Reactor to schedule an event. If you have some big blocking thing to do, do it in another thread then notify the Reactor when it's complete (and have the Reactor schedule an event for your code to be notified that the big blocking thing finished).

As you can see, it's not totally trivial and general purpose like the RDBMS + ThingThatGeneratesNastySQLFromObjects approach (aka ORM). But you get more flexibility in your interfaces, and lower overhead. While it can be rewarding and simplifying to work in this way, it could also can lead to over- engineering and/or lost time and effort if you aren't already intimately familiar with the steps in this approach.

<comment><USER4> The great thing about this post is that it doesn't hide the fact that "building a site without an RDBMS" is perilously similar to "writing your own buggy, half-implemented, slow, nonstandard DBMS".

Building a custom DBMS has been done, and done well, but I think a good general approach to the problem is to read the line about "over-engineering and/or lost time and effort" out loud, to your entire team, at dawn and noon and sunset on every day of the project.

<comment><USER3> > _is perilously similar to "writing your own buggy, half-implemented, slow, > nonstandard DBMS"._

People have used files and in-memory data structures just fine for a long time. I don't they had bugs in their code owing solely to the fact that RDBMSes hadn't been invented yet.

I also don't see how this is slow; it's all in-memory. Why bring a big honking DBMS into the picture when all you wanted was a hash table?

Storing data in-memory doesn't amount to a "buggy, half-implemented, slow, nonstandard DBMS" -- it's serving an _entirely_ different set of goals. Storing data in-memory in data structures is how programming is done. If you actually started to make the interface to your data layer as horrid as the interface to most DBMSes ($DIETY help you), you'd definitely end up with a shitty buggy half-implemented DBMS. But if you just want to store a couple hash tables with a sane interface dictated by the software design, not by your DBMS, just store the hash tables! Don't go wrestle with SQL just because that's the buzzword in-vogue.

You should measure your DBMS sometime, and consider it in terms of a hash table lookup. It starts looking like a comedy of horrors: first, generate a string in an obtuse language to perform the lookup, and oh wait, don't put a quotation mark in the wrong spot! Got that string generated? Now send it over a _socket_ to a server. Now the server is going to parse your string into an AST, turn the AST into an internal representation, then it's going to _guess_ how to optimize your query (this is also expensive in terms of cycles). When it's done optimizing, we run it to the query evaluator which looks in memory (since your table is so tiny anyway) and pulls out your hash table value, encodes it, and ships it back over the socket to you.

I agree and concede that these days you'll fit into the ecosystem better if you do use an RDBMS with no rationale (other than that it's the de facto standard), generate giant SQL strings from objects, and most worryingly from my perspective: deal with the big _impedance mismatch_ between the two paradigms of OO/anything and RDBMS. [http://en.wikipedia.org/wiki/Object- relational_impedance_mis...](http://en.wikipedia.org/wiki/Object- relational_impedance_mismatch) I haven't seen a single ORM implementation that really makes it truly simple. You end up manipulating your structure at a lower-level than you'd like to naturally.

This is partly why my next project isn't being done with an RDBMS, and I'm not storing it just in memory because of the volume of data involved. I'm going to be using Erlang and its bundled Mnesia database. There's no impedance mismatch there. The whole thing, including the database interface, works the way Erlang works.

I'll throw a party when RDBMSes die.

<comment><USER4> > _I also don't see how this is slow; it's all in-memory._

Are you _not_ writing to disk on every single transaction, then? My bad. And good luck keeping that power cord plugged in.

> _Why bring a big honking DBMS into the picture when all you wanted was a > hash table?_

I didn't bring that DBMS into the picture. You did, in the second half of your first sentence:

"Start simple: store the data in-memory in whatever way makes sense, _and just write a log file that contains pickled transactions that can be played back._ "

Indeed, an in-memory cache _is_ really fast. But it's unfair to compare it with an RDBMS, which is handicapped by the need to write every transaction to disk before it can be committed. The hash table is great only up to the point where a stray cosmic ray crashes the server and makes the whole thing disappear, after which you realize that you need a log file.

In the general case, writing a transaction log file is a hard problem. If you write a really robust tool for managing that log file - a tool which is efficient at reading and writing even when the number of transactions grows large; one that lets you specify when the log gets written, and how often, and whether the system can be queried during the write, and how long those queries will block, and what they will return; one which allows multiple threads and multiple machines to read and write the data without concurrency problems; one which prevents the in-memory cache from getting out of sync with the filesystem - you will have implemented a substantial portion of MySQL, and probably _memcached_ as well.

It is easy to start out designing a fast, simple, non-transactional DB and end up reinventing MySQL. If you don't believe me, ask the folks who invented MySQL!

In certain special cases (e.g. Google), rolling your own persistent storage system is a big, big win. You may _know_ , in advance, that your website is one of those cases. If you are correct, you will be a superstar - you will build a relatively untested, nonstandard data storage system with a tiny subset of PostgreSQL's features, but all of that will be worth it because the system will be fast. If you are wrong, you will work for a month or six and then end up installing PostgreSQL anyway. In fact, even if you are right, you will end up installing PostgreSQL after your customer changes the spec at the last minute to require some boring standard feature - like a shopping cart - which any CRUD jockey can build in a day but which your "simple and elegant" database doesn't support because it wasn't in the original spec.

So it's no surprise that the "de facto standard" is to build your site around an RDBMS, get the damn thing working, and optimize later - and that, as a result, the typical in-memory data structure ends up being backed by an RDBMS instead of by a "simple" log file.

As for your ire at SQL... if you think you're in pain, just imagine how the designers of SQL must have felt back in the 1970s, when string parsing and query planning were _tens of thousands_ of times slower than they are now, an extra database server cost _more_ than a coder's daily salary, and RDBMS software was very, _very_ non-free. It was a dark time. And yet for some reason those guys abandoned their efficient hand-rolled binary databases for SQL. In fact, they did it so fast that Larry Ellison grew richer than the Beatles. Why did they do that, I wonder? It must have been the drugs.

</comment></comment></comment></comment></comment></comment><comment><USER5> It sounds to me like the closest thing to what you want is a library for Object Prevalence <[http://en.wikipedia.org/wiki/Object_prevalence>](http://en.wikipedia.org/wiki/Object_prevalence>). There is one that I know of for Python called Pypersyst <[http://pypersyst.org/>](http://pypersyst.org/>). There is also an IBM DeveloperWorks article about this library by one of the authors, as well <[http://www.ibm.com/developerworks/library/l-pypers.html>](http://www.ibm.com/developerworks/library/l-pypers.html>). Hope that helps :)

</comment><comment><USER6> You might want to ask yourself, "Why am I choosing to not use an RDBMS?"

If the answer is "because I know it will save time" or "because I'd like to explore the possibility", more power to you. I wholeheartedly encourage it.

If the answer is anything else then you should just use one, because that path will save you time (possibly a lot of time).

Check out Rails. The ORM is so well done that it feels like you aren't using a database at all.

<comment><AUTHOR> Yes, I'm pretty much checking out the solution-space as a whole. I'll probably end up slinking back to SQL, but at least I'll know why.

</comment></comment><comment><USER7> What kind of app are you building?

I don't think you'll find a pre-packaged framework out there that works without a DB. I guess if I were doing this I'd use memcached and then I'd write to a shared file system somewhere for the writes.

We use Pylons and SQLAlchemy/Elixir/PostgreSQL though and we're very pleased.

<comment><AUTHOR> I wasn't really after a pre-packaged framework necessarily. I'm also very pleased with Pylons so far, getting a non-RDMBS thing to play well with Pylons could work out very neatly.

</comment></comment><comment><USER8> Twisted is an interesting framework, though a little lower-level than others. I think you could build a self-contained, in-memory solution around it, as DBs aren't particularly central to its operation.

</comment><comment><USER9> schevo.org integrates well with pylons

<comment><AUTHOR> schevo does look interesting, I'll have to give it a closer look. Though as far as I can tell it isn't widely used... how is your experience of it?

<comment><USER9> The documentation is limited. But it is very powerful and easy to use. The support on the IRC is excellent although the response time is around a day.</comment></comment></comment>


Unity 8 search lense does not include Amazon results by default - <AUTHOR> http://www.pcworld.com/article/2840401/ubuntus-unity-8-desktop-removes-the-amazon-search-spyware.html

<comment><AUTHOR> Many people are still upset that it ever included Amazon results - the article casts doubt on the idea that this is even a victory for privacy advocates since it took so long for Canonical to back down.

I say "better late than never".</comment>


"Be nice to the countries that lend you money" - <AUTHOR> http://www.theatlantic.com/doc/print/200812/fallows-chinese-banker

<comment><AUTHOR> Reading this article made me curious just how much is owed to foreign countries. But what I found to be scarier is our internal debt obligations to programs such as medicare, social security, etc. "As of October 1, 2008, the total U.S. federal debt exceeded $10 trillion,[16] about $31,700 per capita. Including unfunded Medicaid, Social Security, Medicare, and similar promised obligations, the government liabilities rise to a total of $59.1 trillion, or $516,348 per household.[17]" (<http://en.wikipedia.org/wiki/Economy_of_the_United_States>)

That's 428% of our yearly GDP. The current tactic has been to use new debt and current tax witholdings to pay social security benefits - but does that not sound like one big crazy pyramid scheme? And how the hell do we get out of this?

<comment><USER2> You extract a lot of fresh wealth somehow - from finding a giant pile of gold under Kansas to producing objects the entire world wants to buy.

Or.. you sell or give a lot of stuff to the people who you're indebted to. In this case, that's already begun somewhat by all of the purchases China's making in the US - factories, etc.

</comment></comment><comment><USER3> Great piece. Fallows has been doing interesting work as a sort of articulator of China to the US. Since Gao is familiar and comfortable with the US, the conversation is fascinating. I suspect that the editing here is almost as important as the original comments, though.

</comment><comment><USER4> What I wonder is how long before these countries ask for repayment of their debt, and what the consequences will be.

 _We know that by pulling out money, we're not serving anyone's good. Including ourselves. [This is the famous modern "balance of financial terror." If Chinese officials started pulling assets out of the U.S. and touched off a run on the dollar, their vast remaining dollar holdings would plummet in value.] So we're trying to help, at least by not aggravating the problem._

</comment><comment><USER5> It will be interesting to see what China's economy looks like if importing countries are not buying from it. As bad as the lack of transparency on Wall Street is, the lack of transparency anywhere in China is worse.

<comment><USER6> They will consume their own production and start spending their dollars and euros.

<comment><USER7> Are the Chinese making things that Chinese want to buy? Most of the country is still rural; they don't want trainers and consumer electronics (or rather they do, but not before the infrastructure is built out). China's foreign-currency earning economy is almost a completely different entity from its interior economy.

<comment><USER8> Local consumption is a big growth market in China. Accelerating, I believe. Exports are obviously still important, but more is produced for local production every year.

</comment></comment></comment></comment><comment><USER9> _Recently we increased our holdings in Blackstone a little bit. Now we're increasing a little bit our holdings in Morgan Stanley, so as not to be diluted by the Japanese._

Is anyone familiar with what he is hinting at? If I am interpreting this correctly, he is indicating that Japan has been increasing its stake in the US financial industry, is that correct?

<comment><USER10> [http://money.cnn.com/2008/09/22/news/companies/mufg_morgan_s...](http://money.cnn.com/2008/09/22/news/companies/mufg_morgan_stanley/index.htm)

</comment></comment><comment><USER8> It's very interesting how there seems to be a point now that people are waiting to see if the US is going to maintain it's economic/political/military umph.

This was something being discussed over the past 5 years or so. But since this credit business, it seems like outside of the US, this is what it boils down to.

</comment><comment><USER11> Yeah, financial bankers are paid WAY too much (and considering how badly they make a mess of things).

</comment><comment><USER12> An interesting comparison about the mirrors. I find it an interesting analogy for how these derivatives work.</comment>


Node.js for Embedded Systems - <AUTHOR> http://embeddednodejs.com/ <comment><USER2> Neat stuff. What's all the hate is about. Not every embedded system is running real-time sensitive industrial machinery or medical equipment.

Many things like general consumer electronics can run fine with Node. The runtime is incredibly well-tested at this point, JS is easily learned and scriptable for extensibility, the single-threaded nature is easy to work with and fast enough, and managed memory makes it easy to crash and recover from failures.

<comment><USER3> The choice of node.js means putting developer convenience in front of everything else.

The end user does not care about developer convenience, cares about a working product that is reliable.

<comment><USER2> Is it though? I'd prefer many other languages that are more convenient to code in that dealing with the quirks of JS, but I don't see why Node must be unreliable either. I think for simple devices this works just fine.

</comment></comment></comment><comment><USER4> A friend of mine did some sort of medical device for diabetes or transfusion (or something like that) using node.js a few years back.

</comment><comment><USER5> "Saying that JavaScript is good because it works on all platforms is like saying anal sex is good because it works on all genders."

It's great for use on the web, just please keep it there!

</comment><comment><USER6> Some men just want to watch the world burn.

</comment><comment><USER7> I hear they use embedded systems on airplanes, rockets and space vehicles. Javascript on embedded systems makes it so that your average front end developer can now make the software that controls auto pilot or Nuclear Power Plants!

Javascript is taking over!

<comment><USER8> Some embedded systems are maintained or coded with GUI's like RSLinx (it's all visual), so using JS instead might be a step up in some scenarios.

<comment><USER7> I think GUIs and touch screens are the future of all embedded systems. No more buttons. Imagine the cockpit of a boeing 747 with all levers buttons and knobs removed. Just a giant LCD touch screen GUI coded by a bootcamp graduate in React + redux.

The plane would be more useable by the pilot as touchscreens are more versatile than old fashioned buttons. Also you would be more safe because if a lever or button fails on a flight you are pretty much screwed but if a touchscreen fails you can just reboot the touchscreen and you're good.</comment></comment></comment>


The Price of a Hack - <AUTHOR> https://www.npr.org/templates/transcript/transcript.php?storyId=682331111 <comment><USER2> I just listened to this podcast episode. At no point do they answer the question on the title.

This is a very short peek into cyber insurance and phishing.

It you like podcasts and stories about hacking, skip this one and try the podcast Darknet Diaries.

<comment><USER3> I think they do, at least in part: They directly discuss how the price of their insurance policy changed following the event:

> _WENDY: I emailed our agent this morning because I hadn 't heard anything. > Knowing that we are - ah, AIG quoted the renewal with limits with a 66 > percent increase and increased the retention from 10,000 to 25,000. Ew, > that's the deductible._

> _TEMPLE-RASTON: Increasing your premium by 66 percent and more than doubling > your deductible - that motivates change._

[...]

> _DUFFIN: Wendy was able to convince a new insurance company that her new > training program actually worked. She got a new policy with more coverage, > but for less money._

Exact costs for the policy, prior remediation, and the training program are not disclosed, but I wouldn't necessarily expect those to be shared publicly anyway.

But this is all subjective -- I enjoyed it and found it a worthwhile listen while prepping dinner tonight. I'll be sure to check out Darknet Diaries ([https://darknetdiaries.com/](https://darknetdiaries.com/)) as well, thanks for the recommendation!

</comment></comment><comment><USER4> It might be better to link to the actual episode, rather than just the transcript"

[https://www.npr.org/sections/money/2019/01/04/682327333/epis...](https://www.npr.org/sections/money/2019/01/04/682327333/episode-886-the- price-of-a-hack)

</comment><comment><USER5> Mavis should have been fired. That was a careless mistake against which someone in her position should be constantly vigilant. If we punished people for hacks that are the direct result of their incompetence then we wouldn't have these "Gee we're sorry about that" corporate responses. She opened an email attachment because the stranger who sent it said that she should. If you fall for that you should not be using the internet at all.

<comment><USER6> People get phished all the time. Its a general problem with how people are informed about these kinds of these things. Mavis is a victim of circumstance

<comment><USER7> The fast food industry covers hand washing in training videos why don't more companies train people for basic street smarts online?

<comment><USER5> It would be like a chef who doesn't wash his hands firing a line cook for not washing his hands. A company giving their executive who stores social security numbers on the same system on which she opens emails (and trusts them implicitly without a second thought) a free pass is a way for them to give themselves a free pass. If she were to be held responsible for not understanding basic security protocols then the company could be held accountable for failing to train her properly. Until we raise our standards the companies who compromise our privacy and security will have no incentive to raise theirs.

Do you have a right to behave as if every link and file is safe and secure or should the people who are tasked with protecting personal information be expected to behave with reasonable suspicion of wrongdoing on the part of perfect strangers? HN wants to have it both ways, apparently.

<comment><USER7> I've never fallen for phishing are you implying this avoidance skill is impossible to teach to executives? Obviously anyone who has custody of important information should not be in the born yesterday category of understanding what to do with that responsibility.

<comment><USER5> You misunderstood my comment.</comment></comment></comment></comment></comment></comment>


Mathematicians Disprove Conjecture Made to Save Black Holes - <AUTHOR> https://www.quantamagazine.org/mathematicians-disprove-conjecture-made-to-save-black-holes-20180517/ <comment><USER2> Ok, yes, _this_ is how you promote scientific research to a lay audience:

1) They don't bury the lede. The first paragraph says what the result is immediately, if you understand it already, you're done reading.

2) Inverted pyramid structure. After they explain what happened, they break apart the historical context _of the problem itself_ and give copious examples and metaphors to give the gist of what the problem is about and why it matters that it was solved.

I can't tell you how many of these popsci articles start out with "When Mary was a 3 year old, she used to look up at the stars and ... blah blah ... Now, she's taking on the scientific establishment and daring to do the unthinkable..." etc etc. I just dread skimming through the fluff to try to pick out what the hell was actually done.

Thank you Kevin Hartnett (the author of this piece) for not attempting to turn scientific papers into a human interest story.

<comment><USER3> It's not just science reporting. One of the reasons I hate the Olympics is that I like to watch sports on TV: Not heartfelt stories of overcoming adversity to become one of the world's elite. Not teary eyed medal ceremonies with semi transparent backdrops of national flags blowing in the wind. Not endless medal count standings. Not interviews of people with three medals around their necks, with insets of proud parents in the upper left hand corner. I just want to see the sporting events.

Today's society values drama above everything else. It's a shame (either that they do, or that I don't fit in ;-) ).

<comment><USER4> I really liked watching the original Ninja Warrior (the Japanese version). I even liked (to a lesser extent) the first US-heavy version.

I stopped watching for exactly the reason you describe.

The exact same thing happened with esports. Five minutes of actual play, 25 minutes of fluff.

</comment></comment></comment><comment><USER5> _Their work is subtle — a refutation of Penrose's original statement of the strong cosmic censorship conjecture, but not a complete denial of its spirit._

I wish somebody out there could cover social science research and politics with this kind of attitude. This is really good science writing.

<comment><USER6> Einstein and Penrose theory totally crushed by mathematicians -- that makes a better headline.

<comment><USER5> "Einstein and Penrose were wrong; this is why"

<comment><USER7> "10 crushing proofs Einstein and Penrose don't want you to know" : Best headline.

<comment><USER8> What color is this proof: Einstein or Penrose?

</comment></comment></comment></comment></comment><comment><USER9> So spacetime exists beyond the Cauchy horizon, but it's discontinuous?

What on earth would discontinuous spacetime involve? It sounds like a sort of shattered chaos of torn-up bits of space.

<comment><USER5> It's not discontinuous, its _derivative_ (a function describing the rate of change of space time) is apparently discontinuous, or infinite, or something else equally hard to picture.

Plenty of strange things can happen with derivatives, e.g. [https://en.m.wikipedia.org/wiki/Cantor_function](https://en.m.wikipedia.org/wiki/Cantor_function)

<comment><USER10> I don't find failing to be differentiable all that strange, even if the failure is on a perfect nowhere dense set.

What I find weird is that the derivative, if it exists, cannot have a jump discontinuity. That means that the only other kind of discontinuity it can have is infinite oscillation like sin(1/x) near zero.

This one is a bit of an obscure property of derivatives, corollary to theorem 5.12 in Baby Rudin.

<comment><USER11> "What I find weird is that the derivative, if it exists, cannot have a jump discontinuity."

You mean the derivative of a specific function you have in mind, like perhaps the field equations? Or do you mean something other than what I understand by a jump discontinuity in a derivative, such as one gets for f(x) = {-x for x<0, x for x>=0}?

Tone: Clarification request for my own understanding, not a "gotcha" post; I strongly believe you are saying something true but there's just too many details elided because they are trivial to you for me to quite follow, and I'm intrigued enough to want to be able to follow up, if you'd be so kind as to indulge me.

<comment><USER12> What is f'(0), the derivative of f at 0? It _doesn 't even exist_, therefore it has no discontinuity at 0.

Darboux's theeorem says that there is no way to create a jump in the derivative, in part because a derivative at a point is defined in terms of limits from _both_ sides, so the limits must be the same.

<comment><USER13> > What is f'(0), the derivative of f at 0? It _doesn 't even exist_, therefore > it has no discontinuity at 0.

This is definitely wrong. The derivative of |x| is -1 where x < 0, and 1 where x > 0, and doesn't exist where x = 0. That is a perfect match to the definition of a jump discontinuity -- the limit from the left is not equal to the limit from the right.

It's not at all necessary for the function to exist at x = 0 in order for it to have a discontinuity at x = 0.

But hey, don't take my word for it; why not check the definition on Wolfram?

[http://mathworld.wolfram.com/JumpDiscontinuity.html](http://mathworld.wolfram.com/JumpDiscontinuity.html)

The original claim was "the derivative, if it exists, cannot have a jump discontinuity." This is badly stated. You're defending the idea that if the derivative exists _at a particular point_ , then there is no jump discontinuity in the derivative _at that point_. But there can be a function _f_ which satisfies both of these properties:

\- _f_ is the derivative of some other function _F_. ("The derivative of _F_ exists.")

\- _f_ has a jump discontinuity, somewhere. ("The derivative of _F_ has a jump discontinuity.")

<comment><USER14> The definition you link states that a function has a discontinuity at a point /in its domain/ if yadda yadda. 0 is not in the domain of f'. See for example: [https://math.stackexchange.com/questions/1431796/if-a- functi...](https://math.stackexchange.com/questions/1431796/if-a-function-is- undefined-at-a-point-is-it-also-discontinuous-at-that-point)

<comment><USER13> That is a question of your personal focus. For example, I'd expect a theorem that applied to "functions from ℝ to ℝ" to apply to f(x) = 1/x unless a specific qualifier was given.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Is this just another implication that general relativity is incomplete? We already know it must not be because it does not work at the quantum level.

<comment><USER16> Anything that has singularities coming out of general relativity is pretty much guaranteed to be incomplete. But we can ge close to some workable solutions in particular cases.

</comment></comment><comment><USER17> The non-deterministic nature of atomic decay by itself makes the universe unpredictable. And this is a thing that happens at STP. I think the author of this article might have forgotten that. There was never really any determinism to "save".

<comment><USER18> General relativity is classical, so there is plenty of determinism to save.

</comment></comment><comment><USER19> Uh, this is why I tried to study pure maths (it's less physics and more weird differential geometry) I can recommend this paper [0] that talks about simulations that show a black hole just implodes in a weird way and kind of does not stop imploding, due to space-time getting stretched with a speed above that of light, as measured within a frozen moment in time, and summed over some line from inside to outside. A working analogy could be a 2d-spacetime, represented in 3d-space as a soap bubble film. Imagine the traditional visual funnel shape the space time around a black hole is often depicted as, compared to the downwards bump normal stars/planets are depicted. So, now, the thing is that the effect of gravity, e.g. gravitational waves, are bound by the speed of light. They can not escape a black hole. In the soap example the gravity waves would be film thickness waves, e.g. longitudinal waves in the thin soap sheet. Those are bound by the speed of sound in their medium. Imagine a stream of air with significantly higher speed than the sound in the soap, getting blown downwards this funnel. Also imagine the funnnel still having a closed tip made from soap at the start. Thing is, this air will hit the tip, propell it downards, and suck the part close to the center down just by itself, without the center indirectly pulling on it. Due to the supersonic nature, the ripple created from the initial impact of air onto the center will _never_ get out of there, just because the medium the waves travel through, when measured over the distance from where the wave is right now, to where the outside world with neglegible space-time (or soap-film) curvature is, expands faster than the wave travels. This does not mean the wave does not travel at all, just that once the distance you want it to travel increases enough, the propagation medium's expansion results in weird effects.

If someone is willing/able to point me to some research or possibly even wants to use existing skills with the related differential geometry maths, I'd really like that.

Edit: I might add that anything that falls into the black hole will, even in it's own reference frame, _never_ reach the center, and the only reference frame that possibly sees a steady state field curvature in finite local time could be the center of the collapse.

[0]: [https://arxiv.org/abs/1402.1524](https://arxiv.org/abs/1402.1524) (Which was published about half a year after I initially and timestamped communicated the idea to a physics teacher who was willing to explain me the differential maths used in Einstein's field equations.)

<comment><USER20> > [https://arxiv.org/abs/1402.1524](https://arxiv.org/abs/1402.1524) (Which > was published about half a year after I initially and timestamped > communicated the idea to a physics teacher who was willing to explain me the > differential maths used in Einstein's field equations.)

Maybe I'm misunderstanding your point, but your parenthesis seems to suggest that you would like to claim some credit for the idea. If not, then you can just ignore what I'm about to say.

If so, then your comment seems to suggest that you came up with the _idea_ , but weren't sure about the mathematics of it. In modern physics of this type, where experimentation is not practical, the math _is_ the physics; that is, I think the problem is not so much coming up with ideas—my impression is that there are hypotheses and to spare—but rather being able to back up those ideas with rigorous calculations.

<comment><USER21> > In modern physics of this type, where experimentation is not practical, the > math is the physics

I think Feynmann would disagree with you.

[http://www.youtube.com/watch?v=obCjODeoLVw](http://www.youtube.com/watch?v=obCjODeoLVw)

<comment><USER22> feynman died 30 years ago. it's plausible the culture of the field has changed (nm that feynman wasn't the arbiter of culture to begin with)

<comment><USER20> > it's plausible the culture of the field has changed (nm that feynman wasn't > the arbiter of culture to begin with)

To be fair to monocasa's objection ([https://news.ycombinator.com/item?id=17101892](https://news.ycombinator.com/item?id=17101892)), the rebuttal was not of a claim that the _culture_ of physics was mathematical but literally of my claim that (certain) physics _was_ mathematics.

</comment></comment></comment></comment></comment><comment><USER23> As I recall, Gen. Rel. continues to explain all directly _observable_ phenomena within limits of resolution. That's _damn_ powerful.

As for 'black holes', well ... believe what you choose. A prof. once told me that Einstein 'wasted 30 years' looking for unified theory. By that standard, so did Hawking I guess.

</comment><comment><USER24> > In classical physics, the universe is predictable: If you know the laws that > govern a physical system and you know initial state, you should be able to > track its evolution indefinitely far into the future. ... [According to > physicist Demetrios Christodoulou:] "This is the basic principle of all > classical physics going back to Newtonian mechanics. You can determine > evolution from initial data."

This is a famous mantra repeated by physicists but it is not correct. Newtonian physics cannot even predict the future positions of three body from their initial positions. And Newton knew and stated that his doctrines could not predict planetary orbits in long term and he invoked the very scientific and physical notion (or maybe footballers term) of Hand of God. Thus, Newton claimed his doctrine could not make accurate prediction not because they were wrong but because God erred to create the universe according to Newton's doctrines. Consequently, according to Newton, God once in a while nudged the orbits to make them move correctly according to Newtonian doctrines. According to Newton himself initial states cannot predict long term behavior.

So how come NASA can predict so accurately planetary motions by using the so- called Newtonian Mechanics? The answer is easy: by not using Newtonian mechanics. NASA uses sophisticated mathematical methods or numerical integration to calculate orbits. But since they use as a unit conversion factor the strategically named Newton's Constant of Gravitation as one of their mathematical terms they feel they are justified to declare that they use Newtonian mechanics to compute orbits.

So what happened is that at some point, maybe in the 18th century this philosophical -not physical- assumption entered the physics literature and gained the status of truth after centuries' of repetition. But if we question the mantra we see that the so-called classical theories do not claim that they can predict future states by the initial state. Phycists do.

<comment><USER25> I am quite stupefied by this statement. NASA and other organisations most certainly uses _Classical_ mechanics (whether in its Newtonian, Lagrangian, or Hamiltonian formulations does not impinge upon the central issue) when simulating celestial motions and calculating trajectories. That there exists an acknowledged " _Three Body Problem_ " ( _i.e._ , that the trajectories followed by more than two bodies interacting gravitationally are in general not algebraic) matters not one iota for _numerical_ simulations such as those performed by aforementioned organisations for aforementioned purposes. Some kind of relativistic correction might be made for motions that occur within the orbit of Mercury, but again, those are numerical in nature. And as far as I know there are no exact solutions known for general-relativistic interactions between two gravitational objects, placing it at an even greater 'disadvantage' compared to the 'Newtonian' mechanics you erroneously deplore.

<comment><USER24> > matters not one iota for _numerical simulations_ such as those performed by > aforementioned organisations for aforementioned purposes.

So you agree that planetary orbits are computed by numerical simulation as I claim. Then why do you object at what I'm saying?</comment></comment></comment>


Ask HN: What would you do with $1M cash? - <AUTHOR> Here is a quick background. I live in the Bay Area, I'm a software engineer so I have a 9-5 job. I hate that life/setup and I always wanted to work for myself with no boss. I will have about $1 - 1.1 million cash coming in from a family trust. I'm all about working hard and building things by myself, so I'm not proud about that trust money... I'm seing it as a huge opportunity for me to transition to my ideal life, no debts, no boss. I do have a wife and a baby to take care of and ideally we would want our own house.
So, my idea is to move out of the Bay in a cheaper place, where we would buy a descent house for about $500k cash. No mortgage, we would pay-off our car loans (about $40k) in order to completely get out of debts. Now, with about $500k left I was thinking I should keep about $100k in a savings account as a buffer. Then I'd like to invest the rest ($400k) for my future retirement. The missing part is generating an income by myself to pay the remaining bills, etc. But with such a setup, I feel super lucky to give it a shot.
What would you guys do in my case? Is this the right approach to get out of my 9-5 job while taking care of the rest? <comment><USER2> Spending half on a house is not a great way to establish your independence.

There is a rule of thumb in finance: "Easy come, easy go."

You should pay off your car loans and then sit on the rest of the money for six months while trying to make these plans _with your spouse_ rather than with a bunch of internet strangers. It is psychologically much harder to spend the money if you hold it a few months.

If you don't know how to be your own boss without a million in assets, it won't magically come to you just because you inherited money. With a well established expensive lifestyle like you clearly have and immediately spending half on a house, plus $40k on your car loans, you won't have as much maneuvering room as you think.

You should be asking questions about whatever business ideas you have and how to make those work. You should be researching where you can live comfortably without needing to spend a half mill on a house.

<comment><AUTHOR> Then why would spending $500k impact my 9-5 independence? I'm not linking the two. It's more about satisfying short terms needs like getting a house for my family then getting out of debts quickly. I think it's 2 different things. A lot of people here say you should become independent without any extra money. I agree, how about using that extra money to do what I would do by making a lot of money on my own? If I create a business and generate $1 million, I'd certainly buy a house. Again, I want to use this money to make myself focused 100%. Think of it as luxury money in the sense that I wouldn't have to worry about anything but my own project.

<comment><USER2> There are two ways to increase your runway:

1\. Lower expenses.

2\. Increase income.

You haven't talked about your business aspirations. Maybe you will be profitable from the word of go and this is a nit. I only know what info you have posted here.

Based on what info you have posted here, I assume you will need to figure out how to make money. Being successful at a 9 to 5 job doesn't guarantee entrepreneurial success.

An expensive house will come with higher property taxes, higher insurance costs and higher maintenance costs. A larger house will tend to soak up money for more furnishings etc.

Paying cash for a house doesn't have you living Scot free in terms of housing costs. It does substantially reduce carrying costs, but doesn't eliminate them.

You are talking about immediately spending $500k on a house, $40k on car loans and incurring moving costs. This leaves you with well under $500k to live on.

You don't sound like the type who can live on a shoestring budget. A half million for a single family home is an unimaginable figure for me. If I had that kind of money right now, I would likely buy two or three buildings, renovate them, live in one and become a landlord and still have money leftover.

I've read a lot of financial articles over the years. Two thirds of lottery winners are bankrupt within 5 years. I think one reason for that is that most people are either in earning more or in consuming mode and quitting gives you vastly more time to spend money while not earning. Keeping yourself entertained on the cheap is not what they envisioned.

You can do whatever you want. It's your money and your life. I merely made a good faith effort to answer the question. If my answer is not your cup of tea, well, you didn't pay for this advice. So it's fine if it is worth to you exactly as much as you paid for it.

Best of luck in your endeavors.

<comment><AUTHOR> 1\. that's exactly what I said I would do by paying off all my debts. This is a life with no debts. zero loan, no mortgages. Plus, like I said, I would still have enough cash on the side (about half a million) so I wouldn't have to worry about saving a dollar anymore. That 9-5 steady income would become like a plus rather than a necessity like 99% of the world.

2\. That's not a short term goal. I don't care about increasing my income right away. I'm already making enough money as a software engineer working in the Bay Area. I don't need more money technically speaking. Problem is, I can't work at a 9-5 job anymore. Why would someone work at a 9-5 job? To pay bills? To buy a car? To buy a house? To have a steady income, etc. Like I said, I'd use that money to make my 9-5 job as obsolete as possible for a smooth transition to generating money on my own.

Where I live (Bay Area), $500k gets you a one car garage. I don't necessarily want to live in a place where schools aren't that great and where there's no opportunities. I'm not talking about living a luxurious life in San Francisco, but looking at places in Texas, Washington state and any other tech hubs, $500k gets you a house. Not a mansion. Not willing to move to Nebraska yet or Wisconsin... nothing against these 2 beautiful states but again, it's about opportunities for us and our kids. I said $500k which is my original budget, it depends on where my wife and I decides to move. Again, today, I make about $200k/year and I don't own a house. If I spend $500k in a house tomorrow, it ain't gonna change anything but the fact that I own a house outright. You see where I'm going? It's not about not being smart or not knowing how to manage money... nothing to do with a lottery winner like you said. This is pure extra money to me. Should I put it in a bank account and not touch it for the next 10 years? Worst investment ever... real estate will bring way more money than waiting for the FED to print out more papers. $500k US paper dollars will be worth $250k in 10 years. I already have various investments, crypto, bonds, index funds.

Also, as a home owner you have what it's called tax itemization. $24k/year if you don't itemize. A house that is paid off would cost me less than a rental. Keep that in mind. People are used to think that buying a house puts you in debts for life. It won't be the case since I would buy the house cash and still be making enough money per year. It's all about that transition from my 9-5 job to a fully autonomous business. If I fail with my project, I won't go bankrupt thanks to being out of debts with half a milli on the side. working at mcdonald's would be enough for me to end up positive at the end of the month.

<comment><USER2> If you are going to keep your 9 to 5 job, coolios. Enjoy house hunting.

But I am responding to your assertion that you plan to quit:

 _I 'm seing it as a huge opportunity for me to transition to my ideal life, no debts, no boss.

The missing part is generating an income by myself to pay the remaining bills, etc._

It sounds to me like you are getting incredibly worked up about what I've said and offended and I don't understand that at all. So, I regret replying at all and enjoy your inheritance.

<comment><AUTHOR> Not offended at all. I just found your answer to be a little to "standard/cliché" and not targeted enough. Like putting someone in a bucket right away. It's not the case trust me... I'm better than that ;) Thanks again for taking time to post an answer. Really appreciated.

</comment></comment></comment></comment></comment></comment><comment><USER3> I would refrain from buying the house until 2-3 years into the transition and after you reach a point where you are cash flow positive in your new life. Ditto about the car loans if they are low interest rate ( < 3%). In short put the 1M aside and try to do the switch as if you did not have the money. You should be able to make the switch without the $1M subsidizing the switch (except for subsidizing your monthly cashflow for the first year or so).

</comment><comment><USER4> In _my_ circumstances, I'd pay off my house, replace one of the cars, and pay off my kids' student loans. I'd put the rest into a retirement fund, and see if I had enough to retire now.

In _your_ circumstances, I wouldn't pay $500K for a house. Out here, $500K doesn't get you a "decent house", it gets you a mansion. You, your wife, and your baby probably don't need 5000 square feet of house. (Seriously, $500K can get you that. And seriously, don't do it - it's a huge waste.)

The other part that bugs me about what you propose is that "I want to work for myself", "no boss", "I feel super lucky to give it a shot" is not a plan. You can waste a lot of time and money trying to figure this out - certainly you can burn through $100K. It's far better to have a realistic plan before you start, even if you don't have all the details figured out yet.

<comment><AUTHOR> I have a couple of side projects I'd like to explore more. The problem I have is that my 9-5 job that utilizes most of my brain everyday. I come back home mentally exhausted then here is the baby.

I agree with you on the $500k. That is just the idea, it doesn't have to be that much and will depends on where we decide to move. Definitely not looking for a mansion :)

So setting myself up to where I could free-up most of my time would help a lot in this transition to no boss-life. Plus, most of my projects do not require any crazy investments, we're talking hundreds of dollars. It's just about paying the bills for the house, gas, food, etc. while getting up and running with a business/income.

</comment></comment><comment><USER5> Invest the money somewhat conservatively and keep working. You're almost guaranteed to be able to retire early, which is something that few people can say.

</comment><comment><USER6> Are you taxed on that money? Get a cheaper house .Why 500k? Talk to a Financial adviser.

<comment><AUTHOR> This is after tax money. Financial advisers are like car salesmen unless you're extremely rich. I'm already taking care of my investment portfolio (bonds, index funds, etc.). What they're gonna say is "double down", "increase your position". 500k because I'm aiming for places like Seattle, Austin, Denver, etc. Still looking to stay around a tech hub that is still cheaper than the Bay Area.

</comment></comment><comment><USER7> Put it in something that will reliably pay you a certain amount of money for the rest of your life

<comment><USER8> Reliably? What kind of investment pays anything reliably? You can't get 3% from gov-t bonds, but if inflation picks up, you are in trouble. That's the whole point: there's nothing reliable, except death and taxes :)

<comment><USER7> I would suggest an annuity if OP is planning on living for a very long time and the money was completely unexpected. An extra $1000 a month guaranteed is pretty compelling. Sure you could maybe make $2000 a month from mutual funds or something, but it wouldn't be a stress free, steady rate of payments. It would boom and bust with market cycles</comment></comment></comment>


2½ steps towards accurate project estimates - <AUTHOR> http://stackoverflow.com/a/35571856/319204 <comment><AUTHOR> Based on my interpretation of the book

Software Estimation: Demystifying the Black Art (Developer Best Practices) by Steve McConnell</comment>


Voice of the First World War (podcast) - <AUTHOR> http://www.bbc.co.uk/programmes/b03t7p9l

<comment><AUTHOR> This BBC Radio Four programme is available as apodcast to download.

It was created using the sound archive of the Imperial War Museum and the BBC and gives the story of the First World War from the people who were there.

For example: this episode has people talking about being gassed, and the first use of chlorine gas by the Germans in 1915. [http://www.bbc.co.uk/programmes/b03t7p9l](http://www.bbc.co.uk/programmes/b03t7p9l)</comment>


Bill to Restrict N.S.A. Data Collection Blocked in Vote by Senate Republicans - <AUTHOR> http://www.nytimes.com/2014/11/19/us/nsa-phone-records.html?module=Notification&version=BreakingNews&region=FixedTop&action=Click&contentCollection=BreakingNews&contentID=22423438&pgtype=article <comment><USER2> So that's it - the net legislative effect of all the "bombshell" disclosures that Ed Snowden made has been what - Nothing, NADA, Zilch.

Proving once again that going thru "Official" Channels was never an option. That in the toxic hyper-partisan environment of Washington the Powerful will find a way to kill any meaningful reform of even the worst abuses.

The solution to this has to be first and foremost Technological.

<comment><USER3> Honestly, I'll start by saying I am a democrat so before the full flak of the HN community peppers me.

Rule contraction at times of relative piece and expansion at times of duress are never effective. Expanding surveillance after 9/11 with sweeping judicial reforms and due process, and vice versa (in today's case) contracting or attempting to contract is also not a good idea. Yes there are many problems, but think of it from a impact and policy perspective. What happens after if there is a terrorist event? Then do we expand again because perhaps someone yells out "not enough oversight or data?". Although many here are PRO reform, the pattern contraction/expansion is not the way to go about national security policy.

<comment><USER4> I'm not peppering you because your political leanings, but because I have no idea what you're trying to say. It sounds like you're saying that there is never a good time to change our current state of mass surveillance.

What pattern of expansion and contraction are you talking about? I know the expansion part, but I certainly don't know what the last contraction was.

What due process are you talking about? These policies were effected unilaterally, in secret.

What is a good way "to go about national security policy" if not by working within the legislative framework? Are you saying that there is no legislative solution?

What if there is a terrorist event now? How much more data can we collect?

My position is that it is never too early to examine the effects--the consequences--of any legislation. This particular incident has lingered secretly for well over a decade, and that is oppressive. Regardless of wordsmithing and mental gymnastics, these programs are clearly out of line with the spirit of American civil liberties and need to be checked.

<comment><USER5> I think s/he's saying that policy should not be determined as a knee-jerk Reaktion to current events, either way.

</comment></comment></comment></comment><comment><USER6> Nice of the article to clearly lay out the partisan divisions here. None of that "blame both sides" bs.

The vote: All D's voted right except Bill Nelson of Florida. All R's voted wrong except Cruz, Lee, Heller, Paul, and Murkowski.

Where "right" means "for the overhaul bill" and "wrong" means the opposite.

You'll also notice that this bill got way over 50 votes, but still failed due to the modern filibuster.

<comment><USER7> This bill was completely watered down and subverted from the original, to the point where even many of its initial champions turned against it. Voting it down was the right choice. The worst thing would have been to have passed it and pretended that "reform" had been made.

<comment><USER8> I think one of my favorite sayings applies:

'The Perfect' is the enemy of 'The Good'.

Google, MSFT, Apple, the EFF all supported this bill. Obviously there are further improvements that could be made, but instead of starting from a better platform, we're at ground zero with an incoming congress that has no interest in curbing the 'military' power of the US.

The EFF's case for supporting the bill that was just killed is very clear about this:

[https://www.eff.org/deeplinks/2014/08/understanding-new- usa-...](https://www.eff.org/deeplinks/2014/08/understanding-new-usa-freedom- act-questions-concerns-and-effs-decision-support)

<comment><USER9> This is (arguably) a lame excuse.

Half-measures are often incoherent and worse

than the status quo.

See: banking & healthcare

You just lock yourself into a disaster.

Obama can update the EO's for the NSA without congress[+].

[+] EFF: _" Future reform must include significant changes to ... Executive Order 12333, and to the broken classification system that the executive branch counts on to hide unconstitutional surveillance from the public."_

He just doesn't want to stick his neck out.

So this bill was a distant 3rd choice for the country.

1) pass a good law

2) administrate the NSA into compliance

3) pass muddled legislation in a lame duck session

<comment><USER8> Yet the EFF still supported it.. and given your false choices, why not do _both_ #2 and #3?

<comment><USER9> False choices what?

Your comment is absurd.

Fixing the EOs is simple.

(That buys time. Time to get

coherent legislation

figured out.)

</comment></comment></comment></comment></comment></comment><comment><USER10> If what the purest form of this bill was trying to do is important to you and you're from the US, keep working for it. I suggest the following:

1) Show up at the primaries. 2) Reform your local laws to allow you to vote in the primaries for both parties. 3) Don't shut up. Keep talking. 4) Keep in mind, at all times, that the fight isn't over once the NSA is squelched. AT&T et. al. still get to keep this information forever. 5) Think about parallels. Encryption isn't good enough, as the same kind of meta-data is generated when you visit an encrypted site. It's not any one activity it's the pattern of all activity that's important and no one is making anyone give up that data, either.

<comment><USER11> Net architecture needs to go Tor-style.

</comment></comment><comment><USER12> Does anyone have a history of the "60 votes needed" to pass a bill in the Senate?

I could have sworn that within my lifetime, the press talked about "50 votes needed" to pass a bill. Then at some point in the Bush years, threat of filibuster was regularly invoked, making 60 votes the requirement in practice.

Now no one even mentions a filibuster. As a non-American, it's rather strange.

<comment><USER6> This might be what you're looking for: [http://www.washingtonpost.com/blogs/wonkblog/post/the- histor...](http://www.washingtonpost.com/blogs/wonkblog/post/the-history-of- the-filibuster-in-one-graph/2012/05/15/gIQAVHf0RU_blog.html)

Very briefly:

In the mid years of Bush, the D Senate filibustered more than usual in regards to nominations of non-Supreme Court judges.

In 2006, when Democrats took the Senate, the Republicans started filibustering up a storm. But no one in the press noticed because Bush would have veto'd anyway, so the balance of power didn't shift.

As soon as Obama was elected, the Republican Senate had an internal meeting where they agreed to filibuster everything all the time -- legislation, judges, executive appointments, everything. Even legislation they supported, just to throw a wrench into the plans. It was a momentous change. The press failed to point it out or make an issue out of it. And here we are.

<comment><USER13> I wonder what the odds are that the Republicans will end the filibuster once they take back the Senate. Seems like the smart play would be to only do that if you have a veto-proof majority or a Republican President, but who knows.

<comment><USER14> Actually Harry Reid already ended the filibuster on Judicial Nominees [http://www.washingtonpost.com/politics/senate-poised-to- limi...](http://www.washingtonpost.com/politics/senate-poised-to-limit- filibusters-in-party-line-vote-that-would-alter-centuries-of- precedent/2013/11/21/d065cfe8-52b6-11e3-9fe0-fd2ca728e67c_story.html)

</comment></comment></comment></comment><comment><USER15> At least your media even talks about this, I'm in a 5 Eyes Alliance country and none of them have written anything except excuses why we should be under 24/7 surveillance. Our senate can't even block bills.

</comment><comment><USER16> Not to sound more cynical than the situation warrants, but in this case I'm not particularly surprised or disappointed. Congress is clueless and more concerned with partisan politics and re-election fundraising.

We should be (and many are) working to secure ourselves so that Congress and the legal system must work to catch up to the possibilities of citizens to protect themselves on their own terms: good end-to-end encryption, true anonymity when it's needed, and as much open and auditable code as we can get.

They're not going to give security and privacy to us — they wouldn't even if they could. So we make it ourselves, slowly, surely, and publicly, and maybe in a few years _they 'll_ be the ones that are outraged.

<comment><USER17> You will, however, be bound by current 'lawful intercept and storage' laws. If you provide a remote computing service (email, hosting, cloud storage, fitness tracking, etc) you will be bound by 18 U.S.C. § 2703(f) [1]. If you provide telecommunications you will be bound by CALEA [2]. You will be bound by the Stored Communications Act and by the Patriot Act, and you will be bound to provide access to the core of your service and/or your private keys if you are given an NSL.

Essentially - you can not provide secure communication as a service.

If you try to provide it as a _product_ it's more blurry. With precedents like Blackberry, RSA and Skype you need to make sure you're operationally able to deal with extreme levels of leverage and influence.

[1] [http://www.law.cornell.edu/uscode/text/18/2703](http://www.law.cornell.edu/uscode/text/18/2703)

[2] [https://en.wikipedia.org/wiki/Communications_Assistance_for_...](https://en.wikipedia.org/wiki/Communications_Assistance_for_Law_Enforcement_Act)

<comment><USER18> Will this also apply if your server is outside US. Example: you're using an US company (Rackspace) that is hosting your website in HongKong.

Is there anywhere a list of "nay" voters.. I want to put few phonecalls in place tomorrow, express my disgust.

<comment><USER19> Yes, it will apply. Hosting location does not matter [1] [2]

[1]: [http://www.theregister.co.uk/2014/09/23/microsoft_vs_the_lon...](http://www.theregister.co.uk/2014/09/23/microsoft_vs_the_long_arm_of_us_law/)

[2]: [http://www.zdnet.com/yes-u-s-authorities-can-spy-on-eu- cloud...](http://www.zdnet.com/yes-u-s-authorities-can-spy-on-eu-cloud-data- heres-how-7000010653/)

</comment></comment></comment></comment><comment><USER20> I have no pity for the Republicans and every one that voted against it needs to be reminded of it every day from now until election.

I'm also not such a noob at politics that I think this is the entire story. Democrats knew this wouldn't pass. This was their last couple of months of control. So it's a poke in the eye to Republicans on the way out.

The really interesting counter-factual here is what would have happened if a large block of Republicans switched up. My bet is that you'd see quite a few defections in the Democratic camp.

If I'm a politician, I can either support something, oppose something, look like I'm supporting something when I really don't, or look like I'm opposing something when I really support it. The key issue isn't my stance, it's how I can position myself against the other politicians.

I'd love to see movement on this. Not for a second did I think this vote was anything but political posturing. But still -- any vote is a good one. Just wish it would have actually meant something instead of more fodder for all the partisans to throw dung at each other. It also looks like the beginning of "See! If we were just back in power, this time we'd really fix all those problems we approved of and encouraged the last time we were there!"

I wonder if this will have any traction among the base, which was the entire point. Sadly, I think it will.

</comment><comment><USER21> It's worth noting that the USA Freedom Act would have extended the Patriot Act until the end of 2017.

</comment><comment><USER22> "Earlier this evening, Sen. Rand Paul voted against further consideration of the USA Freedom Act as it currently extends key provisions of the Patriot Act until 2017. Sen. Paul led the charge against the Patriot Act extension"

[http://www.paul.senate.gov/?p=press_release&id=1244](http://www.paul.senate.gov/?p=press_release&id=1244)

</comment><comment><USER23> ""This is the worst possible time to be tying our hands behind our backs," Mr. McConnell said before the vote, expressing the concerns of those who argued that the program was a vital tool in the fight against terrorism."

When would be a good time? Seriously, I hate these arguments, because there is no reasoning with them. Sure, these various programs may have helped stop terrorism, or at least have the potential to.

However, so would killing anyone (citizen or not) who has any potential threat. I would argue the later is even more effective, and uses the same chain of reasoning.

Why then, can we not move past that and try to stand a bit more on law (being the constitution in this case), if not reason. Clearly, these programs are disliked by a large number (if not the majority) of the constituents these senators represent. Then, why are they not voting on their behalf?

That seems like a far better question.

<comment><USER13> Notice that the article only _inferred_ that McConnell was referring to terrorism specifically. Perhaps they anticipate domestic unrest (due to, among other things, egregious NSA spying, ironically), and don't want to tie their hands behind their backs in the fight against _that_. In which case, a good time to do it, is whenever they decide to stop the spying and the impoverishment to destitution of literally everyone save for the rounding error of a demographic that constitutes the ruling and elite classes, _et cetera_. So, never.

</comment></comment><comment><USER16> Not to sound more cynical than the situation warrants, but in this case I'm not particularly surprised or disappointed. Congress is clueless and more concerned with partisan politics and re-election fundraising.

We should be (and many are) working to secure ourselves so that Congress and the legal system must work to catch up to the possibilities of citizens to protect themselves on their own terms: good end-to-end encryption, true anonymity when it's needed, and as much open and auditable code as we can get.

They're not going to give security and privacy to us — they wouldn't even if they could. So we make it ourselves, slowly, surely, and publicly, and maybe in a few years they'll be the ones that are outraged.

(pasted from the other thread where I wrote this before I saw this one)

</comment><comment><USER24> Wasn't the program created by executive order? Can't it be dismantled the same way?

<comment><USER25> If you are talking about the Bush executive order congress went and passed laws legitimizing it after it was leaked in the press.

<comment><USER26> It may well still be able to be dismantled by executive order. Just 1) the next President could put it together again, and 2) Obama doesn't have much interest in dismantling it in the first place.

<comment><USER27> In 2008 he campaigned against dragnet (or at least warrantless) surveillance. Obama's wikipedia entry says he taught constitutional law for twelve years or so.

 _Why_ is Obama not interested in dismantling dragnet surveillance? He also worked as a civil rights lawyer.

Obama has the education and experience to know that surveillance has lots of bad effects, and that some secret special reading of a law doesn't make it legal or ethical or constitutional. Why didn't Obama dismantle the universal- as-possible surveillance?

<comment><USER9> This is a really fair question. I think it is simply he doesn't want to look weak. The political problem with him fixing the EOs is he has to sign them. This is just a publicity stunt to blame someone else for not doing something he lacks the courage to do himself. Its truly mind-bending. A good leader would dix the stuff he can fix by himself and then work with other people to fix what needs to be fixed by consensus. POTUS is not that guy, tho.

</comment></comment></comment></comment></comment><comment><USER28> > _With the bill's defeat, the Senate faces a hard deadline for new > legislation since the legal basis for the phone records program, a provision > of the Patriot Act, expires in June. After that, when the 90-day orders to > phone companies requiring them to turn over their customers' records expire, > the Foreign Intelligence Surveillance Court would be unable to issue a new > round of orders._

Given the "rifts between the [GOP's] interventionist and more libertarian- leaning wings," what are the probable endgames? Specifically, what are the odds of–and promoting factors for–an obstructionist minority flipping over the table in June?

<comment><USER6> D's lost 8, R's gained 8 in the latest election.

Assuming no new R's vote right, that gets us to a vote of 50 / 50, with Biden getting the deciding vote. However, in the modern filibustering Senate, 41 Senators can kill any bill.

So in theory, if everyone who voted for the bill hangs tight, they could destroy any new legislation, including PATRIOT ACT reauthorization.

However, I'd be quite surprised if neither of these things happen: 1\. McConnell decides the filibuster no longer works for him, so he kills it. 2\. Obama puts remarkable pressure on fellow D's and they buckle.

But theoretically, we have all the votes we need. And if 1 new R senator joins the anti-NSA caucus (and all the D Senators hang tight, and all the D senators are good on the issue), they wouldn't even be a minority -- they'd have 51 votes.

Hope that makes sense.

<comment><USER29> I'm away from my lists, but some of the new R Senators will vote anti-NSA with Paul / Cruz. I would imagine the Patriot Act reauthorization might be problematic.

<comment><USER30> This article characterizes the new R senators as belonging more to the establishment wing of the party, in part because the party was fairly successful in getting its preferred candidates through the primaries, avoiding some of the surprises that characterized 2010/2012: [http://www.nytimes.com/2014/11/16/us/new-senators-tilt- gop-b...](http://www.nytimes.com/2014/11/16/us/new-senators-tilt-gop-back- toward-insiders.html)

Some do have more track record in that regard than others though, so it might be that they won't all side with the national-security conservatives.

<comment><USER29> 4 were swept into the House in the wave that brought the R majority and their voting record isn't exactly all happy happy with the establishment. Joni Ernst is not establishment. I am not sure about the other 2.

There were a lot a jockeying and some losses from the outsiders, but remember that Cantor got beat in the primary.

</comment></comment></comment></comment></comment><comment><USER31> It's ironic that the same people who detest "big government" are for big government spying on them.

</comment><comment><USER32> If there's any nugget of gold in there, it's that Dianne Feinstein voted _with_ Ted Cruz in a _Yea_. I would have expected a different outcome.

Apart from that it's hard to frame positively. Is this something Americans should be proud of? Should the Germans have been proud in the '30s?

</comment><comment><USER33> Anybody know who attached the Patriot Act renewal to this bill? Which politician/s specifically.

<comment><USER8> Only 3 provisions of the roughly 100 from the Patriot Act would be renewed with this bill[1], but that amendment was added on by one of the original authors of the Patriot Act, Jim Sensenbrenner (R)Wisconsin.[2]

[1] - [https://www.eff.org/deeplinks/2014/11/usa-freedom-act- week-w...](https://www.eff.org/deeplinks/2014/11/usa-freedom-act-week-whats- come-and-what-you-need-know)

[2] - [http://sensenbrenner.house.gov/biography/](http://sensenbrenner.house.gov/biography/)

</comment></comment><comment><USER34> I can very much understand people for the 2nd amendment and people for government surveillance but for the love of me I cannot understand people for both things, they seem direct contradictions of what your idea of government involvement in citizen's life should be.

</comment><comment><USER35> I think they just reflect what the people want. In other words, a majority of American population does not want overhaul of NSA program. Right or wrong we will see in the future.

<comment><USER36> Yes and no.

The parties have successfully rigged the system such that they only need to cater to lobbyists, and the extremist wings of their respective parties, to maintain power.

It really wouldn't matter what the _majority_ of Americans believed, notwithstanding that a majority of Americans probably would view the NSA programs as, at worst, a necessary evil. You also have to take into account the politics approaching the upcoming presidential election.

<comment><USER37> Matt Taibbi is a good writer to read in regards to how Washington really works. I can't remember which of his books had the best example, but the system is broke.

</comment></comment></comment><comment><USER38> I feel like the biggest problem we have is that whatever can be done will be done by other nations, so the USA has to break rules too. :(

<comment><USER39> Being spied on by your own country is worse than being spied on by other countries. Your own country doesn't have another country between you and it to protect you. Also, other countries will look at the USA and say 'we can do it because they do it', and that just leads to more problems. Eventually you have to say no to spying. It's morally and ethically unacceptable, and we should not tolerate anybody doing it.

<comment><USER40> When a country wants to spy on it's own citizen, they apparently think that it's acceptable to ask for that data from another country as opposed to being illegal when getting the data directly. USA <-> Germany being an example

</comment></comment></comment><comment><USER9> "Bill to Restrict Data Collection Blocked in Vote "

\-- actual title

<comment><USER8> The title on the article changed after it was submitted here. From NYTimes twitter:

[https://twitter.com/nytimes/status/534873348686495745](https://twitter.com/nytimes/status/534873348686495745)

<comment><USER9> This is a common tactic for NY times articles.

</comment></comment></comment><comment><USER41> The democrats want the government to control everything. Do you think we will have less data collection when we have universal health care? How about making the Internet a "utility"? You don't think when this happen there won't be a direct pipe to our data??

I can't believe anything I read on the Internet anymore. I would be interested to see why they voted against it.

I'm shocked that a group that claims they are open and accepting, yet when the word republican is used, the tactics and tone change to that of the people you are against (personal attacks, slander, bigotry, and bias). It's because most of it is bullshit. There is only acceptance when someone aligns with your personal beliefs.

I can see how evil dictators can come into power. The average person can so easily be swayed by emotion.

</comment><comment><USER11> dm;we (doesn't matter; will encrypt)

Entire consumer stack will go encrypted.

<comment><USER42> Encryption doesn't quite solve everything here - the NSA can still demand the encryption keys, or demand direct modifications to the service like logging being installed.

To solve this from a purely technical standpoint we'd need to design services where the service provider is a completely untrusted party - never allowed to see or manipulate user data on the backend, and all processing that requires decrypted user data would need to be moved to the client. We would also need a way to verify client code to ensure that malicious changes haven't been introduced. And finally, we would need a way to anonymize all requests to the backend.

An architecture like this is pretty hard to implement, so it would be nice if we could just get the NSA to stop.

<comment><USER11> It stops mass spying, targeted is fine if legit.

The NSA will not stop because DC wants to spy on governors, lawyers, judges, companies, etc. NSA has been illegally spying domestically since its inception, which was itself an undemocratic exec order. Only Supreme Court will restrain, and doesn't protect against Chinese and Russian hackers. So encryption throughout consumer tech stack and net protocols is the only answer.</comment></comment></comment>


Ask HN: How do you memorize syntax? - <AUTHOR> I am learning Python, and having hard a time with concentrating and retaining syntax, and semantics.<p>What to do to memorize and retain the grammar of Python? <comment><USER2> +1 on learning by doing. And for me at least it's definitely a "use it or lose it" kind of thing. If I don't work with a given language for more than a month, when I get back to it I'll have to look up basic syntax for a few days until I pick it back up. Though I find this is less of an issue as you learn more and more languages.

</comment><comment><USER3> You don't, at least if the syntax/semantics is as complex as Python!

Recommendation:

Find a subset grammar for Python, by doing a search on computer science classes on university sites. You will find the published Python subset grammars probably too small for your purposes, but they are a start.

See if any of those subset grammars meet your needs.

IF not, remove from the published official Python grammar, various features that you do not need or are not easily understood. I recommend you keep the production rule for "class"

When you get a subset grammar that meets your needs, it will have to be well- formed, meaning it passes reachability, derivability, and non-circularity tests, has no undefined non-terminals, and is complete with a start (i.e., goal symbol.

You should then remove left-recursion and left-factor the grammar so it is LL(1).

Run your grammar through some of the on-line syntax checking sites to be sure the grammar is unambigous and is LL(1). You can use the online Grammophone tool from the University of Calgary to check your subset grammar.

After the grammar passes the LL(1) tests, find a top-down, predictive, compiler-generator that generates recursive-descent parsers, and not tables. The compiler-generator will also perform tests on your grammar and let you know what needs fixing.

I forgot to mention that you will also need to define the lexical tokens needed for the scanner portion before you can generate your scanner and parser modules.

After you generate the scanner, parser, and a main module to call them, you will have created a fast syntax checker for your subset grammar.

Run the fast syntax checker, preferably within a program editor or IDE, as you write your Python programs

You can also create "template editing macros" that will insert into your editor, portions of a Python program, but with portions elided, that you gradually fill-in. Also, you can add syntax-highlighting to your editor.

</comment><comment><USER4> Usage. The more you use something consistently, the more you remember it.

However .... One thing I learned very early on is that in today's world, it's probably silly to try to clutter up your limited memory with stuff that you rarely use.

 _You can never remember everything. BUT ... you should know where to find it._

You have a computer with you, so use that as a source of reference.

Even today, after using C for decades, I will often do things like "man strtok" while programming.

</comment><comment><USER5> By writing code. The more I write, the more I get familiar with the syntax and semantics of the language.

<comment><USER6> by hand

</comment></comment><comment><USER7> Practice. A lot of practice</comment>


Cease and decist lameness against respected mobile web dev's open source project - <AUTHOR> http://cubiq.org/iscroll-may-soon-change-name

<comment><USER2> Hope someone with experience in this area of law can help you out. Very unfair!</comment>


Dropbox responds to accusations its Mac desktop client hacks OS X security - <AUTHOR> https://techcrunch.com/2016/09/09/dropbox-responds-to-accusations-its-mac-desktop-client-hacks-os-x-security/ <comment><USER2> > [...] Dropbox's Ben Newhouse, from its desktop client team, told TechCrunch.

TechCrunch, FYI: quoting an HN comment doesn't really count as "told TechCrunch".

<comment><USER3> I'm assuming TechCrunch contacted Mr Newhouse to verify that he wrote that HN response, so he did tell TechCrunch. It would be a bigger journalistic problem if they didn't verify with Mr Newhouse and just took text from some commenter purporting to be Mr Newhouse.

<comment><USER4> It still doesn't count as "told TechCrunch".

<comment><USER5> Would it count if he then repeated the words as well? What are you looking for ?

<comment><USER6> > What are you looking for ?

Probably for TechCrunch to use a term like "said" instead of involving themselves after the fact.

</comment></comment></comment></comment></comment><comment><USER7> So whether this is just the HN comment copy/pasted or if they followed up, I don't care. There are much bigger issues in tech journalism to worry about.

Even more concerning is the actual response.

Basically the comments on the earlier HN thread and then the quotes on the article show their point of view being that what they _did_ isn't a problem, just that they got found out and it paints them in a justifiably negative light.

This is one of the exact reasons why I _very much_ prefer to get apps from the Mac App Store: Sandbox enforced; No setuid; No privilege escalation; No futzing with the OS UI.

</comment><comment><USER8> Tomorrow: TechCrunch responds to accusations of copying from Hacker News and calling it "Mr. X told us"

I actually think Ben just told TC the same as he told us, so no foul play by TC or anything. They're just not reporting anything new at all.

</comment><comment><USER6> "However, the company's justification for utilizing the Accessibility route to gain root access did little to impress some critics."

That.. no. They use root to gain access to Accessibility!

</comment><comment><USER9> «[...] Dropbox's Ben Newhouse, from its desktop client team, told TechCrunch.»

He wrote this on HN..

</comment><comment><USER10> Not so bad, actually. At least Dropbox has commented on it and is ideally working on making some improvements. Plus, a big tech site has picked up on the story, so a lot more people are aware of it now. And finally, it looks like HN played a role in raising this issue.

Still not an ideal situation, but could have been worse.

</comment><comment><USER11> Hanlon's razor, gents. Maybe Ben just sent TechCrunch the exact message he posted here.

<comment><USER12> Please stop with the razors. Someone will get cut.

</comment></comment><comment><USER13> Sounds like more or less nobody at Dropbox knew how that stuff was getting done either.

</comment><comment><USER14> Modern-day tech journalism: cut and paste together some quotes from Hacker News comments.

[https://news.ycombinator.com/item?id=12464730](https://news.ycombinator.com/item?id=12464730)

<comment><USER15> I'd love to hear what exactly folks consider to be wrong with that.

I've seen this sort of criticism in a few places before, but especially in cases such as this where someone from the company responded and talked of making change, being on top of happenings like this seems like a reasonable thing to do.

It certainly seems better than the old 'ask random people for their opinion' approach of conventional huge media.

I'm struggling to find links to posts about this, but it's not too hard to point to cases, both mentioned online and through my friends, where utterly unqualified opinions were sourced based on journalists using indicators like 'owning a domain name' as proof of a person's authority on a topic.

Edit: at least on HN and social media you can verify the full text of what someone said after the fact and oftentimes even look up their background!

<comment><USER14> _I 'd love to hear what exactly folks consider to be wrong with that._

Ben Newhouse's answer left quite a few questions open. How about poking him or Dropbox a bit more? For instance, competing products (OneDrive, Resilio Sync, etc.) provide similar functionality without placing SUID 'backdoors'. Given that OneDrive's client is distributed via the app store, I'd guess that it even uses OS X sandboxing.

What about asking a security expert (or perhaps Apple) to comment?

A good journalist doesn't just literally relay information, but provides context/interpretation.

(Of course, it's in TC's right to do this, but it doesn't add much to the conversation.)

<comment><USER15> All valid points, although perhaps it's more in their interest to publish soon/rapidly/without dedicating much effort to every post that they put out?

What you're describing may be in line with what we expect from conventional journalists, but media put out starting at once a day is a different medium with different constraints, is it not? Don't the even faster media forms (intra-day news on TV, radio) have more people on board to help make that process happen quickly?

</comment></comment></comment></comment><comment><USER16> "Joutnalists" really have their work cut out for them these days, quoting Reddit and HN comments is hard!

<comment><USER17> If they actually pick a comment from HN and then _verify the authenticity and expand on it by interviewing the author_ , then I think they are really doing their job.</comment></comment>


UK scales back plans for £5bn rival to Galileo satellite system - <AUTHOR> https://www.ft.com/content/50c3b6dc-2d2f-4bb4-aa9b-b24493315140 <comment><USER2> Was there ever any doubt that this would end up being quietly canned? (we're not there yet, but it's a start)

This was a tool in the Brexit debate, but realistically never intended to deliver.

</comment><comment><USER3> Yet another pay walled article. This user has posted 6/10 of their last submissions to this same paywalled site.</comment>


Programming Is a Losers Game - <AUTHOR> https://tomgamon.com/posts/a-losers-game/ <comment><USER2> That's a pretty misleading terminology. 99.99% of the people who read "losers game" will think it's a game for losers.

it should be something like "winner driven game" and "loser driven game" instead.</comment>


What Are the Things Successful Crowdfunding Projects Do Right? - tefo-mohapi http://www.iafrikan.com/2016/11/23/what-are-the-things-successful-crowdfunding-projects-do-right/ <comment><AUTHOR> I don't know if there ever was an article but right now it's a 404</comment>


Who paid 99 cents? - <AUTHOR> https://whopaid99cents.com/ <comment><AUTHOR> Kind of a fun throwback to goofy internet sites of yore [https://mashable.com/article/who- paid-99-cents/](https://mashable.com/article/who-paid-99-cents/)</comment>


A free web based focus writer.   - <AUTHOR> http://brighter.herokuapp.com This was my first web app. Made it two years ago. Releasing it for comments. Source code: https://github.com/digitalasia/brighter <comment><AUTHOR> This was my first web app. Made it two years ago. Releasing it for comments. Source code: [https://github.com/digitalasia/brighter](https://github.com/digitalasia/brighter)</comment>


FuckItJS: Runs your javascript code whether your compiler likes it or not. - <AUTHOR> https://github.com/mattdiamond/fuckitjs/ <comment><USER2> The software license is the best part:

"If you are caught in a dire situation wherein you only have enough time to save one person out of a group, and the Author is a member of that group, you must save the Author."

<comment><USER3> Brilliant... This is going in every software license and terms agreement I write from here on out. What a tremendous insurance policy if I perhaps hit on the next Facebook. 1/7th of the planet responsible for saving lil ol' me.

<comment><USER4> Just keep in mind: widespread adoption of this license can lead to race conditions, when two concurrent authors of simultaneously used products happen to be in the same group

<comment><USER5> Our QA group is hiring

</comment></comment></comment></comment><comment><USER6> Reminds me of Failure-Oblivious Computing [1]. It takes advantage of the fact that in many programs errors have a short error propagation distance as they are often written as a main event loop and as long as you can get to the next iteration of the loop the error won't corrupt state. For example, if your server crashes on one request, it will probably be fine if it just gets invalid data instead, discards it as invalid, and then waits for the next response.

I'm not sure if this applies well to JavaScript. We might observe that most JavaScript is a set of disjoint event handlers. If one doesn't work right it probably won't break the rest of the site.

I played around with implementing FOP dynamically through DynamoRIO [2] as a class project but only got through a proof of concept and quickly remembered why I hate x86 assembly.

1: <http://en.wikipedia.org/wiki/Failure-oblivious_computing>

2: <https://github.com/periodic/Shady>

<comment><USER7> This is exactly what browsers do already. If one event handler has an error, that event is aborted. But the event loops continues, and js will continue to run.

</comment></comment><comment><USER8> I love a good tongue-in-cheek git repository... Reminded me of: <http://html9responsiveboilerstrapjs.com>

<comment><USER9> That is the funniest thing I've seen all month!

 _"2. How do I install this?

Um... are you stupid or something? Just attackclone the grit repo pushmerge, then rubygem the lymphnode js shawarma module – and presto!"_

<comment><USER10> +1

</comment></comment></comment><comment><USER11> Original Author here... for reasons I can't fathom, someone has created a Drupal module:

<http://drupal.org/project/fuckitjs>

<comment><USER12> Which contains this gem <http://drupal.org/node/1657944>

<comment><USER13> Interestingly, the Bad Judgement module looks like it's a legit check on other non-serious modules:

 _This module provides an explicit dependency for modules whose usage requires bad judgement. Joke modules often require "bad judgement"._

</comment></comment></comment><comment><USER14> I realize that this is a joke, but I can't help but wonder if there is a possible valid use for it. I could imagine needing something that fixed bad js for a crawler that needed JS on a poorly coded site, but I can't think of an occasion where discarded bad code would ever be useful. Maybe if a site deliberately injected bad JS to prevent crawling it would be worthwhile.

<comment><USER15> I've used this library for loading horrible, third-party javascript:

<https://github.com/gregersrygg/crapLoader>

</comment></comment><comment><USER16> > _1\. Include jQuery, because everything requires jQuery_

I love it! :P

Great sense of humor.

<comment><USER17> Also, "Note: This is ALPHA software and may result in irreversible brain damage."

<comment><USER18> This is ALPHA software and will routinely bully other software to assert its dominance.

Sorry, couldn't resist :)

<comment><USER19> This is ALPHA software and will give you a squeaky voice if you have enough electrons on hand.

</comment></comment></comment></comment><comment><USER20> For completeness, it should use WTFPL license.

<http://en.wikipedia.org/wiki/WTFPL>

<comment><USER21> +1

</comment></comment><comment><USER22> First thing I thought when I see it: Why!?

Second thing: Why not call it OnErrorResumeNext!?

<comment><USER16> Ah... bringing back the memories :)

I think I'll go add an "Option Explicit" to the top of the file I'm working on, right now, just for fun...

Since it's not valid JavaScript, I'm sure FuckItJS will just skip over it.

</comment></comment><comment><USER23> How would I go about integrating this as a step into my build process?

<comment><USER24> this is probably like integrating a car crash into your daily commute

but you can probably integrate into Jenkins for continuous jury-rigging

</comment></comment><comment><USER25> > Through a process known as Eval-Rinse-Reload-And-Repeat

ERRAR. I like it.

<comment><USER26> Intentional or not, that is Portuguese for "to make a mistake".

<comment><USER27> It's also a netspeak spelling of the English word "error." (For some reason it's considered humorous to transform -er and -or into -ar.)

<comment><USER28> It is? I can safely say I've never seen anyone say "errar", ever.

<comment><USER27> It's a general thing some people do. Anything that ends in an -er sound can be replaced with -ar for apparent hilarity. I think the most common (and maybe first) example is "winnar," though there are many more.

</comment></comment></comment></comment></comment><comment><USER29> I feel terrible for the person who takes a contract job and is handed some code that depends on this. Also I hope it isn't me.

</comment><comment><USER30> Dupe: <http://news.ycombinator.com/item?id=4148287>

<comment><AUTHOR> My apologies. I submitted, but when it has been submitted before it usually just redirects you to the previously submitted one. Not sure why it didn't do this for me this time!

EDIT: Seems to be "http" vs. "https".

<comment><USER31> No need to apologise. If something is missed the first time, people see it the second time and it gets voted up to the front page then people want to see it. With the voting system if it truly is a "dupe" it wont get voted up...

</comment></comment></comment><comment><USER32> I read the source before I read the readme, and was thoroughly mindfucked.

I love it.

</comment><comment><USER33> ...but still, what does `FuckIt.moreConflict()` actually do and when would I use it? (I just desperately feel the need to use a function named `moreConflict`... don't ask!)

<comment><USER34> It overwrites ever property on the 'window' object (except for 'location') with FuckIt.

</comment></comment><comment><USER35> Pardon me but I don't get any alert when I run the test script.

</comment><comment><USER36> //@ TODO: give a shit

epic comment, in an epic app

<comment><USER37> Yep, the commits are funny too: [https://github.com/mattdiamond/fuckitjs/commit/001b146fc9dc6...](https://github.com/mattdiamond/fuckitjs/commit/001b146fc9dc68bce3071774006f50582a603a79)

</comment></comment><comment><USER38> One of the best laughs I've had in a while.

</comment><comment><USER10> +1 for creative name

</comment><comment><USER39> Nice.</comment>


Ask HN: How to permanently fake gps location on Android? - <AUTHOR> Location data is being sold. Can i fake my location using some trick? <comment><USER2> Here, I found it...

[http://bfy.tw/JTmN](http://bfy.tw/JTmN)</comment>


Chilean Protesters Took Down a Drone with Standard Laser Pointers - <AUTHOR> https://www.nextgov.com/emerging-tech/2019/11/how-chilean-protesters-took-down-drone-standard-laser-pointers/161288/ <comment><USER2> I suspect more likely... As loads of people were shining laser pointers at it, someone else was also pointing a $25 GPS jammer at it, causing it to go into auto-descend and land here mode...</comment>


A Lesson in Empathy - <AUTHOR> http://www.youtube.com/watch?v=Ao461iG9UsA

<comment><USER2> Mislabeled: should say "an ad for ron paul"</comment>