Why Wikipedia's A/B testing is wrong - <AUTHOR> http://synference.blogspot.com/2014/01/why-wikipedias-highly-successful-ab.html <comment><USER2> I won't comment on the virtues of bandit algorithms, but the author grossly mischaracterizes the requirements of a multivariate A/B test. Just do a regular 50/50 split and run a regression on the outcome using the observable characteristics as explanatory variables. Then take that model and feed the observables back in to get an individualized prediction as to whether A or B will perform better. You can bin continuous variables or you can including higher-order terms to achieve a polynomial fit. The data requirements really aren't that large.

I believe the author's confusion stems from attempting to model every interaction term, e.g. if you think there will be some extra effect to being Male _and_ using Windows _and_ being Swedish that is more than the "Male effect" and "Windows effect" and the "Sweden effect" considered individually.

I wrote a little article on implementing a simple multivariate A/B test from scratch:

[http://www.evanmiller.org/linear-regression-for-fun-and- prof...](http://www.evanmiller.org/linear-regression-for-fun-and-profit.html)

All you really need is a function that inverts a matrix and you're good to go. The cool part is that you can actually throw away most of the data that comes in from the firehose, just keep updating the Hessian until you're ready to invert it and bam, you have a model.

<comment><USER3> (Synference cofounder here)

That's a good blog post.

There are many ways to handle multi-variate data, with different tradeoffs. The linear model you describe in your post is one of the classic machine learning models often used. In the post, we address the shortcoming of such models in the subsection " _Trading off exploration vs. Exploitation._ "

As we point out, such a model ignores the trade-off between exploration and exploitation. That means that you have to gather all your data by randomly serving variants, before you can figure out the right variant to serve to each user.

That's very expensive in terms of serving-the-wrong-variant, if what you are trying to predict is conversion or revenue. By contrast, our method will quickly realise if a particular variant has a very high expected value for the current user (with the current user's particular combination of features), and so serve that user that variant - even if we aren't confident about other users.

So, like any bandit algorithm, we trade off exploration and exploitation; but further, we trade this off not just across the population as a whole, but on a personalised basis. That's a very important functionality that the approach you describe doesn't have.

Why is this an issue? Because if you have to gather data by randomly sampling, what if a certain sort of user doesn't appear very often? (e.g. lets say for a particular site, that's a 65 year old female from Canada). Do you randomly sample until you see a user like this? If so, you are randomly sampling for _a long time_. Or do you stop your exploration before you see rare users? This totally neglects your rarer users. What if rare users have unusual preferences, or are particularly valuable? (E.g. maybe your rare users are your biggest spenders - which happens.)

And, if you have high dimensional data, all your users are effectively rare (because you rarely see users with that _exact_ combination of features).

