Ask HN: Would you hire a felon for technical work? - <AUTHOR> Committed a white collar money crime, over two decades ago. Did time for it. Left that behind. Completed parole, even got pardoned for the crimes. NOTE: pardon != expungement.
I have an extensive IT background, including sysadmin, support, automation coding, HPC admin.
Jobs and gigs since then have had me working on critical systems and having Administrator/root access to sensitive data.
It just seems harder lately to get past this, and it's extremely discouraging.
Would you hire someone with those creds, or does the presence of a past felony just automatically preclude them from consideration? <comment><USER2> A friend of mine had a similar issue. Drug-related. No big company would hire him. Hell, my contract with a large company said I couldn't hire him even if I wanted to.

Oddly enough, the way he got around it was to start his own consulting company and hide behind it. Nobody would hire him as an "employee" but they would hire his company without asking about his personal history. Seems like a big loophole but it worked.

<comment><USER3> Even that loophole does not work, if the client insists on background checks of the people who work for consulting companies. Big companies ask staffing companies to submit background reports.

<comment><USER4> At which point, unfortunatelym doing business with big companies is no longer a time-efficient pursuit.

Despite how much I hate to say it, this world is still extremely political and illogical and laws/policies/reality are shaped by those with the deepest pockets and biggest sticks.

</comment></comment></comment><comment><USER5> If someone I knew would recommend you, I wouldn't care at all about the record. You need to build a network and you'll be golden.

If on the other hand, if you just applied on a website - I would not hire you. Some people will not say that on here, but you're looking for honest feedback. That's mine.

<comment><USER6> completely agree with this as far as the recommendation overthrows the record

</comment></comment><comment><USER7> Personally, I would not care so much but I work for a big company and background check is done by HR. I only ask technical and work related questions.

HR tend to be risk averse but I cannot really say what their policies are. In my company, I have never heard of anyone who was made an offer by hiring manager, had that offer rescinded after background check.

Also if you volunteer your felony during interview and I have another strong candidate, I will probably go with them. That is because I would be afraid that HR will not allow us to go with you and we will waste everyone's time. I rather go with safer option.

<comment><AUTHOR> This part is so discouraging. I've experienced this many times.

<comment><USER7> To be honest, don't voluntarily give any negative information. Don't lie if someone asks directly about criminal background.

Normally, job application is filled out after hiring manager makes an offer. This where you might need to fill out any felonies. If during this phase something goes wrong, I would not hold it against you. And if someone does, you tell them you have been working for 20 years at different jobs and didn't think your felony was an issue anymore.

One of these days, I will ask someone from HR about this.

<comment><USER8> > Don't lie if someone asks directly about criminal background.

If you have a record legally expunged by a court, if it has been expunged automatically after a certain period of time, or even if you've been pardoned or something, you're generally expected to lie if asked the question. Great system.

</comment></comment></comment></comment><comment><USER9> I never asked candidates about their past if it wasn't relevant to the job. It's hard enough to find any people at all that can do the job, so I can't afford to turn away people for things they did or did not do a long time ago. If you are qualified for the position, I'll hire you.

The big problem is of course, finding people that are qualified, and most people that replied to my job ads were just utterly unqualified for the job. (I received applications from programmers with "15 years of experience" who have never heard of source control.)

</comment><comment><USER10> No. My company has state and federal government contracts which require background checks on all employees. Whether I find you personally trustworthy is irrelevant, the contracts in place for government network infrastructure worth many millions of dollars of annual revenue could be voided by hiring you and concealing your felony from the contracting agencies. Hiring you could result in a dozen people losing their jobs, some of whom are the sole providers for their families.

I do not have the political influence or lobbying ability to change these agencies' service/contracting procurement policies. The work will simply go elsewhere if I have a felon with 'enable' on the routers.

</comment><comment><USER11> After two decades I would bite. Two years, probably not. With a pardon, absolutely. Exception would be if I had any concern about the safety of my colleagues or compliance requirements.

Credentialism for this stuff is out of control. Between school volunteering, work, little league, etc I have like 5 entities monitoring me.

</comment><comment><USER12> Relevant discussion on the 70MillionJobs launch note [0]

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

</comment><comment><USER13> Yes I would but I would rather not know and wouldnt ask if it was up to me. I already got enough things to worry about!</comment>


Geospatial processing with Clickhouse - <AUTHOR> https://carto.com/blog/inside/geospatial-processing-with-clickhouse <comment><USER2> An interesting path to big data for geo.</comment>


The future of war in space is defensive - <AUTHOR> http://www.thespacereview.com/article/3131/1 <comment><USER2> Clausowitz deals with land warfare. A better reference is Hughes "Fleet Tactics and Coastal Combat" which deals with Naval warfare. In space you have an "attrition environment" so the proper policy is to apply "effective firepower first".

Unfortunately even Naval tactics won't be effective as there may be no available opponent. The easiest way to destroy a space object would be to hit it with marbles. The kinetic energy of a depleted uranium marble attack would likely penetrate almost any defense, including Whipple shields. A cloud of marbles would be hard to avoid. Of course, once the attack occurs the resulting space junk will likely cause a Kessler cascade ([https://en.wikipedia.org/wiki/Kessler_syndrome](https://en.wikipedia.org/wiki/Kessler_syndrome)) and end up destroying everyone's assets.

The future of war in space is maintaining the peace.</comment>


Ask HN: What's the best computer science book you've read recently? - <AUTHOR> <comment><USER3> The Elements of Computing Systems: Building a Modern Computer from First Principles by Noam Nisan and Shimon Schocken

Basically it has you hands on work through the basics of every concept active in a modern computer save for networks and web.

You use software tools provided with the book to design memory, ALUs, intepreters, VMs, compilers Operating Systems and applications.

