Martin Gardner on Oprah Winfrey: Bright (but Gullible) Billionaire - <AUTHOR> http://www.csicop.org/si/show/oprah_winfrey_bright_but_gullible_billionaire/

<comment><USER2> Wouldn't it be interesting if celebrities could be sued for malpractice, as doctors can be? Oprah just seems to be a particularly noteworthy example of celebrities who encourage stupidity whether in medicine and science, or politics and economics.

<comment><USER3> With doctors and lawyers, you put your trust in them that they know their field. With celebrities, they have no field of expertise (necessarily), besides being a celebrity.

It's the same reason you can't win a lawsuit against your neighbor for giving you bad medical advice, regardless of how smart you think he is.

<comment><USER2> Understood. My real point was that until there is an economic disincentive, celebrities will continue to encourage other people to do stupid things. For doctors/lawyers, that disincentive is a malpractice suit. You are perfectly correct that there are no grounds for suing a celebrity, particularly since there is no contract. Unfortunately, mass media give celebrities a much better platform for disseminating stupidity than your neighbor.

In the real world, it seems like there are only two solutions: better education so that more people can distinguish bunk, and some kind of public humiliation for fatuous celebrities with stupid ideas (the Jenny McCarthy Body Count, noted elsewhere on HN, might be a step in the right direction).

<comment><USER4> For better or for worse, they have free speech too. The laws necessary to undo that would do more harm than good.

<comment><USER2> I'm certainly not arguing against free speech (I think if you read my earlier posts you will see that I did not suggest that), which is why I suggested that an economic disincentive was probably the only effective way to stop this kind of behavior.

Since you bring up the question of free speech, however, let's consider that angle. Does the right to free speech give you the right to shout "fire!" in a crowded movie theatre? Or to perjure yourself? No, and presumably the reason is because such speech reflects a malicious intent to cause harm to others. I don't suppose for an instant that Oprah has such a malicious intent, but I think most HN readers would agree that by giving celebrities and quacks a platform from which to spread their stupidity, she does cause harm to others.

In _The Ethics of Belief_ , W. K. Clifford said "It is wrong always, everywhere, and for anyone, to believe anything upon insufficient evidence." If you accept Clifford's reasoning (as I do), then I think we must agree that Oprah is wrong to believe as she does, and further compounds that error by spreading her beliefs widely. While it is not illegal to be wrong, I don't think it would be a huge stretch to suggest that persons spreading beliefs that they have no right to believe (per Clifford) are culpable at some level for the resulting harm. As far as I know, the fact that the speaker honestly believes what they are saying is no defense in cases of libel, slander or hate speech.

My view is that Oprah has a duty to question her beliefs, and seek out evidence that refutes them. If she chooses not to do so, she is still entitled to hold those beliefs privately, but not to encourage them in others.

<comment><USER3> Who's to say her ideas are wrong? In fact, what if you're ideas here are wrong? Should you be culpable for trying to convince us? Who determines if her ideas are wrong or right? I've heard evidence that in the majority of published math papers there's at least one major flaw in a proof of each paper. Are they now culpable, as are the publishers?

Effectively what you're arguing is that everyone should refrain from making any statement (opinion or fact) unless they're stating something that is universally agreed by some body. It sounds like you're describing is the church of days past.

I much rather live in a world/country were people are free to say what they like, and I'm free to believe it or not -- with only certain rare exceptions (for example judges, in their capacity as a judge, shouldn't lie).

<comment><USER2> I'm quite ready to say that promoting abstention from vaccination because it causes autism is wrong. There is no scientific evidence for such a claim. And, if you read _The Ethics of Belief_ , you will find that my view is completely at odds with the position of the church - I do not recognize "faith" as a legitimate basis for believing something.

I'm not really sure where you are going with a statement like "Who's to say her ideas are wrong?". It sounds like moral relativism, but I don't want to assume that is what you intended unless you explicitly say so. I assume you agree that people can have ideas that are wrong (e.g., 2+2=5, "the world is flat", etc.), and that other people are justified in pointing out that those ideas are wrong. If my assumption is correct, then you are either saying that these particular ideas are not wrong, or you are saying they are wrong but that Jenny McCarthy and Oprah should not be held culpable for promoting them. I'll assume the latter.

To be clear, I am _not_ saying people should refrain from making any statement unless it is universally agreed upon. I'm saying that before believing something (and trying to spread that belief to others), we have a duty to investigate our beliefs and subject them scientific scrutiny. Failure to discharge that duty injures society. Given the lack of scientific evidence of a link between vaccination and autism, one must conclude that Jenny McCarthy (and by extension, Oprah) has either failed to subject her beliefs to such scrutiny, or willfully ignores evidence to the contrary. In my opinion, this does constitute _some_ degree of culpability.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> Very interesting. I am not an Oprah viewer, but even my limited exposure has left me with a "two Oprahs" impression: one a force of good, and one who provided a platform for pure crap like "Dr." Phil.

I was not aware Jenny McCarthy and a whole mess of new age junk were also a part of Second Oprah's repertoire. How disappointing for a woman whose achievements would otherwise merit heaps of praise and respect.

<comment><USER6> She's a very _prolific_ crackpot, nobody that promotes so many _different_ ideas would be likely to be uniformly bad.

</comment></comment><comment><USER7> Doesn't the FDA regulate the specific words that can be legally allowed to describe the stated effects of any medical treatment? Which is why all of the non-regulated pseudo-science drugs have to use generic terms like "you'll feel better, have more energy and be more successful."

If Oprah pitches one of these products, she's a paid spokesman for it, so wouldn't drug laws trump free speech here? i.e. Business are not allowed to flaunt the laws and claim they have free speech, but individuals of course are given far more leeway.</comment>


Rando app alternative – PhotoSuerte - <AUTHOR> http://photosuerte.com

<comment><USER2> Yet another site with no description at all of what the app does. This trend is getting old. It's a shame because the principle is nice:

 _PhotoSuerte is the popular app that lets you chat with others all through the use of photos. Simply snap a picture and instantly it will be sent anonymously to someone at random located around the world. Once that person responds you can go back and forth with photos._

Though as it seems to requires logging in with a facebook account, I'll pass.

<comment><AUTHOR> Facebook, Twitter, Vkontakte auth is required by Apple guidelines. In fact the app doesn't do anything specific. Just a random photo chat. A little bit of fun.

</comment></comment><comment><AUTHOR> It was featured in Russia recently. Seems like there is a chance to beat them with US / EU guys :-)</comment>


A 100ft diamond meteor hits the earth traveling close to the speed of light... - <AUTHOR> http://what-if.xkcd.com/20/

<comment><USER2> What a brilliant teacher of conceptually tough questions. I am an art major with cursory physics/math knowledge, but could understand and ponder further implications without any further help. This man is a genius.</comment>


The Data on Tech Industry Pay - <AUTHOR> http://blog.jobrapp.com/the-numbers-on-tech-pay

<comment><USER2> Awesome

</comment><comment><USER3> Impressed with Credit Karma</comment>


Buridan's Principle (1984) [pdf] - <AUTHOR> https://www.microsoft.com/en-us/research/publication/buridans-principle/?from=http%3A%2F%2Fresearch.microsoft.com%2Fen-us%2Fum%2Fpeople%2Flamport%2Fpubs%2Fburidan.pdf <comment><USER2> This thing drove me wild for like 2 weeks, I was not sure it could be true. Until I realized that the composition of continuous functions is continuous.

But that makes me wonder ... how can we then have unstable problems in the real world? Google "unstable problem definition". If everything is continuous, then small enough changes in input always result in small changes in output. And yet, unstable problems are the opposite. If a pencil is released when standing on its point, it can fall to one side or another side, rather far away.

To me, this has to do also with comparing timestamps across distributed systems, like Spanner's database timestamping synchronization. When I started architecting distributed systems, and quorums, I had to deal with this.

I remember emailing Leslie Lamport a few times and arguing with him about this :)

Some people don't even believe Leslie Lamport's Buridan's Principle:

