Starting to Demo the Wolfram Language [video] - <AUTHOR> http://blog.stephenwolfram.com/2014/02/starting-to-demo-the-wolfram-language/ <comment><USER2> I worked on Mathematica for 2 years, and really the biggest downside is how its an incredibly powerful tool that fails in many practical applications. It failed to power the backend of a search engine (Wolfram Alpha), and based on my latest version of Mathematica, the dynamic computing features, visualization, and JIT compilation features still have a long way to go. It's an incredible and fascinating tool when you're given these toy models to put into it, but I don't really see a Wolfram Language revolution happening anytime soon.

One aspect I think Mathematica will excel in is code generation. Using symbolic constructs in a very high level language to generate constructs of a low-level language is much easier to do in Mathematica than basically any other language.

On a side note - Linus Torvalds thought naming his operating system "Linux" was too arrogant. I think it's pretty bad marketing to name your programming language after yourself, but then again, the same social conventions that apply to us regular human beings certainly don't apply to Stephen Wolfram.

<comment><USER3> What happens if you run it on itself - eg you do some sort of basic program with a little bit of structure and generate code from it, and then analyze the code, eg to make a graph of it (if that makes sense). Or to put it another way, what are the possibilities of making better tools Mathematica (or Wolfram Language or whatever it is called now) using Mathematica?

<comment><USER4> It would be slightly easier than coding Mathematica from scratch (you have better computers and an example to follow) but much harder to fund, since you would be re-treading old ground and wouldn't be able to competitive for a long time. The types of problems simplified by Mathematica don't include coding Mathematica. To be sure, it pioneered a few nifty techniques that you would want to take advantage of, especially regarding symbolic manipulation, but you wouldn't be able to implement them faster if you used Mathematica (vs just drawing inspiration from it).

Mathematica's huge selling points (to me) are that it's a fantastic CAS _and_ it shatters the barriers between analytic and numeric tools. Many engineering and statistical codes involve 2/3 math and 1/3 computer science (or the other way around). Mathematica is in a completely different league for those problems because it handles the 2/3 about 50x better than your typical programming language and it handles the interface between the 2/3 and the 1/3 about 100x better than your typical programming language.

Mathematicians, engineers, and scientists regularly use a number of abstractions that your typical programmer doesn't care about: integration, differential equations, linear algebra (including infinite-dimensional and tensors), coordinate systems, statistical distributions, etc, etc. These abstractions are almost never considered during language design so you spend hours writing glue code to achieve the simplest of tasks. Unless you have a Mathematica license.

Example: you're writing a finite element code. The "meat and potatoes" of the problem involve putting a differential equation into weak form and evaluating a bunch of integrals to compute matrix elements. Mathematica can represent and display those elements using proper mathematical notation, it can find analytic AND numeric solutions, it can hold off on substituting variables until the last second (or elegantly substitute different sets of values for different problems), it can visualize all of this in a dozen different ways without worrying about indices and sampling rates, and it can generate code if you're feeling trusting that day. Now you want to evaluate convergence for a bunch of different meshing strategies. Not a problem: Mathematica can interpolate your meshed solutions to whatever order you want in whatever dimension using a single command and it can take differences between those interpolations and integrate with another. You never have to notice that the mesh points don't line up. You never have to spend a second thinking about multi-dimensional quadrature on tetrahedral meshes. Now you want to compare statistics about the mesh graph to an analytic model you found using Bayes Theorem in 3D parameter space and solve for the maximum likelihood values? Again, you don't have to worry about meshing or gradient descent or how to put least squares into matrix form. Just write the high-level math and let Mathematica worry about the rest. Now you want to use a simplified PDE model with an analytic solution and compare that to the numerical solutions? Mathematica can solve the PDE _and_ take care of all the interpolation and quadrature needed to integrate the square difference with the numerical solutions. Then it can plot all these errors and update the plot automatically as you go back and change things. The value-addition vs a general purpose language is off the charts.

None of that translates to the process of writing another Mathematica, since the algorithms Mathematica lets you abstract away are precisely the things you would need to worry about to implement another Mathematica.

Mathematica = A + B = (1000s of algorithms that mathematicians, scientists, and engineers care about, all coded with a common interface) + (syntax that elegantly glues them together)

B is comparatively easy and interesting if you like languages -- Mathematica's language is LISP on steroids. A is the schlep, and it's a doozy.

<comment><USER3> Thanks for the comprehensive answer! I phrased the question poorly, in that I didn't intend to suggest running Mathmatica against its own codebase but rather against shorter end-user programs with a view to developing IDE-type addons.

I agree with your general comments, as I hate writing glue code and my interest is primarily for DSP and simulation applications, for which I already admire it.

<comment><USER4> Whoops, sounds like you already know exactly what I spent 3/4 of my post belaboring :)

I'm still not sure I understand your proposal. How do short IDE-type addons solve the problem of integrating siloed codebases with each other? The way I see it, the only way forward is

1\. Convince a language person that first-class support for algebraic metaprogramming is important

2\. Convince someone from each of the fields {numerical methods, linear programming, finite element methods, graph theory, etc} to export an interface to the language in #1, possibly re-structuring their entire codebase to do so

3\. Documentation, convenience schleps

I say "convince" because the problem of making a Mathematica replacement is far enough down my todo list that I have no choice but to be realistic about the fact that I probably won't be that person.

<comment><USER3> I'm very into flow-based programming because I use a fair bit of it for audio DSP and that's how I think. So these days when I look at code-as-text I often find myself thinking about how I'd like to see the functions, branding etc. abstracted out into a flow chart diagram automatically. I was just struck during the Demo (and from some previous explorations) at how good M. is at developing graphs from structural information, and I think to myself 'why not from code?'.

