The Fall jams your gun on jailbroken iOS devices - <AUTHOR> http://www.joystiq.com/2013/07/11/deus-ex-the-fall-jams-your-gun-on-jailbroken-ios-devices/

<comment><USER3> So if someone buys the app legitimately from the App Store with a jailbroken phone, they'll still get this popup? That's pretty ridiculous. This isn't about stopping piracy or shaming pirates, it's a blanket accusation that all iPhone owners who jailbreak their phones are thieves.

<comment><USER4> Counter argument: You can't legitimately buy from the App Store with a jailbroken phone. Either you or the developer is violating the agreement you have with Apple and in fact if you are in any way touching copyrighted code then you can be charged with a crime. Fun times.

<comment><USER5> Wrong. People who have a jailbroken phone CAN use the app store. Also, jailbreaking (phones currently) is a DMCA exception.

<comment><USER4> Wrong. Jailbreaking phones may be a DMCA exception but if you copy any memory of any sort then it becomes copyright infringement offences. See WOW Botnet case.

<comment><USER5> I don't know what you're talking about.

[http://arstechnica.com/tech-policy/2012/10/jailbreaking- now-...](http://arstechnica.com/tech-policy/2012/10/jailbreaking-now-legal- under-dmca-for-smartphones-but-not-tablets/)

</comment></comment></comment></comment></comment><comment><USER6> Legally purchase a $7 app and get screwed by the DRM.

Pirate a $7 app and subvert the DRM using a Jailbreak tweak like xCon.

It seems that this only hurts the legitimate users, as others will still be able to pirate the app.

<comment><USER7> Just to clarify what xCon does: it's intended for use with legally-purchased App Store apps that refuse to work correctly on jailbroken devices - <USER2> tricks those apps into thinking that they're running on non-jailbroken devices.

So yes, the gun-jamming hurts legitimate users, but those legitimate users can use xCon to work around it.

Here's some more documentation: [http://theiphonewiki.com/wiki/XCon](http://theiphonewiki.com/wiki/XCon)

<comment><USER8> Why would I want to support a developer that treats me as a criminal off the bat? I might as well be a criminal and just pirate it at that point... Self fulfilling prophecies at work.

</comment></comment></comment><comment><AUTHOR> It looks like they decided to patch this 'feature' out of the game.

[http://kotaku.com/patch-will-give-jailbroken-deus-ex- players...](http://kotaku.com/patch-will-give-jailbroken-deus-ex-players-the- ability-757580067)

<comment><USER9> "We're sorta sorry we got caught."

<comment><USER5> "but we're not sorry that we did it."

<comment><USER10> But their error message starts with "We are sorry"!

</comment></comment></comment></comment><comment><USER11> More anti-consumer crap from SquareEnix. It's really a shame they are hellbent on running their fantastic franchises into the ground.

<comment><USER12> Because there is someone of the big publisher that is consumer friendly?

Only indies seem to treat their customers with respect. That is why I buy all bundles for at least a buck even if I have the games already.

</comment></comment><comment><USER13> How do you detect a jailbroken device from software? Presumably someone could just patch that, but maybe that's a bit beyond what most people want to do.

<comment><USER6> There are quite a few different ways a Jailbroken device can be detected.

[http://stackoverflow.com/questions/413242/how-do-i-detect- th...](http://stackoverflow.com/questions/413242/how-do-i-detect-that-an-sdk- app-is-running-on-a-jailbroken-phone)

<comment><USER14> In fact, it can be an arms race at times. People can use insanely clever ways to detect if the runtime is being modified, and then others can come up with an equally clever solution to subvert this check.

<comment><USER15> Such as xcon.

</comment></comment></comment></comment><comment><USER16> Given what one can do when trusting a walled garden, and can't without, is there some reasonable concern critics overlook?

Say, apps having access to other apps' data could unfairly modify cached user data, frustrating legitimate multiplayer gameplay? i.e.: write an app which auto-maximizes all player capability stats?

To wit: cheats may become easy to perpetrate and hard to block when full sandbox access is not prevented.

<comment><USER17> You can access app data with a USB cable and the right PC software. Cheating is already rampant in many games and it doesn't require jailbreaking.

</comment></comment><comment><USER18> There's a lot of outrage about this -- a lot of frustrated consumers.

I think its naive to assume that Square-Enix didn't have data that said "Money lost to pirates > Money to be gained from legitimate purchasers on jailbroken devices."

That being said, pirates always seem to win the DRM-escalation arms race -- and the PR blowback from this will probably outweigh the extra purchases they snag.

<comment><USER19> The reason why pirates seem to always win, is that it is highly asymmetric. To do this correctly takes more patience and sneakiness than 90% of executives have in the technology context. Not everyone can be Irwin Rommel or Laurence of Arabia.

</comment></comment><comment><USER20> They will be releasing an update to remove this: [http://www.joystiq.com/2013/07/12/deus-ex-the-fall-update- wi...](http://www.joystiq.com/2013/07/12/deus-ex-the-fall-update-will-unjam- guns-on-jailbroken-ios-devic/)

<comment><USER20> Their wording bugs me, as they show no remorse except that they did not make this particular restriction known to people before they bought the game.

Essentially they're saying it would have been okay if they'd told everyone up front, even though it's still tantamount to calling all those who jailbreak their phones a thieving pirate.

<comment><USER21> I thought it was quite good, comparing tho most company statements I see. They even used the word _apologize_. Most companies do not use such wording as it might imply admission of guilt. That's why you see _regret_ instead of _apologize_ in a lot of company issued statements...

</comment></comment></comment><comment><USER22> What is with the prevalence of always mentioning "jailbreaking will void your warranty" completely out of the blue? It's not clear that it's actually true, and being constantly repeated everywhere only works to make it true. The manufacturer sold me a computer - installing software on it _is the expected use_. We wouldn't say a laptop was out of warranty because someone nuked Windows and put Linux on it.

Still, it's wise to jailbreak any device as soon as you get it. This way you can be sure of having a jailbreak method, it's still in the return period, and you won't end up becoming reliant on a locked down device and worried about changing it.

<comment><USER23> Jailbreaking carries some risks to the user and this article is an example how no one really understands these risks fully. Nevertheless, jailbreaking is quite popular and it's something that ordinary iPhone users do. It's not just hackers who have some idea what they're getting into. So it's worth reminding readers that jailbreaking may bring your phone real economic consequenses.

Also, this is an article about how a bit of 3rd party software behaves on jailbroken devices. It seems entirely relevant to discuss how Apple itself views the practice.

<comment><USER19> The latest stat I've seen is that only 4% of iOS devices are jailbrokem.

</comment></comment></comment><comment><USER24> This seems like a really good way to invite a lot of 1-star reviews from angry players with jailbroken phones...

</comment><comment><USER25> A ridiculous attempt to prevent piracy? Jailbroken != pirated.

<comment><USER26> If they hadn't fixed this with a patch, I could see a class action lawsuit on the horizon for fraud. You can't sell something as working when it is not.

<comment><USER15> It is included in the description.

 __Please be aware, the Deus Ex: The Fall play experience is currently restricted on jail broken devices. Do not purchase if you have voided your warranty and have Jail broken your device.

I'm not sure whether that's exactly fraudulent (equivalent for people not reading what devices an app supports and purchasing it)

</comment></comment></comment><comment><USER27> What I'd like to see is their analytics showing how many unique users are playing the game compared with sales numbers from the App Store, to get the actual percentage of piracy that's occurring.

Bonus points would be to show how many jailbroken users have purchased vs how many have pirated. Not sure how'd you detect this without IAP and receipt validation, though, given that that's the point of piracy...

</comment><comment><USER28> The title of this submission should start with "Deus Ex:" since the game's name is "Deus Ex: The Fall".

</comment><comment><USER29> Does anyone know if this is a shooting optional stealth game? In other words, essentially still playable with this restriction?

</comment><comment><USER19> This is doing it wrong. You must bias to false negatives. You must make the initial impression and experience sacrosanct. You must avoid penalizing your paying customers.

It's stupid to do this so obviously, so quickly, and for it to be triggered by jail breaking. Jailbreak != piracy!

</comment><comment><USER30> Can you issue a chargeback if the publisher does not provide you with working software?

<comment><USER31> If you're buying from the App Store, this is probably a terrible idea. Other software distributors (like Steam, for example) have been known to disable people's accounts when they do a chargeback.

Chargebacks aren't just "I want my money back". They're meant to fight against fraud, and there's an implicit indication that you won't be doing business with that vendor any more because of this.</comment></comment>


One pixel attack for deceiving deep neural networks - <AUTHOR> https://arxiv.org/abs/1710.08864 <comment><USER2> When discussing adversarial attacks on neural nets, everyone seems to just kind of take for granted that the human visual system is immune to this kind of fudgery. I'd be very interested (and a little afraid) to know if this is in fact the case - we know of a bunch of optical illusions that are perceived differently to what they "ought to be", so it's not too much of a stretch to figure that we could come up with a technique to generate more extreme examples.

<comment><USER3> Having read some very introductory stuff about human visual system, I'd be willing to guess that a partial reason is that the human vision works on the input level quite differently than "observe NxM colored pixels in grid". The act of constructing what we'd think as a single "view" of our surroundings (that one intuitively might equate with a still pixel image) includes lots of low-level processing.

(E.g. Everyone probably has heard about the blind spot at the point where optic nerve 'connects' to retina. But I was surprised to learn that most of the stuff in our FOV is seen very poorly, and only the tiny area called macula is responsible for the high acuity vision. And the macula is capable of covering only a small spot in our FOV at one time: what we'd think as a single view is really constructed in a post-processing step as our eyes move and scan our surroundings. My amateur-level explanation might be a bit off, but the point is, it stands to reason that kind of "dynamic" processing system is more robust (especially to small pixel level "attacks" as in the linked paper) than simply constructing mappings of still pixel grids to outputs, as currently done by CNNs.)

<comment><USER4> What we know about the brain points to lots and lots of top-down influence on visual processing. Your learned preconceptions can go down the stack and alter/override raw sensory data that gets fed from your eyes up the stack, forming loops that are arguably absent in ANN solutions.

</comment></comment></comment><comment><USER5> If by knowing the structure of a NN a "trick" image can be specially crafted to fool it, what is the equivalent for a human brain?

If we get to the point of having a human connectome to analyze-- or the kind of access to neural topology that a neural lace would provide-- could an optimizer generate an image of static that human would mistake for the president of the United States?

It seems outwardly implausible that such an image could exist, but perhaps that is only because we've never seen one (or if we had, would we know?), and a "blind" search of images would never find it, as the space of images is galactically huge. With a "map" of the brain it might suddenly become plausible.

And if so, that world sounds absolutely terrifying to me.

<comment><USER6> >> If we get to the point of having a human connectome to analyze-- or the kind of access to neural topology that a neural lace would provide-- could an optimizer generate an image of static that human would mistake for the president of the United States?

Probably not, because our brain doesn't seem to work like Artificial Neural Networks do. Most notably, we learn to identify novel objects after only seeing a single example of them while ANNs may require many thousands of examples. We don't seem to learn to identify individual pixels, either (though what exactly our brain does when we learn to identify objects from their images is anyone's guess).

Digital images are also not a very good analogy for what human eyes see: our vision doesn't have "pixels" and we don't even need images to be particularly clear to identify them with good accuracy (we can still tell what things are up to a point, even in the dark, when it rains, when our visual field is occluded etc).

Generally, you can't expect the human brain to work like an ANN. Like others have said before [1], the "neural network" analogy is not a very good one. It often serves only to create confusion about the capabilities of ANNs and the human brain.

________________

[1] [https://spectrum.ieee.org/automaton/robotics/artificial- inte...](https://spectrum.ieee.org/automaton/robotics/artificial- intelligence/facebook-ai-director-yann-lecun-on-deep-learning)

      Yann LeCun: My least favorite description is, "It works just like the brain."
      I don't like people saying this because, while Deep Learning gets an inspiration
      from biology, it's very, very far from what the brain actually does. And describing
      it like the brain gives a bit of the aura of magic to it, which is dangerous. It
      leads to hype; people claim things that are not true. AI has gone through a number
      of AI winters because people claimed things they couldn't deliver.

<comment><USER7> I think the differences between ANNs and BNNs are exaggerated. I think they probably work on similar principles. Even if there some differences.

But none of that is particularly relevant. Even if they are completely different, so what? The same procedure could still work. Take a biological brain and backprop through it to find exactly what inputs change the outputs by some small degree and tweak it bit by bit until you change the output. You can apply this to any function, it's general.

Adversarial examples are exceedingly rare in natural data. They require tweaking exactly the right pixels in exactly the right direction. It's something stupid like a one in a billion billion chance of such a malicious example occurring by chance if you just randomly add noise to images. It requires a very precise optimization procedure.

So if adversarial examples did exist for human vision, we probably wouldn't know it yet. They don't occur in nature. So there's no reason for the brain to have evolved defenses against them. (Though camouflage is an interesting natural analogy, it's not quite the same.)

<comment><USER6> >> Take a biological brain and backprop through it to find exactly what inputs change the outputs by some small degree and tweak it bit by bit until you change the output.

How exactly do you "backprop through" a (biological) brain?

Also, I don't see why you'd ever want to do that "tweak it bit by bit" thing to a brain. Human brains seem to catch on to ideas pretty quickly. They don't need to go back and forth on their synapses a million times until they learn to react to a stimulus. Whatever the brain does is light years ahead of backprop, which is, all things considered, a pretty poor algorithm. So why would you ever want to do that "backprop on a brain" thing, if you could do- you know, what brains do normally?

<comment><USER7> If you have a perfect simulation of it, you can just run it step by step and create a computation graph and go backwards through it.

The algorithm used to do the optimization doesn't really matter. Use a GA or hillclimbing if you want.

EDIT since you added more to your comment:

>why you'd ever want to do that "tweak it bit by bit" thing to a brain. Human brains seem to catch on to ideas pretty quickly.

So what? That's the process for creating an adversarial image. Does it matter how many steps it takes to create it?

>They don't need to go back and forth on their synapses a million times until they learn to react to a stimulus.

That's exactly how learning works in humans. Try to learn to juggle with just one or two tries. It takes thousands. And that's after you've spent years in your body learning how to coordinate your muscles and locate objects with your eyes and how physics works, etc.

>Whatever the brain does is light years ahead of backprop, which is, all things considered, a pretty poor algorithm.

I really really doubt that. There are a number of theories about how the brain might implement a variation backpropagation for learning. Hinton has one.

Backpropagation is not a poor algorithm, it's probably close to optimal. No one has been able to come up with something better besides just little heuristic tweaks. It's very difficult to see how you could do so. It's so simple and elegant and general.

<comment><USER6> Ah, so all you need is a perfect simulation of a brain?

<comment><USER7> Ideally. I'm of course talking about whether it's hypothetically possible to do this. Once we understand the brain better, it may be possible to create a reasonably accurate computer model and do this for real.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> The underlying problem seems to be that deep neural network classifiers tend to place their classification boundary surfaces very close to data points in at least one dimension in a high-dimensional space. That makes them brittle - perturb the data very slightly in the wrong direction and they move through a boundary into some other classification.

I don't know enough about the subject to know why training does that, or what can be done about it.

<comment><USER9> What's concerning is that the network used dropout, which I thought was aimed and making networks less brittle (i.e. reduce overfitting).

<comment><USER10> Go watch Yatin Gal's talk on dropout in neural networks. He shows pretty convincingly that the belief that dropout reduces network overfitting by introducing noise is wrong.

<comment><USER11> Wait, that can't be wrong because that is literally what DO does. It is a convex hull regularizer around the network activations using noise. That is also why dropout does not solve susceptibility to adversarial examples: It merely extends the regions that the NN generalizes to outward; but that is limited because high-dimensional spaces are counter-intuitively large and the noise required to cover a descent fraction of the "unmapped" space would completely prevent learning. AFAIK, Yarin Gal merely provides a Bayesian interpretation of the noise.

<comment><USER10> IIRC, his "Bayesian interpretation of the noise" actually shows that dropout performs approximate integration over model parameters. As he says, dropout doesn't work _because_ of the noise but _despite_ the noise.

[https://youtu.be/3ONLxYeM1Sc?t=19m21s](https://youtu.be/3ONLxYeM1Sc?t=19m21s)

<comment><USER11> That seems like a strange/unnecessary way to put it because DO _is_ noise.

</comment></comment></comment></comment></comment></comment><comment><USER12> Figure 8. Without a label, I wouldn't have been able to independently tell anyone that this was a picture of a dog.

For what it's worth, images used in this paper are 32x32 pixels.

<comment><USER13> I can't even see a dog when I know there should be one...

<comment><USER14> Looks more like one of these dump trucks to me [http://3.bp.blogspot.com/__EzFEHn2YBI/SbEdsBdbL7I/AAAAAAAAAR...](http://3.bp.blogspot.com/__EzFEHn2YBI/SbEdsBdbL7I/AAAAAAAAARY/wDqn0-t74R0/s1600/cat797.jpg) (why are these always yellow?)

Or half a torso of a dog... with a dump truck in the background..

<comment><USER15> > (why are these always yellow?

The yellow is the manufacturer's (Caterpillar) trademark color--and it probably helps that it's very high visibility.

<comment><USER14> That would be my guess, but I see lots of other types of vehicles that are normally yellow in other colors. But this specific kind I don't recall ever seeing in another color.

Even here [0] most are yellow despite having a different manufacturer. Maybe the difference is enough to differentiate them though.

[0] [https://en.wikipedia.org/wiki/Haul_truck#Ultra_class](https://en.wikipedia.org/wiki/Haul_truck#Ultra_class)

</comment></comment></comment></comment></comment><comment><USER16> So, I might be wrong, but my understanding of these attacks is that they require you know what the model of the classifier is.

If my understanding is correct, I guess my question is: how general are these attacks? Can we ever say "oh yah, don't try to classify this penguin with your off-the-shelf model, it'll come-up iguana 9/10"

<comment><USER17> See [https://arxiv.org/abs/1610.08401](https://arxiv.org/abs/1610.08401) for model agnostic examples of adversarial attacks.

<comment><USER18> This is a great paper.. the perturbation map is very reminiscent of psychedelic imagery

Psychedelics come up a lot with nn created images, but this is interesting that under the influence of a perturbation suddenly the classifier starts presenting illogical assumptions

Also similar to how people recollect their own classifiers unfolding or showing bias when considered under the influence of psychedelics

Perhaps there is some deeper analogue with a substance influenced brain's neuronal activity

</comment></comment></comment><comment><USER19> Interesting, can this be prevented by simply random blurring images first?

The NN should still be able to recognise something partially blurred if trained that way.

<comment><USER20> or perhaps adding random pixel noise to the image before attempting training/recognition to prevent "smoothness" in an area from being a recognized property

<comment><USER21> Alternatively eliminate the noise by low-pass filtering in freq domain. Even a small LED light will bleed to more than one pixel in a real photo.

</comment></comment></comment><comment><USER22> From a workflow point of view, this is a datasets security / integrity problem, isn't it? Public and open source datasets should come with some sort of sanity check then. A best practice protocol for pre-processing private datasets / unvetted sources should also be made public and disseminated.

</comment><comment><USER23> Related article: "BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain" ([https://arxiv.org/abs/1708.06733](https://arxiv.org/abs/1708.06733))

</comment><comment><USER24> Related: Slight Street Sign Modifications Can Fool Machine Learning Algorithms [https://news.ycombinator.com/item?id=14935120](https://news.ycombinator.com/item?id=14935120)

</comment><comment><USER25> One way to beat back these types of attack is to have the software do a type of image filtering that averages out the adjacent pixel in a indeterminate(random) way before feeding into the NN for inference

<comment><USER26> Not really. The single-pixel attacks are impressive because they just modify individual pixels but the concept of adversarial image generation is a broad and increasingly well studied area within neural networks. There are infinitely many ways to structure adversarial images not just single pixel defects.

</comment></comment><comment><USER27> Wouldn't it be sensible to median filter the input images to remove these types of single pixel outliers?

</comment><comment><USER28> If you're on a phone, here's a responsive HTML version of the paper: [https://www.arxiv-vanity.com/papers/1710.08864/](https://www.arxiv- vanity.com/papers/1710.08864/)

<comment><USER29> Beware that figure numbers in the HTML version are incorrect. :(

</comment></comment><comment><USER30> This makes me feel like neural networks are nothing but glorified hash functions. Well, if you think about it, here we are just optimizing for hash collisions of similar things.

<comment><USER31> The whole point of classification algorithms, including NNs, is to map similar inputs to similar outputs, or indeed the same output, and different images to different outputs. Hash functions usually attempt to erase all information of "similarity" between inputs. However, the metric that determines what "similar" means in a NN is not necessarily what we expect it to be.

But of course NNs are definitely just functions, in the strict mathematical sense. You could replace one with a large lookup table. The interesting part is the training: how to come up with the function in the first place.

</comment></comment><comment><USER32> Maybe Marvin Minsky was right about neural nets (he'd surely be shaking his head right now, maybe dropping an "I told you so" or two...)

</comment><comment><USER33> It is kinda obvious that you should make multiple passes at recognition with jitter and dithering.

</comment><comment><USER34> The field of Music Theory is algorithms & patterns for music. Computer music provides the opportunity for rapid iteration. If that direction were followed intensely, music theory would become a sub-topic within Psychology.

</comment><comment><USER35> Thank you, an academic article without paywall

</comment><comment><USER36> Does this publication bring any value as it was known well before that such thing is possible? Or no-one had measured how many pictures can be "transformed" by changing only 1 pixel?</comment>


Design Matters: Business, strategy and design insights, published twice a week - <AUTHOR> http://www.dtelepathy.com/blog/reading-list/everyone-is-a-designer

<comment> whoa-duder Oh nice, never heard of this before.

</comment><comment><USER2> Now THIS is how a blog should look.

</comment><comment><USER3> Really slick blog. Awesome work.

</comment><comment><USER4> Hello world.

</comment><comment><USER5> Looooove it!

</comment><comment><USER6> Boom!!!</comment>


Ask HN: Founders, how did you do your market research? - <AUTHOR> I have a problem I want to solve and I want to turn that into a startup.
Founders, how did you do your market research?
Did you do a comprehensive survey before building your app?
Did you hire a company to do it for you instead?
What do you look for in your market research to validate your ideas? Signals, metrics, etc.
I know I am not the only one having this problem I am eager to solve. Thank you <comment><USER2> I'll just point you to this book as a starting point.

[https://www.amazon.com/Four-Steps-Epiphany-Steve- Blank/dp/09...](https://www.amazon.com/Four-Steps-Epiphany-Steve- Blank/dp/0989200507)

<comment><AUTHOR> Thanks.</comment></comment>


Are index funds communist? - <AUTHOR> https://www.bloomberg.com/opinion/articles/2016-08-24/are-index-funds-communist <comment><USER2> VERY old article</comment>


Dissecting the iOS 7 design - <AUTHOR> http://branch.com/b/ios-7-design

<comment><USER2> I still can't really get used to that blurry glassy background look over the icons. Maybe it's because I haven't used it yet.

More and more though, I feel like I'm going to miss skeuomorphism.

We've seen all those iOS 7 screenshots with a white iPhone. Anybody knows how that's going to look on a black iPhone?

Is there an option to invert the UI theme from white to black? I hope so.

<comment><USER3> there are lots of people running iOS 7 on their own iPhones, and those are black, so lots of people are using it on a black phone.

I don't know if you can invert the color theme.</comment></comment>


What happens from now onward will be unbelievable - <AUTHOR> https://medium.com/@faiz/what-happens-will-be-believable-a07fe8002f52 <comment><AUTHOR> My first few paragraphs from the new fiction book I'm writing. Let me know what you think of it.</comment>


The Party Is Over for Amazon - <AUTHOR> http://www.newrepublic.com/article/120464/amazons-revenue-growth-has-fallen-making-investors-nervous

<comment><USER2> TNR's coverage of Amazon has been astonishingly biased. For instance, they printed a ridiculous article by advice columnist Margot Howard, whose book was poorly reviewed by Amazon customers and who concluded that readers couldn't possibly come up with a useful review. She wrote: '"Book Reviewer" is considered a profession, and reviews are done by other writers. Good sense would seem to militate against any group of people unschooled in creative and critical reviewing coming up with a worthwhile review.'[1]

I think that, when it comes to Amazon, TNR has a giant chip on its shoulder. I think a lot of this criticism has to do with a liberal arts-educated, New York and Washington-based cultural elite that sees itself as eclipsed by Seattle and Silicon Valley upstarts who studied computer science.

[1][http://www.newrepublic.com/article/119875/margo-howard- amazo...](http://www.newrepublic.com/article/119875/margo-howard-amazon-vine- reviewers-sabotaged-my-book)

<comment><USER3> As a former DE Shaw guy, Bezos sure knows how to stick it to New York and Wall Street.

I had a good laugh when I read about their latest bond offering (very smart considering the interest rate environment and the impending rate hikes) and Moody's subsequent downgrade. Bezos is trolling Wall Street and Wall Street is not happy.

</comment></comment><comment><USER4> Article is a hit-piece; author is being willfully ignorant/misleading.

> Amazon's newest investments aren't paying off. The most notable failure has > been the Fire phone, which has received terrible reviews. > And the Fire > phone was a big bet that has not worked.

He says this as if the Fire phone will now be canceled so that Amazon can try some other random experiment. The Fire phone was the first iteration of what will be a very long experiment, the same as every other product launched by a large corporation (e.g., Android, iOS, Kindle Fire tablet). How many times have we heard "It's over, Google's Android is finished" in the past decade, only to now see Android sales accelerated way beyond iOS and iOS sales stagnate?

The above is obvious to anyone who follows tech, thus leading me to believe the author has crafted a hit piece.

Disclaimer: I am employed by Amazon and own Amazon stock.

<comment><USER5> I never heard: it's over Google Android, on the contrairy. I have been a fan from the start (just i have been from Apple (not anymore)) and from Microsoft (.Net developer) - that love has renewed since Nadella :)

</comment></comment><comment><USER6> I believe Amazon's revenue growth is slowing because they're beginning to saturate the consumer market. However, they're only just beginning to penetrate B2B supply ([http://www.forbes.com/sites/clareoconnor/2014/05/07/amazons-...](http://www.forbes.com/sites/clareoconnor/2014/05/07/amazons- wholesale-slaughter-jeff-bezos-8-trillion-b2b-bet/)).

Many large internet companies have fundamentally dubious business models. Google and Facebook come to mind, both have advertising as their primary source of revenue, making their users the product.

Amazon, on the other hand, provides something of enormous intrinsic value: the supply of any and all physical goods that can be put in a warehouse. This business is not going anywhere, and Amazon is only going to get better at it (faster, lower overhead, more products).

In the scheme of things, Amazon's other offerings (AWS included) are relatively unimportant. IaaS and PaaS are relatively fungible, as is evidenced by Amazon's competitors (i.e Azure). Taking a loss of a few hundred million dollars on the Kindle Fire is a rounding error relative to Amazon's revenue, the amount invested yearly on new infrastructure and capital reserves.

Also, if Amazon is issuing unsecured debt, it simply means more capital is needed to sustain the desired rate of infrastructure investment.

</comment><comment><USER7> How is this on the front page? It is all unsubstantiated forward-looking speculation. Does he have access to figure business plans or something?

<comment><USER8> This article is worthless, and I was thinking HN needs a flag option... and then I realized it already has one! I clicked it of course ;), and you should too!

</comment></comment><comment><USER9> Amazon's forward P/E is 366. Clearly, investor confidence in Amazon's strategy is hardly over. (A usual P/E is around 15.)

<comment><USER10> Price to Earnings (P/E) is literally the least relevant metric to use for Amazon. Given the company's very public approach to seeking zero net earnings (while maximizing capex/investment), the denominator will always skew the ratio to levels that make it non-meaningful.

EV/Sales (LTM and Forward) are much more in line with other comparables.

<comment><USER11> I don't think you understood the OP's point correctly - their forward P/E, aka what earnings the investors expect the company to make in the future, is abnormally high, thus indicating investors are still quite bullish.

<comment><USER10> I understood it. Forward P/E is typically next year's P/E. Investors expect nearly $100B in revenue, but almost no earnings (1/366th). Because the denominator is expected to be SO small (against such large earnings), the forward P/E ratio will also be ridiculous and not very meaningful.

No denying that many Amazon investors are bullish, but this is not the metric to prove that point. Other relevant drivers at play.

</comment></comment></comment></comment><comment><USER12> Though the revenue is declining but venturship of Jeff is growing days by days. He wants to see millions of people to work on space and living there also. The other company of him is ready to compete with SpaceX.

</comment><comment><USER13> Jeff has always ignored the stock Market, the company is self sustaining and he doesnt need nor care for wall street.

<comment><USER14> Google the term "activist investor".

A Carl Icahn type (or more likely Carl Icahn himself) could potentially force Jeff to reconsider the detached attitude.

<comment><USER15> How much stock does Jeff have? Can he retain control easily?

<comment><USER16> [http://www.nasdaq.com/symbol/amzn/institutional- holdings](http://www.nasdaq.com/symbol/amzn/institutional-holdings)

[http://www.nasdaq.com/quotes/insiders/bezos- jeffrey-p-48340](http://www.nasdaq.com/quotes/insiders/bezos-jeffrey-p-48340)

</comment></comment></comment></comment><comment><USER17> How can $273 million in profit be a bad sign at all? Sometimes I don't get oeconomics.

<comment><USER18> _How can $273 million in profit be a bad sign at all? Sometimes I don 't get oeconomics._

Because in the context of the 75 billion in revenue needed to generate the 273 million in profit, thats a profit rate of 0.0004%. So every tiny false step puts the company in the red.

The numbers basically show that amazon rides a conceiled loss leader strategy for many years now. Thats traditionally a quite risky move, because once you've crushed competition and saturated the market, you've reached the point where you _have_ to make profit or go insolvent. But generating profit would involve raising prices, which would give the competition more breathing space - amazon essentially has to give up market share to not go bankrupt.

</comment></comment><comment><USER19> Warning: Autoplay audio</comment>


A History of Erlang (2007) - <AUTHOR> https://dl.acm.org/doi/abs/10.1145/1238844.1238850 <comment><USER2> I actually find Erlangs syntax a breath of fresh air. Coming from Python, this may sound odd, but there's something soothing about it.

I much prefer Erlangs syntax to Go, for example. I also much prefer Erlangs syntax to Elixir; I never liked ruby either, so there's perhaps no surprise there.

<comment><USER3> Me too, as former Prolog fanboy, I really don't get Elixir hype, other that it provided an escape route for those not wanting to deal with Rails, or its lack of performance due to MRI Ruby not having a solid JIT story and the alternative implementations not being as good running Rails.

<comment><USER4> I think this illustrates the power of elixir; You can't do this so easily (and certainly not as featurefully) in erlang: [https://hexdocs.pm/zigler/Zigler.html](https://hexdocs.pm/zigler/Zigler.html)

Other things I've done in Elixir that are way easier: implemented a multiverse registry that tracks supervised transient gen_statems in segregated test contexts (so a test only sees gen_statems that have been started in their caller context). Elixir has an opinionated way of tracking caller and ancestors in the supervision and temporal history that are crazy powerful. Thanks to erlang term format, it's also easy to send that information out of the vm (for example into chromedriver and back into the vm via http headers). It's become an accepted standard in the community, and the web drivers, database adapters, and dependency injection/mocking libraries consistently use them.

Implemented a virtualization library that seamlessly launches virtual machines with a unified abstraction between locally launched vms and remotely launched vms (there's things that elixir has that make this easier and compile-time checked). It's also got 100% code coverage thanks to Elixir's powerful dependency injection and abstraction capabilities.

Implemented compile-time checking of configuration settings that makes 100% sure I don't deploy broken configs to prod; they get stopped at the release stage. But also they get actively code highlighted at the TOML level in vscode, so I don't even have to wait to generate a release. It's dead easy to emit custom file/line information in Elixir's CompileError exception.

</comment></comment></comment><comment><USER5> I don't understand why people don't like Erlang so much [1]. It has many excellent features and the runtime stability is unmatched.

[1] [https://www.codementor.io/blog/worst- languages-2019-6mvbfg3w...](https://www.codementor.io/blog/worst- languages-2019-6mvbfg3w9x)

<comment><USER6> I've had trouble getting into it because the ergonomics are so incredibly, wonderfully, art-project level rough.

For example:

        $ erl
        Erlang/OTP 20 [erts-9.2] [source] [64-bit] [smp:8:8]
        [ds:8:8:10] [async-threads:10] [kernel-poll:false]

        Eshell V9.2  (abort with ^G)
        1> 2 + 2
        1> 2 + 2.
        * 2: syntax error before: 2
        1> 2 + 2.
        4

Note the trailing whitespace(!) after the last `2 + 2. `, necessary for the result to be printed.

I was coming from Haskell which has its own very serious tooling and ergonomics problems. Trying Erlang made me realize things could be even worse. My internal model in my head of language designers/promoters is COMPLETELY wrong, I have absolutely no idea how people could spend time promoting languages with such strange tooling to a general audience with any expectation that it will work.[1]

[1] Not to say that these languages/tools aren't awesome. Trailing whitespace matters semantically absolutely not at all. But if you're trying to promote a language with meaningful trailing REPL whitespace to a general 2020 audience there is some terrible mismatch between your expectations and your actual chance of success.

<comment><USER7> There's no meaningful whitespace in your example. You have a syntax error in the first example.

To get the effect you wanted in the you needed a `.`:

      1> 2 + 2
      1> .
      4

That is, if you really wanted it split over multiple lines.

The syntax error is indicated as being on line 2 (though not obviously on line 2) with the prefix to the error:

      * <line number>: <syntax error information>

What you've essentially typed in your first example is (replacing the newline with a single space):

      1> 2 + 2 2 + 2.

You'd expect an error from that since there is no operator between the second and third 2. Even placing a comma would've been enough:

      1> 2 + 2
      1> ,2 + 2. ;; this is weird to do, but valid
      4

The shell expects a period terminating an expression before it parses it. This permits entering multi-line expressions without doing anything special (you don't need a special "I'm going to continue on to the next line please don't parse this one" backslash, for instance).

<comment><USER6> Oh, that makes sense! Thanks to both you and moreoutput.

My argument is wrong then-- this isn't shockingly bad anything, just a little quirkiness.

<comment><USER7> I think part of it is that the shell is not the most forgiving of syntax errors, and Erlang doesn't always give the clearest syntax error description.

It's always been correct by line number for me, but I usually have to read that and the line above/below to understand what my actual errors are.</comment></comment></comment></comment></comment>


Show HN: BOSO (Best of Stack Overflow) - <AUTHOR> http://boso.herokuapp.com/

<comment><USER2> Remember that the names of the authors should be linked to the S.O. profiles: <http://blog.stackoverflow.com/2009/06/attribution-required/>

<comment><AUTHOR> Someone on reddit just pointed that out to me.

Gonna fix that - requires a bit of a schema change, so will take a little longer than other quick changes.

</comment></comment><comment><AUTHOR> OP Here: I am not much of a designer, so forgive the un-polished UI.

Any, and all feedback, is welcome :)</comment>


Things to Never Say While Negotiating - <AUTHOR> http://www.inc.com/guides/2011/01/five-things-to-never-say-while-negotiating.html <comment><USER2> I am guilty of the "Fuck you" one. The offered terms insulted me so much I no longer wanted to do business with the person. Had I taken this article's advice, I would have stayed calm and moved toward some highly unsatisfying "middle ground" purely to "close the deal". We are faced with innumerable opportunities in our lives, and we need to filter out the best ones; for most negotiations, a successful outcome is not making a deal.

<comment><USER3> It takes a bit of experience (and some balls) to know which people to tell off - but! Never underestimate the incredible morale boost a properly crafted "fuck you" can bring to an overworked team in the heat of battle. When followed by a company happy hour, I've seen miraculous things happen.

The world is filled with quacks and assholes - as soon as your radar is tuned, you'll be able to filter the people worth keeping good relations with.

<comment><USER4> Sometimes, a situation is in (desperate) need of some honest feedback.

</comment></comment></comment><comment><USER5> Perfectly optimal financial value doesn't always equal perfectly optimal social value.

For my current job my employer's first offer was exactly the amount I'd been looking for. So I said 'yes' and didn't negotiate at all.

Maybe I could've talked them up, but I got what I was looking for and we closed the meeting in under 15 minutes with everyone happy.

If someone offers you what you want, why waste time negotiating for more?

<comment><USER6> > If someone offers you what you want, why waste time negotiating for more?

Because you can use the extra amount to provide additional security for your family, or runway for your next startup?

<comment><USER5> Possibly, but not necessarily. My target salary wasn't especially low given my skill set and salary levels where I am, and was a substantial increase over my previous salary.

There wouldn't've realistically been room to haggle much up, my new employer being aware of current market conditions. The figure I'm talking about is the one you give to recruiters when they ask how much you want - it's my starting/'ideal' figure.

For a job that matched my desired career path almost perfectly, as a greenfield project at a very early stage start-up, using exactly the technologies that I'm interested in, offering me the number I've been giving to slave-traders, I didn't feel like negotiating.

If it'd been a suit-and-tie deal with one of the many local banks and insurance companies, that might be a different story. Their paperclip budget will be orders of magnitude more than my current employer's staffing budget. If I ask for too much money it might simply cut the runway down until it's no longer viable, and then I've wasted everyone's time.

Ultimately, I think this was an ideal 'negotiation' - they offered me exactly what I wanted, and I said 'yes'. Sometimes all the negotiation tactics and stupid head games can distract that whole point is for everyone to get what they want. I don't have space in my head to deal with second-guessing myself and my (then potential) employer over it all.

<comment><USER7> I've done the same thing before, and only recently have regretted it. It's much easier and less uncomfortable to accept what they're offering, especially if it's the amount you were anticipating, but if no negotiating was required, you definitely could have gotten more. Yes, you got what you were looking for, but could you find something to do with $5000/year more? Definitely.

I find most people (at least in the US) are uncomfortable negotiating, since the only times you do it seriously are when getting a job and buying a car. So long as you don't resort to the "Fuck You", negotiating is a professional thing to do and all will be forgotten once you come to an agreement and start the job.

</comment></comment></comment></comment><comment><USER8> If I'm the seller I would prefer to throw out a number. That way you can simply pad the starting point, coming down in price is much easier than going up.

<comment><USER9> That's great until the person you're selling to immediately jumps on that. At this point, you are left wondering, "Gee, was my offer that good? Was it too low? I wonder what he was expecting to pay. Damn, I could have made 20% more had he made the first offer." Same goes the other way around. The trick is to have both people negotiating to leave feeling as if they won. In your case, you will leave feeling as if you lost.

<comment><USER10> I'm not convinced that that's a good enough reason not to do it.

If you are that much more concerned about getting the best possible price (or whatever) vs. getting a set number you actually want, then you should go into the negotiation with enough information to already know what the best possible price should be.

</comment></comment></comment><comment><USER11> I definitely think there are certain people who are born with negotiation skills, and those that are not. You can always get better of course, but some people have a natural ability (a specific form of empathy) to know what exactly the other party is thinking, feeling, and expecting, and can exploit it as much as possible. Its just as much a skill as a talent, and can be used for both good and evil.

<comment><USER12> According to what I've seen and read, there is no special talent to knowing what another side is thinking. It's just good listening, not assuming anything, and asking lots of questions. People who don't do these things will rely on guessing to understand the other side and will often be wrong.

<comment><USER13> Someone who is a good listener, doesn't assume anything, and asks lots of questions has a special talent.

</comment></comment></comment><comment><USER14> >1\. The word "between.

I largely agree with this article and even this point in particular, but I think you will often end up in a situation where stating a range can move things along quickly. If you qualify it properly, it can be a useful way to turn the tables. For example, if you are discussing rate you could say well, from the other people I've been talking to it looks like positions like this one pay between $45 and $65 an hour, depending on various factors, but of course more detail is required to pin the number down exactly and it varies for each individual, so what kind of budgetary, time and code quality constraints are on this project?

I think this is a nice way of turning the tables, it would be socially weird for them to just ignore the question and be like, "so what EXACTLY were you looking for?"

Of course, they may end up offering you at 45 to start, but you can just kind of scoff at that (if you want) and be like well this seems more complex/difficult because... there's nothing wrong with continually edging away from the question until they get frustrated.

<comment><USER15> Problem is that once you've said "between $45 and $65", you've indicated that $45 is acceptable. Otherwise, why did you say it?

I've made this mistake before, and find that people always zoom in on the lower number and think that's your actual offer. And then it's quite awkward to say "Well, I didn't really mean $45, I won't do it for that little."

I've found that offering a range works much better when I make the _lower_ number of the range quite a bit higher than what I actually want. That gives me room to come down, so that even once they've talked you down from that lower range, it's still higher than what you wanted.

<comment><USER14> it depends on how you frame it. Saying that this type of position typically pays X doesn't mean you're willing to take it.

</comment></comment></comment><comment><USER16> If someone said "fuck you" to me, I would no longer want to negotiate with them, plain and simple.

<comment><USER17> well, that is the whole point of saying it

</comment></comment><comment><USER18> Is there any way to gain practice on negotiation? As an entrepreneur, are there any resources on the internet where you can "practice"?

The only thing I can think of is playing poker or something at the casino...

<comment><USER15> Have kids or babysit? Kids are _awesome_ negotiators, because they don't care about the other party at all, they just want to get the best deal for themselves possible. They also start from a position of weakness in most negotiations, which means they need to try some wonderfully creative strategies to get what they want.

Actually, I wonder why most adults lose that ability as they get older. My guess is that sometime in the teen years, people start caring about what others think of them, and that is poison to negotiations.

<comment><USER19> This. Having a toddler has given me a lot of practice in how to negotiate. Also, a negotiation book (The Secrets of Power Negotiation) helped me with the toddler.</comment></comment></comment>


I'm Black and I do not carry hot-sauce around - <AUTHOR> https://medium.com/@mrjack/im-black-i-do-not-carry-hot-sauce-around-2b99248330b4 <comment><USER2> Reminds me of the Asian girl who got "triggered" by Colbert when he made a "joke" about asian culture as a vehicle to highlight how the name of the W. Redskins was racist and ridicule the people defending it.

<comment><USER3> Outside referencing Colbert and race issues as concepts, I don't think both are similar in any way.

The author was as incredulous as Colbert in the clip about the hot sauce assertion. Outside that, he isn't mentioned beyond the first paragraph.

The article is about the fact that labels are entirely contextual, and therefore inaccurate as assertions. It is about seeing beyond labels, not reacting to them.

Disclaimer: I wrote the article, and my friend - also mentioned in the article - posted it here. Happy to have a conversation about it. :)

</comment></comment><comment><USER4> I've never heard this... and people should stop thinking that a satirical comedy show is somehow based on facts.

To me, your race and gender aren't special. You are a person, just like everyone else in the world.

If we truly wanted equality, more people would think this way instead of allowing it to define you.

<comment><AUTHOR> If you read the whole thing, that is in fact the whole point of the article. The comedy show thing was just the trigger/segway but certainly not something to get caught up on. ;)</comment></comment>


America's Best Young Entrepreneurs: 2007 - <AUTHOR> http://finance.yahoo.com/career-work/article/103776/America

<comment><USER2> There are at least 3 Babson based businesses in there, and I know all of the founders personally. Either they forgot to mention their revenues to me, or both businessweek and yahoo are both fluffing things up.

</comment><comment><USER3> Congrats Sama and Nick!</comment>


ConBody – prison style workout raises $25,000 in hours to employ ex-cons - <AUTHOR> https://conbody.com/ <comment><USER2> This is a great concept. One thing the United States is really bad at (compared to some European countries) is emphasizing rehabilitation as a criminal justice objective. Instead, we prefer to permanently stigmatize convicted individuals, in some jurisdictions even disenfranchising them from political participation.

I am a little ashamed to admit I got a slight chuckle out of imagining the taller man in a tuxedo in a cell. I'm pretty sure the website meant to describe them as "formerly" rather than "formally" incarcerated.

</comment><comment><USER3> ConBody was the subject of two podcasts from Gimlet's Startup season: [https://gimletmedia.com/episode/happy-ending- season-3-episod...](https://gimletmedia.com/episode/happy-ending- season-3-episode-7)

</comment><comment><USER4> Saw these guys before, glad theyre doig great things.

</comment><comment><USER5> Weight loss is not related to exercise but to eating less

<comment><USER6> If you eat the same and exercise more, won't that give the same result?

<comment><USER7> It takes an hour of moderate exercise to burn around 100 calories. So, theoretically yes, but you would have to exercise a lot to see a minor change in weight.

100 calories is 1/4 of a mocha.

<comment><USER8> What? This is just plain wrong. Walking slowly burns 100 calories in an hour, if you weigh 100 lbs. Most people will use up more, just walking. Heck, if you weigh enough (somewhere just south of 300lbs), you "burn" 100 calories an hour while sleeping.

Moderate exercise (let's say, an easy jog) will burn closer to 600 calories per hour for a 170-lb, 5'9" man.

How else do you think Michael Phelps put away 8000 calories per day while training, if not by burning it via exercise?

<comment><USER7> You're right, I was mis-remembering the time period.

Keeping warm burns the vast majority of your calories (unless you're an athlete), so it's somewhat disingenuous to include them in the exercise figures.

Phelps (and other athletes) burn 8k+ calories a day by working out for 6-8 hours a day. Swimming is particularly intense, since it involves sustained effort of all your major muscle groups.

</comment></comment></comment></comment></comment><comment><USER9> Except, of course, exercise has very little effect on weight loss.

<comment><USER10> Yes, calories burned during exercise is no a major part of weight loss. However with the right training you can raise your base metabolism. Otherwise when you diet your metabolism tends to slow, which offsets your decreased eating.

<comment><USER7> I remember reading that the difference between the fastest and slowest metabolisms worked out to somewhere around 1-200 calories per day. Not a huge difference.

The Mayo Clinic's own comment on this seems to agree. [https://www.mayoclinic.org/healthy-lifestyle/weight- loss/in-...](https://www.mayoclinic.org/healthy-lifestyle/weight-loss/in- depth/metabolism/art-20046508)

<comment><USER11> 200cal/day is about 20 lbs./year, not accounting for adaptation.</comment></comment></comment></comment>


Email Marketing Lessons From An Email Marketer - <AUTHOR> http://adrianmitrache.com/email-marketing-lessons-from-an-email-marketer-dont-listen-to-the-naysayers-email-is-more-effective-today-than-ever/

<comment><AUTHOR> hi @richerlariviere.Thanks for the notice. Fixed now J.

</comment><comment><USER2> Why all those CAPS?</comment>


Lean Startup Methodology Promotes a Mindset of Marginal Incrementalism - <AUTHOR> http://dvitanov.posterous.com/whats-bugging-me-about-the-lean-startup-promo

<comment><AUTHOR> 3 key quotes

Instead of talking about coming up with big, bold, crazy, audacious goals and visions that change the world, entrepreneurs discuss the best way to improve by 10% in a carefully designed test.

Without a grand vision and a high potential payoff, it is harder to excite investors, more difficult to sign up customers, tougher to recruit employees, and so on. All of this leads to a dangerous vicious cycle, which kills a lot of startups.

It seems to me that the lean startup promotes a mindset of marginal incrementalism and has failed to acknowledge some of the dangers of such a mindset. To be clear, I firmly believe that the benefits of the lean startup model and its recent popularity far outweigh the costs. But it is worth thinking critically about the framework, because its biggest strength is also its biggest weakness. Especially since everyone seems to obsess over it just a little bit too much.</comment>


The quote of the day. - <AUTHOR>

Getting started is more important than being the smartest person in the room.<p>What's your quote of the day? <comment><USER2> "When the time is on you, start; and the pressure will be off." -Yogi Bhajan</comment>


"Death of Satoshi Nakamoto" [pdf] - <AUTHOR> https://www.sec.gov/comments/sr-batsbzx-2016-30/batsbzx201630-3.pdf <comment><USER2> Section 1 is so strange I'm at a loss for words.

"...in the style of the massive wall of water resembling a menacing prolongation of Mount Fuji as depicted in The Great Wave off Kanagawa"

the fuck?

Section 2 defends BTC from being a Ponzi scheme. The public doesn't worry it's a Ponzi scheme so much as an instance of Tulip Mania.

Section 3 says that since Bitcoin is prone to getting ripped off, it needs to be insured. The SEC would of course argue that since it's prone to getting ripped off, it SHOULDN'T be insured.

Section 4 is just horse shit no one at the SEC is going to understand, let alone read. FUD.

Section 5 is a basic conclusion.

<comment><USER3> Sounds a lot like gold, then, $43/gram for elemental nothing. OK, it's something, but not nearly justifing its price relative to other metals, except the shared delusion that underlies all currency.

<comment><USER2> You're right. They're both speculative in nature. I'd argue against gold as an investment for that reason. Think I'm crazy? Get educated.

Compare gold to the DJIA since 1900.

[http://www.macrotrends.net/1333/historical-gold- prices-100-y...](http://www.macrotrends.net/1333/historical-gold- prices-100-year-chart)

[http://www.macrotrends.net/1319/dow-jones-100-year- historica...](http://www.macrotrends.net/1319/dow-jones-100-year-historical- chart)

And don't go comparing Bitcoin to gold in any event. It doesn't have the history behind it, and there are too many instances of investment fads that die hard.

<comment><USER4> Incidentally, the value that grew, and that you would have extracted in dividends, is not reflected in the share price. Also, the DJIA is weighted by the share price rather than the market capitalization of each component. (Really, it is that absurd as an index!)

Anyway I agree with your point that while the economy has surged over the past 116 years, gold has been tradeable for an ever-decreasing share of economic output or share of the available real assets, and has been far outpaced by how a conservative portfolio of equities would have performed over the same period.

</comment></comment></comment></comment><comment><USER5> Anybody wondered whether the real Satoshi actually had a hard drive crash or something like that, and actually lost access to his wallet and PGP key?

Then making it impossible for him to claim his bitcoins or prove that he's the real Satoshi, thus will never claim to be Satoshi?

Sometimes, the most simple yet stupid explanation can be real

<comment><USER6> Didn't he post a signed message denying that he was Dorian Nakamoto (proving he still has access to his keys), Or was that one a fake?

<comment><USER7> Pretty sure satoshi never signed anything.

</comment></comment></comment><comment><USER8> Note that all 5 of the letters written to the SEC in response to the proposal can be found here [0]

[0]: [https://www.sec.gov/comments/sr- batsbzx-2016-30/batsbzx20163...](https://www.sec.gov/comments/sr- batsbzx-2016-30/batsbzx201630.shtml)

<comment><USER9> The one to read is from Jorge Stolfi, professor of computer science and knowledgeable cryptocurrency critic:

[https://www.sec.gov/comments/sr- batsbzx-2016-30/batsbzx20163...](https://www.sec.gov/comments/sr- batsbzx-2016-30/batsbzx201630-2.htm)

<comment><USER10> The individual spent years smearing cryptocurrency, insisting it had no future, was a ponzi, etc, because he was/is ideologically opposed to its undermining of authoritarian government control. He has publicly said he thinks a "totally free" society would be a "nightmare". It was his ideological disposition to authoritarianism that motivated his anti-Bitcoin writings. He attacked Bitcoin for the purpose of making a failure outcome for it more likely. His letter to the SEC is a perfect example of that.

<comment><USER11> This is the SEC, their entire reason for existing is to regulate transactions between USD and the rest of the world. If you want to transact on the blockchain directly, you are absolutely free to do so, but if you want a situation where law enforcement backs you up when something goes wrong, the US govt has been pretty clear that they are not interested in recognizing transactions as legally enforcable if they can't know where the money's coming from or where it's going for about 15 years now.

</comment></comment></comment></comment><comment><USER12> Centralized Bitcoin security effectively amounts to preying that you never get hacked because if you do -- there is still no way to limit what can be done with your private keys (and this is true regardless of whether the key is stored inside a hardware module or not.) The document here correctly notes that their security model amounts to little more than security through obscurity and further points out that their multi-sig signing is still at risk of collusion, mishandling of keys, blackmail, theft, and any number of unforeseen things.

With no concrete way to prevent a hack and no insurance if one were to happen -- I can only see this ending badly -- and quite frankly, given how little thought they've put into security I'm quite alarmed. Effectively, everything they've put forward to protect these Bitcoins has been known to be inadequate since 2012. We've seen that multi-sig was introduced and it still didn't help. We've also seen that multi-sig and hardware modules haven't been enough to prevent every inside job, hack, or scam.

In my view the only concrete way to handle Bitcoins as an exchange is to extend Bitcoin to allow coins to be locked up into a special clearing phase. You would have it so that coins could be spent after N confirmations but before then they could be transfered to a fail-safe address. This isn't my idea but its a simplification of what Emin Gün Sirer proposed with his Bitcoin vault idea (though I did think of something similar in the past.)

Because honestly, you can never, ever rely on fully preventing these hacks as the basis for a solid security model. Hacks. Are. Going. To. Happen. Regardless of how many walls you decide to build. Thus, the only effective security model for doing high-risk crypto-finance is to do something that offers us a plan B when they do. And that's what Bitcoin vaults are for -- they allow us to cancel / revoke coins during a clearing phase without breaking Bitcoins irrevocable nature (since you only treat coins as final after +6~ confirmations after the clearing phase.)

The simple truth of the matter is -- Bitcoin in its current form is inadequate for services like centralized exchanges (as evidence by numerous hacks) and the only reason why people continue to do business under this scenario is for opportunistic profit. If any of these companies really gave a shit about security there is absolutely no way they would continue to run a financial service with NO WAY to cancel fraudulent transactions. I consider this a pretty basic corner-stone of modern banking and as long as it can't be done in Bitcoin, EVERY wallet, Bitcoin exchange, and store that's handling Bitcoins is just waiting to be fucked.

<comment> vertex-four > We've seen that multi-sig was introduced and it still didn't help.

Only because nobody actually uses it, I think? Or have I missed out on something in the Bitcoin community since I left it?

<comment><USER13> Well, Bitfinex used it, but in a very stupid way.

</comment></comment></comment><comment><USER14> How much coke was used to write this? O_o

<comment><USER9> I read the Bitcoin subs on Reddit and occasionally contemplate a Buzzfeed quiz: "Can you match the Reddit comment to the darknet research chemical it was written on?"

This is probably my favourite. Yeah, people who just want to buy drugs are definitely going to follow eleven screens of directions in detail: [https://np.reddit.com/r/AlphaBay/comments/3t9e79/a_full_mult...](https://np.reddit.com/r/AlphaBay/comments/3t9e79/a_full_multisignature_tutorial_for_alphabay/)</comment></comment>


Show HN: Another AsciiMath - <AUTHOR> http://runarberg.github.io/ascii2mathml/

<comment><USER2> It currently fails to render any expression after \\(int) on that page under firefox 31.3.0. The web developer console show a "Symbol is not defined" error on ascii2mathml.js:1003.

<comment><AUTHOR> Thanks for the tip, It happened when I tried it on Windows, I think it was the babelify compilation. It should be fixed by now

<comment><USER2> Yep, it's fixed.</comment></comment></comment>


Netflix is raising the price of its main plan to $9.99 per month - <AUTHOR> http://www.theverge.com/2015/10/8/9481839/netflix-price-increase-announced <comment><USER2> As long as there are never any commercials, I'll be a customer forever.</comment>


Al Franken Fights Comcast/NBC Merger - <AUTHOR> http://www.thenation.com/blog/156605/al-franken-calls-anti-trust-cops-comcast

<comment><USER2> Nut: by being careless (or mendacious) with internal announcements, NBC and Comcast seek to make their merger a _fait accompli_ by intertwining their business relationships in ways that would be untenable absent an actual merger; NBC is in effect granting Comcast _beneficial ownership_ of its operations, independent of regulatory approval.

Al Franken is an awesome senator.</comment>


"Because I'm a bastard, and proud of it" (2000) - <AUTHOR> https://lwn.net/2000/0914/a/lt-debugger.php3 <comment><USER2> It's possible that it might be appropriate for the leader of the Linux kernel but for other programmers and leaders - don't model your own behaviour after this. You're not Linus. You're not Steve Jobs either - also known for his abrasive style.

Firm but fair kindness, diplomacy and a lead-by-example approach are the keys to leading a technical development effort over the long term. Do make tough decisions, do hold people to account, do work hard, do expect the best from other people, do get rid of problem team members and do address under- performers, but all that can still be done with patience, kindness and diplomacy.

I made the mistake in my early career years of modelling my leadership style on Bill Gates also known for the same abrasive, no holds barred style. It doesn't work.

<comment><USER3> People go out of their way to condemn his style. The reason why is because it is the complete antithesis of PC culture. It wouldn't be an oversimplification to call his leadership style a "Dad" style: "it's not about you, it's about the system" versus the "Mom" style that makes nurturing paramount "if we make everyone feel good we can all win."

Both work. No _seriously_ both work. It's just politically incorrect to run Dad-style projects or companies now.

<comment> vezzy-fnord I like how everyone here is discussing the rhetorical style and ignoring the fact that his rejection of kernel debuggers is batshit insane and idiotic, which is the main topic.

<comment><USER4> He's acting as a teacher in this email (like in many situations) and trying to explain that, in a deterministic and transparent system, the usage (and necessity) of a debugger is a clear signal of the inadequacy of the design. If you have to use a debugger, you should go back to the drawing board! You've made a fundamental design flaw in your abstractions and following a poor instruction pointer will not help you find that flaw.

It's kind of ironic to see that, nowadays, with the increased necessity for concurrent and multi-agent systems, a debugger becomes even more obsolete and cumbersome, since you're often fighting a race-condition or some kind of resource starvation.

Personally, I see his rhetoric in this email as highly intelligent community leadership in which Linus is arguing for better systems design (inside, or outside of the Linux kernel).

<comment> vezzy-fnord And yet, hardened Linux developers like Al Viro will rant all about the awful systems design inside and outside of the Linux kernel constantly (cgroups and udev are frequent targets of his). We can thus extrapolate that a lack of a kernel debugger has not reduced leaky abstractions in any measurable way. At best we can only speculate in counterfactuals.

Solaris has a kernel debugger and a more concise architecture.

<comment><USER4> Linus argument is that use of debuggers may contribute to bad design, but he does not prohibit their use. As Linus was not the core contributor to cgroups (Google was) and kernel debugging certainly was available when cgroups was first implemented, I would say the opposite might actually be true.

Personally, I think the UNIX OS design is a poor fit for the requirements of Docker et al. The problems with cgroups should be a signal that it breaks the fundamental design assumptions of Linux (doing fundamental resource separation and multi-ring security in a monolithic kernel).

<comment> vezzy-fnord Actually, I agree with most of this. However, Linus letting in the cgroups branch instead of vetoing it proves the opposite, unless the presence of some kernel debugging (nothing close to kmdb, I'd think) depleted Linus' skills somehow.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> Considering the date (6 Sep 2000) this should have the [2000] tag for context.

<comment><USER6> Yes, this. The culture of software development was different back then. My opinion of this little snippet changed a lot when I saw the date.

</comment></comment><comment><USER7> One of the insidious things about debuggers is that they let you be lazy when reasoning about the code you've written. When you _don 't_ have a debugger, you need to be more careful about what you do and really understand the complexity of your code, because a misstep when writing the code can take hours to remedy. With a bunch of safety nets at hand, you feel like you can just blow out some code and work it out via the compiler and debugger later.

There's no doubt that better tools have let us be more productive, but in the process we understand the code we write less deeply than we otherwise would, because we are required to spend less time contemplating it.

<comment><USER8> I've heard this argument a lot, but I've never really bought it. It implies most bugs can be avoided by being super careful. Most bugs aren't a result of carelessness, and if you spend 20 hours staring at each line of code you write, I guarantee you'll still write software with bugs. The only thing the debugger changes is how fast you find it.

And I say this working in an area where debuggers either kind of suck or are limited (graphics programming), so I have plenty of experience working on complex systems with no debugger. Believe me, I do this exact painstaking thinking when I write a shader (no break points or even print statements), and yet the shader code I write is about the same quality as any other code I write, it just takes longer.

<comment><USER9> At one point I worked on a large, complex, and legacy code base averaging less than 1 bug per year without a debugger. Granted, now days you can take the debugger from my cold dead hands, but I also don't really understand the code nearly as well.

</comment></comment></comment><comment><USER10> Lol if everyone did open source like Linus, we'd never get any new contributors. I have no idea how this even works in their context either

<comment><USER11> > Lol if everyone did open source like Linus

We'd have less, but much better software.

<comment> vezzy-fnord I didn't know the better the software, the more primitive the development tools.

<comment><USER11> A debugger is a thinking crutch, yes, it's easier and more productive to just see what it's doing; but to fix something without a debugger, you have to understand it better. That's his point, and he's right. Quite simply, the easier you make something, the more people who are less intelligent can do it and the result is more but less quality software. Examples abound, but every attempt to make something easier results is people producing more shitty stuff with pointy clicky interfaces.

<comment> vezzy-fnord Again, this would require us to reject most advances in software after 1968 if we are to apply the logic consistently. Go back to single-tasking, cooperatively multithreaded systems with static file allocation tables and no access control. Actually even the Multics of 1968 was far more advanced than that.

Fact is, without debuggers, most highly subtle war story bugs would go unsolved. Logic analyzers, tracers and ICEs are debuggers, too. "Debugger" doesn't just mean gdb. Not that there's anything wrong with it.

<comment><USER11> As I said, we'd have "less" but better software; that doesn't preclude we'd not have some things we have today nor does it imply better software can't be built with debuggers; it only means we'd have fewer less capable developers making software and thus the overall quality of what we would have would be higher than the overall quality of what we have today given how much shit code exists.

There's a ton of programmers who can't code without a debugger because they don't really understand what's going on any other way than line by line. Those people would be filtered out. Debugging doesn't require a debugger, it's just the easy way to do it.

<comment> vezzy-fnord We'd certainly have less. There would be no reason to presuppose that it would be better: [https://en.wikipedia.org/wiki/IEFBR14](https://en.wikipedia.org/wiki/IEFBR14)

The key to better software is learning from the research literature, not thinking that you're improving because you write nothing but ASM macros in ed(1) in a TTY emulating a VT100 from the 70s.

<comment><USER11> > There would be no reason to presuppose that it would be better:

Sure there, it's been said multiple times; those still writing software would be the smartest around. That alone is reason enough to think the overall quality would be higher; if you don't believe that, then imho you don't know what overall (average) means. You're not listening, you're focusing on outliers and I'm taking about the mean. It's a valid logical inference that if you weed out less intelligent developers by making developing harder, that the average quality goes up; not the absolute quality, the average, mostly because you'd be weeding out tons of bad developers who write tons of bad software. This really isn't debatable, it's logic. Weeding out the bad raises the average quality, there's nothing to argue here, that's just a fact.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> This seems like one of those false "tyranny of the OR" logic bombs: we can have 1) high quality software OR 2) a kernel debugger.

It seems to me that these two things are not actually logically connected and we can have both: underthought code is a unrelated problem to a debugger.

Its like saying you can't build world class woodwork if you have a router. Instead you must only have awls so you have plenty of time to think about it.

It strikes me that simply means there will be less software in the world at much higher dev cost and that isn't a good thing necessarily.

<comment><USER13> A better woodworking analogy (or parody) would be:

Gentlemen, I am well aware that many woodworking shops have a FooBar2000 scrap wood burner. This shop will not. I am not saying woodburners are always bad, or the FooBar2000 is individually bad. Or pretending that scrap never happens. Why I enjoy a warm toasty winter night in front of a fire like the next lad. However having a scrap wood burner implies we create scrap that needs burning. And I will not tolerate that in my shop, nor encourage other shop owners to recklessly generate scrap.

Gentlemen, here we make keels of ships. The entire ship relies on this keel never breaking, creaking, cracking, groaning. Upon those ships... Lives depend. Businesses depend. Governments depend. And I will not tolerate scrap as a boat keel and all the destruction failure can cause. Therefore given that we can't afford to create scrap, we will work slowly and methodically and intelligently so as to not create scrap, and thus have nothing to burn in the FooBar2000 scrap wood burner, thus we do not need one. In the unlikely event that I or someone else make a keel that needed some scrap to be disposed of, well, if it tests good, thats OK. But I'd never tell a dude setting up his own shop that if he's going to build boat keels he badly needs a FooBar 2000 scrap wood burner because he'll probably screw up a lot, because if he's screwing up a lot, I don't want the world depending on his boat keels and I won't accept that caliber of workmanship in my shops nor stamp my name on it.

Gentlemen, you may not like my opinion about your deeply held beliefs about woodworking. I sympathize. I don't agree with everyone else either. Thus I'll give you a psychological outlet by talking like a pirate for a bit now, and making light of your mother's parentage and something about elderberries. Thus if you're insulted by my technical evaluation of your woodworking skills, you can tell everyone else you're actually insulted by my talking like a pirate. Then everyone goes home happy, and the world gets safe strong indestructible boat keels.

<comment><AUTHOR> LOL

</comment></comment></comment><comment><AUTHOR> I love Linus point of view here because although he is using words which can have negative connotation to describe his position here ("I am a bastard", "I do not care", etc), he is actually looking to steer the community towards the greater good.

<comment><USER14> I'm not a kernel developer but his rant strikes me as very platonic, and not in a good way. Platonic in the sense that real knowledge requires turning away from the cosmos and "deeply introspecting" to obtain a "gnosis" of sorts. Plato, for all his contributions, was at heart a religious ideologue closely aligned with the corruption of the Pythagoreans that came before him. Reality was "the cave" and the gnosis was leaving the cave.

Full disclosure: I don't use debuggers myself, partly because it isn't practical (I spend most of my time in Go these days, rather unwillingly I might add, and Clojure. Both languages aren't terribly friendly to step- debugging.) but when I need one I really, _really_ need one.

<comment><USER15> > Plato [..] was at heart a religious ideologue

Which religion would that be?

<comment><USER14> I don't know it by name but this quote reveals it pretty soundly: _" We shall approach astronomy as we do geometry, by way of problems, and ignore what is in the sky."_ (Plato's _Republic_ ) This kind of thinking is likely the same sort of thinking that got Kepler off the track trying to force the Pythagorean solids into planetary orbits in his _Harmonices Mundi._

(maybe call it "Pseudoscientism" a belief that merely scientific-looking commonalities are in fact universalities)

<comment><USER15> I am unclear how "We shall [..] ignore what is in the sky" translates to a religious ideology. It sounds to me like Plato is arguing against the Greek tradition of trying to explain a natural phenomenon by tying its existence to a god, and arguing for (what we now call) scientific rigour.

Can you clarify what you mean with "this kind of thinking"?

<comment><USER14> That tradition was not at issue with Plato and his ilk.

If you can agree that religion is merely _institutionalized_ ideology, I think by contrast you could look to Aristotle, whose lifespan intersected with Plato's, who took the opposing view: Describing what he has observed about bees, he writes "the facts have not been sufficiently ascertained, then we must trust perception rather than theories."

The Greeks formally established the mechanics of inductive reasoning as the formulation of truths from _empirical evidence._ Plato, for all his gifts, stands firmly in contrast to this. Ideology is fundamentally about turning away from evidence and making the world fit into your polemic.

<comment><USER15> Actually, their lives intersected, not just their lifespans: Aristotle studied under Plato.

 _If you can agree that religion is merely institutionalized ideology_

I do not fully agree, as not all ideology would qualify as religion, even if institutionalized. For example, capitalism is not a religion yet it is both an ideology and thoroughly institutionalized. I would agree that religion is a _form_ of institutionalized ideology, but not _merely_.

But I (think I) understand what you're saying. You're saying that because Plato considered fundamental truths unknowable, he made his vision of the world subject to dogma concerning the interplay between the unknowable and our reality. That is certainly true, but I'm unsure how much prescriptive dogma is in Plato's works.

Regardless how his theories have been adapted by Christianity later, for as far as I know Plato himself:

\- never declared empiricism as futile,

\- did not give his "Shapes" any agency in our reality,

\- did not create his own narrative of good vs evil.

In fact, Plato was quite direct in his approach to morality: people should do "good", because doing good things would bring happiness, and doing bad things would create unhappiness. That is a quite utilitarian approach to civilization, and I would not call this a religious stance. Plato did consider the soul to be immortal, but he also said that learning would begin anew in the next life, so I don't think he subscribed to any form of afterlife judgement.

<comment><USER14> I understand "the cave" in Plato's _Republic_ to be the world as we understand it through the senses. (AKA "the natural world"). Leaving the cave is going into a deeper "gnosis" that, perhaps, resembles pure mathematics, or something else, he doesn't make clear, but it was certainly mystical and thereby ultimately "occult" (or fundamentally "hidden").

Consider this tradition survives even in Newton, who was an avid _alchemist,_ wrt The Philosopher's Stone and obsessed with the numerology of the dimensions of Solomons Temple even as he worked on his _Principia._

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> I like his vulgar style, but that's pretty much irrelevant here. How can one think debugger is a bad thing?

I feel kinda incompetent as I am missing something here, does the inclusion of a debugger, even when not in use hamper performance or anything in particular in anyway?

Is it the same type of debugger, where one could step through code and inspect objects or is this something completely different when it's related to the kernel?

<comment><AUTHOR> good questions, however, the answers are all in his email :)

<comment><USER16> I guess I was shooting for more technical answers related to e.g security, performance or etc.

</comment></comment></comment><comment><USER17> About the time this post was written, I ported the Linux kernel and basic userland to what was then a brand new instruction set and system architecture (the Cray X1 and its successor). It was much easier to do this in a simulator environment with breakpoints and tracing than it would have been on real hardware, had I even had any. Is that a debugger? Fine. I think Torvalds is off base here, trying to blame crutches for somehow causing lameness.

</comment><comment><USER8> This is such a dumb thing to be proud of. Would you want to hire a contractor who says "I'm not going to use a hammer because this rock I have works just fine for driving nails! Sure if you use a rock maybe building a house is slower and you smash your fingers a lot, but I wouldn't want to work with builders that take the easy way out!"

<comment><USER18> A better, though still poor analogy is to say "the house keeps falling down when u build it, so I'll use an ultrasound device to inspect every nail as its pounded in to find the one that fails."

Linus, in his own way, is pointing out that an ultrasound will not identify that your house is missing a wall.

</comment></comment><comment><USER19> This rant overlooks the use case of stepping through new code in a debugger regardless of whether it actually works or crashes. Inspecting intermediate values.. making sure execution follows the right paths etc. Debuggers aren't just for bugs.

</comment><comment><USER20> I wonder if Linus has changed his opinion, 15 years later.

<comment><USER21> I hope not!

</comment></comment><comment><USER22> If you want freedom and manners, don't follow Linus.

<comment><USER16> Maybe I don't want your definition of manners, the same way I don't want Westboro/ISIS definition of religion. Don't read too much into vulgarity.

Linux is vulgar, but that's pretty much it. Doesn't mean he's a bad person. His opinion can be bad without resorting to bashing his personality style.

<comment><USER22> Definitions are only useful when agreed upon. Being vulgar and unpleasant towards people means Linus(with an s) has bad manners. You can choose to tolerate that for some reason, but you cannot expect it of other people. Instead, it is expected that people moderate their own behavior.

P.S. Ask yourself why you have double standards with regards to "bashing".

<comment><USER16> What double standards? I think you're reading too much into the word "bashing" \- proving my fucking point.

Exceptional.

<comment><USER22> I'll be curteous and elaborate: The double standard is allowing Torvalds to bash, but disallowing "bashing" his bashing.

I refrained from guessing the cause of this before, but I believe it is you being a fan of Torvalds' and/or being sympathetic to his unwilingness to moderate own behavior.

Please address my point about definitions or explicitly introduce a new point if you really want to argue the other thing further.

<comment><USER16> Because it's an easy way to get off topic. You're mixing his personality style with the content. I'm saying ignore anyone's personality style and focus on content.

Be the change you want to see. Going off topic to bash his personality style doesn't really add anything to the discussion of Kernel debuggers.

You're right with me being sympathetic, I don't hide that but it's not relevant to my point. Thanks for being curteous.

The double standard is how we attack Torvalds for the same thing radical feminists say on a daily basis. You ever interacted with Shanley?

I don't care about their personality style. They're both abrasive, I just think Torvalds has actual value and skill sets that I could only dream of. The other one... Not so much.

<comment><USER22> That's a different point. What you were doing was defending the personality flaw.

Going "OT" was due to the title. I thought it was that post where Torvalds obstinately defends his rudeness. Basically the man's lack of style almost prevented his point from being communicated. So even digging for points which I did and do* only went so far.

*Mind you, I've found sifting through noise to have diminishing returns. People often use cuss words instead of arguments. Strong points do not need strong language.

</comment></comment></comment></comment></comment></comment></comment><comment> vezzy-fnord What the fuck? Everybody here is praising Linus for some of the most perverse and regressive logic imaginable because they enjoy his supposed bravado.

What nonsense. You can apply his exact same logic about kernel debuggers to reject all advances in software made after 1968. If only all programmers used nothing but DOS and ASM on 4-bit CPUs, we would finally be liberated. Finally let "Darwinism in software development" take its course.

(Of course, I'm sure most people commenting here have never hacked on anything more sophisticated than a V7 Unix derivative.)

<comment><USER23> Linus's argument here isn't just wrong, it's _bloody obviously_ wrong. And not for the first time. Does anyone remember the Git generation number debacle? Or the business about wanting fixed hardware interfaces to video cards?

Linus is an uncommonly gifted low-level x86 hacker. But his technical judgment is mediocre. I just don't get why he's held in such esteem.

</comment></comment><comment><USER24> >> And quite frankly, I don't care. I don't think kernel development should be "easy".

Aaah, the myth of the Protestant Work Ethic.

<comment><USER13> Possibly the part you misread, or Linus being a Finn, he might have poorly expressed in English, was the "start being careful early rather than late". The whole essay hinges on that.

Look we're all devs here, and everyone who's written more than fizzbuzz has run into judgment issues about speed. A military campaign analogy fits really well. You can advance slowly, defensively, without possibility of failure or accident, with full knowledge of every little step you take, every footfall of every process is understood and safe. In which case your code will never crash and people can run nuclear reactors with it and coincidentally a debugger would be a complete waste of time because it'll never be needed. Or you can ambitiously run ahead in a reckless offensive charge, probably right into a swamp or ambush or minefield, and then you'll need a debugger to pick and prod your way out of a self caused disaster. That obviously requires a debugger. It also results in code that possibly thru sheer luck didn't crash into the debugger being shipped, and then killing people when the nuclear reactor controller crashes or whatever. There are whole swaths of logical errors and race conditions and spec problems that debuggers won't help with but sitting there and thinking hard will avoid, and nobody wants to find all those mistakes the hard way in shipped deployed code, and then Linus has to find what should have been an obvious bug had the dev slowed down and thought a bit first, etc.

If you needed a debugger because you were too lazy to check a memory reference before you freed it or whatever, that's probably the quality level of code that also "forgot" to check for trivial buffer overflows or null termination of strings or just basic foolishness. He just doesn't want it.

Note that this is ultra low level kernel code that entire systems are based on. You have to be more paranoid and slow and methodical than everyone else with this kind of code. Probably the completely wrong attitude for someone who just installs wordpress, etc.

Note that he expressly denies the work ethic... if you can send him production quality code despite having used a debugger and despite having intentionally avoided thinking hard, if its none the less good he explicitly says he will take it... he (and I) just think it very unlikely that situation would occur. If he demanded the work ethic he'd be insisting on testimony that you meditated on that function for a minimum of two minutes per line or something equally effort based rather than achievement based.

<comment><USER24> It is impossible to plan in the way you're suggesting. You cannot ever have a perfect view of the road ahead of you. What you're suggesting is that having a policy of taking a look around you to see if your mental model actually matches reality is being "lazy".

</comment></comment></comment><comment><USER25> What I don't get is why he chose to live in Portland. People here are... not really like that at all. It must drive him nuts.

<comment><USER26> Probably because he isn't really like that.</comment></comment>


Can we become better programmers through studying code? - <AUTHOR>

To help myself and others understand better the qualities of good code and deficiencies of a bad one, I have started a new blog called Wonders of Code. The question is, is this something that can trully help us improve our understanding and thus skills?
The idea is to take a piece of code, point out some noteworthy improvement opportunities - preferably in relation to the general principles of clean code, such as DRY, SRP, readability etc. - and rewrite it in a (presumbely) better way and explain the new qualities.
You might want to check out some of the 3+1 code studies already published at WoC to see what I mean: http://wondersofcode.wordpress.com/.
I have two questions:
1) Is this something worth doing, something that can really help us - and especially the juniors among us - become better programmers faster? 2) Do you have any tips and ideas for how to make it better and more effective?
Thank you! <comment><USER3> Looking at other people's code (and I mean more experienced programmers of course) always helped me to learn best-practices, patterns, etc. Also if you does not understand something (why is it there? why is it written that way?) it is very good to ask the guy who wrote it down about his purpose - <USER2> both of you can learn from these situations.

Also this kind of "learning" is very useful in the future - you can understand other people's code faster or recognize problems by looking at the code.

I think your idea is worth doing and I would encourage you to keep working on it; I am sure I will recommend it to my friends too.

</comment><comment><USER4> I would always encourage any form of education, coding included.

The way I learned how to code was to play with pre-written pieces of code myself.

1\. I would say to myself... I want to see if I can write a loop to print out a message.

2\. Then I would go and google for the code.

3\. Copy and paste it into my own file, and change it to do what I want.

I'm willing to bet that most of the hackers on HN learned how to code this way. That's why we call ourselves hackers right?

I guess this is similar to your approach but in a more controlled environment?

<comment><AUTHOR> You are right, we all do this. What is missing from this is feedback: how do I know if my design is good enough or what are its pros & cons? (Since often there is no absolute "good".) That is something I am trying to provide: showing two implementations of the same thing, discussing the advantages and disadvantages of each in relation to general coding and design principles. Thus it helps to learn not only how to do a particular task and how somebody else has solved it but also to think critically about design and the ability to relate to design principles. At least that is what I hope :)

<comment><USER4> That's so true, we hackers operate in a world where many different answers can be correct. However we can generally gauge if a solution is better or worse.

I guess you would need to come up with some sort of metric to measure how much 'better' one solution is over another. A crude example which I've seen is the number of lines. To me that just shows how elegant the code is, but as you know it does not necessarily mean it will execute faster.

</comment></comment></comment><comment><USER5> hi Jakub, definitely worth doing. In terms of making your blog more efficient, how about putting the code examples side by side (looking at your Python/MongoDB API snippets)? I know it's visually probably a bit harder but I guess it makes pros and cons etc more obvious. Just my two cents...

<comment><AUTHOR> Thank you, bjoerns! That is actually a good suggestion and modern screens are wide enough for that. I am afraid that Wordpress won't allow me to do that but will explore it.

</comment></comment><comment><USER6> Of course. I do this all the time. Even a passive perusal of good code makes you better.

</comment><comment><USER7> Yes, I think that this is definitely something worth doing.</comment>


AWS Launches Fargate Spot Instances - <AUTHOR> https://aws.amazon.com/blogs/aws/aws-fargate-spot-now-generally-available/ <comment><USER2> This closes the gap on running ECS on spot instances. It's still a little more expensive on Fargate (9 cents/hour for 8 cpus vs 8 cents/hour for a c5.2xlarge), but it's close.</comment>