Free "Deep Learning" Textbook by Goodfellow and Bengio Now Finished - <AUTHOR> https://www.facebook.com/ia3n.goodfellow/posts/10102223910143043 <comment><USER2> I spent a few weeks closely reading this book and I have to disagree with the majority here. I didn't like the book at all. And I am an advanced math geek.

My main issue is that the book tells you all about the different parameter tweaks, but passes little concrete wisdom to the reader. It doesn't distinguish between modeling assumptions, and it replaces very simple explanations of concepts with complicated paragraphs that I can't make sense of.

I think it boils down to something that I have been feeling and hearing a lot in the past few years: the statistical jargon is so overwhelming that the authors can't explain things clearly. I can point to many examples in this book that I feel are unnecessary stumbling blocks, but the fact is that I'll spend an hour or two discussing parts of this book with a room full of smart machine learning researchers, and at the end we'll all agree we don't understand the material better than we did at the start.

On the other hand, I'll read _research papers_ that don't force the statistical perspective down the reader's throat (e.g. [http://arxiv.org/abs/1602.04485v1](http://arxiv.org/abs/1602.04485v1)) and find them very easy to understand by comparison.

It might be a cultural difference, but I've heard this complaint enough from experts who straddle both sides of the computational/statistical machine learning divide that I don't think it's just me.

<comment><USER3> >> it replaces very simple explanations of concepts with complicated paragraphs that I can't make sense of

It is good to see critical views but it will be even better if you could give concrete examples for statements like the above. Also, what other books do you recommend?

<comment><USER2> > Also, what other books do you recommend?

This has been my frustration. I've been wanting to grok deep learning, but haven't found any source that can explain it in a way that doesn't overcomplicate simple things (which I can only tell it's doing when I already understand the topic). I also don't have the time or incentive to really dig in and do the math myself from scratch, since so much of it is wide open research directions.

I've also had this experience with much much simpler areas of statistics and statistical ML (cf. Markov chain monte carlo), so this is a sort of recurring theme for me. Considering how simple MCMC is now that I do understand it, it's difficult to dispel the nagging feeling that all the statistical ML literature is (likely unintentionally) obfuscated.

I could give concrete examples of excerpts and entire sections of the book that don't make sense to me, but I don't think it's all that productive because a lot of it boils down to organizational disagreements, cultural assumptions behind the math, and differences in priorities. Individually it seems like nitpicking, but they add up quickly to general muddled confusion. This is especially true when, for example, almost always the right answer to the question "Why does this particular technique work?" is, "We have no clue, but here is some anecdotal evidence and half-substantiated oversimplified theories." Instead these answers are passed as well-known fact.

<comment><USER4> The new O'Reilly book "Fundamentals of Deep Learning" by Nikhil Buduma (available on Safari for a while now) is good at the fundamentals- very clearly explained, nice diagrams. It it relatively close to the path of my Neural Networks classes (although those were 20 years ago).

It necessarily shorter on detail in terms of the tricks of implementation that have radically improved performance of these techniques over the past 5 years, and might serve as a good read before diving into this via Goodfellow, Bengio, and Courville.

<comment><USER2> I haven't seen this one before. Looks like it's still in development.

<comment><USER4> Yes, only the first three chapters are released.

</comment></comment></comment></comment></comment></comment><comment><USER5> First impressions:

1\. It also covers "classical" artificial neural networks, i.e., things like backprop from before Hinton and others made breakthroughs for deep learning. This means you can start with this book even if you are new to ANNs. The later sections cover "real deep learning".

2\. The language is great for beginners and users. You don't have to be an advanced math geek to follow everything. They seem to cover a fair amount of ground too, so its not dumbed down either.

3\. I guess it covers most of the underlying theory and practical technicques but is implementation neutral. You should probably pick up a tutorial for your favorite implementation like Theano, TensorFlow, etc.

All in all, I like it a lot.

<comment><USER6> The old backprop from the 80's / 90's is still in use and the primary way to train deep nets. We tend to call it SGD (on a composition of differentiable functions) nowadays but it's the same algorithm.

</comment></comment><comment><USER7> This looks interesting, can't wait to dig into it.

