Local Django on Kubernetes with Minikube - <AUTHOR> https://medium.com/@waprin/local-django-on-kubernetes-with-minikube-89f5ad100378#.35mb0e1nv <comment><USER2> Not the author of this post, but a maintainer of minikube. Glad to answer any questions.

<comment><USER3> Is there anything planned to support multiple nodes. So that one can test outage scenarios, load balancing across nodes, etc?

If not what other local deployment method do you suggest that works good? (All other methods seem to be deprecated)

<comment><USER2> We aren't planning to support multiple nodes anytime soon. The resource overhead would probably be too much for most users just looking to try out kubernetes.

You can take a look at the k8s docs about running locally. There's a script that brings up a cluster with a configurable amount of nodes on linux.

[0] [https://github.com/kubernetes/kubernetes/blob/v1.5.0/docs/de...](https://github.com/kubernetes/kubernetes/blob/v1.5.0/docs/devel/running- locally.md)

[1] [https://github.com/kubernetes/kubernetes/blob/v1.5.0/hack/lo...](https://github.com/kubernetes/kubernetes/blob/v1.5.0/hack/local- up-cluster.sh)

</comment></comment></comment><comment><USER4> Django doesn't really seem like a framework that is suited to cluster computing, its almost always backed by a relational database and usually IO to the DB is the bottleneck, assuming you now how to use it. Can someone explain the advantages of running it like this to me?

<comment><AUTHOR> As the other poster said, you run Django on Kubernetes for the same reason you run anything on it:

* Containers are an easy way to package an application so that it's easy to run anywhere, even if it has weird dependencies

* Eventually, you'll want to run containers on more than one machine for performance/reliablity

* Kubernetes makes it easy to schedule containers on a lot of machines, have them talk to each other over a virtual network easily, and provides a toolkit to solve a bunch of other random things you'll probably want (image updates, secret management, namespaces, authentication, jobs, etc)

So the biggest reason to run Django on Kubernetes is you're running other stuff on it, or just because it's one of the many ways to run a containerized app. Sure, you could write a Compose file and just run Docker on a single VM, but you're probably going to quickly want to add other apps or run on more than one machine, at which point you are likely going to look at Kubernetes, Swarm, maybe Mesos/Marathon, or roll-your-own container orchestrator.

Running Django on Kubernetes makes a lot of sense. Running something like Postgres on Kubernetes is the part that is admittedly more questionable. It's mostly just done for fun/as an exercise. Long term, databases will probably run in containers since everything else is. Short-term, for a serious project, I would probably just use a managed database service.

<comment><USER4> Ok so its more about containerization than running multiple instances of the Django application.</comment></comment></comment>


The Open Company - Running your business as if it were an Open Source Project. - <AUTHOR> http://e-texteditor.com/blog/2009/opencompany

<comment><USER2> Great minds think alike. I love the idea of course. The differences with fairsoftware:

\- potentially, a smarter point system with anti-gaming features

\- a truly open source code base, instead of using the Software Bill of Rights

</comment><comment><USER3> I've used Alex's test editor for over a year. It's great work, and I'm glad to see that he's opening it up to the community to work on.

</comment><comment><USER4> Wow. This is an amazing idea. I really hope it works out for him.</comment>


Ask HN:What does an Operations Engineer do on a day-to-day basis? - <AUTHOR>

It would be great if someone could fill in on something more than what a typical job description would say- best, from someone who is an Operations Engineer! <comment><USER2> 1/ keep it running no matter what.

2/ don't comply to any developer requirements without proper change request.

3/ most problems happens after lunch when everyone is bored, not thinking etc .. and is 'trying' to do something on production env. or when its raying, so everyone is in the building :)</comment>


Apple is "Evil" and Facebook is "a Photo-sharing Site" - <AUTHOR> http://gigaom.com/2010/07/21/fred-wilson-apple-is-evil-and-facebook-is-a-photo-sharing-site/

<comment><USER2> Every company "believe['s] they know what is best for you and me." The entire point of a company is to create stuff that's best for the customer.

<comment><USER3> You are so right about this.

The thing is, I actually also do believe Apple is evil, as is almost every business on our planet. Apple wants to protect it's assets by keeping a very tight control over the ecosystem around it's products. Pharmacy companies pay politicians to get their drugs approved. The tobacco industry has a great interest that it's products get smuggled. Insurance companies... don't get me started on them.

I am guessing what Mr Wilson meant was: "Apple believes to know what is best for me and gets it right more often than not. And after everyone bought their somehow superior product they only allow me to enter the market they created, if I play after their rules. And I don't like that. I want the freedom to sell any kind of software to people without someone babysitting me."

Well I don't know if he really meant that by saying "Apple is evil", but I do know that if one calls Apple evil, there has to be a new adjective invented for insurance companies, weapon producers and the pharma industry.

<comment><USER4> i was purposefully trying to be controversial and we were playing a word association game on stage. so take this whole thing with a big grain of salt.

i think they are being a gatekeeper and i don't like gatekeepers very much. they aren't good for entrepreneurs and hackers

<comment><USER5> I think the wild-west model is usually not very good for _users_ to the same way the gatekeeper model is usually not good for hackers. Maybe we need more janitors instead.

<comment><USER6> Wouldn't every conventional operating system be using the wild-west model? Windows, OSX, even Linux[1][2]: if you need a program, you go out onto the internet and look for it.

[1] At least, it can be used that way. It fits the Janitor model much better when using repositories to install programs, or at least what I imagine the Janitor model to be (weakly curated system with misbehaving applications removed).

[2] I'm also ignoring all of the less common/lower profile operating systems, because the only one I can name is BSD and I've never used it.

</comment></comment></comment></comment></comment><comment><USER7> The original post on VentureBeat includes a comment from Fred Wilson himself. He was speaking at an event and was being a bit controversial on purpose.

<comment><USER8> I would hope so, I have a lot of respect for Fred Wilson and those are pretty obviously troll comments. He would have probably loved to be an early-round investor in facebook right about now (Of course, who wouldnt).

</comment></comment><comment><USER9> I'm not sure I agree with his points on Google, while GMail was innovative(still is) I'd say Android is tearing up the mobile market and showing no sign of slowing down. Apple opened the door and holds a big piece of the pie but so does Android.

</comment><comment><USER10> Also, the Pope is "Catholic".

</comment><comment><USER11> When Fred Wilson speaks, you have to pay attention. He's nearly always got something interesting to say and agree or disagree, his opinion carries a lot of weight.

That being said, you also have to remember that Fred isn't just speaking as an insightful guy with a lot of experience, he's also speaking as a managing partner of USV. As an angel investor or VC it seems you most often are an advocate or evangelist for your portfolio companies.

He also disses Gowalla but Foursquare is USV-backed and Gowalla isn't. The counterargument is that Foursquare is a portfolio company and Gowalla isn't precisely for the reasons he cites but you have to consider the evangelism POV too.

As for Facebook, saying every Website (and indeed the Web as a whole) is a social graph sounds a little like equivocation to me. It is clearly the juggernaut in the room. Think of Facebook as the country in which you live and all these other Websites are local clubhouses. That's the kind of disparity we're talking about.

For many people FB is a photo-sharing site. For others it's a chat site and a site to pick up people. For yet others it's a casual gaming site. Often it's many of these things for people. FB is many things to many people.

Fred has also said that FB has basically won and it's here for a generation, which doesn't seem to gel has likening it to Flickr. Take that how you will.

<comment><USER12> About Gowalla he said 'it's tough playing second fiddle.' They are, and it is. I just want to point out he was factually correct despite being hyperbolic. He also said every (major) website has a social graph, not is a social graph. His point was more that he didn't think yahoo et al would be interested in linking with fb for that reason.

<comment><USER11> I agree that Gowalla is playing second fiddle and the smart money is on Foursquare, not just because they were/are first but because they seem to be killing it, but many second-comers have succeeded (eg Facebook, Google, Microsoft).

Anyway, to borrow a term I heard from Mark Suster, I view all these location startups are FNACs (feature not a company).

<comment><USER12> At the Geo Loco event there was a panel specifically discussing whether location startups are businesses or features. So far they are coupon companies. Nothing wrong with that.

</comment></comment></comment></comment><comment><USER13> Evil is too broad.

Apple is machiavellian. As much as I dislike them who could fault them for that after their history?

</comment><comment><USER11> I don't think you can call Apple "evil". Arguably you can call it "cynical" however.

Apple's philosophy is to make decisions for you, the consumer. Steve said exactly that in his D8 interview. Frankly, most people like that. Apple makes decisions about stuff most people don't care about.

To explain the "cynical" part, I'll make a tenuous parallel to Thomas Jefferson who said the price of freedom is eternal vigilance.

Ultimately, people are responsible for keeping themselves informed, not creating monopolies, not giving too much power to certain people, governments or companies and so on so the Apple strategy is fanning ignorance because, let's face it, most people want to enjoy "freedom" without having to actually do anything about it.</comment>


Humanity's Biggest Machines Will Be Built in Space - <AUTHOR> https://www.popularmechanics.com/space/satellites/a16867551/machines-built-in-space/ <comment><USER2> I've thought for a long time that colonization will probably never take off, but space industry is absolutely a good idea.

Building colonies on mars is sort of like building colonies in Death Valley, or in the Marina trench, or inside the reactor cupola of Chernobyl. You could probably do it, but it's expensive, and nobody in their right mind would come. Once you've spent a ton of fuel getting out of a gravity well, you'd be insane to go down another one, especially if the only thing you're going to get from it is radiation poisoning.

Space, on the other hand, offers some really interesting opportunities for manufacturing. It's effectively a gigantic clean-room, allowing for a whole load of processes you can't do on earth - like no-heat welding.

<comment><USER3> Gigantic clean-room _under vacuum_ you don't have to expend energy to maintain! As you say, it has immense potential. Temperature fluctuations between dark and Illuminatated by sunlight is one challenge, but also a potential feature. Heat dissipation is another challenge, but could also be a feature.

</comment></comment><comment><USER3> Not for a very long time, if we're counting the LHC as a machine. We're really nowhere near building something larger than that offworld, although if we focused vast amounts of time and money on it we probably could. Right now our investment is minimal, and only the private sector (focused on launching payloads into LEO) is moving forward with a budget. NASA's program is focused primarily on robotic exploration, and astronomy.

<comment><USER4> Indeed we're nowhere near building anything in space we can barely manage to 3d print a wrench in space.

We're likely going to be manufacturing things on mars or Luna before we're going to have decent micro gravity manufacturing capacity.

We haven't even began exploring the challenges and opportunities of building things in micro gravity scaling it up to the biggest machines ever made isn't going to happen any time soon.

<comment><USER3> We have a long way to go yeah, and it's a strong reason to keep R&D funded in that arena. We won't be able to just muscle our way through it, and the time may come when we need a good corpus of research in a hurry. Luna seems like a good compromise for now, with low g, proximity to Earth, and an environment we don't mind taking risks with.

<comment><USER5> except for the dust problem.

Space you dont have that problem, on the moon that shit is really destructive and pervasive.

<comment><USER3> That's true, but we could lay down a barrier over a large area, or maybe glass it. The virtue of it having an insignificant atmosphere is that the regolith won't blow around and get into things. Still, it's a challenge!</comment></comment></comment></comment></comment>


Ask HN: Time to start rejecting SPF soft fails? - <AUTHOR> With the rise of phishing and forgeries, is it safe to continue accepting emails which soft fail the sender's SPF policy?
Is it time to start rejecting soft fails with a clear bounce message, rather then silently sending soft fails to the spam folder?
Two thirds of our soft fails are obvious forgeries and phishing attacks and spam, but one thirds are legitimate senders with poor sending infrastructure who would be impacted.
Should we continue to tolerate misconfigured SPF policies, and let the clients of misconfigured sending ISPs believe everything is well, or should we start to make a change towards a safer email environment? <comment><USER2> I have a lot of experience managing spam filters for fairly busy domains. I have about 150 domains whitelisted because they are trusted business contacts that HARDFAIL SPF and blocking their email is a total nonstarter for the organisation.

An extraordinary amount of legitimate email soft fails SPF. I really would like such senders to start being punished for this - but at present, it just isn't feasible unless you have a very small domain and are happy to comb through quarantines.</comment>


LibreOffice and VolunteerMatch: Welcoming new contributors - <AUTHOR> https://blog.documentfoundation.org/blog/2018/05/10/libreoffice-and-volunteermatch-welcoming-new-contributors/ <comment><USER2> Anyone working on porting libreoffice to wasm? Not the GUI, just the core conversion utils (like you get with ./soffice —headless). I saw some old experimental commits from 2015 in the core repo but looks like the effort was abandoned.

All I want is to be able to convert docx to pdf in browser with wasm.

I would be interested in working on it myself, actually, but my wasm experience is non-existent and my knowledge of libreoffice even moreso.

I would be curious to hear how feasible the community thinks this is, and if it would be a relatively straightforward project or fraught with traps.

<comment><AUTHOR> It did not target wasm yet back then: [https://wiki.documentfoundation.org/Development/Emscripten](https://wiki.documentfoundation.org/Development/Emscripten)

Feel free to join #libreoffice-dev @ Freenode and chat with samuel_m about it, if you are willing to put in work.

<comment><USER2> Thanks! Yes, those are the commits/page I saw. I referred to "wasm" because Emscripten can target wasm now. But I guess back in 2015 it only targeted asm.js, is that right?

I am definitely interested in exploring this. I'm going to do some preliminary research and then I'll hop onto IRC.

<comment><AUTHOR> > I guess back in 2015 it only targeted asm.js, is that right?

Yes, it looks like that to me.</comment></comment></comment></comment>


Ask HN: Resources to start learning about quantum computing? - <AUTHOR> Hi there,
I'm an experienced software engineer (+15 years dev experience, MsC in Computer Science) and quantum computing is the first thing in my experience that is being hard to grasp/understand. I'd love to fix that ;)
What resources would you recommend to start learning about quantum computing?
Ideally resources that touch both the theoretical base and evolve to more practical usages. <comment><USER2> There is really only one "bible". I recommend solving through it, at least the first 4-5 chapters:

\- Nielsen and Chuang, Quantum computation and information: mmrc.amss.cas.cn/tlb/201702/W020170224608149940643.pdf

While you are reading and solving the above book, I strongly recommend reading:

\- "Quantum computing since Democritus" by Scott Aaronson, one of __the __researchers on quantum computation:[https://www.scottaaronson.com/democritus/](https://www.scottaaronson.com/democritus/)

This book will give you a "flavour" of where the power of quantum computation might be coming from, and the whole host of theoretical issues that surround this domain.

What I _highly_ recommend is practicing problem-solving using these resources:

(1) Microsoft quantum katas: [https://github.com/microsoft/QuantumKatas](https://github.com/microsoft/QuantumKatas)

(2) Codeforces Q# coding contest: [https://codeforces.com/msqs2018](https://codeforces.com/msqs2018)

Actually programming the circuits in Q# will give you a sense of stuff that's swept under the rug when reading textbooks: initialization of qubit states, a good sense of what "qubits cannot be copied" means, etc.

At this point, one ought to have an understand of quantum computation and our current understanding of its power (in particular, the relationship that we don't know how to separate BPP and BQP), how to implement the "common" quantum algorithms in a programming language, and a vivid sense of the "quantumness" of these algorithms.

For reference, I speak from experience: (1) My solutions to the quantum katas: [https://github.com/bollu/quantum-course- exercises](https://github.com/bollu/quantum-course-exercises). (2) My scattered QC notes: [https://github.com/bollu/notes/blob/master/quantum- computati...](https://github.com/bollu/notes/blob/master/quantum- computation/main.pdf)

(One can find a full pdf of quantum computing since Democritus relatively easily on the internet if one so chooses.)

<comment><USER3> When I was a master's student, we used Nielsen and Chuang in our class. I found it to be pretty good.

</comment></comment><comment><USER4> I'm a D-Wave employee, and our cloud service [1] is mature and available* today. You can sign up to get a free minute of QPU time (which turns out to be quite a lot; sampling a problem generally takes milliseconds of QPU time). Additional time is granted if you link your github account to your Leap account, and of course, you can pay for additional time.

We've recently added an IDE [2], we've got tutorials [3] and YouTube videos [4] to guide you through the learning process. Additionally, we've recently released a hybrid solver service [5], which supports up to 10k fully-connected variables.

* The Leap service is available in 37 countries. We just launched in India and Australia this week.

[1] [https://www.dwavesys.com/take-leap](https://www.dwavesys.com/take-leap)

[2] [https://support.dwavesys.com/hc/en- us/sections/360007452933-...](https://support.dwavesys.com/hc/en- us/sections/360007452933-About-the-Leap-IDE)

[3] [https://www.dwavesys.com/resources/tutorials](https://www.dwavesys.com/resources/tutorials)

[4] [https://www.youtube.com/channel/UC6_etbfDnWMxAuYj9qD1qmA](https://www.youtube.com/channel/UC6_etbfDnWMxAuYj9qD1qmA)

[5] [https://www.dwavesys.com/sites/default/files/14-1039A-A_D- Wa...](https://www.dwavesys.com/sites/default/files/14-1039A-A_D- Wave_Hybrid_Solver_Service_An_Overview.pdf)

<comment><USER5> What's the most impressive real-world problem ever solved by one of your systems?

<comment><USER4> Personally, I'm most interested in some rather esoteric applications: in a very real sense, our QPU can be thought of as "programmable matter". Specifically, it can be used to simulate various crystalline lattices [1, 2, 3]. Part of my job is figuring out how to best represent those lattices with our systems, so I'm clearly biased.

To directly answer your question, I'm most impressed by [3]: materials with a specific structure called the Shastry-Sutherland lattice exhibit a quantized response to an external magnetic field. This is a place where materials clearly demonstrate a quantum effect (itself a demonstration that quantum mechanics are necessary to describe the universe) -- and when we use our computer to simulate it, that effect is clearly visible.

I do think of physics experiments as real-world problems, but some of our customers are doing really neat stuff that's much closer to a lay-perspective of what "real-world" means. For example, Groovenauts and Mitsubishi Estate collaborated [4] to optimize the routing of waste-collection trucks. Another one, a collaboration [5] with Menten AI, involving protein design (admittedly, a bit over my head) made use of our hybrid sampling service and they're now doing wet-lab experiments. We've collected [6] quite a few of these applications, and I'm barely familiar with a few of them.

[1] [https://phys.org/news/2018-08-d-wave-large-scale-quantum- sim...](https://phys.org/news/2018-08-d-wave-large-scale-quantum-simulation- topological.html)

[2] [https://arxiv.org/abs/2003.01019](https://arxiv.org/abs/2003.01019)

[3] [https://science.sciencemag.org/content/361/6398/162](https://science.sciencemag.org/content/361/6398/162)

[4] [https://www.dwavesys.com/sites/default/files/Dwave_Groovenau...](https://www.dwavesys.com/sites/default/files/Dwave_Groovenauts_Case_Study_V2.pdf)

[5] [https://www.dwavesys.com/sites/default/files/Dwave_Menten%20...](https://www.dwavesys.com/sites/default/files/Dwave_Menten%20AI_Case_Study_V7_1_0.pdf)

[6] [https://www.dwavesys.com/applications](https://www.dwavesys.com/applications)

</comment></comment></comment><comment><USER6> I really really loved Nielsen and Matushak's Quantum country.

[https://quantum.country](https://quantum.country)

There are two reasons I like it.

There is no mumbo jumbo about polarising filters and "look how mysterious" it is. No. They concentrate on very simple linear algebra and work with it.

Second, they make a convincing argument that when you memorise a bit of material, it makes it intuitive. So they incorporate spaced repetition to continually test you (by email) so that the material gets into your long-term memory.

<comment><USER7> It's a good source if you know linear algebra. Beginners should know that there are no solutions to check your work.

<comment><USER8> Unofficial worked solutions are available here [https://github.com/goropikari/SolutionQCQINielsenChuang](https://github.com/goropikari/SolutionQCQINielsenChuang)

<comment><USER7> This is great. Thank you!

</comment></comment></comment></comment><comment><USER9> Resources are quite widespread, if you want a community based learning, IBM's Qiskit[0] is the best. If you are at high-school level, Michael Nielsen's online mnemonic book [1] is good too. Ideally, you want to get a small grasp of basic probability, some physics and algebra. Another community based learning is QWorld [3].

[0] [https://qiskit.org/learn/](https://qiskit.org/learn/) [1] [https://unitary.fund/posts/high_school_resources.html](https://unitary.fund/posts/high_school_resources.html) [2] [https://quantum.country/](https://quantum.country/) [3] [http://qworld.lu.lv/](http://qworld.lu.lv/)

</comment><comment><USER10> The PragProg folks have a new book that includes exercises and looks very promising as an introductory material. It's available in beta state and apparently about to be finished: [https://pragprog.com/titles/nmquantum/](https://pragprog.com/titles/nmquantum/)

</comment><comment><USER11> Quantum Country is a nice resource. Also Aaronson.

But for me what really helped was Quantum Computing Without the Physics by Nannicini. Aaronson is not formal enough or really a textbook to teach and explain quantum algos like Simons (a good first algo) or Grover. It is an amazingly fun book though.

[https://arxiv.org/abs/1708.03684](https://arxiv.org/abs/1708.03684)

Nielsen and Chuang is the standard textbook but was not useful to me sadly. I wouldn't recommend it to a beginner outside the framework of a course.

</comment><comment><USER12> >>> hard to grasp/understand

I truly believe anyone is capable of grasping QC. Minimal physics required. Math no higher than linear algebra. Q# Quantum Katas are ideal for beginners. Mariia Mykhailova is a terrific instructor. And you can scale up to arbitrary numbers of (simulated) Qubits on Azure Quantum when you are ready to solve real world optimizations / simulations ;)

Just want to link up another resource currently ongoing: Qiskit Global Summer School. Currently 2000+ students enrolled and materials are identical to bootcamp given to IBM Quantum Interns

[https://qiskit.org/events/summer-school/](https://qiskit.org/events/summer- school/)

Best of Luck ;)

</comment><comment><USER13> Quick plug for folks that are coming from the SWE background, and would love to get more hands-on experience (thus learn by doing!), the effort behind Quantum open source foundation might be of interest [0].

We have compiled learning resources [2], organize workshops and hackathons (i.e. we are behind the Quantum track at FOSDEM [3]) and even offer mentorships [4] for people that have some QC knowledge and are interested in entering the field of quantum SW development.

Originally the effort started as surveying the current state of open source software in QC [1], but shortly afterwards we realized that the field could benefit (similar as AI has), among other things, from more people with SWE background joining and helping the ecosystem grow, making the individual pieces of the QC stack more robust and interoperable, but also completely building parts that are currently missing.

In that spirit, more recently we are trying to organize efforts to help the open source quantum ecosystem by building various projects where people with good SWE background could be very helpful.

Write me a short info about you at `tomas at qosf.org` with "[HN]" prefix if interested to volunteer some of your time!

We're hoping to add couple of people into the team, and looking for people with a different backgrounds (Python is the language of the science world in QC, but we have use for everything ranging from devops, frontend to backend skillsets).

[0] [https://qosf.org](https://qosf.org)

[1] [https://journals.plos.org/plosone/article?id=10.1371/journal...](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0208561)

[2] [https://qosf.org/learn_quantum/](https://qosf.org/learn_quantum/)

[3] [https://fosdem.org/2020/schedule/track/quantum_computing/](https://fosdem.org/2020/schedule/track/quantum_computing/)

[4] [https://qosf.org/qc_mentorship/](https://qosf.org/qc_mentorship/)

</comment><comment><USER14> I would suggest starting from the basics of quantum physics if you don't already have a solid foundation. MIT has several excellent courses on the subject [1-4]. The first two are the same course, but taught by different professors with slightly different curriculum.

[1] [https://ocw.mit.edu/courses/physics/8-04-quantum-physics- i-s...](https://ocw.mit.edu/courses/physics/8-04-quantum-physics-i- spring-2013/)

[2] [https://ocw.mit.edu/courses/physics/8-04-quantum-physics- i-s...](https://ocw.mit.edu/courses/physics/8-04-quantum-physics-i- spring-2016/)

[3] [https://ocw.mit.edu/courses/physics/8-05-quantum-physics- ii-...](https://ocw.mit.edu/courses/physics/8-05-quantum-physics-ii- fall-2013/)

[4] [https://ocw.mit.edu/courses/physics/8-06-quantum-physics- iii...](https://ocw.mit.edu/courses/physics/8-06-quantum-physics-iii- spring-2005/)

<comment><USER15> You will also need a pretty good understanding of calculus and linear algebra to understand QM, which many CS people don't have. You could probably learn both at the same time, but it would be challenging. The unfortunate thing about physics is you need to have pretty strong math skills to understand things, and most people's mathematical preparation is not very good.

</comment></comment><comment><USER16> Ed, here is a recording from Microsoft Workshop (5 hours!) on Quantum Computing: [https://microsoftevent.eventbuilder.com/event/22621/occurren...](https://microsoftevent.eventbuilder.com/event/22621/occurrence/20972/recording)

</comment><comment><USER17> I've found Anastasia Marchenkova's blog posts easy to read and thorough [https://www.amarchenkova.com/category/quantum- computing/](https://www.amarchenkova.com/category/quantum-computing/)

I like her because she writes code for a living AND has worked at quantum computing startups, and went to postgrad for quantum, so she can go really deep on both areas and their intersection.

She's also on Twitter [https://twitter.com/amarchenkova](https://twitter.com/amarchenkova)

</comment><comment><USER18> Ryan O'Donnell from cmu has lectures to understand qc from an algorithm design perspective, so quantum information theory [https://m.youtube.com/playlist?list=PLm3J0oaFux3YL5qLskC6xQ2...](https://m.youtube.com/playlist?list=PLm3J0oaFux3YL5qLskC6xQ24JpMwOAeJz)

His quote: "90% of the understanding of the quantum circuit model is achieved by reviewing three purely 'classical' topics: classical Boolean circuits; reversible classical circuits; and randomized computation"

</comment><comment><USER19> I second a few people on here: You will probably need to learn quite a lot of math if you did not study physics or math. In order to understand quantum physics, you will need to understand what vector spaces and Hilbert spaces are, have a good grasp of calculus (derivatives, integrals should be no issue for you), a good understanding of Fourier analysis and statistics.

Then, you should probably take a class in the basics of quantum physics which will lay the foundation for you to understand quantum computing.

</comment><comment><USER20> "What are some good resources to learn about Quantum Computing?" [https://news.ycombinator.com/item?id=16052193](https://news.ycombinator.com/item?id=16052193) [https://westurner.github.io/hnlog/#comment-16052193](https://westurner.github.io/hnlog/#comment-16052193)

</comment><comment><USER21> Here's chapter 1 of the O'Reilly book "Programming Quantum Computers"

[https://www.oreilly.com/library/view/programming-quantum- com...](https://www.oreilly.com/library/view/programming-quantum- computers/9781492039679/ch01.html)

</comment><comment><USER22> if you're a comp-sci guy and just interested in understanding what it's all about Aaronson will be your favorite author:

[https://www.scottaaronson.com/barbados-2016.pdf](https://www.scottaaronson.com/barbados-2016.pdf)

<comment><USER23> his blog is excellent (and hilarious) as well. [https://www.scottaaronson.com/blog/](https://www.scottaaronson.com/blog/)

</comment></comment><comment><USER24> Umesh Vazirani has a quantum computation MOOC. I did an older version of it, and enjoyed it. I believe it has been updated and moved to Edx. I felt the version which I followed was a good distillation of challenging concepts, as curated by an established expert.

</comment><comment><USER25> EDx has a Quantum Machine Learning course from UToronto. The first few chapters cover the very basics of QM and Quantum Computing pretty nicely.

</comment><comment><USER26> As a side track, how far away are we from "quantum cloud services" that I can pass arguments to and receive output from in exchange for a monthly or per- resource-used fee?

What types of problems are quantum computers anticipated to solve? I've only heard about how they are able to break certain cryptographical algorithms that were designed long before quantum was even a thought.

<comment><USER27> AWS Braket is in preview, so should provide what you are asking for in the near future. QC hardware manufacturers generally also offer their own cloud access mechanisms.

<comment><USER26> Very cool! I have attached the FAQ for this service as now I have a new rabbit hole to jump down.

I'm sure that once the electrical engineering side of things is in place and commercial machines are being manufactured (custom or model based design), it will become a new consulting domain for software engineers to work in.

[https://aws.amazon.com/braket/faqs/](https://aws.amazon.com/braket/faqs/)

</comment></comment></comment><comment><USER28> A friend has recommended Coecke and Kissinger's book, Picturing Quantum Processes, which takes an alternative conceptual approach to quantum computation based on string diagrams (not-so-secretly a formalism for working with various flavours of monoidal category, as explained in the optional sections) instead of linear algebra.

</comment><comment><USER29> I found this text helpful:

Quantum Computing for Computer Scientists by Noson S. Yanofsky and Mirco A. Mannucci

[https://www.cambridge.org/core/books/quantum-computing- for-c...](https://www.cambridge.org/core/books/quantum-computing-for-computer- scientists/8AEA723BEE5CC9F5C03FDD4BA850C711)

</comment><comment><USER30> In my experience, "Quantum computing for the very curious" is a great first step: [https://quantum.country/qcvc](https://quantum.country/qcvc)

They use spaced repetition to help you interiorize the concepts and give a good theorical basis to understand what quantum computing is about.

</comment><comment><USER31> The best reference for learning quantum computing that I know is Watrous's notes: [https://cs.uwaterloo.ca/~watrous/LectureNotes/CPSC519.Winter...](https://cs.uwaterloo.ca/~watrous/LectureNotes/CPSC519.Winter2006/all.pdf)

</comment><comment><USER32> Here are some University lectures (from CMU, TU Delft, IIT etc) available online at following link:

[https://github.com/Developer-Y/cs-video-courses#quantum- comp...](https://github.com/Developer-Y/cs-video-courses#quantum-computing)

</comment><comment><USER33> #qlisp on Freenode IRC is dedicated to hacking on quilc, an optimizing compiler for quantum programs, and QVM, a high-performance simulator. If you want to write computer-sciencey software that interfaces with real quantum computers, that'd a good place to join.

</comment><comment><USER34> [https://www.edx.org/course/quantum-mechanics-and-quantum- com...](https://www.edx.org/course/quantum-mechanics-and-quantum-computation)

What better than learn from Shor and Chuang?

</comment><comment><USER35> I will answer this question in two ways: one, I will tell you how I learned, and two I will tell you how I would have liked to have learned with the benefit of hindsight. Different people will value one more than the other, but both are more valuable than a giant list of resources with zero guidance where to start.

How I learned:

I started out like you, in possession of an undergraduate education in computer science. I began reading _Quantum Computer Science: An Introduction_ [0] by N. David Mermin. This is a very good textbook, but I absolutely could not skim it. I had to ensure I understood every single line before moving onto the next. I had the impression I wasn't learning very quickly, when in fact (due to the textbook's density) I was taking in a huge amount of information.

After a few weeks with the Mermin textbook, I bought _Quantum Computing for Computer Scientists_ [1] by Yanofsky & Mannucci. This is a much softer introduction than Mermin, almost too soft: I skipped the first few chapters on linear algebra and complex numbers. However, in combination with the Mermin textbook, I acquired a good understanding of quantum computing basics. It was at this point I reached my own personal threshold for feeling I "understood" quantum computing.

People often recommend _Quantum Computation and Quantum Information_ by Nielsen & Chuang (also called "Mike & Ike") for beginners. I believe this is not good advice. Had I tried to learn from that textbook, I would have failed. However, it is an excellent textbook _after you already understand the basics_. Anecdotally, I knew two people who tried to learn quantum computing at the same time as me: one used Mike & Ike, and the other used a book called _Quantum Computing: A Gentle Introduction_. Neither of those people understand quantum computing today.

How I wish I had learned:

My experience learning quantum computing required a huge amount of mental effort, and in the end what I learned wasn't actually complicated! So, I created a lecture called _Quantum Computing for Computer Scientists_ [2] which is the lecture I wish I'd had access to before trying to read any textbooks. The lecture is popular and well-received, and I think it covers all the stuff that's really conceptually tricky; once you're over those conceptual hurdles, you can apply your regular computer science skills to learn everything else about quantum computing you need (how specific algorithms work, etc.) Thus my "hindsight" study guide is as follows:

1\. Watch the lecture I created.

2\. Watch Professor Umesh Vazirani's lectures on quantum computing; they flesh out my lecture and he is a tremendously effective explainer of concepts (these are scattered around YouTube but you can find a full playlist at [3])

3\. Concurrently, work through the first few chapters of either the Mermin or Yanofsky textbooks

4\. After you feel you understand the quantum computing basics, pick topics which interest you from the Nielsen & Chuang textbook

5\. Stick around quantumcomputing.stackexchange, reading questions & answers, asking your own, and maybe eventually answering your own!

Good luck!

P.S. I've also heard good things about the Quantum Katas: [https://docs.microsoft.com/en-us/quantum/tutorials/intro- to-...](https://docs.microsoft.com/en-us/quantum/tutorials/intro-to-katas)

[0] [https://www.amazon.com/Quantum-Computer-Science-David- Mermin...](https://www.amazon.com/Quantum-Computer-Science-David- Mermin/dp/0521876583)

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

[2] [https://youtu.be/F_Riqjdh2oM](https://youtu.be/F_Riqjdh2oM) \+ slides [https://speakerdeck.com/ahelwer/quantum-computing-for- comput...](https://speakerdeck.com/ahelwer/quantum-computing-for-computer- scientists)

[3] [https://www.youtube.com/playlist?list=PLDAjb_zu5aoFazE31_8yT...](https://www.youtube.com/playlist?list=PLDAjb_zu5aoFazE31_8yT0OfzsTcmvAVg)

</comment><comment><USER36> Hi,

I personally have a similar background to you, with ~15 years of software engineering.

I second some of the comments: I really started understanding quantum computing much better when I sat down and worked through the problems of the Nielsen and Chuang book ("Mike & Ike") - the first 4 chapters should give you a solid start. It starts from theoretical base and does cover some of the applications of QCs as well, though from that perspective there are a bunch of newer results that are not represented in it yet (e.g. QAOA/VQE, NISQ era algorithms, etc.). Some basic linear algebra is definitely needed though, it takes effort and practice to build up familiarity there if you are rusty on it (I was).

Also, I would like to plug open source contribution as a vehicle / forcing function for learning. I started contributing to Cirq ([https://github.com/quantumlib/Cirq](https://github.com/quantumlib/Cirq)) starting last year in my free time (as well as some of my work time at Google) and I learned a ton through that. I now work on Cirq full time. OpenFermion, qsim, Tensorflow Quantum are all projects that are excited to have new contributors.

The reason I mention my journey because it shows that you don't need formal training in quantum physics to become productive in the quantum computing community (it can definitely help though). However, the field is very deep and is moving very fast, I very much consider myself a noob and rely heavily on the expertise of others for contributions, and I spend a lot of time reading and learning still every day - including other chapters of Mike & Ike, Preskill's notes ([http://www.theory.caltech.edu/people/preskill/ph229/](http://www.theory.caltech.edu/people/preskill/ph229/)), papers and online tutorials from other platforms that can help shed light on a particular topic.

Also, don't forget to check out [https://algassert.com/quirk](https://algassert.com/quirk) \- a very useful in-browser quantum circuit simulator written by Craig Gidney, who also was one of the main creators of Cirq. Even more inspiringly, he also, with very hard work, grew from a software engineer into a quantum researcher without formal training. His words: "My learning was heavily based on explaining things to the computer and then having the computer show me the consequences of what I explained." \- he also recommends this playlist: [https://www.youtube.com/playlist?list=PL1826E60FD05B44E4](https://www.youtube.com/playlist?list=PL1826E60FD05B44E4).

Hope this helps!

</comment><comment><USER37> Does anyone have experience with Hidary's Quantum Computing: An Applied Approach? How is it?

</comment><comment><USER38> Learning Quantum Computing based on skill level (math is the biggest friction point, suggested pdf should save you lots of time) (Recc is personal recommendations, Hi-Recc is look at ASAP)

# QC Main Ideas

        - Rotate, Compute, Rotate
        - Think in Amplitude Interference

# Beginner:

        -(Hi-Recc) Quantum Computing Primer (1.5hr) : https://www.youtube.com/watch?v=F_Riqjdh2oM
        -(Hi-Recc) Math Primer for Quantum Computing (easiest intro/primer I found on the topic; Highly Recommend   ) : https://cds.cern.ch/record/1522001/files/978-1-4614-6336-8_BookBackMatter.pdf
            -- understand Bra Ket notation [<Bra|Ket>]  (Ket as Column vector, Bra (Row vector) as Complex Conjugate of Ket (denoted as dagger) )
            -- understand Kronecker product  ( for multi-qubit systems)
        - Quantum Computing for Computer Scientists book - https://www.amazon.com/Quantum-Computing-Computer-Scientists-Yanofsky/dp/0521879965
        - Quantum Math Primer (Faculty of Khan) (found a bit hard the first time around, pretty dense) : https://www.youtube.com/playlist?list=PLdgVBOaXkb9AtG88OsK_c8FDEBDLCC6_9

# Intermediate

        -(Recc) Ryan O'Donnell CMU course [is the best if you want to really understand the capabilities of quantum computing, get practice with math, intuition] (algos connection to Fourier, Quantum Complexity Theory, Math best practices, learning multi-quibit systems)
            -- Quantum Computation and Information at CMU : https://www.youtube.com/playlist?list=PLm3J0oaFux3YL5qLskC6xQ24JpMwOAeJz
            -- Lecture Notes (use as reference in case video is not clear, or camera shot lags/changes) https://www.cs.cmu.edu/~odonnell/quantum18/
        - Mermin's Textbook https://www.goodreads.com/book/show/1959623.Quantum_Computer_Science
        - Nielsen & Chuang's Textbook https://www.amazon.com/Quantum-Computation-Information-10th-Anniversary/dp/1107002176
            -- Nielsen's Lectures https://www.youtube.com/playlist?list=PL1826E60FD05B44E4

# Advanced

        -(Recc) Scott Aaronson Graduate Course http://stellar.mit.edu/S/course/6/fa14/6.845/materials.html
        -(Recc) Scott Aaronson Papers (really interesting) https://scottaaronson.com/papers/
        - Complexity Zoo - List of Algorithms https://complexityzoo.uwaterloo.ca/Complexity_Zoo
        -(Recc) Machine Learning https://www.amazon.com/Quantum-Machine-Learning-Computing-Mining/dp/0128100400

# Reference:

        -(Recc) https://qiskit.org/textbook/preface.html   ToC for different algorithms ( easy to follow, do it for quick basic algo math implementation lookup)
        - 'Suggested texts, notes, and videos to look at' section at bottom of page https://www.cs.cmu.edu/~odonnell/quantum18/

( I found this skill level format useful when learning Haskell/Functional Programming Paradigm. This is what I found useful for getting started with minimal friction; if more of a textbook learner Nielsen/Chuang textbook or Quantum Computing for Computer Scientist's)

</comment><comment><USER39> We wrote our O'Reilly book, "Programming Quantum Computers", precisely to fit your use case. It assumes no advanced mathematics, doesn't shy away from really delving into how algorithms work, and also has an online simulator to let you experiment with actual code. I am of course biased, but I would say that it's the resource out there requiring the least mathematics needed to get some practical knowledge and a chance to experiment in code:

[https://www.amazon.com/Programming-Quantum-Computers- Essenti...](https://www.amazon.com/Programming-Quantum-Computers-Essential- Algorithms/dp/1492039683)

Shameless plug dealt with, the text I'd next point you to for being grounded more in the Real world rather than Hilbert space is Mermin's. Modulo his insistence on using the term QBit rather than qubit, it's a great pedagogical work by someone with a very deep understanding of quantum mechanics. It's also in hardcover, which also helps lend it more weight:

[https://www.amazon.com/Quantum-Computer-Science-David- Mermin...](https://www.amazon.com/Quantum-Computer-Science-David- Mermin/dp/0521876583)

As others have recommended, anything by Scott Aaronson is gold. Computational complexity is his passion, and although I think his work is very thorough and accessible, I would suggest it's a little less hands-on. However for very, very deep insights there's nowhere better to go. Alongside his book, Aaronson's blog at [https://www.scottaaronson.com/blog/](https://www.scottaaronson.com/blog/) is also revered by both QC enthusiasts and professionals alike and a great place to follow debate on the latest developments in the field.

The most mathematically demanding text (or most thorough, depending on how you look at it) I'd consider is Nielsen and Chuang (a.k.a "Mike 'n' Ike", a.k.a "The bible"). It's slightly out of date in some more recent concepts regarding the implementation of quantum computing (not wrong, just a tad incomplete), but is still solid and indispensable for the core concepts and insights behind quantum computing.

If you're interested in the physical implementation of a quantum computer (i.e. what does it _look_ like inside), then Mike 'n' Ike is the only one that will come close to satisfying you. The real world is so damn messy, and quantum hardware is no exception. QC tech moves fast and the money is still on the table as to just what that tech might look like inside the million qubit quantum computer of the future. Mike 'n' Ike does discuss some specific types of qubits, but I'm not aware of a book providing a truly comprehensive and up to date description of today's most promising approaches.

</comment><comment><USER40> Not sure if quantum computing has any practical uses at this time, but some people in the field used to do simulations with the following Perl module:

[https://metacpan.org/pod/Quantum::Superpositions](https://metacpan.org/pod/Quantum::Superpositions)

(The original author, Damian Conway, is a university CS professor.)</comment>


Hands: What We Do With Them - <AUTHOR> https://www.theguardian.com/books/2016/jun/13/hands-what-we-do-with-them-why-darian-leader-review <comment><USER2> Last year I developed tendonitis from bad laptop posture and stress. Any attempt to put my hands towards 'keyboard' position was extremely painful in both forearms.

It was kinda mindbending just how useless I felt without my hands to type at my computer... I felt like I was missing a part of myself.

It still flares up occasionally, I'm much more careful with my hands now.

Hands, man.

<comment><USER3> Try a keyboard that can be "tented" to the natural position of your hands, [http://www.goldtouch.com/ergonomic- keyboards/](http://www.goldtouch.com/ergonomic-keyboards/)

<comment><USER4> I was looking at their mobile ergonomic keyboard, have you tried it? There aren't many options in that space. For all their conveniences, laptop ergonomics are really terrible.

</comment></comment></comment><comment><USER5> If programming didn't take so much handiwork I think I would've taken knitting as something to do while watching TV. My roommate used to take her knitting to the coffee shop and pub, which inadvertently was a good conversation starter for guys.

</comment><comment><USER6> The 2015 book Prehension: The Hand and the Emergence of Humanity (MIT Press)by the noted philosopher Colin McGinn argues that the freeing of the hand through bipedal locomotion lead to language and the great explosion in intelligence that produced homo sapien

<comment><USER6> Darn, I thought that would produce italics.

<comment><USER3> You can use asterisks to start/stop italics

</comment></comment></comment><comment><USER7> I do wish we could see what octopuses can achieve given lifespans longer than a few years, and maybe slightly less dangerous environments.</comment>


Ask HN: Learning through freelance work - <AUTHOR>

Hello,
I recently read an article I think I found on HN, about somebody doing freelance work and learning as they went, until they had become pretty knowledgeable and a strong programmer. I thought I might try to do this, but when I went looking around on some of these freelance sites the jobs were over my head, I didn't even know where to begin.
I'm interested in web and mobile development, I've learned a few different languages (c, c++, java) but I really have only been using java outside of school. I'm trying to expand my knowledge, but I'm just not sure where to begin. I've been working on an android app currently, but I feel I only learn what I need to.
I was hoping to get a broader understanding of web and mobile development, and then from that I could learn whatever I needed. Any advice, ideas or comments are appreciated. Thanks! <comment><USER2> My suggestion would be to find senior level freelancers and offer them your services, See if they have low hanging fruit that they can throw your way with the understanding that you get to take a crack at new challenges as well. This way, you always have a back up should you get in over your head. You always have someone that has a vested interest in the project at you disposal that you can call and say hey I just don't get this, can you give me a hand to get through it. A lot of freelances need another hand but they don't need a senior level price tag. Enthusiasm goes a long way to convince them that you can be that second set of hands.

<comment><AUTHOR> I really like this idea, any suggestions on going about finding people willing to do this? Or just finding senior level freelancers to ask. Thanks.

<comment><USER3> ask on forrst, there are a lot of developers who would give you a shot ;)

<comment><AUTHOR> That site is pretty intriguing, I'm not a member though and I don't think I'd currently qualify for an invite since I don't really have anything to show. Maybe I'll check it out when I can show something I've done. Thanks.

</comment></comment></comment></comment><comment><USER4> I did this after giving up on ever having a career in I.T. and being fed up with my 8 year job at Wal-Mart. I already had some knowledge of PHP, JavaScript, ..etc and I got most of my work from oDesk.com. I took a couple of weeks to go over some training at Lynda.com before I started taking on work since I was mostly self-taught. I found that not already being an expert in Web Design/Development meant that it took me longer to do the jobs that people wanted done and I ended up spending more time on projects than it should have taken. I obviously couldn't bill the client more for my lack of knowledge so I ended up working 12 to 14 hour days and made about the same as what I made when I left Wal-Mart.

I'm definitely not discouraging you, but if you've already got a job I'd test the waters with some freelance work before quitting. In my case, quitting my job at Wal-Mart and doing freelance web design/development actually landed me a career in the I.T. field and 3 years later I'm on the verge of making a 6-figure salary doing what I love to do.

<comment><AUTHOR> I wouldn't quit my job, I'm just working as an intern currently and I learn on my job as well, but I was looking to learn more and different topics outside of my job. It's a limited term internship and I'll be going back to school next September. I only started learning to program in University, and I'm pretty happy I was able to get a job considering I started knowing nothing a few years ago. However, now that I've come this far I'm not really satisfied with my current level of knowledge and I don't think I will be unless I push myself to learn more outside of work and school.

Thanks for the reply, it's good to hear from people who have worked hard to teach themselves.

</comment></comment><comment><USER5> Get some clients through your network. Freelancing sites are pretty awful. Start with something you know you can figure out how to do, make sure you have enough time to learn on the job (pad your deadline), and take on a new challenge with each job. Don't be afraid to turn down a job that is too tough - sometimes there just isn't enough time, billable or otherwise, to learn something on the job.

</comment><comment><USER6> This particularly works well with web development gigs. You get to work from home, with Internet connectivity providing the communication to the client. This way you can work on several part time projects simultaneously. Do this with a focus on a single language or framework and you'll reap benefits in just a couple of months.

</comment><comment><USER7> Mark Cuban talked about this. When he first started he would say "yes" to everything a client needed and then worked around the clock to make sure he delivered it to them and learned along the way. This probably includes many unbilled hours but it forces you to learn.

</comment><comment><USER8> Why not get a job as a programmer for a company directly? You'll learn more this way. Freelancing is generally easier once you have more experience under your belt</comment>


Rand Paul Had Sitdowns With Mark Zuckerberg And Peter Thiel - <AUTHOR> http://www.businessinsider.com/rand-paul-had-sitdowns-with-mark-zuckerberg-and-peter-thiel-2014-7

<comment><USER2> I can't find the link now, but just read an article last week regarding a study Facebook did back in 2010 (I think?) to see if they could have an effect on voter turnout. They didn't have a large effect on the turnout, however it was measureable. Kind of creepy to think of the power these giant tech companies like Facebook, Google, Apple, MS, etc... could really have/or perhaps already do over our political system in regards to how they could influence voters.</comment>


Don't Blame Silicon Valley for Theranos - <AUTHOR> http://www.nytimes.com/2016/04/27/opinion/dont-blame-silicon-valley-for-theranos.html?action=click&pgtype=Homepage&version=Moth-Visible&moduleDetail=inside-nyt-region-1&module=inside-nyt-region&region=inside-nyt-region&WT.nav=inside-nyt-region&_r=0 <comment><USER2> It's funny that the times (along with many others) was essentially a PR mouthpiece for Theranos less than 6 months ago[0]. In the article I cited, Teranos is lumped in with other darling unicorns (which have proven products). The news media did just as much due diligence as the investors (next to none) with Thernaos; I find it somewhat hypocritical to be calling out VCs without admitting to some blame themselves.

0: [http://www.nytimes.com/interactive/2015/10/12/t-magazine/eli...](http://www.nytimes.com/interactive/2015/10/12/t-magazine/elizabeth- holmes-tech-visionaries-brian-chesky.html)

<comment><USER3> Thanks for posting that. That was a painful read, not just about Elizabeth Holmes, but for the almost-religious hyperbole heaped on all those people. I know it's "T Magazine", and not NYT "proper", but the New York Times should be embarrassed by that article.

<comment><USER4> Notably, it was written by Laura Arrillaga-Andreessen. Probably not the best attempt at avoiding conflicts of interest.

<comment><USER5> Nice catch!

</comment></comment></comment></comment><comment><USER6> This is unmitigated bullshit. The firm was launched into its ludicrous fundraising path via her relationship with Tim Draper, the consummate Silicon Valley insider, and even the article points out that the fundraising was pretty much all SV. Just not _the right_ Silicon Valley, you know.

This should be in a textbook as the archetypal "No True Scotsman" argument.

<comment><USER7> Maybe you are right, but what are we blaming silicon valley for? Being wrong on a venture investment? I don't really understand any of this. A well funded company was unsuccessful in a spectacular fashion, and the people who thought it would be and are to "blame" lost money. Sounds like the system working.

Clinkle also lost a ton of money for a lot of pretty smart people. I blame silicon valley because it was their fault they made a bad investment (as much as SV can be a collective group). I mean, I bet like 1/10 companies they fund fail. Some comitted fraud, some had shitty biz plans, some failed for no reason.

<comment><USER8>
      > what are we blaming silicon valley for? Being wrong on a venture investment?

An "investment" is a passive activity. Activities designed to increase the value of the investment by creating the illusion of value are a different matter, and regulated by law and informally by moral standards.

I think the general feeling is that the investors did far more than merely throw a few bucks at Theranos.

<comment><USER9> I don't think this is correct, especially when considering the rights that Board members Directors and Officers have.

They can go out and make deals, do press etc... all within their rights as board members - in fact that's what they are for.

Investments are passive only for non-accredited shareholders.

<comment><USER8> If you are telling me that someone is a Director or Officer, they are no longer "just investing," and therefore we needn't just shrug and say, "They made a bad investment, so what?"

Having made a bad investment, as a Director or Officer, they had a responsibility to blow the whistle on malpractices, enforce proper procedures, fire the CEO long before the CEO was in a position to be barred from the industry, &c. &c.

<comment><USER9> _we needn 't just shrug and say, "They made a bad investment, so what?"_

Well I haven't made a statement on that either way - but I wouldn't advocate for that.

It is however up to their own judgement how much to do in any case. They represent shareholders, so they do have fiduciary duty there to be sure (though I am unsure if that is true for the high profile members of the Theranos board as it seemed to be largely advisory).

The fact that Holmes has 50+% of the company makes the point in this case pretty much moot. Aside from leaving the board en masse and abandoning whatever shares they have, they really are pretty powerless.

</comment></comment></comment></comment></comment></comment><comment><USER10> There was a good quote after uBeam (wireless charging) was called out by engineers for their physics being highly dubious: [http://techcrunch.com/2015/11/07/wireless-power- charger/](http://techcrunch.com/2015/11/07/wireless-power-charger/)

> "People are saying that investing [$23.4 million] into uBeam is everything > wrong with Silicon Valley" uBeam co-founder and CEO Meredith Perry tells me, > referencing her startup's big name investors. They include Andreessen > Horowitz, Founders Fund, UpFront Ventures, Marissa Mayer, and Mark Cuban. > "But everything else out there is apps and social photo sharing stuff" Perry > contends. "We're building something real. We're building something that's > insanely difficult. So difficult people think that we're frauds."

It's surprising that startups get _less_ scrutiny for hitting hard problems. You'd think it would be the opposite.

</comment><comment><USER11> If you're a Walgreen's investor, blame their management for not doing the proper due diligence.

If you're a Theranos investor, blame yourself for not doing the proper due diligence.

<comment><USER8>
      > If you're a Theranos investor, blame yourself for not doing the proper due diligence.

Remember that blame is not a zero-sum game. You can accept your responsibility for making a bad investment, while simultaneously identifying the party or parties who set out to create an environment where unsafe medical practices and misleading PR would lead to bad outcomes for patients and investors.

<comment><USER12> This is perhaps too far afield, but I think blame really is a zero-sum game, in that people work actively to shift it around, and only stop playing when allocations become set. It strikes me as a very primate thing.

I think we can only get people into non-zero-sum behavior when we talk about things like, cause, power, and responsibility.

For example, I'd accept no blame here. But I do feel responsibility in a couple ways. As a participant in the Silicon Valley ecosystem, this event will effect me. Even if I didn't make the mess, I'm going to have to help clean it up. And looking back, I think about the power I might have had to cause a different outcome. What if I had spoken up more against the hype cycle? What if I had said more clearly that this was a bubble? I'm only one person, but there were a lot of people who could have spoken up more. If we had done it together, could we have reduced the damage of the bubble? Hard to say, but next time I'll try harder and see what happens.

If this sort of thing interests you, you might enjoy Dekker's "Field Guide to Understanding Human Error," which is a brilliant book about airplane safety investigations. I thought it had a lot of applicability in tech.

</comment></comment></comment><comment><USER13> I think the media holds a big part of the blame here. I have never seen a company hyped as much as Theranos. And I fell for it.

Now the same outlets that propped it up with astronomical levels of hype, are taking much glee in writing article after article about how fraudulent Theranos was.

Is anyone taking these media outlets to task for never actually verifying if the crap they were writing was actually accurate?

<comment><USER14> _Quis custodiet_ , et cetera.

</comment></comment><comment><USER15> So basically (assuming they can not prove to be viable), this means you can cheat your way up to billions of dollars in valuation and there will be many investors who are betting money on things they do not have a clue about, politicians who will be on your board without doubting their knowledge of the matter or your claims and somehow a big corp like Walgreen's follows the hype. Its more like people lean towards trusting others who put their trust again in others and this domino leads to catastrophe.

<comment><USER16> Sounds like it could just as well be a case of a bunch of people overvalued perceived business sensibility and ignored technical sensibility, which is incredibly common.

</comment></comment><comment><USER17> The media deserves some shame. The unabashed and unrelating stream of PR driven horseshit around Theranos was unbelievable.

</comment><comment><USER18> Says the guy who has written books about venture capital as awe inspiring geniuses who never do wrong and is currently writing a book about Stanford (let me guess, it will be positive). Now Stanford and VCs want to distance themselves from Theranos so they call in this guy.

<comment><USER19> Your first sentence is on the borderline of snarky dismissal ("says the guy"). But your second sentence seems just made up:

> _Now Stanford and VCs want to distance themselves from Theranos so they call > in this guy._

Let's have substantive critique, please' not imagining what you think might have happened.

<comment><USER18> I think it was clear to most people that this was my opinion.

</comment></comment></comment><comment><USER20> Investors don't do DD.

</comment><comment><USER21> Whatever, the hype around this is unbelievable. Theranos might even still have a viable business. Let's revisit these comments here in 5 years again.

</comment><comment><USER22> The NY Times completely misses the point about all of this. What a shitty example of journalism. SV isn't to blame in any of this, we get it. But that's not the point. Theranos is failing because of the lack of due diligence needed in an industry so heavily regulated. The oversight needed for something as sensitive as blood tests is something I don't think anyone involved with Theranos took very seriously including the CEO. Now they're doing damage control that will ultimately derail their progress and possibly close the company. All of this could have been avoided by putting in place a team experienced, not only in the industry, but had close ties to some of these regulatory organizations to ensure nothing like this could have happened. I think the idea is a great one, but unless you put in place someone well intrenched in the medical industry you put yourself in a position to find these surprises. Sucks. I was pulling for them. I also think the media is making this bigger than it needs to be which is contributing to the accelerated downfall.</comment>


Hacker News and Information Overload - <AUTHOR> I have been reading HN for almost a year now (always via Google Reader) and lately I'm finding HN increasingly difficult to use because of the high volume of posts. Each day HN has about 100 posts which makes HN quite time consuming to even scan. Actually reading the posts? Forget about it.
Increasingly more often I find myself skipping HN in Google Reader because it has become a time consuming chore to find content I'm interested in. This saddens me because quality wise HN is IMHO the single best aggregator for IT startups.
I'm not sure what to do about this information overload problem but I feel it's time to remove HN from Google Reader because in its current form HN is simply broke.
I'm open to all suggestions about making HN more managable. <comment><USER2> I can't imagine trying to read it via a feed reader. Like you said, that's a lot. What I tend to do is just use the site, not even use a feed at all. When I've got 15-20 minutes to spend reading articles, I'll come to the site. When I don't, I don't bother. If its a particularly good article it will be on the front page all day, so I'll get to read it then. If it isn't, well, it probably wasn't worth reading anyway.

Feed readers are good for something you want to read ever single post for. HN is not something you'll want to read everything on, you just (in theory) want to read as much as possible.

<comment><USER3> So your solution to his "It hurts when I do this" is "don't do that".

<comment><USER4> What's wrong with that?

<comment><USER3> Well obviously he wants to do it, and he obviously knows it doesn't hurt him when he doesn't, so by saying "don't do that" you're being patronizing. It's pretty insulting.

<comment><USER2> His situation is more of "When I bend my wrist backwards, it hurts". He's using it in a way that is _not_ necessarily good. Yes, it is included. And yes, it _may_ be helpful/beneficial. But if you're having problems with doing things that way, stop.

</comment></comment></comment></comment></comment><comment><USER5> It's worse than that.

Each time an interesting post (say a blog post on fractal dimensionality in the stock market) gets posted ALL of that persons previous work gets posted as well. So you have a head post, followed by 5 other follow up articles which just kills Signal to Noise ratio.

<comment><USER6> That should just be growing pains, though. Once HN has processed all people with something worthwhile to say, there will be no more previous articles to post - they'll all have been posted before. Things should then normalize...

<comment><USER7> That will never happen. (I couldn't tell if you were being sarcastic or not.)

</comment></comment></comment><comment><USER8> Could just need more points before reaching the RSS feed?

</comment><comment><USER9> You mean each day 100 posts make it onto the frontpage at some point?

<comment><USER10> I emailed something to you about this last year. Is there anything you find useful in it?

<http://exponentialspace.com/hn-churn.txt>

<comment><USER11> Fascinating set of proposals, thanks for posting them here. They seem to fall under the general category of 'automatic gain control': <http://en.wikipedia.org/wiki/Automatic_gain_control>

As the 'noise' of submissions goes up, a system that automatically adapts to the amount of activity in order to determine constitutes the 'signal' will probably help HN readers cope.

I think OP's problem stems mostly from the format in which (s)he reads HN. Checking the frontpage two or three times a day doesn't lead to the same kind of overload as the RSS might. Whereas when checking the frontpage you'll see a mostly stable set of articles (with most of the churn down at the bottom few), on the RSS feed you'll see every single article that hit the frontpage regardless of how short of period of time it spent there.

Perhaps, a quick fix for HN readers coming here from RSS feeds might simply be to not send _every_ story out via RSS, but say, only those stories that stayed on the frontpage for >1 hour.

</comment></comment></comment><comment><USER12> This really is a problem. At the end of the day when I'm reading the HN feed, I usually have about 50 tabs open—this stuff is just too interesting. I usually only read the ones that are quick reads though; i.e., a few paragraphs or a list or two or maybe some sample code. Any bigger than that and I'll just skim it, but I mean like hardcore skim so I just get the thesis of the article and not the whole substance. If it's over a couple of pages? Instapapered. My Instapaper grows at a much faster rate than it diminishes.

But this stuff is just too interesting to not at least open and skim. I mean, jesus, a blog post of the fractal dimensionality of the stock market? Come on.

</comment><comment><USER13> It's been mentioned before -- categories and adaptive thresholds (automatic gain)

I think every other site has categories. They seem like a natural thing to do.....

<comment><USER14> Cue some johnny-b-goode to point you to the feature request link at the bottom of the page ;)

But you're right. For starters just two categories would do, hacking and everything else.

<comment><USER13> If I understand correctly, HN has always had two categories. They just haven't been explicitly put into the UI: Hacking/startups and things that interest hackers.

We've kicked this can around quite a bit, and so far PG doesn't seem to be feeling enough pain to make a change.

Perhaps things will change.

</comment></comment></comment><comment><USER15> The greasemonkey script for sorting items by age, points, and comments makes it easier for me to find what are likely to be the more interesting discussions.

A small addition is needed to have the script work when viewing older items (you have to add the URL for the subsequent pages. Proof left as an exercise for the reader).

This is very handy since some of the better threads are not on the front page.

</comment><comment><USER16> There's a startup for that: <http://www.feedscrub.com>

I originally built it for Digg and Reddit, but HN is now one of my primary uses. Give it a whirl and let me know what you think.

</comment><comment><USER17> try <http://news.ycombinator.com/classic>

<comment><USER18> What are 'classic' posts?

<comment><USER19> Classic posts are posts upvoted by people who have been registered at HN for at least a year. I am not yet one of them.

</comment></comment></comment><comment><USER20> I have noticed the same thing and wholeheartedly agree with you.

Simple solution: categories with separate feeds.

<comment><USER10> That leads to the subreddit problem.

<comment><USER13> How about instead of having the submitter categorize the submission, everybody can categorize it, just the same as everybody can upvote?

Not sure what "the subreddit problem" is. Just wondering if that would help.</comment></comment></comment>


I just shut down my startup (2019) - <AUTHOR> https://medium.com/swlh/i-just-shut-down-my-startup-heres-what-i-learned-2a57c0e98090 <comment><USER2> The startup raised money within 90 days with no product and no revenue? Is this a common occurrence in US?

I am always super impressed when I read about startups that manage to get money as it allows them to experiment and learn.

I guess getting money is a learned skill

</comment><comment><USER3> Good read. Succeed or fail I always admire folks who can take a shot like that.

I wonder has anyone managed to get a voice type service to take off through Google or Amazon?

</comment><comment><USER4> I got paywalled by medium.

<comment><USER3> I believe disabling JavaScript will fix that.</comment></comment>


Theories about persuasion - <AUTHOR> http://changingminds.org/explanations/theories/a_persuading.htm

<comment><USER2> This is fascinating, thank you very much for posting it.

<comment><AUTHOR> I should give credit Andy Beard and Social Browse~

Andy: <http://socialbrowse.com/profile/view/915/> SB: <http://socialbrowse.com> My SB: <http://socialbrowse.com/profile/view/276/></comment></comment>


The Mailocalypse Is Upon Us: Why Isn't All Mail UTF-8? - <AUTHOR> http://lamsonproject.org/blog/2009-06-14.html

<comment><USER2> I may be overly conservative here, but IMHO a MTA should not touch the body of the message.

It should not even touch the headers besides adding a Received-header to the top.

Re-Encoding all Mails passed through is definitely not what I call "not touching".

I know that there are some exceptions (i.e. 8bitmime), but I still think that mail servers should keep their hands of what is passing through them.

Like mailmen who are not supposed to open the envelope, read the letters and reprint them using a nicer font on nicer paper :-)

<comment><USER3> I don't see a problem with it _if_ the translation is 1-to-1 (and that's a pretty big if). Disregarding federal law for the moment, what is the harm in the mailman reprinting your letters with nicer font on nicer paper? It seems to me that if the mailman wants to do that, as long as they don't lose any of the information of the original letter I would benefit from having an easier to read letter.

<comment><USER4> But if it becomes normal for a mailman to do this, there is now an expected man-in-the-middle. Sure the mailman might be benign, but what about if there is another man-in-the-middle (less benign), now that I expect my communication to be tampered with I won't notice anything suspicious. [Note: Zed's proposed solution is to forward on the original mail as well so it can be verified]

<comment><USER3> I'll confess now to definitely not being an expert on mail systems but what is to stop this tampering from happening now by a man-in-the-middle? I don't really see any new avenue of attack that doesn't already exist with current systems (encrypted email excluded).

<comment><USER2> no one is to stop tampering from happening.

but the SMTP standard and the whole culture around internet mail mandates that the messages are not changed in transit (with the exception of that received header and the stuff around 8bitmime).

UTF-8-Encoding mails just because it's "cleaner" doesn't feel like it's the right thing to do, especially when you consider there to be old systems around that can't handle UTF-8 encoded messages.

Also, standards are there to be adhered to - like HTML and all the others.

</comment></comment></comment></comment></comment><comment><USER5> What is lamson doing with mails that makes just leaving them in their original charset unworkable?

<comment><USER6> Processing them in Python. :) No, really. Python is horrible at dealing with strings of different encodings. You could generalize that to any complex app with lots of data sources: the only sane way to do it is to convert everything to a single encoding at the door.

(edit) whups, I hadn't thought about PGP/etc signatures. _sigh_

<comment><USER5> yeah charset conversion would also break dkim/domainkeys

</comment></comment></comment><comment><USER7> Here be dragons. Be afraid. Be very afraid.

<comment><USER8> Everything you say and more. Internationalization, ick -- anyone who thinks this is easy has no clue how deep this rabbit hole goes.

On Han unification: the Japanese reluctance to this is partly because they're being told "Some of your national literature needs to die so that our data standard can live. Deal." and partly because they're being told "What's with all the resistance, you xenophobic bastards, get with the effing program already.", generally by people who they perceive as not quite getting the issue.

All the educated Americans in the room have read Romeo and Juliet, right? Remember the balcony scene? Remember the world in the balcony scene that you have never heard in _any_ other context?

O Romeo, Romeo, Wherefore art thou Romeo?

Imagine being told "For technical reasons, we're standardizing computers away from being able to accept 'Wherefore' as input or output. As a workaround, we suggest using "why", or perhaps putting the word in an image file and pasting it in when it is required. Most people don't use "wherefore" anyhow and, if you routinely do, you can modify your editing software to accommodate it, as long as it doesn't have to interface with any other computer ever. Oh, by the way, some other words you know are also going to stop working. It's nothing major. Well, OK, 'Gertrudes' might find it somewhat annoying but we've got a nice selection of names from Aluicious to Xavier and, if all else fails, you can spell it phonetically because your language is capable of that, too, and don't pretend otherwise."

<comment><USER9> They should have an encoding standard for characters that are not in the standard character set. I've see base64 encoded images in CSS for a long time. Sure, it takes up a lot of space, but isn't this the best of both worlds? Of course, the images could be SVG or a sort of typeface definition. It doesn't matter because it's base64 encoded.

Of course, I'm not trivializing the problems with internationalization. I'm simply pointing out that there are simple solutions to some of the problems, such as this one. I think the biggest problem with character encoding is getting people to agree on a standard.

<comment><USER8> _I think the biggest problem with character encoding is getting people to agree on a standard._

Prior to the Unicode standard springing into being, Japan had relatively little problem with agreeing on standards, by the simple expedient of agreeing on enough of them such that most stakeholders left the table with at least one they liked. People are sort of reluctant to leave these and the tangible benefits they offered, hence the lukewarm reception to Unicode. (If I hear tsk-tsking from any Americans on this point, just try to imagine how much adoption UTF-8 would have in the US if it didn't have the happy-and-totally- not-accidental property of working exactly like ASCII for the language American programmers and legacy systems/documents care about.)

Sidenote: I was working on a translation of features of a particular software package today and had to think a little of how to explain _mojibake_ , and why you'd want a servlet container that can detect and correct it, to an American audience. (It's when some program between the user and the server's application layer applies a heuristic incorrectly and results in one or the other getting complete gibberish.) The problem is every bit as fun to deal with as a developer and a user as you would expect it to be.

<comment><USER10> To be fair, the Unicode folks totally screwed over the Japanese. Now there are many people who can't even write their name on a computer.

Needless to say, these people would rather use the "legacy" character sets that didn't have this problem.

</comment></comment></comment></comment></comment><comment><USER11> Among the problems that this has, it will shatter PGP and S/MIME signatures silently.

<comment><USER12> Ding ding ding! You win the thread. It'll break DKIM/Domainkeys too if you have 8-bit characters in your headers.

Paws off my mail, Zed.

</comment></comment><comment><USER13> Is this guy MIME encoding everything in base64 or quoted-printable?

Last time I checked email could only be 7bit ascii because of many legacy servers.

<comment><USER14> I'd be interested in seeing estimates on how many such servers are still being used. I've never come across one.

<comment><USER10> Indeed. This was a problem in 1990, but amazingly, it's not 1990 anymore.

</comment></comment></comment><comment><USER15> Drop badly encoded email on the floor because you hope it's _probably_ spam? That deliberately violates Postel's Law, which is what keeps this mess mostly working.

And doesn't multipart/signed rely on knowing the actual charset the signer was using?

<comment><USER16> Umm, no. Drop badly encoded email because most of it _is_ spam. Or, at least, that's the hypothesis that _he's asking you to help verify_. Did you even read the article?

<comment><USER15> He said himself that "a quick eye-ball sample says those failures mail are mostly spam that wasn't classified right". Mostly? That means he already knows badly-encoded but legitimate email is not only possible but actually exists, so what's left to verify? Either you're okay with losing messages or you aren't.

<comment><USER16> I was responding to your use of the term 'hope', which made it sound like you thought this was just some blind stab in the dark. He has data, he's asking for more, and he's asking people to shoot him down if it's a dumb idea. It's hardly a faith-based effort.

And now you're parsing his sentence for subtle evidence that he secretly knows he's dropping some legitimate messages? Dude, _he posted the fucking numbers himself_. It's obvious that he's willing to drop some messages. He's asking how many he actually would be dropping and trying to work out if the benefits of "everything as UTF-8" outweighs the costs of dropping a message every now and then.

 _Either you're okay with losing messages or you aren't_

Yeah, brilliant. There are already several reasons to drop messages (size, mangled headers, etc). He's pushing for another one.

</comment></comment></comment></comment><comment><USER10> If I hear about one more trivial issue that's called a something-pocalypse...</comment>


Notes on Lock Free Programming - <AUTHOR> https://loonytek.com/2017/03/17/lock-free-algorithms-part-1/ <comment><USER2> I don't like usage of the term "lock free" to mean "locks that are less costly".

There's a difference between (A) locking (waiting, really) on access to a critical section (where you spinlock, yield your thread, etc.) and (B) locking the processor to safely execute a synchronization primitive (mutexes/semaphores).

CAS is "lock free" only in the sense that it doesn't require the processor to stop the world in order to flip the mutex boolean. It's still a mutex, and it still gates access to a critical section, and you still need some kind of strategy to deal with waiting for the critical section to become available (e.g., spinlocking, signaling the OS to sleep thread execution).

      An example of operation using coarse locks would be a method in Java with "synchronized" keyword.
      If a thread T is executing a synchronized method on a particular object,
      no other concurrent thread can invoke any other synchronized method on the same object.

That's just putting one giant mutex around all access to the object. Having finer granularity != "lockless".

<comment><USER3> I've always understood lock-free to mean that every worker is guaranteed to make progress in a (finite) bounded amount of time.

<comment><USER4> I like the terminology that Dmitry Vyukov uses[0], where "wait-free" means that any individual thread is guaranteed to make progress, and "lock-free" means that some thread is guaranteed to make progress. There's also the weaker guarantee "obstruction-free" where livelock is a possibility.

[0] [http://www.1024cores.net/home/lock-free- algorithms/introduct...](http://www.1024cores.net/home/lock-free- algorithms/introduction)

<comment><USER5> Couldn't there be an even stronger requirement like "obstruction-free"? I could imagine code that is "obstruction free" but which severely slows down execution for itself or other threads.

<comment><USER6> Obstruction-free is the weakest requirement, so your use of "even stronger" confuses me.

In any case, in practice wait-free has this property a bit: getting the guarantee of all threads making progress in finite time generally requires in them executing slower individually, on average, e.g. one common strategy is for thread A help thread B finish its work, because thread A needs that result.

<comment><USER5> Executing a little slower would be fine. Executing two orders of magnitude slower can be almost as useless as being obstructed.

</comment></comment></comment></comment></comment></comment><comment><USER7> Perhaps an example will help clarify the difference between mutex locking and CAS (lock-free) operations. Check out Sled[0]. Sled is an implementation of a 'ctrie'[1] data structure in go. Sled is a lock free key value store. Because it is lock-free any number of threads can read and write to it simultaneously while never interfering with eachother. The application remains parallel at all times.

Locks cause parallel applications to become single threaded for the scope of the lock. This means that most of the time you should just put things that require locks into their own thread and then communicate with that thread from others.

"Do not communicate by sharing memory; instead, share memory by communicating." \- ancient go proverb

However, that is still potentially a locking operation because channels must block until both threads are in sync (with some optional caching, to help reduce the effect).

With truly lock free data structures, all threads can share data but do not need to synchronize access. This leads to much, much higher performance.

[0]: [https://github.com/Avalanche-io/sled](https://github.com/Avalanche- io/sled)

[1]: [https://github.com/Avalanche- io/sled/blob/master/ctries_pape...](https://github.com/Avalanche- io/sled/blob/master/ctries_paper.pdf)

</comment><comment><USER4> Note that the linked paper predates the C++ / C11 memory model, which I would consider essential for anyone implementing lock-free algorithms in C or C++ today. It also long predates an understanding of the ABA problem[0].

[0] [http://www.stroustrup.com/isorc2010.pdf](http://www.stroustrup.com/isorc2010.pdf)

<comment><USER8> Eh? ABA problem was known since a long time ago. Google scholar[1] shows a paper titled "Correction of a Memory Management Method for Lock-Free Data Structures" in 1995, which in turn cites "ABA problem" mentioned in "System/370 Principles of Operation. IBM Corporation, 1983" (!!).

[1] [https://scholar.google.com/scholar?q=aba+problem](https://scholar.google.com/scholar?q=aba+problem)

<comment><USER4> I stand corrected, thanks! I had the feeling that the ABA problem affected a lot of the earlier lock-free algorithms, but didn't know the understanding of it went that far back.

</comment></comment></comment><comment><USER9> I don't quite understand it. When you replace lock with CAS (Compare and Swap), aren't you just replacing one synchronization primitive with another? Is lock not implemented in CPU as a primitive instruction and therefore less performant? What overhead does locking have compared to CAS?

<comment><USER10> Besides other benefits mentioned, a spinlock is a user-space construct; you don't incur the overhead switching to kernel mode at the loss of the benefits and guarantees those primitives provide. (I'm simplifying some.)

<comment><USER11> On Win32, this has been abstracted into the critical section API, which lives entirely in user-space and is a lightweight mutex. Many of the functionality implemented in the article are already part of the API (spin-aquire, etc.).

Though from what I've read, on Linux, pthreads implements its mutexes in user- space (futex) as well and are fairly cheap to use.

<comment><USER12> Yes, the difference is that spin locks never enter the kernel, while a good mutex only does on contention. In practice most mutexes use an hibrid approach.

</comment></comment></comment></comment><comment><USER13> Pet peeve: The example linked list implementation suffers from not using double-pointers (or pointers-to-pointers).

For example, when the "special case" of adding an element at the head or tail are discussed - those special cases disappear entirely when the search procedure simply returns a pointer to the _next_ field of the preceding element (or a pointer to the root pointer of the linked list, if the new element should be inserted at the head).

</comment><comment><USER14> This post directly compliments the original one [http://concurrencyfreaks.blogspot.com/2017/02/bitnext- lock-f...](http://concurrencyfreaks.blogspot.com/2017/02/bitnext-lock-free- queue.html)

</comment><comment><USER5> Are there any lock-free in-memory spatial databases?

</comment><comment><USER15> Last time I checked lock free meant no locks.</comment>