A chess position to defeat computers? - <AUTHOR> http://www.telegraph.co.uk/science/2017/03/14/can-solve-chess-problem-holds-key-human-consciousness/ <comment><USER2> > The institute is also hoping to develop new technology to improve the > treatment of brain disease and anesthetics, develop a new type of telescope > to detect dark matter and even __resolve the Schrodinger's Cat paradox, > which suggests a cat in a box could be alive and dead at the same time __.

This is why I dislike most science reporters.

<comment><USER3> The article starts already with the "World prize". The reporter obviously didn't think or check anything before publishing.

<comment><USER4> It should have said "Wolf Prize." Not vastly off (while being of course completely wrong.)

</comment></comment></comment><comment><USER5> The claim here isn't that computers _couldn 't_ solve this, just that they currently _don 't_. In general, computers and humans play the beginning and ending of chess games with some strong heuristics -- there are too many possible moves to enumerate, but there's a very limited number of worthwhile moves to consider.

In this puzzle, we have an extremely weird end-game. Humans can come up with a new heuristic on the fly, but current chess programs find all their existing heuristics fail and have to resort to brute-force search or really dumb heuristics and neither is helpful.

Obviously, it would be a matter of minutes to code up a new heuristic to detect this case. The interested question is what the humans are doing that lets us solve the problem so rapidly.

<comment><USER6> _The interested question is what the humans are doing that lets us solve the problem so rapidly._

The need for strategy is eliminated with tactically perfect play... Since computers are not yet to the point of having "solved" chess to tactical perfection, there will always be scenarios where strategy wins.

IMO this is the maximum win for human-machine interaction... humans define the strategy, and computers aid in the tactical execution of that strategy. I'm not really a big believer that AI is anywhere close to beating humans at being human, especially when you step outside the bounds of a simplistic game with a narrowed rule-set.

Like with cars and planes, you won't ever see an autonomous vehicle winning a World Rally Championship, and you won't ever see a computer figuring out how to make a Hudson river emergency landing. But computers can greatly assist with the braking, shifting, adjusting flaps, engine management, etc...

<comment><USER7> > you won't ever see an autonomous vehicle winning a World Rally Championship

Autonomous vehicles will surpass human rally teams. I've competed in rally here in the US.

The vision problems involved are difficult but don't underestimate how much humans struggle with sun and dust as well. With everything else the computer has the advantage.

WRC as an org may not ever run an autonomous class, but I would expect to see a robo rally event of some sort to show up, perhaps first as a spectacle at Pikes Peak or Isle of Man.

</comment></comment></comment><comment><USER8> The position nearly plays itself - none of the black pieces except the bishops have any legal moves, so if white moves his king around, without capturing anything, a draw will result by the 50 move rule (the bishops can't mate the king, since they won't control any light squares). For black, the play is even more automatic, since moving the bishops back and forth on the dark squares is the only legal option.

I do think that a computer will play this correctly for both black and white; for white, a capture will result in a checkmate within a few moves, which the computer will be able to see. So this may result in incorrect computer evaluation, but not in incorrect play.

<comment><USER9> _none of the black pieces except the bishops have any legal moves,_

Why couldn't black move the topmost pawn forward?

<comment><USER8> Forward for black pawns is down, in a standard chess diagram; white's side of the board is at the bottom.

So black pawns have no legal moves, while the white pawns could move (the topmost pawn) or capture either of the black rooks, although this would be disastrous for white, as the black pieces would then be able to leave their position and would checkmate white in a few moves.

</comment></comment></comment><comment><USER10> _Rybka v Nakamura_ is this sort of anti-computer strategy where the computer clearly doesn't understand the position. 270 moves of Naka calmly moving back and forth behind a blockade, the exchange down. Rybka eventually tries to _do_ something since it's up on material. And then it just gets slaughtered.

[http://www.chessgames.com/perl/chessgame?gid=1497429](http://www.chessgames.com/perl/chessgame?gid=1497429)

</comment><comment><USER11> 'The chess problem - originally drawn by Sir Roger - has been devised to defeat an artificially intelligent (AI) computer but be solvable for humans.'

I take issue with that statement. All chess engines I'm aware of will correctly play out the draw, so it doesn't defeat them. The engines will _evaluate_ a material advantage for black.

Frankly, this isn't really a surprise.

Incidentally I once won money on Betfair (a P2P betting site) by evaluating a position in a Kasparov vs computer game that looked like a win to computers for the computer, but that I knew Kasparov would prevail in. My fellow gamblers were trusting the computer evaluations :)

<comment><USER12> will a chess engine, as white, enter this position from any of the possible preceding positions?

<comment><USER11> Why does that matter?