Another great great free online book on this topic: [http://neuralnetworksanddeeplearning.com/](http://neuralnetworksanddeeplearning.com/)

<comment><USER8> I'm working my way through that at the moment and so far it's pitched rather well (at least for my prior experience), describing things simply and concisely but still with enough background that it's easy enough to see where everything fits.

</comment></comment><comment><USER9> url is [http://www.deeplearningbook.org/](http://www.deeplearningbook.org/)

<comment><USER10> PDF version is: [http://www.deeplearningbook.org/front_matter.pdf](http://www.deeplearningbook.org/front_matter.pdf)

<comment><USER11> Unfortunately, that's just the ToC and the bibliography. It looks like their "contract with MIT Press forbids distribution of too easily copied electronic formats of the book."

<comment><USER12> Does that mean there's a fifteen-step asciidoc/gitbook/LaTeX build that is freely distributed? Because I'm willing to spend a few minutes building a pdf for the sake of getting good content.

<comment><USER13> It's pretty easy to just run "Save as PDF" on each chapter individually, and then stitch them together with:

        pdftk $(ls -tr *.pdf) cat output DeepLearningBook.pdf

Out of respect for the authors' contract, I won't post the resulting file here, but anyone can reproduce it with about 5 minutes of work.

<comment><USER14> In case anyone else has trouble with the "Save as PDF" part, I did it successfully using Firefox on OSX: from the print menu, choose "show details" and change all headers/footers to "\--blank--" so there's no ugly URLs/dates in the corners, then press PDF -> "Save as PDF". (In Chrome, on the other hand, saving/printing as PDF chopped each page into quarters for me...) At least in the one chapter I've saved so far, all the math notation renders just like in the HTML version.

</comment></comment></comment></comment></comment></comment><comment> liviu- For anyone interested, Goodfellow is answering questions about the book at: [https://www.reddit.com/r/MachineLearning/comments/4domnk/the...](https://www.reddit.com/r/MachineLearning/comments/4domnk/the_deep_learning_textbook_is_now_complete/)

</comment><comment><USER15> I don't claim to have a solution, but these models of book monetisation really seem doomed. What are the chances that I will buy this book just because they made it artificially harder for me to download it? Probably a net negative.

</comment><comment><USER16> Thanks for this. I'm currently re-learning statics/probabilities and linear algebra so your book will be useful in a few months down the line ;)

<comment><USER17> Would you mind sharing any of the resources you are using for re-learning? I've been meaning to do the same.

<comment><USER18> Just saying, but if you want to hop onto the ML bandwagon (for instance), then don't bother going over linear algebra or probabilities first, and instead just learn what you need as you go. For example, the first sections of this book are already devoted to getting you on the right track, and it's somewhat standard to do so. And besides, there's no need in learning what are rotation matrices if you won't use them.

<comment><USER19> As a counterpoint, if parent is interested in taking ML further, a solid foundation in linear algebra will be huge when more advanced signal processing applications come up.

</comment></comment></comment></comment><comment><USER20> This looks great, any other recommendations for enjoyable reads on ml/stat learning?

ESL ISLR doing Bayesian data analysis w/ jags/Stan bda3 - gelman prob graphical models Convex analysis - Boyd adv data analysis from elem pov - shalizi

Trying to build out my library. I have a background in prob/stats/analysis and measure theory/linear algebra and also knowledge of algorithms and data structures at the advanced undergrad level, So I'm not too concerned about technical depth just want to enjoy a good technical expository and gain intuition.

</comment><comment><USER21> Does anybody know how to make the book actually readable? [http://i.imgur.com/C4rhclk.png](http://i.imgur.com/C4rhclk.png)

<comment><USER22> You can print to a pdf on Chrome. That comes out nicely for me.

<comment><USER23> Thanks!

Related to printing - this made me chuckle:

> Printing seems to work best printing directly from the browser, using > Chrome. Other browsers do not work as well. In particular, the Edge browser > displays the "does not equal" sign as the "equals" sign in some cases.

Of all the printing bugs for a maths/logic heavy text! Can just visualise the head banging against the desk upon discovering this one, having struggled with understanding something for hours - _well ok, either the universe is broken or... oohhhhhhh_ :-D

</comment></comment></comment><comment><USER24> Can any practitioners / experts out there comment on the range of topics? For example, I understand the book to be introductory, and so the scope is likely somewhat limited. But how close does it get you to the ANNs currently in use, at least conceptually if not in complete detail? Thanks!

<comment><USER25> Non-expert DL practitioner here. The coverage is very good - if I were running some kind of "Deep Learning onboarding class" for a university or tech company, this is what I would present.

My favorite aspect of this book is that it provides a graphical models interpretation of DL methods, which is the most powerful perspective we have right now to reason about model design (instead of some large black box function that we train end-to-end without knowing what's in between).

It also explains some fairly recent models and techniques well (VAE, DCGAN, regularization) that form the basis of more complex architectures. If you understand the models here, you should be able to understand the design choices made in more complex architectures.

Thanks to Goodfellow, Bengio, and Courville for this excellent work.

<comment><USER24> Great, that's very helpful to know. Thanks!

</comment></comment></comment><comment><USER26> The HTML format is quite peculiar.

It kinda looks like someone ran the original PDF through PDF.js and saved the rendered output to a HTML file.

<comment><USER27> The HTML source contains this:

<!-- Created by pdf2htmlEX ([https://github.com/coolwanglu/pdf2htmlex](https://github.com/coolwanglu/pdf2htmlex)) -->

</comment></comment><comment><USER28> A bit unrelated, but can anybody tell me what typeface is used for the body text in the PDF?

<comment><USER22> The font is "Computer Modern," the default LaTeX font. Nothing screams "I'm an academic engineering textbook!" quite like Computer Modern.

<comment><USER29> Concrete Roman could compete: [http://www.tex.ac.uk/FAQ- concrete.html](http://www.tex.ac.uk/FAQ-concrete.html)

<comment><USER30> It is amazing that Knuth still had time left for some mathematics, between designing fonts :)

<comment><USER31> (Obligatory: [http://www.xkcd.com/974/](http://www.xkcd.com/974/) \-- but Knuth solved the arbitrary condiments problem, and others besides.)

The _Concrete Mathematics_ book that resulted was a masterpiece in my opinion. I learned so much about how to computationally _do_ discrete math from that book. And it's a very elegant package.

</comment></comment></comment></comment></comment><comment><USER32> Athena ([http://athenapdf.com/](http://athenapdf.com/)) does a phenomenal job at turning those HTML pages into convenient PDF files.

<comment><USER33> spent lot of time to convert each pages using this website and merged the pdfs into single pdf and then found that Athena has not done the conversion correctly. The diagrams not converted correctly.

Waste of time!!

</comment></comment><comment><USER34> Does this book mention attention models?

</comment><comment><USER35> Don't quite get the complaints about it not being available in PDF. "We'll publish your book, and you can give it away for free as long as you make people click through to each chapter" is a much, much better deal than I would expect from a big publisher.

<comment><USER5> Pretty much ... the only edge case I feel for is having an offline copy in places with low or expensive internet access. Like parts of the developing world. Clicking through isn't such a big deal.

<comment><USER35> In the old days IE had a feature for saving pages for offline reading that would ask you how deep to recursively traverse. It was considered hilarious to set it for 99 on the school dialup connection.

</comment></comment></comment><comment><USER36> Remove Facebook link

</comment><comment><USER37> Somebody please package the html into a pdf!

<comment><USER38> _" Can I get a PDF of this book? No, our contract with MIT Press forbids distribution of too easily copied electronic formats of the book."_

<comment><USER37> Look, I'm not planning on printing the whole thing, binding it and sticking it on my shelf. I want the pdf because then I can use it when I'm offline, across devices and search it easily.

If I want this book in hard copy, then I will purchase it - I've done this regularly with free digital books - but when it is offered free digitally then in my opinion prohibiting to only certain file formats is futile (as evidenced here), and such constraints are ineffective attempts to encourage people to buy the hard copy through inconvenience.

And I must add that this is no slight to the authors, whom have my greatest appreciation for compiling their vast knowledge into a book and offering it for free. These guys are legends.

<comment><USER38> @dandermotj I understand that, just included the reason why you cannot get it. The online book really sucks. I turned the styling off.

</comment></comment></comment></comment><comment><USER39> Does it cover new(er) topics like Deep Reinforcement Learning, Residual Networks, Inception nets, etc.?

<comment><USER40> Have you tried looking at the TOC and index?

</comment></comment><comment><USER41> If there are restrictions around distribution formats, it is misleading to call it "free".

<comment><USER42> The FSF does not have a monopoly over the word "free". For a lot of people, "free" means as in "free beer", which this book is, in the online format.

</comment></comment><comment><USER43> They better release a PDF in the future.</comment>


Life in Tokyo: 20 People Living in 1 House (+1 Lizard) - <AUTHOR> http://www.youtube.com/watch?v=2e178qmvc_A <comment><USER2> Houses like this are a lot of fun, how did you find this video?

<comment><AUTHOR> Via bittorrent. It's much harder to get the video now that fewer people are sharing it.

It's part of a series where the journalist (Stacey Dooley) visits different countries (including Greece and Ireland). The full episode along with links to other episodes is also on Youtube & DailyMotion. The links are in the description box below the video.</comment></comment>


Jeff Bezos Pledges to Expand His Space Ventures - <AUTHOR> https://www.wsj.com/articles/amazon-ceo-jeff-bezos-pledges-to-expand-his-space-ventures-1527349075 <comment><USER2> I fundamentally don't understand how anyone can see this and think, "nah, fuck those guys." Clearly we cannot be a single-planet species forever and survive. Beyond that, it's such a hard challenge to push our technical skills against, and the ultimate adventure for those who go.

The universe is vast and we haven't left the cradle yet. There is so far to go for us. It makes me feel so much better about Earth and humanity just knowing we are doing this.

As was said by XKCD: "The universe is probably littered with the one-planet graves of cultures which made the sensible economic decision that there's no good reason to go into space--each discovered, studied, and remembered by the ones who made the irrational decision."

<comment><USER3> Just ruining this planet and spilling over to other systems to do the same there would shockingly resemble what viruses do.

<comment><USER4> Also what all biological agents have been observed to do. We aren't special in that regard.

</comment></comment></comment><comment><USER5> Nice! Just the sheer amount of engineering challenges a permanent moon base would bring in gets me excited. Humanity would learn so much from this experience one way or the other.

<comment><USER6> More exciting to me would be a fully automated moon base. Much more realistic and the advances it will help bring to robotics can be exploited for profit here on earth, a win for everyone.

I don't see how building a moonbase where people live really helps people on earth. For that matter doesn't the low gravity leech calcium from your bones or something? Why would anyone even want to live on the moon. Sounds unpleasant.

The trick will be to developing a delivery mechanism for dropping and installing semi-autonomous robots on the moon.

Also, of course, we need robots capable of doing anything a person can do - even to the point of repairing other robots. Not talking self aware, just with the appropriate agility.

<comment><USER7> It teaches us how to live on other planets, which is quite important for the long term survival of the human race.

<comment><USER6> I find this line of thinking ridiculous or at least very elitist.. if we can't figure out how to live on this one we'll just go destroy another planet.

<comment><USER7> It's pretty hard to destroy planets. I doubt that we could do it.

</comment></comment></comment></comment></comment><comment><USER8> I hate to say this, but has anyone noticed the outline of the feather in Blue Origin's logo, looks like a penis about to go erect?

Especially the logo on the jacket.

I don't know if this was some kind of cosmic joke, played by the graphic arts department. But I think someone should tell the king about what that logo he's wearing over his heart, sort of looks like.

<comment><USER9> Well all my friends here in Seattle call Amazons new spheres "Jeffs Balls" so it would be fitting. It could have just played out like gavin belsons signature in silicon valley the show: [https://www.youtube.com/watch?v=335Qnh- GRcA](https://www.youtube.com/watch?v=335Qnh-GRcA)

</comment></comment><comment><USER10> The greatest tragedy is that Silicon Valley has specialized in surveilance instead of actually creating something good. So many engineering hours wasted on tracking people.

</comment><comment><USER11> Why? It's an airless rock that sits at the bottom of a gravity well that has maybe a smidge of water. I guess you can make yourself a nice radiation shelter there?

<comment><USER12> If you look at the moon as a really good space station as opposed to a planet, I think there are many good reasons to set up a base there.

* Gravity: enough to help with long term habitation, but low enough that getting on and off is much, much easier than Earth.

* Close to Earth

* Enough space that one could build a lot of things. It's a lot cheaper to dig than it is to launch more space station modules.

<comment><USER13> But to what end do we need a really good space station?

I realize we can work on more than one problem at a time and that it is expedient to do so. But I often wonder how much space exploration, particularly manned missions, are a distraction from more pressing issues on our home planet.

Also, if space exploration is a more scientifically exciting problem than say, ensuring enduring sources of clean water for the millions of people who don't have access to it, well then, that's a sad world indeed.

<comment><USER4> >> Also, if space exploration is a more scientifically exciting problem than say, ensuring enduring sources of clean water for the millions of people who don't have access to it, well then, that's a sad world indeed.

Enduring sources of clean water for everyone in the world is a _scientifically_ very easy problem to solve compared to most of what is discussed on this website.

The problem is that it is a _politically_ very difficult problem to solve. And you want Bezos/Musk/etc to fix this... how?

<comment><USER13> Oh God, I don't want to delegate the task of fixing to the world to just a few tech moguls.

However, I would be encouraged to see the scientific community Incorporate a stronger social solidarity into their work. Because a problem is hard or simple is not reason enough alone to pursue it, personally. Finding the largest prime number known might be a somewhat difficult task, but to what end is it found?

<comment><USER4> I don't disagree with the main thrust of this comment, but it doesn't have much to do with comparing spaceflight with clean water. One is solvable by the tech community (maybe?) and the other isn't because there are political obstacles in the way. And when tech companies try to solve political issues, people on HN and everyone else who leans marginally liberal get increasingly pissed off that rich people are messing with dem dere laws again.

</comment></comment></comment></comment></comment></comment><comment><USER14> [http://archive.li/vV5FP](http://archive.li/vV5FP)

</comment><comment><USER15> We could fix the current planet instead of rich people escaping to other habitats

<comment><USER4> The moon is a lot worse than any habitat on Earth, and will be that way for a long time.

Furthermore, do you have a list of what Bezos et al give to charity in attempts to improving the current planet? It's not negligable.

<comment><USER16> Probably isn't that significant relative to wealth, and in Bezos case that wealth is built on the backs of warehouse employees who have to use food stamps and piss in bottles instead of taking a bathroom break.

<comment><USER4> >> Probably isn't that significant relative to wealth

Ah yes, I've run into the Earth arbiter and judge of significance of charitable giving.

Some days I wish Bezos et al would reduce their philanthropic giving to $0 for a calendar year and see what people have to say about their previous stingy behavior.

</comment></comment></comment></comment><comment><USER17> I've noticed that I have been modifying my purchase preferences to favour Bezos and Musk (holding out for that Model 3). Not because their stuff is better but I'd like to think some of the money they make of me goes into uplifting world-changing things like this.</comment>


MySQL man pages license change is a bug - <AUTHOR> http://bugs.mysql.com/bug.php?id=69512 <comment><USER2> I prefer to imagine Larry Ellison wringing his hands saying "Curses! And I would have gotten away with it if it wasn't for those meddling kids!"

Also he's in an abandoned fairground for some reason.

<comment><USER3> In front of a sign saying "Scott McNealy's Open Source Wonderland"

<comment><USER4> Unfortunately, Oracle shut down the Wonderland project as well. [http://en.wikipedia.org/wiki/Open_Wonderland](http://en.wikipedia.org/wiki/Open_Wonderland)

</comment></comment></comment><comment><USER5> We've seen this twice in two days now. Facebook is blocking Tor except that maybe they're not. MySQL is now under a new license, except it's not. The alarmist headlines not waiting for a response from the newly-damned organization, instead issuing a retraction after everyone has freaked out.

Will the tech community ever get past the manufactured controversy and knee- jerk reaction we lambast the mainstream media for?

<comment><USER6> More like Facebook is blocking Tor except it was an accident, and MySQL is now under a new license except it was an accident. The idea of shaming people away from pointing out, and yes, speculating on the motives for these changes is a terrible idea for a forum. And if these things hadn't surfaced on HN, do you think they would have been corrected so quickly? What would the the "newly- damned organizations" be posting a response to?

Will HN ever get past all of the whiny meta about what other people are posting or upvoting?

<comment><USER7> Kind of an aside, but still relevant to part of your post. Whining about the content and whining about the meta whining is part of any sufficiently old community. I can recall from communities I've managed, and from ones I've participated in there's /always/ metacommentary and metametacommentary. The best thing to do in these cases is not to engage it. But no, HN will never get past all the whiny meta and there's very little we can do about it except letting it slide :(

Quick Edit: This is one of the reasons why I love discourse, it encourages metadiscussion in a separate part, and while it doesn't keep it from contaminating, it seriously helps a lot to focus it and guide it.

<comment><USER8> benbeltrain: How does that work in Discourse?

lsiebert: How does that work on Metafilter?

<comment><USER7> Well, in discourse it's more convention than anything. But the first category created, is a `meta` category. But this explains it better: [http://meta.discourse.org/t/what-is- meta/5249/2](http://meta.discourse.org/t/what-is-meta/5249/2)

</comment></comment></comment></comment></comment><comment><USER9> I found the jump to assume that Oracle decided to stick it to the MySql community telling of the community's trust of Oracle's commitment to MySql as an open source database (and not just from the echo chamber that Hacker News can be sometimes ... I was greeted with this news upon starting work this morning from two different colleagues, neither of which frequent this site).

My sense is this originates from a few perceptions of Larry Ellison and Oracle: (1) Oracle does give a whip about Open Source software. (2) Oracle charges so much for their primary RDBMS technology that it would only be natural for them to undermine MySql as an open source database technology (a view I, personally, share despite evidence to the contrary). (3) As a tech, in a past life, I've had to support Java on the client side for some really poorly written Java apps. Aside from the experience being utterly awful due to this horrible app, I have little trust for a company that installs toolbars alongside critical patches and then defends the practice when called out.

I'm finding my view of Oracle is so negative (maybe I've been supporting Oracle software for way too long?) that I'm not going to be fully convinced this was a bug until the "wrong set of copyright headers" is fixed. That's pretty sad since it makes little sense that Oracle would relicense just the man pages in some sort of conspiracy to squeeze a dime out of its customers.

Either way, it's always a good reminder of my personal favorite variation of Hanlon's razor: Where there are gaps of understanding, people jump to the worst possible conclusion.

</comment><comment><USER10> saw that coming.

[https://en.wikipedia.org/wiki/Hanlon's_razor](https://en.wikipedia.org/wiki/Hanlon's_razor)

<comment><USER11> When you combine Hanlon's razor (Never attribute to malice that which can adequately be explained by stupidity) with Clarke's law (Any sufficiently advanced technology is indistinguishable from magic) you get Grey' corollary (Any sufficiently advanced stupidity is indistinguishable from malice).

Anyone who has sufficient exposure to any large bureaucracy will have examples of the last to share. Which then raises the possibility that (as is happening currently with Bank of America) the possibility of advanced stupidity is used to cover actual malice.

<comment><USER12> ...which leads us right back to Hanlon's razor (it's probably not malice, just stupidity).

<comment><USER11> But this time with the "Never" somewhat qualified.

<comment><USER12> The "Never" isn't literal in the original razor.

<comment><USER8> Yes, it is literal.

Hanlon's razor is advice about what predictions you should make (or which hypotheses you should advocate, if you like). It says that when you don't know whether something is malice or stupidity, you should never predict/theorize the former.

<comment><USER12> If the 'never' is literal, then it's attempting to establish a universal truth, and is entirely useless as that universal truth is incorrect.

If it's not literal, then it's argumentative hyperbole and should be interpreted as "usually" or "most often". In this case the truth of the statement is intact and can be a useful guide.

So either you're right and the saying is worthless, or I'm right and the saying retains useful meaning.

<comment><USER13> > If the 'never' is literal, then it's attempting to establish a universal > truth

No, its not.

As a statement about predictions, its about likelihood. "Never assume malice when incompetence is plausible", even if taken literally, need not be an attempt to establish that it is universally true that when both are plausible, malice is always the _correct_ prediction; it is a sufficient premise that there are no circumstances in which both explanatiosn are plausible where malice is more likely.

<comment><USER12> IF you CAN attribute something to stupidity, THEN YOU MUST. That's what it'd be saying if you took it literally. It's not a statement about prediction or tendency.

It does NOT say "malice is plausible" it says "malice is IMPOSSIBLE, when you CAN attribute an act to stupidity."

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> More official comment: [http://insidemysql.com/the-mysql-man-pages-are- available-und...](http://insidemysql.com/the-mysql-man-pages-are-available- under-the-gpl/)

<comment><USER15> That is the most amazing banner image I've seen on any blog ever.

<comment><USER16> It's interesting that in order to avoid the guy's head leaning over at exactly the same angle in every picture, they flipped the image on the left horizontally.

<comment><USER17> I can't decide if he's doing the Blue Steel look or Le Tigre.

</comment></comment></comment></comment><comment><USER18> Severity: OHBUGGERTHEYNOTICED

<comment><USER19> haha, that was a good one :). I guess everyone on HN can keep away the swords and pitch forks now !

</comment></comment><comment><USER20> This is typical Monty. He cries foul how awful $mysql_owner is and how they do such bad things. He is the one that sold MySQL to Sun. If anyone is to blame for the current state of MySQL affairs, it is undoubtedly him.

<comment><USER21> This report has nothing to do with Monty

And if you watch his presentations about MySQL you can see he fully accepts that he made a mistake with the way MySQL grew and he is rectifying that with MariaDB in which he has invested a significant amount personally

</comment></comment><comment><USER22> > _started pulling in man pages with the wrong set of copyright headers_

And how has the wrong set of copyright headers ended up on said pages?

<comment><USER23> Applying Hanlon's razor:

Never attribute to malice that which is adequately explained by stupidity.

<comment><USER22> Witty. Now please demonstrate how it looks applied to this case.

<comment><USER24> Replace "malice" with "conspiracy to eradicate open-source MySQL" and "stupidity" with "bugs in the packaging code".

<comment><USER22> Good, good, almost there. Now elaborate on "bugs in the packaging code" part.

What does "the wrong set of copyright headers" do in a vicinity of the packaging pipeline and how it came to exist in the first place. It's easy to throw around flashy one-liners. It's a bit more work to actually try and read into the facts presented.

<comment><USER24> As has already been stated on this same page, there's a community edition and a commercial edition. They're likely part of the same packaging pipeline.

Do not be condescending on Hacker News when someone is responding to your question. It's easy to jump to conclusions. It's a bit more to actually try and understand what happened - that is the point of Hanlon's Razor. This may have been intentional, yes. But it may also have been a bug.

<comment><USER22> > Do not be condescending on Hacker News when someone is responding to your > question.

Do not dispense unsolicited advice on the Internets. That wasn't a reply. It was a highbrow remark that was as generic as it was barely applicable. A proper reply was the sibling comment that pointed at two editions.

<comment><USER23> The context was implied and definitely applicable. This is now becoming pedantic so let's invoke Godwin's law and stop valuable electrons being pushed around for no reason.

The nazis did it.

Everyone happy now? :)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER25> No word yet on why the source code for the MySQL documentation is no longer publicly available. Was recently and silently made unavailable. This is much worse than a few man pages.

<comment><USER26> You can download the documentation here: [http://dev.mysql.com/doc/](http://dev.mysql.com/doc/) Or are you referring to the scripts that generate it?

<comment><USER25> I'm referring to the source code that is used to build and generate the documentation available in that link. The MySQL documentation is written using the DocBook XML format.

Here is a link to an older version of the page where the documentation was available: [http://web.archive.org/web/20121030130559/http://dev.mysql.c...](http://web.archive.org/web/20121030130559/http://dev.mysql.com/doc/index- other.html)

See "Documentation Repositories".

</comment></comment></comment><comment><USER27> the only thing any mysql/mariadb news does for me is highlight how the average (and depressingly top voted) hacker news/proggit/slashdot commenter knows fuck all about either of them.

</comment><comment><USER28> At least this served as a reminder of the possibility of such action from Oracle.

</comment><comment><USER27> I made that comment on a phone. I mostly wish I had not.</comment>


Holy christ, get off livejournal - <AUTHOR> https://onepostwonder.com/users/boutell/2017/04/03/holy-christ-get-off-livejournal <comment><AUTHOR> The lack of HTTPS, perhaps to conform with Russian legal requirements, is the most interesting bit here.

There is an official post about the new TOS aspect at [http://news.livejournal.com/151767.html](http://news.livejournal.com/151767.html)</comment>


Conan O'Brian Zoombombs Tibco Software - <AUTHOR> https://youtu.be/TUqKfodQwIA <comment><USER2> Zoom is doing really well out their carelessness. Who would have thought insecurity would be a marketing boon?</comment>


Stolen Laptop Contains Man's Dreams - <AUTHOR> http://calgary.ctv.ca/servlet/an/local/CTVNews/20100826/CGY_stolen_laptop_100826/20100826

<comment><USER2> I remember writing my thesis, back in the days before the web. I left (5.25" floppy disk, WordPerfect 4.2) copies with friends in as many diverse locations as I could manage. I copied it onto any hard drive whose owner would let me, and a few who wouldn't (like the college card catalog system--sorry!). I did everything in my power to make sure that my work-in-progress could survive a nuclear attack.

Why didn't this guy, exactly?

<comment><USER3> I learned this lesson with a lousy floppy on my C64 in 5th grade. I still remember the awful sound of the 1541 struggling to read that lost file into "Paperback Writer".

It haunts my dreams and reminds me to always back up, always.

<comment><USER4> I always knew that I should keep backup(s), but I didn't get backup religion either until the first time I had a hard disk crash on me and lose everything. Unfortunately, that may be what it takes to get most folks into the habit.

</comment></comment></comment><comment><USER5> Stories like this make me wonder if I should add a free "graduate student writing a thesis" flag to Tarsnap accounts.

<comment><USER6> And I wonder if I should write an ebook on "How to write your thesis with a computer".

PM me if you want to collaborate. :)

<comment><USER7> It might suffice to only have one page with the big word 'BACKUP!' on it.

Later editions might expand to 'BACKUPS!'.

</comment></comment></comment><comment><USER8> This can't even be true - surely the last version he sent to his supervisor to review, so they'll have a copy.

<comment><USER9> The story says it contains his research and notes as well.

</comment></comment><comment><USER10> I'm continually amazed at the number of people who don't back up their most important data. I'm not shaming this particular guy- the majority of my non- techie friends make no real backups. Of those that do, very few of them make regular, incremental backups (like Time Machine, for example).

With more and more data getting hosted on the cloud, maybe this concern becomes (thankfully) less relevant.

<comment><USER11> Cloud storage is not a backup. "Oops, I deleted that file" deletes it in the cloud too.

<comment><USER12> Being in the cloud is orthogonal to that issue, isn't it? After all, you could use a DVCS in the cloud. Or a cloud service could offer this:

<https://www.dropbox.com/help/11>

</comment></comment></comment><comment><USER13> In my user support days at the university I studied at, I remember receiving many students on the brink of crying and with a corrupt 3.5" disk in hand. They had their only copy of their thesis on this floppy and were desperate for help.

Most of the time the only thing we could do was to dd what was available and pipe it through strings, and sometimes not even that. We tried telling them they should store things on the university servers (which had backups), but it took some time before students learned this.

</comment><comment><USER14> Every personally important file I have lives in Dropbox (I'd be fucked if this went bad; most recently, Missouri tried to get $30K in bogus taxes from me that I was able to fend off with a copy of my 2004 tax return). My music is synced with SugarSnyc (irritating but not critical to replace since I only buy physical media).

I honestly don't get why everyone doesn't do something similar. And if you're truly paranoid, there's Tarsnap.

</comment><comment><USER15> Backup, backup, backup. I keep critical stuff on 3 different physical media and in different locations. Hard disk + DVDs + online. I feel so sorry for this guy but would _never_ put myself in that position.

Now I need to plan for the foretold solar maximum disruption as well! ... whether its true or not isn't the point.

</comment><comment><USER16> Mail the document your own email... Don't need a techie friend or some whacky sync service.

<comment><USER17> Best low-tech solution I've found. No hand-holding and scary software needed. Send an email once or twice a day and you have instant offsite versioned backup. For added security CC it to a couple of different accounts (for example both gmail and university account).

</comment></comment><comment><USER18> Run add for Carbonite, Time Machine, any backup service here. Something that's that important, you don't take a backup of some kind every now and then?

</comment><comment><USER19> <http://www.kipling.org.uk/poems_if.htm>

</comment><comment><USER20> The sad thing is, it probably would have fit nicely in a free DropBox account, or up on Google Docs.

</comment><comment><USER21> In my thesis writing days I used to copy each revised version on a CD.

</comment><comment><USER22> this kind of story is always a wake up call to hurry up and save/backup your data... the least you can do is send yourself a copy of the *.docx at for example gmail.

</comment><comment><USER23> dropbox anyone?

<comment><USER24> My wife just finished a thesis - that was in Carbonite, a hosted SVN repo _and_ dropbox.</comment></comment>


Rails 3 Has Great Documentation - <AUTHOR> http://weblog.rubyonrails.org/2010/8/28/rails-has-great-documentation

<comment><USER2> I'm not a rails person, but I had a look at the api docs he decided to link as an example... And I understood why people might be complaining.

I started with railsapi.com - selected something at random: first ActionView::Layouts (seems like a crucial class):

        find_layout(layout) - This is the method which actually
        finds the layout using details in the lookup context
        object. If no layout is found, it checks if at least a
        layout with the given name exists across all details
        before raising the error."

Right... where does the "lookup context" object go? What is "layout" What's returned? Where does it "find the layout"? Why does this method exist? What error is raised? Ok - maybe I just chose something that's not popular - another try is ActionView::PathResolver:

        to_path() - Alias for to_s
        to_s() - This method is also aliased as to_path

You're kidding me, right? Ok - something easy this time - "Float" -> "round(precision = nil) - Rounds the float with the specified precision." Rounds which way? What type of rounding is used? How does it behave for infinities and -epsilon? Something important "I18n" - there is NO documentation at all.

I checked APIdock, thinking it might be better - it took a lot of clicking to get to a class which had any documentation at all (ActiveRecord in this case). If you check "browse", you'll see yourself how many classes lack any kind of description...

Summing up - I'm not sure about the screencasts, guides, etc., but API docs are almost non-existent.

<comment><USER3> For better or worse, I'm convinced that this is the reason that PHP took off the way it did. The documentation was clear, concise, easy to access (perhaps the first example of user friendly URLs I can remember), and effective; That each function had user-submitted (moderated) comments was the icing on the cake.

Being able to look at a function, have clear documentation WITH EXAMPLES was brilliant -- being able to see some of the common questions and resolutions from users was exemplary.

I know that the python docs are largely considered aces, but I have yet to see a language reference as good as the PHP documents. I hate the language, but it was the first language I could actually learn from its own documentation.

<comment><USER4> _For better or worse, I'm convinced that this is the reason that PHP took off the way it did. The documentation was clear, concise, easy to access (perhaps the first example of user friendly URLs I can remember), and effective; That each function had user-submitted (moderated) comments was the icing on the cake._

I've seen this (similarly highly-voted) comment made elsewhere. I just don't get it.

The PHP docs are often woefully incomplete in their explanation of functions. The user-submitted comments are the blind leading the lame, often containing competing solutions to the same problems, all of which are incomplete and poorly documented.

Aside from several highly-voted comments in discussions, though, the PHP documentation doesn't seem to be a frequently cited example of quality. I find that strange.

</comment></comment></comment><comment><USER5> The author more or less proves the exact opposite. The API docs are what matters most and Ruby's suck. Looking at this, <http://railsapi.com/doc/rails-v3.0.0RC/> for a moment which the author cites as a good resource. If I were a beginner with the language how would I know what the heck any of this stuff is. The index is organized by class name instead of purpose. Compare that to Python's documentation, <http://docs.python.org/library/index.html> which is organized by purpose, ie: all the string stuff is under a section titled "String Services". Python is a gold standard for documentation is this regard as I've seen few if any other languages arrange their docs in such a intuitive way.

The mere existence of documentation doesn't make it great.

<comment><USER6> I actually prefer this format <http://api.rubyonrails.org/>. Everything is there, and I can use cmd-f to search for whatever. It's probably because I'm familiar with it, but that's probably why you like python's.

<comment><USER7> Ctrl-f only works if you know what you are looking for though.

<comment><USER8> That's the difference between reference documentation and introductory documentation. You go to reference documentation when you want to look up the details of something you already know; you go to introductory documentation if you want to learn it for the first time.

<comment><USER7> Okay sure, but how do you get from the introductory docs (which are far and wide, as well as lacking in quite a few areas) to reference documentation. I can see how ruby-doc can be a good resource but only for those that know the language and know what they should be looking for, even then though sometimes docs like python's are better references.

<comment><USER6> there are also two great books, the agile rails book, and the rails way. They will get you started, and may be 90% of what you need. The docs are good for the rest.

One thing though, we're comparing apples and oranges; the docs for a web framework vs the docs for a standard library. Are the django docs similar to the standard lib docs?

I'm not trying to dis python, I really like python and use it whenever I need to do mathy stuff with numpy and scipy. Most other things I do in ruby.

<comment><USER7> The django docs are rather good and similar in many ways to python docs: <http://docs.djangoproject.com/en/1.2/>

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Isn't that only from a large community, when I think of documentation I think of a central place to find it and this is why I use python and not ruby. As an aside the ruby docs are annoying for me to use however I quite enjoy the way pythons docs are built.

Similarly when you look at this post you see that rails has "great" documentation through the means of a large amount of differing non-central sites that require some effort to go about finding as well as navigating. Though it is much better than when rails was still young.

<comment><USER9> Python docs aggravate me in numerous ways. One main complaint is that there is a single page[1] for all of the standards types (boolean, string, list, dictionary, numbers, etc.) that contains way too much disjointed information. It could really stand to be split into a few different pages, as it's annoying that Googling "python string", "python list", python int", etc. all lead to top of the same exact page.

[1] <http://docs.python.org/library/stdtypes.html>

<comment><USER7> Compare that with this: <http://ruby-doc.org/ruby-1.9/index.html>

I find that page (docs.python.org) easy to navigate using the side menu and the structure of the document the fact that it is so big doesn't quite bother me, I already know most of what I need on that page and wouldn't be upset navigating it if I had to.

<comment><USER10> "Compare that with this: <http://ruby-doc.org/ruby-1.9/index.html>

I have on my recklessly large to-do list plans to update the API docs on ruby- doc.org with YARD.

The template seems a bit easier to navigate and the overall results better. But I'm always open to concrete suggestions.

[note: I run ruby-doc.org]

</comment></comment></comment></comment><comment><USER11> This is awesome! I love the ability to drill-down to a specific method by fuzzy-searching! I was using gotapi.com for looking up help and reference, but they didn't scroll to the right method.

Most people who complain about the Rails documentations site probably don't use Rails everyday since it's hard to appreciate something if you don't use it.

I'm working with Rails almost everyday, and so far I enjoy it very much. The documentations are great, the Rails Guide is great (and very, very thorough and approachable), and the community is really active. As DHH said, all the arguments don't matter much once you start using Rails, since everything will all make sense (I believe this was in Rails keynote in 2009, he was referring to the debates between implementing .first, .second to the Array class, and he pointed out that these decisions were made to help developers think better and more expressive in their code and thus become happier -- and he's totally right!)

</comment><comment><USER12> So why are most of you comparing rails docs to python and php? Rails is a web framework, not a language. Look at the ruby api for an apples to apples comparison.

</comment><comment><USER13> Railscasts didn't exist when I first started using Rails in the fall of 2005 - they are an invaluable resource and just one of many the author points out.

For someone who has not used Ruby before, it will likely take years to go from 0 to Ruby/Rails "Zen Master". The Ruby language seems simple at first but there are many nuances and powerful methods (such as #inject and #map) that few will master right away.

Also with regards to Rails, there are a lot of "moving parts". Randomly picking something out of the API and expecting to understand it, outside of its context etc., is not the right way to go about this.

Having been learning and working with Rails for several years now, I can tell you that there is must more excellent content now than ever before. And there will soon be plenty of Rails 3 specific books available too.</comment>


Reddit, for music - <AUTHOR> http://cherrypeel.com/?#p=/home

<comment><USER2> Not sure if you were looking for feedback or what Andrew, but I took a look, and I'm wondering what CherryPeel has in comparison to the competitors out there (there are lots). thesixtyone - specifically has a very clean and nice interface. much easier to look at than cherrypeel.</comment>


Obama's rise: A fantastic case-study for new startups. - <AUTHOR>

I think new startup can learn a lot from Obama's rise, he was virtually a non-entity and no one could have believed he would oust Hillary Clinton. Defeating Hillary Clinton means defeating Bill Clinton, the heavy weight lobbyist, the money power, the experienced power-broker all together in one shot.
By winning the democratic nomination, Obama has proved that:
1. Where there is a will there is a way : Founders of new startup has to be determined and just start without afraid of anything.
2. Slow and steady wins the race: Keep improving your product/service on regular basis.
3. Technology is the key : see how you can use technology to bring the change that you're planning.
4. Newbie can take over giant: the new startup shouldn't worry about the giants. The will power and confidence will certainly keep you going.
5. Find the real problem and try to solve that: Founders should create product/service that solves the problem and concentrate on that by engaging to be customers.
6. Finally, its all about "team": Build the best of the best team, at the end of the day it is all about how good is your team and your team work.
There could be many more lessons that can be learn and YC readers can share it here... <comment><USER2> The real reason for the Obama win is that he leveraged a small competition (Iowa) and seeded and worked hard on an initial user group (his initial supporters, equivalent to a beta group of a product), and with that, he created an explosive first splash, which got all the media talking about him (equivalent to your killa product getting splashed accross techcrunch, wired, etc).

And after that, he followed up and built a huge social network around the brand. He concentrated on brand loyalty, creating a unique and quirky brand that made his users feel cool, and making sure the donation (payment) method was very simple to use.

And he used newletters very effectively. What Obama did was a perfect example of a seamless product launch and perfect sales and post sales service.

The key was his core group of motivated users and his excellent organisation of them,

<comment><USER3> "and his excellent organisation of them"

I think people often underestimate his leadership skills. Campaigns are historically pretty messy affairs. His campaign organization was extremely well run-probably one of the cleanest and most efficient in recent history.

</comment></comment><comment><USER4> 7\. Marketing, Marketing, Marketing. Obama was an amazing orator, and a great salesperson for himself. Find someone who can be just as convincing marketing/selling/evangelizing your product.

8\. Love your customers. Obama got millions of people to give him money and he wasn't even giving them a product! The Obama campaign kept in touch with supporters by email, made them feel important and empowered. That's what matters at the end of the day.

9\. Respect your competitors, but be intimidated. One thing that Obama never did was disrespect Hillary Clinton. At the same time, he was always confident and never was intimidated by Hillary's name and brand.

<comment><USER4> meant to say "9 ... DON'T be intimidated ..."

</comment></comment><comment><USER5> 12\. Stay calm. There will be drama and hardships along the way. If you react to every one of them or question your core values, you won't succeed.

13\. Take a break to do other things. Obama plays basketball a few times a week. He took a weeklong vacation in the middle of the primary campaign. You need to take time away from your project--you'll be amazed what a little perspective gets you.

</comment><comment><USER6> Agreed. Here's another thoughtful post on the subject: [http://discussionleader.hbsp.com/haque/2008/06/the_rise_of_a...](http://discussionleader.hbsp.com/haque/2008/06/the_rise_of_asymmetrical_compe.html)

</comment><comment><USER7> 10\. Involve your customers in your product, and provide easy ways for them to provide feedback. The Obama campaign assumed that campaign donors would want to get involved and gave them tools to do so (such as the phone lists).

</comment><comment><USER8> 11\. Find your key differentiator and trumpet it (change). If your competitors cannot copy your differentiator effectively because of their entrenched positions, even better.</comment>


Denver Airport Baggage System - <AUTHOR> http://calleam.com/WTPF/?page_id=2086

<comment><USER2> While the actual case study makes for an interesting read -especially for someone who lives in Colorado - the numerous typo's, spelling errors and grammatical mistakes greatly takes away from the message. Did anyone bother to proofread this document at Calleam Consulting before releasing in back 2008?</comment>


Microsoft Edge Browser Available for Mac, Linux and Win10 - <AUTHOR> https://www.microsoft.com/en-us/edge?&OCID=AID2001284_SEM <comment><USER2> Well, maybe not Linux. Yet.</comment>


What is SXSW and TED had a lovechild with Peter Thiel? Meet Voice & Exit. - <AUTHOR> http://www.radicalsocialentreps.org/2013/02/what-if-sxsw-and-ted-had-a-lovechild-with-peter-thiel-meet-voice-exit-march-9-2013/ Voice & Exit is an upcoming conference featuring twelve short talks about major innovation in social entrepreneurship and radical community. Parallels SXSW, Austin, March 9. <comment><USER2> Wackier than TED. Entertaining at least.</comment>


NASA report finds Boeing seat prices are 60% higher than SpaceX - <AUTHOR> https://arstechnica.com/science/2019/11/nasa-report-finds-boeing-seat-prices-are-60-higher-than-spacex/ <comment><USER2> > $90 million for Starliner and $55 million for Dragon

wow.

<comment><USER3> Per SEAT, not just over all cost per launch, Boing could just keep paying Russia and pocket the difference.

<comment><USER4> Plus the parachutes would work!</comment></comment></comment>


Syntactic Sugar - <AUTHOR> http://wordaligned.org/articles/syntactic-sugar <comment><USER2> from the article: "I mention this because I've been thinking about what makes good software documentation."

one man's opinion - the best source code doesn't need documentation. the code itself should be expressive.

while not everything can be as nice as rspec (example: <http://pastie.org/266866>), some descriptive and expressive syntactic sugar can make code more readily understood as well as convenient to write. you can be as obtuse as you want as long as you're the only person looking at the source, but the minute you add a second programmer to the project, you have to think about making their lives easier.</comment>


Ask HN: How do you handle code ownership? - <AUTHOR> Interested in finding out how you guys approach code ownership in your respective workplaces. This could mean for sources, feature areas and bug routing. What do you like and dislike about your current process? <comment><USER2> \- Ceartian people own certain systems/projects.

\- Ownership is only the point person of knowlage/direction/insights

\- Anyone can work on the code "owned" by someone else

\- Idealy the writer fixes their own bugs and does their own refactoring (for speed and learning reasons) but that should NEVER obstruct delivery of a feature or value add to the company.

The moment a team starts pointing fingers for issues or starts building moats around "their" code then you have a toxic environment.

<comment><USER3> _The moment a team starts pointing fingers for issues or starts building moats around "their" code then you have a toxic environment._

I have just the opposite problem. No one else wants to add features to code that I wrote because they don't want to ramp up.

This isn't difficult to understand code - some of it is less than a 30 line Python AWS Lambda function.

The process is documented in the repo in the readme.

<comment><USER4> What's tricky is when that lambda doesn't have a documented contract with the systems it talks to, doesn't have end to end integration tests, has a unique build pipeline, requires manual infrastructure creation and there are 100 others like that.

I'm not saying yours is like that, but I've definitely seen that happen.

<comment><USER3> Well, many things on your list are spot on but the ones that are shouldn't be scary.

\- end to end integration tests - if they are APIs, they for the most part have a Postman collections in the repo. If they are event based lambdas, they have the standard

      if __name__ == "__main__":

Code that calls the handler with dummy data.

\- build pipeline and manual resource creation. It's so easy to export a SAM template from the console it's criminal to not at least do that. But, yeah we have a CodePipeline to do that.

I have been on the other side though of inheriting a lambda and wondering how the hell did they go through the write->debug->fix cycle? Did they actually load it to AWS first? I spent a day creating a "test harmess". Not real AAA unit tests, just something I could run locally to debug.

</comment></comment></comment></comment><comment><USER5> It's usually a bad idea to have code "owners". Yes, sometimes someone will know the most about a specific piece of code if either they wrote it or worked on it a lot. Sometimes people will not want to touch a piece of code.

My rule is that once you submit the code for review and it passes and gets merged everybody owns the code. Everybody.

The person who is modifying the code has the responsibility to identify the best reviewers (by looking at history, chatting with others, etc) to ensure high quality and understanding.

<comment><USER6> Some people have claimed that in my organization. I think that can work for library code, and particularly libraries that are used in many different places.

But once you're talking about a service, or code that is only used by one service, then you need to have an owner (or a team of owners). If you still think there's no owner, then ask yourself who is going to get woken up at 2AM when it breaks, and that's your owner.

<comment><USER5> the team owns the code. the whole team. whoever is oncall gets to wake up at 3am if there is an issue.

<comment><USER6> That works OK-ish for small organizations. When you have 1000 engineers, or even 100, it is no longer feasible to have a single on-caller who can keep up with changes enough to debug every system, much less the multiple on-callers you need in order to have an on-call rotation.

IME even in small organizations (<20 engineers) it's very easy to end up not knowing enough to debug everything, and your on-caller basically becomes a smart router. ie, they can debug enough to figure out that it's a DB problem, and then wake up the DB guy. This becomes really annoying for the on-caller, so there's an impetus to have more focused paging groups, and now you're back to having owners for services.

<comment><USER5> nope. you need to know how the thing that you're responsible for works. no exceptions.

what you can have is an interface to another service/team that represents the boundary of your service. When shit breaks and you isolate the breakage to this dependency you wake them up (preferably you detect and you raise this automatically). bonus point if you thought about this as you were building your stuff and your service can work in degraded mode while the thing is solved.

owners for services if okay as long as owner == team. if owner == individual you're doomed + people owning critical things will hate you and their job.

<comment><USER6> >owners for services if okay

This is pretty much the exact opposite of your assertion at the beginning of this thread, to wit:

>once you submit the code for review and it passes and gets merged everybody owns the code. Everybody.

Anyway, this last comment I agree with entirely, and is pretty much what I've been saying all along. So I'm glad we can agree.

>you need to know how the thing that you're responsible for works Agree with this as well, but a critical point is that "the thing you're responsible for" may be subset of "everything" in your organization. Maybe even a relatively tiny subset, in a large organization.

<comment><USER5> yes. everybody in the team. i sure hope there aren't places out there where you have thousands of people each responsible for millions of lines of code.

my point was that you should not have individual code ownership and individual gatekeepers. I can see how that might be misinterpreted.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> We care a lot about "ownership" in our teams. In fact, its one of our core values. But I don't think we define it the way you mean here. To us, it means putting care, professionalism, and follow-through into the feature or release you're working on (as others have mentioned). Did you put thought into your design and seek feedback before you started coding? Did you confirm your assumptions about how things work now? Did you write/update tests? Did you write/update documentation? After release/deployment to production, did you verify acceptance criteria and monitor performance?

That's what we mean when we say "ownership".

Your question implies a single person owning a specific feature or system component ad infinitum. That's generally a bad idea. Yes, some people will naturally have more experience/expertise in some areas. Yes, those people should be called to review PRs/releases in those areas. But your long-term goal should be to increase your bus factor[1] and spread knowledge. It is a win-win: it improves velocity and reduces risk for your org, while also giving your engineers a chance to learn and grow professionally.

Long-term silos of ownership shouldn't be your goal.

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

</comment><comment><USER8> In my experience with several _big_ organizations (20,000+ employees), they tend to have a home-grown application to track ownership of resources (assets) - including source code (repositories), and servers, databases, scheduled jobs (in autosys or suchlike).

Generally each of these entities is grouped into some bucket for an application / "system" / business area, and then that bucket has a few owners assigned, and also other non-ownership roles assigned (developer role can check in code to those repos, prod support role can log into the servers owned by the bucket, etc).

It's generally heavily integrated with an LDAP directory, HR system to handle joiners and leavers, and also change management (Developers can only ssh to a production host during the change window of a change for that bucket).

These home-grown apps are generally old and clunky (written for IE6, with piecemeal improvements since then, that kind of thing), but hard to replace because they're integrated with so many other applications.

I tend to think that this would be a good opportunity for some (startup) to do a great job of this as an off-the-shelf product, with good integrations with Linux + Windows authentication, an API, nice web app, etc - it would be _very easy_ to do better than the in-house systems filling this niche.

<comment><USER9> Does Git not provide this functionality? I'm curious.

<comment><USER10> You can use `git blame` for who touched a line last, but you should tread lightly with it. If you fix a typo in a comment, move some whitespace, etc, you're now to "blame".

</comment></comment></comment><comment><USER11> The office I work in has five development teams that cover different aspects of our service (provisioning from our customers, core product on Android, the UI for the Android code, servers, and call processing [1]). Each team has ownership of their respective products and how things are divided up are left to the teams themselves.

The team I'm on has three developers (I'm one of them) and for our team, we just kind of fell into ownership of different aspects. I deal with the programs that are customer facing (CDMA and SIP interfaces); the second developer deals with the business logic (a separate program) and the third deals with SMPP (also customer facing, but not as critical as the CDMA and SIP interfaces). And it's not like we (my team) are fiercely protecting our turf (each of our programs)---I have worked on both the business logic and SMPP service, but generally, each of us just gravitated to what we find enjoyable.

I do not know how the other teams divide their work.

Bug reporting is pretty each to route as each portion of our service is clearly delineated (with the possible exception of the Android core and UI teams).

As far as features go, it depends upon the feature. Yes, there are some features that affect all the teams (such as number to name translation---have to provision that, deal with obtaining the info during call processing and having the phone receive and display such information) and some that only affect one department (like supporting SIP---largely my team).

[1] I work in the call processing side of things.

</comment><comment><USER12> In our case, teams don't own projects/code-bases, they own "features" and "releases".

About 67% of our code is some form of Ruby - some of it Rails, some of it custom Ruby code running in Kubernetes+Docker processing data.

The other 33% of our code is Rust - and not just service side code but Rust that has to run on multiple platforms with varying deep operating systems knowledge.

My team generally owns Features and Releases related to the Rust code because two of the three members are OS programmers by experience. That said, we don't exclusively work on the Rust code and sometimes wander into the Ruby code base.

Similarly, other teams occasionally need to update the Rust code to generate some new data - a lot of that is pretty basic stuff and doesn't require deep OS knowledge. So they'll make changes there.

Since our stack is so heterogenous, it's hard to have everyone work on everything. However, from what I know of most companies outside Apple/MSFT/Google/etc, they're gonna fall in the "we own web services" where the only real bifurcation will be "frontend code" and then "middle-to-backend code". Maybe throw in some apps as well.

</comment><comment>===

Now all of that said - the reason we went to teams owning "features" and "releases" was to push folks to not be possessive of code. Stuff changes and it changes quickly, so there's not much use trying to isolate folks. Document gratuitously, test heavily, and refactor often.

<comment><USER13> I like the idea of owning features and releases. This lets the team to assign a responsible person for documenting and demoing the new feature or release.

How do you respond to emergencies when your people don't own projects or code bases? Who gets woken up at midnight? The person responsible for the latest release? Wouldn't that discourage people from deploying new releases?

<comment><USER12> SRE + On Call Dev Engineer.

Basically SRE takes the page - if they can't troubleshoot it or restore it to normal service, then the on call engineer gets called.

In our case, we're still small enough that one on call engineer has to take the load regardless of feature/product.

The exception is the aforementioned Rust code base which calls myself or the other engineer. But this is because it's not running on our infra - it's running on customer boxes so that's a different support story.

Re:

> How do you respond to emergencies when your people don't own projects or > code bases? Who gets woken up at midnight? The person responsible for the > latest release? Wouldn't that discourage people from deploying new releases?

Culturally, our engineering team doesn't really tolerate "not deploying". That's not to say that you're being measured by number of deploys like some sort of perverse "IBM Lines of Code" metric - but you're expected to be deploying code as it's ready via PR + Tests.

It's not a perfect system but we've tried pretty hard during hiring to select folks that are well aligned with how we think about this. No one gets to own their space and no one is immune from rolling their sleeves up and figuring it out. If that isn't someone's thing, we try to find that out during the interview because it doesn't fly internally with the team.

</comment></comment></comment><comment><USER14> At my current workplace, most top-level subdirectories in the source tree have a primary author. That person is (nominally) "owner" of that code. If they aren't the one making changes, they're almost always at least the one doing the code review.

Bugs by default get routed to the person who wrote the code (presuming that we can tell which code the bug is in). If that person finds out the bug is somewhere else, the bug gets transferred to a new owner.

<comment><USER15> > Bugs by default get routed to the person who wrote the code...

That was the root of some very toxic teams I've seen. Because it built a lack of shared ownership as a team, it inspired competition instead of cooperation, and people would just ignore problems because "it wasn't my code".

Admittedly, that is a problem with the leadership that took the team to that place, but I'd be interested in hearing counter-examples of how to avoid such pitfalls.

<comment><USER3> I hate that attitude. Especially if a bug is impacting something I am doing, I'll just fix it myself and let them know.

</comment></comment></comment><comment><USER16> Everyone "owns" the code. Then there's the guy you go to when it fails.

Helps to document things, so you at least have something to throw at people when they come asking.

</comment><comment><USER17> Ideally you want to restrict changes to the owners (I don't mean hard limits) So instead of having a team responsible for a part of code, they are responsible for the product. So if a new integration is needed, the owner is a service provider and should provide the interface or service for their client. That is fairly easy to setup with Microservices. However, that is a bit harder in a monolithic application code base.

In my workplace, we use the above model for almost everything. And there is one old code base where we use Github code ownership feature to force everyone to ask for a code review from owners. But even there, it doesn't happen very often that people from different domain need to touch a code of another domain.

And that is the second point as well. Dividing responsibilities base on domains instead of components/modules between teams make it easier as most of the time they are not going to touch a code outside their own domain.

</comment><comment><USER18> I work for a large global company, and my department is building a fairly large Angular application. My team "owns" the primary project and several shared component libraries, and other teams build features for this project.

These teams are from all over the world, and many of us have never worked closely before this project began.

When we first started the project, we decided to split the UI into feature projects which are packaged and referenced in the common project. Each team owns their own feature projects; however, everyone is welcome to contribute PRs to any of the projects.

Some of our projects are shared and maintained by many teams, but we always have one team that owns each project.

</comment><comment><USER19> By trusting the people working here. Anyone can commit anywhere, so long as they get a reviewer. We ask the reviewer to punt to someone better qualified if they're not sure how to best proceed.

</comment><comment><USER20> I had written about this topic a few years ago. Hopefully it is of use to you and provides you the necessary tips.

[https://www.softwareyoga.com/individual-code- ownership](https://www.softwareyoga.com/individual-code-ownership) [https://www.softwareyoga.com/collective-code- ownership](https://www.softwareyoga.com/collective-code-ownership)

</comment><comment><USER21> I, too, am curious about this especially if your repository has started to become a mono-repo. My team has started owning most of the code reviews as more teams get added and contribute to their sections of the code base but it gets pretty hectic. It's not as simple as assigning certain folders as a group because lots of things are intertwined.

</comment><comment><USER22> We struggle with this question where I work and there is some toxicity.

I've been wondering if you could add a comment to the top of files to indicate ownership (//owners:someTeam, someGuy). Then your CI could parse the modified files and require a review from a team and/or send a notification to said user.

<comment><USER23> Github has the code owners feature. A pull request can't be merged until all the owners approve.

<comment><USER22> and what if you don't use GitHub?

<comment><USER24> One option is that the feature is built on a plain text .gitignore-like (.gitattribute-like more accurately) CODEOWNERS file(s) in a repository that you could implement support for in whatever tools that you do use.

[https://github.blog/2017-07-06-introducing-code- owners/](https://github.blog/2017-07-06-introducing-code-owners/)

</comment></comment></comment></comment><comment><USER25> sure everyone "owns" the code, but I think having at least two people be the true owners and have full understanding of a module so they can debate details/direction, then everyone else floats around them contributing. I always imagine this as an ideal setup

</comment><comment><USER26> git blame

hum.. person left.

recode my way around that code so the new feature works and I'm not tagged as the owner by future git blames.

/sarcasm. I think.

</comment><comment><USER27> 1\. I don't say "guys", I say "folks"

2\. Code is owned by teams of people and not individuals.

<comment><USER28> According to dictionary.com, the definition of "guys" is "persons of either sex; people"

The definition of "folks" is "people in general"

I'm not sure what point you are trying to make here.

<comment><USER29> [https://msmagazine.com/2013/09/06/a-guy-is-a-man-is-a- guy/](https://msmagazine.com/2013/09/06/a-guy-is-a-man-is-a-guy/)

> _Thought Experiment #1: Imagine a room full of men and women. Someone stands > at the front and says, "I want all the guys to stand up." What happens > next?_

I don't know where I personally land on this debate, but the points are cogent.

<comment><USER30> Experiment #2: Someone says, "OK, I want you guys to stand up." with no particular emphasis on any word or looking at particular people. Did something different happen? I think that's closer to the original post's usage. If you say it the way it's naturally said instead of the strawman way in this article, it's not explicitly gendered or exclusive, maybe just a little implicitly. Reason enough to dispose with it I guess, but let's argue from reality not a made-up caricature.

<comment><USER31> This is a really good point. The usage of the term really ads clarity to it's usage.

You guys - gender neutral. The guys - gender specific.

I think a lot of people who are annoyed by the term guys don't like the fact that there is a word that has both gender neutral and gender specific definitions being used as gender neutral.

Dudes is another one.

Spanish has an explanation for this (which i think is what people are frustrated by).

Ellos => them male Ellas => them female Ellos => a group of 10 women with one man in the bunch</comment></comment></comment></comment></comment>


Thomas Browne, who coined "hallucination" and "suicide" - <AUTHOR> http://www.newyorker.com/books/page-turner/doubting-thomas <comment><USER2> Just came across Thomas Browne's "Fragment on Mummies" the other day. It's wonderfully strange and beautiful - like the author of this article says, it almost sounds like the type of language you'd find in the King James Bible. I recommend reading the whole thing (it's just a few paragraphs) but this is a favorite part:

"Death, that fatal necessity which so many would overlook, or blinkingly survey, the old Egyptians held continually before their eyes...

Yet in those huge structures and pyramidal immensities, of the builders whereof so little is known, they seemed not so much to raise sepulchres or temples to death, as to contemn and disdain it, astonishing heaven with their audacities, and looking forward with delight to their interment in those eternal piles. Of their living habitations they made little account, conceiving of them but as hospitia, or inns, while they adorned the sepulchres of the dead, and planted them on lasting bases, defying the crumbling touches of time and the misty vaporousness of oblivion. Yet all were but Babel vanities. Time sadly overcometh all things, and is now dominant, and sitteth upon a sphinx, and looketh unto Memphis and Thebes, while his sister Oblivion reclineth semisomnous on a pyramid, gloriously triumphing, making puzzles of Titanian erections, and turning old glories into dreams. History sinketh beneath her cloud. The traveller as he paceth amazedly through those deserts asketh of her, who buildeth them? and she mumbleth something, but what it is he heareth not."

[http://penelope.uchicago.edu/misctracts/mummies.html](http://penelope.uchicago.edu/misctracts/mummies.html)

</comment><comment><USER3> It's a shame that NYRB published Urn Burial separately from The Garden of Cyrus, since the two pieces were conceived by Browne as going together. You can get them both (along with Religio Medici and several more) from Penguin in The Major Works of Thomas Browne.

</comment><comment> stephen-mw > he simply introduced new words into the still-inchoate English language when > none seemed to do the trick; Browne is responsible for "hallucination" and > "suicide," along with about a hundred other neologisms.

I'm having a hard time believing there wasn't a translation of the word "suicide" until 1600s. Wasn't suicide all over classical mythology? Wasn't it well known that Cato committed suicide rather than submit to Caesar? How did they describe such things?

<comment><USER4> They'd just say: "He would rather kill himself than..."

<comment><USER5> And here, "kill himself" sounds better than "commit suicide".

</comment></comment></comment><comment><USER6> > The pervasive uncertainty of Browne's writing offers a respite from the > stifling certainties of today. We have religious zealots, just as the > seventeenth century did—but we also have zealots of so many more varieties. > We have had the end of history and the death of faith. Civilizations > clashed, everything is post-something. Cassandras say we are digital drones; > Panglosses say the Internet is freedom. We believe in St. Paul Krugman or > St. Paul Gigot. Anyone who says we are a society lacking belief is not > paying attention. If anything, we are lacking doubt.

[http://www.smbc-comics.com/?id=2939](http://www.smbc-comics.com/?id=2939)

This is the summary of the article and an smbc comic I was exposed to today, the combination of which have brought me back to my repeated question of how exactly have we improved the communication of important ideas over the last few centuries? Have we improved it at all?

Or perhaps I should be asking what the important ideas are.</comment>


Sony Pictures has posted "The Godfather" to YouTube - <AUTHOR> http://www.youtube.com/user/SonyPicturesUK

<comment><AUTHOR> Posting this because it _may_ be an indication that the Big Media companies are starting to get this, and thus may be of interest to HN types.

<comment><USER2> Right? It's kind scary.

Thanks for this.

</comment></comment><comment><USER3> I just tried the link and YouTube has a notice saying it was a fake account.

<comment><AUTHOR> Yep. Oh well, we could hope...</comment></comment>