Furthermore, the 'gather data randomly' approach is also impractical if user behaviour is dynamic, as it often is in real-world settings. (i.e. the preference of your user base as a whole changes - maybe they've all recently read an article, so a different marketing copy now resonates with them)

Finally, sometimes those interactions you mention, between different features, are really important, and shouldn't be neglected.

I could go on - there's a lot of subtle issues that the approach we are using solves that simple multivariate testing doesn't handle, basically.

What we're doing is trying to provide an API that wraps all this knowledge up into a service that's easy for people to use.

</comment></comment><comment><USER4> "Highly successful" and "All wrong"? There's an oxymoron if ever I've heard one.

<comment><USER3> (Synference cofounder here)

It has successfully increased Wikipedia's donation revenue; however, some fundamental assumptions baked into the AB-testing approach are all wrong; this leaves a lot of money on the table.

Instead of trying to find a single best version for everyone, people should realise that different segments of their users are going to have different preferences. Machine learning can find these in an automated way, and there's a lot of value to be gained - but people need to see past the standard 'one size fits all' AB-testing approach to take advantage of it.

<comment><USER5> There's a huge difference between "all wrong" and "has some fundamental assumptions that could lead to non-optimal results if you wanted to push the results even further". The former implies, upon initial reading of the headline, that whatever Wikipedia is doing doesn't even give you a better solution.

A better headline might have been "Hidden assumptions in Wikipedia's A/B testing and how it could be improved". Also, why are we picking on Wikipedia here? Don't a lot of companies claim to do A/B testing and isn't this a problem inherent in all simple A/B testing?

<comment><USER3> AB-testing is much better than doing nothing.

But you have to be careful with any powerful tool, in case its success blinds you to its weaknesses. "When all you have is a hammer, everything starts to look like a nail". We think that's happening with AB-testing at the moment.

We think Wikipedia is awesome, and would love them to get more donations by using a more sophisticated approach.

Yes, most companies doing AB-testing, if they have the ability to personalise their user experience (i.e. they aren't trying to quickly find the single best UI) could benefit.

However, Wikipedia is a really good example to start with - the phrase 'Wikipedia needs those nickels' is a great example - resonates well with US donators, will probably work in Canada, but what about the UK? Australia?

It's obvious once its pointed out - but wouldn't it be better if the system automatically realises this? And considers all the combinations? That's our point.

</comment></comment></comment></comment><comment><USER6> I'm a big proponent of bandit algorithms (I'm a founder of Myna [http://mynaweb.com/](http://mynaweb.com/), something of a competitor to Synference). I think there is a bit of nuance here that is missing in the discussion.

Should Wikipedia use a contextual bandit system? Assuming the cost is equivalent, I say yes, for the following reasons:

\- they have a shedload of traffic, and then some; and

\- they have a limited time in which the campaign is running.

Let's address these in turn.

The regret bounds on contextual bandits are O(d sqrt(T)), where d is the dimensionality of the user profile you're using and T is time (see e.g. [http://arxiv.org/abs/1209.3352](http://arxiv.org/abs/1209.3352)). In contrast, the standard stochastic bandit has regret bounds of O(log(T)), which is much tighter. The summary is you need a lot more data to explore the bigger range of possibilities you've created. So I'm not sure contextual bandits are viable for smaller sites, but Wikipedia definitely has the traffic to make them work.

If your test is running for a limited time you can just delete the code when you're done. This has several advantages. People running A/B tests typically want to answer the question "what is best?" (To crush your enemies, obviously, but you can't usually say that) under the assumption that you'll then display the best variant forever. Contextual bandit algorithms don't answer this question; instead they minimise regret (equivalently, making you the most money) which makes more sense in the limited time setting. In fact there is no "best" with a contextual bandit -- the best variant depends on the user profile. This means you need to run the algorithm forever: good if you're collecting monthly subscriptions based on algorithm use, but bad if you're trying to manage a site with an exploding number of variants under test that you can never delete.

Ob plug: If you've found this post interesting you should consider signing up for the bandit course I'm running: [http://noelwelsh.com/data/2013/08/16/free- bandit-course-draf...](http://noelwelsh.com/data/2013/08/16/free-bandit- course-draft-outline/) It will cover contextual bandits, and a whole heap of other interesting stuff.

<comment><USER3> >The regret bounds on contextual bandits are O(d sqrt(T)), where d is the dimensionality of the user profile you're using and T is time (see e.g. [http://arxiv.org/abs/1209.3352](http://arxiv.org/abs/1209.3352)). In contrast, the standard stochastic bandit has regret bounds of O(log(T)), which is much tighter. The summary is you need a lot more data to explore the bigger range of possibilities you've created. So I'm not sure contextual bandits are viable for smaller sites, but Wikipedia definitely has the traffic to make them work.

Its definitely viable for smaller sites. Your argument there is about the bounds in a particular theoretical situation ("when the contexts are provided by an adaptive adversary.")

In a real world situation, your contexts are provided by the normal behaviour of your users, not an adversary. And, rather than the patterns being maximally hard to find, there'll instead be a lot of low-hanging-fruit - in terms of very obvious combinations of features that define different segments of users.

What's important is not the bound of the contextual bandit in a theoretical situation, but rather what performance it gives in 90% of business situations. In many situations, doing some personalisation to automatically find the most obvious user groups is a huge win.

And later, as the amount of data increases, the granularity of segmentation will effectively increase.

I agree with your general comments on bandits, and love what Myna is doing.

</comment></comment><comment><USER7> Implementing more complex machine learning methods isn't free, and neither is bying one, so the system should bring in dramatically more money just to cover its costs.

The company whose ad this post was is not showing much data about the difference between the solution it's selling and A/B testing. I wonder if there isn't any or if it is not supporting it's price?

<comment><USER3> I'm a cofounder of the early 2-person startup whose blog post this is.

Yes, it's currently difficult and expensive to bring complex ML to bear on this problem; we are trying to make that easy and cheap. The reason people adopted AB-testing was that it has a positive impact on the metrics they care about; we think the workflow can be easier and more valuable than AB testing. If its easy to use, the extra value should cover the cost.

We're currently focused on trying to communicate that this approach can create value - this blog post, written for a technical audience, is to give some intuition around how the approach works - does that make sense?

We genuinely believe in making it easy to use ML optimisation in this context - that's why we're working on this.

</comment></comment><comment><USER8> It's a minor point, and perhaps only a quibble, but the title is wrong.

Wikipedua's AB testing is correct in as far as the problem and approach have been defined. This article suggests an improvement.

Wrong is when they're trying to test for something but due to some error they aren't actually testing for what they think they are.

Something can be accurate/correct but also improvable.

<comment><USER9> That's because this post exists as attempted marketing for Synference.

<comment><USER3> Yes, its marketing, at least in the broad sense of the word - we think people should use contextual bandits more, and we want people to know that.

That's why we're working on this problem.

As I said elsewhere, we think AB-testing is a big improvement over nothing, but, like any powerful tool, it can blind people to its downsides.

Our blog title is designed to point out, succinctly, that we think the vanilla AB-testing framework is wrong for Wikipedia, as an easy-to-understand example. We believe that.

I notice that you volunteer for Wikipedia; I want to be clear, we're not trying to pick on Wikipedia here; I personally love Wikipedia. Its just a good well-known example of a successful AB-testing campaign, that we think could be way improved.

</comment></comment></comment><comment><USER10> It's awesome to see a Bandit-based algorithm being used. I think this is really similar to what is called Adaptive Sampling (also based on the Bandit problem), and it's been used in multiple contexts. My favorite has been in clinical trials where adaptive sampling was able to save lives.

Read more about the research done in Clinical Trials, and one of my favorite Professors here: [http://web.eecs.umich.edu/~qstout/AdaptiveDesign.html](http://web.eecs.umich.edu/~qstout/AdaptiveDesign.html)

</comment><comment><USER11> I found it was useful to brush up on how the multi-armed bandit problem works in order to understand this article. [http://en.wikipedia.org/wiki/Multi- armed_bandit](http://en.wikipedia.org/wiki/Multi-armed_bandit)

</comment><comment><USER12> This is a little silly. Of course every form would convert better if you perfectly customized it to the current user, no one really disagrees with that. But it doesn't mean it's always practical or worth the effort, or that the Wikipedia team have the time to tackle that at this moment.

<comment><USER13> Hey there, I wrote that post. It's a valid criticism you make, but the main point of the article was _not_ to pick on Wikipedia, which is actually way ahead of most other organizations in terms of testing its content.

We made a case-study Wikipedia because their banners are a well-known example of A/B testing. Plus, because their banners make tens of millions of dollars each year, and they have an entire team of people working on the A/B tests over a period of months, I think they have capacity to use something more sophisticated. Maybe, like you suggest, they're just focused on other aspects of the fundraising campaign. I guess the only way to know would be to hear from some of the Wikipedia team!

</comment></comment><comment><USER14> Really interesting concept, but what other information can you grab from a user who has never visited your site before?

There's the example of location, and I guess you can also get browser information (mobile device vs. desktop), but other than that, I feel there isn't that much in terms of context to work with with first-time anonymous users, which is the most common case for A/B testing.

Would love to hear how else you're classifying users, and what other buckets you're using.

<comment><USER15> You could divide articles into various categories.

Maybe people reading computer science articles prefer light blue, while people reading medicine articles prefer gold.

Of course, a quick look at Wikipedia's categories show there are many possible article categorisation schemes (are sneakers footwear like stilettos or sports equipment like cricket bats? Of course they're both), so this would introduce many additional variables - more than you could exhaustively A/B test.

</comment></comment><comment><USER16> You're disregarding the necessity of a "small non-profit" not wasting time running broken tests, which is not necessarily optimized by complicating the bejeezus out of everything.

</comment><comment><USER17> This is just advertising for their company, how does this algorithm actually work?

</comment><comment><USER18> stopped reading at "much of it is organized by volunteers" as that's not really true anymore.

I'm sure the A/B testing can be improved but not at all convinced how it's done now is "wrong".</comment>


Show HN: Free Risk Management Dashboard Template Based on NASA Risk Matrix - <AUTHOR> https://docs.google.com/spreadsheets/d/1plg8-6z90D5CRag9N9iRkwVicOUHpHwJ9AlmxGgr1iI/edit#gid=1815503436 <comment><USER2> Nice! It's good to see other examples. I am working on a new product (sadly spare time right now) and my first module that is a simple risk registry that will hopefully make it easier/less work for organizations and their boards to manage/review their risks.</comment>


Startupcraft 2 (a Starcraft tournament for Startups in SF) announced - <AUTHOR> http://www.startupcraftsf.com/1/post/2011/02/startupcraft-ii-february-26th-yes-for-real-this-time.html <comment><USER2> I really like the new division system this time around. I thought I was good, but got utterly crushed last time! HuK commentated my match though, which was amazing (even though he made fun of me).

<comment><USER3> HuK was commentating last time? Didn't notice that

<comment><USER4> yeah he was... was funny when he commented the beginner's 2v2 finals match. I don't think I knew what the hell I was doing, but HuK still made it sound a little interesting :-)

</comment></comment></comment><comment><USER5> hi, so, i'm a mediocre developer but if you notice at the bottom of my resume...masters league startcraft player. am i hired?

<comment><USER6> Only if you play 'random'

</comment></comment><comment><USER7> This needs to happen in NYC stat! Team Hashable representing.

<comment><USER8> Yes! I would absolutely participate.

<comment><USER9> +1 to that. Anyone want to take charge and organize a NYC version?

</comment></comment></comment><comment><USER10> Mahalo developers will win--hands down.

it's on.

<comment><AUTHOR> Are you coming up, Jason?

</comment></comment><comment><USER11> Is there a formal definition for "startup" here? I noticed that Flickr was on the list of previous attendees, can I represent a larger corporation such as Microsoft?

<comment><USER12> If you're lucky they'll be using the TechCrunch definition - whether you've made, sold for or raised billions you're a startup if you still move ad inventory!

</comment></comment><comment><USER13> Wait, what happened to the old one? What did I miss?

<comment><USER4> You missed a very hectic & crazy starcraft bracket. I think about 30% of those that signed up didn't show, but was filled with a bunch of random people that were on the waiting list and present. So if you don't sign up in time, you can probably still show up and get a few games in! I did get to play against spez in the beginner bracket (and lost).

It's too bad there won't be a 4v4 bracket this time.

</comment></comment><comment><USER14> There aren't any videos from the first one, are there? I don't see them on the site. If not, would it be possible to make them this time?

</comment><comment><USER15> team twilio in the houuuuuuuuuuuuuuse

</comment><comment><USER16> Call me when it's Street Fighter.

<comment><AUTHOR> We have an in-house street fighter league at Justin.tv actually, and play every day at lunch.

<comment><USER16> ...Seriously?

I'm in town through Thursday evening, and would love a chance to play anyone who works there. Email me or hit me on Twitter?

email@example.com @ryanmcgrath

</comment></comment></comment><comment><USER17> oh cool, the people I work for are sponsoring this. Shame I'm in the wrong country (not to mention I suck at Starcraft 2). Are there lists of the previous results, I can't find them and I poked around for a bit!

</comment><comment><USER18> I wish I was in the area :(

</comment><comment><USER19> Oh how I wish I could participate.

Sadly I'm from NH.

<comment><USER20> NH: like HN, but for shutdowns? (kidding)

</comment></comment><comment><USER21> Game on. #Disqus</comment>


The microarchitecture of a simple CPU - <AUTHOR> http://www.cdf.toronto.edu/~ajr/258/notes/micro/ <comment><USER2> Alternate version of the CSC258 course taught by Eric Hehner: [https://www.cs.toronto.edu/~hehner/258/](https://www.cs.toronto.edu/~hehner/258/)</comment>


Carbon fibre makes Australian debut - <AUTHOR> http://www.csiro.au/en/News/News-releases/2017/Carbon-fibre-makes-Australian-debut <comment><USER3> Currently, Boeing can not replace the 737 with a Carbon Fiber plane because there isn't enough Carbon Fiber produced on earth to keep up with the production line completing three aircraft a day. However, if enough Carbon Fibre could be created to logistically allow Boeing to move away from aluminum I am sure you would see a whole new level of demand for Carbon Fibre. Needless to say, the Carbon Fibre created would need to met Boeing spec, as Carbon Fibre does not have a single global quality standard, unlike aluminum (thank you WWII).

<comment><USER4> Why wouldn't Boeing make their own? They certainly have the money, the experience and the time to invest in such a technology if it is as critical to their success as you suggest.

<comment><USER5> Probably doesn't scale as well as aluminium; it'd be a lot more expensive to produce, as carbon fiber is very labor intensive. It's the same reason why Apple isn't likely to switch to ceramic phone bodies - the aluminimum milling facilities are already scaled up to extreme levels, with hundreds if not thousands of machines milling aluminium to keep up with demands.

<comment><USER6> see: [http://atomicdelights.com/blog/why-your-next-iphone-wont- be-...](http://atomicdelights.com/blog/why-your-next-iphone-wont-be-ceramic)

</comment></comment></comment></comment><comment><USER7> I grew up dinghy sailing in Maine and some of the more affluent kids would have carbon fibre parts on their dinghies.

I remember going to one of the shipyards (I think Vanguard... I can't recall) and watching them make carbon fibre parts. I was rather shocked how labor intensive it is. Maybe not labor intensive is the right word but it just takes a long time to make a single pole or mast.

If I recall you take long sheets of carbon fibre and wrap around a mold and wait a little bit and then cure it. You have to do this like 40 times.

I am probably missing a bunch of details as I was fairly young but I do remember it takes a long time to make carbon fibre parts.

So even if carbon fibre is produced at scale the molding and producing of actual parts probably has to be sped up as well?

<comment><USER8> Similar experience, but in Florida. At least for most of the one-design classes, the total weight of the boats and the dimensions of the important parts was set by class rules to pretty narrow tolerances regardless of construction materials.

Of course with better composites you got more stiffness and could also put the weight in the most advantageous position.

</comment></comment><comment> gene-h Sure, the fiber itself maybe cheap, but processing that fiber into different shapes still costs a fair amount of money. Carbon fiber layup is still a fairly labor intensive and somewhat wasteful process.

<comment><USER9> Layup is very expensive and labor intensive yes. And most layup methods require expensive jigs.

You also have to use expensive, stiff epoxy resin if you want to have the mechanical properties of carbon fiber. Fiberglass is typically laid up in cheaper polyester resin since glass fiber are stretchier than carbon fiber.

<comment><USER10> > _Fiberglass is typically laid up in cheaper polyester resin since glass > fiber are stretchier than carbon fiber_

Would you mind expanding on that? I'm curious around the barriers to mass- produced carbon fiber.

<comment><USER9> Carbon fiber _can_ be laid up in polyester resin but it doesn't make sense to not match capabilities between the resin and the reinforcement.

A glass fiber/polyester panel will be no worse than a carbon fiber/polyester panel. So if you choose polyester you'd be a fool to use a reinforcement more expensive than glass fiber.

So as a practical matter, the decision to use carbon fiber reinforcement implies the use of epoxy resin.

</comment></comment></comment></comment><comment><USER11> The surprise I felt regarding carbon fiber production coming to Australia constituting news in 2017 reminded me of Gibson's law: The future is already here -- it's just not very evenly distributed.

</comment><comment><USER12> The is interesting timing!

The 2017 Formula 1 season gets underway in Melbourne on March 26[1]. Formula 1 regularly uses some of the most advanced technology[2], and they make heavy use of carbon fibre. Since this was patented, the methods etc. should now be public. So, once the licensing stuff is worked out, F1's carbon fibre suppliers can rework their

The benefit to F1 is in teams being able to apply changes faster, taking lessons learned from Melbourne and applying them as quickly as possible, without having to wait as long as they do now for new parts to be constructed.

I'm looking forward to this!

[1]: [https://www.formula1.com/en/latest/headlines/2016/11/f1-fia-...](https://www.formula1.com/en/latest/headlines/2016/11/f1-fia- confirms-2017-calendar.html) [2]: At least, what they can get away with! Some examples from the past: [http://www.redbull.com/us/en/motorsports/f1/stories/13316206...](http://www.redbull.com/us/en/motorsports/f1/stories/1331620648540/5-technical-f1-innovations)

<comment><USER13> > ...without having to wait as long as they do now for new parts to be > constructed.

The comment implies that the time it takes for prototype teams to respin is largely driven by the availability of raw materials...I'm simply not following the logic.

<comment><USER14> On occasion, sourcing specialty materials is truly the issue in racing. When race season starts, many fluids, and composite products are sold out for months. Many are very bespoke to racing and aerospace, so lead time may be years. Using our own processes and layup is often as much about availability as function. For F1 budgets, this may be less of an issue.

<comment><USER13> > For F1 budgets, this may be less of an issue.

That's the lingering thought in the back of my mind that kept me on the skeptical side. Thanks for chiming in.

</comment></comment></comment></comment><comment><USER15> _" The wet spinning line machinery takes a sticky mix of precursor chemicals and turns it into five hundred individual strands of fibre, each thinner than a human hair."_

Even if I am willing to believe they are actually counting the strands (could be the case, especially if they are really long), I can't believe that this machine produces exactly 500 in each batch, so I suspect something is missing after "five hundred". "500 micron long strands", "500m of strands a minute" or something like it?

Also, regardless of whether a unit is missing, how does this compare to the competition?

<comment><USER16> 1\. I am pretty sure they can count the strands exactly. What happens is that material akin to a tar pitch is extruded through tiny die holes, each hole generating one strand... if there are 500 holes, then 500 strands at a time are produced.

2\. Re comparison to competition: I have visited a carbon fibre production plant in France. They use a different process, and do not extrude the fibres on site. Instead they buy polyacrylonitrile (PAN) fibers - these are used in their own right to make "acrylic" cloth, but there they are the raw material. They convert that into carbon fibre with I think tens of thousands of strands at a time. So, 500 strand production line seems to be sub-commercial.

</comment></comment><comment><USER17> Happy to see this come to fruition after all the recent budget cuts.

</comment><comment><USER18> Carbon fiber should be dirt cheap, then?

[https://phys.org/news/2016-03-ornl-low-cost-carbon- fiber.htm...](https://phys.org/news/2016-03-ornl-low-cost-carbon-fiber.html)

"Researchers at the Department of Energy's Oak Ridge National Laboratory have demonstrated a production method they estimate will reduce the cost of carbon fiber as much as 50 percent and the energy used in its production by more than 60 percent."

</comment><comment><USER19> Huh? The actual article is titled "Australia for the first time has the capacity to produce carbon fibre from scratch and at scale, thanks to CSIRO and Deakin University." This seems to be Australia getting its first carbon fiber plant, not a technical breakthrough.

The carbon fiber industry had overcapacity in 2013, but demand is now up a bit.[1] The biggest producer is Toray (Japan), but there are lots of others. Wind turbine blades are starting to use carbon fiber. Automotive isn't yet a volume user, but the fiber industry is struggling to get in the door.

Right now, the limits on using carbon fiber seem to come from the problems in making stuff out of it. The process described in the parent article ends with a spool of thread. As of 2014, that sold for about $20/Kg, which is cheaper than 3D printer filament. Making an auto part out of that cost $80/Kg. Some new technology was supposed to bring the manufacturing cost down.[3] But as of two years ago, the cost of the base material wasn't the limiting factor on use.

[1] [http://www.compositesworld.com/articles/supply-and-demand- ad...](http://www.compositesworld.com/articles/supply-and-demand-advanced- fibers-2016) [2] [https://blog.carbonfibergear.com](https://blog.carbonfibergear.com) [3] [http://www.reuters.com/article/sgl-fibres- idUSL5N0MP2RP20140...](http://www.reuters.com/article/sgl-fibres- idUSL5N0MP2RP20140328)

<comment><USER20> I, too, can't see from the CSIRO article how costs will crash. It looks like they just discovered a wet spinning process and patented it.

Maybe the OP's article theorises why this may be the case, but I can't load it. Is it just that it's no longer purely a trade secret among facilities?

<comment><USER21> Maybe they mean that, in Australia, it will crash since they won't have to pay import costs anymore?

<comment><USER20> You could be right. My completely uneducated guesses would be, in order of likelihood:

\- an open patent rather than trade secret means that many manufactuers can make it with the comparitively lower barrier to entry of a patent licence rather than inventing a process internally

\- what you said

\- Their process is somehow revolutionary (pun not intended) and makes it cheaper to manufacture

I'd be interested if anyone knows more!

</comment></comment></comment></comment><comment><USER22> Original source (that's not being hugged to death): [http://www.csiro.au/en/News/News-releases/2017/Carbon- fibre-...](http://www.csiro.au/en/News/News-releases/2017/Carbon-fibre-makes- Australian-debut?featured=F29EDEB1728C4A92B579C7A5DC28BAD5)

<comment><USER23> And should it be hugged to death: [https://web.archive.org/web/20170221071725/http://www.csiro....](https://web.archive.org/web/20170221071725/http://www.csiro.au/en/News/News- releases/2017/Carbon-fibre-makes-Australian- debut?featured=F29EDEB1728C4A92B579C7A5DC28BAD5)

</comment></comment><comment><USER24> Space elevator, here we come!

<comment><USER25> Unfortunately I don't think carbon fibre Is even nearly strong enough.

</comment></comment><comment><USER26> Is this article targeted at children? Too many adverbs for me.

<comment><USER27> I think it was written for Australians

<comment><USER28> You're both getting down voted, but as an Australian I think you're both onto something here, quite interesting. Its definitely the case that Australian tech people tend to overly bloviate when it comes to national pride - <USER2> article triggered me extensively in that regard. Australians bloviate.

<comment><USER29> It is written by PR people ("Corporate Communications") not engineers. It is deliberately pitched in a non-technical and self-inflated way, presumably on the assumption that members of the public enjoy a jingoistic self- congratulatory tone. Maybe that is the only way to get that kind of press release into the press.

</comment></comment></comment></comment><comment><USER30> potential patent troll

[https://www.reddit.com/r/technology/comments/5v8joz/mass_pro...](https://www.reddit.com/r/technology/comments/5v8joz/mass_production_of_carbon_fibre_solved_by_csiro/de0f5at/)

based on [https://arstechnica.com/tech-policy/2012/04/how-the- aussie-g...](https://arstechnica.com/tech-policy/2012/04/how-the-aussie- government-invented-wifi-and-sued-its-way-to-430-million/)

<comment><USER31> > potential patent troll

I must be confused. How are they a patent troll if they actually do the the R&D part of the patent? A patent troll would buy the filed patent and just spend money enforcing it to collect cash...

I am a bit biased because I'm Australian and fully support the CSIRO. They're a non-profit entity[0] - their mandate isn't to make money. The money they do collect from royalties is rolled back into their research.

[0] In that they don't produce a profit for stakeholders. They're a government agency though, not a registered charity.

<comment><USER32> I believe the contention in the WiFi case is whether CSIRO really did do the R&D actually used in WiFi, or if it just happened to get lucky with a patent. Of course, they presumably did vaguely do some sort of R&D in this space given they were awarded a patent themselves, rather than buying it off some other entity, like a patent troll would.

<comment><USER33> Considering how messed up the patent system can get, it's really confusing how this one instance is where they decide to get worked up about. At least CSIRO seems to do legitimate research in the area, and it is not hunting down small scale players to make them pay up for questionable patents. This is the really abusive part of current patent law, not which research org or corporation gets "blessed" by the patent office.</comment></comment></comment></comment>


Ask HN: How to deal with a niche idea, that can be part of an existing service? - <AUTHOR>

I'm debating whether I should run-off with an idea I currently have in mind. What I'm afraid of is that before I gain a solid base of users, this idea could easily be implemented by a well established company who has the infrastructure already set up. What do you do when you have a specific niche idea that can easily be grabbed, implemented, and released by an already established company? The only options I suppose would be:
1) Do nothing about it.
2) Run wild with the idea.
3) Give my idea to an established company and see if i get anything out of it(maybe they'll at least say thank you).
I've been thinking about if for the last week without coming to a decision, maybe you guys have been in a similar situation and can give me advice.
Thanks in advance. <comment><USER2> Get to know the companies you are going to compete with and their products. You're interested in their culture and ideology. See how they used to react to new threats, and whether given the scale and scope of their products they would consider you a threat to their business.

</comment><comment><USER3> Why not execute on your idea, get users, then contact a company that you think could also copy your idea and strike a partnership/advertising arrangement with them?

<comment><AUTHOR> This sounds like a great idea, but I still have the same question floating in my mind, why would a company want to do such thing when they can just imitate my service and release it themselves? (I say this because I know they have the infrastructure to do so) That's what's bothering me.</comment></comment>


Geek Transportation Systems - <AUTHOR> http://www.codinghorror.com/blog/2011/06/geek-transportation-systems.html <comment><USER2> There is a chap who commutes through central Edinburgh every day on a _unicycle_ \- including the cycling over the narrow Dean bridge and up the fairly steep Mound hill between the New and Old towns.

<comment><USER3> I'm in Portland, Oregon, and, if this town is any sort of trend leader, I think unicycles are the next fixed-gears.

</comment></comment><comment><USER4> For less than 4 kilometers (2.5 miles) I almost always walk, unless I'm in a rush. It' s great habit to have, and my main source of exercise. For greater distances, I generally use public transportation.

</comment><comment><USER5> I'm lucky enough to cycle to work across London (6 km/4 miles in each direction) for my commute and I certainly wouldn't consider a folding bicycle or a scooter. A normal bike works well and I can have paniers on the back for carrying shopping, books, etc.

If you need to go geek then you can have all sorts of electronics on your bike to track progress, add a Polar heart monitor, get an app for your phone...

</comment><comment><USER6> Those little tiny pedal arms on the Strida... they look like a lot of work and not much velocity. I've gotta try one anyway, because it's just such a cool concept.

P.S. Where would you ride something like the Strida? Surely not the sidewalk, but can you ride fast enough for the street?

<comment> T-hawk I have a Strida and I love it. I've used it as my commuting vehicle for years - a mile to the subway, half mile from the subway to office. It's not any more work to pedal than a larger bike, other than having only the one fairly low gear.

Yes it rides fast enough for the street. The belt drive is so smooth that it's pretty easy to hit 120-150 RPM on pedaling. (Most riders on a full-size regular geared bike use a cadence somewhere between 70 and 90.) And the excellent brakes, short stopping distance, and short wheelbase for maneuverability make it an amazing vehicle for navigating city traffic.

I do even ride the Strida on sidewalks sometimes for a handful of blocks when the road is too crowded. Its agility is almost more like a scooter than a full size bicycle. An alert rider poses virtually no danger to pedestrians, and they're usually caught by the novelty more so than mad at a cyclist on the sidewalk.

</comment></comment><comment><USER7> Just wanted to know if I was the only one to have a motorbike as my preferred means of transportation.

</comment><comment><USER8> The ultimate transportation hack must be motorcycle and scooters. I was surprised to see so few of these in my travel to California. Given the climate, it should be a no brainer. Can anyone shed some light on why they are not popular.

<comment><USER6> I've been in four accidents. One was my fault, and the other three involved people slamming into my car while it was stationary. Of the three where it wasn't my fault, once my car had its front bumper, hood, and both fenders crumpled, once it just slid six feet and had a tire blown out, and once it was sandwiched between two cars and totalled. I wasn't hurt in any of those cases, but I'm betting if I was on a motorcycle or a scooter, I would not be walking right today if I was walking at all.

<comment><USER8> Is filtering through illegal in US? Motorbike riders in the UK generally filter through and stop at the front of the quee, which reduces the risk of stationary accidents.

<comment><USER9> It's only legal in California.

I wish more people used motorcycles here too (I'm in LA). But traffic moves much faster than, say, east Asia (where motorbikes are common). But those bikes are like 100cc. Here you need 600cc or more to handle varying speed conditions (0-75mph/120kph). And I could not imagine a lot of people I know feeling comfortable with that much power on two wheels.

</comment></comment></comment></comment><comment><USER10> As of late, it seems to me that CO has turned into a blog where Jeff surrounds Amazon affiliate links with sometimes semi-interesting stuff (SSDs, scooters, his latest rig). Nothing against the guy though.

</comment><comment><USER11> Has anyone tried a Brompton? They're popular in London. But London is quite hilly - I'm interested to know whether you need the gears or not, nad whether the extra weight makes them worthwhile.

</comment><comment><USER12> You can't stand up and pedal? Sounds pretty sketchy to me.

<comment><USER12> Wow, downvoted. Not that I care too much about my Precious Karma, but whoever downvoted that must know nothing of bicycles. I have never, ever ridden a bicycle where you could not stand up and pedal it for a stretch. And that includes crusty old around-town bikes that have seen their best days long ago.

Put in other terms, I find it hard to believe that the power output is that different standing compared to sitting - if you have strong legs, you can sink some serious power into a bicycle while seated.</comment></comment>


Unreal Engine in JavaScript/HTML5 – Citadel demo - <AUTHOR> http://www.unrealengine.com/html5/ <comment><USER2> I love the fact that Mozilla keeps pushing javascript to its limits. They seem to be doing a lot of things really well lately, this is awesome!! Plus you have Firefox OS, which pushes web-standards to native mobile. Now I just wish the devtools would get up to paar with those on chrome/chromium and I'd be switching back to FF in a heartbeat.

I wish google would stay on board with JS since they have the engineering power to do a lot in this area, but to me it seems after V8 they've kind of abbonned JS in favor of Dart (As oppossed to supporting asm.js). For instance, I just did the "try anyway" in chrome 26.0 linux and everything crashed. Did anyone get it working in chrome?

<comment><USER3> From the FAQ:

        - Chrome currently crashes, but is expected to be resolved by the Chrome team soon.

<http://www.unrealengine.com/html5_faq/>

<comment><USER4> I wish I had read that first :/

Crashed my whole system

Chromium 25.0.1364.160 Ubuntu 12.04

<comment><USER5> How? Couldn't you even drop to another TTY and kill the process?

<comment><USER6> I'd bet money OP didn't even try or doesnt know how to do that.

<comment><USER5> This is what I thought to.

I've never once had an application in Linux crash the whole OS - or at least not so long as I've had physical access to the machine (I've had rouge database requests brick a server before because it took down sshd - but that's a different story)

In fact on the laptop I'm on now, the parent link crashed Firefox. But it OOM'ed and got killed before I even noticed there was a problem (and that's on a beefy desktop environment with compositing enabled too)

<comment><USER7> You should tell your database to go easy on the rouge - a _lady_ keeps it subtle.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> This is so awesome that I never want to see another WebGL demo again. This one proves it; you can make awesome games in WebGL. From now on I only want to read about non-demo WebGL games that are in development with a real release date.

<comment><USER9> The biggest issue I see is with distribution.

For example:

I'm not a fan of DRM, but there's nothing preventing anyone from downloading the game and selling/giving away copies with ease.

<comment><USER10> I hate how DRM is being thrown around as a "turn-key" solution against piracy, because it's simply wrong. What's stopping anyone from selling copies of heavily DRM'ed - but cracked - games right now? Nothing.

Actually, WebGL games would be a lot more secure from piracy, because they would be online, and you could easily stop 99% of the piracy by requiring a login for the game. It's basically like the Diablo 3 model, only better. Because Diablo 3 should be easier to crack and play on private servers (not sure if even that has happened yet).

Making an "online game" instead of a native "PC game" is the best way to stop most of the piracy.

<comment><USER11> Diablo 3 is definitely not easier to crack. You need to know x86 assembly, and on top of that beat Blizzard's reflection-ish protection that checks for modified code. JavaScript is much easier to deal with.

In addition to that, just cracking the Diablo 3 client isn't enough, because a lot of the game logic runs exclusively on the server. For example, even with tens of thousands of test runs of a specific monster, you still won't know the correct item drop probability table, because that table is never sent to the client. Only the result of the server-side dice roll checked against the server-side loot table.

<comment> __--__ >Diablo 3 is definitely not easier to crack.

Moot point. Any client software can and will be cracked, regardless of how difficult it is to crack. Which is mtgx's point - online games are easier to secure because you can put logic and validation on a remote server. No DRM needed. Your example of Diablo 3 only proves his point. It's not the DRM that makes Diablo 3 hard to crack - it's the server side logic and validation.

</comment></comment></comment></comment></comment><comment><USER12> If you aren't on firefox, you can enjoy the same demo in flash.

<http://www.unrealengine.com/flash/>

<comment><USER13> thanks for this.

</comment></comment><comment> matthew-wegner This is actually very old demo ported to the browser. The original Epic Citadel was/is an iOS demo released in September 2010. It runs well on an original iPad: <http://en.wikipedia.org/wiki/Epic_Citadel>

Comparatively, this runs a little sluggishly on a MacBookPro8,2 (early 2011).

<comment><USER14> "very old"

<comment> matthew-wegner Heh, sure. But it was a demo for the _original_ iPad, which is easily a quarter of the performance of current iOS devices.

<comment><USER15> Dude. (sorry)

This is Unreal Engine, with physics, cloth simulation, particles, light & glare effects. It's not C++ on Native Client or a plugin, it's _running in javascript_. Just yesterday you couldn't draw a circle on a 2d canvas at 30fps.

<comment> matthew-wegner It's probably a subset of the Unreal Engine.

And it only works in Firefox, and even then only very well in Firefox Nightly.

Those points aside, though, this _is_ pretty amazing. I fully expect multiple engines to target HTML5 in the same way Unity/Unreal/etc were cross-compiling for the Flash runtime. It's just not quite there yet...

(And it's good that demos like this exist to put pressure on browsers to fully support them).

<comment><USER16> No, not a subset. It's UE3 cross-compiled by Emscripten from ~1MLOC of primary C++ source. Some configury to use OpenAL (mapped to WebAudio), and of course OpenGL-ES (mapped to WebGL).

/be

<comment><USER17> It's really not. It's the UE3 Mobile Engine. Which while it's compiled from the same C++ source, It has enough things stripped during compilation to not really be considered 'full UE3' custom shaders for instance are not supported.

And atop of missing some things from UE3, Citadel is designed specifically for limited devices.

While still a very impressive feat, let's not confuse this with running GoW or The Samaritan demo in the browser.

<comment><USER18> As mentioned in other comments, we also ran other UE3 games, like Sanctuary. We demoed that in a booth at GDC last month where people could play it. That's a full UE3 desktop game with bots, AI, normal FPS mouse control (not tablet- like), etc. etc. You can see it in action in the 2nd half of this video

[http://www.youtube.com/watch?v=BV32Cs_CMqo&feature=youtu...](http://www.youtube.com/watch?v=BV32Cs_CMqo&feature=youtu.be)

And it's using the _exact_ same code as this demo. You literally use the same compiled JS, and just swap in a different set of game assets.

<comment><USER17> If so, something like that would be a much more impressive demo. Citadel just frankly isn't that impressive.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> Not directly related, but highly relevant: IE seems to be getting WebGL support: [http://www.theverge.com/2013/3/30/4165204/microsoft- bringing...](http://www.theverge.com/2013/3/30/4165204/microsoft-bringing- webgl-support-internet-explorer-11-windows-blue)

</comment><comment><USER20> Ran this on a laptop on Firefox 20 (stable) with Bumblebee and it's surprisingly impressive and smooth.

I have a gaming desktop at home that runs all new games at 50+ FPS, but for some reason looking at graphics that a late-era PS2/early PS3 game would have _in a browser_ is more impressive than running a game like Crysis 3 for the first time.

</comment><comment><USER21> What's the point of having these massive javascript virtual machines & webgl systems in our browsers? How does having a separate implementation of a specification help us build a safer, more open web?

My theory is that Mozilla and Google are in a race to develop the most advanced html5 engines because they know that if a killer html game or app gets developed in their browser, everyone who wants to use the app will switch to them while the other implementations tries to catch up.

It will also prevent new browsers from trying to pop up, unless they simply fork and try to keep up with one of the two major engines. Google and Mozilla know they can outpace any competitors that are trying to innovate in the web space by having the "latest" html5 features integrated. In example, unless Microsoft pours a bunch of money into it, or Internet Explorer forks Mozilla or Google, they can pretty much count that competitor out.

Is this supporting an open web?

What's the problem with focusing on open source plugin virtual machines that can work in every browser regardless of that browser's version?

<comment><USER22> > What's the point of having these massive javascript virtual machines & webgl > systems in our browsers?

Because the safety model of JavaScript has been sound for the past few years.

> How does having a separate implementation of a specification help us build a > safer, more open web?

What seperate implementation of what specification? If you're referring to asm.js, asm.js is just JavaScript, any browser can run it. The "specification" is a gift to other engine implementers to super charge evaluation of compliant code.

> Is this supporting an open web?

<http://asmjs.org/spec/latest/> <http://code.google.com/p/v8/issues/detail?id=2599>

</comment></comment><comment><USER23> This ran surprisingly well on my 3+ year old Asus laptop with integrated graphics. By surprisingly well, I mean I doubt I ever got over 30 fps (probably 15 fps on average) but there were little to no hitches when loading new areas.

I wouldn't be able to play a fast paced shooter like this, but I could see it being more than tolerable for playing a slow paced role playing game or something in the browser, with the added ease of connecting with other players, possibly MMORPG-style.

On a side note, it'd be nice to make it capture the mouse instead of having to drag it.

</comment><comment><USER24> Controlling the spectator is remarkably bad. I hope this is not how i am supposed to play video games. Even Dead Space 1 is better, and that was so bad i could not stand it for more than 30 minutes.

<comment><USER25> Well, unusually, this demo isn't using the Pointer Lock API to do normal FPS- style controls. It's fully possible to do them, but this demo doesn't for some reason.

<comment><USER26> It's using the control system from the iOS version, which is what Epic Citadel was originally a demo for.

<comment><USER25> I noticed that. It makes sense, since iOS is an OpenGL ES platform and WebGL implements OpenGL ES.

<comment><USER27> For what it's worth, I was able to navigate fine using WASD and the arrow keys on my laptop

</comment></comment></comment></comment></comment><comment><USER28> The "Compiling Javascript" loader takes _way_ too long (at least on my system) to not give any indication as to how long I will wait or whether it's still doing anything. At least a "this might take up to X minutes".

Demo itself ran halfway ok, clicking on 'Benchmark' (which I had to guess was in the upper pulldown) immediately froze everything for me (Firefox on Kubuntu).

Still: I do appreciate a demo that even kinda-sorta works on gnu/linux.

<comment><USER18> > The "Compiling Javascript" loader takes way too long (at least on my system)

It is actually both downloading and compiling during that time, and probably spending far more time in the download.

It would be nicer if the text said "retrieving code" as opposed to "compiling code" at that point.

edit: looks like the demo site was just updated, the message is better now :)

</comment></comment><comment><USER29> I just want to emphasize for Chromium users that if you try to run this, it might crash, and crash hard. I had to reboot my system.

</comment><comment><USER30> I actually just installed Firefox for that. Totally worth it.

</comment><comment><USER31> What continues to impress me about these demos is that JavaScript has gone from "not useful for much more than form validation" to "can compile and execute a 52 MB block of what's basically assembly code".

52 MB of JavaScript is... a lot (even if half of it looks like data tables of some kind)

</comment><comment><USER32> I'm on a pretty old laptop and this runs extremely well on Windows 7 (using Nightly). I also tried it on Xubuntu 13.04, but I couldn't get it to run (I tried it on Chromium and Firefox).

As for the demo, I'm stunned. It's incredible.

<comment><USER33> I'm on a pretty new (if a bit budget) desktop, and during the benchmark I had the FPS drop to 16 during the flythrough of the streets :\

Still, it's pretty amazing.

</comment></comment><comment><USER34> Definitely awesome, still a while before this is usable in the market (across many browsers) and load times seem longer than Unity/Flash. I can't wait until browser support of emscripten/asm.js is better.

</comment><comment><USER35> Some stats from the benchmark running Windows 8 and Ubuntu 13.04 on Asus Zenbook UX21A (Intel HD Graphics 4000, Intel Core i7 3517U, 1920x1080):

        OS            Browser      Avg. FPS    Min FPS
        Win8          Fx 20        26          16
        Win8          Fx Nightly   46          34
        Ubuntu 13.04  Fx 20        17          16

For me those numbers tell that if ams.js does not catch on in other browsers, browse based games just will not fly. Also, graphics drivers on Linux still suck and that's why I still need to double boot.

</comment><comment><USER36> It doesn't work for me. I downloaded Nightly using the provided link, but when I open the URL it still says unsupported browser. It also doesn't have the option to 'try anyway' like Chrome does.

<comment><USER25> Upgrade your graphics drivers.

</comment></comment><comment><USER37> I'm impressed. But I wish they modeled the citadel after Hogwarts.

</comment><comment><USER38> On Firefox 20 on Windows on my 2500k with a 7970 it seems CPU bound and can only achieve 43fps benchmark at 1920x1200, while having some clear artifacts from lack/too little texture anisotropy on the floor and antialiasing issues.

Also, the textures are not fully detailed when looking directly at the floor and walls.

If this is supposed to be a full quality benchmark (ala Unigine Heaven when it came out), it needs to improve.

<comment><USER39> FF 20 does lack the asm.js integration.

<comment><USER40> Firefox Nightly is indeed much better CPU-wise, keeping 60fps with around 80% single core usage at most.

However, it still has poor graphics, with low quality textures, low/nonexisting anistropic filtering and no AA or bad AA.

Also just noticed that stuff like bracers that should be rounded (using GL 4 hardware tessellation) is not and has visible polygonal edges.

Not really a great showing as a demo.

<comment><USER41> You got a better demo that runs in a web browser without plug-ins?

</comment></comment></comment></comment><comment><USER42> Not working on chrome? UNREAL!

</comment><comment><USER43> Dear lazyweb,

Is anybody able to get it running on android? The nightly has both asm and webgl but is showing up as unsupported (and not just doing UA sniffing).

<comment><USER43> I asked via twitter:

<https://twitter.com/vvuk/status/330119715546624000>

        some known bugs that cause us to use way too much transient memory while loading. Fixes incoming.

</comment></comment><comment><USER44> Aw yea that was so cool! It slowed down my box to a dying crawl and then asked to store a bunch of data on my local machine! Nice!

<comment><USER13> try the flash version. it's pretty goddamn awesome.

</comment></comment><comment><USER45> Very impressive. As an FYI - You don't need to click on the screen; ASDW for movement and arrow keys for screen rotation works.

</comment><comment><USER46> I love the "try anyway" option!

<comment><USER47> Doesn't work on latest stable Chrome on OS X though :(

</comment></comment><comment><USER48> That crashed firefox on my macbook pro even faster than I thought it would.

</comment><comment><USER49> This is awesome! I wished I could run cause its slow to walk around but then I discovered you can alt-tab to another window and keep the event for W active

<comment><USER49> OK, just discovered you can double click for the dude to walk over there too ;p

edit: although there is no path finding

</comment></comment><comment><USER50> Why do you even need this engine when the beautiful physics of the Quake 3 engine already have roots in HTML5? You do not, that's the answer.

</comment><comment><USER51> Although I'm not a fan of programming in JS, this is pretty darn cool, got 19 FPS on Ubuntu 12.04 with regular FF from the repo.

<comment><USER52> It's written in C++.

<comment><USER22> Over a million lines of it!

</comment></comment></comment><comment><USER53> I take issue with calling this JavaScript/HTML5. This is powered by asm.js. The source is emphatically NOT JavaScript, it's a subset that's meant to be a target for compilation (like a bytecode in .NET and the JVM) and is treated entirely differently from JavaScript by the JIT. We don't call everything that runs on .NET C# nor everything that runs on the JVM Java.

Additionally, asm.js is not part of HTML5. It's interesting, and this demo is cool, but it's not JavaScript/HTML5.

<comment><USER54> Even though it's using JavaScript as a kind of bytecode, it _is_ just JavaScript / HTML5 (and some CSS, but that's pretty anedoctical I guess). Asm.js is a subset of JavaScript. As soon as Chrome fixes the crash, it'll run in a browser that supports just HTML5 (for presenting the page / the DOM / the canvas) and JavaScript with no special asm.js optimizations, and we'll have to see how fast/slow it is then.

To correct your analogy: it'd be like using a subset of C# as the bytecode rather than a language. It's still actual C#, it's not just .NET bytecode, but it's being used differently.

<comment><USER53> I understand that. Take a read of this: <http://mrale.ph/blog/2013/03/28/why- asmjs-bothers-me.html>.

I have a lot of respect for Egorov, and I agree with his views on this matter quite entirely.

The sole benefit of embedding a bytecode in a language is that you get the side effect that it can run anywhere that language runs. But in general, this implies performance penalties, especially when the language is relatively slow to begin with.

But in this case, this demo is made usable (ie: the impressive part) by writing a compiler specifically for the bytecode itself. So it works well in spite of the fact that it's a bytecode embedded in JS, not because of it. The really cool things about this demo are precisely 2 things:

1\. asm.js makes running C++ code that would render to OpenGL in the browser a possibility, and with relatively good performance. Kudos to Mozilla.

2\. It runs on browsers that don't know about asm.js, but it's effectively an emulated machine, and it's slow.

I just take issue with calling this an example of what JavaScript/HTML5 can do. I think seeing an application written in JS using WebGL or Canvas as something much more impressive, and there are Q3 renderers that are natively JS that run with amazing performance in the browser. This is just dressing up the fact that turing completeness is a thing and calling attention to it. The real thing to get from this demo is that there are enormous benefits to having a bytecode for the web over trying to optimize a fully dynamic language like JS. I feel like that is relatively lost by the title.

<comment><USER18> > 1\. asm.js makes running C++ code that would render to OpenGL in the browser > a possibility, and with relatively good performance. Kudos to Mozilla.

> 2\. It runs on browsers that don't know about asm.js, but it's effectively > an emulated machine, and it's slow.

Do you have benchmark numbers to support that? In my experience, asm.js code is quite fast even without special asm.js optimizations. It depends on the benchmark obviously, but look at

<http://kripken.github.io/mloc_emscripten_talk/#/27>

Many of those benchmarks are very fast in browsers without special asm.js optimizations.

All they need to do to be fast on asm.js code is to optimize typed array operations and basic math, and those are things browsers have been doing for a long time. Google even added a Mandreel benchmark to Octane for this reason.

Emscripten and Mandreel output, with or without asm.js, tends to be quite fast, generally faster than handwritten code. asm.js is often faster than that, because it's easier to optimize, even without special optimizations for it. Those special optimizations can help even more, but they are not necessary for it to run, nor are things "slow/emulated" without them.

<comment><USER55> That link is misleading in the context you present it. Those are microbenchmarks, which a JIT can optimize relatively well. But if you look at the very next slide at <http://kripken.github.io/mloc_emscripten_talk/#/28> you will see that for a larger application, non-optimized asm.js performs abysmally, as does JS in general. A performance penalty of ~1000% of native is what you should expect for a nontrivial JS application, and asm.js does not do much (if anything) to alleviate that unless you run odinmonkey.

<comment><USER18> I was purposefully linking to that slide + the one after it.

Yes, there is a factor of around 4x slowdown between asm.js optimizations and without them, on the next slide. But even 4x slower than asm.js is quite fast, it's enough to run the Epic Citadel demo for example (try it on a version of firefox without those optimizations, like stable release - as others reported in comments, it runs ok). A lot of the work in Epic Citadel is on the GPU anyhow, say it's about half, so the difference is then only something like 2x.

2x is not that much, we have similar differences on the web anyhow because of CPU differences, JIT differences, etc. That's within the expected range of variance.

Also, asm.js code is faster even without special optimizations compared to handwritten JS (see for example [http://blog.j15r.com/blog/2011/12/15/Box2D_as_a_Measure_of_R...](http://blog.j15r.com/blog/2011/12/15/Box2D_as_a_Measure_of_Runtime_Performance) and <http://blog.j15r.com/blog/2013/04/25/Box2d_Revisited> ). So even without those optimizations it is worthwhile.

<comment><USER53> It's faster than "handwritten JS" because it's using a subset of JS that's already tuned to near the peak level of performance that you can achieve in JITting JS, which is tightly looped arithmetic with everything inlined working on SMIs. In V8, that's ~2.5x slower than the equivalent C code with optimizations. That's basically best case.

The problem is that it's still dynamic, and at any point a null can come along and force you to throw away a JITted function, so you have to have these checks everywhere just in case. Further, ECMA compliance does not require JIT compilation, which means to expect performance, especially on the web, is dubious at best. I can see merit to expecting performance metrics in something like Node.JS since it assumes V8, but the web does not have 1 JS engine, and the standard does not require such performance metrics.

The "benefits" of building a bytecode in that's represented in some subset of JS are essentially red herrings since they're effectively lies and the downsides are a lot more significant, IMO. Instead, we should be focusing on actually building a bytecode for the web such that all implementations are expected to have certain performance metrics.

</comment></comment></comment></comment></comment></comment></comment><comment><USER56> I was really impressed by this, but is it actually a game, or just walk around and check out this cool thing we made?

</comment><comment><USER57> Runescape got a full MMORPG running in HTML5. They currently have a beta for several players also.

</comment><comment><USER58> Very cool. Unfortunately my firefox segfaulted about 10 minutes into my exploration. FF nightly 23.

</comment><comment><USER59> I wonder why they're using jQuery 1.5.2, which is nearly 2 years old?

<comment><USER60> Doesn't really matter for the demo. The demo is just all native. You don't really need jQuery when working with canvas.

</comment></comment><comment><USER61> Where is the source? I would love to learn how they did this

</comment><comment><USER62> It won't load. It stucks infinitely at "Loading Data...".

</comment><comment><USER63> Looks OK, can't even begin to get used to the controls.

</comment><comment><USER64> Looks cool, but crashed X w/ opensource radeon drivers.

</comment><comment><USER65> Absolutely awesome.

</comment><comment><USER66> we need Louis CK here: "You're in a BROWSER!"

</comment><comment><USER67> This crashed my i7 windows machine :\

</comment><comment><USER68> So it basically means that C++ got another reasonable compilation target. Not much to do with applying JavaScript to large-scale games. Also it is not HTML 5, it is HTML FF23.

<comment><USER22> Factually, all code emitted from emscripten is JavaScript. It may look funny with all the bitwise operators that are barely ever used by web developers, but it's just JavaScript. It doesn't run correctly in Chrome right now because they have issues with their JavaScript environment not supporting large numbers of variables for a given context. It doesn't run in IE because IE doesn't support webGL. Both of these will be fixed in the future.</comment></comment>


HTML5Rocks now on Github - <AUTHOR> https://github.com/html5rocks/www.html5rocks.com

<comment><USER2> Is it just me or is the adoption of HTML5 stalling?

So much innovation seems to be coming out of the Javascript, client side JS, mobile development stacks that HTML5 seems from the outside like a set of solutions to partially solved problems. It doesn't seem to be getting as much attention as it might.

I admit I don't mix in these circles much so interested in learning here...

<comment><USER3> A lot of the innovation happening in client-side JavaScript right now is based on HTML5 technologies like Web Workers, "data-" attributes, Canvas, Local Storage, etc. If you read through HTML5Rocks.com, you'll see that many of the things it talks about are new APIs available to JS in the browser.

<comment><USER4> What innovations were possible with the "data-" attributes? As far as I know, they just provide a standardized way of naming custom attributes. I've been using custom attributes in html tags for unobtrusive javascript before I knew the data- attributes existed.

Do they provide any extra functionality as such (like a faster/optimized querying api) ? Or is it just a promise that attributes beginning with "data-" will never be used as part of the HTML standard?

<comment><USER5> > Or is it just a promise that attributes beginning with "data-" will never be > used as part of the HTML standard?

Just that.

Some libraries do build upon that though, e.g. in jQuery, $el.data('key') will fall back on the @data-key attribute if it does not find the key in its internal store.

</comment></comment></comment></comment><comment><USER6> This is exciting to see. Updating the project on its previous Mercury setup on Google Code was never a pleasant experience, especially with the various branches going on.

GitHub will make it a lot easier for people to contribute to HTML5Rocks, whether it's full articles or typo fixes.

A nice touch is that this is hosted on a new <https://github.com/html5rocks> account, rather than <https://github.com/GoogleChrome>.

<comment><AUTHOR> We still need to get the contribution guide sorted and in the flow for git and importantly github. Ideally we will merge in with the issue tracker too.

</comment></comment><comment><USER7> This has been a very good resource in the past. Thanks for sharing!

</comment><comment><USER8> The best thing for HTML5Rocks would be a serie of screencasts ... Short and to the point similar to Ryan Bate's railscasts. But the site still rocks :)</comment>


Amplify: a jQuery component library for solving common web problems. - <AUTHOR> http://amplifyjs.com/ <comment><USER2> Wow, this is exactly the kind of interface I dislike. It's way too verbose and I'm not sure why one would add this kind of layer on top of jQuery. I don't see where it makes things easier - it's more like it just provides yet another interface.

</comment><comment><USER3> _Amplify is a set of components designed to solve common web application problems with a simplistic API._

Pretty sure the author means 'simple' rather than 'simplistic.' It's an important distinction!

<comment><USER4> _Simplistic_ means treating complex issues and problems as if they were much simpler, that's exactly what Jquery and its suit of plugins (including Amplify) does well.

<comment><USER3> 'Simplistic' is perjorative: a simplistic solution is one that's too simple to properly address the problem.

</comment></comment></comment><comment><USER5> This is not my cup of tea.

1\. I don't like magic string names like "AjaxExample1". Why not return an object, and use:

var AjaxExpample1 = amplify.request...

2\. It is not clear how you mix get parameters and post data. If I want to POST to "/users/{id}/", how do I separate the post values from the parameter?

<comment><USER6> For concern #2, If they parameter names are found in the request, they are replaced in the url and removed from the POST form data. Full explaination here: <http://amplifyjs.com/api/request/#url_substitution/routing>

<comment><USER7> This is true, but the examples are incomplete. The "RESTful" POST example excludes parameters in the URL. Small mistake, but very confusing.

I'd fix it, but they don't mention how to submit patches.

<comment><USER2> They do mention it. It's a little bit hidden, but see <http://amplifyjs.com/community/#pull_requests>

</comment></comment></comment></comment><comment><USER8> Three mediocre plugins bundled into one? Sorry but this left me underwhelmed.

There are much more powerful plugins for each of these problem spaces.

<comment><USER9> Can you give some examples?

<comment><USER8> Sure.

\-- The 'request' module --

is mixing concerns (network protocol, caching, serialization, model) that you probably don't want to mix that way in a real app.

It's pretty trivial to roll the polling part yourself (setTimeout), if you really need a plugin then PeriodicalUpdater[1] might be a candidate (although there are many others, and the cool kids use comet/websocket now anyways).

I didn't quite understand the purpose of the caching part; the browser already caches for us after all. It seems like a misnomer for some sort of bridge to the localstorage, but I didn't quite get in what situation storing the verbatim server response would be useful - as opposed to storing the deserialized result (or part thereof).

Anyways for the serialization part JSON2.js[2] is your friend. And for models there are various choices, backbone.js[3] being the most popular recently.

\-- The 'store' module --

doesn't seem to provide anything interesting over jq-store[4]. And if you _really_ want your data to stick around then there's evercookie[5]

\-- The 'pubsub' module --

was a little hard for me to understand the purpose of. Since it isn't actually about server messaging(?) but rather only a way of passing events inside the browser it seems like what you'd really want is either JavascriptMVC[6], Backbone[3], perhaps knockout[7], or the older chain.js[8], or maybe one of the other two dozen data binding plugins.

Admittedly on this last one I may very well just be missing the point entirely. PubSub inside the browser? Huh?

      [1] https://github.com/RobertFischer/JQuery-PeriodicalUpdater
      [2] https://github.com/douglascrockford/JSON-js
      [3] http://documentcloud.github.com/backbone/
      [4] http://medialize.github.com/jQuery-store/
      [5] http://samy.pl/evercookie/
      [6] http://www.javascriptmvc.com/
      [7] http://knockoutjs.com/
      [8] http://ajaxian.com/archives/chainjs-jquery-data-binding-service

<comment><USER10> PubSub is useful for implementing interfaces between data and UI layers. Js.io has one that has _almost_ the same interface: [https://github.com/mcarter/js.io/blob/master/packages/lib/Pu...](https://github.com/mcarter/js.io/blob/master/packages/lib/PubSub.js)

</comment></comment></comment></comment><comment><USER11> Would love to see someone explain what this library does in simpler terms. I can't tell which terms are buzzwords, which are industry standard, and which terms are from their own internal vocabulary. PubSub? PubSub to what? Can you give some real world examples of when to use this library and what problems it solves.

</comment><comment><USER12> There's a typo in the first example. You're missing a '1' in the first argument when you execute the ajax call.

The pub/sub is all local right? I got really excited, then not so much. I still see the value, but I was hoping it was more like Google's javascript+serverside-component PuSH client. [1]

<http://code.google.com/apis/feed/v1/devguide.html#hiworld>

(It's really cool, Google runs a PuSH bridge so their server side component subscribes to a Pubsubhubbub hub and receives updates and pushes them to the browser. I want to see an OSS implementation of it since it's really slick and PuSH is a neat protocol).

<comment><USER13> What is this PuSH client and protocol? Is that just another name for Pubsubhubbub? My google-fu is failing me on the term PuSH protocol.

<comment><USER14>
        PubSubHubbub
        __ _  _

PuSH.</comment></comment></comment>


Good Software Takes Ten Years. Get Used to It. (2001) - <AUTHOR> http://www.joelonsoftware.com/articles/fog0000000017.html <comment><USER2> I'm usually on board with Joel but I think this one, whilst perhaps more true in 2001, is no longer entirely correct.

I'd be interested to read an update written by Joel.

</comment><comment><USER3> Seems like continuous delivery is adopted more in web/mobile/cloud domains, and slower release cadence is more common in hardware/healthcare/automotive/operating system type domains. I'm curious what others have noticed here.

</comment><comment><AUTHOR> An oldie here. Some recent discussion I read on HN reminded me about it, and I'm curious how applicable people think this still is in 2016.</comment>


Popcorn Linux – for ISA-diverse multi/many-core architectures - <AUTHOR> http://www.popcornlinux.org/ <comment><USER2> A few months ago I created/worked on a project that involved separating PNaCl (the portable native client) from the Chromium project, rewriting parts of it for use as a generic JIT compiler, and building a small PoC distro around it where all of userspace were PNaCl binaries except for the loader/JIT (which was a regular old architecture-specific ELF that existed read-only in memory and loaded by a slightly-patched Linux kernel) Only PNaCl executables were allowed to run in userspace, which allowed for secure execution of user binaries thanks to the sandboxing features of the modified portable native client. However, another benefit of the PNaCl is that binaries are compiled to a performant architecture-agnostic IL (similar to LLVM's IL) and then quickly finalized by the PNaCl loader into a regular architecture-specific binary and loaded into secure memory when they are started.

This meant, in a nutshell, I could have a completely architecture-agnostic root filesystem, with the only architecture-specific binaries being the kernel and PNaCl runtime, which sat in the initial ramdisk.

<comment><USER3> So basically you recreated IBM's AS/400 mainframe.

Had you researched it for your work?

I would be interested in some kind of comparison.

<comment><USER2> Wow! I actually wasn't aware that TIMI existed until just now! All I've ever really known is ARM's work on the Jazelle hardware subsystem. I'll have to check this out more in the morning though!

</comment></comment></comment><comment><USER4> Whoa - this could be really interesting.

Imagine a hybrid x64/ARM system where you could run simpler, low-intensity tasks on your low-power ARM core (Twitter clients, Facebook, etc) but more intense tasks or entire applications (Photoshop, development IDEs, etc) on your x64-compatible chip.

Or a system where you take your ARM core + storage with you in your phone and dock it with an x64 core in your desktop.

<comment><USER3> This has been typical approach in mainframes and other OSes with bytecode as executable file format.

AS/400 architecture upgrades are done without any big worries about CPU backwards compatibility thanks to them being like this.

</comment></comment><comment><USER5> This reminds me very much of the heterogenous OS TAOS designed for the Transputer platform and for other hardware processors of varied architectures coexisting on the same system. [http://www.dickpountain.co.uk/home/computing/byte- articles/t...](http://www.dickpountain.co.uk/home/computing/byte-articles/the- taos-operating-system-1991?hn)

<comment><USER5> Unfortunately it is too late for me to edit my previous post with a link to more illustrative material: [http://www.uruk.org/emu/Taos.html](http://www.uruk.org/emu/Taos.html)

</comment></comment><comment><USER6> Such a good name.

</comment><comment><USER7> Thought this was for PopcornTime for a minute..

Multi ore Linux could be pretty cool.

Mix and match CPUs anyone?

</comment><comment><USER8> I'm not sure I understand. Does this mean that multiple linux kernels are split up, for example, on the graphics card cores such that each core on the GPU and CPU gets a "mini-kernel"? And then from that point all programs can run selectively on certain bits of hardware?

<comment><USER9> Popcorn Linux main idea started when trying to run Barrelfish OS (from ETHZ) we asked ourselfs "can I apply the same ideas to Linux"? Then we ended up in taking a somewhat different route in terms of system design for different reasons, some were technical. My personal perspective on the project was to try to understand if I can power up and down heterogeneous cores at any time, scaling indefinitely in the numbers of cores ... I changed that idea a little bit since I started the project (2012). The current version of Popcorn Linux supports aarch64 + x86_64. Popcorn Linux runs only on OS-capable processors (no GPUs, no FPGAs). The kernel is not split up. You run different instances of the kernel on different ISA processors - one kernel per processor island (that is a set of processor cores with homogeneous characteristics). When a kernel boots up, if it is not the first one, it will join the community of Popcorn kernels. Operating system services are distributed, therefore things like memory are globally managed. An applications to run among kernels must be compiled with the Popcorn Linux toolchain, and must be executed inside the Popcorn namespace (just an additional Linux namespace), in which the applications can see all the available memory and CPU cores. When your applications is in the namespace the only thing that it has to do is to call sched_setaffinity to migrate to another core - as easy as POSIX/SMP. You can migrate between different ISA at any point in the code (there is no limitation such as in offloading, that you have to go back as soon as the offloaded function is finished) - this is thanks to the stack rewriter (see below). The current way Popcorn compiles an application to be run on aarch64 + x86_64 is to produce 2 binaries, one for aarch64 and one for x86_64. For now, the compiler toolchain is modified to align all symbols in each binary at the same address, and all data types have the same sizes; all alignments and paddings are forced the same way. For this reason we used musl, and yes, you need to recompile each library (although this is not strictly necessary in some cases). The executable is statically linked. The operating system cannot cross-ISA migrate your application at arbitrary points, the migration should be explicit in the code itself (but we added some OS-suggested migration, at automatically placed migration points). (If you want to cross-ISA migrate with OS control, you need emulation until a valid migration point, you can check the work from Venkat + Tullsen.) Finally, because the executable code of different ISAs sees the address space identically there is no need of state transformation during migration - this enables the developer to migrate a single thread, or a subset of threads of your application. The only thing that Popcorn transforms during cross-ISA migration is the stack, thanks to Rob that wrote the stack transformation routine. We decided to do not implement a single stack layout because we believed that the current stack ABI is optimized for performance, but as far as I remember we never tested the alternative option.</comment></comment>


Here's Why Bill Gates Would Step Down as Chairman of Microsoft - <AUTHOR> http://recode.net/2014/01/31/heres-why-bill-gates-would-step-down-as-chairman-of-microsoft/ <comment><USER2> >In many ways, the change is still not a bad idea, because Gates has been pretty ill-suited to the tasks of the job. I'll say it if no one else will — he's a terrible schmoozer of investors, is not someone who cottons to kissing up to Wall Street and, well, he's still awkward around the niceties required in such a job. (By the way, this is the part of Gates I like!)

How often does Microsoft need to go to outside investors for money? It's obviously not in as good a position as, say, ten years ago, but the company still makes lots of money. Over the years the big problem has been Microsoft has been unable to find good places to spend all its extra cash.

</comment><comment><USER3> Hiring an enterprise guy as CEO seems like an admission of defeat in the consumer market for Microsoft to me. Yes, Ballmer wasn't a "consumer" guy either, which is precisely why they've missed so many consumer waves already since he's been at the helm. I don't know if they can afford another "Ballmer" in the consumer space.

I think Nadella will do what "feels natural" to him, and will move Microsoft "up-market" from the consumer space, which will probably become increasingly less profitable for them, so moving "where the profits are" (i.e. not in the consumer market) will start to make a lot of sense to them.

<comment><USER4> An enterprise guy cannot be a consumer guy is a big assumption. He did well with the previous task he was assigned to - enterprise. It is not so obvious that he will be bad for microsoft's consumer business. The two areas are not mathematical disjoints.

</comment></comment><comment><USER5> That was a difficult article for me to follow. I kept getting sidetracked by the feeling that it was just speculation built on speculation, and then confirmed by speculation. Besides, even if Gates did step down, I have to wonder how much influence he's actually had over the direction of Microsoft as COTB. Despite being profitable, they don't seem like they have a clear direction.

</comment><comment><USER6> TL;DR: linkbait saying Gates would step down as Chairman and more involved in to tech and design.

I don't think so. Being involved in tech/design of these products is very consuming and Gates has made clear many times he doesn't want to work in "this space".

My bet is Ballmer is going to get in board, likely going to fight for chairman position and may even get it. He had given strong indication of this in Company Meeting 2013 video that Microsoft had released.

<comment><USER7> I think that Ballmer in board is likely improbable. It seems to me that microsoft is trying to "refresh" itself a bit, so putting a man of the "old wave" into board would not be coerent with their actual mission.

<comment><USER8> Ballmer is a member of the board of directors [http://www.microsoft.com/en- us/news/inside_ms.aspx#BOD](http://www.microsoft.com/en- us/news/inside_ms.aspx#BOD)

</comment></comment></comment><comment><USER9> at least hire somebody who understand a little bit of code.</comment>


How First Round Capital missed out on Twitter's first round. - <AUTHOR> http://redeye.firstround.com/2011/04/woulda-coulda-shoulda-twitter.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+redeyevc+%28Redeye+VC%29&utm_content=Google+Reader <comment><USER2> The key to any early stage investing is betting on the team involved. I agree valuation really matters, but getting in with a great team is more important than the perfect valuation.

<comment><USER3> As a counterpoint: [http://pmarca-archive.posterous.com/the-pmarca-guide-to- star...](http://pmarca-archive.posterous.com/the-pmarca-guide-to-startups- part-4-the-only)

TL;DR Market is more important than team.

Of course, trying to estimate the market of something totally new (or sorta new) like Twitter is hard. What market does it enter/disrupt? Social networking? Blogging?

Edit: Example is Odeo. Just about the same team as Twitter... Crappy market as it turns out.

<comment><USER4> I tackled that exact question in a post about my experience on the Odeo team at the start of Twitter. My conclusion was that the phrasing was wrong. What matters most for a product? Market. What matters most for a company? Team.

Odeo the product failed because there was no market for it. Odeo the company produced a great win with Twitter because it had the right team to do something like that.

A little more depth here, Real Lessons from Twitter (section #2): [http://www.stubbleblog.com/index.php/2009/06/the-real- lesson...](http://www.stubbleblog.com/index.php/2009/06/the-real-lessons-from- twitter/)

<comment><USER3> That is an epic-good blog post. Thank you!

"A good team, that listens to its customers, is going to find a good market and put together a good product for that market."

This is true. But, Andreeson is looking as an investor-- he invest once a team has settled on a market--- when it's oftentimes too late to change directions so radically. Ev did the sensible thing when Twitter was looking promising-- he effectively put Odeo on the shelf and started a fresh company with a fresh cap table.

A lot of founders don't have that option (after they've taken money) and are forced to pivot within their market. So a good team can be constrained by investment/inertia.

<comment><USER4> You're right. It's nuanced.

</comment></comment></comment></comment></comment><comment><USER5> It's nice (and rare) to see VCs being humble.

<comment><USER6> Actually, there may be something of a trend towards transparency forming.

<http://paulgraham.com/airbnb.html> \--- <http://www.bvp.com/Portfolio/AntiPortfolio.aspx>

<comment><USER5> 3 out of thousands does not make a trend... Plus these are old.</comment></comment></comment>


Nasdaq index is back to the all time high - <AUTHOR> https://www.marketwatch.com/investing/index/comp <comment><AUTHOR> Still just a few points below the all time. I found it interesting that despite all of what's happening in the world right now; that it recovered very fast.</comment>


Mobile-Payments Startup Square Discusses Possible Sale - <AUTHOR> http://online.wsj.com/news/article_email/SB10001424052702303825604579513882989476424-lMyQjAxMTA0MDIwMDEyNDAyWj <comment><USER2> I said for months and years that Square was absolutely myopic and slow-moving when it came to online transactions and developing and releasing an API (which still does NOT exist).

Stripe came in and absolutely crushed them.

Square deserves it. They had huge first-mover advantage and massive popularity early. I will do mid six figures through Stripe in the next 12 months and all of it - 100% of it - could have gone through Square had they simply spent a few weeks exposing and documenting an API.

Embarrassing.

<comment><USER3> Square's primary problem is not the lack of an API.

Square's problem is that the margin on processing physical credit cards is razor thin, especially if you are just using other people's networks. My thought has been that Square will eventually launch its own credit card network once they have a large enough share of the credit card processing market.

Square could have launched an API and done what Stripe did, but the problem of processing credit cards over the Internet are different from the problem of processing physical credit cards. I don't think that anyone could have simultaneously succeeded at both.

<comment><USER2> They already process cards over the Internet with Square Marketplace. They clearly were interested in entering this area, but fell years behind everyone else despite having years+ first mover advantage.

<comment><USER4> I remember emailing Tristan O'Tierney back in 2012 asking about an API after having seen that they had allowed a small beta group access to an API [0,1]. His response was just that they'd decided against moving forward with it -- not sure of the specifics but they had at least gotten that ball rolling at one point before deciding to focus on other things, would be interesting to hear more about that decision.

[0] [https://groups.google.com/forum/#!topic/square-client- api/c0...](https://groups.google.com/forum/#!topic/square-client- api/c0rdiYryXJk)

[1] [https://groups.google.com/forum/#!topic/square-client- api/7x...](https://groups.google.com/forum/#!topic/square-client- api/7xFFwUotJNY)

</comment></comment></comment></comment><comment><USER5> The other problem is that credit cards are set to go to chip-and-PIN in the USA (finally!) later next year. All the current readers won't be useful (at least if you don't want to shoulder the liability!)

<comment><USER6> Got a source on that? Cards with chips are still somewhat rare, so it's going to be a while before they become required...

<comment><USER7> The EMV liability shift will move the liability for non-chip transactions to merchants on Oct 2015.

You will see all your cards get issued with chip in the next year.

<comment><USER8> Actually, with all the press regarding recent data breaches (e.g. Target) you might see it happening before that. Some Chase and Citi cards are now being issued with chip.

<comment><USER9> My recently issued citi card has a chip.

</comment></comment></comment></comment></comment><comment><USER10> Super interesting that the Starbucks deal was a $20m loss. I swear back then I read Square, or maybe it was Keith Rabois, claim that Square was making money on the deal. Knew it was bullshit because they also claimed Starbucks was saving money on processing with Square. That just didn't add up. Makes sense now to hear this.

Overall, not shocked at the situation. A lot of people like to compare Square to Apple. Superficially the product design is comparable (simplicity, elegance).

But a HUGE difference is that Apple has always targeted products that have generous margins. Payment processing is a commodity, microscopic-margin business. Square Cash is outright operating at a loss. Not at all Apple-like.

It's cool they initially went after a segment more tolerant of a relatively fatter fee: the underserved very small business / individual proprietor market. But at the same time, there's a lot of advertising, support and perhaps even fraud costs with that segment. And crucially, it's hard to move upmarket to bigger businesses that demand a more competitive processing fee.

It would be sweet for a company like Square to take a fresh, Apple-like take on the point of sale market. But sadly that doesn't seem compatible with the sheer amount of venture funding they've taken on, which demands a highly profitable multi billion dollar market. They would practically have to take over the entire world of POS to make that kind of money on it, meeting resistance to fat margins and bearing significant sales and support costs every step of the way.

No wonder they are positioning themselves as a "commerce" not "payments" company.. they need to look elsewhere for profits.

</comment><comment><USER11> At this point, I'm afraid Square is just too expensive to acquire. The company does not have a solid business model: targeting micro-merchants is simply not profitable. And due to all the hype, the acquisition price is going to be very high to cash out all the investors.

Mobile wallet apps have not gained traction and Square marketplace looks like a giant distraction. Square is going to face incredible competition with card readers and POS products from Paypal, Apple, Amazon and Shopify.

<comment><USER12> PayPal, Apple, and Amazon are precisely the companies who would have the cash to acquire the company and the desire to do so.

I see Square going to Apple so that they can jump start whatever payments technology they're planning to unleash in the next year. Buying Square's merchants would be an excellent way to do that.

<comment><USER13> At a valuation of a few billion? Tell me what Square could do and Apple cant with those few billions?

Apple, as with its iPhone user base is large enough to offer its own Payment Network to complete with Visa and Mastercard. Although i dont see Apple wanting to do that either.

<comment><USER14> You overestimate the ability, dedication, vision, and internal political will of top tech companies to enter and dominate fields that are not their core focus.

Remember MobileMe?

</comment></comment></comment></comment><comment><USER15> I'm a newbie to startups and Silicon Valley so correct me if I'm wrong. It seems like Square has spent a lot of money over the years. They come to our campus recruiting, have hired multiple students from the university I attend, I heard they've moved into a new expansive office this year and put in such a big effort. If all of this is going to waste despite the fact that Square is solving a real business problem (unlike so many many other startups), doing a startup seems like such a small possibility of success - its scary. As a college student, a lot of engineers tell me how much they learnt while working at a startup etc, but is it even worth it if legitimate problem-solving startups are failing like this? Is this model of being funded millions of dollars and then failing worth it? Is this a bubble thats going to burst some day and people will realize the we've just been illogical all the way along?

<comment><USER16> They did solve a real problem. They just tried to run a business organization more like a high-margin software business rather than a low-margin commodity business, which is what they are right now.

They can change that but they haven't yet.

Put another way, don't solve a problem if the cost to solve it is greater than solving it pays you.

</comment></comment><comment><USER17> Can someone please explain:

"Square recorded a loss of roughly $100 million in 2013, broader than its loss in 2012"

AND

"Square would likely fetch billions of dollars in a sale."

How can BOTH these statements be true?

<comment><USER18> Easily explained. If an investor believes that a company has a bright future, the fact that it's losing money in the present may not count for anything. The investor may turn out to be wrong, but that's the reasoning.

Also, because of the nature of tech investments and the volatile character of the tech business, one can invest seed money in ten companies, watch nine of them fail, and still come out ahead.

</comment></comment><comment><USER19> Another similar company to keep an eye out for is ShopKeep POS. [http://www.shopkeep.com/shopkeep-vs-square](http://www.shopkeep.com/shopkeep- vs-square) Found it at the Temple Coffee shops.

I actually enjoy using their interface a lot more than Square, and it seems to be more feature rich on the merchant end too. The main thing I have fun with is the ability to print your signature onto the receipt!

It would be interesting to look into all the developers of these POS swipe machines. What companies fund them? Credit card companies? Grocery store corporations? Just pure profit from sales of the devices? I know I see a lot of innovation on grocery store registers, and a lot of the visa swipe devices have been upgrading their interfaces consistently every few years.

<comment><USER20> Director of Engineer at ShopKeep here. Happy to answer any questions about the technical side of things. Some recent ShopKeep news: [https://news.ycombinator.com/item?id=7641525](https://news.ycombinator.com/item?id=7641525)

</comment></comment><comment><USER21> [http://techcrunch.com/2014/04/20/square-and-google-were- not-...](http://techcrunch.com/2014/04/20/square-and-google-were-not-in- acquisition-talks/)

Google/Square denies.

<comment><USER22> Don't believe anything until it is officially denied.

</comment></comment><comment><USER23> With the way Square has designed its business, it only makes sense as part of a larger company to whom the business is about adding value to themselves. Youtube is a great example: it couldn't survive in the long run unless acquired. Nothing wrong with this business model except that you have to find the right buyer before your model kills you.

</comment><comment><USER24> This article includes the phrase "with the matter" six times, in case anyone was wondering.

</comment><comment><USER25> Wow, $100m a year is a lot of money.

Could hire a team of 10 top notch devs for $200K + $100K in benefits for $3m/year. Supposing you had a sales staff that cost the same, that's $6m. Make it an even ten with hardware designers and support staff.

<comment><USER26> Wow. Napkin math can be powerful. This is the most insightful comment on the page.

<comment><USER27> _Supposing you had a sales staff that cost the same_

Napkin math tells you nothing of the quality of this assumption.</comment></comment></comment>


"Hacker" Gary McKinnon's fight with U.S. extradition - <AUTHOR> http://blogs.computerworld.com/16215/gary_mckinnons_fight_against_u_s_extradition_freegary

<comment><AUTHOR> In my humble opinion, McKinnon needs to be given the opportunity to be tried, by a jury of his peers, in the United Kingdom.</comment>