<comment><USER12> [https://en.lichess.org/analysis/8/p7/kpn5/qrpPb3/rpP2b2/pP4Q...](https://en.lichess.org/analysis/8/p7/kpn5/qrpPb3/rpP2b2/pP4Q1/P3K2b/8_w_-_-#0)

stockfish loses here, but could easily draw.

</comment></comment></comment></comment><comment><USER13> If anyone wants to play with this, here is the board in lichess: [https://en.lichess.org/analysis/8/p7/kpP5/qrp1b3/rpP2b2/pP4b...](https://en.lichess.org/analysis/8/p7/kpP5/qrp1b3/rpP2b2/pP4b1/P3K3/8_w_-_-)

<comment><USER14> Constantly valuating at about -30...

Crazy enough, every chess player in the world can see immediately it's a draw from the very beginning, unless white concedes a helpmate, yet stockfish doesn't get it...

<comment><USER8> True, but the engine does see that a pawn move by white results in checkmate in a few moves, so it would actually play this position correctly and get a draw, despite the huge negative evaluation.

<comment><USER15> I played it out on lichess.org. After 47 moves, Stockfish sacrifices a bishop to keep the game going.

I was wondering if it would repeat that 47 moves later, but it didn't. Settled for the draw.

</comment></comment></comment></comment><comment><USER16> The claim that computers cannot solve this problem is never really clarified. Which chess AI's exactly? That it involves Roger Penrose and claims about special abilities of the human brain only makes me more suspicious.

</comment><comment><USER17> I don't play chess regularly but the stalemate was obvious to me immediately and the mate after about 3 minutes. Kinda clever but I'd be surprised if a chess AI couldn't see this. Penrose is notorious for thinking that consciousness depends on some spooky quantum effects that machines cannot capture (See Emperor's New Mind).

<comment><USER18> Isn't it already a stalemate? As long as the king never leaves white squares, he will never be in danger, and thus the game will be a draw by the 50 move rule.

I don't see how mate is possible. In order to mate, you need to advance the white pawn to promotion, but it's impossible to advance the white pawn without one of the 3 bishops killing it.

<comment><USER19> Technically, a stalemate is a draw and the 50 move rule is a different way to get a draw.

</comment></comment></comment><comment><USER20> Okay, here's my answer: all of black's pieces are blocked except for the bishops. The black king can't move without being checked by a pawn. All the black bishops are on black squares (meaning two must be promoted pawns -- unlikely but possible)

So the white king just needs to stay on a white square to stay safe.

The so-called "aha!" moment was remembering that bishops always stay on the same color. I can't claim any great insight, it's just something I read somewhere (so it could certainly be programmed into a computer).

I had to check that there was no way for the other pieces to escape. I'm not good at chess, so I just did a very quick check and then assumed it was probably fine -- given the nature of the puzzle it's unlikely there'd be a tricky edge case to cover there.

The thesis seems to be that a computer could never develop and use general theorems that let you short-circuit the search process. That's probably true for chess engines (and also mostly irrelevant to real chess matches, rather than puzzles). Definitely an interesting question to explore. My guess would be that real computer creativity is possible, but may require some new techniques.

<comment><USER21> > All the black bishops are on black squares (meaning two must be promoted > pawns -- unlikely but possible)

Is this possible outside the context of purposely making bad moves to humiliate your opponent? I thought you got to choose whatever officer you wanted, which would mean bishops are strictly dominated by queens.

<comment><USER22> Underpromotion is real thing and has its (very rare) uses. Even underpromoting to a bishop can turn a draw into a win:

[https://en.wikipedia.org/wiki/Promotion_(chess)#Bishop_under...](https://en.wikipedia.org/wiki/Promotion_\(chess\)#Bishop_underpromotion)

<comment><USER23> It kinda sucks that they changed to rule to require you to promote a pawn to a piece of your own color. The mate-in-1 puzzle on that promotion page that requires promoting a pawn to an opponent's knight is pretty neat and I can't see that rule having a practical impact on any real chess game.

</comment></comment></comment></comment><comment><USER12> Here's a position derived from the one shown in which stockfish plays white incorrectly.

[https://en.lichess.org/analysis/8/p7/kpn5/qrpPb3/rpP2b2/pP4Q...](https://en.lichess.org/analysis/8/p7/kpn5/qrpPb3/rpP2b2/pP4Q1/P3K2b/8_w_-_-#0)

</comment><comment><USER24> Interesting, it took me reading the comments to realize the board orientation vs the piece movement. Like many people the fact that the black bishops are basically unable to attack anything stands out, and given the orientation that none of blacks other pieces can move. Once you see those two things, the solution does just pop out.

</comment><comment><USER25> This is a terrible puzzle. I'm glad I didn't rack my brain for hours looking for the "flash of insight" when all I had to do was be reminded of the 50 move rule.

<comment><USER26> The 50-move rule is a hack and the wrong way to think about it. What's really going on is "black can never force a win, therefore the position is drawn".

</comment></comment><comment><USER27> The draw is fairly easy but the author mentions a win. Any ideas?

<comment><USER28> White cannot force a win. However, if it manages to move the king to D7, and the black bishops leave the B8-H2 diagonal (a huge blunder), then white can move its pawn to C7, and checkmate in the next move, by crowning the pawn into a queen.

<comment><USER29> Why not?

Once you're on D7 the pawn can be captured or kept. If black moves to capture the pawn with a bishop, you move the king into pawn's old spot. You capture the black rook with the other pawn for the win.

If there are no more bishops on the diagonal, or if they move their king to the B column, then you get a Queen and finish them off.

Am I missing something (I'm a _very_ bad player)?

<comment><USER30> > If black moves to capture the pawn with a bishop, you move the king into > pawn's old spot. You capture the black rook with the other pawn for the win.

If you capture the black rook, black will capture your pawn with the queen (and proceed to mate you now that their queen can move).

</comment></comment></comment></comment><comment><USER31> I remember coming home from the 1982 AAAI AI conference with my "AI, it is for real!" and thinking of how little skepticism about AI that I heard at the conference. Years later I bought Penrose's book "The Emperor's New Mind: Concerning Computers, Minds and The Laws of Physics" to 'know the enemy', but over the years I have started to agree more with Penrose's position on AI.

</comment><comment> GuB-42 An important thing to consider is that this puzzle is designed by a human for humans.

The way we solve this problem is not by thinking in term of pure chess logic. We solve it by thinking "what did the puzzle creator thought". So we recall from memory what kind of patterns are suitable for such a problem and start a tree search. It is similar the what a chess AI does but nodes are abstract patterns rather than just chess moves.

This puzzle follows a mental pathway that is common for most humans. We could also design problems that can easily be solved by specific chess AIs but not by humans or other chess AIs : just make it so that the AI naturally moves in the right direction, for example by making specific heuristics always right.

So while this problem is interesting for getting insight into the way humans solve puzzles, it doesn't make the human brain special.

<comment><USER32> This is not a "hard" problem. It is just a problem you can't solve with brute force.

</comment></comment><comment><USER33> I think you just push the king around on white squares, hope _all three_ bishops eventually blunder off the same diagonal (come on), and promote that c6 pawn to a queen. That's not a very satisfying "mate" solution but I don't see anything more clever.

Reading other comments, I see you'd also need to use the white king to guard the white pawn at c7 - I missed that - but even with that, you'd still need to hope that _all three_ black bishops would go off that diagonal.

Anyway, this seemed mostly about visual pattern recognition and thinking geometrically, visualizing vectors, seeing unblocked pathways. That's not how computers do it.

<comment><USER34> There's sort of a silly argument as to how you could get mate. If a computer is playing black, it reads the board as greatly to its advantage. So when it's coming up on the 50-move draw, it might offer you a bishop to take to prolong the game. It has such a material advantage, a draw "feels like" a bad outcome, so it's worth giving up some material to continue the game and go for the win. Which is a very computer way of "thinking". Once you take all 3 bishops in this manner, you promote the pawn and get checkmate.

<comment><USER35> Once you take all 3 bishops it is a draw as black can't move any pieces.

</comment></comment></comment><comment><USER36> I have a hard time believing that a chess computer wouldn't draw this game… the main issue is in the centipawn evaluation function which would show black ahead. This doesn't seem like a difficult thing to correct, and it might not even be a bad idea to have an evaluation function show black ahead in that position.

Practically, this isn't really an issue. In fact, running the position through the GarboChess JS engine ([http://analysis.cpuchess.com](http://analysis.cpuchess.com)), playing as white, it just moves the king around — exactly what a human would do to draw the game.

<comment><USER37> The heuristic would probably show black as ahead, but it would also show that black can make no progress. So it's an obvious draw.

</comment></comment><comment><USER38> This reminds me somewhat of an interesting recent video from GM Simon Williams [1], analyzing a queen sac from a real game. He disagreed with the computer's favoring black, and my very uneducated guess about this is that the position is odd enough -- white is down a queen and an exchange, but all of black's pieces are tied up in defense -- that a GM can better understand the implications.

[1]: [https://www.youtube.com/watch?v=-YX17fljs4E](https://www.youtube.com/watch?v=-YX17fljs4E)

</comment><comment><USER39> Can anyone with a chess engine handy confirm the claims in the article and explain what your engine is trying to do? I wouldn't be surprised if at least some engines have some kind of conservative heuristics built in, like "If I can't find something good after x cycles, let's play something safe." and "If the opponent isn't gaining any ground after several turns of me buying time, it is likely going to be a draw even though I don't know why."

<comment><USER40> If you actually play this state in a chess engine they play it "correctly", they just can't tell what the final outcome is going to be.

<comment><USER12> [https://en.lichess.org/analysis/8/p7/kpn5/qrpPb3/rpP2b2/pP4Q...](https://en.lichess.org/analysis/8/p7/kpn5/qrpPb3/rpP2b2/pP4Q1/P3K2b/8_w_-_-#0)

</comment></comment></comment><comment><USER41> All this might prove is that humans are less intelligent.

We are we wasting brain and heuristics solving problems that would never exist in real chess play? Seems like an inefficiency to me.

An artifact from our lack of ability to play chess as intelligently as machines.

Just like an inferior machine might be able to do something like burn outs because it doesn't have antilock braking. (I don't get cars insert real example here)

</comment><comment><USER42> I'm more interested in how the board got this way.

<comment><USER43> [https://en.wikipedia.org/wiki/Retrograde_analysis](https://en.wikipedia.org/wiki/Retrograde_analysis)

</comment></comment><comment><USER44> White King goes to a8, only using white squares and b8. Black has to make the mistake to leave b8 unguarded for one move. Then white pawn to c7. Black King cannot b7 because of the white King on a8. Black bishop has to take the pawn, or pawn c8Q will be mate. Black bishop on c7 however is forced stale, since the white King cannot move.

</comment><comment><USER45> As long as the King stays on white squares it will result in a draw in 30 moves... -shrugs- I think the computer could see this. It would revert to the rules that it knows. It would know +1, +2, +3.. and so forth moves down that it is growing closer to the draw line. It will wait for a pawn move from White. Without a pawn move... draw.

</comment><comment><USER46> This just seems like an odd edge case on the 50 move stalemate rule, because it's such an unusual thing to shoot for to achieve a draw that a chess program doesn't normally bother to look for it.

Doesn't seem that useful a demonstration, except for people who don't know much about computers. Is this a bit like Hawking on AI?

<comment><USER26> You mean draw, not stalemate. A stalemate is one particular type of draw that has nothing to do with the 50 move rule.

</comment></comment><comment><USER47> I bet machines will have a hard time with Blathy's mate in 290 too.

[https://www.chess.com/forum/view/more-puzzles/longest- checkm...](https://www.chess.com/forum/view/more-puzzles/longest-checkmate- problem-290-move)

</comment><comment><USER48> I can't tell which way the board is oriented? Where did white start?

<comment><USER26> By convention, chess diagrams are presented with White's home rank on the bottom and Black's on the top.

</comment></comment><comment><USER26> I must be missing something... isn't it impossible for black to win no matter what white does with her king (as long as she doesn't move her pawn)?

<comment><USER20> That's the answer they're looking for. (White could still lose by making really bad moves, but so could black.)

<comment><USER26> I thought it would be more complicated than that, as they really play up the "puzzle" aspect of the article (even offering a prize!)

</comment></comment></comment><comment><USER49> Assuming the bishops stay on their bottom-left to top-right diagonal, you could move the king to b1 and then

white b3xa4

black Qa4 (queen is forced because otherwise a4xb5 mate)

<comment><USER8> That would lose - it would not be a stalemate, no matter where the bishops are, since white has pawn moves; and starting with the next move, black would begin checking white and will quickly checkmate.

<comment><USER49> Yes, not sure how I could overlook that pawns, just assumed them all blocked

</comment></comment></comment><comment><USER50> Can white get a stalemate in 7 moves instead of 50 by just moving its king next to the black king? or is that not allowed?

<comment><USER51> No you can't move a king adjacent to another king. There must be at least a square between the kings for the move to be valid.

</comment></comment><comment><USER37> I think the claim that this position would defeat a computer is nonsense. Any decent program would draw as white.

</comment><comment><USER52> This chess position doesn't defeat computers. A decent engine will draw this every time. But the disparity in the efficiency of line of reasoning (a humans' being much more efficient than a computers for this problem) illustrates the value add of a programmer to a computer, and what the job of computer programming really is.

Computers basically know nothing--which is good and bad. It's good because they don't require much convincing before performing boring, repetitive tasks. They simply don't know or care that a given task is repetitive or boring, or even useful or not useful, so they will keep chugging along until they can return their output. The downside of this is that if they are to know anything at all, they must be programmed to know it.

They can also learn through evolutionary iterations once programmed conceptively. One could conceive of a computer program that would spit out random logical relationships to describe a large set of data, (what humans might refer to as "life experiences") and prune the logical statements until they eventually returned accurate logic describing the data. But this would require large quantities of generations for pruning, and careful programming of heuristics for logical evaluation at inception.

We can observe that our brains are born out of a system of evolution that has already undergone such processes. We have had a powerful survival heuristic on our genetic program for developing a broad set of skills, including logical reasoning, and it has been running for billions of years, pruning countless generations to give rise to our inherent level of intelligence that can discover logical shorcuts like the one in this problem. The evolutionary process also gives rise to possibly illogical but robust sets of skills, since survival and procreation are hueristically more valuable than being logically perfect in reasoning.

Sure, theoretically, and given sufficient computing resources and time, a man made computer system could approximately match and even exceed the human capacity for discovering logical shortcuts. But when paired with a competent human programmer, or team of programmers, the programmers can vastly reduce the time and resources required to achieve this process of intelligent evolution, and produce intelligent programs much more quickly than a computer program left to simply evolve it's intelligence on its own.

It took us humans quite a while to get here. Why would we assume that a computer could evolve faster than us, autonomously, without being programmed by us to do so? It is possible I suppose, but it's even more unlikely than the evolution of human intelligence, which sure, it happened autonomously, but over a course of billions of years.

<comment><USER53> Which 'decent engines' will draw this every time?

</comment></comment><comment><USER54> I'm just an amateur chess player. How does black have 3 bishops on the board?

<comment><USER55> Black promoted 2 of his pawns to bishops.

</comment></comment><comment><USER56> I must be pretty dumb because the solution to the problem isn't "obvious" at all, nor do I see how this proves quantum intelligence.

</comment><comment><USER57> could this info, once cracked, simply be fed to the machine?

<comment><USER58> Obviously. The question is why can't the machine figure it out itself.

</comment></comment><comment><USER59> King to bishop 3.

</comment><comment><USER60> so it's the halting problem? [https://en.wikipedia.org/wiki/Halting_problem](https://en.wikipedia.org/wiki/Halting_problem)

<comment><USER26> How is this related to the halting problem? I'm not seeing it.

<comment><USER60> unless you catch 50 moves it's a runaway algorithm

<comment><USER26> The fact that a particular algorithm never halts is only tangentially related to the halting problem.

It's even possible to write non-halting algorithms in non-Turing-complete systems for which the Halting problem doesn't hold.</comment></comment></comment></comment>


ECB Has Gained Enormous Power, Says Berlin΄s Economic Advisor - <AUTHOR> http://www.thepressproject.gr/article/94688/ECB-has-Gained-Enormous-Power-Says-Berlins-Economic-Advisor <comment><AUTHOR> Related: ECB's economic hitmen [http://bit.ly/1IXS23K](http://bit.ly/1IXS23K)</comment>


Green tea and Spirulina inhibit SARS-2 spike pseudotyped virus entry in vitro - <AUTHOR> https://www.biorxiv.org/content/10.1101/2020.06.20.162701v1 <comment><AUTHOR> Further studies are required to understand the exact mechanism of viral inhibition. In summary, they have demonstrated that pseudo-typed virus is an ideal tool for screening viral entry inhibitors. Moreover, Spirulina and green tea could be promising antiviral agents against emerging viruses.

Note: This article is not peer reviewed yet, but comes from a well-established research head and institute.</comment>


Teach Yourself Logic 2017: A Study Guide [pdf] - <AUTHOR> http://www.logicmatters.net/resources/pdfs/TeachYourselfLogic2017.pdf <comment><USER2> I've been reading through this ([https://www.cs.cmu.edu/~fp/courses/15317-f00/handouts/logic....](https://www.cs.cmu.edu/~fp/courses/15317-f00/handouts/logic.pdf)), and have found it way more useful and fun. I expect it's much closer to what the HN crowd would be interested in.

<comment><USER3> At the risk of getting downvoted, I'm just going to say that I really hate this book. First of all, it moves way, way, _way_ too fast. I glossed over it, and chapter 3 is already the Curry-Howard isomorphism? That took us a semester of λ-calculus to come to grips with. These are _big_ results.

Second of all, it just seems like a mish-mash of like three or four different classes put into one: computability, type theory, first order logic -- all these can be their own concentrations.

Third, it uses type-theoretic terminology ("elimination" and [->e] instead of, e.g., modus ponens [MP]).

Finally, imo that notation really sucks (the top-to-bottom branching is really jarring), I've only seen it used in Type Theory and λ-calculus books.

Some books I suggest: this one from the University of Toronto[1] or this one from one of my favorite classes I took at UCLA[2]. If curious, you can see some problem sets on my website[3].

[1] [http://euclid.trentu.ca/math/sb/pcml/pcml-16.pdf](http://euclid.trentu.ca/math/sb/pcml/pcml-16.pdf)

[2] [http://www.math.ucla.edu/~dam/135.07w/135notes.pdf](http://www.math.ucla.edu/~dam/135.07w/135notes.pdf)

[3] [https://dvt.name/logic](https://dvt.name/logic)

<comment><USER4> I have no dog in this race, but...

> the top-to-bottom branching is really jarring

What do you mean? From what I've seen from skimming the first few chapters, it uses 100% standard natural deduction proof trees. How would you present the proofs?

(The "linear format" is indeed ugly, but it doesn't seem to be meant for human consumption.)

> I've only seen it used in Type Theory and λ-calculus books

That's the point of the Curry-Howard isomorphism: It's all the same thing. It makes sense to use the same notation.

<comment><USER3> > I've seen from skimming the first few chapters, it uses 100% standard > natural deduction proof trees. How would you present the proofs?

You're totally right. I just really don't like proof trees, nor do I think they're clear when first starting out studying logic.

</comment></comment></comment></comment><comment><USER5> Just a heads up, this pdf is not a logic tutorial or textbook, but an annotated bibliography.

That said, if you got stuck on material implication (practically a topic discussed on the first or second day of logic study), as I did, and eventually were able to understand it, I'd love to know how. (Notice, only if you got stuck first, not if you never had problem understanding it).

<comment><USER6> You can think of "A => B" as stating "there is a way of transforming proofs of A into proofs of B". If "A" is false, then there are no proofs of "A", and thus there is trivially a way of transforming proofs of "A" of "B" (since you will never be confronted with a proof of "A"). So a false statement implies anything.

If "B" is true, then there is some proof p of "B". Now here is a way of transforming a proof of "A" into a proof of "B": given a proof q of "A", just return that one proof p. So anything implies a true statement.

<comment><USER3> This _is_ actually the best way to understand it. But without some background (Proof Theory 101, The Deductive Theorem, Metalogic 101), I'm sure this sounds like gibberish :)

NB: Although you muddy the waters a bit. "A => B" is _literally_ "A proves B". And to see why an inconsistent set implies anything at all, we just need to look at the Principle of Explosion[1] -- which is probably less contentious than material implication.

[1] [https://en.wikipedia.org/wiki/Principle_of_explosion](https://en.wikipedia.org/wiki/Principle_of_explosion)

<comment><USER3> Small clarification (I wrote my parent post super late last night). Via the Deduction Theorem, we have:

       ⊢ A -> B => A ⊢ B

That's what I mean by "A proves B"

</comment></comment></comment></comment><comment><USER7> I loved Paul Tomassi's _Logic_. If like me you find all the symbols intimidating and fear that you're not mathematically-minded, try it. It's like the iPhone for learning logic. Everything is clearly explained and explained to an extremely accessible degree. It's such a shame that the author died very early, I'll never see it updated or revised.

[https://www.amazon.co.uk/Logic-Paul- Tomassi/dp/0415166969/re...](https://www.amazon.co.uk/Logic-Paul- Tomassi/dp/0415166969/ref=sr_1_1?ie=UTF8&qid=1503904811&sr=8-1&keywords=tomassi+logic)

</comment><comment><USER8> If you're looking for an introduction to classical logic, I highly recommend Peter Kreeft's _Socratic Logic_. I'm reading it right now.

</comment><comment><USER9> They don't mention dependent types at all which is unfortunate. IMO, it's the most promising subfield of logic now.

</comment><comment><USER10> Unrelated; but does anyone have resources like these for other related subjects?</comment>


Front-End Front – Basically, front-end news - <AUTHOR> https://frontendfront.com <comment><USER2> I'm not really sure what makes this different than the dozens of other Front- End/JS specific HN clones that make it to the front page and end up functionally shut down due to lack of content or user engagement.

<comment><USER3> Look good though.

</comment></comment><comment><USER4> I like it.

But it needs a big "HIDE" button besides every article.

</comment><comment><USER5> Seriously, if I have to see one more burger menu on a desktop site …

I have to click unnecessarily on the icon to see the navigation (which, of course, overlaps the whole page). Terrific.

<comment><USER6> This comment breaks the HN guidelines badly, especially the ones for the reception of new work:

[https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

Dismissive snark is not ok here, even when a click was unnecessary. Such comments damage our community.

All new work has flaws. Comments like yours create a climate in which no one can share anything without having vitriol sprayed at them. That's the opposite of what we want HN to be, so please don't post like that.

</comment></comment><comment><USER7> I'm not understanding why the submitted title has _" can ask questions"_ in it.

The only obvious user action I see is _" +Add story"_ at the top of the page and also in the hamburger menu. This makes the site more like a HN/reddit news aggregation site rather than a Stackoverflow q&a.

(The about page at [https://frontendfront.com/about](https://frontendfront.com/about) does mention _" ask questions"_ so maybe the brothers intend that to be possible in the future?)

<comment><USER6> Ok, we'll put the HTML doc title up instead.

</comment></comment><comment><USER8> Was expecting stackoverflow clone, got hackernews clone. Title is misleading.

</comment><comment><USER9> Where front-end developers... front?

<comment><USER10> Title was truncated

> Front-end Front is a place where front-end developers can ask questions, > share interesting links, and show their work to the rest of the community. > Have you heard of Hacker News or Designer News? It's something like that, > but focused more on front-end.

Maybe something like

> frontendfront: a front-end dev news-aggregation site

would work better

</comment></comment><comment><USER11> _This is the front-end / my only front-friend / the front-end._

</comment><comment><USER12> This is another place for front-end content spam but I like it.

<comment><USER13> What others you have in your memory?</comment></comment>


Find out what you could be earning from companies that want to hire you - <AUTHOR> https://www.tellmewhatimworth.com <comment><USER2> Before you click: Know that this is a lead generation tool. It doesn't give you an estimate right away. They collect your information and give it to their recruiters, who will supposedly shop you around to companies and return compensation estimates. You do not receive any estimates or information at the end of the signup process.

Not necessarily a bad thing if that's what you're looking for, but worth noting before you start entering your personal information.

<comment><USER3> Because this tool isn't freely providing the data, would be it reasonable to suggest it was posted here purely for lead generation purposes? I could go to [https://levels.fyi](https://levels.fyi) if I wanted quite detailed compensation data (broken down by job title / years of experience / city, etc).

We could literally keep the the identical title, update the link to levels.fyi, and probably be saying something more factually accurate.

<comment><AUTHOR> We don't freely share the data up front because we don't have the data up front. The service we provide is getting personalized estimates of how much a given company would hire you specifically for (not just a broad estimate).

Salary estimate websites that use survey data are great tools to use to get a generate ballpark but have their limitations.

Levels.fyi is one of the best if you're looking at FAANG tier companies and is one of the few that actually verifies salary data is correct with W2s or offer letters

<comment><USER4> Levels.fyi is not verified data.

</comment></comment></comment></comment><comment><USER5> Equity based on number of ISOs/shares is worthless. At the very least, I need to know what percentage of the company that represents.

<comment><USER6> Percent ownership is a vanity metric and is only useful for telling people you own some percent of a company. Ownership is subject to dilution (so the 0.01% of XYZ inc today may be 0.005% next round, etc.), and becomes functionally impossible to calculate how much that's worth (or project it into the future).

When it comes to equity, the numbers that matter are: the number of shares, the exercise price, and the sale price.

If I have 10,000 shares of XYZ, inc. with an exercise price of $0.10 and I sell them at $1.10, I've made 10k in gains [10,000 * ($1.10 - $0.10)]. Good luck being able to do any similar math when you're granted 0.01% of XYZ inc., since any calculation you do will go through "how many shares at what exercise and sale price".

Edit: since you work at Google, just imagine if they tried to give you 100 GSUs over four years as 0.0000002% of Google...

<comment><USER7> When you are offered equity in a pre-IPO company, there is no sale price. And it's definitely not a useless number: it's a ceiling.

<comment><USER6> Sure, but the ceiling is meaningless without a sale price, so why even factor in the ceiling when you can do that based on what a reasonable price per share would be?

<comment><USER7> Sorry, those were two separate points.

</comment></comment></comment></comment></comment><comment><USER3> Can I just name my number (X) and ignore anything lower than it? X, for me, would be $300k. And tools like these usually match you with middle market salaries, so they tend to be less useful for those with more competitive compensation.

<comment><AUTHOR> That's a great idea. If you ping me at firstname.lastname@example.com to let me know which profile is yours I can keep that in mind when building your report

</comment></comment><comment><USER8> Both `terms and conditions` and `privacy policy` on [https://www.tellmewhatimworth.com/accounts/signup/](https://www.tellmewhatimworth.com/accounts/signup/) seem to link back to the same page, at least on mobile

<comment><AUTHOR> Looks like a bug, thanks for the heads up!

<comment><USER7> On mobile (iOS) neither link works for me. I'd also like to know what your business model is before I sign up - perhaps it is already in one of those pages?

<comment><AUTHOR> Once your report is ready you can choose to speak with any company that provided an estimate if you are interested in speaking with them.

If they hire you and we have a recruitment sourcing agreement in place with them we earn a finders fees

</comment></comment></comment></comment><comment><USER9> This is a pretty cool idea, so I signed up and eventually got...

'report will be ready shortly'

Would be great to have a lot more context on what this means.

<comment><AUTHOR> You're absolutely right we could be doing a better job of managing expectations for what will happen next.

Right now since this is still in beta its pretty manual process but here is roughly what will happen:

\- We review how you describe your ideal role and make sure we have enough information to know what kinds of companies to reach out to

\- We create a blinded version of your resume (remove you contact information so no recruiters contact you directly)

\- We search for companies/jobs that match your preferences and reach out to them to ask them to provide an estimate

\- You'll have a google doc shared with you with estimates from different companies. This will be updated in real time as we get estimates

\- You can decide to use your report just to better understand your market rate, use it to ask for a raise with your current boss, or connect with any of the companies that provided an estimate you would be interested in working for

Hope that helps! Feel free to reach out to email@example.com if you have any more questions/comments/etc

<comment><USER10> If you've got a copy of my resume, even if you remove my name/email/phone number, I feel like it would be pretty easy to figure out who I am.

Especially, if people have interesting or unique work experience. Say they founded a startup or they are the author of a popular OS library. Even a niche product, finding the principal author is usually just a search away.

Only if your resume is super-mundane would it offer a modicum of privacy (and who wants to hire that?)

</comment></comment></comment><comment><USER11> A major feature job boards always miss are exclusion lists. For example as a JavaScript developer I wish I could add Angular or React to an exclusion list so that results requiring Angular or React experience do not display for me. Also those job recruiters know to not waste their time contacting me.

<comment><USER12> StackOverflow Jobs and AngelList works like that, but it's sorely missed in most job boards.

</comment></comment><comment><USER13> It looks like this (almost) entirely relies on one's LinkedIn profile? As someone who doesn't keep current on LinkedIn, I'm not expecting a lot of info based on telling you "CTO in Other city, most important factors are team quality and business/market plan."

<comment><AUTHOR> Good point. I'll follow up via email to get your resume and add an upload a resume option

</comment></comment><comment><USER14> "you're" is misspelled as "your" in "discover if your earning"

<comment><AUTHOR> Thanks for the heads up!

</comment></comment><comment><USER15> Is this US only?

<comment><AUTHOR> Yes for the time being we're only focused on the US

<comment><USER15> Ah, I supposed so, these things rarely go out. I suggest being upfront about it somewhere up on the site, I couldn't find that info.</comment></comment></comment>


Don't Forget Your Logged Out Users - <AUTHOR> http://www.avc.com/a_vc/2011/06/dont-forget-your-logged-out-users.html <comment><USER2> The "Phantom Profile" Fred Wilson talks about is a _great_ concept.

I particularly like Stack Overflow as an example here. You can visit Stack Overflow and ask a question, all without having to create a profile. You are given a name, given a profile, and given most of what a regular user gets.

As soon as you do decide to sign up "for real", your temporary profile is turned into a real profile. The biggest difference being that you're not cookie-based (you can log in to the profile from other machines).

Despite Jeff Atwood complaining loudly about how so many users have stayed cookie-based for so long, Stack Overflow has gone to great lengths to make sure their site is completely usable with a minimum of hassle, which makes it a much better site in my eyes.

<comment><USER3> I definitely get the impression that Jeff is more surprised than upset by users who have used cookie-based accounts for long periods. If I recall correctly, the record for longest "active unregistered account" is around 2 and 1/2 year (Stack Overflow is just shy of 3 years old, for comparison). That's a loooong time to go without clicking a Google/Facebook/Whatever button.

Of course, not having to register is completely by design and almost certainly never going to change, it's such an obvious win from a user experience point of view.

Disclaimer: Stack Exchange employee.

<comment><USER2> "it's such an obvious win from a user experience point of view."

And yet so few implement this.

By the way, I think it only really became obvious, to me at least, when StackOverflow implemented that design.

</comment></comment></comment><comment><USER4> I run logged out on many of these services because I'm not interested in having all of my preferences and interested logged and having my experience customized for me. In fact I intentionally log out of many of them when I'm done with my logged in activity (google is the best example of this). I also have cookies clearing on most of these services on a timed basis. Work against my interests here (and put it in my face) and you're more likely to end up on the cookie clearing list or simply not get used any more (facebook features on third party websites is a great example of behavior that pushes me away from facebook). I wonder if I'm all alone here, or perhaps your unlogged in users would prefer to be a bit more forgotten than you're suggesting.

<comment><USER2> I'm guessing that most people don't really care, or at least don't think about it enough to care.

And by most, I mean a huge majority, like 90%+.

I'm not aware of any studies though, does anyone have any study to link to?

<comment><USER5> Do most people not care, or are they simply unaware of what they are giving up and the real impliciations of the social web?

For example, we all know Facebook is huge, and many people give up all sorts of personal data to the company running it. And yet, on several recent occasions when Facebook have made changes that they were demonstrably technically capable of making and arguably within their legal rights to make, but which diminished the privacy of their users, the outcry from the user base was substantial and in some cases they gave up and essentially reverted the changes.

That was basically a PR/marketing move by Facebook: when you rely on critical mass of users in the way they do, you can't afford to upset people _en masse_ so that they start to drift away to a rival service. It wasn't forced on them for technical reasons, and relatively few countries raised significant legal concerns about the privacy implications.

I wonder whether users would be similarly upset if they realised how much of their "private" data has been shared with other parties over the years, and where it has wound up, and how many people have wound up defrauded/stalked/otherwise genuinely damaged as a result. I think there's an element of "It can't happen to me" at work here, and my biggest worry is that as we've seen recently with organisations like Sony, corporate complacency and denial are no substitute for real security and privacy protection when Bad People decide to come after you.

[Edit: I would also be interested in proper studies if anyone has links, but only if their methodology is sound. I am reminded of the "study" last year about attitudes to the virtual strip search machines at airports, where apparently 90% of people in my country said they supported them. When asked with different wording in another study, not conducted by an organisation with ties to making the machines in question, it turned out that many of those people really meant that they preferred the hands-off abuse of the machines to being physically abused during an aggressive pat-down, which isn't the same thing at all. Privacy studies are all about how you phrase the question, and those with vested interests are very good at that sort of thing.]

</comment></comment></comment><comment><USER6> A good example can be seen with Youtube. On a fresh computer with IP address, I was given an old game video from a friend. Finished watching it and talked other stuff.

An hour later, when I went to youtube.com (main page) to look for a different old game video, I noticed the frontpage suggestions were the same as alongside when I watched the video. Quite a basic guess of what the user wants but seems effective to me.

Although I have an account with youtube, I rarely log in. What's the point?

<comment><USER7> that's a great example of what i am talking about

</comment></comment><comment><USER5> From a business point of view, this makes some sense, but I find it creepy.

Apparently, so do some other people, because it is almost certainly becoming illegal throughout Europe as the recent rules on privacy/cookies take effect.

<comment><USER8> I find it highly unlikely that Stack Overflow's phantom profiles and similar features are an intended casualty of those laws. Unless politicians just hate the internet.

<comment><USER5> Preventing any sort of tracking without consent is the overt goal of these laws, and tracking users who have chosen not to log in sounds a lot like tracking without consent to me. YMMV.

[Edit: Just to be clear, if users have explicitly chosen to use cookies for persistence of a "phantom" identity, then this is not without consent, and neither I nor the laws in question have a problem with it.]

</comment></comment></comment><comment><USER9> Is there a recommended design pattern to deal with the problem of coalescing or "stringing together" multiple "phantom profiles" inadvertently created for a user every time they browse when logged out (or from different machines before logging in)? I imagine the site's database schema would require one or two extra levels of indirection to map user IDs to user histories.

</comment><comment><USER10> I just posted this on avc.com, but might as well add to the discussion here:

Songkick (<http://songkick.com>) nails this for first time users.

You can go to the site and start tracking favorite bands without providing any sign up info. Only after you have tracked a reasonably large number of bands and you're invested in your list does it ask you to sign up.

(I'm not affiliated with them, I was just impressed by the workflow)

<comment><USER11> Songkick requires logging in to a facebook account. This site is doing exactly what we're discussing NOT doing.

<comment><USER10> Heh. I just checked, and you're absolutely right. I guess they've changed it since I first signed up.

Too bad, it was really good the other way.

</comment></comment></comment><comment><USER12> The BIG assumption is that there is only one user per computer per site.

</comment><comment><USER13> "I think that social services that are public by default and have huge logged out user bases, should "phantom register" their logged out users by storing activity against their cookies and building user profiles on their logged out users."

What about if the user isn't allowing data to be stored, is using a vpn or proxy, a dynamic IP, or something else that prevents you from "storing activity"/comparing/etc.. I've seen this done before to target advertising to phantom users on adult sites, it doesn't work. Most of those people who aren't logging don't won't to log in/participate and "comparing activity" isn't exactly a piece of cake and is depending on those users having cooperating connections. You might argue that these people are fringe users but even then I doubt the ability/feasibility to accurately retain and compare data usefully and not just using IP or something to compare visits.

<comment><USER2> "You might argue that these people are fringe users but even then I doubt the ability/feasibility to accurately retain and compare data usefully and not just using IP or something to compare visits."

I'm not sure I follow you.

If a user isn't one of the "fringe" group which doesn't allow cookies, then you can store a cookie identifying the user to you, create a profile for them as if they are a regular user, and track anything you want. You can treat them like regular users, or treat them in a special way, but either way you can store any information you want.

<comment><USER13> Yeah you can store each sessions activity but how can you accurately compare the data between sessions?

<comment><USER2> You can put a cookie on the user's computer that isn't removed between "browser sessions". That's how most sites "keep you logged in", even after a browser restart.

What my framework (Django) does, and I assume this is simialr to other frameworks, is this: it creates a user object (see note) in the database, then keeps the user object id in a cookie on the user's computer. This is, by Django's default, kept on the user's computer for 2 weeks before being removed (and it can be made to _never_ be removed).

Using this, you can store any information you want about a user in their user object in the database, and always have that information available to you via the cookie.

Note: by default, Django creates an "AnonymousUser" object for each visitor, not a real user object, and it is up to the site to create an actual user object. To implement that "PhantomProfile" that Fred Wilson is talking about, I usually make Django create a new user object with a temporary username, and use this instead of AnonymousUser objects. In this way, when they do decide to "register", I just keep the same user object and give it a new username.

</comment></comment></comment></comment><comment><USER14> Ebay used to have some rich pre-registration features like "watching", but they seem to have been removed in the last year or so. They still track logged-out profiles and tease a login with items that "you might like" and recent search lists. These hang around for years, I expect somewhere in Ebay Towers there's a top ten list of the Ebay identity that has been spread most widely across devices/browser profiles.

</comment><comment> dav-id "There is a 100/10/1 "rule of thumb" with social services." Where did this come from? Is it a rule he just made up?

<comment><USER7> i didn't make it up. i heard it back in the early days of the social web, in 2002 or 2003. i've seen it to be true (within a range of numbers) again and again

<comment><USER15> It's an old rule, "lurkers make up over 90% of online groups" <http://en.wikipedia.org/wiki/Lurker>

And the 1% rule: <http://en.wikipedia.org/wiki/1%25_rule_(Internet_culture)>

</comment></comment></comment><comment><USER16> No, please DO forget your logged out users. They logged out for a reason, respect their decision.

</comment><comment><USER17> "90% just want to consume." Do they only want to consume, no matter the service/site? Or, does somebody just need to build a better experience?

</comment><comment><USER18> This "phantom profile" concept already has a name. It's called "lazy registration".

<comment><USER7> yes. that's right.</comment></comment>


Opt out of Google's interest-based advertising - <AUTHOR> http://www.google.com/ads/preferences

<comment><USER2> When I noticed I could opt in interests for the advertising I did that instead. Maybe I'm doing it wrong but if they are going to give me advertisement at least now maybe I'll find some of them relevant. I appreciate the gesture that they let people who care more about their own privacy than me to opt-out, though.

</comment><comment><USER3> Great timing, I was just wishing there were a way to ensure that all advertising be unrelated to things I am interested in.

</comment><comment><USER4> This was posted last week.

<http://news.ycombinator.com/item?id=511506>

The sort of person who wants to opt out is probably using adblock anyway.

</comment><comment><USER5> adblock can have its disadvantages as well, however.</comment>


Ask HN: Tools of the trade, 2014 edition - <AUTHOR>

Last year, Sharjeel Qureshi revived the tools of the trade thread on HN for discussing useful services for startups: https://news.ycombinator.com/item?id=5235137<p>It's been over a year since then. What is everyone relying on now? <comment><USER2> [https://baremetrics.io/](https://baremetrics.io/) \- Beremetrics if you using stripe as the payment gateway.

</comment><comment><USER3> Our startup:

\--Metrics:

Mixpanel ([http://www.mixpanel.com](http://www.mixpanel.com))

\--Issue tracking

Back to post it wall

\--SVM

Github ([http://www.github.com](http://www.github.com))

\--Deployment

Heroku ([http://www.heroku.com](http://www.heroku.com))

Custom stuff

\--Sales

Close.io ([http://close.io](http://close.io))

\--Payments

Braintree ([http://www.braintreepayments.com](http://www.braintreepayments.com))

\--Errortracking

Appsignal ([http://www.appsignal.com](http://www.appsignal.com))

Sentry (for non Ruby stuff, self hosted) ([http://getsentry.com](http://getsentry.com))

\--Performance metrics

Appsignal ([http://www.appsignal.com](http://www.appsignal.com))

New Relic ([http://www.newrelic.com](http://www.newrelic.com))

And some specific stuff in mixpanel

\--Logs

Papertrail ([http://www.papertrailapp.com](http://www.papertrailapp.com))

\--Databases and such

Elasticsearch ([http://www.elasticsearch.org](http://www.elasticsearch.org))

Postgresql

Redis

Memcache

\--Frameworks and stacks

Golang (bare, high performance/reliability stuff)

Rails/ruby (Main -crud application)

Backbone (frontend)

Node.js (high performance low reliabillity stuff)

Clojure (Wrapping a language detection api)

\--Support

Zendesk

As a freelancer/developer:

\--Editor:

Vim

\--Todos/Research/Planning/Notes/Calendar:

Orgmode

\--Invoicing:

Moneybird (dutch, [http://www.moneybird.com](http://www.moneybird.com))

\--Email:

Sup ([https://github.com/sup-heliotrope/sup](https://github.com/sup- heliotrope/sup))

\--Backups:

Git + Dropbox + Timemachine (to Nas) + Amazon Glacier</comment>


NASA Gives Up on LISA - <AUTHOR> http://blogs.discovermagazine.com/cosmicvariance/2011/04/06/nasa-gives-up-on-lisa/ <comment><USER3> This has been feared for a while in that community. There's quite a bit of animosity towards the JWST for soaking up NASA's budget in recent history, and JWST is trying to do some serious damage control because they're too far along and too big to fail. I saw John Mather (Nobel prize winner) give a talk recently that was basically "Look how far we are, and we're sorry for soaking up the budget."

<comment><USER4> More on the JWST overrun:

[http://www.spacenews.com/civil/101112-jwst-cost-imperils- pri...](http://www.spacenews.com/civil/101112-jwst-cost-imperils-priority- projects.html)

<comment><USER5> Canceling the JWST will be a catastrophe for NASA.

<comment><USER6> Unfortunately, with JWST sitting out there as its own line-item in the NASA budget (as opposed to rolled in with the rest of Astrophysics), there's concern in the community that it will be a tempting target for a Congress anxious to cut anything that moves.

<comment><USER7> To be fair to the cutters in Congress, running a government that borrows 40 cents of every dollar it spends is going to lead to a catastrophe.

</comment></comment></comment></comment></comment><comment><USER8> That's too bad. Gravity waves are one of the last unknowns in science that we also know how to study. (Most other unknowns we don't know how to study.)

I've always wondered, we have rich foundations doing all kinds of good - <USER2> any of them try to step in and fill budgets of this sort?

<comment><USER9> To me (as an outsider) it looks as if the USA, en masse, doesn't believe in science anymore.

So many interesting research projects have been stopped lately, education is being crippled, and other avenues of education and research are being killed for religious reasons.

We owe so much to science in our daily lives, why are (common) people so reluctant to see that?

Or is the issue deeper. Do people hate the current, fast, technological era on some level and hope that stifling science will bring back older, more gentle times somehow?

I don't get it anymore, honestly.

<comment><USER10> People want immediate results. Investing in something that won't necessarily bring results for years or decades (or centuries in the case of space exploration) is rarely going to be popular.

At least here in Australia, a common comment on something like this is that we shouldn't spend money on this sort of thing when there are people starving and dying in the third world. Then the typical comments on, say an article about, the plight of the poor in the third world are critical of throwing money abroad when we have problems of our own at home. Then the typical comments on those problems (say, gap in life expectancy between that of the Aboriginal population and the average) find another excuse.

It frustrates me too. I'd love to see military budgets (as one example) plowed into aggressive space research and exploration (as well as third world problems) and uniting the planet.

Maybe the Great Filter of the Fermi Paradox is just the tendency of the masses towards selfish, lazy, basic instinct-driven behaviour.

<comment><USER8> > I'd love to see military budgets (as one example) plowed into aggressive > space research and exploration

Interesting example - because they are. The military is responsible for a lot more research than is immediately obvious. All you have to do is come up with some plausible military use (offense or defense), and you have a chance for funding.

I've seen projects with just the barest hit of possibly being militarily related get funded by the military.

I get the feeling the military knows they are overfunded, and they try to make up for the lack of funding in other places.

Or perhaps the military likes being over funded - so when they need it, they have it. But the rest of the time they can fund other things (and presumably cancel them in an emergency).

<comment><USER10> I'm talking about the 'fighting' part of the budget more than anything else. How much money and effort around the world is spent on destructive or defensive behavior rather than constructive or exploratory action?

<comment><USER8> Very little. Most of the military budget goes to research of one kind or another. The rest goes to pay salaries for all the military employees.

<comment><USER10> Are you just making that up? R&D is around 10% of the US military budget (and the US military budget is roughly 50% of the world budget).

If the construction, deployment, staffing, etc was pointed towards space research and exploration, we'd be able to push forward all sorts of projects.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> A question to all the billionaires watching this thread:

Why would you give away money to charity while you could sponsor LISA?

<comment><USER6> Many (most?) ground-based telescopes are funded by private donors: e.g., the Keck Telescopes, the Allan Telescope Array, etc. Space missions, not so much. My guesses for why: the costs are significantly higher, and NASA isn't set up bureaucratically to work with private capital.

That said, private money for technology development efforts or data analysis could likely be well-used.</comment></comment>


How do you find a designer for personal projects? - <AUTHOR>

Whether it be for pay or for just a piece for their portfolio.<p>I can never find a designer for various projects. <comment><USER2> Find a designer that has already designed something. That's what I did for a webmail.

Ask him/her to use his/her work. behance & dribbble are full of skillful designers.

</comment><comment><USER3> Maybe try to post your project and ask for help on Designer News [https://news.layervault.com/](https://news.layervault.com/)

</comment><comment><USER4> Ask around in your friends. My friends usually ask me to help them out.

Also you can post up in subreddits, facebook groups and forums.

</comment><comment><USER5> Learn it yourself, it's a valuable skill.</comment>


How to prevent screenshots in a web browser - <AUTHOR> http://www.patrick-wied.at/blog/image-protection-on-the-web/#/ <comment><USER3> How to drive away customers: prioritize your unproven loss of income over making an attractive product. Accuse all your users of copyright infringement.

<comment><USER4> I really dislike this attitude on HN. You can have great products that make no money because cracks get popular (I have done testing with my own software and know for sure this is the case) and get higher results than the original product listing on google, Adblock, and many other methods thought to be "rights".

Even look at music piracy. Pirates did the big labels a favor: small, independent artists can't make a living anymore because everyone just expects it to now be free. They now are almost forced to go with a big label if they actually want to make any kind of living.

<comment><USER5> That attitude is realism. It's not unreasonable to take minor steps to make casual copying easier - the clear GIF overlay is a good example of that - <USER2> there ain't no such thing as perfect digital restrictions management. Anything beyond those minor steps becomes an inconvenient nuisance for your real customers and the risk/reward paying just isn't worth it.

Imagine you have a stock photo website. Basically honest potential customers might try right-clicking a photo once to download it, and failing that will whip out their credit card. Basically dishonest non-potential customers aren't going to pay you and see your protections as something fun to be worked around.

There just isn't a business case for heroic measures that can ultimately be trivially defeated.

<comment><USER6> _> >Basically dishonest non-potential customers aren't going to pay you and see your protections as something fun to be worked around._

You have no idea how much time I've spent on sites doing weird things to try and stop the user from downloading their content. Like online schools that don't want anyone to save the class-lesson videos. I don't even want the media, I just find it irresistible to understand and ultimately defeat their protection.

</comment></comment></comment></comment><comment><USER5> TL;DR You can't, stop trying. It's not worth the effort, it's tilting at windmills, and it pisses your users off. Just stop.

<comment><USER7> I am glad that this guy tried. I found some of the techniques pretty clever and I enjoyed reading the article. I do not believe you can stop people from taking screenshots and stealing images but I never considered some of the techniques the author explained. He was much closer to solving this than I expected.

<comment><USER8> Instead of that, the author could just talk about why interlacing was used in video in the past. No need to bring any DRM context in the discussion. The tone of the article is what's offending, not the technical details.

<comment><USER9> Could you please elaborate what's offending you? (author here) for me it was just a fun experiment I didn't intend to offend anyone

<comment><USER8> Just the notion that DRM is something that should be used in general. I find the concept of DRM to be insulting towards the users.

Also this part:

 _> seems like there is a problem — let's solve it for fun and profit_

It's like saying: "Police state struggles with policing measures. Let's help it for fun and profit". I hope you get the idea why this can sound offending.

<comment><USER7> I don't see anything wrong with developing a better bike lock for fun and profit. Not to build a straw-man argument but isn't that the same line of thinking?

<comment><USER8> I explained the analogy above. DRM is not like a bike lock at all.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> Clearly the best way is to link to a popular site and have your webserver be overwhelmed by traffic. Can't serve images? Then users can't steal them!

</comment><comment><USER8> Why would anyone want to do such stupid thing? It would prompt users to bypass it just because. And there are tons of ways to make a series of screenshots or even a video of the screen.

Ksnapshot, imagemagick (import), ffmpeg, avconv etc. etc.

 _> let's assume things on the web should be protected…_

Let's assume DRM is a dumb and nasty idea which always leads to very crooked practices. Period. As if we don't have enough of this EME nonsense.

<comment><USER11> The evidence shows that DRM in the service of corporations and businesses tends to be nasty. But there are reasons to believe that DRM, if used to protect the data and privacy of individuals would be very valuable, with the caveat that it would have to be implemented in a trustworthy way.

What if there was a way to provide access to your medical records to people who need them, only for as long as they need them? What if even the provider of the service couldn't easily circumvent this?

<comment><USER8> _> But there are reasons to believe that DRM, if used to protect the data and privacy of individuals would be very valuable, with the caveat that it would have to be implemented in a trustworthy way._

DRM can not be trustworthy by its mere definition (because trust is a mutual thing, and those who deploy DRM don't trust you - the user. So you have every reason not to trust them in return). And it never can be valuable since it's not only unethical and insulting towards users (since it uses presumption of guilt and police state ideas), but it's also completely ineffective and all it does is punishing paying customers, while the vast majority of actual pirates don't deal with it. DRM should just die out for good.

 _> What if there was a way to provide access to your medical records to people who need them, only for as long as they need them?_

Authentication and information security has nothing to do with DRM, even though both can have features like encryption. Let's not mix unrelated subjects.

<comment><USER11> tl;dr - Let's please think about the _economics!_ Let's not just believe emotionally charged Internet aphorisms, but examine things thoughtfully.

 _Authentication and information security has nothing to do with DRM, even though both can have features like encryption. Let 's not mix unrelated subjects._

What is the limiting of who can have my personal data and when, but Digital Rights Management, or DRM? One cannot stop at authentication, because to be complete, one has to prevent copying data. Without this, it becomes problematic to trace who has released information, and without some legal support, nothing at all is practical.

 _DRM can not be trustworthy by its mere definition_

Sorry, but this is fluff. You could apply this "logic" to authentication as well. DRM has to involve some mutual trust and cooperation to the same extent that any protocol involves mutual trust and cooperation.

The key is to realize that DRM as practiced by corporations is evil and unworkable because the _economics_ were utterly unrealistic. Really, where DRM could help individuals would be the elimination of trivial deniability on the part of corporations. Right now, when your data privacy is breached, there is no cost to "break" anything and it's very hard to pin this on a particular corporation. Add a DRM mechanism, and then there is something tangible to apply protection laws to and a labor cost with definite intent to breach an individual's privacy. In aggregate, the cost and potential legal liability becomes too high to for virtually any corporation to contemplate. We would arrive at a situation where corporations could afford to violate the privacy of a few select individuals, but could no longer do so to the public wholesale. Ordinary citizens would enjoy a measure of protection, though rich individuals and corporations would not.

Sounds pretty good to me.

Underlying everything, I'm not so much advocating DRM, as I'm calling to question emotionally charged "magical thinking" combined with naive induction. Let's not just leave things at "DRM is bad" devoid of real examination of what's happening.

EDIT: It also occurs to me that the _historical factual differences_ between individuals and corporations should be used to modify the current formulation of "legal persons." "Legal Persons" should be considered as "persons" only in terms of a few specific factors, like the owning of property. The historical difference between actual and legal persons with regards to data privacy abuses would be an important corpus of information in support of this.

<comment><USER8> Let me repeat it again. Authentication is OK. DRM is not. If you don't get the difference, let's explain. Authentication is simply ensuring that you are you. Normal security mechanism, nothing wrong with it.

DRM can employ authentication in itself, sure. But DRM is not about ensuring that you are you. DRM is about _limiting what you can do with your own system in various ways and / or spying on you (even when it already knows that you are you)_. Simply because DRM is preemptive policing.

I have no problem with authentication, same way I have no problems with you using a lock on your door (normal security). I have problems with DRM, same way I'd have problems with police putting their camera in someone's house (overreaching preemptive policing).

Hopefully this makes it more clear. I often see people confuse DRM with merely security / authentication / encryption etc. That's plain wrong.

 _> The key is to realize that DRM as practiced by corporations is evil and unworkable because the economics were utterly unrealistic._

No. It's evil because it's using police state methodology of treating everyone as potential criminal and employing presumption of guilt, which results in overreaching policing measures which violate one's privacy and security.

<comment><USER12> " _It 's evil because it's using police state methodology of treating everyone as potential criminal and employing presumption of guilt_"

Isn't that what you're doing when you lock your doors though?

<comment><USER8> _> Isn't that what you're doing when you lock your doors though?_

No. You lock your doors to protect your house from external threats. Here it's completely reversed. DRM invades your private digital space (your computer, your system, the programs you run etc.) for the sake of policing _you_. I.e. it's not like a lock on your house doors. It's like a police camera _placed inside your house_. That's exactly what makes it overreaching and unacceptable.

Policing itself is a not an evil idea in general. But it's evil when it's overreaching. Saying - "let's prevent crime" is OK. Saying "let's place police cameras in everyone's house to prevent crime" is not OK.

<comment><USER12> The previous poster is talking about personal DRM. You keep misunderstanding what they are saying.

In the personal DRM case it would not be invading " _your private digital space_ ", you would be using it to protect your digital space.

It is not like " _a police camera placed inside your house._ " It is the equivalent of the homeowner placing a security camera themselves to protect their property.

<comment><USER8> There is no such thing as "personal DRM". That's what you and the previous poster fail to understand. DRM is always about policing others by invading their digital space.

Protecting your own digital space is called security. Let's be clear on terms usage, otherwise time will be wasted because of misunderstanding.

<comment><USER11> No. You fail to understand that DRM as practiced by Sony et al is just one application. In one way, it's understandable if you had not been exposed to the academic literature early enough, because after a certain point, political activism, popular accounts, and corporate literature swamp anything more academic and general.

 _DRM is always about policing others by invading their digital space._

Or about voluntarily giving some autonomy up. In the case of organizations like Facebook, they would be giving up autonomy, such that they would only run certain audited versions of certain software. Given that such companies have large numbers of computers aggregated in a relatively small number of locations, the economics of verifying these mechanisms is much more favorable than the inadvisable "traditional" use of DRM has been.

You are not going to be able to process ideas like this properly, if your only background is uneducated Internet backlash.

 _Protecting your own digital space is called security. Let 's be clear on terms usage, otherwise time will be wasted because of misunderstanding._

Throughout, you have been insistent on an imprecise, popularized usage of terms. I will agree, however, that time has been wasted because of misunderstanding.

<comment><USER8> _> You fail to understand that DRM as practiced by Sony et al is just one application. _

They created the term and they polluted it for good. Trying to whitewash it now serves no useful purpose except causing confusion. If you want to talk about concepts of protecting your personal information - just use another term, otherwise misunderstanding is guaranteed (like above).

 _> popularized usage of terms_

No, it was you who tried to create your own interpretation of DRM which differs from what its designers put into it. That's up to you, but don't expect anyone to understand you.

<comment><USER11> _Trying to whitewash it now serves no useful purpose except causing confusion._

Again proof that you have no familiarity with the abstract concepts or its history, prior to the popularized furor. Nor do you care or are particularly curious, or are capable of processing the logical implications of such new information.

 _No, it was you who tried to create your own interpretation of DRM which differs from what its designers put into it._

Let me assure you that the designers of DRM had the other interpretations in mind the whole time. You are basically arguing for your own ignorance.

 _don 't expect anyone to understand you._

In other words, I should expect only uninformed rubes on the Internet.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> Cool, I love counterintuitive (and even counterproductive) solutions just for their own sake. I tried to do a similar thing with text a while ago: [http://nbush.github.io/headache/](http://nbush.github.io/headache/)

<comment><USER14> As a challenge I wanted to see how hard it would be to circumvent this. Here's a bookmarklet: javascript:void(function(s,i){for(i=0;i<s.length;i++)if(window.getComputedStyle(s[i]).color=='transparent')s[i].style.display='none'}(document.getElementsByTagName('span')))

That should be one line with no spaces if gets line wrapped.

<comment><USER13> Nice work! Here's another solution posted in an earlier thread: javascript:d=document.createElement("div");d.innerHTML="<style>span:nth- child(odd) {display:none;}</style>";document.body.appendChild(d);

I don't think there's any easy way for the obfuscation to stay ahead of JS reversal. Thanks for taking a look!

</comment></comment></comment><comment><USER15> I think maybe you _could_ do this. What about the new, controversial DRM extensions? They're for video, but you could just show a 1 frame video on loop as an image, right?

If those support HDCP then it's encrypted all the way to the display, and it would be challenging to screenshot it.

(Of course, you could take a photo of the screen, but that's a substantial degradation).

<comment><USER16> Isn't HDCP broken?

</comment></comment><comment><USER17> You could still subvert this by taking an actual picture of the screen with a camera I think.

<comment><USER18> Yup. In audio copy protection this is referred to as the 'analogue hole' ([http://en.wikipedia.org/wiki/Analog_hole](http://en.wikipedia.org/wiki/Analog_hole)), and there's pretty much nothing you can do about it.

</comment></comment><comment><USER19> Previously, [https://news.ycombinator.com/item?id=8022315](https://news.ycombinator.com/item?id=8022315)

</comment><comment><USER20> You're still sending the picture across the network to the screen in your most valiant attempt, but by using the inspector's resources, you can get a url link to the cat image[1]. Like you say at the end of the article, it's not really worth it.

The site being slow is a better deterrent than anything written in the post. 9 Seconds to first byte[2].

[1] - [http://www.patrick-wied.at/talks/image- protection/demos/cat....](http://www.patrick-wied.at/talks/image- protection/demos/cat.png)

[2] - [http://www.webpagetest.org/result/140714_WZ_S9F/](http://www.webpagetest.org/result/140714_WZ_S9F/)

</comment><comment><USER21> So here's a startup idea that can help with that.

1) Build a library for hiding encrypted information inside images. It should be hard to detect (indistinguishable from random) and robust (e.g. survive printing and scanning).

2) Build a web crawler, coupled with a key store. Crawl the internet for images that contain our encrypted info.

3) The copyright owners will be our paying clients. They will display images only to logged in users, use our service to embed the user information in the image, and deposit the encryption key with us.

4) Whenever the crawler finds a stolen image, we notify the copyright owners and send them the details of the user who leaked it. We don't notify the user, of course.

Right?

<comment><USER22> It seems to me that you've basically described Digimarc®'s business model.

<comment><USER21> Hah! Yes, you're right.

</comment></comment></comment><comment><USER23> I did something similar you can demo: [http://jastanton.com/experiments/imagescrambler/](http://jastanton.com/experiments/imagescrambler/)

Shuffle an image, re-assemble with a bunch of divs with background offset and just the right amount to bring the picture back. If you download the image you get a scrambled imaged.

Doesn't protect against screenshot.

Very fun :)

</comment><comment><USER24> 1\. You can't.

2\. Stop trying.

<comment><USER25> Read his "Was it all worth it?" section.

</comment></comment><comment><USER26> Anyone else try it?

I was curious and tried his live demo URL. and I used OS X's built in screen capture while using Chrome. The screen capture worked, no special tricks needed. I didn't see any visual degradation between my screen shot and the original.

The long and short of it is his DRM did not work.

<comment><USER27> That also happened to me. But then I realized I set the browser to display everything in 110% by default. If you go back to 100% indeed you can't do a proper screenshot...

</comment></comment><comment><USER28> When will website authors learn that you control the content but the client, by virtue of owning their computer, controls the presentation. At best you can make suggestions. At worse you're at the total mercy of the user.

If you want to give out indelible images then go back to print.

</comment><comment><USER29> That demo messed with my eyes. Even though it is interlacing faster than the eye can see for some reason it still felt weird to look at it. Overall, not worth the trouble or the decline in user experience.

<comment><USER22> Lesson learned: LCD monitors are _absolutely horrible_ at interlacing. And you can, of course, put them back together with one line of JavaScript. As he says, it's futile. People should stop doing this. Yawn.

I am associated with a... _certain industry_... (ahem) which frequently finds its content reposted (and it wouldn't be right or proper of me to identify any further, but I'm sure it's a moderately generalised problem).

One must be realistic about these things - if we're going to publish things, some people are going to pirate them and that's that. It leaves our control to some degree when we let it loose, regardless of what legal rights we may have. We're going to find them plastered all over Tumblr or TPB or something no matter what we (or Tumblr!) do. That is not necessarily all a negative, especially if it might drive interest and traffic, which may be worth more than any one or two pieces of content for some. If we get enough customers to support ourselves and what we do, that's fine (and we can thank our loyal repeat customers for that; many others are simply not in such a position).

"The invisible wall" _might_ be worth it as a courtesy "please don't save this image" thing, but developer tools exist in browsers, so that really _is_ only a courtesy thing: anything else is a fantasy and nothing else is really workable, but perhaps it presents a _sort of_ reasonable-ish balance, if it doesn't degrade anyone's experience and if people are at least aware we'd prefer that not to happen on balance. I feel the same about any light DRM (for example, for PC gaming, I'd say Steam is fairly "courtesy DRM" compared to its peers, excepting its peers like GOG that have no DRM at all).

(I'm also a reverse-engineer of some experience, so I've found myself analysing others' solutions in other industries quite a lot over the years - it's interesting to look back and see how my own opinions on this matter have evolved from a vehement rejection of any DRM as a matter of principle, to a slightly more nuanced position that it is _occasionally_ not devilspawn but we'd still have a better world without it and anything that may cause users any inconvenience is completely unacceptable.)

Fairly discreet and tasteful watermarking is all we've ever found to be a reasonable solution. What we see when people _do_ repost them, as a result, is _more sales_ \- when a few people obviously like what they saw and looked it up. Not a lot, but some. Yay. Have we gained more than we've "lost" (not that we ever had those in the first place)? I don't know, I don't have a crystal ball to guess at events that have never happened, but we've gained _some_ as a result of this, and some is always better than none.

Except those people who edit or crop out the watermarks then reblog them. Fuck those people. That gets right up my nose; there's piracy, and then there's _plagiarism_ , and that's how I interpret that one - it feels like they're taking credit for it (and if they are, that's dangerous: people might think they know what they're doing and get themselves in dangerous situations), or at least they're definitely removing ours, which is irksome particularly when you see a comment thread asking for, as the parlance goes, "sauce" (the source of the content). Those are people who wanted more, dammit, and you cropped out the thing that could have linked them where to get more, and since it's been reposted, they probably don't even know. That's just putting barriers in people's way for no good reason. (Thank you for those few that do reverse image searches in such cases and find us that way anyway, you're heroes. ♥)

Any thoughts?

<comment><USER30> Image search gets you the sauce on any reasonably popular image, so a watermark isn't as critical as you seem to think it is.

If a customer willing to pay for content is really intrigued by your image, he'll find the sauce.

</comment></comment></comment><comment><USER31> [http://www.patrick-wied.at/talks/image- protection/demos/cat....](http://www.patrick-wied.at/talks/image- protection/demos/cat.png)

</comment><comment><USER32> This article (which I enjoyed) reminded me of a paper [1] I co-authored a long time ago about protecting 3D content using a remote rendering system. The big advantage that we had over 2D content (images) is obviously that we never gave clients a full representation of the protected asset.

[1] [http://graphics.stanford.edu/papers/protected/protected.pdf](http://graphics.stanford.edu/papers/protected/protected.pdf)

</comment><comment><USER33> Good article explaining some clever techniques. I don't understand all of the whiners here who expected something perfect and foolproof.

</comment><comment><USER34> I found this fairly clever but pretty impractical. If you put an image online you must assume that it is public domain. The only real way to prevent true theft is to offer a lower quality image but this defeats the purpose of putting your image online in the first place.

Nonetheless there are pretty smart ways to monetize content like this and any professional source will pay to use it.

</comment><comment><USER35> There is a silly Russian saying which school teachers usually use on that really smart asshole kid in the class -- "a fool got blessed by smart head". Somehow reading this made me think of that. Also think of the environment, how much power will you waste on this useless hack if it were to get wide adoption (not going to happen of course, but _if_)

</comment><comment><USER36> It took 20 years to get image interoperability down to "solved problem" status, so let's get start from scratch by coming up with something that you have no idea will work on cheap tablets, will eat up CPU on battery powered devices, and makes unwarranted assumptions about display technology! Yay!

</comment><comment><USER37> It broke my firefox :( First, a popup error message reporting:

SyntaxHighlighter Can't find brush for :jscript

and then the whole browser became unresponsive and needed to be restarted. On the plus side, you've helped Firefox development by discovering a new bug!

</comment><comment><USER38> So, the demo obviously blinks (at least on my monitor), and the first time I took a screen shot, I got the whole image (though I only got half the second time). So, it doesn't actually work all that well.

But cool write-up, I guess.

</comment><comment><USER39> Its kinda cool even thus of course id never want that on a website.

That said, i took a screenshot on windows 8.1+Firefox and it worked just fine. I took a few more screenshots.... and they were all fine too...

</comment><comment><USER40> I got more solutions:

1) Ship your own lock-down hardware (tablet) to customers, so they can visit your website

2) Install booths around country which will show your website. No cameras or phones allowed inside!

</comment><comment><USER41> The answer is simple: you can't prevent (all) users from taking a screenshot in a web browser.

The solution is trivial: launch a VM, make a screenshot, hook APIs such as DirectX, etc.

</comment><comment><USER42> interesting article and method. when viewed from remote desktop, the image always appears interlaced.

otherwise, on a regular screen its barely noticeable. at first glance it looks fine, but then i get the feeling something is off. if i blink or look away quickly, i can see some of the interlacing. but overall, interesting idea of treating the images more as movies rather than images

</comment><comment><USER43> I am having trouble with the last demo, I always get the full image when I print screen and then paste to paint. Anyone else?

</comment><comment><USER44> If someone gets really pissed off, they will just take a pic of their screen with an SLR and then photoshop it.

</comment><comment><USER45> That looks terrible in Chrome for Android.

</comment><comment><USER46> Also this burns a lot of CPU cycles :(

</comment><comment><USER47> The title is incredibly misleading..

</comment><comment><USER30> Take a few screenshots, until you get one image with the odd lines, and one with the even lines, then stitch them back together in Photoshop.

2 minute job, tops.

<comment><USER48> 2 minutes is quite a long time. Long enough to not bother unless you _really_ want that particular image...

<comment><USER49> This can be automated in javascript. There is no need for photoshop. I won't be surprised if someone comes up with a browser extension to neutralize it.

</comment></comment></comment><comment><USER50> Ah, the newest form of "disabling right-click on a web page".

Infuriating, bad design then. Still is.

</comment><comment><USER51> I could see it flickering and when I tried to print screen I got the image...

Disclaimer: I only skimmed the artcle

</comment><comment><USER52> And oncw again if your user is a developer he'd or she'd be able to stitch it back together.

<comment><USER53> That was not the point of the article. In fact, had you read the article, you'd find that your point has been addressed three times over and that the author acknowledges it's all futile anyway.

<comment><USER54> I don't think he quite does. His conclusion is basically that image protection isn't _worth_ it, because more exposure is better. That's different from declaring it to be futile.

<comment><USER52> Exactly. I _read_ the article. At the end he declares it isn't _worth it_ , which is a different sentiment altogether. He seems to believe that his last- minute addressing of the screenshot "attack" is adequate, even though earlier he was talking about an audience which is a developer themselves. For such an audience, his mitigation of the attack isn't really effective at all. That's what I was pointing out. He just forgot about the standard he set up in first part of his article when writing the update.</comment></comment></comment></comment>