[https://www.youtube.com/watch?v=dVkSJ0QWzXA](https://www.youtube.com/watch?v=dVkSJ0QWzXA)

<comment><USER3> Even the video got 3 likes and 3 unlikes... so paradoxical!

</comment></comment><comment><USER4> Note: I believe the commentary here is copied from the Lamport's website, [http://lamport.azurewebsites.net/pubs/pubs.html#buridan](http://lamport.azurewebsites.net/pubs/pubs.html#buridan) which has similar commentary alongside each of his papers.

This makes perfect sense classically, but the quantum argument I'm not sure about; as he admits, he only finds fault with a particular apparatus using quantum behavior. But it seems that any implementation of a quantum bit that is eventually "measured" would violate the principle--is there something I'm missing, or is the problem just smoothed over by the probabilistic error already assumed in quantum circuits?

</comment><comment><USER5> "Buridan's ass" was a philosophical intuition pump to argue for the reality of free will. If we were really ultimately determined by our appetites, as the Neoplatonic determinists would have it, then we can construct a scenario where the perfectly determined ass would end up starving to death when surrounded by the foods it most craved.

Since there are not dead asses all over the place, the philosophers took this as evidence that free will exists, even in asses.

<comment><USER6> > Since there are not dead asses all over the place, the philosophers took > this as evidence that free will exists, even in asses.

That falls apart as soon as you consider how frequently the precise scenario is expected to occur. I hope no philosopher made an ass of himself by vigorously defending this particular form of the argument.

That response is similar to the point made by one reviewer of an early version of the paper discussed here, that if this were a problem (in practice), it would have come to everyone's attention by now.

The Dining Philosophers problem is similar to Buridan's Ass, in that you have hyper-rational actors at risk of starvation in the presence of food, but the critical difference that makes this a model of something that could happen in practice is that it involves each actor having to make _two_ temporally- separated decisions, thus avoiding a singularity in time (though such singularities appear when you apply a locking solution.)

<comment><USER5> I don't think the scholastic philosophers were thinking the precise balance would happen in reality, but rather the very concept seemed absurd. That's the nature of intuition pumps. Not exactly a cut and dry deductive argument, but they show certain conclusions are most compatible with what seems to be common sense. And a general principle in philosophy is to try disrupting common sense conservatively, that on balance if one worldview is much more at odds with common sense than another worldview, the latter is preferred.

</comment></comment></comment><comment><USER7> "Another amusing example occurred in an article by Charles Seif titled Not Every Vote Counts that appeared on the op-ed page of the New York Times on 4 December 2008. Seif proposed that elections be decided by a coin toss if the voting is very close, thereby avoiding litiginous disputes over the exact vote count."

Interestingly enough, A.A. does this, where "very close" is deemed to be "less than a 2/3 majority". (Although rather than a coin flip, a name is drawn at random, usually from a hat).

<comment><USER8> Election by lot is a thing.

[https://web.archive.org/web/20160320090358/https://aeon.co/e...](https://web.archive.org/web/20160320090358/https://aeon.co/essays/if- you-can-t-choose-wisely-choose-randomly)

<comment><USER9> A jury is essentially election by lot. We should use juries for more oversight-type things.

</comment></comment></comment><comment><USER10> So can someone help me with my understanding I read the paper and feel I have a grasp of it but there is still one thing I don't understand he says

>Buridan's Principle. A discrete decision based upon an input having a continuous range of values cannot be made within a bounded length of time.

Shouldn't it instead read

> Buridan's Principle. For a discrete decision based upon an input having a > continuous range of values, there exists some values such that a discrete > decision cannot be made within a bounded length of time.

Because clearly there are many instances that a discrete decision is made in a bounded length of time, as shown by the car does stop or goes for many values of x even though there is a bounded length of time; however there is certain values of x that result in the train running over the car, but not all.

Ergo, only some values of x will result in a decision being made impossible in a bounded period of time.

Can someone help me understand the flaws in my thinking or understanding?

<comment><USER11> The only difference between your phrasing and the paper's is terminology.

By definition, a "bound" is a limit, i.e. a range that the outcome falls into. Saying that the time to make a decision is bounded simply means that you can always rely on it to happen within that limit.

<comment><USER10> Okay so what I am to understand by the phrase

> cannot be made within a bounded length of time.

Is not that it will not happen within a certain time period but rather I cannot with certainty fix an upper or lower bound on the amount of time it will take to reach a decision for all possible values of the input X.

Thank you for your reply I had to noodle on it a bit but think I get it now.

<comment><USER12> Not bounded means that if you give me a number _x_ then there is some _y_ that is bigger than _x_.

So, in the context of the paper, if you thought that your computer always made a decision after a week, then there is some situation whereby the computer takes longer than a week.

For the record, I think the mathematics is sounder than the computer science which in turn is sounder than the social science. As the author admits when he mentions Kepler, we can't really prove Buridan's Principle. But I think it goes further than this in the social aspect: We don't know whether indecision at traffic lights is even accurately modeled by Buridan's Principle. Then the question becomes not whether it's true, but whether it is a good model. And these kind of models are always dangerous ground in the social sciences.

Edit: The reason why I say the mathematics is sound is because he rephrases the usual notion of compactness: [https://en.wikipedia.org/wiki/Compact_space](https://en.wikipedia.org/wiki/Compact_space).

</comment></comment></comment></comment><comment><USER13> " One reviewer made a marvelous comment in rejecting one of the early papers, saying that if this problem really existed it would be so important that everybody knowledgeable in the field would have to know about it, and "I'm an expert and I don't know about it, so therefore it must not exist." "

That's gold. The hubris!

<comment><USER14> I've made similar arguments. I have a term for them, "economic reasoning." The argument is basically that economic forces, from greed and survival to the basic underlying technical capabilities available would have ALREADY caused a proposition to succeed or fail. This is a powerful principle, and in my experience, does not mediate against innovation. That reviewer was using his version of it. Secondarily, Buridan's principle fails. An important lesson in growing up is, sometimes you just have to choose, and if you waste enough time, the urgency of choice exceeds the urgency to be right. In technology, binary switches have an avalanche mechanism, and if properly designed, have built in hysteresis. Noise then makes the decision, and the hysteresis prevents "waffling" by turning off the ability to redecide. Read (older) data sheets on comparators. That a person could write a scholarly paper and not mention that indecision has been thought about, and workarounds have been assiduously developed IS probably cause for rejection.

<comment><USER15> [https://www.microsoft.com/en- us/research/uploads/prod/2016/1...](https://www.microsoft.com/en- us/research/uploads/prod/2016/12/On-the-Glitch-Phenomenon.pdf)

The author specifically addressed "noise" in another paper. In this paper, the predecessor to the one linked, the author shows that noise doesn't fix the problem, rather it makes it impossible to determine which inputs would make it hang for an arbitrary amount of time.

<comment><USER6> Are you referring to this passage?

 _2\. Introducing noise to drive the device out of its metastable state.The noise can be considered to be just an unpredictable input.The introduction of noise cannot eliminate the possibility of the device hanging up for an arbitrarily long time, but can make it impossible to predict which inputs will cause it to do so._

While I do not disagree, introducing noise changes the issue from being stuck forever on a single decision, to being a series of decision points (each time the noise signal changes), with the chain being broken as soon as one results in a definite outcome. In practice, this allows us to engineer the risk of being stuck, for longer than some specified period, to an arbitrarily small probability - at the cost of a small loss of precision, and possibly much greater complexity in modeling the device.

<comment><USER16> Coincidentally, this is reminiscent of the usual solution to Paxos liveness violations: introduce randomness into the timing of the competing proposals.

<comment><USER15> True! Wouldn't be surprised if that's why Lamport was originally thinking about the problem.

</comment></comment></comment></comment></comment></comment><comment><USER17> "I find myself unable to decide for a fraction of a second whether to stop for a traffic light that just turned yellow or to go through"

I had a similar problem, and I resolved it by training myself to remind myself of a point of no return, that is, a distance from the light at which I will go no matter what. So every time I see a traffic light, I decide where is the point of no return.

I think establishing point of no return is the standard method of dealing with this. For example, parachute jumpers have a certain altitude at which they have to make the decision whether to land on the main parachute or backup parachute if something goes wrong with the main one.

<comment><USER18> The paper points out that this doesn't resolve the problem in the discussion about the crossing gate; all this approach does is move the decision from "do I jump" to "have I met the point of no return yet", which is still a discrete decision over a continuous input.

<comment><USER19> However, the further it goes, the more clear the second one gets. I.e. "am I already at the point of no return, I guess not, it's unclear. Oh wait, now I am, let's trigger."

So, Buridan's Principle is correct for time-invariant systems. But as far as I can see you can totally build a time-dependent system which simply picks option 1 after being undecisive for time T.

<comment><USER18> I think the principle would state that by always picking option 1 you are no longer making a decision based on the input.

This is discussed in the paper under section 3: "Other Asses", in the paragraph starting "One way to circumvent Buridan's Principle is to eliminate the decision".

</comment></comment></comment></comment><comment><USER12> I can see why the author had difficulty publishing the article. If I didn't realise that he was talking about compactness I would have thought that he wasn't making sense.

The target audience is a nontrivial subset of people and it's difficult to optimise for everyone in the target audience. In any case I think that the real interesting thing here is not what lead to his observation. (Mathematicians have a tradition of not telling people what lead to their observations, for better or worse.) Rather, I think the mathematics behind this should be taken much further.

I guess it's off to the references.

</comment><comment><USER20> > _Buridan's ass starves because it cannot make the discrete decision of which > pile of hay to eat, a decision based upon an initial position having a > continuous range of values, within the bounded length of time before it > starves_

I don't see how that follows. Seems like a sibling problem rather than a generalization.

The ass would starve even if the decision was among two same otherwise discrete options with no continuous range of values in between (e.g. state -1 (left hay), 0, and 1 (right hay)), since there still wouldn't be a reason to prefer -1 to 1.

<comment><USER21> The point is the underlying domain (physical space, in the donkey parable) is continuous, and it needs to be partitioned into discrete values. The paper is about the impossibility of constructing a device which does this within a bounded amount of time.

The problem gets more difficult because you also have to worry about measurement resolution. Anyway, rest assured this problem is very resistant to any "what if you just..." solutions you can come up with.

<comment><USER20> > _The point is the underlying domain (physical space, in the donkey parable) > is continuous, and it needs to be partitioned into discrete values._

I don't think that was part of Buridan's concept. The concept was simply the impossibility of choice between two same options -- the continuity of the domain didn't play any role (in fact the description focuses on the discreet binary choice alone).

> _Anyway, rest assured this problem is very resistant to any "what if you > just..." solutions you can come up with._

I'm sure, I don't propose a solution - just say that the problem is not about discreet/continuous.

<comment><USER21> Buridan's original problem is used here as an analogy for the problem, not really the basis.

</comment></comment></comment></comment><comment><USER3> Nice paradox, searching about it found another proposed solution:

[http://steve-patterson.com/paradox-resolved-buridans-ass/](http://steve- patterson.com/paradox-resolved-buridans-ass/)

It says: "there's no such thing as "identical options". More specifically, there are no two separate things which are identical in every way. So when talking about choice, having "alternative" possibilities implies having "different" possibilities. We can not evaluate two things as both "identical and different", as this would be a contradiction in terms. Therefore, any formulation of Buridan's paradox which implies this contradiction runs into a basic framing error."

Seems wrong, in a lottery all options are "identical and different". Identical since they have the same probability, different because only one has the price. The paradox undecidability is produced by the perfect balance of unknowns, the equilibrium must be broken to have a decision.

Buridan's can be combined with Xeno's as a 2D continous space/time paradox. So cool!

I'm working on a solution for Xeno's, that's why I find it interesting.

<comment><USER20> > _It says: "there's no such thing as "identical options". More specifically, > there are no two separate things which are identical in every way._

Doesn't have to be "identical in every way".

Just "identical in every way that matters (regarding the decision)" e.g. making the subject equally hesitant or equally willing to chose one or the other...

E.g. two potential love interests might be very different but equally tempting, and people have had that problem of choice (or regret when they chose) hit them very heavily...

</comment></comment><comment><USER22> Link with extra junk shaved off: [https://www.microsoft.com/en- us/research/publication/buridan...](https://www.microsoft.com/en- us/research/publication/buridans-principle/)

</comment><comment><USER23> > In the early 70s, computer designers rediscovered that it's impossible to > build an arbiter that is guaranteed to reach a decision in a bounded length > of time. (This had been realized in the 50s but had been forgotten.)

> a device for making a binary decision based on inputs that may be changing

So it's the result of the halting problem, applied to a continuous function in hardware?

<comment><USER4> No, the halting problem says that one cannot determine whether an _arbitrary_ program halts, while this says that one cannot build a _particular_ physical device that is guaranteed to output in bounded time.

</comment></comment><comment><USER24> Flipping a coin if the vote is close seems to solve the voting dilemma... What am I missing?

<comment><USER15> The original paper specifically addresses "noise" as not a sufficient solution to the problem. I'd call a coin toss "noise" in the context of this paper.

<comment><USER3> Correct!

> Another often-suggested escape from Buridan's Principle is noise—the > introduction of randomness into the system. In theory, one can balance a > ball on a knife edge; in practice, this is impossible because tiny random 2 > vibrations will cause the ball to fall, despite our best efforts to balance > it. Moreover, balancing the ball on a knife edge requires fixing very > precisely both the position and the momentum of the ball, which is forbidden > by Heisenberg's Uncertainty Principle. A four-legged or human ass must also > have random noise and be subject to the Uncertainty Principle, so it cannot > be put into a situation where it will hang forever on a knife edge of > indecision.

</comment></comment></comment><comment><USER25> Interesting that this is the meta-story of Buridan's Principle, not the thing itself.

<comment><USER4> Click "View Publication", the text on the page is just some commentary by the author

<comment><USER25> I know. The commentary is the subject of the HN post, not the paper itself.

The meta-story is IMO just as fascinating if not more so than the principle itself.

> A little research revealed that psychologists are totally unaware of the > phenomenon.

> The singularity at zero was never mentioned in the paper.

> Philosophers have discussed Buridan's ass for centuries, but it apparently > never occurred to any of them that the planet is not littered with dead > asses only because the probability of the ass being in just the right spot > is infinitesimal.

> I submitted it first to Science. The four reviews ranged from "This well- > written paper is of major philosophical importance" to "This may be an > elaborate joke." One of the other reviews was more mildly positive, and the > fourth said simply "My feeling is that it is rather superficial." The paper > was rejected.

> Throughout this exchange, I wasn't sure if he was taking the matter > seriously or if he thought I was some sort of crank.

> My problems in trying to publish this paper and [22] are part of a long > tradition.

WTF is going on here? This thing on our lawn is a dragon, why do some many people think it's a cloud?

</comment></comment></comment><comment><USER9> Fascinating.</comment>


The WannaCry Ransomware Hackers Made Some Major Mistakes - <AUTHOR> https://www.wired.com/2017/05/wannacry-ransomware-hackers-made-real-amateur-mistakes/ <comment><USER2> We can laugh as long as we like, but maybe the next attackers won't make such simple mistakes. Or maybe this was just a test that got out of hand, etc. In any case, this thing temporarily being defeated because it checked a domain, or the failure to use many bitcoin addresses are easily fixed. If we get smug about this, we do so at our peril.

<comment><USER3> Yeah, the Morris worm had some major mistakes too. Later worm authors with seriously malicious intent managed to learn from it, and from one another's mistakes.</comment></comment>


SLR Camera Simulator - johnx123-up http://camerasim.com/camera-simulator/

<comment><AUTHOR> Is this the same SLR simulator I saw a couple of years back? Can't tell because it's Flash.

Seems to me like DSLRs don't really need simulators. Pick up a DSLR, dial it to P or green or whatever, and go. It's simpler and more responsive than a point and shoot, just bigger and heavier. (My four year olds love using my smaller DSLR and have less trouble using it than a small P&S.)

Anyone wanting to learn the fine points of photography can learn them at their leisure once the key point — using a DSLR is EASIER than using a point and shoot — is absorbed, and simulators that overload the user with information are probably counter-productive.

<comment><USER2> I see value in this. I have seen many people frustrated because their camera's automatic functions did not produce the image they wanted, and they have no idea how to change the settings to get a better image. It almost always boils down to an understanding between shutter speed, aperture, and simple settings such as exposure compensation.

For these people, this kind of simulator could be really helpful. It might be a little better if there was more explanatory text after you press the shutter. For example, I saw "overexposed" once; maybe that message could be more along the lines of "Your image is overexposed. Try decreasing your aperture, decreasing your shutterspeed, or adjusting exposure compensation."

<comment><USER3> It seems like there's a balance between the different settings on a camera that can't really be captured well with independent sliders.

I imagine a control that indicates the trade-offs (and when they're ok) as you tweak it would educate users in a better way than experimentation. Stay "inside the envelope" and your picture is probably ok. You can get outside it if you know what you're doing.

<comment><USER4> i saw a suggestion a few years ago for a mode that would just let you set depth of field directly, picking an aperture and shutter (and possibly iso and comp too) appropriately given the lighting. after all, what most people want most of the time is either a narrow depth to isolate a subject with bokeh or a wide depth to show something in context.

<comment><USER5> Isn't that basically what Aperture Priority mode does?

<comment><USER2> Yes, for people who understand how aperture relates to depth of field. But there seem to be a good number of people who understand what depth of field is, without understanding how to control for it using aperture.

<comment><AUTHOR> Depth of field is controlled by aperture, focal length, and distance to subject. The degree to which the subject is actually isolated from the background is also very important. This simulator manages to bury one aspect of this information and ignore the rest.

All else being equal, to increase subject isolation:

* Get closer to the subject

* Increase focal length ("zoom in")

* Increase aperture operning (smaller aperture number)

* Increase separation between subject and background

Each of these things is equally important. (But all else is not equal, so if you're determined to stand in one spot and not change your composition, just increasing aperture size is your only option.)

<comment><USER5> Yes, this is indeed the case! I shoot with a prime, so the ability to change the focal length doesn't really come to me. But I think it's very important that you brought up specifically the fact that the distance spatially between the camera, the subject, and the background are very important!

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> One thing that would be invaluable simulating is a variable aperture lens rather than this constant f/2.8 simulation.

My girlfriend just got her first DSLR and was struggling with changing the aperture. While she understood the concepts, she wasn't familiar with working with a DSLR alone and since I wasn't physically present, it took me a while to realise over the phone she'd been changing the aperture by changing the focal length of the lens. (The D5100 has a pretty crappy and unintuitive control combination for setting aperture.) Had I been able to point her to a simulation like this it would have been clear to her that she needed a distinct method of setting aperture.

<comment><USER7> You can change the aperture in this simulation. Perhaps it was just grayed out since you were in shutter-priority mode?

<comment><USER6> No see you're as confused as she was :) Most zoom lenses are variable aperture, e.g. at 18mm they will open up to f/3.5 but at 55mm they will only open up to f/5.6. The simulation doesn't address this, and it can be surprising for a beginner to see the aperture changing as they zoom - they may become fixated on zooming as a way to control aperture without realising they are observing a side-effect.

<comment><USER8> Better lenses are fixed aperture though, so I don't think it's unreasonable to replicate that here. My 24-70 is 2.8 across the board.

<comment><USER6> While I agree with the point on quality, constant aperture zoom lenses tend to be MUCH more expensive than variable aperture lenses. Your single lens costs more than twice her entire starting kit :) They also tend to have fairly specialist zoom ranges. I find it hard to imagine somebody with a constant aperture zoom lens would find benefit in this camera simulation. The _majority_ of the kind of people using it will be beginners with kit variable aperture lenses.

<comment><USER9> The most common advice for them would be to get a prime lens. Especially in this simulation that offers both distance and focal length setting (which are, for this scene and 18-55mm focal length, mostly interchangeable), I'd like to have it. It'd also allow you to go (cheaply) to f/1.8 or f/1.4, which would be much better to illustrate the effect that aperture has on the depth of field. With a common f/3.5:5.6 kit lens and APS-C sensor, you won't get a shallow DOF and nice out-of-focus background easily, and that could be frustrating to a beginner. Especially when you learn to do it in this simulation.

</comment></comment></comment></comment></comment></comment><comment><USER10> Likely it's just that I'm pretty dense about certain subjects, but I had a hard time grasping the basics of photography until I watched this ten minute video:

<http://www.youtube.com/watch?v=6-NhJua5NFA>

The relationships between the basic elements of exposure seem so straightforward now.

</comment><comment><USER11> It needs to give you the ability to use flash lighting. Then you could learn about how you can use flash to give a scene a completely different look, for example by using a wide aperture and short exposure to get the girl properly illuminated but have the background look very dark. This works because the flash delivers all its light in a very short period of time so it is completely unaffected by the shutter speed. So once the flash power and aperture are set to give a proper exposure on the subject the shutter speed can be adjusted to give different levels of background illumination.

<comment><USER12> not what your after, but <http://www.zvork.fr/vls/> is fun if you like playing with low key / gels etc

</comment></comment><comment><USER13> Why not show the result in real time as you adjust the sliders? You can still show the preview off to one side or whatever. It would help develop a tighter iterative loop for experimenting and save the cognitive overhead of trying to remember what was wrong with the one before. Have some image 'troughs' which you can populate with screen grabs including the settings you used to allow quick reference to settings from previous results. If you did that then there would be more of an argument for using this rather than just picking up a DSLR and fiddling with the controls.

<comment><USER14> I agree, that actually surprised me a bit. With a real SLR, some adjustments are immediately obvious. When you change the aperture, the view becomes brighter/dimmer and the depth of field changes.

Some, like shutter speed, don't make a difference until you hit the button, but it would have been nice to see the DOF changes in real time.

Still, a great little tool. Very handy.

<comment><USER9> On most DSLRs, I believe, you have to press a DOF-preview button (whatever it's called), instead, it remains wide open making it easier/possible to accurately focus using the viewfinder. Focus is what I miss most in this simulator, it leaves out a very important part of taking of the picture…

And of course, there is virtually no way to reflect the ISO or shutter speed setting, using the optical viewfinder. Not a bad idea to "simulate" here as well, because it's not funny to shoot in the aperture-first mode and forget to reset ISO from some ridiculously high value that you had to use yesterday in the evening.

<comment><USER14> That's right, I remember that button. Good catch.

<comment><USER9> On the other hand, I _was_ confused and disappointed that the lighting slider in the simulation doesn't do anything (well, it shows an icon, for a while, couldn't it just dim/lighten the scene a bit?).

</comment></comment></comment></comment></comment><comment><USER2> This is pretty cool, but the swaying girl gets a little creepy after spending any time on the site. Are there any other scenes available? It would be nice to have a "Change Scene" button.

</comment><comment><USER15> Presume this is a tool for point and shoot guys to figure out what a SLR feels like. If you can add a shutter half-click simulation - have an out of focus element and bring that to focus with the shutter half-click, that'll be awesome.

</comment><comment><USER16> Congrats on the cool project, I've never seen one done before and I understand how this would be of value to someone starting out that doesn't have access to the real deal. I think this must have been fun to develop and it shows. I can see great value in specific cases, for young kids to get a grasp at the joy of getting good photo results while experimenting. The experimentation factor is always a plus for interactivity and you showed good use of the tech to accomplish that.

</comment><comment><USER17> This is neat. I like the advice that you give when the pictures are bad, but it took me a little while to get from "this picture is OK, but kind of blurry" to a good one. I guess I can't expect to pick up a SLR and get a good one on my first try!

<comment><USER18> Yeah, you probably can pick up an SLR and get a decent shot on your first try, especially if you use the Automatic mode.

</comment></comment><comment><USER19> Good implementation of a good idea. It'd be extra good if there were various scenarios to photograph. E.g. a race car in motion, a dark indoor scene.

</comment><comment><USER20> This would have been great when I was paying for film in my SLR.

</comment><comment><USER21> Being a new DSLR user, I see this as a great learning tool.</comment>


Sequoia to lead $500 million round in driverless startup from Google, Uber execs - <AUTHOR> https://www.ft.com/content/e29f1686-1397-11e9-a581-4ff78404524e <comment><USER2> [https://outline.com/ba8YDN](https://outline.com/ba8YDN)</comment>


For Sale: The Only Bar in a 14-Person Montana Town - <AUTHOR> https://www.atlasobscura.com/articles/cool-bar-montana <comment><USER2> I took a trip to Eastern Montana, to a 'town' of about 20 people. Turned out the local pastor was from my home town 5 states away.

It's such a different way of living - and difficult to imagine without actually going there and experiencing it.

</comment><comment><USER3> Wow, I have lived here in Montana for 33 years and I have never heard of Ingomar. Don't let the article fool you. There are probably at least 100-200 other similar bars for around the same price in towns which are relatively close to the same size.

<comment><USER4> I grew up in North Dakota, this bar sounds like a lot of small town bars I grew up around. I'm sure you're right on them being a dime a dozen, our "local" aka 20 minute drive away bar had unpaved roads and also yes did have spots for the horses.

</comment></comment><comment><USER5> Asking price seems rather high. I'm sure you could find an abandoned building in Montana and turn it into a bar for far less than $225k.

<comment><USER6> Your paying for the business + history

<comment><USER7> In Montana, you're paying for the liquor license. It's not uncommon to see hole-in-the-wall bars in 2000 person towns go for $1 million. They are quota- ed and similar to the NYC taxi medallion system.

<comment><USER8> Does that actually recoup? Or are they buying those licenses to use in more populated areas? (curious if they are tied to the town or not)

<comment><USER7> As with Uber and medallions, the increasing popularity of craft breweries able to operate with an inexpensive license has led to some big legislative battles. The Montana Tavern Association (MTA, liquor license holders) try to crush the craft breweries every legislative session. They have limited the taphouses to some extent: they can only serve four pints per person per day and they have to close at 8 PM. Also similar to Uber vs taxi drivers the general public likes the breweries and the MTA struggles to maintain a popular image while trying to legislate away erosion of their license values.

<comment><USER9> Is that in the USA? Sounds very unbelievable to me, here (in eastern EU) we demonstrate if people try to limit opening hours few days a year!

</comment></comment></comment></comment></comment></comment><comment><USER10> For real, buying this kind of business in Montana is extremely risky. I lived for many years in an area that's very popular with tourist/sportsmen including quite a few famous Hollywood types. There are many lakes with lodges around there. My family got to know many people who would by a place like that and it ruined many of their lives. Divorces, bankruptcies, the whole gamut. It's very hard.

<comment><USER11> These always look like fun, interesting deals to outsiders but unless you have someone with local knowledge, I wouldn't trust any of them.

</comment></comment><comment><USER12> I've always wondered about the data missing in Google Maps. For instance, when you go to Ingomar, MT and look at street view, the car got to the entrance of the town and the data just stops.

[https://goo.gl/maps/WVTAChPsBUiRjnoX9](https://goo.gl/maps/WVTAChPsBUiRjnoX9)

Did the camera die? Did the car get a flat? Did someone forget to turn something on?

<comment><USER13> Maybe they stopped at the bar and got inebriated and forgot to complete their mission :)

</comment></comment><comment><USER14> Native Montanan speaking here. I think the Montana equivalent to YC's "build something people want" is "build bars where people live." To do the opposite makes for a lot of slow afternoons.

</comment><comment><USER15> If this tickles your fancy, there are plenty of Australian outback pubs on the market for similar prices:

[https://www.commercialrealestate.com.au/news/six-classic- aus...](https://www.commercialrealestate.com.au/news/six-classic-aussie-pubs- for-less-than-400000-48032/)

</comment><comment><USER16> "Behind one end of the bar sits Jefferson Peters, octopus, with a sixshooter on each side of him, ready to make change or corpses as the case may be. There are three bartenders; and on the wall is a ten foot sign reading: 'All Drinks One Dollar.' Andy sits on the safe in his neat blue suit and gold-banded cigar, on the lookout for emergencies. The town marshal is there with two deputies to keep order, having been promised free drinks by the trust.

"Well, sir, it took Bird City just ten minutes to realize that it was in a cage. We expected trouble; but there wasn't any. The citizens saw that we had 'em. The nearest railroad was thirty miles away; and it would be two weeks at least before the river would be fordable. So they began to cuss, amiable, and throw down dollars on the bar till it sounded like a selection on the xylophone.

(The Octopus Marooned by O. Henry)

</comment><comment><USER17> With the onset of Starlink, I expect such locations could experience a population boom. With urban housing prices skyrocketing (demand exceeding supply = bidding war), many are discovering the only thing they need to live where they actually want to is reliable high-speed low-latency internet. The land is cheap ($150,000 for 321 acres in Ingomar, Montana), the region attractive (drove around there this summer, very nice), just need a good data feed. Leverage it right, and that old bar could spawn a happenin' site for remote workers.

<comment><USER18> Right this minute you could find very fast internet (fiber) in rural areas with very inexpensive housing. I have a relatives in the Dakotas & Nebraska with better internet than I have in Denver. Some of them live in town and some of them live in the country. A lot of it seems to depend on local government having the drive to get rural access funds from the FCC.

As another said, eastern Montana could be brutal if its not something you are used to. There are extremely hot and extremely cold days (in the -30s degrees F) possible. It will be really windy and really brown (its very dry) for much of the year. You might also be shocked by how much some people drink/use other substances and how they get around when incapacitated. (There is no Lyft/Uber). There will not be a lot of young singles around, either.

I personally don't think there will be a big boom because of Starlink for housing. At the end of the day, internet is just a small factor in what makes a place desirable to live. Climate, distance to city/airport, local bars & restaurants, scenic beauty, and local activities all factor a lot, too.

<comment> at-fates-hands > It will be really windy and really brown (its very dry) for much of the > year.

Remember playing soccer with a guy from Montana. We were playing on a field in the Fall that was basically all dead, yellow grass. He used to say. "Dude, I'm from Montana, this is considered LUSH"

<comment><USER4> > "Dude, I'm from Montana, this is considered LUSH"

Good old prarie grass, green after it rains in June. Don't put a flame near or you'll start a wild fire brown the rest of the summer.

</comment></comment></comment></comment><comment><USER19> Reminds me of this little piece of news from today. They are selling a small Spanish village using Wallapop, which is an app that could be considered a local version of Craigslist. The price: €90M

[https://www.lavanguardia.com/vida/20191209/472142739583/vent...](https://www.lavanguardia.com/vida/20191209/472142739583/venta- wallapop-aldea-alicante-santa-eulalia-sax.html)

</comment><comment><USER20> Montana has some odd liquor laws, so that's likely the largest reason for the price. There's a quota system in incorporated cities and counties, meaning supply doesn't hit demand inflating prices. The system should be done away with, but alas.

</comment><comment><USER13> Looks like it also comes with a sweet little penthouse: [http://www.jerseylillysaloon.com/whiskey-row- penthouse.html](http://www.jerseylillysaloon.com/whiskey-row-penthouse.html)

<comment><USER13> My bad, can't edit the above comment but I seem to have mistaken it for another saloon in Arizona.

</comment></comment><comment><USER21> I'd be afraid my best customers would be alcoholics and I'd feel guilty in running them off.

It'd be hard to earn a living off 13 other people.

</comment><comment><USER22> well, for sure the owner would have town's monopoly in the bar business.

<comment><USER23> Monopoly? So... do we need to split up the bar, for a fair market?

<comment><USER24> The problem is not a monopoly, but abuse of a monopoly in a way that stops competition. If the bar owner started charging $100/beer and then forcefully stopped anyone else from opening a bar, that'd need to be broken up for a fair market. Short of that, you don't have an issue

</comment></comment></comment><comment><USER25> Do they accept REMOTE employees?

<comment><USER26> If you move there to run the bar, you'd be in a remote town and therefore I think "REMOTE employee" would be an apt title. So... yes?

</comment></comment><comment><USER27> This place isn't just in the middle of nowhere, it's in Eastern Montana, not even the nice part of Montana (the west).

This place shouldn't exist. A mildly interesting story, but small town Montana is a rough existence even if you live in pretty part.

I would not recommend anyone buying this place unless you don't mind throwing away $200k on it.

Edit: All the down votes are coming from people who have never been to Eastern Montana. I have. Multiple times. I lived in Montana. Eastern Montana has nice, polite people, but it's got almost nothing going for it economically other than oil.

There is a reason why people (especially young people) are leaving Eastern Montana for the past several decades.

<comment><USER28> Please don't cross into regional slurs. "This place shouldn't exist" is a step into that, and we need users not to go there here.

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

<comment><USER27> I was born in Montana. I lived in Montana. That restaurant probably hasn't made a profit in 30 years and they are asking $250k for it.

<comment><USER28> I understand, and had a feeling that that was where you were coming from. Unfortunately, though, the internet doesn't distinguish between regional (or ethnic or other) slurs made by the people from that place (or group) vs. the garden-variety nasty sort—so the burden is on you to disambiguate. Otherwise we end up with the same kind of flamewar either way.

<comment><USER27> 1) I was referring to the restaurant. 2) I'm from Montana.

You should just apologize that you didn't understand my comment rather than try to over explain it.

<comment><USER28> It's true that by "this place shouldn't exist" I thought you were referring to more than just the restaurant.

The thing is, though, that the burden is on you to disambiguate, otherwise we end up with the same kind of flamewar. I don't think that's overexplaining at all. You didn't do it, so some explanation is necessary, and this is standard HN moderation. [https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...](https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=by%3Adang%20disambig&sort=byDate&type=comment)

<comment><USER27> You are the one who started the flamewar by accusing me of something I didn't say. It was clear in my comment that every time I said "this place" I was referring to the restaurant. I used the phrase "this place" three times in my original comment, all three referring to the restaurant.

Just apologize for accusing me of something that I didn't do and I will move on.

</comment></comment></comment></comment></comment></comment></comment><comment><USER29> Perfect place for witness protection gig?

<comment><USER30> Or for someone who broke bad a little too much.</comment></comment>


Nim vs. Crystal - open-source-ux https://embark.status.im/news/2019/11/18/nim-vs-crystal-part-1-performance-interoperability/index.html <comment><AUTHOR> Nice article!

There's one small error, where the article says "With Nim, we were also able to link both the Nim and C files into the same executable, which Crystal sadly cannot do." However, this is not true! You've passed the object file you created directly to the linker, so it is in fact included directly in the executable.

I'm a core team member of Crystal, feel free to ask away.

</comment><comment><USER2> Status dev here (i.e. colleague with the benchmarker) and prolific high- performance Nim libraries author.

Note that Nim standard library focuses on maintenance cost as the Nim team is small. When raw performance is needed, Nim gives us the tools to reach for it.

For instance at Status we use our own json serialization/deserialization library: [https://github.com/status-im/nim- serialization](https://github.com/status-im/nim-serialization) and even Araq, Nim language creator, has his own JSON library: [https://github.com/Araq/packedjson](https://github.com/Araq/packedjson)

This allows Nim to be in the top10 of json parsing in TechEmpower: [http://www.techempower.com/benchmarks/#section=data-r18&hw=p...](http://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=json)

Disclaimer: Status is the main sponsor behind Nim [https://our.status.im/status-partners-with-the-team- behind-t...](https://our.status.im/status-partners-with-the-team-behind-the- programming-language-nim/) / [https://nim-lang.org/blog/2018/08/07/nim- partners-with-statu...](https://nim-lang.org/blog/2018/08/07/nim-partners- with-status.html)

Status is committed to Nim but we do have a pretty diverse stack (i.e. most of our code is in Clojurescript and we have part of the codebase in Go that we are migrating to Nim at the moment) and teams work very independently from each other, so other teams are sharing back their experiences with Nim.

<comment><USER3> Have you written about why you're migrating from Go to Nim?

<comment><USER2> We did cover part of it here: [https://our.status.im/status-partners-with-the- team-behind-t...](https://our.status.im/status-partners-with-the-team-behind- the-programming-language-nim/)

But to give more detailed explanations:

\- We are a blockchain company and close partner with the Ethereum Foundation. Ethereum research is done in Python, using Nim allows to quickly transcribe research to fast code. \- We focus on resource-restricted devices; for now mobile phone but running a blockchain node on a router might make sense in the future as well, so we need tight control over memory allocation. \- We can reuse C and C++ tooling (Valgrind, LLVM Sanitizers, gdb, lldb) \- The biggest bottleneck we have (and all Ethereum clients have) is cryptography, using Nim means being able to reuse cryptographic libraries written in C or C++ or even using C++ templates with one of the easiest FFI or rolling our own implementation. \- WASM is going to be very important for blockchain development and the most important thing is generated codesize (because it lives forever in the blockchain), Go and Rust struggles with WASM codesize at the moment. Nim is very good at that: [https://www.youtube.com/watch?v=QtsCwRjtbrQ](https://www.youtube.com/watch?v=QtsCwRjtbrQ) \- Being the main sponsor of a language means also being able to shape it suitable for our needs from scratch.

So this was why we started using Nim in the first place.

The Nim team was started 2 years ago and the experiment is successful. For example, our Ethereum client was kickstarted by translating python to Nim with an automated tool: [https://github.com/metacraft- labs/py2nim](https://github.com/metacraft-labs/py2nim).

Our main go codebase is supporting our own fork of the major Etehreum client go-ethereum. But this is costly for us as upstream and our teams have different goals. Now that the Nim Ethereum client is more mature, moving completely to Nim with a homegrown clients will allow us to have better API, better logging, controlled release cycles and avoid the cost of syncing with upstream.

<comment><USER4> The smallest wasm binary produced by rustc is ~110 bytes, Rust struggles with this far, far less than Go, or any language that has a significant runtime.

This doesn't mean that the rest of your reasons are invalid, of course.

<comment><AUTHOR> Hopefully wasm's gc proposals will be implemented and get LLVM support, allowing languages like Crystal to sanely support wasm.

</comment></comment></comment></comment></comment><comment><USER5> I wrote some Crystal recently for a hobby project. I have to say, I really like it.

• Nice syntax (mostly just that blocks/procs are easy to use— Ruby-like syntax is nice, but it's not really that important)

• straight-forward class/object model

• type system is simple but powerful (union types + type inference are a great combo)

• syntax and std lib that enables functional-style programming, but isn't strictly functional

• Pretty darn fast— compiles to machine code via LLVM, and seems like it's not far behind C, C++ and Rust in most benchmarks, despite being garbage collected

What other languages offer a similar profile? D? Swift? Kotlin (via LLVM)?

<comment><USER6> F#. I hate the syntax, but anyone who enjoys ML will like it. Curly braces are optional.

It also meets all of your other requirements, including the "isn't strictly functional" part (which is somewhat rare).

Scala has most of these qualities, but people say it's extremely complicated and supports too many different paradigms in a single language. I've never used it.

<comment><USER7> Does F# offers native builds ? I thought it was CLR only.

Also Scala is about to jump to a new compiler (and maybe a new language). It's a weird time for scala (from the few that I know).

<comment><USER8> >Does F# offers native builds ? I thought it was CLR only.

i would guess that it will eventually support aot:

[https://mattwarren.org/2018/06/07/CoreRT-.NET-Runtime-for- AO...](https://mattwarren.org/2018/06/07/CoreRT-.NET-Runtime-for-AOT/)

</comment></comment></comment></comment><comment><USER9> Biggest turn-off with Crystal for me is no native support for Windows. It's kind of a big deal.

> __However __, if you are a Windows user, _for the time being_ you are out of > luck

We've been waiting for _years_.

<comment><USER10> I read your comment and realized I don't think much about what it means to have native Windows support in a programming language. A crystal issue page [1] talks about two ways to support Windows:

\- Cygwin (POSIX)

\- Native Windows API support

Though I wonder if targeting .NET would be something to consider. It would not save much effort, compared to Windows API, but in principle, .NET is a portable platform (like POSIX).

Also I wonder why the LLVM project doesn't make it relatively easier to support multiple platforms (including Windows). The whole promise of LLVM is that your prog-lang just targets LLVM (so to speak) and doesn't have to worry about specific platforms.

[1] [https://github.com/crystal- lang/crystal/issues/2569](https://github.com/crystal-lang/crystal/issues/2569)

<comment><USER6> If Crystal added CLR[1] (what you likely meant by .NET) or WebAssembly as a target, I guarantee its popularity would vastly increase.

LLVM would be smart too, but I suspect that having access to the complete .NET ecosystem from a Ruby-like language would be very appealing to devs who worked on Ruby at home (or at startups) and are now at big enterprises that demand big-name stacks.

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

<comment><USER11> The GP is talking about the standard library support etc. of the compiled objects, while still being native.

</comment></comment></comment></comment><comment><USER12> Something to keep in mind while looking at the benchmarks in this article:

* Nim's `json` module will parse the full JSON file into memory, now I might be mistaken but AFAIK Crystal doesn't do this. The JSON module in the stdlib is good enough for most use cases, but there does also exist `packedjson`[1] which could be more performant for some use cases

* Regarding the base64 benchmark, you may want to read this: [https://forum.nim-lang.org/t/5363](https://forum.nim-lang.org/t/5363) (this article does not include the patches made by treeform)

Benchmarks are easy to game, the only takeaway that can be had from an article like this is that on average the performance of software written in Crystal and Nim should be about the same.

1 - [https://github.com/Araq/packedjson](https://github.com/Araq/packedjson)

<comment> shaki-dora FWIW, my experience with quite a few (usually small(ish)) tasks I implemented in Crystal is in line with the article's.

Once, a CSV-parsing and string-wrangling data batch job in python indicated it would take 27 hours to finish. I got annoyed and wrote a line-by-line translation in crystal. Writing it took about 40 minutes. It took a total of 2.5 minutes to run, that's two, almost three orders of magnitude.

As I said, this was a line-by-line translation, so whatever mistakes the python version had, the crystal version would have also had them. There are, however, a bunch of specialised python libraries (numpy et al) that weren't used, and I guess you could achieve some significant performance increases that way. Coming from ruby, I just happen to be quite productive in Crystal, to the point where I stumbled over the article's description as a "systems language".

<comment><USER13> I'm not sure why you're comparing Crystal to Python here, but just in case you've misunderstood something, Nim is a completely different language from Python. It borrows some bits of syntax (like I suppose Crystal does with Ruby, but I haven't used either of them), but otherwise it has nothing to do with Python, so a performance comparison of Crystal vs. Python doesn't say anything about Crystal vs. Nim.

</comment></comment></comment><comment><USER14> I really like this new generation of "C replacements". I guess these are what I was hoping Go would be like but although it got part way there, it never quite fully achieved the combination of power, simplicity and ease of use I was looking for. It would be awesome if one of these would gain enough mainstream support that it didn't feel irresponsible to bring it into mainline use for work projects. For now though I just have to play with them on the side.

</comment><comment><USER15> I'm a big fan and long-time user of crystal. It's like the good parts of ruby minus the dangerous parts, with actual performance. The OOP system is also very opt-in, in that you can get as granular as Java is if you want, or use modules for everything. The introspection offered by macros is absurdly good as well, and allows for constructions you would only think are possible in interpreted languages. Slices make everything nice as well, especially with string and byte manipulation.

Generally, crystal will let you do what you want to do, often in a number of ways. I definitely couldn't say that about Rust, though I like Rust.

<comment><USER16> >It's like the good parts of ruby minus the dangerous parts

I like this description. Others said Ruby allows you to shoot yourself in the foot, I often think may be there should be gun control in the first place.

Edit: _This list is a little old, The proliferation of programming languages (all of which seem to have stolen countless features from one another) sometimes makes it difficult to remember what language you're currently using. This handy reference, although not authored by me, is offered as a public service to help programmers who find themselves in such a dilemma._

TASK: Shoot yourself in the foot.

C: You shoot yourself in the foot.

C++: You accidentally create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical assistance is impossible since you can't tell which are bitwise copies and which are just pointing at others and saying, "That's me, over there."

Algol: You shoot yourself in the foot with a musket. The musket is esthetically fascinating, and the wound baffles the adolescent medic in the emergency room.

Perl: There are so many ways to shoot yourself in the foot that you post a query to comp.lang.perl.misc to determine the optimal approach.

After sifting through 500 replies (which you accomplish with a short perl script), not to mention the cross-posts to the perl5-porters mailing list (for which you upgraded your first sifter into a package, which of course you uploaded to CPAN for others who might have a similar problem, which, of course, is the problem of sorting out email and news, not the problem of shooting yourself in the foot), you set to the task of simply and elegantly shooting yourself in the foot, until you discover that, while it works fine in most cases, NT, VMS, and various flavors of Linux, AIX, and Irix all shoot you in the foot sooner than your perl script could.

Then you decide you can do it better with the new, threaded version…

SNOBOL: You grab your foot with your hand, then rewrite your hand to be a bullet. The act of shooting the original foot then changes your hand/bullet into yet another foot (a left foot).

FORTRAN: You shoot yourself in each toe until you run out of toes, then you read in the next foot and repeat. If you run out of bullets, you continue with the attempts to shoot yourself anyway because you have no exception-handling capability.

Pascal: The compiler won't let you shoot yourself in the foot.

Ada: After correctly packing your foot, you attempt to concurrently load the gun, pull the trigger, scream, and shoot yourself in the foot. When you try, however, you discover you can't because your foot is of the wrong type.

COBOL: Using a COLT 45 HANDGUN, AIM gun at LEG.FOOT, THEN place ARM.HAND.FINGER on HANDGUN.TRIGGER and SQUEEZE. THEN return HANDGUN to HOLSTER. CHECK whether shoelace needs to be re-tied.

LISP: You shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds…

Scheme: You shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds … but none of the other appendages are aware of this happening.

FORTH: Foot in yourself shoot.

Prolog: You tell your program that you want to be shot in the foot. The program figures out how to do it, but the syntax doesn't permit it to explain it to you.

BASIC: Shoot yourself in the foot with a water pistol. On large systems, continue until entire lower body is waterlogged.

HyperTalk: Put the first bullet of gun into foot left of leg of you. Answer the result.

Motif: You spend days writing a UIL description of your foot, the bullet, its trajectory, and the intricate scrollwork on the ivory handles of the gun. When you finally get around to pulling the trigger, the gun jams.

APL: You hear a gunshot, and there's a hole in your foot, but you don't remember enough linear algebra to understand what happened.

APL: You shoot yourself in the foot, then spend all day figuring out how to do it in fewer characters.

Unix: $ ls foot.c foot.h foot.o toe.c toe.o $ rm * .o rm:.o no such file or directory $ ls $ csh: You can't remember the syntax for anything, so you spend five hours reading man pages before giving up. You then shoot the computer and switch to C.

Ada: If you are dumb enough to actually use this language, the United States Department of Defense will kidnap you, stand you up in front of a firing squad, and tell the soldiers, "Shoot at his feet."

Concurrent Euclid: You shoot yourself in somebody else's foot.

370 JCL: You send your foot down to MIS and include a 400-page document explaining exactly how you want it to be shot. Three years later, your foot comes back deep-fried.

Assembler: You try to shoot yourself in the foot, only to discover you must first invent the gun, the bullet and the trigger. And your foot.

Assembler: Using only 7 bytes of code, you blow off your entire leg in only 2 CPU clock ticks.

Modula2: After realizing that you can't actually accomplish anything in this language, you shoot yourself in the head.

Visual Basic: You'll really only appear to have shot yourself in the foot, but you'll have had so much fun doing it that you won't care.

SNOBOL: If you succeed, shoot yourself in the left foot. If you fail, shoot yourself in the right foot.

Paradox: Not only can you shoot yourself in the foot, your users can, too.

Access: You try to point the gun at your foot, but it shoots holes in all your Borland distribution diskettes instead.

Revelation: You're sure you're going to be able to shoot yourself in the foot, just as soon as you figure out what all these nifty little bullet-thingies are for.

May be this list should be updated with more modern programming languages.

</comment></comment><comment><USER17> I was curious to reproduce the "benchmark" in rust, which got me to this code. Mind you, i have not much experienace in rust, so i'd think this would be the most straight forward translation of the nim code in the blog post for a beginner.

      use std::fs::File;
      use std::io::Read;
      use std::path::Path;
      use serde_json::Value;

      fn main() -> Result<(), Box<dyn std::error::Error>> {
          let mut json_file = File::open(Path::new("1.json"))?;
          let mut json_content = String::new();
          json_file.read_to_string(&mut json_content)?;

          let json_value : Value = serde_json::from_str(json_content.as_str())?;
          let coords = json_value["coordinates"].as_array().expect("Coordinates");
          let len: f64 = coords.len() as f64;
          let mut x: f64 = 0.0;
          let mut y: f64 = 0.0;
          let mut z: f64 = 0.0;

          for value in coords {
              x = x + &value["x"].as_f64().expect("X Conversion");
              y = y + &value["y"].as_f64().expect("y Conversion");
              z = z + &value["z"].as_f64().expect("z Conversion");
          }

          println!("{}", x / len);
          println!("{}", z / len);
          println!("{}", z / len);

          Ok(())
      }

(fyi: the program ran in 2 seconds on my 7 year old laptop)

<comment><USER18> You can make this a lot faster assuming the schema is fixed, and clean it up a bit with iterators. IE something like this

        #[derive(Copy,Clone,Deserialize)]
        struct Point {
            x: f64,
            y: f64,
            z: f64
        }

        #[derive(Copy,Clone,Deserialize)]
        struct Schema {
            coordinates: Vector<Point>
        }

        fn main() -> Result<(), Box<dyn Error>> {
            let mut json_content = String::new();

            File::open("1.json")? // don't need Path
                .read_to_string(&mut json_content)?;

            let schema = serde_json::from_str::<Schema>(&json_content)?;

            let len = schema.coordinates.length();
            let (x, y, z) =
                schema.coordinates
                      .iter()
                      .fold((0.0, 0.0, 0.0),
                        |(xsum, ysum, zsum), (x, y, z)|{
                            (xsym + x, ysum + y, zsum + z)
                        });
            println!("x: {}, y: {}, z: {}", x / len, y / len, z / len);
          Ok(())
        }

<comment><USER19> While I appreciate the intent, that's turning beautiful concise code into a very much less readable... thing.

How much faster is that?

<comment><USER20> It would be more polite and accurate to express that as your opinion rather than objective fact. Personally, I prefer to read the second version. I also expect the techniques shown in it, especially parsing against a type-level schema, would be less error-prone than the original in a larger program.

</comment></comment></comment></comment><comment><USER21> Kinda biased benchmarks u just took best of crystal and worst of nim from this xd -> [https://github.com/kostya/benchmarks](https://github.com/kostya/benchmarks)

<comment> shaki-dora That statement seems wrong in the strict sense, since the "Havlak" benchmark from your link has a more extreme difference between Crystal and Nim and was not included in the article's tests.

The word "bias" has several meanings. One of them is an accusation that those two benchmarks were chosen specifically to produce the desired outcome. Considering the above, and that Base64 and especially JSON parsing are very common, I think it would be fair to allow for the possibility that the article's author chose them accidentally and not with any intent to deceive.

FWIW I was surprised by the article's focus on interfacing with C, something I have not done in 20 years of programming, and was wondering if it was a (possibly subconcious) choice to set up Nim to win.

</comment></comment><comment><USER22> There are interesting summaries there but when it comes to the performance the article compares the implementation speed of the _json parsing_ and the _base64 encoding_ libraries in Nim and Crystal. It is not clear at all if those lessons apply to all/most code as well.

<comment><USER23> Additionally, the Nim code was not compiled with many optimizations turned on! (I.e., without -d:release).

        $ nim c -o:base64_test_nim -d:danger --cc:gcc --verbosity:0 base64_test.nim

        $ nim c -o:json_test_nim -d:danger --cc:gcc --verbosity:0 json_test.nim

IIRC the -d:danger flag is necessary for some optimizations (like disabling bounds checking) but -d:release is necessary for most optimizations to be enabled.

Edit: It appears I'm incorrect, -d:danger does imply -d:release in newer Nim versions.

</comment></comment><comment><USER24> When will you have first-class support for Windows?

<comment><AUTHOR> Unfortunately there's no concrete timeline, it's being worked on on-and-off by the community.

If you have free time, or free money, it'd be a great help to the effort.

<comment><USER25> Since Windows support isn't on parity with other platforms, how can we make sure that our monetary contribution will fully go to the Windows work? Or, is it so that only the 1% of it will make it to the Windows budget?

<comment><USER26> I can't imagine donations working that way for any organization unless you're donating a considerable sum. Every organization has its own priorities and donations help them meet those priorities. If you have a cool million lying around it might help to convince them to make Windows support a priority, but if not, then all you can do is to donate in hopes of helping them focus on knocking out priorities so that they can get to your pet issue sooner.

<comment><USER27> True in that small individual donations are unlikely to fund it. Sponsoring a feature is a thing in open source. Either through a bounty site or a fund me site.

<comment><USER28> While bounty has been existed for long time, why its taking slowly?

<comment><USER29> Maybe there just isn't much interest in windows support?

Crystal is a fantastic language for server-side programming where it pairs the performance of Golang with the expressiveness of Ruby.

I imagine most Crystal users love it for exactly that reason and have little interest in development resources being diverted to a platform that they have no use for.

</comment></comment></comment></comment></comment></comment></comment><comment><USER30> I'd more than love see Crystal growing in popularity. That's be a great option for Ruby devs to tackle tasks requiring high-performance

</comment><comment><USER31> I'm curious how both would compare to D.

<comment><USER32> Crystal is a bit faster at prime number crunching than D. I haven't done any optimizations, just a loop, math, push and hash ops. Its's on par with Go, which is also very fast. Compilation with the release option is slower.

<comment><USER33> I really like some of the features of D for userspace programs. Optional GC for hot paths, the ability to write raw ASM if needed, familiarity of java/cpp. Really wish it would take off more.

<comment><USER32> I like it as well. It would probably be my first choice of a general use statically typed compiled language.

</comment></comment></comment></comment><comment><USER34> Does NIM have anything like numpy for SSE-accelerated vector math?

<comment><USER35> Yes.

You can even use numpy in nim: [https://forum.nim- lang.org/t/4102](https://forum.nim-lang.org/t/4102)

But why use that when you can use Cuda and OpenCL accelerated vector math: [https://github.com/mratsim/Arraymancer](https://github.com/mratsim/Arraymancer)

If thats too much speed, you can just roll your own for loops. Because Nim is compiled with battle tested GCC, LLVM or VC++ it will try to SSE optimize your code if you pass the right switches. If you know what CPU your computer/server has you can compile with newest brand of high performance instructions like AVX2, or even the newest AVX512VNNI...

<comment><USER34> Because my laptop's GPU is Intel GMA 4500M HD, it neither supports CUDA nor OpenCL.

</comment></comment></comment><comment><USER36> > As you can see; in this case Crystal is the more performant language – > taking less time to execute & complete the test, and also fewer Megabytes in > memory doing so.

Yeah no - all you have proven is that one JSON library is less efficient than the other. I bet that if someone spends some time optimizing the heck out of the slower one, the implementations can probably be equally as fast and use memory in the same range.

</comment><comment><USER37> I feel like these are 2 very different languages with different goals. Both are cool, but I don't think it's really fair to compare them.

</comment><comment><USER38> See also [http://rosetta.alhur.es/compare/nim/crystal/#](http://rosetta.alhur.es/compare/nim/crystal/#)

</comment><comment><USER39> JSON is a really bad way to benchmark a language because it's often implemented in a different language.

Much better to implement a small program entirely in that language, along the lines of the benchmark game.

<comment><AUTHOR> JSON is actually implemented entirely in Crystal for Crystal, I'm pretty sure it's the same for Nim too.

For a language which claims to be fast, having to use a C-based JSON parser would be a bit of a cop-out :)

<comment><USER40> But using an existing parser that happens to be written in C could definitely be sensible.

<comment><USER41> That sounds like a pretty awful idea. If you're using a C library for parsing JSON then you must add an additional C to Nim/Crystal conversion step that requires additional RAM and CPU time.

<comment><USER2> Nim compiles to C, there is no cost in calling C.</comment></comment></comment></comment></comment>


DigitalRev.com served with DMCA takedown notice by GoPro for review - <AUTHOR> http://www.digitalrev.com/article/gopro-hero-3-vs-sony/Njk3MDQ3MDg_A

<comment><USER2> Trademarks are not the subject of DMCA protection, see: [https://www.eff.org/wp/unsafe-harbors-abusive-dmca- subpoenas...](https://www.eff.org/wp/unsafe-harbors-abusive-dmca-subpoenas- and-takedown-demands). Even if they were, mentioning a trademark in a review is clearly not "use of a mark in commerce." Any shmuck can send you a letter under the color of authority, but this one clearly has no validity. The ISP is under no obligation to actually take down to content, and shouldn't have here.

As an aside: this is what happens when Congress "innovates" with the legal system. I'm sure someone thought it was a good idea to make take-down notices not be legal documents signed by a lawyer. But now any shmuck can send one without the threat of repercussions. When you have a device that invokes the color of state authority, you should have to jump through certain hurdles. Having to find a lawyer willing to risk sanctions putting a signed document in front of a judge is a powerful filter.

<comment><USER3> This isn't entirely correct. Per the DMCA (or, really, the Online Copyright Infringement Liability Limitation Act - OCILLA), the hosting provider must comply with a takedown notice should they receive it, regardless of how idiotic it appears, so long as the content that is claimed to be infringing is hosted by the provider and the notice is completed. It's up to the website owner to file a counter-notice in instances like this; once they do so, the hosting provider will re-enable the content within 14 days provided the original notice filer doesn't initiate legal action.

ChillingEffects has a long (but very informative) FAQ on the DMCA that dispels a lot of common misunderstandings.

Some bits that are of note in my opinion is the overview of the takedown process: <http://www.chillingeffects.org/dmca512/faq.cgi#QID130>

And the fact that the provider /must/ respond to the takedown notice: <http://www.chillingeffects.org/dmca512/faq.cgi#QID129>

And some information on the counter-notice procedure: <http://www.chillingeffects.org/dmca512/faq.cgi#QID922>

<comment><USER4> Probably not worth it to risk, but the notice from GoPro did not identify any copyrighted works that were being used. They only identified trademarks.

<comment> at-fates-hands This is what I was wondering.

Maybe they decided to use the trademarks on the names in the article? Sounds like a catch22 if you ask me. Put the trademark on the word and they serve you up a DCMA. Don't put it on and then you rise the ire of GoPro since you didn't use the mark on the trademarked names of their products.

Eh, what a hassle.

<comment><USER5> Trademarks aren't copyrights, and trademark law is separate from copyright law right up to them being authorized by different sections of the US constitution. The DMCA is a copyright law and has no bearing on trademark issues, and there is no analog in trademark law for the DMCA takedown/safe harbor procedure beyond traditional C&D letters. To properly analyze who has what rights here, you need to completely ignore everything related to the DMCA, and then you come to the conclusion that a product review that properly identifies who made the product is of course free to use the trademarked name of the product to discuss it. (And little TM and (R) symbols have nothing to do with it.)

</comment></comment></comment></comment></comment><comment><USER6> 17 US 512: (f) Misrepresentations.— Any person who knowingly materially misrepresents under this section—

(1) that material or activity is infringing, or

(2) that material or activity was removed or disabled by mistake or misidentification,

shall be liable for any damages, including costs and attorneys' fees, incurred by the alleged infringer, by any copyright owner or copyright owner's authorized licensee, or by a service provider, who is injured by such misrepresentation, as the result of the service provider relying upon such misrepresentation in removing or disabling access to the material or activity claimed to be infringing, or in replacing the removed material or ceasing to disable access to it.

\---

A take down notice that is so facially invalid may well qualify as knowing misrepresentation.

<comment><USER7> > A take down notice that is so facially invalid may well qualify as knowing > misrepresentation.

Or simply show incompetence that supports a claim of lack of knowing misrepresentation.

</comment></comment><comment><USER8> GoPro response: [http://www.reddit.com/r/gopro/comments/1anq5d/gopro_doesnt_l...](http://www.reddit.com/r/gopro/comments/1anq5d/gopro_doesnt_like_you_to_use_their_name_dmca_abuse/c8z8hdm)

<comment><USER9> I don't buy it.

They state:

> _Thanks for the heads up on this issue. The letter that was posted next to > the review on DigitalRev was not sent in response to the review. Obviously, > we welcome editorial reviews of our products. This letter was sent because > DigitalRev is not an authorized reseller of GoPro products and they were > using images and had incorrect branding and representation of our product in > their online commerce store._

Original letter contains:

> _Accordingly, we hereby demand that Softlayer.com immediately remove or > disable access to the Infringing Material at:_

> [http://www.digitalrev.com/article/gopro-hero-3-vs- > sony/Njk3M...](http://www.digitalrev.com/article/gopro-hero-3-vs- > sony/Njk3MDQ3MDg_A)

<comment><USER10> I believe it depending on the images used in the article. Everything I know about GoPro leads me to believe that they are just as controlling about their marketing as Red Bull is.

<comment> w-ll That or their lawyers got bored and said... who can we fuck. The communication failure was between the PR team and the lawyer team.

</comment></comment></comment></comment><comment><USER11> This smells bad.

There is no DMCA basis for mentioning a third parties trademarked names in a review (there is in commercials you can't say "Cheerios" unless General Mills is ok with it, but you can say "That O shaped cereal", but no such restrictions editorial). Further the complaint is specious. Further the filing of a counter notice takes little time. (I can't see anyone pursuing the alleged infringement in court).

A simpler explanation for me, is a manufactured controversy to get use rage views to drive traffic to a reviews site (which lives and dies by its traffic numbers).

I'm taking a wait and see attitude here.

</comment><comment><USER12> Reading the reddit thread on this, it seems that the DMCA takedown was because the review is using copyrighted images/material that is authorized for use by GoPro resellers, of which digitalrev.com is not one.

I found this comment by photoknut[1] summed up the story:

"I'm sure the DMCA was used a general way for GoPro to have this article pulled. Sure they could've had lawyer contact lawyers and go through all that, but I'm sure this was easier. They clearly don't allow unauthorized resellers to use their images, that definitely falls under the umbrella of a DMCA takedown notice. GoPro owns those images and says who can use them, DigitalRev clearly can not. "

He goes on to mention that digitalrev has a shady history of re-selling the camera they damage in reviews as a new product.

1: [http://www.reddit.com/r/gopro/comments/1anq5d/gopro_doesnt_l...](http://www.reddit.com/r/gopro/comments/1anq5d/gopro_doesnt_like_you_to_use_their_name_dmca_abuse/c8z9j8e)

<comment><USER7> A shady history of reselling has nothing to with a DMCA takedown. A DMCA takedown notice that says nothing about copyrights is a nonsensical action to take to protect copyrights. Further, if this random internet person's conjecture was correct, the takedown notice would be for the images and not the article itself. That is, it can never legitimately be a way for them to 'have the article pulled.'

Yes, doing something completely incorrect is easier than hiring an expert. But GoPro isn't exactly a mom and pop shop these days, do you think they use this same 'this was easier' philosophy on reporting taxes?

</comment></comment><comment><USER5> That hosting company is pretty pathetic for not having a lawyer even glance at the poorly assembled and obviously toothless complaint. That kind of notice is only good for sharing for laughs, and certainly didn't warrant passing along as a threat to the customer.

<comment><USER13> Per the DMCA, hosting companies have to act regardless of validity. The targeted user can file a counter-notification, which the hosting company has to automatically honor no less than 10 and no more than 14 days later.

After that it goes to the courts (if the DMCA complainant chooses to sue).

So, in short, when Congress built the DMCA, they made it possible to silence someone for a guaranteed 10 day period with a spurious DMCA request.

<comment><USER5> No, the hosting company is protected until they have actual notice or knowledge of infringement of copyrights, and the notice posted on the website fails to identify any copyrights that are alleged to be infringed.

<comment><USER13> In this particular case, yes, because GoPro's lawyer is apparently a moron who doesn't know the difference between trademark and copyright.

If they'd claimed a copyright infringement, though, the ISP has to act.

<comment><USER14> Is it GoPro's lawyer? Seems to me it might well be the CEO's fault for hiring marketing people who would send out such a takedown notice without running it by a lawyer.

</comment></comment></comment></comment></comment><comment><USER15> Why not file a counter notification?

If you are a SoftLayer client and/or end user, i.e., subscriber, and you feel that material you have placed online that has been removed following an infringement complaint is in fact not an infringement, you may file a counter notification. 17 U.S.C. Section 512 (g)(3) requires that to be valid, the counter notification must be written and addressed to our agent (listed above) and must provide the following information (the list below comes straight from the statute; if you do not understand the language please seek independent advice):

A physical or electronic signature of the subscriber. Identification of the material that has been removed or to which access has been disabled and the location at which the material appeared before it was removed or access to it was disabled. A statement under penalty of perjury that the subscriber has a good faith belief that the material was removed or disabled as a result of mistake or misidentification of the material to be removed or disabled. The subscriber's name, address, and telephone number, and a statement that the subscriber consents to the jurisdiction of Federal District Court for the judicial district in which the address is located, or if the subscriber's address is outside of the United States, for any judicial district in which the service provider may be found, and that the subscriber will accept service of process from the person who provided notification under subsection (c)(1)(C) or an agent of such person. SoftLayer is not required to respond to counter notifications that do not meet the requirements above.

</comment><comment><USER16> I hope that there will be a positive flip side to these incidents. The swathes of negative publicity and often humiliating climb downs that follow, will make the DMCA a toxic legal tool for many companies. At least those that are concerned with good PR anyway.

</comment><comment><USER13> They filed a copyright claim for a trademark violation?

</comment><comment><USER17> One point that I find interesting is that the letter posted on the site is actually from the "Brand Manager" and not "General Counsel". Not having read the material on the site before, I would assume that the article that seemingly pits GoPro vs. Sony did not have an overwhelmingly positive review of GoPro and maybe pointed out some shortcomings of the product and potentially some flaws.

No need to define the role of Brand Manager here, but it would seem that this take down notice was done to censor a review that they did not find endearing.

</comment><comment><USER18> Question: Do you have to be a lawyer to send a DMCA notice?

This one was sent by their "brand manager" called Patrick Hayes. I highly doubt they're a lawyer. Can anyone weight in on if this is lawful?

<comment><USER19> Anyone can send one. It's a legal document, made under risk of committing perjury (a serious criminal offence that carries jail time) so not getting legal advice before you send one off seems a bit silly.

<comment><USER18> Ah ok. Thanks.

</comment></comment></comment><comment><USER20> That's got to be a fuck up, GoPro don't seem stupid enough to sic a DMCA on a review.

<comment><USER18> They already released a statement saying it was on purpose. They don't seem to think it was wrong.

<comment><USER20> I've just been reading the reasons behind it and it's so, so stupid.

</comment></comment></comment><comment><USER21> This makes me mad. It's that simple.

</comment><comment><USER22> IS DMCA applicable worldwide?

Does DigitalRev have any US presence at all?

I see a customer service hotline and a US webstore, but they are based out of Hong Kong.

"2701-2705 Saxon Tower

Cheung Sha Wan

Kowloon

Hong Kong"

<http://www.digitalrev.com/contact_us>

<comment><USER13> They're hosted at a US company, SoftLayer, who has to comply.

<comment><USER7> Or would have to comply to gain safe-harbor against copyright infringement, if any copyright claims were made in the DMCA takedown notice. In this case, there were only trademark claims, and there is no DMCA safe harbor for trademarks.

</comment></comment></comment><comment><USER23> This url would be banned since GoPro would use the same argument for not using *&tm; with GoPro

</comment><comment><USER24> We know a single side of this story.

Unless someone has the actual story. There may have been infringing content.

<comment><USER5> Nope. Any takedown notice or C&D that can't even keep straight whether it's talking about trademarks or copyrights is an empty threat. If this kind of thing were sent by a lawyer, that lawyer would need to be disbarred. There's just no room here for another side of the story to demonstrate some kind of competence on the part of GoPro.

</comment></comment><comment><USER25> Why are the gopros on that site more than double the retail cost?

<comment><USER26> So we have a scammy grey market retailer advertising GoPro cameras using GoPro's official marketing material (mostly images). Perhaps GoPro sees this as brand damage and unleashes the DMCA, but using the wrong URL. Then the Internet misinterprets the attack as attempted censorship.

</comment></comment><comment><USER27> Is it possible that someone claimed that GoPro issued a takedown notice when they did not? Just to make GoPro look bad and attract some publicity to this "GOPRO Hero 3 vs SONY HDR-AS15" article?

<comment><USER28> No, gopro has acknowledged it. I think it's a weak response, but here it is: [http://www.reddit.com/r/gopro/comments/1anq5d/gopro_doesnt_l...](http://www.reddit.com/r/gopro/comments/1anq5d/gopro_doesnt_like_you_to_use_their_name_dmca_abuse/c8z8hdm)</comment></comment>


Which Type Of Programmer Makes The Best Co-founder? - <AUTHOR> http://www.businessinsider.com/the-three-types-of-computer-people-2010-12

<comment><USER2> I think the answer to the question is "the right one." Arbitrary classifications of sophisticated skillsets attempt to reduce the decision to a rule of thumb. That's just not really possible.

Beyond that, I think the classifications are pretty off base. The idea that hackers build open source yet are rarely trained computer scientists is pretty far from reality, for one thing.

<comment><USER3> Even if these classifications made sense, I think most programmers are some blend of the ideas behind each group. As a programmer I switch between all of these modes as necessary.

<comment><USER4> To be a competent programmer, one must switch between all three modes. I would find it hard to work with someone who directly fit into only one of these classifications.

</comment></comment></comment><comment><USER5> I think personality fit and work ethic are more important distinctions than academic pedigree or past work experience.</comment>


What Makes Me a Great CEO - <AUTHOR> https://medium.com/@garyvee/what-makes-me-a-great-ceo-74aaa67c476 <comment><USER2> >"I think a lot of people are stuck in the political climate right now and don't believe in people. I'm a very big believer in the human race, we've overcome so many adversities. I feel that every generation thinks like this and that this is it, it's over, we screwed it up. I just think that optimism around the human race is a 2040 move."

I have to agree with that. The cynicism and pessimism that seems so popular today is naive and borders on the pathetic.

</comment><comment><USER3> Mr. Great CEO should make a proofreader his next hire.</comment>