On a tangential note, this latest demo looks very very close to the sort of thing Bret Victor has been talking about over the last year or two ([http://worrydream.com](http://worrydream.com)). If you haven't checked it out I think it might be interesting to you.

<comment><USER5> > why not from code?

We build networks of lots of different kinds against our own codebases and databases. And personally I've done a bunch of experiments around visualizing code in the past.

Unfortunately, I don't think I, or anyone else at the company, has convincingly cracked the problem yet. Generally, the visualizations look pretty, but they aren't "tactile" or practical enough to be useful.

But you've convinced me that it would be worth digging up some of my old experiments and writing a blog post around them, so that at least any progress I've made can be carried further by other people.

<comment><USER6> > But you've convinced me that it would be worth digging up some of my old > experiments and writing a blog post around them...

I would certainly be interested in seeing that. I have a lot of that sort of work looming in my immediate future.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> This has been a very long time in coming. Here's Wolfram in a 1993 interview:

"One of the things that I consider an exciting direction is to what extent we can expand the use of the language itself, independent of the application side of Mathematica. We've considered making a thing that will probably be called M, that is essentially Mathematica without the mathematics."

[http://www.stephenwolfram.com/media/stephen-wolfram- multipar...](http://www.stephenwolfram.com/media/stephen-wolfram- multiparadigm-man/)

What's funny is that it's only the "without the mathematics" part that hasn't necessarily come true, except possibly in terms of marketing. This little Raspberry Pi below my desk has a "Wolfram Language" distribution on it, which as far as I can tell is exactly the same as Mathematica.

<comment><USER8> You're right, I think. The language that's been at the centre of Mathematica for 25 years hasn't had a name of its own (it's just been "the language used in Mathematica"), but now it has its own name - the Wolfram Language. The Pi has an early pre-release version of version 10, whereas Mathematica is currently on version 9, and there are a number of additional features which will presumably be included in the release of Mathematica version 10.

Leaving aside the re-branding issues, it makes some sense for the language to have a separate name, because Wolfram intends for it to be used in web browsers and other places where there is no surrounding development environment (the Mathematica notebook and 'front end').

</comment></comment><comment><USER9> I'm working on something akin to this, although my version is somewhat more ambitious[1].

So far I have a "Knowledge Engine" that can answer (some) questions in natural language by using a process similar to how IBM Watson Deep QA works (an extremely simplified version atm, though).

I'm currently working on integrating SymPy for symbolic calculation[2]. SymPy already has a web interface[3] which is broadly similar to what WolframAlpha can do. That relies on Google AppEngine to provide security sandboxing.

My version is designed to be completely private, open source and self- hostable, including all the data[1], so I can't rely on AppEngine. Instead, I have SymPy running inside ZeroVm + LXC (Docker) as a sandbox. I'm currently working out how to get that to communicate with the front end (which is non- trivial, because ZeroVm is pretty much undocumented).

Obviously SymPy isn't as "Natural Language Like" as the WolframAlpha language, but arguably Python is actually more powerful.

After that I'll do OpenStreetMap integration (ie, self hosted OSM), which will give it better geographic understanding that it has.

[1] Every time I mention this I need to include a standard disclaimer that I do realize this is completely and utterly crazy.

[2] [http://sympy.org/en/index.html](http://sympy.org/en/index.html)

[3] [http://live.sympy.org/](http://live.sympy.org/)

<comment><USER5> How do you represent queries? That's really, for me, the most interesting question.

<comment><USER9> I run multiple parsing strategies in parallel. One is based on Quepy[1] (which generates a parse graph, then runs RegEx on the parsed objects), and a simple thing I wrote using a combination of NLTK and a Java processing thing.

For "question answering" (the bit I have working) both end up being converted into SPARQL queries and then run against a local RDF store.

For SymPy the idea is that my frontline parallel pipeline thing will throw the query at SymPy as well as the other parsers, but SymPy will be the only thing that knows what to do with it.

[1] [http://quepy.readthedocs.org/en/latest/](http://quepy.readthedocs.org/en/latest/)

</comment></comment></comment><comment><USER10> This seems like they have essentially codified wolfram alpha's many APIs and created the biggest, baddest standard library any language has ever seen, and slapped on some functions to access everything with. It seems like the wolfram language essentially sits on abstraction level max-1 which is pretty amazing.

I wonder how things break down when you don't want to do something that can be perfectly described in existing functions (ex. you need to perform some novel computation on an intermediate result of some function). Though I'm sure people much smarter than myself have made sure the code is modular enough to allow you to get your hands dirty (or they written the code such that if you have to get your hands dirty, you're doing it wrong)

<comment><USER11> From my understanding, a big part of its intended usage is for interfacing from applications in other languages. So you can offload all of the difficult calculations from your C/Java/PHP program and get Wolfram to do the work.

<comment><USER10> Ah, so now people will have a database process, an application process, and maybe a wolfram process to handle tough computation...

</comment></comment></comment><comment><USER12> First, as random internet commentator guy, I want to thank Stephen for his contribution here. This and NKS are incredible.

Second, I keep seeing videos and articles about Wolfram Alpha and am always left scratching my head kinda going "WTF?"

So it's a knowledge-based purely symbolic programming language? Can it play Flappy Bird? Power the next cool startup? Give me an answer to a question I might have today? I've been to alpha a couple of times. Never seemed to be able to get the questions right to get the answers I wanted.

I don't mean that to be negative. My point is that any audience is going to have a thousand different needs and viewpoints, most of which will probably seem trivial to Stephen Wolfram. Most new technologies get past this hurdle by open-sourcing. That way there's a thousand experiments, and over time a few of them are bound to give all of us little nerds a gleam in our eye one way or the other.

The other way of doing this, where you have a single point of creation describing to the world how cool it is? It is limited to things that have a single terrific property that everybody can agree on.

I'm not sure that is the case here. Still -- awesome stuff. Can't wait to watch this evolve.

<comment><USER13> Q:"What is the standard deviation in height for humans?"

A: inches and people are not compatible

whereas:

Q: what is the average height of humans? A: 5.3, with a nice graph showing the +- sigma

So it had the info, but just couldn't understand the question.

Whereas Q: what is the average height of male humans in Canada?

gives me an answer and chart "weighted for USA demographics".

If I change 'canada' to USA, I get a graph labelled the same, but with a different numerical value.

I don't think I trust this. At least with Google and I can inspect the source, read links, and so on.

One more: "What is a basis vector"

Wolfram gives me the stock quote for BASI, google starts things off with the linear algebra definition followed by a lot of relevant links.

<comment><USER14> To be fair, normally you say the standard deviation "of" a distribution, not the standard deviation "in" a distribution. When you use the word "of," the query works fine.

[http://www.wolframalpha.com/input/?i=what+is+the+standard+de...](http://www.wolframalpha.com/input/?i=what+is+the+standard+deviation+of+height+for+humans)

</comment></comment></comment><comment><USER15> As someone that wasn't a math major, I regularly get excited about Mathematica but then have trouble figuring out why I would actually want to use it. If someone were to give me an assignment that _they_ knew could be accomplished with Mathematica, then that would be easier to start, but I feel like it takes a while to make that translation between having a vague desire to figure something out, and then realize that Mathematica could do it for me quickly. Like, I wouldn't have thought to plot out last year's trip to Europe using it. So for new users, there's something of a "well sure it's easy AFTER you know how to do it" gap.

It kind of reminds me of when search engines first came out - I regularly witnessed a gap between people having fun typing in some example queries, and realizing that they could type in _anything_ search-engine-ish and get back information they actually didn't know ahead of time; information they had conditioned themselves not to ask out of not wanting to schedule an afternoon trip to the library.

<comment><USER16> I'm not a Mathematica user, but I've always enjoyed browsing the Mathematica Stack Exchange, which might be what you're looking for. For example, here someone asks how to generate random snowflakes, and many interesting solutions are provided.

[http://mathematica.stackexchange.com/questions/39361/how- to-...](http://mathematica.stackexchange.com/questions/39361/how-to-generate- a-random-snowflake)

Edit: here's a more real-life example, peeling labels from jars [http://mathematica.stackexchange.com/questions/5676/how- to-p...](http://mathematica.stackexchange.com/questions/5676/how-to-peel-the- labels-from-marmalade-jars-using-mathematica)

<comment><USER17> I use Mathematica for most of the programming I do. It makes ordinary programming (file handling, database handling, etc.) much easier (at least for me) than it would otherwise be. I even run nightly backups with a Mathematica script, taking advantage of Mathematica's logical operations.

</comment></comment></comment><comment><USER18> Wow, nice demo. It is interesting to see Wolfram explain his vision for an "ultimate fusion language" \-- a powerful multi-paradigm language, a huge standard library, data sources, and deployment all rolled into one. This monolithic approach seems to be the opposite of the Unix philosophy, and I wonder how that will play out.

There are clearly benefits to be gained from smooth integration, and the demo is impressive considering it only uses stuff built into the language. But there's also something to be said for letting different teams of people focus on building smaller and more focused tools which can be combined in a variety of ways. I worry that this Wolfram language will be limited in its usefulness for real applications because it simply tries to bite off too much.

<comment><USER19> This was the Lisp and Smalltalk development environments philosophy which offered a better developer experience than UNIX ever did.

The little things together from UNIX was the functions and objects bundled together via the REPL, with added capability to dynamically change the environment.

</comment></comment><comment><USER20> The best parts are the natural language inputs and inherent connectedness with data. These are going to eventually become expectations that you'll have interacting with computer systems in general.

Having a computer interface that lets you say, find out who in my office is sending the most email, in a one liner is the next logical step. Including and understanding your company / personal data in the way Wolfram Alpha understands its curated data is the missing link.

I'd be really interested in integration with enterprise resource planning software, and customer relational management software for big corps. For web firms an interface to salesforce.com, an interface to your web analytics data, your support ticket dashboard, your web marketing data. I imagine being able to simply ask questions like how does the weather in my customers location impact my conversion rate? Or other poignant questions mixing internal and external data seamlessly.

</comment><comment><USER21> This is really fantastic of course, but the video doesn't answer the following question: The video says it's the most powerful language, one can build so much etc. What's one of those things, that they've built that no one else could build before? What great application now exists that didn't before? I will still use google for search, twitter for opinion (that's where the people are at..), photoshop for photo manipulation etc. Besides doing mathematics, which Mathematica is great at, what concrete evidence is there that this language is better for solving any particular problem one would actually care to solve? I don't care about dominant flag colors.

</comment><comment><USER22> This seems super exciting. I'm not sure if you could build large-scale applications with it, but I cannot wait to play around with it.

Side note: The use of "I" and "My" really irks me. I imagine many, many people made this happen and contributed to these design goals. I guess this shouldn't take away from how cool this technology is, but it definitely leaves a bad taste in my mouth.

<comment><USER23> Wolfram started a startup and put his name on the door and it has been incredibly successful. No story about Wolfram appears on HN without someone complaining about his ego. Perhaps he is the Mohammed Ali of programming.

<comment><USER24> perhaps : [http://vserver1.cscs.lsa.umich.edu/~crshalizi/reviews/wolfra...](http://vserver1.cscs.lsa.umich.edu/~crshalizi/reviews/wolfram/)

<comment><USER7> This is the other thing that's almost guaranteed to appear for some reason. I think Taliesin did a good rebuttal to it a while back: [http://news.ycombinator.com/item?id=3974503](http://news.ycombinator.com/item?id=3974503)

As for Stephen's ego, I'm surprised it keeps getting mentioned. He seems like a driven person, but then so are many people whose egos aren't discussed. He comes off as quite a decent person in this Reddit thread [http://www.reddit.com/r/IAmA/comments/tmutz/stephen_wolfram_...](http://www.reddit.com/r/IAmA/comments/tmutz/stephen_wolfram_nks_10th_anniversary/c4nytv5) and in this interview with Scoble: [http://www.youtube.com/watch?v=mNf8Se_USlE](http://www.youtube.com/watch?v=mNf8Se_USlE)

All of this has only a tenuous connection to the language itself, which is much more interesting to discuss. Sure, it may be the only self-named language (thought it arguably owes its name as much to the brand Wolfram Research as to Stephen, and I'd hoped they'd come up with a more creative name), but if one manages to shepherd a system like Mathematica through 25 years, one earns the right to self-name a language.

</comment></comment></comment></comment><comment><USER25> one use case could be a business analytics tool. 'business intelligence'.

i.e., import 30 days of log data and instantly plot the geo-located hits on a world map, as a time series of dynamically rendered graphical points, with built-in information i.e. size, color, icon, shape, etc. and also statistical analysis to go with it.

this scenario and many others are certainly possible today but would require quite a bit of code, libraries, and external api calls, as well as a wrapper such as a web app if you wanted a large audience to view it.

i think in the future, managers/executives who will separate themselves from the MBA herd are the ones who will be able to effectively use tools such as this.

</comment><comment><USER26> This demo is pretty amazing and will take me a while to digest.

A few questions that I'm really interested in hearing the answer to:

1\. Will the language work without an internet connection?

2\. Will it be free to use?

3\. What happens if/when Wolfram the company goes out of business, or Wolfram himself retires?

4\. Are all the disparate APIs and sources that the language uses determined by fiat, or can they be customized? What happens if/when the APIs/sources stop working?

5\. Given that the language can do things like query your Facebook graph, it seems like there's a lot of API upkeep that the language requires. Is this done by Wolfram? How does this work when I'm running locally (if this is even possible)?

</comment><comment><USER27> It was once said that Stephen Wolfram builds such powerful tools that even the great man himself doesn't know how to use or explain what these tools are :P

On a more serious note, think of this language as something highly- sophisticated tech and other-industry companies might use.

You won't be building a farting-noise-type app with this language, unless it is a bowel-detecting-smell-sniffing-doctor-replacing-treatment-providing analysis app that uses sensors to compute the above scenario.

If Wolfram wants the language to be used in knowledge and computation fields, then maybe a couple of demos on how to use it for something like stock- trading, or tweet-timing-reach or weather-analysis might get this into the hands of people that use computation in some form with rather 'primitive' tools when compared to the Wolfram language (which basically is the equivalent of a huge-ass library and works like a huge-ass framework of sorts).

I personally would probably like to try or see the language being used in optimizing an industry like logistics or travel or anything to do with maximizing time-efficiency.

</comment><comment><USER28> So while I can't see myself using this to write applications I can certainly see it replacing / augmenting my current iPython notebooks. I can do _a lot_ with pandas and plotly for data exploration and visualization, but I can't do many of the things he demo'ed nearly as easily.

</comment><comment><USER29> Ego Force One has taken off again :(

<comment><USER30> I once had a physics professor (who I admittedly was not too close to) who loved mathematica and is quite the evangelist for the tool at my old school. However, he once met Stephen Wolfram and didn't feel that he had "a high opinion" of my professor.

Regardless of his ego, he has somewhat earned the bragging rights given that he is responsible for mathematica and wolfram-alpha.

</comment></comment><comment><USER31> This might be a good place to demo the language, assuming it is meant to be general purpose:

[http://rosettacode.org/wiki/Category:Programming_Languages](http://rosettacode.org/wiki/Category:Programming_Languages)

</comment><comment><USER32> Any ideas of how the Wolfram Language can be re-used in other commercial applications? Seems pretty powerful capability, in theory you could build a ton of services on the back of this, much like google, only with some new interesting hooks.

<comment><USER33> IIRC the stealth biotech startup "emerald therapeutics" is using mathematica to automate everything.

I actually am personally biased against this startup, but it is a fascinating use case.

EDIT: [https://www.wolfram.com/mathematica/customer- stories/researc...](https://www.wolfram.com/mathematica/customer- stories/research-workflow-mathematica.html)

<comment><USER20> Really interesting use case. I'm super impressed with the concept, of automated data generation and gathering and having a common platform for the company. Perhaps the most impressive idea is that the data that is generated appears to be programatically accessible. I haven't worked in a large enterprise that has advanced past unsearchable and poorly indexed excel files that are manually manipulated/updated floating around on shared drives.

This wolfram implementation seems great, but I wonder about a lot of the annoying 'hard stuff' that would occur in a larger environment, handling of permissions different user roles etc.

<comment><USER33> For these guys the 'hard stuff' that really impresses me is interfacing with hardware. Scientific instrument controllers are notoriously proprietary and annoying to deal with. Though truth be told, in a small scientific environment not having user permissions is a 'feature not bug', especially if it's not siloed against other departments in, say a bigger facility.

Aside from personally knowing the CEO from grad school, a former co-worker of mine got hired into Emerald and basically transformed from a bioinformatician to a programming lackey... He may have hated every minute of it and quit.

</comment></comment></comment></comment><comment><USER34> Wow! That is a helluva pitch. My fear is that it _is_ the mind of Stephen Wolfram and unless you have that the whole thing will be one big mystery.

<comment><USER8> In the hands of an expert, genius, or wizard, Mathematica is very capable. But lesser mortals will struggle to make it do what they want, and it's never as easy as it looks here...

</comment></comment><comment><USER34> I would sure like to see the code for its repl. If it's all he says, that loop should be uniquely tiny.

<comment><USER17> The normal working environment (Mathematica) is a repl environment.

<comment><USER34> This I understand. I would like to see the code that implements the loop.

</comment></comment></comment><comment><USER35> Well all my programming tools feel obsolete.

</comment><comment><USER36> How to run it? Is there any interpreter?

</comment><comment><USER37> This is really, really cool.

</comment><comment><USER19> Lisp Machines are back! :)</comment>


Constitution of the United States - <AUTHOR> http://www.archives.gov/exhibits/charters/constitution_transcript.html

<comment><USER2> ???

<comment><AUTHOR> There have been many NSA discussions on HN. Quite a few of the comments give an interpretation of the Constitution. I thought the source could be useful.

<comment><USER3> Except that the text of the Constitution alone, without any commentary, is very hard to understand. Its current meaning is based on over two centuries of Supreme Court cases, etc. So a better source would be something like Wikipedia, which at least gives you some historical background and explanation:

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

<comment><USER4> I whole heartedly disagree. The supreme court may have changed things here and there, the intention of our finding fathers is right there in plain English. I think anyone can understand what our finding fathers were trying to achieve when you think of the context therein. It was designed to protect we the people from an oppressive government, while enumerating the 6 core functions of the federal government, quite simply might I add, in the preamble. Considering this, it is very relevant to the state out country is in. This document is a set of principles, and principles are timeless.</comment></comment></comment></comment>


$100K Pitch Competition and No Cost 9-week Program for Finalists - <AUTHOR> https://www.inventivelabs.org/pitch-competition <comment><AUTHOR> $100,000 Pitch Competition Announced by Mass.-based incubator InventiveLabs, offers cash investment + no cost, 9-week Accelerator Program for finalists.</comment>


Common Pitfalls in Writing Lock-Free Algorithms - <AUTHOR> http://developers.memsql.com/blog/common-pitfalls-in-writing-lock-free-algorithms/ <comment><USER2> Probably the most useful observation in the article is hidden right before the Results / Conclusion...

Any optimization should be measured. Otherwise how do you know if all your hard work is worth it? In the author's example, the fastest implementation was actually _not_ lock-free, it merely used a better spinlock than std::mutex.

It's a good idea to use existing implementations mostly so that you can measure and (hopefully without too much trouble) change out the implementation whenever you need to. Different hardware likely has different performance, so measure often!

<comment><USER3> Like the old carpenters adage "Measure twice, cut once"

<comment><USER4> We recently bought a laser cutter and realised that adage is based on the assumption that the cutting takes the longest time. Now if we want a _really good_ fit we do a binary search on the cut dimensions.

Our new laser cutter adage is "cut loads and don't bother measuring because it doesn't take into account the size of your cut"

<comment><USER5> The adage is based on the fact that you can't "undo" a cut too short. If you need a 6' board, and cut it to 5'10", you've probably just wasted a perfectly good piece of lumber.

</comment></comment></comment></comment><comment><USER6> If you found this interesting, you may also like the really clean implementation of a single-producer single-consumer lock-free queue in Facebook's folly C++ library.

[https://github.com/facebook/folly/blob/master/folly/Producer...](https://github.com/facebook/folly/blob/master/folly/ProducerConsumerQueue.h) (code)

[https://github.com/facebook/folly/blob/master/folly/docs/Pro...](https://github.com/facebook/folly/blob/master/folly/docs/ProducerConsumerQueue.md) (docs)

</comment><comment><USER7> First off, I'd call that barrier-less, which can be more important than lock- less. With the important distinction that _it will break on ARM and 'weakly consistent' memory model architectures_.

Android's SMP Primer does a really great way of covering this as well, with a lot of race examples, so I recommend checking it out as a compliment: <http://developer.android.com/training/articles/smp.html>

The author of this article (and probably most readers) will be concerned with x86, which has a "processor-consistent" memory model. What isn't mentioned is that ARM and other architectures have an even weaker ("weakly consistent") memory model. The SMP guide above describes these in detail and how they can be observed (race) here: [http://developer.android.com/training/articles/smp.html#data...](http://developer.android.com/training/articles/smp.html#datamem_barriers)

If you are dealing with low-level problems like this--either in libraries, operating systems, or systems tools and utilities--design for "weakly consistent" memory models, or _please_ leave a huge warning to future developers that it may have subtle and difficult race conditions on those platforms.

<comment><USER8> CompareAndSwap implementations use a memory barrier on ARM. That should be sufficient to guarantee correctness.

</comment></comment><comment><USER9> It may be lock free, but it's not very wait free.

Maybe I'm just tired, but OS X and Windows already have atomic lifo's that are much better: [http://www.opensource.apple.com/source/Libc/Libc-763.13/i386...](http://www.opensource.apple.com/source/Libc/Libc-763.13/i386/sys/OSAtomic.s)

(scroll to bottom, see declaration in /usr/include/libkern/OSAtomic.h)

[http://msdn.microsoft.com/en- us/library/windows/desktop/ms68...](http://msdn.microsoft.com/en- us/library/windows/desktop/ms684121\(v=vs.85\).aspx)

For linux, there's llist.h in the kernel, but I don't know of a userland version and I haven't used it.

<comment><USER10> The article demos a list, where threads are contending to append to the top of it. Unlike a list, there is not much contention on a FIFO unless its typically empty..

<comment><USER9> You are correct, I meant lifo but wrote fifo.

OSEnqueueAtomic/OSDequeueAtomic and InterlockedSList, by virtue of only being able to push and pop the head, are effectively LIFOs.

</comment></comment></comment><comment><USER11> Another problem with lock free algorithms: sometimes locks are cheap.

This is certainly the case on NVIDIA's CUDA platform, where atomic operations incur a 50% penalty - which can sound like a lot but considering that the lock region can be 20% of runtime. In practice this means a lock free runs in 100 seconds while one with primitive locks runs in 110 seconds (and was easy to write debug and maintain).

</comment><comment><USER12> Hm. maybe I am missing a lot there, so I would be happy for people to correct me. But in my book a linked list is like a worst case to make "lock free". For me the first step to make something lock free is that all the frequent operations on a datastructure only need one item to change. A fixed size stack in this case. Once you have multiple things to keep in lock the old style lock is a necessity! You might invent one that works slightly better (like his sleep(250)..) under some benchmarks. But to me lock free means an algorithm where both producers and consumers have to only ever access one single atomic value.

<comment><USER13> "to me lock free means an algorithm where both producers and consumers have to only ever access one single atomic value"

Well it may mean that to you, but unfortunately it doesn't mean that to anyone else.

Lock free has a precise definition. If you don't know what it is, why get involved in this discussion?

<comment><USER12> As I put in the first sentence, I might be missing a lot there. Could you please point me to the definition you are referring to? I probably did not express myself very well. And I already learned a bit by thinking about this differently. You (and everybody else, so you are right!) define lock free as dead lock free. Which can be done with a carefully chosen lock. I was always thinking of lock free as a pure performance optimization which admittedly is different to the algorithmic property. Am I on the right track? If yes, it should answer your question why I got involved in the discussion: to learn.

<comment><USER14> Dmitry Vyukov keeps a great resource for learning about lock-free algorithms (and other interesting things) here: [http://www.1024cores.net/home/lock-free- algorithms/introduct...](http://www.1024cores.net/home/lock-free- algorithms/introduction)

<comment><USER15> Isn't the very first example in that article flawed?

        void decrement_reference_counter(rc_base* obj)
        {
            if (0 == atomic_decrement(obj->rc))
                delete obj;
        }

This is classic test-then-act, isn't it? What happens if another thread bumps obj->rc after the comparison to 0, but before the deletion? That other thread could find itself referring to a suddenly-deleted object, or am I missing something?

</comment></comment></comment></comment></comment><comment><USER16> We can get high performance coupled with safer ways to deal with locks. You don't need to be afraid of locks so much as find something that handles them well along with whatever else you need. In Ada there exist "protected" objects and types, a protect object being either a singleton or an instantiation of a protected type. Protected types are one way to synchronize threads and provide access control to data safely. There are protected entries with queues, protected functions which can only read the data being protected and protected procedures which while having the ability to write to protected data are guaranteed to only be allowed access one at a time. There's plenty of great features of the built-in tasking to go along with protected objects like selective entries, time delayed aborts and a ton of other stuff. Ada really hits the mark for locking. If you don't want locks, but still want synchronization, there's also the Ada rendezvous. Good stuff and even more robust with the new 2012 standard.

</comment><comment><USER17> I cannot upvote this enough, thank you for the very well written article.

</comment><comment><USER18> I found the observation about new/delete not being necessarily safe interesting. Been writing Java too long, Java has no delete (garbage collection) and presumably new would have been creating a linked list entry object, which is safe.

<comment><USER19> But could cause a garbage collection cycle, right? If so, I think this still counts in the "not safe" category.

<comment><USER20> Generally garbage collection algorithms more sophisticated than reference counting can handle cycles just fine. Certainly this is the case for Java.

Edit: Or perhaps you mean, could cause the garbage collector to run? I don't see why that'd be an issue either.

<comment><USER19> That is what I meant. And having a garbage collector run could potentially freeze the JVM, causing a performance hit. (I mean, it is basically a global lock on the entire system, right?)

Basically, my reading of "safe" meant "would not block." A garbage collection cycle stops everything, so is effectively a block, right?

<comment><USER20> I read "safe" differently than you did; now I'm on the same page. With or without a GC, if you want to guarantee safety in that sense no matter what, you're right - you just can't allocate memory. So in the worst case running in a managed environment doesn't buy you much, but often the guarantees you need are a bit looser than that, and in that case managed memory can be really beneficial.

</comment></comment></comment></comment></comment><comment><USER21> [(thanks) you should probably make sure your main site is readable if adobe typekit is blocked - it is blocked by default w ghostery]

</comment><comment><USER22> Multithreaded algorithms have always been on my list of things to master in programming. This is an excellent article.

</comment><comment><USER23> Well, lots of good insights, but I don't get this:

"We currently use boost::atomic for this. Our compiler is gcc 4.6, which currently supports std::atomic, but its implementation is much less efficient than boost's. "

Really, never replace trust in a compiler by trust in a library.

They're getting down to all the nitty-gritty details and then saying 'a memory barrier is expensive'. It seems contradictory to me.

GCC will get better, other compilers will get better as well, but using another level of indirection (a library) is not usually a good idea.

Oh, and maybe replace the sleep by a sched_yield

And even better, don't have hundreds of threads on a single data structure, especially a constrained one like stack, that's probably the easiest way of having speed gains.</comment>


Free Cloud Server – Pay one time setup fee for your very own place in the cloud - <AUTHOR> http://cloudatcost.com/ <comment><USER2> I cant see what cpu it is.

It looks great, canada company give more trust than if it would be other country,

Life time use right?

</comment><comment><AUTHOR> Did anybody use them? It seems too good to be true and one wonders how can they afford that.

$35/one time

1 vCPU Core

2 public IP per Server

512MB ECC RAM

10GB SSD

1 Gbit Network

unmetered monthly transfer</comment>


Ask HN: Same comment is most upvoted and downvoted post on the same topic - <AUTHOR>

There where 2 stories about Apple Pay on the frontpage of HN today. I made the same comment on both. One became the most upvoted and one the most downvoted.
Most upvoted:
https://news.ycombinator.com/item?id=8292148
Most downvoted:
https://news.ycombinator.com/item?id=8292140 <comment><USER2> Where's the downvote button? I was unaware hacker news supported down voting.

<comment><AUTHOR> I guess it appears only if you have a certain amount of karma.</comment></comment>


As New Cold War Looms, China Struggles to Grasp Trump's End Game - <AUTHOR> https://www.bloomberg.com/news/articles/2019-05-22/as-new-cold-war-looms-china-struggles-to-grasp-trump-s-end-game <comment><USER2> This article seems rather disingenuous to me.

Of course China knows exactly what Trump is doing. This is both a negotiating tactics and a long term attempt to curb China's rise.

In the short term the tactics may work to extract concessions from China. But China will absolutely make sure that it is not held at gun point again and thus in the long term it won't work.</comment>


Pros and cons of joining Nutanix vs. Cohesity as a senior programmer - <AUTHOR> The backstory is that I have offers from both of these companies - Nutanix does primary storage and hyperconverged, Cohesity does secondary storage and backups and what not. But I have zero insight into how the two companies stack up in terms of culture, work-life balance, and overall as employers. I have not heard any reliable reviews so far, hence the question. <comment><USER2> Very dependent on your goals in life. I have heard great things about both companies. Nutanix does more cloud stuff. Cohesity is more backup, restore. But they have great tech stacks. Lot of C++ at both places, which maybe a plus or minus for you. Not much idea about company culture.</comment>


This is how you healthcare: American Death in London - <AUTHOR> http://nsfwcorp.co/afboza <comment><USER2> I was in America, in LA, a few years back (I'm British), when the whole Obamacare thing was being debated everywhere.

The one thing I noticed, and it was a rule that didn't have a single exception, was that everyone I talked to could give at least one example of a time when either they or somebody they personally knew had been faced with a ruinous bill for healthcare. People who'd been bankrupted, people who'd fled to another state or even left the country to get away from a hospital bill.

And yet even after seeing whole families' lives literally torn apart, first- hand, they still were against any healthcare reform.

I tried then, and I've tried in the years since, but I simply cannot understand where they're coming from. How anyone can support a healthcare system in this day & age that can, and does, bankrupt or refuse to treat people.. I just can't understand it.

<comment><USER3> The system does bankrupt people, but it doesn't refuse to treat people. That is why people go bankrupt - the hospital has to treat everyone, then hands them an immense bill.

<comment><USER4> Actually, it does refuse to treat people quite regularly. Aside from emergency department, health care providers are generally free to refuse care for patients they believe cannot pay except in the case of a life-threatening emergency.

What this means is that in the USA it's common for people to have to allow earlier-stage, less expensive to treat problems develop into serious problems before finally going into the ED to seek treatment. Which increases all of our health care costs overall. Not only does the problem that eventually gets treated end up being more expensive than it needed to be, but the place where the care is provided is also the most expensive option. And since they don't pay, health care providers are forced to raise everyone else's rates to cover the cost of this unnecessarily expensive care that they had to provide.

Long story short, the range of things that health care providers have to treat is much wider in countries with more socialized systems than it is in the USA. And that is yet another reason why the USA has such enormously high health care costs despite providing poorer quality of care.

<comment><USER5> > Actually, it does refuse to treat people quite regularly.

Let's not play with words like that. People in the US get treatment—you even say so later, despite your ominous lead sentence. They just get it later, via the ED, after prevention goes un-performed. That's abominable enough, and that's what we should talk about, not the (false) specter of non-treatment.

<comment><USER6> > _"They just get it later, via the ED, after prevention goes un-performed. > That's abominable enough, and that's what we should talk about"_

You two aren't disagreeing.

You say we should talk about the epidemic of people unable to afford primary care, pushing treatment later and later, eventually into the ER where they may not even be able to be saved - and even if they do, suffer long-term health effects due to the delay in treatment.

And he's saying that this is because the system _does_ refuse to treat people - especially at the primary care level.

These two topics seem to line up just fine.

<comment><USER5> Yes, that's why my point was to ask that we refrain from falsely hyperbolic statements (people don't get treatment) so we can focus on the myriad true problems that most agree exist, some of which you pointed out.

</comment></comment></comment></comment></comment></comment><comment><USER7> The author's father, Bill, around age 76, never paid taxes while living for decades in the UK, but was still treated, and died there. The author assumes he wouldn't have had care in the U.S. That's wrong. Even though he never held a recognized job (and probably was a tax cheat), as a senior citizen he would probably receive Medicare and as a poor person he would also potentially be supported by Medicaid for any shortfall. Further, his situation is hardly a model for national policy-- why should someone who never worked, yet apparently has well-off, internationally traveling family, be completely subsidized by taxpayers? Why shouldn't Bill or his family face some of the costs for his care?

<comment><USER8> >or his family

For the same reason that you don't go to jail just because your brother robs a bank? Hey it is nice when family helps out, but they shouldn't have the legal obligation.

<comment><USER7> They should if he leaves them an inheritance.

<comment><USER8> That's an interesting idea. Directly I'd still say no, they shouldn't, but indirectly via an inheritance tax I'm OK with as I'm OK with inheritance tax in general.

</comment></comment></comment></comment><comment><USER9> When my wife gave birth in Europe the 11 hour procedure, which apart from the traditional medical stuff, included massage and acupunture for relaxation, involved a handful of nurses, 3 midwives, 2 doctors, an anesthesiologist etc. After the birth our little family stayed in the 300 square foot private room at the hospital for two days. We never saw any papers except the booklets the hospital gave us about having an infant. It was great and it was free.

Two years later my wife's sister gave birth in a top notch Manhattan hospital and my wife was there for support. Man, the stories she tells about how every part of the procedure was initiated with waivers being signed and questions asked about insurance to her sister who was squirming in pain and was several hours into labour. And how the impatient doctors tried to upsell her sister to a C-section... After that her sister shared a tiny room for a night with some other woman and was then sent home. Luckily, most of the 40,000 dollar bill was covered by her insurance.

<comment><USER7> This is an indictment of the U.S. legal system, not the U.S. healthcare system.

<comment><USER9> Yes, it's kind of related, though, isn't it?

</comment></comment></comment><comment><USER10> \- I'm really sorry to hear about the author's father's passing.

\- While it's heart-warming, it is unrealistic to think that a public program can spend infinite amounts of money on citizens who a) have paid "little or no" taxes and b) "throat cancer suffers who quit smoking four years afterwards". The math just doesn't add up.

\- The fact that the US has a pseudo market-based healthcare system is what allows drug / device companies to make money on innovations that ultimately save lives in other countries (like the UK) where these drugs / devices may not even break even. If you create a system in the US where it's impossible to make money in healthcare innovation, we'll see far fewer technological developments in healthcare, which will lead to worldwide increases in infant mortality / decreases in life expectancy.

That said, we should have a way in the US to provide basic healthcare for the uninsured. The answer is not, however, a single-payer system.

<comment><USER11> Anyone who is a throat cancer sufferer who has only recently quit smoking has paid quite a bit of tax, at least in the UK.

<comment><USER10> True. My point, however, was that the author was highlighting the fact that this particular patient did not contribute much to the financial pool from which he was now drawing.

</comment></comment></comment><comment><USER12> 'who lived entirely on his own terms.'

Not really. He was fine with other people paying for his hip replacements.

<comment><USER13> Apparently those _were_ his terms.

</comment></comment><comment><USER14> I enjoyed reading this article and I think the choice about how healthcare should be delivered in the U.S. boils down to how we as a society want to spend our (limited) resources. Part of the reason that we spend more in the U.S. than in the E.U. is because in many cases we go to greater lengths to extend someone's life.

I'm not sure that culturally people are willing to accept the idea that we aren't going to do "everything we can" for someone because it isn't worth it to society (the payer). In the case described here, we might have implanted an electronic device to resynchronize the patient's heart and prevent the CHF from trashing the rest of his organs for a few more months (or years) at the cost of $200k.

Are we at a place where people in the U.S. will accept not doing that that?

I think that a single payer with a base level of free care is the right thing for society to do, but the possibility of making private insurance illegal (as it is in some places and some groups in the U.S. are advocating for) is terrifying to me.

The affordable care act basically ensures that we will arrive at a single payer system sooner or later, but how do we change our culture to be more accepting of our own mortality and the limitations placed on extreme measures to extend life?

</comment><comment><USER13> All this noise about the problems of the American "system", ignores the fact that America doesn't have a health-care system _yet_. If the problem in the United States is high-cost, the solution is tort-reform, so that GPs can comfortably practice general medicine and afford their insurance premiums again.

Unless a central "system" is going to indemnify GPs, there won't be a flood of them entering the pool, since their rates will be fixed by central rate tables (maybe, if they are lucky, adjusted for regional cost-of-living) even if only indirectly by maximum benefits needed to maintain minimal legal coverage levels; if they are to remain privately run and thus administratively independent.

</comment><comment><USER15> Some excerpts:

 _He was a charming, damaged, charismatic, fiercely intelligent, dissolute individual, who lived entirely on his own terms. As a professional gambler, it is unlikely he paid much if any tax in 37 years. He had no will, no funeral plan. He never did fill out the forms necessary to vote in the last election, or the one before that, as I discovered. He just hated forms. I could sympathise. Had he stayed in the US, it is – how you say – dollars to doughnuts he wouldn't have got it together to fill out the forms, and would have had no health insurance. He considered the US system "absolutely unmanageable"._

 _However long this goes on for, they'll continue throwing resources at this individual and never show a single sheet of figures to any of his relatives. Not because they'll get anything back, but because this is what the NHS does. It's free care for throat cancer sufferers who only gave up smoking four years afterwards, for drinkers who were told 35 years ago that if they didn't quit drinking they'd die. Free care for American immigrants, for jerks and gents. Free care for parents whether they showed up or not. Free care for guys who tried to try. Free care for the only father I will ever have._

So here comes the TANSTAAFL argument: I don't think anyone argues that what the OP describes is a "bad thing"...in fact, I think it's probably the dream scenario that people optimistically assume is the case before they have their first encounter with an emergency room.

But the reason why it doesn't happen is because of cost, plain and simple. And to be concerned about cost is not just the domain of greedy insurers and fat cat cost cutters, but of reasonable people who understand that preventive care is less dramatic than end-of-life care, but is surely as deserving of resources and attention. And both types of care rely on the same limited pot of funding.

It's easy to be emotionally invested in the personal case of a man who is lucky enough to have a loved one so eloquent with words. But what about the hundreds, thousands of routine cases that are treated by NHS with a protocol governed by cost limitations, limitations that will inevitably be imposed by the decision to give blue-chip treatment to the untreatable?

These routine cases don't pull at the heart strings because it is the nature of the human mind not to realize/dwell on how an exam/procedure not scheduled two years ago is the main factor in the chronic disease one suffers today. And yet these people are just as deserving of optimal treatment as OP's Bill. The way that OP judges the value of healthcare, though, means that the Bill's will get a greater share of a finite set of resources. Is this really the way an optimal healthcare system should work?

This is not to say that the U.S. or any other system is currently better than the NHS. It's just to point out that fashion in which the OP (positively) judges the NHS is susceptible to being ignorant of the problems that occur earlier in the pipeline of health.

<comment><USER16> The problem with the TANSTAAFL argument in this case is that the NHS is far cheaper than the American alternative. It is also far superior at providing preventative care than the American alternative.

<comment><USER17> Indeed. The US private sector and the US federal government EACH spend more per capita on health care than the UK does. And yet we rank behind the UK on virtually every health statistic that they bother to track.

In 1993 Republicans did an interesting analysis. They found that Clinton's health care plan would work, and would be popular. If it passed, they believed that Republicans would be losing national elections for a generation. But they also figured out that if they derailed it, then they could turn fears about it into a potent election issue. They did, and it was. They tried the same thing with Obama's plan. Whether the other half of their prediction comes true is yet to be decided.

For the actual Republican analysis from 1993, see [http://delong.typepad.com/egregious_moderation/2009/03/willi...](http://delong.typepad.com/egregious_moderation/2009/03/william- kristol-defeating-president-clintons-health-care-proposal.html).

<comment><USER18> Not only that, but as Dean Baker never tires of pointing out, if the US only spent as much as other rich countries do on health care (countries that get better health outcomes), it would have huge budget surpluses rather than deficits.

</comment></comment></comment></comment><comment><USER19> So the healthcare system - as described here - is largely benefiting the living members of the dying by helping them cope and transition into death.

That is what I took away from this article.

</comment><comment><USER20> For what it's worth, my father spent a lot of time in hospitals towards the end of his life, died, and the only consideration made towards payment or insurance was when he was first admitted. I honestly don't even remember the details that well, though I vividly remember a lot of other things about it. I also received reams of "explanation of benefits" papers afterwards in the mail, but we never had to pay a dime.

</comment><comment><USER21> I'm not clicking on any link with nsfw in the url.

<comment><USER22> Thanks for your feedback. The next time we will simply post the link with the domain removed.

<comment><USER23> I'm not sure if you're being snarky or not... but nsfw in the domain is a good reason to give caution while at work, right? There are a lot of terms that, if in a domain name, I would choose not to read at work.

<comment><USER24> If only NSFW had appeared in the URL of a few things I've clicked at work.

</comment></comment></comment></comment><comment><USER25> "As a professional gambler, it is unlikely he paid much if any tax in 37 years"

There's no tax on winnings while gambling in the UK anyway.

</comment><comment><USER26> The article deifies government. _By now I am convinced that the NHS – and I hyperbolise, but only slightly – is the greatest achievement of humankind, the nearest we get to a benevolent deity, a goddamn superhero._ Such worship of the state never ends well, starting with large-scale confiscation of private earnings (where do you think the money for this incident came from?) and veiling of failings (having delivered soothing words and relaxed settings for the patient's death, no mention of what life-saving options were available and why not administered). All delivered with non-sequitur jabs at another healthcare system. "I love Big Brother" - Winston Smith

As someone who should be dead four times over, I find the American health care system quite functional, effective, and satisfactory. No worship thereof necessary.

</comment><comment><USER27> [http://www.dailymail.co.uk/news/article-2279984/NHS- pays-1mi...](http://www.dailymail.co.uk/news/article-2279984/NHS- pays-1million-compensation-men-wrong-TESTICLE-removed.html)

</comment><comment><USER13> Anyone who gives up a little health liberty for a little health security will obtain neither. Instead they'll get another sprawling centrally-run bureaucracy (in people and rules) managing the health "system" equivalent of "no-child left behind".</comment>


Publish interactive 3D content online - <AUTHOR> http://sketchfab.com <comment><USER2> What would be really cool : 3D print my uploaded models directly on Shapeways. Or point me to some 3D scan tools to make stuff like this : <https://sketchfab.com/show/j4ArcCV4FeCmcwdan93blBfqOzi>

<comment><USER3> working on it :)

<comment><USER2> Cool !! Can't wait to see it !

</comment></comment></comment><comment><USER4> The technology is great, but I'm a little confused about your business model. It was not clear at all from the front page who this was for (people who want to show off their models) and whether paying for "models" was paying for being able to upload them or download them.

Why are you not _selling_ models? It's big business, and you have much better technology than the others in the space. As an actual customer of those websites, I would definitely prefer to buy from you if the TOS was reasonable.

Giving people a plugin to show off their 3D models on their website or a social site (as someone else says, like Soundcloud) just doesn't seem like that big a market. Selling models is a huge market and one waiting to be disrupted by an interface and simplicity like this.

<comment><USER5> I disagree. 3D is art, and there's value in uniqueness. For example, game characters have to be always unique. Of course there's certain props which could be reused, but I don't think the market for 3D models is _that_ huge. 3D models for printing purposes is a different story.

Another problem is that those 3D models could be ripped fairly easily (they are downloaded in your browser anyway). That would put away any serious sellers. Although, reusing stolen assets in games for example would be noticed. Of course, as a complementary monetization strategy, it wouldn't hurt to offer downloading with paid rights for reuse.

As a learning 3D artist myself, I think this is a really great way to show off your 3D and explore what others have done.

</comment></comment><comment><USER6> Why would you limit how many models people can add to a free account? You're basically telling people not to share.

If I'm paying for a Pro account but hit 101 models, my only option is to shell out 14 times more money for a Business account? While only getting 10 times more storage? That's a pretty shitty deal.

Get rid of the storage limits completely. The Pro pricing is fine. The ability to store models that aren't public is worth 9€ (~$12) per month.

The Business pricing would be fine if you were offering extra value. You commented that you're working on a Shapeways tie-in. This would be great to allow free and Pro users a way of ordering models that they can access. Give Business users a storefront.

</comment><comment><USER7> Edit: When trying to signup, your TOS page is 404ing <http://sketchfab.com/license>

Terms page after login works <https://sketchfab.com/terms>

</comment><comment><USER8> Rather the YouTube for 3d content I think, it's awesome, I believe in your project!

</comment><comment><USER9> it's annoying that the back button does not work anymore when I load this website. Are they trying to force me to stay on their page?

</comment><comment><USER10> When I load your homepage, it spams my browser history. Seems like a bug. (Chrome 22/Win32). Awesome application though.

</comment><comment><USER11> Cool! Some suggestions:

1) For those poor ATI users on Ubuntu with Chrome, and probably others with driver issues, suggest that using FF instead of Chrome may help.

2) When in first-person mode and in full screen, why not use the Pointer Lock API to allow proper first-person controls?

</comment><comment><USER12> This is very well implemented. Congrats! I think you guys can jack up the number of files for free users. This will help build up a nice repository of models.

How about incorporating some form of shape search tool - might help browse as the repository grows large?

</comment><comment><USER13> The pricing page utilizes some odd phrasing. Apparently the free plan does not include "privacy". Am I the only one who was thrown by that?

</comment><comment><USER14> Which webgl library are you using to load all those file formats if you dont mind me asking, and does it save as a JSON file?

I signed up.

<comment><USER15> osgjs. And all file format are handled by the server, converted after to a unified json + binary file

<comment><USER16> Out of curiosity, are you using AssImp ( <http://assimp.sourceforge.net/> )on the backend and rendering to your format?

<comment><USER15> No

</comment></comment></comment></comment><comment><USER17> What's the browser compatibility for this?

<comment><USER3> It's WebGL, so it's runing on all modern browsers: Chrome, Firefox, Safari. We'll very soon release a fallback for the others.

<comment><USER18> It should be noted that IE doesn't support WebGL

<http://superuser.com/q/353549/10142>

There is a plugin for it though: <http://iewebgl.com/>

<comment><USER19> He did say though that IE won't work:

> it's runing on all modern browsers

<comment><USER11> IE10 is modern but doesn't support WebGL :(

<comment><USER20> So maybe it's not modern enough.

</comment></comment></comment></comment></comment></comment><comment><USER21> the soundcloud for 3d. i love it.

</comment><comment><USER20> I wonder when will WebGL adopt the new OpenGL ES 3.0 features. In about a year?

</comment><comment><USER22> Homepage is unusable on Safari on an iPhone.</comment>


Ask HN: Resume help? - <AUTHOR>

Hi HN, I'm a 23 year old individual who has a deep passion for technology & business. This is my current resume and to me it looks perfect. Maybe someone can help me tune it up a little bit? Trying to find a job as a systems engineer. Thanks in advance.
Original Microsoft Word Document http://usershare.net/78zistzolvcr
UsedNConfused email@example.com 123 Fake St, San Francisco Ca 123.456.7890
TECHNICAL SKILLS   | Software-   Microsoft Windows x32/amd64: Server 2008/R2, Server 2003/R2, Windows 8, Windows 7, Vista, XP, Mint 7, SBS, WDS, WinPE, Powershell, Exchange, Office, Avocent DSView, Product Studio, KVM over IP, Dameware, SMS, Netmeeting, Webex,  BlackIce, Data Protector, Citrix, RUP, WTT, ASI, Debugger.
Hardware-  HP ProLiant DL Server series, HP Mass Storage Array, Dell PowerEdge Server Series, Dell PowerVault,  Comptrol,  Avocent DSR.
WORK EXPERIENCE   | 	Microsoft Corporation						                                2010-2010 via VanceInfo Software Test Engineer II
On boarding, scheduling, and execution of TEX Win8 automated test passes in labs with over 400 machines for Windows Core Development. Responsible for triaging the test passes in WTT and sending out results to developers.
•The following tools are used for triage:
o    WTT: a complete test case management and automation tool, which uses Product Studio to report and query bugs.
o    KVM over IP: a virtual machine tool to visualize and interact in a centralized way with lab machines. o   AutoTriager: a machine failure tracker which shows which machines are broken within the debugger (kernel, infrastructure, or network). o     DWP: a centralized tool to extract the debugger stack traces on the machines that have broken into the debugger. •     Test preparation
o   Configure and maintain operating systems, specs, and machine hardware configurations  for different tests to be scheduled on a mass variety of machines. o   Implemented new automation processes for day to day tasks and projects, including scripted ASI .ISO's/.WIM's, WTT jobs,  machine deployments and PowerShell scripts.
	Microsoft Corporation						                                2008-2009 via Excell Software Test Engineer I
o  Execution of Enterprises BVT (eBVT) testing in which debugger was used for analysis of kernel, user-mode, and infrastructure breaks in a highly demanding environment for Win 7. o   Analysis and logging of eBVT bugs within Product Studio and BugCheck to keep track of how our teams tests were running.
o   Created documentation for new employees on the software development life cycle.
	Boeing Corporation						                                2007-2008 TekSystems Network RAS Analyst
Worked in a helpdesk environment where we would receive incoming client and customer calls on where our knowledge was used to help with troubleshooting of software and hardware networking access issues. Support so vast, even including in-home networks and personal PC's on almost any issue 24/7/365.
•Supported the following:
o   VPN connections for remote users, Cisco hard token/soft token technology. o   WAN/LAN (wired/wireless networks) and filtered internet access.
o   Proxy/Reverse proxy filtered internet access via SSLVPN for suppliers and contractors.
o   Enterprise data backup and protection. o   Remote access with Avaya, Dameware, SMS, Netmeeting, Webex, IPSec.
	GeekSquad					                      		                     2006-2007 BestBuy Lead PC Technician
Worked in a high-paced environment where my experience guided customers in the right directions in which troubleshooting/ upgrades/ repairs were done to get the best possible outcome.
•Supported the following:
o    Helpdesk operator – technical support, diagnostics, trouble-shooting, software, and hardware issues. o    Re-imaging hard drives – using Norton Ghost and Acronics True Image. o    Hardware installation and upgrades – motherboards, processors, memory, graphics cards, sound cards, modems, and full system builds. o    Operating system installations and upgrades – Windows (95, 98, 2000, NT4, Server 2003, Virtual Server, XP, Vista) Linux, Mint, MAC OS. o    Software installations and upgrades – All applications of: Adobe, MS Office, Ms Works, Utilities, Virus Scanners (Norton, Panda, Pc-Cillin, McAfee, Kaspersky, AVG), Spyware (Webroot, Trend Micro, McAfee, Lavasoft), Firewall (Norton, McAfee, Trend Micro, Windows), and Diagnostic tools, Driver Updates,, AutoCad, AutoDesk, and more… o    Lead technician – Manage time, workload, and priorities for 10 technicians. o    Laptop diagnostics and repair – Dell, Sony, Acer, Hewlett Packard, Apple, and most other brands. o   Data back-up and recovery – Restored data, OS, files, images, mp3, videos, documents, drivers, and system configurations. o    In-Home Wireless Installations – 802.11a, b, g, and n wireless cards, routers, access points, signal boosters, and wireless printers for PCs, Laptops, MACs.
EDUCATION
	Green River College Auburn, Wa				                                  2005-2007 *References available upon request. <comment><USER2> Your skills section looks like it was made for matching keywords. What does it mean to know SMS? That's another thing: too many acronyms! RUP, WTT, ASI. Nobody's going to know what those are. (Side note: I was about to call you on Windows 8 experience, until I noticed your most recent job. ;)

Don't list the tools that you used; list your responsibilities and anything you did that demonstrates your skills.

<comment><AUTHOR> Thank you, I'll try to get it fixed. Appreciate your help.

</comment></comment><comment><USER2> <http://stevehanov.ca/blog/resume_comic.png>

<comment><USER3> that's awesome, sad, and yet oh so accurate.

I'd get rid of the obvious skills such as saying your skilled in windows 7 or you know how to install software, but it does depend on who's going to be reading your resume. If it's technical person, listing those would throw up red flags in my head.

</comment></comment><comment><USER4> Your resume specifies only years and not months, so saying 2010 - 2010 might mean you worked at a company for 1 day or 12 months. Makes it look like you are hiding the details.

Is your education last because you are trying to downplay that you do not have formal qualifications?

<comment><AUTHOR> Well most of my jobs have been 1 year contracts. I will put in the months I worked. And I put education last because it was only a couple of years of going to college before I started working and my career became my important than my schooling.

Thank you for your time to check out your resume and your input.

<comment><USER4> If your education refers to an incomplete qualification then it should explicitly state "incomplete".

<comment><AUTHOR> Thank you, I'll attempt to figure out a way of putting it on there that I have taken courses over the 2 years without actually getting my AA yet.</comment></comment></comment></comment>


Plum Head – Listen to web feeds on your smart speaker using Alexa, GA, and Siri - <AUTHOR> http://signup.plumhead.xyz <comment><USER2> Might not be a bad idea to put a little more effort into getting me to give up my email address.</comment>


Show HN: United States Wage/Job Growth Projections (Source: BLS.gov) - <AUTHOR> https://joboutlook.netlify.com/ <comment><AUTHOR> Just something I made for fun with publicly available BLS.gov data. The "Score" is not to be taken too seriously as any kind of weighting here is subjective.

Data source: Table 1.7 ([https://www.bls.gov/emp/tables.htm](https://www.bls.gov/emp/tables.htm))</comment>


Ask HN: my hacker news project - <AUTHOR>

I love Hacker news! The content is amazing; however, the interface lacks lot of functionality that I like having on Digg and it does not visually appeals to me. I have decided that will make a website that takes news from Hacker news and presents it with this user interface: http://peri.me/albums/aDemoUzer/77/original/01.%20Homepage.jpg
Here is proof of concept using different interface: http://hsbsitez.com/2B1A/index.php
If I were to build this website, would you be interested in testing it out? or would Paul Graham will block my site? <comment><USER2> There's enough of a load on HN as it is without every Tom, Dick, and Harry testing out his proof of concept by crawling this site. Since you wouldn't be able to vote or comment via your site, there really isn't a point to it. Happy to see you love HN though and I hope you'll stick around.

<comment><AUTHOR> It only makes 10 requests/6 minutes. I don't think that has even has a minor effect on the site. The point of the site is to make it easy to browse the news.</comment></comment>


Victor Lustig – Man who sold the Eiffel tower - <AUTHOR> https://en.wikipedia.org/wiki/Victor_Lustig <comment><USER2> Url changed from [http://factwide.com/2015/10/how-man-sold-eiffel-tower- twice/](http://factwide.com/2015/10/how-man-sold-eiffel-tower-twice/), which is cribbed from this.</comment>


How Politics and Bad Decisions Starved New York's Subways - <AUTHOR> https://nytimes.com/2017/11/18/nyregion/new-york-subway-system-failure-delays.html <comment><USER2> Subway workers now make an average of $170,000 annually in salary, overtime and benefits, according to a Times analysis of data compiled by the federal Department of Transportation

??</comment>


Bad Obamacare News Is Real. That Doesn't Mean Obamacare Is Dying - <AUTHOR> http://www.huffingtonpost.com/entry/obamacare-dying-unitedhealth_564e25dce4b00b7997f9dd0c <comment><AUTHOR> TL;DR; The insurance company is basically pointing out that the sickest people are costing them the most money.

</comment><comment><USER2> Another argument for making medical insurance and healthcare companies Public Benefit Companies which have more than the profit motive as their highest priority.</comment>


Jamglue (YC Startup) featured on NPR Morning Edition - <AUTHOR> http://www.npr.org/templates/story/story.php?storyId=10159619 <comment><USER2> Congrats on the publicity, guys.</comment>


Introducing Gofix - <AUTHOR> http://blog.golang.org/2011/04/introducing-gofix.html <comment><USER2> The best part about this, and what's different than 2to3, is that they implement API changes in gofix first, and gofix is the tool that's used to change the main source tree.

I like that. That is really nice, and it sets a process in place which continues to keep cost of language API changes low, something that the language designers will love.

At this point in Internet history, a language that's newly created and evolving has a sort of tipping point problem -- if nobody uses it, it won't improve. On the other hand, if a few too many people start using it, then suddenly you are screwing people if you make changes.

gofix seems like it can help with that, and that's cool!

<comment><USER3> Cool! Doesn't one of the Java IDEs (either IDEA or Eclipse?) have "public refactorings" (or something like that)? The idea goes something like this:

1) Enable recording of public refactorings

2) Apply a refactor which affects the public API

3) Refactorings are described in some big honking XML file

4) When you release a new version of your library, post it alongside that XML file

5) User downloads and executes the file against their codebase

</comment></comment><comment><USER4> I can't help but feel that go is destined to become the NBL, at least in the world of enterprise development where static typing and OOP have become assumed if not necessary.

Aside from having the backing of Google, it provides C-like low-level access for systems programming, a clean syntax, static typic, a consistently evolving set of business-focused APIs, along with some of the conveniences normally associated with dynamic languages.

Obviously no language or set of libraries is designed with perfect foresight. But the painful aspects of popular languages like Java or C++ could probably be improved upon or even solved tomorrow given zero regard for backwards compatibility with legacy code. Go's relatively short legacy, combined with smart considerations for existing codebases (like gofix) mean that fundamental changes to the language or standard libs can be made in order to perfect the language. All while the language's limitations are being revealed in real world usage by the (presumably) demanding needs of users like Google and Go's early adopters.

I don't mean to sound like a fanboy, especially as someone who has mostly drank the dynamic typing Kool-Aid, but I can't wait to see what happens with go.

</comment><comment><USER5> I've used gofix several times, it's quite useful. Now, if I didn't use the weekly snapshots instead of the release ones, I wouldn't have to use it as much, but that's the price of life on the bleeding edge :)

<comment><USER6> I second this -- yesterday I gofixed some third-party packages without even reading their code and without waiting for the authors to update them.

</comment></comment><comment><USER7> If the python project had something like that, the current python 3 situation could maybe have been avoided.

<comment><USER8> Python has 2to3 which is the same kind of thing

<comment><USER9> There are a lot of things 2to3 can't fix, so the user has to go back and change things by hand anyway.

<comment><USER8> That appears to be true for gofix too and probably any tool of that kind...

<comment><USER10> it's less of a problem for gofix because Go's static typing means it's easy to be much more precise about which methods and functions are actually being used.</comment></comment></comment></comment></comment>


Implementation notes about Henry Spencer's regex library - <AUTHOR> https://github.com/postgres/postgres/tree/master/src/backend/regex <comment><USER2> Wow. I remember Henry's contributions on comp.lang.c when the first ANSI standard for C was debated. His oft-used .sig line quoted Dennis Ritchie's objection to noalias.

example: [http://www- mice.cs.ucl.ac.uk/multimedia/misc/tcp_ip/8805.mm....](http://www- mice.cs.ucl.ac.uk/multimedia/misc/tcp_ip/8805.mm.www/0133.html)

</comment><comment><USER3> Henry Spencer: [https://en.wikipedia.org/wiki/Henry_Spencer](https://en.wikipedia.org/wiki/Henry_Spencer)

<comment><USER4> I'm old enough to have read tons and tons of his posts to usenix from back in the day. Lots of fun, very talented guy.

Anyone know what he is doing these days? Enjoying retirement?</comment></comment>


'Shockingly High' Number of Injuries at Amazon's Staten Island Warehouse - <AUTHOR> https://gothamist.com/news/new-report-shows-shockingly-high-number-injuries-amazons-staten-island-warehouse?mc_cid=e5fbebb334&mc_eid=54f18bcf45 <comment><USER2> It might be high there, but Troutdale, OR is #1. What a horrible company to work for. "The most dangerous facility, according to the piece, is Amazon's warehouse in Troutdale, Ore., which had a serious injury rate of 26 per 100 workers, more than six times the industry average."

[https://www.wweek.com/news/business/2019/11/27/amazon- wareho...](https://www.wweek.com/news/business/2019/11/27/amazon-warehouse-in- troutdale-under-scrutiny/)

<comment><USER3> > a serious injury rate of 26 per 100 workers

What? A worse than 1/4 chance you will be maimed? That seems absurdly high. Deep sea crab fishing off the Alaska coast is a safer profession!

<comment><USER4> The last time an article on HN about Amazon's warehouses being dangerous came out, a number of folks tried to argue that it's no big deal because they weren't dying. Thus, it's a safe place to work. High accident rates are perfectly fine as long as they dont die...

<comment><USER5> What a boring dystopia we've come to inhabit.

<comment><USER4> What's sad, all fictional portrayals of dystopias are struggles and fights. Like, "the good guys died in battle from being killed by the bad guys".

Now, if you speak up against FAANG or some other company making bullshit promises to "save the world", it's the people that stomp out the "good guys".

Don't get me wrong, it's clever on them. But it's sad and makes the coming decades unnerving if these companies aren't lassoed into control. Apple is especially guilty of the whole cult following thing where they can do no wrong in the eyes of their zealots. Their continued growth and profiting is a symbol not of parasitic nature, but of their divinity to these people.

Goddamn it, and I'm a red blooded capitalist. How do we resurrect Teddy Roosevelt, the old Bull Moose himself? We need Teddy...

</comment></comment></comment></comment></comment><comment><USER6> It's amazing to think that a decade ago, Amazon was touting injury rates around 3-4 in fulfillment centers -- lower than grocery stores. Their Delaware center was recognized as one of the safest in the country by OSHA.

I worry about Amazon workers in more business friendly places. If they are doing this in a regulation heavy city/state like NY, other places must be horrific.

<comment><USER7> > Amazon was touting injury rates around 3-4 in fulfillment centers

Amazon's response sort of touches on this, saying they've pushed for recording every incident, big or small. 3-4 could be from underreporting or from better working conditions (or both).

<comment><USER8> But Amazon's response is bullshit. The data is from government stats, and the reporting threshold is the same as it ever was (basically, if an employee is admitted to the hospital):

[https://www.osha.gov/report.html](https://www.osha.gov/report.html)

Amazon's PR people are pretending the high numbers are because they are reporting papercuts, but papercuts would be rejected for the government stats. This is "severe injury or death" reporting only.

"According to the report, workers whose injuries were logged by Amazon were each forced to miss an average of 64.04 days of employment."

Does that sound like papercuts? An average of three months off work, if they even return?

<comment><USER9> > The data is from government stats, and the reporting threshold is the same > as it ever was (basically, if an employee is admitted to the hospital)

This is wrong. It's from an analysis of Amazon's own incident logs that OSHA requires companies to keep (OSHA form 300A[1].) The government doesn't "reject" incidents from these logs. Additionally, a recordable injury is any of the following[2]

      - Any work-related fatality.
      - Any work-related injury or illness that results in loss of consciousness, days away from work, restricted work, or transfer to another job.
      - Any work-related injury or illness requiring medical treatment beyond first aid.
      - Any work-related diagnosed case of cancer, chronic irreversible diseases, fractured or cracked bones or teeth, and punctured eardrums.
      - There are also special recording criteria for work-related cases involving: needlesticks and sharps injuries; medical removal; hearing loss; and tuberculosis.

That's very different than "severe injury or death" only.

[1] [https://www.osha.gov/recordkeeping/new- osha300form1-1-04-For...](https://www.osha.gov/recordkeeping/new- osha300form1-1-04-FormsOnly.pdf)

[2] [https://www.osha.gov/recordkeeping/](https://www.osha.gov/recordkeeping/)

</comment></comment></comment></comment><comment><USER10> As we've seen in Indiana, Amazon is powerful enough that state legislators will bend some rules for their favor: [https://www.indystar.com/story/news/investigations/2019/11/2...](https://www.indystar.com/story/news/investigations/2019/11/25/amazon- indiana-governor-eric-holcomb-warehouse-accident-hq-2/4282653002/)

</comment><comment> dfc-agency There are unseen externalities for getting a tube of toothpaste for $5.99 shipped to your door in 24 hours.

Unfortunately, those externalities are our countrymen and women.

<comment><USER11> I can order hardware from a local store at 7 PM and have it delivered by 9 PM the same day here in Europe. They also have better prices than Amazon and no work safety problems. You can do things well or you can do them badly. There's no rule saying that good customer experience has to take a toll on your employees.

<comment><USER12> Yes, because the store is local rather than being a warehouse some distance away and the store has a limited variety of things available. I don't really see how this comparison is useful.

<comment><USER13> They'll probably have toothpaste though.

</comment></comment></comment></comment><comment><USER14> They're running employee testimonial ads about how great it is to work at their warehouses on national broadcasts pretty regularly now. That's all I needed to know that it's going downhill faster rather than slower.

<comment><USER15> That just means that they have a PR problem. It doesn't necessarily indicate a problem with their actual warehouse conditions, though there may be one; it's enough that people _believe_ there's a problem.

<comment><USER16> But these adverts raise even more suspicion. I had a very awkward feeling when I saw them the first time in the German TV. Everybody knows that adverts are the poster-child of lying. Why should this be different? And if those are real workers being interviewed (I doubt that) who in his right would voluntarily step in front of a camera and say "this is a great and safe place to work". If they are for real, I'd think they are coerced. If they are not for real, what's the point?

</comment></comment></comment><comment><USER17> Good thing everyboy took Alexandria Ocasio-Cortez to the woodshed over Amazon settling in NYC. We need more of these worker-maiming lower class jobs to keep the lower classes in their place!

<comment><USER18> That was regarding office jobs, not warehouse jobs.

</comment></comment><comment><USER19> > "Ensuring the safety of associates in our building is our number one > priority and we invest heavily in safety,"

Having pain medications on vending machines for their employees seems to me like scheduling to fix a leak after it rains.

</comment><comment><USER20> > Gizmodo first reported, the warehouse scored a 15.2 on its OSHA Incident > Rate, which compares the number of serious injuries to the number of total > hours worked among all employees at a given worksite. That figure is five > times greater than the national average for all workers, and substantially > more than rates found in other dangerous workplaces, such as coal mines and > sawmills. The average OSHA Rate for general warehouse workers is 5.2, or > roughly a third of the injury frequency at the Staten Island fulfillment > center.

I keep forgetting why I cancelled my amazon account but then I'm reminded

<comment><USER21> heh, this is pretty cyberpunk though

<comment><USER22> That's not a good thing! People have gotten mesmerized by the cool aesthetic and miss/forget the whole corporate hellscape aspect of cyberpunk.

<comment><USER21> "corporate hellscape aspect" \- that's exactly what I mean.

<comment><USER22> Ah ok, I read your comment with much more enthusiasm for it being a cyberpunk hellscape.

</comment></comment></comment></comment></comment><comment><USER23> We were warned not to feed man to the machine, yet that's exactly what we did. I guess everyone that died fighting for this country did so to create a bunch of billionaires and slaves to serve them. Our nation was paid for by the blood of its people, but somehow this debt is always forgotten. The people, by the right of sacrifice, deserve better than this.

<comment><USER24> By the right of sacrifice? Is this a veterans-only warehouse or something?

The US created a bunch of billionaires, but it also created the richest middle class. Let's cut back the drama a bit and maybe discuss a law to improve safety?

<comment><USER23> Drama? What about the epidemic suicides and drug overdoses happening in this country? What about the absolute destruction of rural communities by monopolies emboldened by the lack of antitrust enforcement? The people of this country are being abused in so many ways and nothing is being done for them. Laws aren't going to help this situation, it's our stinking attitude that's the problem. It's our complete disregard for human life that's the problem.

<comment><USER25> I may be off base here but this sounds an awful lot like perfect being the enemy of the good. Or, framed another way, idealism being the enemy of the pragmatic.

Waxing poetic about everyday tragedy is all well and good as a rhetorical device. However, it doesn't really do anything except to sow the seeds of division now does it? Especially when you cap the whole bit with the idea that it is thought that is wrong and not action.

And your proposed solution to this is effectively a paradigm shift in the perception of human value?

<comment><USER23> I'm sure you're the type of person that thinks poems are written to solve some sort of problem. Not all human communication is about expressing some solution to a problem. We can communicate sentiment and points of view as well.

</comment></comment></comment></comment></comment><comment><USER26> Any bets on when people who are "shocked, shocked" about Amazon's treatment of its workers are going to put their money where their mouth is and actually forgo the convenience of next day delivery & rock bottom prices?

Americans have it tough in so many ways (health care system, lack of public transit, kleptocratic federal government), it's sad to see us making it even worse for our fellow small-guys like this to buy ourselves some convenience and save a few dollars on consumer goods. (Notwithstanding the many people for whom home delivery etc. is a godsend without which they'd have a much more difficult life. It's complicated.)

We vote with our dollars and currently we are telling Amazon "this is OK, keep doing it" loud and clear.

<comment><USER27> This is a really bad take, voting with your dollar works when there's actually competition. Amazon has an effective monopoly, and we need people to vote with their vote for regulation to protect works.

<comment><USER28> Monopoly? Everything you can buy at Amazon you could buy before Amazon ever existed. And guess what? You still can.

Not even remotely a monopoly.

<comment><USER29> This is not what the parent is talking about. Amazon has a virtual monopoly over online buying and selling, with even other sellers having to sell their products on Amazon to reach customers.

What does Amazon do with these third-party sellers? It uses the sales data that Amazon collected for them to create cheaper products with Amazon branding, which are then suggested ahead of the third-party products. This is blatant anti-competitive behavior; effectively no one can compete with Amazon's online marketplace - not even the people _in_ that marketplace.

<comment><USER30> What's your source on Amazon using sales data to stifle competitors? I've read this claim a lot but haven't seen any clear evidence.

What prevents these folks who fund all the unicorns from starting their own Amazon competitor? You made a pretty bold claim that nobody can compete with Amazon, but it's not even clear how anyone is forced to use Amazon or sell on its website.

Literally nothing prevents you from standing up your own website and selling items. Consumers in most of the US can decide for or against shopping on Amazon, although many rural places have no options at all other than WalMart or Dollar General in terms of physical stores.

There's literally nothing Amazon offers that you can't get from a competitor, and often times at a better price in my experience.

<comment><USER29> This is missing the point. Amazon is acting anti-competitively towards the sellers currently using its platform. That is the problem, not that businesses could potentially set up their own sites. The conflict of interest is the problem; Amazon undercuts its own competitors using their data.

Maybe it is a better decision for a given business to not sell in Amazon. But that doesn't make Amazon's behavior any less anti-competitive. Many small-time sellers have no way to reach a large market without using Amazon to reach customers. Most people don't go to smalltimeseller.com to buy stuff; for a large portion of consumers, online shopping is synonymous with Amazon.

Here's source about the undercutting claim [https://www.wsj.com/articles/SB10001424052702304441404577482...](https://www.wsj.com/articles/SB10001424052702304441404577482902055882264)</comment></comment></comment></comment></comment></comment>


Sleep.js: JavaScript port of PHP sleep() function in 6 LOC - <AUTHOR> http://github.com/Horlahcoded/sleep.js <comment><USER2> This is a really bad idea. CPU burning while you wait. A better approach is setTimeout or requestAnimationFrame.

<comment><AUTHOR> Why @taf2 ? setTimeout is asynchronous, code after it will be executed before the function...requestAnimationFrame is for animations.

</comment></comment><comment><USER3> Why?</comment>