Available as a free online class at [http://www.nand2tetris.org](http://www.nand2tetris.org)

<comment><USER4> 10 years in my to-read pile and going strong.

<comment><USER5> I empty my inbox periodically -- no reason to keep unread stuff around.

</comment></comment></comment><comment><USER6> The Plausibility of Life by Kirschner & Gerhart

OK, this is an oddball one, in that a book on Evo Devo is pretty far from CS, but reading it completely changed how I look at software architecture, protocols, formats, programming languages, and a whole range of other CS- related topics.

Superficially, it is what it says on the tin: an examination of the mechanisms by which life manages to evolve at all, that keep most mutations from being immediately lethal, and instead have a decent chance of producing (potentially) useful variations.

But under the hood, I've found it extremely interesting how and why so many aspects of the living world are resilient and even antifragile, and there is are _lot_ of useful ideas and concepts to mine beyond relatively superficial biomimicry like genetic algorithms, neural networks, or even "design for failure" approaches for software and services.

Read it, and you won't think about "Worse is Better", "Bus Numbers", or Chaos- Monkeys the same way ever again.

[http://yalebooks.com/book/9780300108651/plausibility- life](http://yalebooks.com/book/9780300108651/plausibility-life)

<comment><USER7> This book influenced me tremendously. It explains how can random process (e.g. genetic mutation) builds highly non-random structures (e.g. the human eye). Recently I was using American Fuzzy Lop ([http://lcamtuf.coredump.cx/afl/](http://lcamtuf.coredump.cx/afl/)) to find bugs in my software, and was able to appreciate the surprising effectiveness of the "random" strategy it employs to discover structures in the program. For example, AFL could construct a valid JPEG using randomized input: [https://lcamtuf.blogspot.com/2014/11/pulling-jpegs-out-of- th...](https://lcamtuf.blogspot.com/2014/11/pulling-jpegs-out-of-thin- air.html).

<comment><USER6> Hey thanks for the link, that jpeg example is really quite cool.

One of the things that I gained from the book was a bit better "feel" for getting the right granularity/modularity in order to facilitate _evolvability_ (as in the chunks I might want to swap out for another implementation, while leaving others in place), as a separate concern from _maintainability_.

BTW, I've noticed is that the "order blindly emerging from chaos" theme keeps popping up in fiction by writers like Bruce Sterling, Cory Doctorow, and Charles Stross (all favorites of mine).

</comment></comment></comment><comment><USER8> The Algorithm Design Manual by Skiena.

Each section contains a story of some situation he was in where he faced a problem which he solved by applying one of various algo techniques (DP, divide and conquer, etc.). After reading CLRS for a class, it was nice to see how some of the most common textbook algorithms have been applied by a notable computer scientist.

<comment><USER9> This book is highly overrated. Algorithms by Sedgewick ([http://algs4.cs.princeton.edu/home/](http://algs4.cs.princeton.edu/home/)) is a much better book for learning and understanding algorithms. Skienas book is a simple collection of (sometimes very exotic) algorithms. It won't teach you anything, it will only tell you what exists.

<comment><USER10> > Skienas book is a simple collection of (sometimes very exotic) algorithms

It has the same material as Sedgewick, doesn't it?

<comment><USER9> No, I believe there are more algorithms listed in Skienas book. But from Skienas book you will barely understand them and it won't teach you how to really implement them. Sedgewicks book is much better in that respect. One can compile and run the given Java examples and actually play around with them. Skienas book is a good reference for postdocs in algorithmic design. Sedgewicks book on the other hand is for people who actually want to implement these algorithms.

</comment></comment></comment></comment><comment><USER11> I still haven't read anything better than Code by Charles Petzold [1] and it's not even close.

[1] [https://www.amazon.com/Code-Language-Computer-Hardware- Softw...](https://www.amazon.com/Code-Language-Computer-Hardware- Software/dp/0735611319)

<comment><USER12> It is a fantastic book. It doesn't take u into typical algorithms (at least that I recall), but rather it explains as intuitively as possible how a computer is built up from flip flops and binary logic to assembly, intermediate language and on to full-on compilation of a useable language.

Basically beginner programmers can acquire a broad understanding of the foundation the programs you're building are built on by reading this book. It reads more like a non-fiction expose than a programming language tutorial book, which is to say, given its subject, it's an easy read you can do on the couch. Depending on your skill and knowledge level, there may be a few sections you have to re-read several times until you understand it, but you won't feel as though you need to go over to your computer chair and try something to fully grasp it.

If you can do basic arithmetic, you can get through this book. That seems to be the hidden premise. That computers are easy and should be easy to understand. This book is a testament of that. Though I'm sure some will find this doesn't go deep enough. But the point is: learning so generally will create many entry points for you to follow up on in your journey into programming and computer science. It will clear up many things and essentially make the path seem less scary and out of reach. This book achieves that really well. High level programmers will come away feeling far less insecure about their lack of knowledge of the underpinnings of whatever it is they are developing. I know I did. I can't say enough about this book. It's the real deal. I'm sure those with a computer science degree might have more to say (that is they likely think it's a cursory overview), but I think for everyone else it's a computer science degree in a book you can read in one or two weeks. At least half the degree. For the second half, I recommend Algorithms In A Nutshell. And done! Go back to programming your high level JavaScript react app and get on with your life.

On a side note: it's my opinion that theory first is the wrong way. Application first, theory as needed is the right approach. Otherwise it's like learning music theory before u know u even like to play music. U might not even like being a programmer or be natural at it. And if u spend 4 years studying theory first, u will have spent a lot of time to discover what u could have in like a month. In addition, it can suck the joy and fun out of the exploration of programming and computer science. It's natural and fun to learn as u dive into real problems. Everything u can learn is on the internet. It's very rewarding and often faster to learn things when you are learning it to attain a specific goal. The theory u do learn seems to make much more sense in the face of some goal you are trying to apply it to. In short over ur computing career u can learn the same stuff far faster and far more enjoyably if you do so paired with actual problems.

But that said sometimes u do gotta step back and allocate time for fundamentals, even if u have no specific problem they are related to. However you will know when it's time to brush up on algorithms, or finally learn how the computer works below your day to day level of abstraction. Just know that a larger and larger percentage of us programmers went the applied route, rather than the computer science theory first + formal education route. It's probably the majority of programmers at this point in time. In short u r not alone learning this as u go. Learn to enjoy that early on and save yourself from the pain of insecurity of not knowing everything. This is an exploration and investigation, and perhaps you will make some discoveries nobody else has been able to make, and far before u have mastered and understood everything there is to know about he computer. Perhaps that's it's biggest selling point --you don't have to know everything before you can contribute to the computer world! So enjoy your pursuits in programming, knowing in your unique exploration at any time u may come up with something highly novel and valuable.

<comment><USER13> Is this book relevant only to beginners? Do you think a programmer with about 7 years of experience (in C, C++, C#, Java) will find it useful?

<comment><USER14> It's a really short and interesting read. It's difficult to think anyone could read it and find it to be a waste of time.

</comment></comment></comment></comment><comment><USER15> Quantum Computing Since Democritus by Scott Aaronson.

A brilliant MIT professor's reflections on the intersection between computer science, physics and philosophy.

Here are the lecture notes and book: [http://www.scottaaronson.com/democritus/](http://www.scottaaronson.com/democritus/)

I also very much recommend the author's blog: [http://www.scottaaronson.com/blog/](http://www.scottaaronson.com/blog/)

<comment><USER16> I second this, although I am not finished with it, I can say it is a very interesting read. Thanks for the link to the author's site which has lecture notes, I didn't know this existed. The lecture notes are easy going an have a good sense of humor, such as the following:

"It's a shame that, after proving his Completeness Theorem, Gödel never really did anything else of note. [Pause for comic effect] "

Cheers.

</comment></comment><comment><USER17> The Mythical Man-Month.

[https://en.wikipedia.org/wiki/The_Mythical_Man- Month](https://en.wikipedia.org/wiki/The_Mythical_Man-Month)

It was written 40 years ago, but it is still relevant to today. Its so important to think about how to build effective engineering teams.

<comment><USER9> Another classic is [https://en.wikipedia.org/wiki/Peopleware:_Productive_Project...](https://en.wikipedia.org/wiki/Peopleware:_Productive_Projects_and_Teams)

"It is the one thing every software manager needs to read... not just once, but once a year." (Joel Spolsky)

</comment></comment><comment><USER18> Quantum Computing for Computer Scientists

Note, you have to be willing to put the time in, especially if your linear algebra is rusty or (like me) you have only a passing familiarity with complex numbers.

With that in mind, it's almost entirely self-contained and you can immediately start to make connections with classical computing if you're familiar with automata.

I've been interested in learning about quantum computing for a few years now and this book finally got me going.

[https://www.amazon.com/Quantum-Computing-Computer- Scientists...](https://www.amazon.com/Quantum-Computing-Computer-Scientists- Yanofsky/dp/0521879965)

[update]

As an aside it's a really great excuse to try out one of the many computer algebra systems out there. I gave Mathematica a trial for fun since I'd already used SageMath in the past.

<comment><USER19> Leonard Susskind's "Quantum Mechanics: The Theoretical Minimum" as well as Nielsen & Chuang's "Quantum Computation and Quantum Information" are also fantastic resources. I've got both sitting here on my desk :)

</comment></comment><comment><USER20> Engineering a Compiler 2nd Ed by Cooper & Torczon

I used it to supplement my prescribed compiler construction textbook and it's incredibly useful! Also surprisingly easy to read compared to some texts with a very math-heavy approach.

<comment><USER21> This book was my greatest buy ever! I once went to Fry's electronics to their book section - my expectation was to find only popular books there, when lo and behold, I see this book on compilers. I turn it over to look at the price tag, thinking I'll have to shell out something like $80 for the book and to my shock and surprise the tag says,... wait for it... $0.01 That's right one cent! At first I think this is some kind of prank and somebody peeled off a price sticker from some discounted stale candy or something and stuck it on this book. I'm of half a mind to see if I can buy slip this book by the store checker and have them just scan the one cent price tag and not to a double take. But my concsience gets the better of me and I walk up to a store clerk point out the one cent price tag and ask them to do a real price check so I can find out the fair price. The clerk looks up the book in his computer and says, nope that is the correct price in their system! So I bought "Engineering a Compiler 2nd Ed. By Cooper & Torczon" for $0.01! My greatest book buy ever!

<comment><USER20> Wow, that's awesome! I picked up mine second hand at a textbook distributor for the equivalent of about $30.

For anyone interested in other books on compiler construction, I would recommend these:

\- "The Basics of Compiler Design" by Torben Mogensen

\- "Modern Compiler Implementation in C" by Andrew Appel (ML and Java versions available too)

\- "Modern Compiler Design" by Grune, Bal et al.

The Dragon Book is obviously infamous for this topic, but I would recommend covering at least two slightly more basic texts before taking it on.

<comment><USER22> Try Principles of Program Analysis by Nielson & Nielson. Uber hardcore and beautiful approaches to static analysis and optimization, on a very general mathematical framework.

</comment></comment></comment></comment><comment><USER23> A Science of Operations by Mark Priestley ([http://www.springer.com/gb/book/9781848825543](http://www.springer.com/gb/book/9781848825543))

This is cheating a bit, because the book is history of computer science rather than computer science, but I think anyone interested in programming should read it. We often think about history of computing (and what it teaches us) in a retrospective way (we see all the amazing totally revolutionary things that happened), but it turns out that if you look deeper, there is often a lot more continuity behind key ideas (and we just think it was a revolution, because we only know a little about the actual history). This book goes into detail for a number of major developments in (early) programming and it makes you think about possible alternatives. It was one of the books that inspired me to write this essay: [http://tomasp.net/blog/2016/thinking- unthinkable/](http://tomasp.net/blog/2016/thinking-unthinkable/)

<comment><USER24> Along these lines, "A Life out of Sequence: A Data Driven History of Bioinformatics" ([http://press.uchicago.edu/ucp/books/book/chicago/L/bo1674439...](http://press.uchicago.edu/ucp/books/book/chicago/L/bo16744390.html))

If you you work in bioinformatics it is weird how little history the average bioinformatician knows (the field only really dates back to the late 1960s). People may know things like PAM matrices, but not Margaret Dayhoff who created them (not to mention the standard amino acid codes used today).

</comment></comment><comment><USER25> Deep Learning (Adaptive Computation and Machine Learning series) by Ian Goodfellow, Yoshua Bengio, Aaron Courville

Came out in November 2016. Split in 3 parts:

Part I: Applied Math and Machine Learning Basics (Linear Algebra, Probability and Information Theory, Numerical computation)

Part II: Deep Networks: Modern Practices (Deep Feedforward Networks, Regularization, CNNs, RNNs, Practical Methodology & Applications)

Part III: Deep Learning Research (Linear Factor Models, Autoencoders, Representation Learning, Structured Probabilistic Models, Monte Carlo Methods, Inference, Partition Function, Deep Generative Models)

[https://www.amazon.com/Deep-Learning-Adaptive-Computation- Ma...](https://www.amazon.com/Deep-Learning-Adaptive-Computation- Machine/dp/0262035618)

<comment> m-i-l Also available at [http://www.deeplearningbook.org/](http://www.deeplearningbook.org/) .

</comment></comment><comment><USER26> "Structure and interpretation of computer programs"

Definitely recommended.

<comment><USER27> I finished it up a few months ago and I cannot recommend it enough.

The real soul of SICP is in it's exercises however. It asks you to build on your own prior work in inventive ways, challenging you to solve the exercises correctly, but also to do so in a maintainable way.

I wrote up some supplementary material to make the experience smoother for a practicing programmer: High-level requirements of the chapter subprojects, Pitfalls and paradigms embedded in some of the footnotes, Answers to (nearly) all exercises, a testing framework for Chapter 4 interpreter (including the JIT compiler), a GUI for running Chapter 5 virtual machine here: [https://github.com/zv/SICP-guile](https://github.com/zv/SICP-guile)

<comment><USER28> The one thing I really wish I had was a comprehensive test suite for all the exercises. They are (obviously) hard to solve and there's no other way to see if you were right but to check the solution. It's a huge flaw in most CS books, feedback without hand feeding you the answers.

<comment><USER29> I disagree with this pretty strongly, actually. The best skill you can get from SICP-level exercises is looking at the code and being completely confident that you understand it and that it is correct. The best way to use them is to write the code without running it, and once you are sure, review it with someone else to find out if you were right.

This breaks down a bit around chapters four and five where you are plugging in parts of a larger code base, and the accidental complexity starts to dominate.

<comment><USER30> Reviewing with someone else can be a challenge for self-study; that's the step a test suite would replace.

Of course someone could use the test suite to just make changes semi-randomly until it works, but there's no reason it has to be used that way.

<comment><USER29> Self-study students can find someone online to study together.

I like the amount of projects SICP inspires. That's one of the best things about it. I wouldn't want to discourage writing a test suite, but I wouldn't suggest studying it by using one.

SICP questions are designed to have elegant solutions, which may be missed, this is one reason why a study group is better than a test suite.

</comment></comment></comment></comment></comment></comment><comment><USER31> I tend to get most of my CS content from papers & web pages, but Sutton & Barto's Reinforcement Learning book is pretty good: [https://webdocs.cs.ualberta.ca/~sutton/book/the- book-2nd.htm...](https://webdocs.cs.ualberta.ca/~sutton/book/the- book-2nd.html)

</comment><comment><USER32> "The Annotated Turing" by Charles Petzold: [https://www.amazon.com/Annotated- Turing-Through-Historic-Com...](https://www.amazon.com/Annotated-Turing- Through-Historic-Computability/dp/0470229055)

<comment><USER33> On my "to read" list, but haven't read it yet. However, I started watching these screencasts on Turing Machines and Lambda Calculus (examples in Python), and they are fantastic: [https://www.destroyallsoftware.com/screencasts/catalog/intro...](https://www.destroyallsoftware.com/screencasts/catalog/introduction- to-computation)

Also, I found this blog post good: "Tech Book Face Off: Gödel, Escher, Bach Vs. The Annotated Turing" [http://sam-koblenski.blogspot.se/2016/01/tech-book- face-off-...](http://sam-koblenski.blogspot.se/2016/01/tech-book-face-off- godel-escher-bach-vs.html)

</comment></comment><comment><USER34> Like others in this thread, this is more (only, in fact) about programming but I found The Go Programming Language to be an absolutely perfect introduction to Go with fantastic examples and succinct prose. It's beautifully typeset as well, which doesn't hurt.

[http://www.gopl.io](http://www.gopl.io) ISBN: 978-0134190440

<comment><USER35> I found this to be helpful for learning basics of web development, [https://github.com/thewhitetulip/web-dev-golang-anti- textboo...](https://github.com/thewhitetulip/web-dev-golang-anti-textbook)

<comment><USER36> Thank you! I live the idea of an anti textbook :)

</comment></comment></comment><comment><USER37> I've been reading _The Practice of Programming_ (Pike, Kernighan) lately; it's mainly geared towards Java and C/C++ programmers, but even as a DevOps engineer I'm finding a lot of it useful.

[https://www.amazon.com/Practice-Programming-Addison- Wesley-P...](https://www.amazon.com/Practice-Programming-Addison-Wesley- Professional-Computing/dp/020161586X)

</comment><comment><USER38> Lately I've been reading Network Algorithmics. Awesome book.

[https://www.amazon.com/Network-Algorithmics- Interdisciplinar...](https://www.amazon.com/Network-Algorithmics- Interdisciplinary-Designing-Networking/dp/0120884771)

<comment><USER39> Indeed! This book is likely to be 100x more interesting than your local college's undergrad networks course.

The dozen or so principles Varghese lays out for writing fast networking code is reason enough to pick it up. The writing is very approachable, too. Reminds me more of the early network operator books than a CS text.

</comment></comment><comment><USER40> Type-driven development with Idris ([https://www.manning.com/books/type- driven-development-with-i...](https://www.manning.com/books/type-driven- development-with-idris)).

It was a real eye-opener of what types can do.

<comment><USER41> I've been looking at this but I don't really know Haskell (just f#). In your opinion is it worth trying before knowing a Haskell? I'm mostly interested because I wish to learn f-star as well, which also has dependent types.

<comment><USER40> I don't know Haskell either, but the book starts from scratch. It can be followed with no problem.

</comment></comment></comment><comment><USER42> The Art of Multiprocessor Programming by Shavit & Herlihy. Recommend topping it off with the lecture delivered at Microsoft Research ([https://youtu.be/nrUszqrlvi8](https://youtu.be/nrUszqrlvi8))

<comment><USER20> This is an excellent book! It was my prescribed textbook for an undergrad concurrent systems course. It's very "proofy" but explains a large amount of important concepts quite well.

The book is divided into two sections: Principles and Practice. The former introduces basic terminology, concepts and common mistakes. The latter is where it gets interesting and introduces real-world problems like cache coherence traffic.

The language used in the book is Java but the concepts can be applied to practically any language that supports concurrency. Highly recommended!

</comment></comment><comment><USER43> Algorithms to Live By: The Computer Science of Human Decisions

An interesting mix of computer science and psychology. Just started on this one recently. Highly recommended by a colleague. Seems great so far.

<comment><USER44> I'll take the counter-point on this one. I picked it up after it was mentioned in the YC's Summer Reading List; however, I found it to be a tire to finish.

The reasons and explanations given seem to touch around a technical, but not too technical approach to algorithms. Getting stuck in a place that probably just leaves both audiences a bit unhappy. For instance, there is a chapter that mentions that the optimal stopping point is ~37%. There is never any mention about how the 37% number is found. Of course, I could look it up but I could just as well look up the optimal stopping problem.

Aside from that, the examples come across as contrived and inapplicable. Sure merge sorting your socks sounds great, but I still will never do it!

</comment></comment><comment><USER45> Programming in Scala by Martin Odersky, Lex Spoon, and Bill Venners.

Beside a good introduction into Scala, that book also teach me the principles in computer programing. It's worth read again several times.

</comment><comment><USER46> I really like Introduction To Statistical Learning with Applications in R, by Daniela Witten, Gareth James, Robert Tibshirani, and Trevor Hastie.

It's the easiest book I've found to get into machine learning without any formal statistics training.

<comment><USER47> And it's free online [http://www- bcf.usc.edu/~gareth/ISL/ISLR%20First%20Printing.p...](http://www- bcf.usc.edu/~gareth/ISL/ISLR%20First%20Printing.pdf)

</comment></comment><comment><USER48> A List of Successes That Can Change the World: Essays Dedicated to Philip Wadler on the Occasion of His 60th Birthday

[https://www.amazon.com/gp/product/3319309358](https://www.amazon.com/gp/product/3319309358)

</comment><comment><USER49> Does ai count as CS? If so, I'd like to nominate the Deep Learning Book

<comment><USER50> I nominate it with a link [http://www.deeplearningbook.org/](http://www.deeplearningbook.org/)

</comment></comment><comment><USER51> Zero Bugs and Program Faster, I'd say. Here's a brief reflection: [https://www.opinionatedgeek.com/Blog/2016/11/23/zero-bugs- an...](https://www.opinionatedgeek.com/Blog/2016/11/23/zero-bugs-and-program- faster-by-kate-thompson)

</comment><comment><USER52> I'd highly recommend The Phoenix Project:

[https://www.amazon.com/dp/0988262509/ref=cm_sw_r_cp_awdb_pxm...](https://www.amazon.com/dp/0988262509/ref=cm_sw_r_cp_awdb_pxmFybEE46277)

The story they've wrapped around the shift to Agile for this company was extremely entertaining and kept me coming back to read more! Plus it has some very good thought exercises to take with you to your own job :)

<comment><USER53> I didn't _love_ this book, it was OK. It's heavily based off The Goal, and I thought that book was a bit better. I think if you have a certain dysfunction in your team AND the mandate to fix it, then The Phoenix Project is a must read. For everyone else it's kind of a waste.

</comment></comment><comment><USER54> Grokking algorithms. Great book, especially for someone like me who doesn't deal too much with this stuff (as an embedded systems engineer).

Grokking functional programming and deep learning seem awesome as well, but I haven't finished either so take my recommendation with a pinch of salt.

</comment><comment><USER55> If you are into operating systems:

The Design and Implementation of the FreeBSD Operating System

[https://www.amazon.co.uk/Design-Implementation-FreeBSD- Opera...](https://www.amazon.co.uk/Design-Implementation-FreeBSD-Operating- System/dp/0321968972)

<comment><USER56> Seconded. After being a FreeBSD developer for a dozen years some people might expect me to know everything this book covers, but in fact I pulled it out just last month to help me understand how some details of how the VFS layer and the NFS client worked.

<comment><USER55> I would be very impressed if anyone (human) could keep that whole book in their head!

</comment></comment></comment><comment><USER57> Has anyone read Probability and Computing: Randomized Algorithms and Probabilistic Analysis by Michael Mitzenmacher, Eli Upfal[0]? If so, how difficult are the exercises? Aside from doing problems I like to read solutions and analyze them to learn better style, new techniques/ideas. Are there any books like this one, but with solutions? Thanks.

[0] [https://www.amazon.com/gp/product/0521835402/ref=s9_simh_gw_...](https://www.amazon.com/gp/product/0521835402/ref=s9_simh_gw_g14_i5_r?ie=UTF8&fpl=fresh&pf_rd_m=ATVPDKIKX0DER&pf_rd_s=&pf_rd_r=KTK543K9T7G6W2Q4YHA5&pf_rd_t=36701&pf_rd_p=a6aaf593-1ba4-4f4e-bdcc-0febe090b8ed&pf_rd_i=desktop)

</comment><comment><USER58> The source code and commentary of xv6, a simple Unix-like teaching operating system. By far the best book on operating systems I have encountered so far.

[https://pdos.csail.mit.edu/6.828/2012/xv6.html](https://pdos.csail.mit.edu/6.828/2012/xv6.html)

(The alternative is learning PDP-11 assembler and reading the original Unix v6 sources with Lion's commentary.)

</comment><comment><USER33> The Effective Engineer by Edmond Lau. Not CS, more SW dev, but it is fairly new and I thought it was very good: [https://henrikwarne.com/2017/01/15/book- review-the-effective...](https://henrikwarne.com/2017/01/15/book-review-the- effective-engineer/)

<comment><USER59> I only had a chance to read part of the book (around the first 25% at most), but I found a lot of the ideas to be applicable to all forms of work. The ideas were well-explained and didn't require a software background. I intend to pick up a copy when I have the cashflow for it.

</comment></comment><comment><USER60> The Cathedral and the Bazaar by Eric S. Raymond. It's inspiring for embrace Open Source collaboration and also very useful for manage projects. In Guy Kawasaki's quote "The most important book about technology today, with implications that go far beyond programming"

<comment><USER61> >The Cathedral and the Bazaar by Eric S. Raymond

Had reddit :)

That reminds me about the book:

Open Sources: Voices from the Open Source Revolution:

[http://www.oreilly.com/openbook/opensources/book/](http://www.oreilly.com/openbook/opensources/book/)

It is free to read at the above link. I had read many of the chapters some years ago. Pretty interesting stuff.

It consists of multiple chapters, each written by different well-known people associated with prominent projects from the open source movement, at a time when it was relatively new (1999).

The paragraphs that I remember the most from it are from this chapter:

Future of Cygnus Solutions

An Entrepreneur's Account

Michael Tiemann

(Cygnus Solutions was a company which initially ported and improved GCC and its toolchain to multiple Unix platforms, and made a business out of it, before open source was a gleam in many people's eyes. They did well and were acquired by Red Hat some years later.)

Here are the paragraphs:

[ Again, a quote from the GNU Manifesto:

There is nothing wrong with wanting pay for work, or seeking to maximize one's income, as long as one does not use means that are destructive. But the means customary in the field of software today are based on destruction.

Extracting money from users of a program by restricting their use of it is destructive because the restrictions reduce the amount and the ways that the program can be used. This reduces the amount of wealth that humanity derives from the program. When there is a deliberate choice to restrict, the harmful consequences are deliberate destruction.

The reason a good citizen does not use such destructive means to become wealthier is that, if everyone did so, we would all become poorer from the mutual destructiveness.

Heavy stuff, but the GNU Manifesto is ultimately a rational document. It dissects the nature of software, the nature of programming, the great tradition of academic learning, and concludes that regardless of the monetary consequences, there are ethical and moral imperatives to freely share information that was freely shared with you. I reached a different conclusion, one which Stallman and I have often argued, which was that the freedom to use, distribute, and modify software will prevail against any model that attempts to limit that freedom. It will prevail not for ethical reasons, but for competitive, market-driven reasons.

At first I tried to make my argument the way that Stallman made his: on the merits. I would explain how freedom to share would lead to greater innovation at lower cost, greater economies of scale through more open standards, etc., and people would universally respond "It's a great idea, but it will never work, because nobody is going to pay money for free software." After two years of polishing my rhetoric, refining my arguments, and delivering my messages to people who paid for me to fly all over the world, I never got farther than "It's a great idea, but . . .," when I had my second insight: _if everybody thinks it 's a great idea, it probably is, and if nobody thinks it will work, I'll have no competition!_

-F = -ma Isaac Newton

You'll never see a physics textbook introduce Newton's law in this way, but mathematically speaking, it is just as valid as "F = ma". The point of this observation is that if you are careful about what assumptions you turn upside down, you can maintain the validity of your equations, though your result may look surprising. I believed that the model of providing commercial support for open-source software was something that looked impossible because people were so excited about the minus signs that they forgot to count and cancel them.

An invasion of armies can be resisted, but not an idea whose time has come. Victor Hugo

There was one final (and deeply hypothetical) question I had to answer before I was ready to drop out of the Ph.D. program at Stanford and start a company. Suppose that instead of being nearly broke, I had enough money to buy out any proprietary technology for the purposes of creating a business around that technology. I thought about Sun's technology. I thought about Digital's technology. I thought about other technology that I knew about. How long did I think I could make that business successful before somebody else who built their business around GNU would wipe me out? Would I even be able to recover my initial investment? When I realized how unattractive the position to compete with open-source software was, I knew it was an idea whose time had come.

The difference between theory and practice tends to be very small in theory, but in practice it is very large indeed. Anonymous

In this section, I will detail the theory behind the Open Source business model, and ways in which we attempted to make this theory practical.

We begin with a few famous observations: ]

And here is the full chapter by Tiemann:

[http://www.oreilly.com/openbook/opensources/book/tiemans.htm...](http://www.oreilly.com/openbook/opensources/book/tiemans.html)

</comment></comment><comment><USER62> Structured Parallel Programming: Patterns for Efficient Computation by von Michael McCool, James Reinders, Arch D. Robison

It introduces some important parallel patters, explains what makes them tick and how to make them efficient. The book makes a strong case for using parallel frameworks, namely TBB and Cilk+ to create general and portable solutions.

There's also a set of slide available, \- [http://ipcc.cs.uoregon.edu/curriculum.html](http://ipcc.cs.uoregon.edu/curriculum.html)

</comment><comment><USER63> Not new, but "Hacking - The Art of Exploitation".

<comment><USER64> Hah yes, I have it in a box somewhere. Great detailed book, highly recommend.

</comment></comment><comment><USER36> Has anyone read "The Impostor Handbook"[0]? What do you think of it?

[0] [https://bigmachine.io/products/the-imposters- handbook/](https://bigmachine.io/products/the-imposters-handbook/)

Edit: I'm not connected to the book.

<comment><USER65> I think it's well intentioned and the author seems like someone who has put a lot of work into something they think is important, but it contains some terrible technical misunderstandings, and that's a real shame as I cringe thinking about a developer without a CS degree who's read this book to make themselves more confident in interviews repeating some of the stuff in it.

[https://github.com/imposters- handbook/feedback/issues/50](https://github.com/imposters- handbook/feedback/issues/50)

</comment></comment><comment><USER66> It's very rare for me to read a technical book cover to cover. I recently read IPv6 FUNDAMENTALS by Graziani (Cisco), but that was more an act of desperation. The best CS-related book I've _ever_ read was probably MEASURING AND MANAGING PERFORMANCE IN ORGANIZATIONS by Robert Austin. It completely changed the way I see the world, both professional and personally. Austin uses agency theory, an application of game theory, to show how incentives in an information economy drive dysfunction into organizations because not all metrics of behavior can be adequately or economically measured. This is _extremely_ applicable to, for example, incentive programs in high tech organizations. At the time he wrote it, Austin was working on his Ph.D. in (I dimly recall) operations research at Carnegie Mellon while working as an executive in IT for Ford Motor Company Europe. Now he's on the tenured faculty at Harvard Business School.

</comment><comment><USER67> C# in depth by John Skeet. This could easily be one of the best computer related books i've ever read. The amazing thing is that is shows with code examples how the language progressed from one version to the next. I've never read anything similar in computer literature. It gave me a deep understanding of the language and all its caveats.

</comment><comment><USER68> John Day's _Patterns in Network Architecture_ is a highly opinionated book (by someone who was around for the development of the Internet and OSI standards), and one that provided a radically new perspective on networking and network protocols that I have found useful over the past year.

</comment><comment><USER69> "Semantic web for the working ontologist" by Dean Allemang and Jim Hendler.

A very clear book that learns you to think about integrating data semantically. Make sure to by the second (or later) edition.

[http://workingontologist.org/](http://workingontologist.org/)

</comment><comment><USER70> Practical Object-Oriented Design in Ruby (POODR) by Sandi Metz [http://www.poodr.com/](http://www.poodr.com/)

</comment><comment><USER71> I recommend the MOOC and book for Nature in Code - evolutionary dynamics in Javascript

[https://www.edx.org/course/nature-code-biology-javascript- ep...](https://www.edx.org/course/nature-code-biology-javascript-epflx- nic1-0x)

</comment><comment><USER22> CTM. Could be labelled as SICP's sequel.

<comment><USER72> I'm assuming that's:?

[https://mitpress.mit.edu/books/concepts-techniques-and- model...](https://mitpress.mit.edu/books/concepts-techniques-and-models- computer-programming)

<comment><USER22> Yes, apologies for the acronym without definition.

</comment></comment></comment><comment><USER73> Understanding Computation: From Simple Machines to Impossible Programs by Tom Stuart

[https://www.amazon.co.uk/Understanding-Computation- Machines-...](https://www.amazon.co.uk/Understanding-Computation-Machines- Impossible-Programs/dp/1449329276/)

Not finished it yet, but it's a joy to read and explains fundamental concepts of things like parsers, interpreters and Lambda Calculus using minimal Ruby syntax.

</comment><comment><USER74> Internetworking with TCP/IP by Dr. Douglas Comer.

</comment><comment><USER75> > This book will help you navigate the diverse and fast-changing landscape of > technologies for storing and processing data. We compare a broad variety of > tools and approaches, so that you can see the strengths and weaknesses of > each, and decide what's best for your application.

[http://dataintensive.net/](http://dataintensive.net/)

</comment><comment><USER9> I'm not sure if that counts as computer science book, but this book was a pleasant surprise:

Butcher: Seven Concurrency Models in Seven Weeks

</comment><comment><USER76> Designing Data-Intensive Applications by Martin Kleppman. He does a great job of distilling storage systems to concepts and discussing conceptual trade offs instead of focusing on particular storage products. Plenty of footnotes to relevant research papers too.

</comment><comment><USER77> Recently? And actually finished as opposed to skimming or working through parts of?

 _Code_ by Charles Petzold.

Of the ones that I haven't finished, but have at least looked at, I think I'd say:

 _Machine Learning for Hackers_ by Drew Conway and John Myles White

and

 _The Master Algorithm_ by Pedro Domingos

</comment><comment><USER78> I'll give you a couple. Note that some of these are rehashes of my earlier comments.

# Elements of Programming

[https://www.amazon.com/Elements-Programming-Alexander- Stepan...](https://www.amazon.com/Elements-Programming-Alexander- Stepanov/dp/032163537X/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=akhn-20&linkId=c9a5aee4d1e5663b112138e6a6831e39)

This book proposes how to write C++-ish code in a mathematical way that makes all your code terse. In this talk, Sean Parent, at that time working on Adobe Photoshop, estimated that the PS codebase could be reduced from 3,000,000 LOC to 30,000 LOC (=100x!!) if they followed ideas from the book [https://www.youtube.com/watch?v=4moyKUHApq4&t=39m30s](https://www.youtube.com/watch?v=4moyKUHApq4&t=39m30s)

Another point of his is that the explosion of written code we are seeing isn't sustainable and that so much of this code is algorithms or data structures with overlapping functionalities. As the codebases grow, and these functionalities diverge even further, pulling the reigns in on the chaos becomes gradually impossible.

Bjarne Stroustrup (aka the C++ OG) gave this book five stars on Amazon (in what is his one and only Amazon product review lol).

This style might become dominant because it's only really possible in modern successors of C++ such as Swift or Rust, not so much in C++ itself.

[https://smile.amazon.com/review/R1MG7U1LR7FK6/](https://smile.amazon.com/review/R1MG7U1LR7FK6/)

# Grammar of graphics

[https://www.amazon.com/Grammar-Graphics-Statistics- Computing...](https://www.amazon.com/Grammar-Graphics-Statistics- Computing/dp/0387245448/ref=as_li_ss_tl?ie=UTF8&qid=1483833551&sr=8-1&keywords=grammar+of+graphics&sa- no- redirect=1&linkCode=ll1&tag=akhn-20&linkId=a24987cf311b4d463e558953a02aabeb)

This book changed my perception of creativity, aesthetics and mathematics and their relationships. Fundamentally, the book provides all the diverse tools to give you confidence that your graphics are mathematically sound and visually pleasing. After reading this, Tufte just doesn't cut it anymore. It's such a weird book because it talks about topics as disparate Bayesian rule, OOP, color theory, SQL, chaotic models of time (lolwut), style-sheet language design and a bjillion other topics but always somehow all of these are very relevant. It's like if Bret Victor was a book, a tour de force of polymathical insanity.

The book is in full color and it has some of the nicest looking and most instructive graphics I've ever seen even for things that I understand, such as Central Limit Theorem. It makes sense the the best graphics would be in the book written by the guy who wrote a book on how to do visualizations mathematically. The book is also interesting if you are doing any sort of UI interfaces, because UI interfaces are definitely just a subset of graphical visualizations.

# Scala for Machine Learning

[https://www.amazon.com/Scala-Machine-Learning-Patrick- Nicola...](https://www.amazon.com/Scala-Machine-Learning-Patrick- Nicolas/dp/1783558741/ref=as_li_ss_tl?sa-no- redirect=1&linkCode=ll1&tag=akhn-20&linkId=f79b946c3b993086bf6e1c6d5baba530)

This book almost never gets mentioned but it's a superb intro to machine learning if you dig types, scalable back-ends or JVM.

It's the only ML book that I've seen that contains the word monad so if you sometimes get a hankering for some monading (esp. in the context of ML pipelines), look no further.

Discusses setup of actual large scale ML pipelines using modern concurrency primitives such as actors using the Akka framework.

# Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques for Building Intelligent Systems

[https://www.amazon.com/Hands-Machine-Learning-Scikit- Learn-T...](https://www.amazon.com/Hands-Machine-Learning-Scikit-Learn- TensorFlow/dp/1491962291/ref=as_li_ss_tl?s=books&ie=UTF8&qid=1484524457&sr=1-4&keywords=tensorflow&linkCode=ll1&tag=akhn-20&linkId=3defd0415456891a643c1f469d3d25fc)

Not released yet but I've been reading the drafts and it's a nice intro to machine learning using modern ML frameworks, TensorFlow and Scikit-Learn.

# Basic Category Theory for Computer Scientists

[https://www.amazon.com/gp/product/0262660717/ref=as_li_ss_tl...](https://www.amazon.com/gp/product/0262660717/ref=as_li_ss_tl?ie=UTF8&psc=1&linkCode=ll1&tag=akhn-20&linkId=8c3134b0b0f77535181ab284c307e862)

Not done with the book but despite it's age, hands down best intro to category theory if you care about it only for CS purposes as it tries to show how to apply the concepts. Very concise (~70 pages).

# Markov Logic: An Interface Layer for Artificial Intelligence

[https://www.amazon.com/Markov-Logic-Interface-Artificial- Int...](https://www.amazon.com/Markov-Logic-Interface-Artificial- Intelligence/dp/1598296922/ref=as_li_ss_tl?ie=UTF8&qid=1484525312&sr=8-1&keywords=markov+logic&linkCode=ll1&tag=akhn-20&linkId=fac3a76632e543c1fc43138177ca15b1)

Have you ever wondered what's the relationship between machine learning and logic? If so look no further.

# Machine Learning: A Probabilistic Perspective (Adaptive Computation and Machine Learning series)

[https://www.amazon.com/gp/product/0262018020/ref=as_li_ss_tl...](https://www.amazon.com/gp/product/0262018020/ref=as_li_ss_tl?ie=UTF8&psc=1&linkCode=ll1&tag=akhn-20&linkId=a4d27cbb764ec79ea34ddaf4e51dcf41)

Exhaustive overview of the entire field of machine learning. It's engaging and full of graphics.

# Deep Learning

[https://www.amazon.com/gp/product/0262035618/ref=as_li_ss_tl...](https://www.amazon.com/gp/product/0262035618/ref=as_li_ss_tl?ie=UTF8&psc=1&linkCode=ll1&tag=akhn-20&linkId=0767299f472486a6688d7d5df831d691)

[http://www.deeplearningbook.org/](http://www.deeplearningbook.org/)

You probably have heard about this whole "deep learning" meme. This book is a pretty self-contained intro into the state of the art of deep learning.

# Designing for Scalability with Erlang/OTP: Implement Robust, Fault-Tolerant Systems

[https://www.amazon.com/Designing-Scalability-Erlang-OTP- Faul...](https://www.amazon.com/Designing-Scalability-Erlang-OTP-Fault- Tolerant/dp/1449320732/ref=as_li_ss_tl?_encoding=UTF8&psc=1&refRID=8KVM0G4T0EQR2C9XH2F9&sa- no- redirect=1&linkCode=ll1&tag=akhn-20&linkId=253570acccdf384b260c433265747d3e)

Even though this is an Erlang book (I don't really know Erlang), 1/3 of the book is devoted to designing scalable and robust distributed systems in a general setting which I found the book worth it on it's own.

# Practical Foundations for Programming Languages

[https://www.amazon.com/gp/product/1107150302/ref=as_li_ss_tl...](https://www.amazon.com/gp/product/1107150302/ref=as_li_ss_tl?ie=UTF8&psc=1&linkCode=ll1&tag=akhn-20&linkId=47e57e2ea9b3e926b5ffdc940c4f3ae7)

Not much to say, probably THE book on programming language theory.

# A First Course in Network Theory

[https://www.amazon.com/First-Course-Network- Theory/dp/019872...](https://www.amazon.com/First-Course-Network- Theory/dp/0198726465/ref=as_li_ss_tl?ie=UTF8&qid=1484523709&sr=8-1&keywords=network+theory&linkCode=ll1&tag=akhn-20&linkId=22c763111aba8c33d26e931eb49964c8)

Up until recently I didn't know the difference between graphs and networks. But look at me now, I still don't but at least I have a book on it.

<comment><USER79> Amazon links with your affiliate tag, seriously?

<comment><USER80> I see nothing wrong with GP providing their affiliate tag.

They are referring customers to Amazon, and customers don't pay extra.

<comment><USER79> As an ex-Amazon Affiliate myself, I disagree because the incentive to post those links is not aligned with the reader's expectations.

Do you enjoy viewing commercials and product placements without the proper disclaimer? Because this is exactly what this is. I surely don't appreciate hidden advertising, not because of the quality of the advertised products, but because I cannot trust such recommendations, as a salesman can say anything in order to sell his shit.

Notice how this is the biggest list of recommendations in this thread. Do you think that's because the author is very knowledgeable or is it because he has an incentive to post links?

<comment><USER78> > As an ex-Amazon Affiliate myself, I disagree because the incentive to post > those links is not aligned with the reader's expectations.

Please don't project your behavior onto others. I take book recommendations seriously. I actually really enjoy it, people have told me IRL that my recommendations helped them a lot.

> Notice how this is the biggest list of recommendations in this thread.

They are all books that I've read in the last ~4 monthish (not all in entirety). Just FYI I'm not sure how much money you think I'm making off this but for me it's mostly about the stats, I'm curious what people are interested in.

> Do you think that's because the author is very knowledgeable

I'm more than willing to discuss my knowledgeability.

> or is it because he has an incentive to post links?

It's the biggest list because due to circumstances I have the luxury of being able to read a ton. I own all the books on the list, I've read all of them and I stand by all of them and some of these are really hidden gems that more people need to know about. I've written some of the reviews before. Just FYI I've posted extensive non-affiliate amazon links before and I started doing affiliate only very recently.

Furthermore, HN repeatedly upvotes blog posts that contain affiliate links. Why is that any different?

</comment></comment></comment></comment></comment><comment><USER81> I read Applied Microsoft .NET Framework Programming by Jeffrey Richter a few years ago and felt that that's how technical books shold be written. I felt happy every time I got to read it.

[https://www.amazon.com/Microsoft%C2%AE-Framework- Programming...](https://www.amazon.com/Microsoft%C2%AE-Framework-Programming- Developer-Reference/dp/0735614229)

</comment><comment><USER82> What if - by Randall Monroe. It's not a computer science book but has lots of great questions and answers to what if questions. He answers with pretty pictures and funny explanations.

I learnt a lot about what I don't know Being able to do rough math off the head, thinking critically and out of the box.

Also the book smells good. Most of the time I read certain books because they smell good.

</comment><comment><USER83> Write You A Scheme, Version 2. [https://www.wespiser.com/writings/wyas/home.html](https://www.wespiser.com/writings/wyas/home.html). A tutorial on how to write a production ready implementation of scheme using Haskell. Contributors welcome

</comment><comment><USER84> [http://interactivepython.org/runestone/static/pythonds/index...](http://interactivepython.org/runestone/static/pythonds/index.html), truly great read, especially if one learning python.

</comment><comment><USER85> High Performance Browser Networking by Ilya Grigorik

Available also online for free at [https://hpbn.co/](https://hpbn.co/)

Lots of great insights about how TCP/IP, 3G etc work and how it affects the performance of websites

</comment><comment><USER86> I haven't re-read it in its entirety, but I always enjoy picking up Sipser's "Introduction to the Theory of Computation" and reading through one or another of the chapters and playing with things in my head or on paper.

</comment><comment><USER87> Network Security Through Data Analysis [http://shop.oreilly.com/product/0636920028444.do](http://shop.oreilly.com/product/0636920028444.do)

</comment><comment><USER88> Artificial Intelligence: A Modern Approach is a great read!

<comment><USER89> actually, i found the "Paradigms Of AI Programming" by peter-norvig to be waay better.

</comment></comment><comment><USER90> D is for Digital: What a well-informed person should know about computers and communications, by Brian Kernighan.

</comment><comment><USER91> The Master Algorithm by Pedro Domingos

</comment><comment><USER92> Not new, but _How To Solve It: Modern Heuristics_ by Michalewicz & Fogel, is a classic.

</comment><comment><USER93> Introduction to the Theory of Computation by Michael Sipser.

Constructing Turing Machines is real fun.

</comment><comment><USER94> I'm reading _Type Inheritance & Relational Theory_ by C.J. Date.

</comment><comment><USER95> GEB

<comment><USER96> It's a fun read. 30+ years since I last read it, I'll have to bump it up on The Pile :-)

<comment><USER46> Reading GEB always makes me feel like such a philistine.

<comment><USER97> haha, I'm reading it now - finally after many years - and I can absolutely relate to the feeling you describe. I decided that I won't be hard on myself for not understanding it all at the first read. Still quite enjoying it so far (1/3rd read). Additionally I also decided that I don't _have_ to finish it unless I feel like ( specially considering it's 800pages).

<comment><USER98> You just read and re-read it over and over and still find something interesting

</comment></comment></comment></comment></comment><comment><USER99> A New Science - <USER2>

Maybe stretching outside the typical, but I have a weakness for cellular automata.

Also, I've vowed never to buy another Oriely book or similar book ever. Online docs are free and stay up to date.

<comment><USER100> The book is basically a scam and panned. He talks about automata like it was new and he invented it. I strongly suggest you read the Amazon reviews.

<comment><USER50> On the plus side it is full of pretty pictures, has a massive number of pages which can be used to press leaves or flowers, heat in the winter and a door stop in the summer to encourage airflow. There really isn't a bad quality about this book. Oh, and super cheap on the used market.

<comment><USER101> Got mine for about 10 USD. page/price ratio is quite impressive.

</comment></comment></comment></comment><comment><USER102> SICP

I read it twice and it is still a gem

</comment><comment><USER103> cpp by yashwant kanetkar

</comment><comment><USER61> More about programming than computer science, but it does talk a lot about and show some custom algorithms (it's more about programming-in-the-small, though it does talk about some big picture too), also it is old and out of print (last I checked), but I thought it was really good when I bought and read it, so mentioning it:

Writing Efficient Programs

Also has a great bunch of "war stories" about performance tuning in real-life, including one in which people, IIRC, improve the performance of quicksort on a supercomputer by 1 million times or some such, by working on tuning as well as architecture and algorithms at several levels of the stack, from the hardware on upwards.

by:

[https://en.wikipedia.org/wiki/Jon_Bentley_(computer_scientis...](https://en.wikipedia.org/wiki/Jon_Bentley_\(computer_scientist\))

Edited to change Wikipedia URL to more specific one.

<comment><USER104> When I started coding for a living in the early 1990s (in an environment where efficiency was paramount), Writing Efficient Programs was gold. I still have it, and I'm glad that to see that it's still valued.

<comment><USER61> > (in an environment where efficiency was paramount), Writing Efficient > Programs was gold. I still have it, and I'm glad that to see that it's still > valued.

Interesting to know, and agreed.

The book even has a list of thumb rules for the various kinds of optimizations it describes, with guidelines on when each one is appropriate to use or not (as you would know, having read it). Great writing throughout, too. Loop unrolling (for both fixed- and variable-length loops) was one among the many cool ones.

</comment></comment></comment><comment><USER105> Good Math: A Geek's Guide to the Beauty of Numbers, Logic, and Computation

[https://www.amazon.com/Good-Math-Computation-Pragmatic- Progr...](https://www.amazon.com/Good-Math-Computation-Pragmatic- Programmers/dp/1937785335/ref=sr_1_1?ie=UTF8&qid=1484554405&sr=8-1&keywords=good+math)

A great review of college math and CS. The book goes over FOPL, Set theory, Turing machines and lambda calculus among other things. A fun read!

</comment><comment><USER106> Not a book, but it's a 70 page paper that changed (substantially) the way I thought about computing systems: Non-Abelian Anyons and Topological Quantum Computation.

The gist is a model of computation based on knotting the worldlines of a certain kind of particle (well, particle/anti-parricle pairs) and measuring properties of the knots/links. It's also the theory behind Microsoft's effort to build a quantum computer.

 _Highly_ recommend at least reading the non-technical sections (ie, everything but section 3 and appendix A).

Copy of paper: [https://arxiv.org/abs/0707.1889](https://arxiv.org/abs/0707.1889)

</comment><comment><USER107> Book: Star Schema, The Complete Reference, by Christopher Adamson. One of the best technical books ever written.

[https://www.amazon.com/Schema-Complete-Reference- Christopher...](https://www.amazon.com/Schema-Complete-Reference-Christopher- Adamson/dp/0071744320)

Article: Thinking Clearly about Performance, Cary Millsap (Method R Corporation)

[http://method-r.com/papers?download=44:thinking- clearly-(pap...](http://method-r.com/papers?download=44:thinking- clearly-\(paper\))

</comment><comment><USER108> Modern C++ Programming with Test-Driven Development

[https://pragprog.com/book/lotdd/modern-c-programming-with- te...](https://pragprog.com/book/lotdd/modern-c-programming-with-test-driven- development)

Awesome even if you don't want to do any C++

</comment><comment><USER109> Best for what?

</comment><comment><USER110> Leaving this comment here so I can return later.

<comment><USER111> You can save the story either by upvoting it or by clicking on the _favorite_ button.

<comment><USER110> Oh didn't know this. Thanks.</comment></comment></comment>


Elements of AI course to be made available in all EU languages - <AUTHOR> https://www.elementsofai.com/eu2019fi <comment><USER2> Well.. it is nice, I guess, but really dumbed down version in my opinion to actually be of practical use. Sure it's great publicity for Reaktor and Finland and whatnot, but I'm dubious of its actual benefits. Teaching basic statistics would be much more useful than "AI", but I guess it lacks the hype factor so marketing-wise it wouldn't just be as cool.

It's as if there wasn't enough of snake oil salesman promoting their business as "AI-powered" already. And what AI does even mean in current context? A bag of machine learning algorithms? I always likened AI to be more of general AI rather than how it's nowadays labelled.

<comment><USER3> being AI is a way for ML startups to get triple the seed capital. Nothing more.

I would argue against this course having no benefits. There is a huge disconnect between what the reality of the near-future in tech is and what the media mis-represent it to be, often fuelled by interviews and quotes from the people directly benefiting from stoking the fire.

The general populace being much closer to a position to understand that it's actually largely unrealistic or nonsense is the right way to go about bridging the gap between the "tech class" and your average lay person.

I definitely agree that society in general would be better if people had better grasp of statistics and how they are manipulated and mis-represented to them, but there are so many interest areas that people would be better off for having some understanding of that I don't think any one can be discredited just because it's not one of the others.

</comment></comment><comment><USER4> Elements of AI was created as a collaboration by University of Helsinki, the Finnish government and Reactor Innovations, a software consultancy.

It was well received by the Finnish general populace.

The Finnish government currently acts as the EU presidency, and decided to open access to all Europeans.

<comment><USER5> That's great, it would be even better if it was open to everyone, you know, in line with EU values (democracy, education for all, freedom, etc.) :/

<comment><USER6> It is. You're free to start learning.

Today's announcement means more translations in European languauges.

</comment></comment></comment><comment><USER7> The comments here are surprisingly negative. So many wet blankets, from people saying the offering sucks to people mistakenly complaining about it being EU- only to someone saying it empowers just white europe.

I wonder how many people criticizing it even planned on trying this completely-free course.

I think we really need to work on pulling the plug on this fetishization of contrarianism as a community.

<comment><USER8> A lot of Finnish taxpayers' money was spent developing it. I think it's fair to criticize its shortcomings openly.

<comment><USER9> Uninformed nonsense.

Its Finnish EU PRESIDENCY, which means it's paid by the EU budget.

Each EU country holds the rotating EU presidency for six months, which means they chair interministerial meetings, formally negotiate and propose compromise legal texts, etc. In this role the presidency receives a budget for promotional events, communication efforts, etc. The Finnish presidency decided to use part of the budget for this translation effort.

This seems to fit various EU goals well, eg to upskill the population, promote digital competences and encourage use of all 24 EU languages. Think of just the added value of having common terminology and definitions.

<comment><USER8> For the record, here is the press release about it from the Ministry of Economic Affairs and Employment of Finland: [https://tem.fi/en/article/-/asset_publisher/suomi- investoi-e...](https://tem.fi/en/article/-/asset_publisher/suomi-investoi- eurooppalaisten-tulevaisuustaitoihin-tavoitteena-kouluttaa-prosentti-eu- kansalaisista-tekoalyn-perusteisiin)

Quote from the press release: _The cost of the initiative, a total of 1 679 000 euros, will be funded from the budget of the Ministry of Economic Affairs and Employment of Finland._

</comment></comment></comment></comment><comment><USER10> Only in English, Swedish, Finnish, Estonian?

At least the language dropdown seems to be intelligable in all languages.

Compared to getting stuck in google maps in, say, Russia, where even the 'change language' menu item is in Russian, so of course you can't even find it to change to English unless you can read Russian, or happen to know where itt is already.

<comment><USER11> As opposed to 'just English' which is more or less the norm in start-up land?

<comment><USER10> startup land is silicon valley, usually targeting the US.

An AI course targeted at Europe should at least include German, French, Spanish, etc.

<comment><USER12> Why? Sure, it would be nice with more languages, but if someone from germany/france/spain want's to learn study AI, isn't it probable that they are used to reading english anyway?

<comment><USER13> You would think that, but I've seen Germans with a PhD that don't speak English. Once a language is large enough, most things get translated into that language (as there is a market for it). Anyway, German and French are large enough, Dutch isn't.

<comment><USER14> I've never encountered a single AI or CS paper translated to or written in German. You may not need to speak English for a PhD in, say, law, but you can't be a competent computer scientist only knowing German.

<comment><USER15> You need to search harder, I guess.

As someone that graduated during the 90's, and had graphics programming as one of my main focus, there were plenty of German only papers out of Darmstadt.

We had a couple of proceedings books with them on our university library.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> This title has been misleadingly edited, removing a crucial word.

In the linked article, it states that the course will be available "in all official EU languages", which is indeed the case. The word "official" has been removed from the title, thus giving a very different indication of the actual set of languages in question.

</comment><comment><USER17> If I'm German but want English lang which do I select? There is one selector for both

<comment><USER18> OP oddly linked to the page where you sign up for languages that they haven't released yet. Just go to the home page and select English.

</comment></comment><comment> purple-again Can we change the title to soon free for all or soon available in all EU languages? As you can tell from the comments here the title is unnecessarily divisive and doesn't seen to jive with what the website says or the Finnish governments intentions:

Quote from website: "The Finnish Presidency of the Council of the EU has decided to invest in people's future skills and will make the Elements of AI online course freely available in all official EU languages."

<comment><AUTHOR> Makes sense. Changed from "Elements of AI course soon free for all EU citizens" to "Elements of AI course soon available in all EU languages".

</comment></comment><comment><USER19> Nice to see that they've already removed the UK from the list of European countries.....

<comment><USER20> That's just because the course already exists in english [https://www.elementsofai.com/](https://www.elementsofai.com/)

</comment></comment><comment><USER15> I just look forward to see Portuguese from Portugal being offered and not another variant.

</comment><comment><USER16> I wonder if there is a rationale for this particularly strange selection of languages. They propose, for example, Irish (Gaelic), which is the native language of about 80.000 european citizens and is understood by about a million. Yet they do not propose Catalan, which is the native language of 4.1 million and understood by about ten million.

As a staunch partisan for the unity of the EU, and native Catalan speaker, I cannot but feel dismay about this continuous lack of tact from my institutions. I know this is due to ignorance more than malice, but it really looks as if the institutions are purposely shadowing our very existence.

<comment><USER21> I could be mistaken, but it seems like they translated it in EU countries official languages, which is why Irish is present but not Catalan.

<comment><USER16> Yes, it seems to be this. I hope this is a default list of languages, and more languages may be added if requested.

<comment><USER12> Ok, I can understand that it sucks that your language is excluded, but I think it would make way more sense to try to get your language recognized as an official eu language instead of critizising a finnish project for limiting their selection to official eu languages.

With that said, if catalan was added, would you actually use that instead of english for a course like this?

<comment><USER16> > it would make way more sense to try to get your language recognized as an > official eu language instead of critizising a finnish project for limiting > their selection to official eu languages

I agree 100% with this. My intention is not to criticize the organizers of this course that made a very reasonable choice. The problem here is the rather absurdl (in my view) selection of official EU language. It would make more sense to me to declare English the sole official language of the union. This would not favor any big country now that the UK is out.

> With that said, if catalan was added, would you actually use that instead of > english for a course like this?

Of course! I use all my software localized into catalan, even vim! Now, for technical documentation it is rare to find much in my language, almost everything is in english only. If this (quite serious) course was translated I would be even happier to follow it (but I might do it anyway if it was english only, as I'm used to it).

</comment></comment></comment></comment></comment><comment><USER22> Why is Turkish (one of the two national languages of Cyprus, one of the recognised minority languages in BiH) missing?

<comment><USER23> Turkish is not an official language of the EU.

Not every national language of EU member states is an EU official language. Luxembourgish and Turkish are national languages of Luxembourg and Cyprus respectively but are not EU official languages.

EU official languages are specified by the EU treaties. In cases of enlargement, they are negotiated between the EU and the acceding state. When Cyprus joined the EU, Cyprus and the EU agreed that Turkish would not be added to the list of EU official languages.

(Also, the fact that Turkish is a minority language in BiH is of little relevance. BiH is not an EU member state, and most minority languages of EU member states are not EU official languages either.)

</comment></comment><comment><USER24> people would say what's the point of this if every programmer knows English. People who say this never worked in Italy or Spain.

I was surprised when I worked in Milan how little English my fellow teammates spoke.

</comment><comment><USER25> UK isn't listed though we haven't left the EU yet! Damn Brexit!

</comment><comment><USER26> dropdown in footer to select country and language has white background with white text.

</comment><comment><USER27> Country and language in a single drop-down menu, because in 2020 it's improbable that people born outside of a country speak any other language than their native tongue. Right?

<comment><USER28> It's the EU. You're not a full citizen (in the social sense) until you know the native language of your country of residence. How Czech are you if you can't hear the cabbies ripping you off?

<comment><USER29> Regardless to what country I was born in and what country I am a citizen of (by the way there are many full citizens who don't speak the language of the country particularly well, there is no such a thing as non-full citizenship, you either are a citizen or you are not) I have never wanted to study in its language (let alone use localized versions of coding-related software which I perceive as utter bullshit), wherever English is available I always choose to study and to interact with a computer in English. I'd never hire an AI/IT engineer who is not good at reading/writing/speaking on the subject in English and I doubt I'm alone in this. Arguably being able to efficiently communicate on the subject in English is even more important than the knowledge of the subject itself as nobody can know everything and be a good developer without being able to google things quickly.

<comment><USER28> > _interact with a computer in English_

I mean, there's no other language appropriate for working with modern computers (Russian is probably the closest second)[0], but the level of English computer programs require of you, especially cushioned ones like they're exposing to people in this case, tends to be less than native understanding of the language.

[0]: English has a huge advantage because typesetting, typewriting, liberalism, and empire had already greatly simplified the writing system by the time computers were standardizing. It was, from the start of electronic computing, basically trivial to typeset English with simple character series, in a readable form. Anglo typewriting and typesetting conventions were already such that monospaced typewritten ASCII makes decent documents on its own.

</comment></comment></comment></comment><comment><USER5> Kind of off-putting... EU only, really?

Also "English (Ireland)" heh

For everyone else, use a VPN, I doubt they check anything.

<comment><USER6> It is completely free, globally. This announcement was more about translations, really.

<comment><USER5> Ah OK, I see here that anyone can sign up (for the English course) [https://course.elementsofai.com/](https://course.elementsofai.com/)

I guess it's just that landing page :)</comment></comment></comment>


Red Hat decripples OpenSSL - <AUTHOR> https://wittvywowuxp35s6.tor2web.org/redhat-and-ec.html

<comment><AUTHOR> If issues occur with this link, try [onion.to]([https://wittvywowuxp35s6.onion.to/](https://wittvywowuxp35s6.onion.to/)). tor2web is failing often...

</comment><comment><USER2> It says "Tue 16 October 2012" but after reading the text I'm sure it should've been 2013.

<comment><AUTHOR> he fixed that</comment></comment>


Ask HN: Chrome browser phones home, how to disable this? - <AUTHOR> When I startup Google-chrome it "phones home" - makes a TLS connection to Google and exchnages some data. Does anyone know what this data is?
It happens with the open source version as well... so this must be documented, and there must be a way to turn it off?
Edit: 1. You can confirm this using a network traffic analyzer. 2. Start page is set to about:blank <comment><USER2> > there must be a way to turn it off

Sure. Use a browser whose creator isn't an Ad serving company with a business model built entirely around capturing and analysing massive amounts of product (you. you are the product) data.

</comment><comment><USER3> Depends ... are you logging in with it?

There's all manner of things that it will do.

1) try to see if there's a real internet connection 2) check if it's the latest version 3) log in with your google account 4) sync passwords 5) update shared history 6) update chrome apps

I've probably missed some things out, but that's what I can think of, off the top of my head.

<comment><AUTHOR> thanks.

</comment></comment><comment><USER4> Have you looked at intercepting the TLS connection by MITMing yourself?

Tools like Fiddler should allow you to see this data in plaintext, though identifying what information it contains is another step.

</comment><comment><USER5> This is in all likelyhood "Safebrowsing by Google", which is a default service to run sites you visit past the servers of said company.

[https://www.google.com/transparencyreport/safebrowsing/diagn...](https://www.google.com/transparencyreport/safebrowsing/diagnostic)

That would make you one of the 600 million people using that service, whether you realise it or not.

Alas, other browsers use it too without any warning, although you can turn it off it is not easily discoverable:

[https://bugzilla.mozilla.org/show_bug.cgi?id=430741](https://bugzilla.mozilla.org/show_bug.cgi?id=430741)

As suggested, add sb.google.com or whatever endpoint is used to /etc/hosts or HOSTS file.

</comment><comment><USER6> There are a set of privacy related patches for Chromium called inox ([https://github.com/gcarq/inox-patchset](https://github.com/gcarq/inox- patchset)).

If you are on Arch Linux, binaries are available on the AUR: [https://aur.archlinux.org/packages/inox- bin](https://aur.archlinux.org/packages/inox-bin)

</comment><comment> w-ll > how to disable this?

Don't use Chrome? Build Chromium from source.

[http://www.chromium.org/Home](http://www.chromium.org/Home)

<comment><USER7> > It happens with the open source version as well

<comment> w-ll Build Chromium from source. Debug and trace whats "phones home" and yank it out.

I dont see why this needs to be a Ask HN.

<comment><AUTHOR> "Due its complexity, Chromium uses a set of custom tools to check out and build. Here's an overview of the steps you'll run:

        gclient. A checkout involves pulling nearly 100 different SVN repositories of code. This process is managed with a tool called gclient.

. . . "

// everytime i upgrade a browser? cmon..

<comment><USER8> I actually build chromium from source for this exact reason, I've gotten it to stop phoning home. It phones home for the following:

1\. If you are using the Google APIs (see this picture [http://i.imgur.com/UodLpFh.png](http://i.imgur.com/UodLpFh.png)) for the browser to have more functionality.

2\. If you have the "Google account Badge" thingy in the upper right enabled.

I don't know exactly what in those two causes the phone home, I assume (educated guess here) that it's verifying your api keys for browser features such as spell check, that or getting the "Badge" thing setup. While you may be opening a new tab labeled blank that "badge" thing is a pure js/html page thats loaded in the background that does need to phone home.

</comment></comment></comment></comment></comment><comment><USER9> Hosts file.</comment>


Discover products people recommend online - <AUTHOR> https://botako.com <comment><AUTHOR> Hey folks,

We are a team of phDs and ex HFT engineers who love to apply NLP/ML into daily life.

One thing I do a lot before buying anything expensive is reading a ton of reviews, forums, blogs, reddit and checking social media for actual images from buyers. This often takes a lot of time and we think NLP can help categorize and summarize crowd's insights of the products better.

This idea is inspired by the dude who made laptophits.com (for some reason it is now defunct so I couldn't actually use it couple weeks ago when looking for a new laptop :-/).

We are open for criticism & ideas. Please let us know if our landing page makes any sense and you'd like to try. Thanks!</comment>


The new Windows subsystem for Linux a deep dive - <AUTHOR> https://mybuild.techcommunity.microsoft.com/sessions/77003 <comment><USER2> This is very impressive, it effectively kills the advantage of the Mac having a native *nix environment.

</comment><comment> frosted-flakes Note that this is a video.</comment>


Google Secretly Invested In Zynga, Preparing To Launch Google Games - <AUTHOR> http://techcrunch.com/2010/07/10/google-secretly-invested-100-million-in-zynga-preparing-to-launch-google-games/ <comment><USER2> Can you imagine working on Farmville? I mean, it would be like going into work every day to refine the equivilent of the Fisher Price moo farm toy [1] except a) for adults and b) relatively juvenile. Imagine the meetings, mostly run by marketing idiots.

"Okay, we need the new chewy coco grove coconut tree special item out by next Monday. So that means everyone's coming in on saturday."

But how can you argue with 85 million users and a billion in revenue? Google sure can't.

[1] <http://www.youtube.com/watch?v=ek_qxoGDyAw>

<comment><USER3> How is this different than the rest of the game industry?

<comment><USER4> I hate to say it for fear of giving aid and comfort to my Gender Studies professors, but I think a major portion of the reason why Blizzard et al get geek cred and FarmVille does not is because FarmVille is played by women.

<comment><USER5> I think that's only true in the sense that people _always_ give more cred to products that they, personally, use. It's the same reason that Google = sexy while enterprise software = not sexy. Almost everybody uses Google, but very few people use any given enterprise software package (and when they do, they usually hate it).

If it were just a male/female thing, you'd expect games like SimCity and Civilization to _not_ get geek cred, since their appeal straddles gender lines.

</comment></comment></comment></comment><comment><USER6> Just throwing this out there: I consider it unethical to invest in Zynga.

 _Edit:_ They are essentially using psychology, social and otherwise, to ultimately trick people out of their money. A classic on the topic: [http://techcrunch.com/2009/10/31/scamville-the-social- gaming...](http://techcrunch.com/2009/10/31/scamville-the-social-gaming- ecosystem-of-hell/)

<comment><USER7> Care to expand? I'm not especially familiar with them other than they make some casual games.

<comment><USER8> A while ago they were involved in a scandal, when it became clear that most of their money came from ads for scams. Don't have a link for you, but should be easy to find. (Edit: "Scamville" might be a good keyword to try).

</comment></comment></comment><comment><USER9> Does this mean we can finally abandon the idea that Google's mission is "to organize the world's information"?

<comment><USER10> In my opinion Google is all over the place, everywhere at the same time which could lead to overextension of resources and finances. This could ruin Google at some point in the future, they are losing focus.

<comment><USER11> Big tech companies should be all over the place. If they focus too much, they will die, because ability to change is a survival strategy in tech sector.

And this particular case seems to very strategic for Google. It's believed (inside Google too) that Facebook could be the major thread to Google, if people start searching in Facebook first and go to Google only as a second option. Thus, attacking Facebook directly is very strategic move.

And it seems to fit nicely to Android strategy too.

</comment></comment></comment><comment><USER12> I think Google's worry about Facebook (partly justified, partly not) is starting to cause them to make pointless (and time wasting) decisions.

If I had 5mins with Sergei and Larry, I would say (after taking a long sip from the free organic drink I just got from the snack bar we're standing next to)

"Look, the real enemy is not FB but Apple (and sometimes your own engineering hubris, e.g. Buzz), so focus all your troops on this front. Don't dilute your strengths with topsy-turvy fads like Farmville. Remember the last time you tried that route when you tried to copy Second Life's act, does anyone even remember them now? Concentrate on (i) getting an Android tablet out, and (ii) get a $99 Google TV box running on Atom with cool software (not the sorry thing you showed at the I/O) to beat Apple to the punch.

It's _that_ simple."

<comment><USER13> And I like to think they'd respond,

"Look Jun8, in 12 years we've built a company worth upwards of 150 billion dollars, and you've amassed roughly 844 karma points."

<comment><USER3> Well, how much karma has Larry Page racked up on HN??

</comment></comment></comment><comment><USER14> Oh Google. The sharks are circling and you're strapping on your waterskis.

</comment><comment><USER15> It's strategic for both parties. Google wants to get Facebook users onto their own network and Zynga needs to reduce their sole dependence on Facebook.

</comment><comment><USER16> Is it just me, or is Zynga raising an absolutely obnoxious amount of money?

<comment><USER17> They've been profitable since their very first quarter and, according to the TC article, they will likely make as much in profit next year as they've raised in the last three years.

The fundraising is almost exclusively used for acquisition, so what's the obnoxious part?

</comment></comment><comment><USER18> I don't quite understand how this fits into the grand scheme of Google. Now I think Google is just buying stuff to buy stuff. Though I could see acquiring user-interaction data being useful, especially in the casual space.

<comment><USER19> Google is freaking out over Facebook. This gives them both a chance to build out their own social graph (say as a launch partner for Google Me), and access to a copy of most of Facebook's.

This data is important for search, but critical for ads.

</comment></comment><comment><USER20> This is great news for China. While the Silicon Valley gets rotten from inside, making this useless stuff, they will be buying bankrupt US chip companies and making their own microprocessors.

<comment><USER21> You consider Zynga, a company with a ridiculous amount of attention from users, and expected to hit $1Bn revenues next year, useless?

</comment></comment><comment><USER22> Interesting. Both Google and Zynga are very much data driven companies.

Remember story about Google choosing shade of blue by testing 41 variants?

That's how Zynga designs its (extremely successful) games. Everything is measured and analyzed. They are basically conducting one massive experimental psychology study of what makes people (s)tick.

</comment><comment><USER23> Farmville is evil; Zynga makes Farmville; Google invested in Zynga.

Q.E.D.

;-)

<comment><USER14> Google bought DoubleClick. They were tainted from then on, as far as I'm concerned. DoubleClick had a known shady history, and executives from DC moved into positions of influence within Google.

<comment><USER24> Just curious, what terrible things has DoubleClick done since being bought by Google? If anything, I'd say Google 'tainted' them and not the other way around.

<comment><USER14> It's not that DoubleClick has done the terrible things, it's that Google has done them. The naked attempt to monetize wikipedia's eyeballs that was Knol. The careless lack of attention to privacy that was the Buzz launch. The very existence of Buzz, a me-too product that does nothing different to the existing competition. It's hard to imagine the Google of 2004 launching those products.

Of course, it's not all bad -- Chrome is very much an old-Google product, pouring innovation into a category that was content to slowly iterate. Android is another example of good-for-Google, good-for-everyone innovation. But those examples are getting fewer and further between, while copycat products are getting more common.

</comment></comment></comment></comment><comment><USER3> Well, good luck to Google. Given that the public donated $175k to a group of inexperienced, unknown programmers who did little more than say they were out to replace Facebook, I'd say the market is ready for an alternative.

</comment><comment><USER25> Every day I go to 7-11 for coffee. And cringe at the zynga branding everywhere.

<comment><USER3> Really? I miss the good old days when Jedis and Jabba were on 7-11 glasses, in that case.

We don't have 7-11 here.... Let it be known that I pine for Super Nachos.

</comment></comment><comment><USER26> Zynga games will tie into the GoogleMe ecosystem nicely.

</comment><comment><USER27> Google -> Google!

<comment><USER28> Ouch

</comment></comment><comment><USER29> Wasn't Zynga threatening to leave Facebook or start a (long) legal battle? This is ideal for Google of course since they have been struggling to get their social networks to really take off. Getting Zynga to move to Google exclusively could be the boost they have been waiting for so long.

<comment><USER30> I think it would be suicide for Zynga to abandon Facebook completely, afaik, they make games which can easily duplicated and hence alternatives would pop up on Facebook soon.

</comment></comment><comment><USER31> This sounds like TechCrunch editorializing and trying to make a story out of nothing.

I don't think Google cares about this.

</comment><comment><USER32> The article says something about social graph but that doesn't make sense. Gmail basically rules the world when it comes to email so they already have a lot of social graph information just from email correspondences. There must be some other strategy they are pursuing.

<comment><USER33> In terms of userbase, GMail is still third behind Hotmail and Yahoo. I would bet that current Farmville users overlap less with GMail than other email services too.

</comment></comment><comment><USER34> The potential of this is astounding, across Google web, Android, and Chromium.

</comment><comment><USER35> Anyone has heard of "Google Games" before? It seems to be a social gaming platform which will be available on Android as well. Couldn't find any info about it though.

</comment><comment><USER36> Isn't TechCrunch a terribly unreliable source? I thought after the last.fm debacle that you shouldn't exactly trust them.</comment>