How to Read Mathematics - <AUTHOR> http://web.stonehill.edu/compsci/History_Math/math-read.htm <comment><USER2> There's a few books on how to approach books and problems, e.g. don't strain on first seeing new material. Lara Alcock wrote 2 books on studying math which seem to have the same ToC, a lot of undergrad programs have materials on proofs and how to transition from high school problem solving: [http://web.archive.org/web/20150319020039/http://www.maths.c...](http://web.archive.org/web/20150319020039/http://www.maths.cam.ac.uk/undergrad/studyskills/text.pdf)

Mathoverflow and math.stackexchange soft-questions tag has lots of mini- essays, e.g. [https://mathoverflow.net/questions/143309/how-do-you-not- for...](https://mathoverflow.net/questions/143309/how-do-you-not-forget-old- math)

and [https://math.stackexchange.com/questions/617625/on- familiari...](https://math.stackexchange.com/questions/617625/on-familiarity- or-how-to-avoid-going-down-the-math-rabbit-hole)

____________________

For proofs, books by Polya, Velleman, Hammack etc

Prof Baez' reading lists for math and physics: [http://math.ucr.edu/home/baez/books.html](http://math.ucr.edu/home/baez/books.html)

<comment><USER3> It would be remiss to not mention the well-curated list by Gerard 't Hooft [1999 Nobel Laureate in Physics]. A lot of books on the list, but also a lot of links to freely available lecture notes or online books as well.

[http://www.staff.science.uu.nl/~gadda001/goodtheorist/](http://www.staff.science.uu.nl/~gadda001/goodtheorist/) (sidebar for specific areas).

</comment></comment><comment><USER4> I've also found these to be helpful:

The Language and Grammar of Mathematics, from The Princeton Companion to Mathematics, by Timothy Gowers: [http://press.princeton.edu/chapters/gowers/gowers_I_2.pdf](http://press.princeton.edu/chapters/gowers/gowers_I_2.pdf)

Reading Mathematics, by John Hamal Hubbard: [http://www.math.cornell.edu/~hubbard/readingmath.pdf](http://www.math.cornell.edu/~hubbard/readingmath.pdf)

</comment><comment><USER5> As someone who struggled with math and hated it in high school and now loves it but still struggles with it I got a lot out of this article. It brought to mind this EdX course: "Effective Thinking Through Mathematics"[0] which I also found valuable.

Has anyone read the author's book[1] and can recommend it (or not)? It only has 2 reviews, a 5-star and a 3-star and the latter review is not helpful.

[0][https://www.edx.org/course/effective-thinking-through- mathem...](https://www.edx.org/course/effective-thinking-through-mathematics- utaustinx-ut-9-01x-0) [1][https://www.amazon.com/Rediscovering-Mathematics- Classroom-R...](https://www.amazon.com/Rediscovering-Mathematics-Classroom- Resource-Materials/dp/0883857804)

</comment><comment><USER6> If you haven't heard of Shai Simonson I suggest checking out his ArsDigita University[0] lectures[1] (from which I studied Theory of Computation[2] back in late 2011).

He's a superb lecturer, and I owe him a debt of gratitude for his recorded classes.

[0]: [http://www.aduni.org/](http://www.aduni.org/)

[1]: [https://adunivids.neocities.org/](https://adunivids.neocities.org/)

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

<comment><USER7> Can vouch on his lecture skills as well, he was a visiting professor at UIC and taught my intro to combinatorics class. He was also very funny, his frequent stories would always make the class laugh.

The most amusing part about him was that he wore those tight biking shorts and shoes while he taught.

Here's an audio clip of Shai introducing Richard Stallman at a talk where Stallman gets pretty annoyed[0]

[0]: [http://audio-video.gnu.org/audio/rms-speech- arsdigita2001.og...](http://audio-video.gnu.org/audio/rms-speech- arsdigita2001.ogg)

</comment></comment><comment><USER8> I like this quote I found in a mathematical analysis book:

"It is an unfortunate fact that proofs can be very misleading. Proofs exist to establish once and for all, according to very high standards, that certain mathematical statements are irrefutable facts. What is unfortunate about this is that a proof, in spite of the fact that it is perfectly correct, does not in any way have to be enlightening. Thus, mathematicians, and mathematics students, are faced with two problems: the generation of proofs, and the generation of internal enlightenment. To understand a theorem requires enlightenment. If one has enlightenment, one knows in one's soul why a particular theorem must be true."

[https://www.goodreads.com/book/show/5760666-foundations- of-a...](https://www.goodreads.com/book/show/5760666-foundations-of-analysis)

</comment><comment><USER9> I also found this to be helpful - Write Mathematics Right, by L. Radhakrishna [https://www.amazon.com/Write-Mathematics-Right- Professional-...](https://www.amazon.com/Write-Mathematics-Right-Professional- Presentation/dp/1842657399)

<comment><USER10> Could you say a few more words about this book? It looks interesting, but I can't find a table of contents or a review of it. Is it intended for advanced mathematics, or can it be useful for basic math too?

</comment></comment><comment><USER11> I think it would be quiet interesting to crowdsource a math-to-english interpreter (a la 'explain shell' [0]) for math equations.

[0] [https://explainshell.com/](https://explainshell.com/)

<comment><USER12> This is not possible, at least not without a very sophisticated AI.

One thing that novices seem to not get about mathematics, especially those coming from programming languages, is that the syntax of mathematical formulae is not divorced from the natural language that surrounds it. Different authors use different symbols for the same concept or the same symbol with different meanings. That is, mathematical symbols have synonyms and homonyms, so to speak. You can read someone's "accent" when reading mathematics. The French consider 0 to be a positive number; the Americans don't. The Russians call it the Bunyakovsky inequality, most of Western Europe and America calls it the Schwarz or Cauchy-Schwarz inequality. The way they arrange their equations, the particular details of the notation, their preferred term for a particular concept, even tiny things like preferring upright or slant font for dx in an integral (and by the way, often fonts carry semantic meaning, but not in this case); all of these vary from author to author.

Mathematics is a very human activity. It is written by humans who write ambiguous things because it's meant to be read by humans who deal well with ambiguity. Reading human-written mathematics cannot be mechanised, at least, not anymore than reading a natural language can be mechanised.

<comment><USER13> It would certainly be possible if mathematics standardised on writing proofs in a proof assistant like Coq. Then anyone with a basic functional programming background could understand the most complex of proofs, given enough time to step through and understand all steps of the proof in the Coq IDE.

<comment><USER12> You would be trying to reverse a couple millenia of mathematical tradition if you wanted to convince all mathematicians to only write machine-readable mathematics. As appealing as the idea may sound to computer people, mathematicians would find it quite repugnant if they were no longer "allowed" to write mathematics in a casual style (as if it were even possible to forbid them from doing so).

</comment></comment></comment></comment><comment><USER14> I've always loved math, but as things get more complex I stop thinking in math and start thinking in code.

<comment><USER15> I think your conflating math as all-descriptive of all properties. It's unfortunately not. Mathematics describes patterns, not procedures. You started thinking in code, because you started thinking about problems as procedures, not patterns.

<comment><USER16> Maybe this person is thinking in Haskell ;)

<comment><USER17> I wish i could give 2 upvotes

</comment></comment></comment></comment><comment><USER18> I will add to the lists this another resource:

Handbook for spoken Mathematics (Larry's speakeasy) by Lawrence Chang: [http://web.efzg.hr/dok/MAT/vkojic/Larrys_speakeasy.pdf](http://web.efzg.hr/dok/MAT/vkojic/Larrys_speakeasy.pdf) from The Lawrence Livermore Laboratory

</comment><comment><USER19> I guess how to read mathematics depends strongly on the context or the subfield you are looking into.

A simple example: a superscript can mean exponentiation or an index.

Also, sometimes it is preferred to leave out symbols that occur often, to avoid clutter. One example is dropping the sigmas out of equations, and infer they exist by looking at indices.

</comment><comment><USER20> I thought this was going to be about how to read Mathematics aloud, e.g. to describe it over the telephone. It seems that even something as common as $f : a \rightarrow b$ might be spoken aloud in different ways.

<comment><USER12> This is in fact somewhat of a real problem. Mathematics is kind of meant to be learned while interacting other humans, not in pure cold isolation. A lot of what you absorb with other humans is how to pronounce things. A simple example for example is learning to pronounce binomial coefficients as "5 choose 2" or knowing that ŷ is pronounced "y hat".

Something kind of similar happens in hackerdom, where you may learn to pronounce "/etc" as "slash etsy" or "!" as "bang".

<comment><USER21> I totally agree with you! Learning the language of mathematics, specifically spoken in this case, is an important part in learning mathematics. I think it is really important to discuss proofs and ideas with your friends because of this.

Another problem is that most of the literature and the lectures are in English but you often discuss in another language. So you have to both do the translation from written to spoken mathematics and the translation from English to, in my case, Swedish. This easily leads to half translated English words but I try to avoid that as much as possible.</comment></comment></comment>


Don't Play in Google's Privacy Sandbox - <AUTHOR> https://www.eff.org/deeplinks/2019/08/dont-play-googles-privacy-sandbox-1 <comment><USER2> I have conserns about privacy pass protocol. Can't the server abuse the protocol? What if sT is always 2T? For the record, I don't like captcha.

About fingerprinting "budget", asking users for consent is useless to protect users that can't for any reason change to another app</comment>


Ask HN: How can I prove I know how to write software with nothing on my GitHub? - <AUTHOR>

I work so many hours with my current job, so I have no time to work on my personal projects. Money has been a struggle so I have been looking for a job. Employers ask to send them a link to my github account, but I don't have many public repositories and my current job has no open sourced software I can show. (I also signed an NDA) <comment><USER2> When you say you have been looking for a job, what does that mean? I ask because for some (and maybe not you), it means "I found a great listing at company A and company B and I applied at both. I talked to a recruiter and they said I needed X, Y, and Z". This can be quite discouraging. My advise to those who are looking for a job is to apply to as many companies as humanly possible. Apply to 5 every evening for two weeks. You are working hard and don't have a lot of spare hours so get your resume into shape and apply to two jobs in the morning, two during your lunch break, and one when you get home. Keep on applying until you have applied to 50 organizations. Apply for positions that you might not even think you want (always within your technical discipline of course, let's not go crazy here). Don't get too attached to the idea of any given job you apply for.

Now an interesting thing will happen. When a recruiter asks you for a github account, tell them you don't have one. That's ok! You applied to 49 other companies. In fact, tell them you are talking with numerous other companies when you let them know you don't have a great github account. Maybe some will ask for "some other crazy requirement". No problem! You have applied to so many, it doesn't matter.

Generally speaking when I have done this in the past (or have couched others through the process), 50% of the companies they apply for will at least reach out to them. 50% of those companies will do a phone interview. 50% of those companies will call them in for an in person interview and often times better than 50% of those companies will give them an offer. So you'll have 25 companies that reach out to you. 12 companies which give you a phone interview. 6 companies which bring you in for an in person interview. And 3 or more offers! If you make it that far and don't take a great offer up front :)

Job hunting is a numbers game unfortunately. If a company isn't willing to give you the time of day because you can't provide them a github account that makes them happy, it's time to move on to another company. Keep on looking and good luck! You'll find the right one.

</comment><comment><USER3> Not all employers ask for Github account. What type of companies have you been looking at?

One option I would say it to try larger tech companies? They usually rely more on resume and credentials then github accounts. Make sure your linked in account has up to date information on your skills etc... Given that you have a signed an NDA I assume you have a current job? If so do you have coworkers that could provide you with references etc...?

</comment><comment><USER4> When I'm looking at job applicants, I ask to see a GitHub profile or other sample code. However, I will happily talk to people who cannot provide them. It's nice to see, and helpful for me when evaluating candidates, but it's not a requirement.

</comment><comment><USER5> I find asking for a github the exception, not the rule.

<comment><USER6> I put my github on my resume, and my projects and open source contributions are at the top. But then, my bachelor's isn't in CS.

<comment><USER5> My bachelor's isn't CS either and I still don't list those. Th3 couple times it has come up, I just say I do side projects for the company if I have time.

</comment></comment></comment><comment><USER7> Can we see your github?</comment>


New Node.js blocked by Great Firewall of China - <AUTHOR> http://gigaom.com/cloud/new-node-js-blocked-by-great-firewall-of-china/

<comment><USER2> Are we talking about nodejs.org? I am in China an can access it. And you can check for yourself here <http://viewdns.info/chinesefirewall/?domain=nodejs.org></comment>


Fists, stones and clubs: China and India's brutal high altitude, low-tech battle - <AUTHOR> https://news.yahoo.com/fists-stones-clubs-china-indias-brutal-high-altitude-143504194.html <comment><AUTHOR> China, IMO, will never dominate anything. Too many rivals at the doorstep, including India. Even though now China looks a lot better on paper (GDP /military spending wise,) India is not going anywhere but up, and USA can give India the tech edge needed to go toe to toe with China. Yes, I know China is allied with Pakistan and NK, but then Japan, South Korea, Taiwan, Vietnam etc etc have zero interest in a superpower called China.</comment>


Go 1.13 Release Notes - <AUTHOR> https://golang.org/doc/go1.13 <comment><USER3> I started poking around and noticed that Go 1.13 now defaults to the Golang Proxy to fetch modules. This means a proxy, governed by the Google Privacy Policy, is now capturing everyone's module usage by default. Unless you change settings this includes proprietary/corp stuff.

[https://codeengineered.com/blog/2019/go-mod-proxy- psa/](https://codeengineered.com/blog/2019/go-mod-proxy-psa/)

<comment><USER4> The Modules Mirror and the Checksum Database are governed by this specific privacy policy: [https://proxy.golang.org/privacy](https://proxy.golang.org/privacy)

"go env -w GOPRIVATE=*.corp.example.com" was added to make it as easy as possible to configure private modules. If the environment is not set up, just the name of the module will reach the Google services, it will not be published, and an error will be returned.

Anything else would have make it possible to bypass the protections of the new Checksum Database ([https://golang.org/design/25530-sumdb](https://golang.org/design/25530-sumdb)), a state-of-the-art authentication system that provides auditable proof that the operator is behaving honestly.

For an example of why the Mirror is valuable, beyond the 10x performance gains (depending on number of dependencies and connection latency) and security gains from not using git on the client, look no further than git.apache.org, which has been down for days breaking a number of builds ([https://status.apache.org/incidents/63030p4241xj](https://status.apache.org/incidents/63030p4241xj)).

I really think this architecture brings together the best of the decentralized module ecosystem that Go had (with its lack of regularly compromised registry accounts, and no mismatch between code and package origin) and the centralized registries of other languages (with their better performance and reliability).

Particularly proud of how the Checksum Database provides even more security than the centralized registries (because it's cryptographically accountable for its actions, while registries can sign anything they want) without requiring authors to manage keys, register an account, or change their workflow at all.

[Note that I work on the Go team, and co-designed the Checksum Database. But of course I don't speak for the company.]

EDIT to add: I should also mention that the sumdb allows the use of any untrusted proxy, easily configured with "go env -w GOPROXY", for users that can't or don't want to use the Google provided one. The proxy can also opt-in to mirroring the Checksum Database, in which case no user requests at all need to reach the Google services, while still providing all the integrity guarantees that proxy.golang.org users benefit from.

<comment><USER5> First programming language that I've had to read and understand a privacy policy to use.. and consider that it may change in the future.

The idea that the language I'm programming in now reports anything back to google is distressing.. and I say that as someone who has been programming in Go for about 7 years. What right does google have to collect usage information from modules hosted on github (or elsewhere)?

I checkout the code for the modules, review it, and commit it into my own repository. I don't need you to speed up the rare git checkout of a module. Not that I think some minor speed improvement is worth my privacy.

You talk about decentralization... while centralizing the entire thing around Google. You talk about git.apache.org being down, while you're willing to bring down the entire ecosystem across the board with your own special server.

This "feature" should have an option to disable it.. at the very least.

This is the first language in my 23 years programming that reports my usage back to the language authors. It's unprecedented. And the truth is, if this is ok to you, then there's really no limit what the code I write today, may report back to google tomorrow.

<comment><USER6> > This is the first language in my 23 years programming that reports my usage > back to the language authors

I suppose that means you haven't used any of:

1\. nodejs, which reports your usage back to npm Inc with the exact same amount of detail (names of dependencies, ip of caller) (and stores much more, since it publishes 'downloads per month', etc)

2\. rust, which does the same with crates.io

3\. perl, which does that with cpan

4\. python, which does that with pypi

5\. ... etc

All of those languages have a central registry of packages that has the same level of detail in the metadata it can potentially collect as the go proxy does.

> This "feature" should have an option to disable it.. at the very least.

It does. Multiple options. You can run your own proxy, disable it entirely, or opt out of the go mod experiment and never run go get, but rather vendor by hand with `git clone` or whatever.

> And the truth is, if this is ok to you, then there's really no limit what > the code I write today, may report back to google tomorrow.

Very much a slippery slope. They've communicated clearly how to disable it and what it does, it's in-line with what other language ecosystems do in terms of metadata reported to a central package repository, and I think it's very easy for someone to be okay with this, but to not be okay with any step beyond this line.

<comment><USER5> If I download something from a server, of course that server knows what I downloaded.

This is different. It's a proxy in front of others repositories. They want info on downloads from GitHub, gitlab, and anywhere else you get code from.

They (google) are a 3rd party to the download.

<comment><USER7> They're offering a cryptographically signed mirror - the first mainstream one available. You can either run your own personal mirror, run one for your company, or turn it off.

<comment><USER8> > They're offering a cryptographically signed mirror - the first mainstream > one available.

But why? Who asked for this??

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Contrary to what someone else has said, this is my _least_ favorite release of Go ever.

I'm salty about how the proxy, which is enabled by default, makes it so much more difficult to pull private modules by having to set environment variables on everyone's individual machines.

I've got an issue being discussed on GitHub about it [https://github.com/golang/go/issues/33985](https://github.com/golang/go/issues/33985)

<comment><USER10> go env -w GOPROXY=direct

go env -w GOSUMDB=off

<comment><USER8> This should be off by default and enabled manually for people who need it.

</comment></comment></comment><comment><USER11> Honestly, and I don't think I'm snarking (but would have to reflect a bit on it), "0b", "_", and signed shifts are probably going to make Go more pleasant for me than generics would have. This is my favorite release in years.

<comment><USER12> It brought one of my favorite parts about writing numbers in languages such as Ruby over to Go. From 10000000 to 10_000_000 is such a readability improvement and should be no-cost.

<comment><USER13> > From 10000000 to 10_000_000 is such a readability improvement and should be > no-cost.

1e7

<comment><USER14> > 1e7

Is a float literal.

<comment><USER15> Not in Go. Number literals don't have a type until they're assigned to a variable or used in a place that implies a type (e.g. a function argument). For example, the following is valid:

      var u uint32 = 10000000000.0 / 100000

even though 10000000000 overflows uint32 and it's also written like a floating-point literal.

<comment><USER14> > Not in Go.

Yes in go. `var u = 1e7` gives a float. That means 1e7 is a float literal. You _can_ coerce it to an integer by explicitly typing the target, but it's still a float literal.

<comment><USER16> `1e7` is an untyped numeric constant with a default type of float64.

[https://blog.golang.org/constants](https://blog.golang.org/constants)

[https://golang.org/ref/spec#Constants](https://golang.org/ref/spec#Constants)

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> I like the way Go proceeds as a language, with features added very very slowly and the compiler and tools regularly improving. I hope Rust can settle down into a similar focus soon.

<comment><USER18> I think Go is the only software release at this point to whose releases I respond with 'Ooh shiny' and not 'Oh god'. I _love_ the way they're doing this — calm, collected, slow, and with ample heads up.

At this point, I think we all have some JavaScript PTSD.

<comment><USER19> C# obviously has a very different design philosophy than Go, but its releases are moving along at a similar (and IMO, reasonable) pace.

</comment></comment></comment><comment><USER20> > The GO111MODULE environment variable continues to default to auto, but the > auto setting now activates the module-aware mode of the go command whenever > the current working directory contains, or is below a directory containing, > a go.mod file — even if the current directory is within GOPATH/src. This > change simplifies the migration of existing code within GOPATH/src and the > ongoing maintenance of module-aware packages alongside non-module-aware > importers.

Oh wonderful! This makes switching back and forth between module projects and 'legacy' projects far easier. (Well, at least for me - since I tend to keep all cloned git repos inside the GOPATH. I don't have a problem, really!)

</comment><comment><USER21> I occasionally use Python for large-scale processing of structured data (XML, JSON) and the data's really messy as you'd expect (malformed responses, missing fields, normalisation, etc..). One of the things putting me off of Go for these kinds of projects is it's much more verbose/harder to handle edge cases - it feels like I'm less productive writing the program, but end up building something much more stable than the Python equivalent.

I'm definitely going to see if Go is acceptable for my next project since I really need the performance for my workload, and I've wanted to put this great language to work in something that isn't a toy project.

<comment><USER22> > is it's much more verbose/harder to handle edge cases - it feels like I'm > less productive writing the program, but end up building something much more > stable than the Python equivalent

This is exactly how I felt moving from a Python codebase to Go. But you realize on the 100th or so Python stacktrace that it's worth the investment up front, if not for type safety alone.

> I really need the performance for my workload

Careful with that assumption. A pure Go application will in many cases be more performant than a pure Python one, but Python has a better C interop story. In the particular cases of parsing XML and JSON, I'd wager Python is much faster, actually.

<comment><USER23> > on the 100th or so Python stacktrace

Go's not perfect in this respect, either. I had your typical map[string][]interface{}, because the data in the map was an array of records, but different records in different cases, and made an error in an append(), so ended up with nested arrays. That's correct according to the type definitions, but unwanted. Generic could have helped here. So I think the language still needs to grow a bit.

<comment><USER24> I tend to write custom parsers for jsoniter in this case so that I catch any unexpected data types as early as possible.

</comment></comment></comment></comment><comment><USER25> I actually just started to use go on windows just to check it out. First impressions from a newbie:

\- Getting started with go and vscode is kinda bad right now. I installed go, set up GOPATH, installed all kinds of extensions in vscode and then, somewhere down the official tutorial I learn about GO111MODULES, go mod init, vendor folders and the language server... I was completely confused and still am. I removed all extensions except the main one from vscode and the language server was crashing like crazy until I unset GOPATH. Works now, mostly. Intellisense and code formatting seems to be still unstable now and then. But geez, that first experience was horrible.

\- The syntax is very weird after writing too much C#. Sometimes I have the feeling, that declarations are reversed just for the sake of it.

\- Why does go need := with the colon? I know it's a declaration, but I haven't figured out the reason for the colon.. Seems weird..

\- I love gofmt and format-on-save. But it was not the default setting. Still don't know if I should use another one.

\- I hate configuring vscode. After hearing only good things about it, the configurations and keybindings are horrible and that I need an extension for each and every small thing. Maybe I'm in the minority, but Visual Studio is miles ahead in this regard, I think.

\- Fast compilation times are awesome. I love, that I can create a simple exe without a framework dependency.

\- I can parse 2GB of simple JSON files in less than 20s. I'm awed.

\- I have no idea how to compile some modules like the sqlite one. Seems to need gcc..? Do I have to fully switch to Mingw/WSL?

\- I was losing my mind when I saw my program giving different results on each run... Until I found out about that randomized map iteration.. Funny.

\- Finding an item in a slice: Yeah, sometimes generics would be nice but let's not start a holy war...

\- Need to get used to error handling.. It can get really verbose and those scoping rules are strange.. I miss exceptions, but I can get used to the go way.

\- I love that I can use the official docs locally: godoc -http=localhost:6060

\- I had to use google and stackoverflow more than I initially thought for a 'simple' language... But well, I guess that's normal?

Sorry for the rambling. I love the simplicity of the language and hope to get into it more. But the initial experience is still, umm, not streamlined, it seems? But I hope that's just temporary.

<comment><USER26> > The syntax is very weird after writing too much C#. Sometimes I have the > feeling, that declarations are reversed just for the sake of it.

Rob Pike explains the reasons behind Go's deceleration syntax in this blog post: [https://blog.golang.org/gos-declaration- syntax](https://blog.golang.org/gos-declaration-syntax)

<comment><USER25> Wow, this is really mind-opening. Everything makes sense now. Thank you.

It's also funny, that they stuck to the * pointer notation which led to the problem, where they could not tell apart a pointer from a multiplication, so they put it to the left of the variable name. It's the small things...

But I guess * is just too convenient and ingrained.

</comment></comment></comment><comment><USER27> How does Go compare to Rust these days with respect to language maturity, community size and general maturity/availability of libraries?

So far I've found Rust more interesting and pushes the envelope a bit more. But what is the sales pitch for Go?

<comment><USER28> The way I view it is that Go is for people who write software while Rust is for those who like to think about how to write software.

Perhaps I'm old and grumpy but I feel that at this point I've had every language discussion before and if people start to moan about lack of metaprogramming support I just leave.

I have yet to see a project that failed due to lack of high order abstractions

<comment><USER29> I have yet to see a project that failed due to being written in Assembly, yet we moved on to better abstractions.

<comment><USER28> I've worked on two projects (in early x86 assembler) that ran out of steam because they took too long to do and it was hard to onboard new developers.

I've also abandoned a few paths during projects because of libraries that were overly abstract, didn't work and were thus hard to understand and maintain.

A product at a company I used to work for had to reimplement a huge chunk of code because the original designer left and the metaprogramming behemoth he wrote was too hard to understand, extend and debug. That one chunk of code cost about $500k and 6 months to replace. I'm unsure of the total cost of that effort as it delayed the next release at a critical time.

Abstraction levels need to be appropriate. Enough to make things simple - <USER2> so much that it makes life harder.

<comment><USER29> Like this?

[https://archive.fosdem.org/2019/schedule/event/kubernetesclu...](https://archive.fosdem.org/2019/schedule/event/kubernetesclusterfuck/)

<comment><USER28> I would have to look at this since I'm not familiar with the codebase, but I'll have a look. Thanks!

I'm not quite sure this is what I meant from the description of the problem. This looks more like a problem of trying to program Java in Go. What I was thinking of was more along the lines of modeling things in ways that either disconnect you from the problem you are trying to solve or solve it with too much abstract cruft grafted onto the model so just dealing with the abstractions themselves becomes more work than a more direct and naive approach.

</comment></comment></comment></comment></comment></comment><comment><USER30> Nice to see that out-of-bounds panics will now include the offending index. Was that difficult to implement, or just controversial? Seems like something that could have been added a long time ago and saved much frustration when debugging.

<comment><USER31> I think the concern was that it would be too expensive, but then later they were able to figure out a way to do it.

Some more details: [https://github.com/golang/go/issues/30116](https://github.com/golang/go/issues/30116)

</comment></comment><comment><USER32> > Go programs are now compatible with Android 10.

That's pretty cool

</comment><comment><USER33> So GOPROXY is like AMP for my Golang codebase?

Edit: :)

<comment><USER19> Not sure if you were trying to be funny.. but I find this hilarious :P

</comment></comment><comment><USER34> I haven't been keeping up with Go. Is it still the case that the only datatype than can be used as keys to a map and is not of a fixed size is string?

<comment><USER30> Strings are fixed-size, though. A string is a pointer and a length.

It's true that you can't use a slice as a map key, though, even though slices are also fixed-size (pointer, length, and capacity). As I recall, the argument is that the equality rules for slices are unclear. (maps and funcs can't be used as keys either, for the same reason: they're not comparable.) Is a 0-length slice equal to a nil slice? Is a slice with len 3, cap 3 equal to a slice with len 3, cap 4?

In practice, this is rarely a problem. It most commonly comes up when you want to use []byte as a key, in which case you can convert the []byte to a string. This overhead of this conversion (specifically when it occurs in the context of a map key) has been optimized away for a few versions now.

<comment><USER35> Would it be too hard to just compare arbitrary slices and arrays based on the contents of said data structures? Converting arbitrary bytes to strings should fail at least some times, since not all byte sequences are valid UTF-8, and afaiu, in Go, the string type should always contain valid UTF-8.

<comment><USER30> Go strings do not need to contain valid UTF-8, although in practice they usually do. A 'range' loop over a string will loop over its UTF-8 codepoints, but in general, a string can contain arbitrary binary data. See [https://golang.org/pkg/builtin/#string](https://golang.org/pkg/builtin/#string)

</comment></comment></comment></comment><comment><USER36> Awesome news. Go is C for the Cloud.

Can I trademark that? ;)

</comment><comment><USER37> Is there some information about how to set-up your own proxy/checksum DB?

EDIT: I understand that there are environment variables you can set, but how do I go about deploying my own proxy/checksum server? Is the source code behind [https://sum.golang.org/](https://sum.golang.org/) published somewhere?

</comment><comment><USER38> The documentation makes clear, if someone accidentally commits something they shouldn't (i.e. a file containing your users personal details, credentials, etc...) then it is stuck in their proxy forever. It is clear that google employees believe we live in a perfect world where all employees never make mistakes.

[https://proxy.golang.org](https://proxy.golang.org) :

> "...the mirror aims to cache content in order to avoid breaking builds for > people that depend on your package, so this bad release may still be > available in the mirror even if it is not available at the origin. The same > situation applies if you delete your entire repository. We suggest creating > a new version and encouraging people to use that one instead."

<comment><USER39> If you commit and push your credentials, they have been compromised, full stop. This proxy should make no difference to how you handle such a compromise.

<comment><USER38> Actually it does make a difference. If an employee accidentally commits a CSV file with customer private data, are you actually suggesting that it should not be possible to remove it?

I disagree. The quicker that the personal data can be taken down, the less chance there is for someone to discover that personal data. I can't imagine any large company being comfortable with developers choosing technology that makes this harder to deal with than it should be.

(I am not at all suggesting this scenario is ok, simply asking how one would deal with it if the scenario should occur.)

<comment><USER40> The go _checksum database_ / go sum / sum.golang.org appends your module name, version, and _hash_ of it's contents into a permanent, immutable, public log as soon the first time it's seen. But sum.golang.org doesn't host any code.

On the other hand, _proxy.golang.org_ re-hosts your module, and you can know that the proxy isn't serving you maliciously or differently than anyone else by verifying it via the public checksum database at sum.golang.org.

I don't believe proxy.golang.org, or any proxy for that matter, is _required_ to host _all_ of the modules and versions listed. It's a dumb caching proxy, and must deal with all of the real world complexities of hosting user content, including taking it down if deemed necessary. So if they need to take something down from the proxy they can, and the checksum database will only permanently retain the _hash_ of the content that makes up the module.

</comment></comment></comment></comment><comment><USER41> I have noticed a slight slow down in my own programs - around 5% compared to 1.12. Has anyone else noticed this in with their programs?

<comment><USER42> File a bug with a repro? Chances are it'll get fixed if your benchmark is good.

</comment></comment><comment><USER43> > The existing octal notation indicated by a leading 0 followed by octal > digits remains valid.

Oh my god why?

<comment><USER44> To not break go1 backwards compat?

<comment><USER43> Compatible with what exactly. No one uses octal.

Here is a link to Pike fucking it up 10 years ago.

[https://github.com/golang/go/issues/151#issuecomment-6604830...](https://github.com/golang/go/issues/151#issuecomment-66048306)

<comment><USER45> Lots of code uses octal. Its still the standard way of notating file permission bits on unix: os.Chmod(filename, 0777).

You would break so much code if you just threw that away.

<comment><USER46> > standard way of notating file permission bits on unix: os.Chmod(filename, > 0777)

... and honestly, is the ONLY place where I have ever seen octal been used.

</comment></comment></comment></comment></comment><comment><USER47> Great so now we have a language that leaks my data to a proprietary service and I can't even see what they're doing with that data. Somehow Google becomes more and more like Microsoft was in the old days. Why is it so hard to not be evil? Why is it so hard for devs working at Google to use open-source paradigms and be careful with anything involving corporations? [https://github.com/golang/go/issues/34029](https://github.com/golang/go/issues/34029)

</comment><comment><USER48> Looking at the release notes:

> Go 1.13 now requires macOS 10.11 El Capitan or later; support for previous > versions has been discontinued.

> Go 1.13 now requires FreeBSD 11.2 or later; support for previous versions > has been discontinued. FreeBSD 12.0 or later requires a kernel with the > COMPAT_FREEBSD11 option set (this is the default).

Sounds like they're still using syscalls directly on those platforms. Is Google ever going to admit that it's broken by design, because userspace apps on those platforms (outside of the base system, which is tightly coupled to the kernel) are not meant to be calling into the kernel directly directly, and should do everything via libc and other userspace libs that wrap syscalls?

<comment><USER49> This has probably been the case since Go 1.11 (2018/08/24)[0]

        On macOS and iOS, the runtime now uses libSystem.dylib
        instead of calling the kernel directly. This should make
        Go binaries more compatible with future versions of
        macOS and iOS. The syscall package still makes direct
        system calls; fixing this is planned for a
        future release.

I'm not an expert in Darwin, but looking at the implementation of the syscall and runtime packages in Go 1.13, and most seem to be via trampolines into libSystem.dylib

FreeBSD looks deprecated not because of syscall difficulties, but because missing functionality and upstream EOL.[1]

[0]: [https://golang.org/doc/go1.11#runtime](https://golang.org/doc/go1.11#runtime) [1]: [https://github.com/golang/go/issues/27619](https://github.com/golang/go/issues/27619)

<comment><USER48> Fair enough - so it's fixed on macOS, but not on FreeBSD.

That they don't run into issues with this constantly on BSD is not surprising - it didn't always break in macOS, either. Syscalls just don't change that much, usually, so you can get away with it more often than not. The problem is that when they do change eventually, every precompiled Go app that used one stops working.</comment></comment></comment>


Git Cheet Sheet - <AUTHOR> http://www.git-tower.com/blog/git-cheat-sheet/

<comment><USER2> The "Test Code Before You Commit" rule suggests that the writer does not distinguish between committing code and pushing code, between private changes and public changes. When you commit changes locally, you can always rebase to your heart's content before pushing.

I think this says it best: "Treat public history as immutable, atomic, and easy to follow. Treat private history as disposable and malleable." [https://sandofsky.com/blog/git-workflow.html](https://sandofsky.com/blog/git- workflow.html)

<comment><USER3> "Test Code Before You Push" seems to be what they're trying to say.

</comment></comment><comment><USER4> I maintain a very basic cheatsheet ([https://github.com/trufa/git- cheatsheet](https://github.com/trufa/git-cheatsheet)) if anyone is interested, I think it is a little bit more helpful since it links to relevant explanations and has some clarifications beside the code.

I did it for myself (because I kept forgetting) so it's not very thorough, but still a little more helpful if you ask me, it will get better with time and/or collaboration (unlike an image!).

Note that the very basics are not included, those you tend to remember them soon enough IMO.

If you're interested it's hosted on github and I would be very happy if anyone want's to collaborate:

[https://github.com/trufa/git-cheatsheet](https://github.com/trufa/git- cheatsheet)

<comment><USER5> Why don't you put a rendered version on a GitHub page[1]?

[1] [http://pages.github.com/](http://pages.github.com/)

<comment><USER4> I hadn't done it because it's very home-made, but since it's effortless, it's already done. Thanks for the suggestion!

[http://trufa.github.io/git-cheatsheet/](http://trufa.github.io/git- cheatsheet/)

</comment></comment></comment><comment><USER6> In case you don't want to download all three design variations in a zip file you can download the one you want here:

* White [http://www.git-tower.com/files/cheatsheet/Git_Cheat_Sheet_wh...](http://www.git-tower.com/files/cheatsheet/Git_Cheat_Sheet_white.pdf)

* Grey [http://www.git-tower.com/files/cheatsheet/Git_Cheat_Sheet_gr...](http://www.git-tower.com/files/cheatsheet/Git_Cheat_Sheet_grey.pdf)

* Dark [http://www.git-tower.com/files/cheatsheet/Git_Cheat_Sheet_da...](http://www.git-tower.com/files/cheatsheet/Git_Cheat_Sheet_dark.pdf)

</comment><comment><USER7> What font are they using for their cheat sheet? It appears to have its apostrophe glyph turned upside down, which seems a rather odd thing for a font designer to do.

EDIT: Actually, it looks like the font is fine and (for some reason) the source document represents apostrophes with U+2018 (LEFT SINGLE QUOTATION MARK) instead of U+2019 (RIGHT SINGLE QUOTATION MARK).

</comment><comment><USER8> "Version Control is not a backup system"

I think it is. In fact, when working on personal projects that's the ONLY reason I use it.

I don't understand why Linus gets his knickers in a twist about the commit message thing. Whilst I do try and keep my commit messages useful and not blank, I can only think of three or four times in the last ten years where I've actually had to go back through previous versions of code to try and understand the current code. Why is it so important? Just look at the code you have now and fix it!

<comment><USER9> > _I can only think of three or four times in the last ten years where I 've > actually had to go back through previous versions of code_

Then, with all due respect, you work on some pretty trivial code and/or throwaway projects without long lifetimes. No one who has ever faced a serious regression in a large system would ever say something like this.

<comment><USER8> I think you'll find I work on full scale enterprise systems with lifetimes of 4 years - 30 years. It's about _understanding_ the code you have now, and you can do that by looking through it.

</comment></comment></comment><comment><USER10> This is going to be a nice thing to reference. I think I'll print it out. My only complaint is that it doesn't cover the git stash commands. I'll just use a good old fashioned pen to write my own section!

</comment><comment><USER11> For the love of all that is spelling, will a mod change the title on here... it should be "Cheat" not "Cheet"

</comment><comment><USER12> the popularity of these cheat sheets every month is telling of git's confusing, over-overloaded syntax :(

i keep hoping they make a clean break and just rework the commands to reduce confusion and introduce better uniformity

<comment><USER13> This. A million times, this.

</comment></comment><comment><USER14> FINALLY! Thanks you javinpaul for posting this. I really needed it!

</comment><comment><USER15> git config alias.cheet cheat</comment>


First Support for a Physics Theory of Life - <AUTHOR> https://www.quantamagazine.org/first-support-for-a-physics-theory-of-life-20170726/ <comment><USER3> The article seems to suggest he's simulating a "soup" of many different molecules and seeing which combinations lead to sustained reactions. Nick Lane's book "The Vital Question" [1] discounts the primordial soup idea (that life arose in tidal pools or streams near volcanos due to the right chemical mixture being present in the water at that time) and suggests underwater alkaline hydrothermal vents as the location of the first formation of life. The hydrothermal vents produced (see also his recent paper [2]) alkaline fluids which mixed with acidic seawater within micropores provided by the geological structures of a particular type of vent. This, he hypothesises, led to proton gradients which are essential for life.

Of course, both these guys are experts at the top of their fields, at respected institutes. I possess neither of those qualities.

[1] [https://www.amazon.com/Vital-Question-Evolution-Origins- Comp...](https://www.amazon.com/Vital-Question-Evolution-Origins- Complex/dp/0393088812)

[2] [http://nick-lane.net/publications/origin-life-alkaline- hydro...](http://nick-lane.net/publications/origin-life-alkaline-hydrothermal- vents-2/)

</comment><comment><USER4> >"The existence of life is no mystery or lucky break, he told Quanta in 2014, but rather follows from general physical principles and "should be as unsurprising as rocks rolling downhill.""

This makes sense. Life exists here on earth, I believe it got here through natural processes, and so it seems that life should be expected in the right circumstances.

But this begs the question, has life arisen independently from other existing life in the last 4 billion years? All known life shares the same fundamental genetic code and appears to descend from a single common ancestor. Are we to believe that the founder population of all life on earth, from which the GCA hailed, is the only instance of life on earth arising directly from inanimate matter? Or has life arisen independently between 4 billion years ago and now, just to be out-competed by existing life forms? Or were conditions just right 4 billion years ago to allow for the spontaneous generation of local-entropy reducing molecular agents (which evolved into life), and ever since conditions have been wrong for the generation of life?

<comment><USER5> If self-replicating organisms did spontaneously emerge multiple times in history (which is possible, although I think many, including England, overestimate the statistical likelihood of complex things coming together so perfectly), they were likely eaten immediately by more refined life forms.

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

<comment><USER6> I never understood this line of thinking (it kind of reminds me of the sci-fi trope of the killer virus from outer space). In order for two life forms to be able to interact significantly at a bio-chemical level (let alone eat each other), one would imagine their bio-chemistry would have to be highly compatible. That seems unlikely of lifeforms arising from independent abiogenesis events.

<comment><USER7> > That seems unlikely of lifeforms arising from independent abiogenesis > events.

Not at all, you're presuming there are many different ways life could work, that might not be the case at all. It's entirely possible there's only one or very few possible recipes for life so no matter how many abiogenesis events occur, they produce the same kind of life.

A simple analogy, wood burns, fire is fire, you don't expect every different occurrence of fire in nature to produce a new and incompatible type of fire. Life could be the same, it could be that anywhere carbon based life forms it's basically the same basic recipe and thus biologically compatible with all other forms of carbon based life.

<comment><USER8> > It's entirely possible there's only one or very few possible recipes for > life so no matter how many abiogenesis events occur, they produce the same > kind of life.

Presumably this is even MORE likely if the independent lifeforms both emerged in similar physical & chemical environments.

<comment><USER7> Agreed.

</comment></comment></comment></comment></comment></comment><comment><USER5> Regarding the latter half of this article, I see no reason why there is a need to distinguish information processing from evolution -- it just so happens that complex self-replicating structures can compete better when they respond to information, and so they are evolutionarily favored.

The real challenge is modeling evolution mathematically. I don't see why Darwinian evolution is often considered a property of life, as opposed to life being the prime example of the fundamental, logical algorithm of evolution. That is, any self-replicating, changing system will tend toward competitiveness in its environment.

</comment><comment><USER9> As a fair example of structure coalescing from randomness and simple physics,I have to hawk this* example called 'bloop' from my web 3d physics project. It is a cloud of gravitating bodies with a simple 'sticky' force between close neighbours, the strength of which varies like breeze. I find it reminiscent of the old 'bag in the wind' video.

[*] [https://strainer.github.io/fancy/#12](https://strainer.github.io/fancy/#12)

I come upon things like this while playing with and debugging different forces. One very early, imploding world with simple gravity, created a surprising 'aleph-like' blob of flickering shapely artifacts. It blew my socks off but it was before proper version control and I'd have to do archeology to recreate it. Better to keep improving the physics and see what can pop up next ...

<comment><USER10> Cool demo. Reminds me of a music visualizer.

<comment><USER9> Thanks. Adding sounds is on my list :)

</comment></comment></comment><comment><USER11> Here's a key paragraph that really walks back a lot of the language in the first half of the article. Here he's just stating physics may be much friendlier to the initial conditions for abiogenesis than previously believed:

"In the short term, I'm not saying this tells me a lot about what's going in a biological system, nor even claiming that this is necessarily telling us where life as we know it came from," he said. Both questions are "a fraught mess" based on "fragmentary evidence," that, he said, "I am inclined to steer clear of for now." He is rather suggesting that in the tool kit of the first life- or proto-life-forms, "maybe there's more that you can get for free, and then you can optimize it using the Darwinian mechanism."

<comment><USER12> I still like the article a lot, it gives the right amount of details to get me interested in the topic and starting a hunt for information on google scholar.

</comment></comment><comment><USER13> > He further showed that this statistical tendency to dissipate energy might > foster self-replication. (As he explained it in 2014, "A great way of > dissipating more is to make more copies of yourself.")

Then the atoms will become _happy_ and try to do more of that to become more _happy_?

My BS detector is screaming loudly.

First, this stuff about the second law of thermodynamics leaves me cold:

> the second law of thermodynamics, which says that energy constantly spreads > and the entropy of the universe always increases. (The second law is true > because there are more ways for energy to be spread out among particles than > to be concentrated, so as particles move around and interact, the odds favor > their energy becoming increasingly shared.)

BS. That argument has a huge, hidden assumption, that we are looking at an inert gas in a bottle. So, there are no chemical reactions, etc. Then there are lots of possible configurations.

Try that with some sticky ping pong balls and soon will have just a solid clump with only configuration. Try that with a lot of billiard balls, and soon they will arrange themselves on the bottom of the container with a lot of hexagons and tetrahedra, that is, with a relatively few number of configurations.

So, to discuss how life began, let's f'get about the second law.

Instead, we know that we can cook chemicals and get amino acids. Why? Because get chemical reactions where the atoms stick together, and it would take energy to split them apart again. Then if we cook for a few hundred million more years, we can get a configuration that can consume energy from its environment and reproduce itself. Then we are off to the races because what took a billion years to do the first time now just takes the time to reproduce. Then with small errors in the reproduction process and lots of reproduction, we get forms of life that are better at extracting energy from the environment and reproduce faster; soon that life form becomes relatively common, in that sense, dominates. Eventually we get a very creative farmer and expert with domestic animals, stone, wood, and metal with a very fertile wife, and they have lots of kids who also do really well.

There are some questions and issues, but IMHO the model for the second law of inert atoms of a gas in a bottle is nearly irrelevant.

</comment><comment><USER14> I wonder if there's a way to adapt this to AI / machine learning. To my uneducated eye, there's a distinct similarity between the "breaking and reforming" of [simulated] physical bonds, and the training of a neural net.

If you consider your training data (or other "external sensors") as the environmental forcing factors... do you process "information" instead of "energy"?

</comment><comment><USER15> When I was in vegas, the thought occurred to me that cities were structures designed to dissipate economic energy.

Money flows into vegas through the big casinos and gradually works its way out through the rest of the city, forming vortexes and whirlpools of economic activity, of lower and lower intensity as you move out from the city center, until it gradually fades out into desert.

<comment><USER14> Interesting. How does this interact with the idea of trickle-down economics?

<comment><USER16> Trickle down is a completely uninteresting tautology: money is used by the wealthy, so it "trickles down".

The more interesting question is if, while tricling down, people improve their life quality.

Far from true.

<comment><USER14> Oh I agree!

But the idea of wealth concentration that then tapers out as a function of distance from the city center bears at least a superficial resemblance.

Perhaps why one works and the other doesn't is that personal wealth accumulation IS like water: it'll get stuck in local maxima, etc - <USER2> city wealth accumulation is more like sand; as it piles on top you get landslides that distribute.

</comment></comment></comment></comment><comment><USER17> Forgive me if I'm dense, but I read the article twice and don't see how this is anything more than a well known fact getting some science journalism coverage to seem important. Is the big news here that someone in physics has applied a crude model to the very well understood theory of abiogenesis? We've literally ran this experiment in vitro. With real chemicals.

I'm not sure how the entropic basis of the theory provides any insight beyond 'capacity for work can generate things that have capacity for work', which we knew. The big question isn't, and wasn't, whether a system with primordial chemicals could generate self-replicating reactions and structures - you could figure that out by looking in a mirror.

It's what those primordial cycles actually were.

Edit: Looks like the dude's former supervisor working in chem isn't full of shit like the rest of the article is: Shakhnovich said, but "Jeremy's work represents potentially interesting exercises in non-equilibrium statistical mechanics of simple abstract systems." Any claims that it has to do with biology or the origins of life, he added, are "pure and shameless speculations."

TLDR - might be interesting in niche modeling field, but has nothing to do with origins of life.

<comment><USER18> > a system with primordial chemicals could generate self-replicating reactions > and structures - you could figure that out by looking in a mirror

Only if you require no evidence, and no verifiable, independently confirmed experiments to back up your claim. What you said is basically the scientist's version of intelligent design at this point.

<comment><USER19> There have been plenty of experiments showing that the building blocks of life will spontaneously self-assemble under the right conditions. We have now confirmed that comets and other bodies in space contain complex molecules such as hydrocarbons.

There are also plenty of experiments demonstrating that certain structures self-assemble and even "replicate" (for some definition of replicate) under the right conditions, purely as a function of their molecular structure.

There is no conclusive proof... but certainly everything we've discovered to date supports abiogenesis of life given the right conditions and a few 100 million years for many trillions of attempts. It is likely that the first "life" wasn't life as we would define it, more like a prion: a self- replicating molecule built out of amino acids dumped on Earth from meteorite and comet impacts. The first true "life" was probably exceedingly simple and lived off chemical reactions around hydrothermal vents.

<comment><USER20> No conclusive proof? No proof at all.

Go and listen to James Tour and his video on the problems of just getting the right pre-life chemical synthesis to occur. He is a organic chemist (one of the top in the world) and he talks about each of the incompatible processes between each step.

I would be more inclined to take his word for it than a biologist (of any stripe). Abiogenesis seems to be the least likely scenario in the formation of life (as in close to 0 as to make no difference) irrespective of the amount of time that is allocated.

<comment><USER7> > Abiogenesis seems to be the least likely scenario in the formation of life

Yet we know it happened, because life exists, and it didn't spring from magic so it must have sprung from non-life. Random chance is a hell of a search algorithm, abiogenesis is simply the inevitable outcome randomly trying every possible combination over hundreds of millions of years. There are no more likely scenarios.

<comment><USER20> Just because we know something is, does not mean know why. You make a very broad leap to say that there are only two possibilities - magic and abiogenesis - and that one of those possibilities doesn't exist.

There are three broad classifications of philosophical belief - the universe is all there is and there is no non-physical component, that the universe is and has a non-physical component (it is alive, etc) and that there is a creator who is separate from the universe and that creator made the universe.

Within that context, the three can be split into two variations, the universe (with or without a non-physical component) is eternal (steady state or cyclic) and an eternal creator who has made a finite lifespan universe.

Abiogenesis can arise in one of those three variations, in the other two, either the universe creates life as apart of its functionality (its non- physical attributes) or there is a creator that has designed and set in motion life.

Please note that abiogenesis is a completely different subject to any evolutionary model that people may subscribe to.

You can argue all you like about the variations above but you cannot use science to determine the "truth" of which variety you personally believe in. That is a metaphysical/philosophical/religious debate that is outside of the domain of science.

So, where does that leave us in this discussion? Well, it says that you have not given much thought to your point of view in such a way that you are able to logically argue its merit. In which case, I would suggest that you might like to flesh out your arguments because as they stand, the arguments you present are extremely weak and illogical.

</comment></comment></comment></comment></comment></comment><comment><USER18> > Since then, England, a 35-year-old associate professor at the Massachusetts > Institute of Technology, has been testing aspects of his idea in computer > simulations.

Claiming life was created because a computer said so will convince no one requiring physical proof. The bar for evidence is too low with this experiment.

<comment><USER12> But it could at some point provide the key ingredients and conditions to replicate it. Lacking a laboratory of Earth's scale one could use supercomputing (at some point, we're not there yet) to figure out necessary and sufficient conditions, after which hopefully any chemistry student could replicate in the lab with that knowledge. Seems sci-fi now, but I could imagine this happening in a few decades.</comment></comment>


Wallpaper will crash your Samsung phone - <AUTHOR> https://twitter.com/UniverseIce/status/1266943909499826176 <comment><USER2> Actually, it also crashes on Google Pixel Phones. In fact, further down the Twitter thread, it is an issue in Android itself involving the Skia library incorrectly processing the wallpaper.

</comment><comment><USER3> A Reddit video shows a "hKtweaks was granted Superuser rights" message immediately following loading the screenshot, so it seems like maybe someone stumbled into an RCE for some image processer that is actively being exploited and trying to elevate privileges? Maybe the guy who took the video is using a custom ROM?

I don't know much about Android, but here's the video if that helps anyone in the know: [https://v.redd.it/mzx6ftk4c7251](https://v.redd.it/mzx6ftk4c7251)

</comment><comment><USER4> For some reason, many people tested it on their own phones, and were sad when it crashed them, according to the twitter thread. Not sure what to say. lol.

</comment><comment><USER5> From the comments it looks like _all_ Android phones, even emulators. Crazy.</comment>


Say What? Google Reader Translates Any Feed into Your Native Tongue - <AUTHOR> http://www.readwriteweb.com/archives/say_what_google_reader_transla.php <comment><USER2> Just tried from English to Italian, and I must admit it's quite _funny_

</comment><comment><USER3> This could be an interesting language learning tool (with the drawback, it's machine not a real native speaker).

As someone who is learning Spanish, I'm interested in testing English to Spanish..

</comment><comment><USER4> Very kewl. A article about a service without linking it. And even kewler. A new function in a service without a tryout. Good luck!</comment>


Bill Gates On Nuclear Energy: Compared To Coal, It Is Still Safer - <AUTHOR> http://techcrunch.com/2011/05/03/bill-gates-nuclear/ <comment><USER2> I think the general aversion to nuclear is explained in part by our tendency to overestimate the risk of rare, catastrophic events and underestimate the risk of everyday events. This is precisely why we tend to fear flying more than driving, although the latter is far more dangerous. Ezra Klein has a nice summary of this phenomenon today, "How We Get Risk Wrong":

[http://www.washingtonpost.com/blogs/ezra-klein/post/how- we-g...](http://www.washingtonpost.com/blogs/ezra-klein/post/how-we-get-risk- wrong/2011/05/03/AF6JF3fF_blog.html)

<comment><USER3> I'd say there are lots of people who think that nuclear power plant can explode like nuclear bomb.

<comment><USER4> Heh, yeah. It is hilarious at first sight, but this misconception is actually common.

</comment></comment></comment><comment><USER5> I'd accept that nuclear can be safer, if I had any faith in the operational model for the plants.

I live in Albany, NY about 80 miles from the Vermont Yankee nuclear plant, a Mark 1 GE reactor whose operator has a history of bad practices, like operating at 120% of capacity for extended periods and regularly releasing tritium into the Connecticut River. The facility has exceeded it's service life, and the operator is suing the State of Vermont for a license extension to make some more money on the place before having to clean up the site.

While coal plants in Ohio and Western NY probably pose a greater health hazard, there are other risks as well -- if a black swan event causes a serious incident at this aging facility, I live just outside of the "no humans allowed" zone. My family and relatives are in that radius and would be financially ruined by such an event.

I want a non-profit, quasi-military like organization operating plants in a transparent manner. I want aging reactors replaced by designs where operating safety was a bigger consideration in the design of the reactor. Operating these facilities with a bias towards making money for the operator is not in the public's interest.

<comment><USER6> _My family and relatives are in that radius and would be financially ruined by such an event._

Isn't this exactly the case that insurance is designed for? A catastrophic event that is exceedingly unlikely to happen?

<comment><USER5> Nope. Insurance companies explicitly exclude these type of events. That should tell you something -- insurance companies don't like open-ended, catastrophic risk.

<comment><USER6> Fortunately, the US government has $12 billion to help people out in the event of a catastrophe:

[http://www.nrc.gov/reading-rm/doc-collections/fact- sheets/fu...](http://www.nrc.gov/reading-rm/doc-collections/fact-sheets/funds- fs.html)

</comment></comment></comment></comment><comment><USER7> By some estimates, nuclear would be among the safest energy sources (in deaths by TWh, one of the few honest ways of comparing the risks), even safer than wind and rooftop solar power.

[http://nextbigfuture.com/2011/03/deaths-per-twh-by-energy- so...](http://nextbigfuture.com/2011/03/deaths-per-twh-by-energy-source.html)

<comment><USER5> With most energy generation schemes, including nuclear, many costs and risks are externalized to a third party -- namely the taxpayer.

I'm not familiar enough with the methodology to dispute it's finding regarding deaths, but I'd argue that evaluating risks solely on the number of attributable deaths is not a full accounting of risk.

What is the economic and social impact of the 20 mile exclusion zone around Fukushima? You're looking at a handful of deaths, but many lives have been affected nonetheless. If my rooftop solar panel kills my family somehow, that is a personal tragedy, but the scope in terms of people affected is nothing like a rare, but catastrophic nuclear failure.

<comment><USER7> That's a valid argument, but this thread is all about human safety.

<comment><USER5> That's a problem -- engineers are frequently frustrated with the public perception of nuclear because they focus on a single metric which is just one of many considerations.

<comment><USER7> But that's wrong. Just because this thread is about human safety doesn't mean that a lot (lot, lot) hasn't been written about socioeconomic aspects of the different energy sources.

</comment></comment></comment></comment></comment><comment><USER8> Good TED talk by Gates explaining his vision for nuclear. Basically, fill up old missile silos with nuclear waste, and burn it from the top down. The waste is disposed of, heat energy is produced that can be harnessed, and there are no significant by-products (iirc). Very interesting, I'd never heard of that before, worth watching.

<http://www.ted.com/talks/bill_gates.html>

<comment><USER9> Can't watch the video here at work, but wouldn't burning nuclear waste be energy-intensive? I assume you have to turn it to plasma to eliminate any radioactive byproducts.

<comment><USER10> The most long-lived class of nuclear waste, transuranics, is produced by neutron activation of Uranium-238 (~95% by mass) found in the low-enriched uranium used in power reactors. If you remove these nuclides from spent fuel by chemical separation and place them either into a Thorium (Uranium-233, really) reactor or a highly-enriched U-235 reactor, the transuranics will continue to absorb neutrons until they reach mass numbers where they spontaneously fission, and, since there is no U-238, there won't be any new transuranics.

Something of this nature is usually what is meant when people say "burn nuclear waste".

There will still be the _other_ kind of nuclear waste, namely fission products, but their half-lives are on the order of decades instead of centuries.

<comment><USER9> Thanks for the explanation!

</comment></comment></comment></comment><comment><USER11> Thorium, people !

Current nuclear reactors basically suck because they are the children of war ! They wanted to make a big scary bomb first. No surprise they chose the most dangerous element ! It's the same thing as why space flight is so expensive. Each communications satellite has to be the shape of a hydrogen bomb.

Thorium reactors are still in research phase. However, take a look at these quick bits from Wikipedia:

      - Rubbia states that a tonne of thorium can produce as much energy as 200 tonnes of uranium, or 3,500,000 tonnes of coal.
      - just 8 tablespoons of thorium could provide the energy used by an American during his or her lifetime.
      - there is no possibility of a meltdown
      - it does not produce weapons-grade by-products, and will burn up existing high-level waste as well as nuclear weapon stockpiles
      - Weapons-grade fissionable material (233U) is harder to retrieve safely and clandestinely from a thorium reactor
      - Thorium produces 10 to 10,000 times less long-lived radioactive waste
      - Thorium comes out of the ground as a 100% pure, usable isotope, which does not require enrichment, whereas natural uranium contains only 0.7% fissionable U-235
      - Thorium cannot sustain a nuclear chain reaction without priming, so fission stops by default.
      - However, unlike uranium-based breeder reactors, thorium requires a start-up by neutrons from a uranium reactor. But experts note that "the second thorium reactor may activate a third thorium reactor
      - Thorium is found in small amounts in most rocks and soils, where it is about four times more abundant than uranium, and is about as common as lead
      - Thorium-containing minerals occur on all continents.

[http://en.wikipedia.org/wiki/Thorium#Thorium_as_a_nuclear_fu...](http://en.wikipedia.org/wiki/Thorium#Thorium_as_a_nuclear_fuel)

</comment><comment><USER12> If you think that nuclear power has a fair amount of tail risk (very small probabilities of catastrophic accidents) then any safety considerations based on historical data is meaningless.

In that case, most of the deaths & cost that occurred in the past would come from the single most sever accident (and this seems to be the case [1])

Moreover, the worse accident (Chernobyl) is not a good guide of how bad things can go: if the probability distribution of number of deaths per accident is fat tailed, then if an accident occurs that is worse than Chernobyl it will probably be much worse.

[1] <http://en.wikipedia.org/wiki/Nuclear_and_radiation_accidents>

<comment><USER10> Chernobyl is a lot worse than anything that could happen today.

</comment></comment><comment><USER13> The biggest issue with catastrophes like Fukushima aren't the deaths (which will be few), but the costs of the cleanup, which are enormous.

It's a valid concern, but we seem to fixate on the health dangers when coal kills many times more during normal operation and gets a free pass.

<comment><USER3> Please tell, who cleans after coal powerplants which polute while in normal working mode?

[http://nuclearfissionary.com/2010/06/09/energy-density- and-w...](http://nuclearfissionary.com/2010/06/09/energy-density-and-waste- comparison-of-energy-production/)

[http://www.scientificamerican.com/article.cfm?id=coal-ash- is...](http://www.scientificamerican.com/article.cfm?id=coal-ash-is-more- radioactive-than-nuclear-waste)

</comment></comment><comment><USER14> Nuclear power presupposes a competent and responsible society continuously from now until the distant future. Now look at Japan: no other society was better prepared for disaster, and still they came very close to a catastrophic nuclear disaster. Then look at all the other countries in the world w/ nuclear power, and project their histories forward 100 years. How many will experience a civil war? An external war? regulatory incompetence? etc. The chance of a catastrophic disaster somewhere, sometime, is 100%.

<comment><USER15> You can apply that same logic to any potentially dangerous industrial technology. And yet, for some reason, I don't see people fretting too terribly much about, say, oil drilling technology in irresponsible hands.

</comment></comment><comment><USER16> This seems a like a faulty argument to me. Those are not our only two choices. Sure coal is really really bad. But that does not mean that nuclear is our only alternative.

Currently solar power is getting much cheaper and more practical. Same thing with wind power. We also have a natural gas which recently has been getting cheaper as large new discoveries are being made.

Natural gas is still a fossil fuel but it is much much cleaner than coal both in terms of health pollutants and in terms of CO2. There are some issues with natural gas extraction, but even if the various environmentally damaging methods of mining the stuff get banned as they should, we still have plenty of natural gas from new discoveries to last us for the foreseeable future.

Thus, we can use natural gas while solar and wind catch up price wise, which will happen sooner than we think. Solar especially is improving faster than anyone thought. Then we can still use natural gas for occasions where solar and wind aren't working.

So the coal/nuclear argument is a false dichotomy. We can have neither. Of course we should run the current nuclear plants until the end of their lives, but there is no reason to build new ones unless some revolutionary technology that makes everything much safer emerges. I would say the only new nuclear plants we should build are ones that burn the waste of the old ones, because those would technically make things safer by removing waste.

<comment><USER17> This comment reads like a clever way of getting people to nod their heads (natural gas does indeed seem better than coal) while at the same time getting them to overlook an unsupported assumption (that nuclear is less safe than natural gas in the long run).

Statistically, the long-term damages attributable to total nuclear fuel chains are lower than those of the total natural gas fuel chain.

<comment><USER16> Uh ... source?

</comment></comment></comment><comment><USER10> Something that's often overlooked in these debates is that if we were willing to eat the proliferation risk and increased cost of high-enriched uranium we could reduce our production of long-lived alpha-emitters by an enormous amount.

This would make the storage of waste a lot more manageable.

</comment><comment><USER18> I could imagine the Daily Show's faux promo video: "Coal. It kills less people _at a time!_ Politicians love it!"

</comment><comment><USER19> Bill Gates here seems to be talking about the world in general, however, for the USA I don't see a high risk for nuclear energy.

The reactor can be installed in a relatively safe place and far from any habitants. This is different from Japan which has relatively a smaller and more dangerous land.

</comment><comment><USER20> Why the heck do we care about Bill Gates' opinion on nuclear power?

It's about as relevant as any random person on the internet.

My solution is the people for nuclear power and those that build the plant, must live next to it.

<comment><USER21> It's ironic the same crowd sneers at people taking advice from Jenny McCarthy and Oprah Winfrey on vaccination and autism.

<comment><USER22> Arguably, Gates and Winfrey have built significant companies and become very powerful people. However, I see no good reason to ever listen to McCarthy.

</comment></comment></comment><comment><USER23> there isn't much difference between coal and nuclear. A primitive civilization mines a substance that produces heat after performing a primitive operation upon it. It is like "gathering and hunting" state of civilization when compared to the "animal domestication and agriculture" state. It is time for human civilization to move on to renewable energy the same way like it moved to renewable food production 10K years ago.

</comment><comment><USER24> Same problem as fossil fuels - nuclear is non-renewable.

We need a better long term solution:

<http://en.wikipedia.org/wiki/Sun>

<comment><USER15> Far in the future, the sun will expand, turning into a red giant, engulfing the earth and boiling the oceans away. Ultimately, it will turn into a white dwarf. This hardly counts as renewable energy; it's just _really vast_ energy.

Nuclear energy is far less vast, but still huge compared to what we're using today. If you think of easy energy sources as civilization's starting capital, nuclear can give us a very long runway.

</comment></comment><comment><USER25> Interesting article and discussion: <http://news.ycombinator.com/item?id=2509538>

</comment><comment><USER26> Is there a comparison in term of cost/risk among all major energy source? Cost includes production and risk mitigation, and the health cost.

</comment><comment><USER27> Eating uncooked meat from Jack in the Box is safer than playing Russian Roulette.

I'll wait for the next option, thanks.

</comment><comment><USER28> I wonder what would happen if we spent the same $/KWh on making coal safe, as we do on nuclear?

<comment><USER16> We spend shitloads of money on trying to make coal safe. If you listen carefully to budget proposals there are always a lot of money allocated on "clean coal" research.

Unfortunately, it all goes nowhere because there is no way to make it safe. Burning stuff is an old and well understood process, there is just no way to burn stuff in a radically different way. You can use filters of course but the coal pollutants are so small and the smoke is so much filtering gets too expensive. Coal plants do have filters but they do not catch many of the thousands of pollutants that result from burning coal. And filtering cannot take away the CO2 gas.

So our only option is to trap the gas underground, which is pretty much impossible. Thus, safe coal becomes a mirage that is always a couple of years away but you can never get to.

It is clear that we spend less money on safe coal than we do on nuclear. Nuclear receives enormous amounts of subsidies. Most of the budget of the DoE is devoted to nuclear in one way or another. But it is pretty clear that even if we spent more money on coal it would not get us anywhere.

</comment></comment><comment><USER29> Bill Gates has to weigh in before people understand this?

</comment><comment><USER30> I think Mr Gates refuses to learn from history..

DO you know why originally Nuclear power was pushed as a safe energy source?

To make nuclear weapons, they needed a guaranteed supply of raw fuel material. All nuclear plants with the exception of some recent designs which get further away from this produce nuclear material that is ideal to use in nuclear weapons.

It had very little due with any actual safety concerns.

It is one of the most extreme hazards forced on the world by the industrial- military complexes of all nations.

Lets stop calling it safe and call it what it is in reality..in fact a experimental way to generate energy that is somewhat dangerous.

<comment><USER31> That's not a fair statement — branding all nuclear energy technology as a means to generate material for weapons is incorrect.

A good example? Thorium reactors [1], which generate very little in the way of weapons-grade by products. Why is it we cannot get our governments to allow research & construction into this arm of nuclear power?

[1] [http://en.wikipedia.org/wiki/Thorium#Thorium_as_a_nuclear_fu...](http://en.wikipedia.org/wiki/Thorium#Thorium_as_a_nuclear_fuel)

</comment></comment><comment><USER32> If you think nuke energy is "safe", may we deposit the radioactive waste in your backyard?

<comment><USER33> Sure. Just pay me the several billion dollars earmarked to design, construct and manage secure long term storage facilities and I'll deal with it.

</comment></comment><comment><USER34> Is there a HN section for "Rich Man Has Opinions"?

</comment><comment><USER35> > Gates is putting his money where his mouth is. He is an investor in his > friend Nathan Myrhvold's nuclear reactor startup Terrapower,

Conflict of interests. Move on, people.

<comment><USER36> Self-serving you mean. However, anyone would invest in something and promote it if they believe in it.

<comment><USER35> > However, anyone would invest in something and promote it if they believe in > it.

Yeah, you're right, but then again, the title should have been more like "Atomic Industry Investor Bill Gates On Nuclear Energy: Compared To Coal, It Is Still Safer", because right now I tend to read it more like "Renowned philanthropist Bill Gates On Nuclear Energy: Compared To Coal, It Is Still Safer"

<comment><USER37> I think you're making as assumption that Gates cares about making more money at this point in his life. Based on his other philanthropy it looks to me that he cares more about his legacy as it pertains to changing the world for the better and very little about money now.

The flip side of your argument is that if Gates thinks nuclear is the next great thing then why is he NOT investing in it? Personally, I would find it odd if Gates thinks something is the right way to go and didn't invest. It would signal he's not very serious about the issue.</comment></comment></comment></comment>


JavaScript Debugging Techniques in IE 6 - <AUTHOR> http://sixrevisions.com/javascript/javascript-debugging-techniques-in-ie-6/

<comment><USER2> I think I found the problem! According to the debugger, the client is using IE6.

</comment><comment><AUTHOR> I hate IE6 just as much as the next guy, with an absolute passion. However the startup that I work for has a focus on teachers, and unfortunately quite a significant number of schools and teachers are stuck in the dark ages with IE6. 23% of our users are still using IE6, so I have to support it. I found this helpful in debugging our soon to launch redesign.

</comment><comment><USER3> please, let us all forget about IE6 and go on our newer and better lifes..

</comment><comment><USER4> alert("hi");</comment>