Chinese dev steals US HTML5 Game engine, US hosts won't close down the copy - <AUTHOR> http://www.techinasia.com/chinese-net-user-steals-game-engine-sells-price-hosts-silent/ <comment><USER2> Within a month of releasing my very successful iPhone app TextPics, there were several Chinese clones using a slightly modified icon, all of my content, my design, layout, and with names like "TextPics Pro" and "TextPics(R)" or "TextPics+". As annoying as this was and confusing to my customers, it got even worse. Theft in China does not stop at the dev level, oh no. Comparing my Google analytics app usage to my Apple purchases in China was even more depressing. It turned out China was _by far_ my biggest country for usage... And just about at the bottom of my list for revenue. The Chinese were simply stealing the app with their cracked iPhones. I see no way to win here.

And this is no blind hate for the Chinese. I have a Chinese wife from the mainland, I study Chinese Rosetta Stone daily, and I've been to China multiple times for pleasure. I know these people. As a culture, they consider it laughable and stupid to pay for something they could otherwise steal. I've had this conversation with enough Chinese at this point.

So seriously I don't see how I can take that country or it's people seriously from a tech biz standpoint if I can't trust their ethics.

<comment><USER3> This is very interesting.

Genuine question: how is pirating PC games, songs and movies acceptable while pirating apps is not?

Edit: this is not a question toward parent, but rather the general public, as I kind of get the sense that pirating is somewhat acceptable under certain circumstances while not others. Where is the line?

<comment><USER4> Where did he say pirating anything was okay?

<comment><USER5> It is funny how if it's copying a developers HTML5 game, it's stealing, but if it's a movie or song, well... that's just copying, because the creator still has a copy -- _that's_ not stealing.

The level of hypocrisy around here is incredible. The only occurrence of the text string "not stealing" in this whole tread is in my post right here.

<comment><USER6> You didn't answer the question. No-one ever said pirating was okay (or "not stealing").

Also, I think you're wrong: pirating a movie/book/whatever will _at most_ result in the price of one movie/book being lost from the creators (given that I may or may not have bought it legally otherwise). Copying an app, on the other hand, can result in a (theoretically) unlimited number of apps being purchased where the money doesn't go to the original creators. That is more like ripping a dvd and posting it to a torrent site.

I'm not saying pirating is defensible, but downloading something illegally is _far_ less harmful than copying someone's app.

<comment><USER7> What about posting movies/books/whatever to trackers in the first place?

</comment></comment></comment></comment></comment></comment><comment><USER8> I had a similar issue a few years ago when someone from Asia had modified and resold my ecommerce application for years as his own. I lost at least $50,000 in sales to US customers who purchased this guy's copy of my software.

The big problem that I ran into is the cost to litigate international issues. I contacted a bunch of law firms and they all pretty much said it would be a six-figure cost to pursue any international action and the hopes of collecting would be almost zero. Fortunately, the copying was so blatant that I didn't have a problem getting the US web host to pull down his site.

Partially as a result of the incident I decided to open-source the code base. Other than locking up the code in a SaaS platform there isn't a 100% foolproof way to protect IP so why not embrace the copying and build a business model around reality.

<comment><USER9> I know it's a bit late to suggest this but for future reference you could have always followed the VBulletin model of sending DMCA/Legal threats to people who purchase the bootlegged software.

I realize this doesn't make you any friends but if enough of those customers disputed the charges with the person who had stolen your software you may have been able to put him out of business.

<comment><USER8> I actually contacted most of them because the software was sold in a small community. I offered them immunity from legal threats in exchange for registering with me so that I knew how many people had purchased. The plan is to sell them official upgrades as their current unsupported versions become outdated.

Thanks for the suggestion.

</comment></comment></comment><comment><USER10> As much as I hate the DMCA, when this happens and a U.S. host starts ignoring legitimate DMCA notices, start emailing their upstreams. Softlayer is probably doing this because they have an inexperienced tech handling your request.

Email ATDN, Global Crossing, Cogent Communications, and many of the other companies they peer with and say the website has not been shut down despite emails sent to Softlayer. Those companies may threaten to nullroute the website's IP.

If they don't do anything (unlikely) get an injunction.

It's trivial for this guy to get it hosted elsewhere, however. This is just me, but I wouldn't expect to build anything in HTML5 that couldn't be copied-- the platform is inherently open. If the only creative and useful properties of your work is built in the open, there does not seem to be a compelling reason why you would be protected by copyright. This person could build a website around your "copyrights" in little time.

<comment><USER11> Just because a product uses open technology, it doesn't necessarily undermine the labour and creative skill that a person puts into creating a product from the open technology available. This could be the same skill put into a non- open source piece of software, just that the opportunity to copy isn't so readily available.

Also, saying that the person who copied the website could build around the website in no time at all rather assumes that they have the skill to do so.

<comment><USER12> > non-open source

"Open source" does not mean "you can view the source". It means software that is freely usable and redistributable:

[http://en.wikipedia.org/wiki/Debian_Free_Software_Guidelines...](http://en.wikipedia.org/wiki/Debian_Free_Software_Guidelines#The_guidelines)

<comment><USER11> Thank you for the correction. Is there a term to describe code which although freely viewable is not open-source?

<comment><USER10> Proprietary.

<comment><USER11> But that for me doesn't capture the aspect of it being freely available to examine/read - perhaps such a term doesn't exist!

<comment><USER12> I don't think there's one term. "An application with exposed/visible source code", maybe.

<comment><USER13> The term "shared source" exists, and sort-of covers this scenario:

[http://en.wikipedia.org/wiki/Microsoft_Reciprocal_License#Mi...](http://en.wikipedia.org/wiki/Microsoft_Reciprocal_License#Microsoft_Reciprocal_License_.28Ms- RL.29)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> Hopefully I (as the only SoftLayer employee in this thread that I'm aware of) can provide a little insight. Before addressing the specific issue in the post, I want to share a quick overview of SoftLayer's Abuse Department and the processes of handling complaints.

The firstname.lastname@example.com address functions as more of a notification system than a medium for conversation. You don't have to be a SoftLayer customer to contact that address, and when reports of verifiable abuse are received, the abuse team will work with the customer responsible for the infringing server to get it resolved as quickly as possible. If the DMCA is properly formatted, the abuse team will work with our customers (who may, in turn have to work with their customers) to have the infringing material removed.

If a complaint is submitted to that address that doesn't meet the legal guidelines of documentation we need before we can take action, we cannot take action. If we can't take action because of an incomplete or invalid complaint, we also can't provide any visibility or feedback to the complaining parties about what was incomplete/invalid, as that could fall into the "legal advice" category.

Abuse tickets aren't handled by technical support, and they people creating and responding to the tickets are only responsible for abuse-related issues. Not only are they a distinct team, they fall in an entirely different part of the organization (alongside the legal, internal security and systems teams). As such, the way they respond needs to be extremely consistent from one issue to the next, and they're only able to make decisions based on the reports/evidence they have.

I don't have visibility into the specific complaint that was submitted, so the only assumption I can make is that the complaint wasn't properly formatted or it didn't have the legal evidence we need to take action. Whether or not the copyright infringement is "obvious" or "unquestionable" from an outside perspective does not change our legal requirement of having a properly formatted DMCA complaint to take action. If there's a lawyer in the building who is willing to offer his/her services to the game developer, a resolution might be a lot quicker. When the DMCA is submitted, I'd love to be copied on it (firstname.lastname@example.com) so I can immediately have it investigated and acted upon.

-Kevin Hazard

</comment><comment><USER15> Reading this and the related stories of other products like Cloudstone [1] I'm immediately reminded of another, recent HN post [2] which suggested covering about half a dozen markets/languages with your initial releases.

Something to think about.

1: [http://www.reddit.com/r/gaming/comments/yc02l/some_company_i...](http://www.reddit.com/r/gaming/comments/yc02l/some_company_in_china_stole_my_game/)

2: <http://news.ycombinator.com/item?id=4389468>

</comment><comment><USER16> On the other hand, it's sad that so many startups are ignoring the huge market that China is. People on HN often critique the music/film industries for claiming to lose ridiculously huge amounts of revenues due to piracy. In this case, I am willing to bet that 99% of people buying from the Chinese website wouldn't have bought the original. Anyways, I'm not trying to justify what this guy did but simply suggesting that more startups should consider serving the Chinese market.

<comment><USER17> What would a positive outcome of serving a group be when you know 99% of them won't buy anything from you?

I'd be very impressed if any outsider managed to sustainably serve the Chinese market, without the very hungry local competitors improving on the solution. Support by itself would be quite a challenge.

<comment><USER18> 99% of them would not have bought the original product because their English skills are not good enough. They would buy a localized Chinese version, which is what the Chinese site from the story was selling. The moral of the story is, Chinese customers want a localized copy of your product. If you don't provide it, someone else will, and that guy might not feel like paying you any license fees.

<comment><USER19> You make it sound like someone who doesn't immediately produce a Chinese translation deserves what they get when someone pirates their app and adds a + to the end. Also, like translation is the only reason someone's app gets ripped off.

</comment></comment></comment></comment><comment><USER20> As many people have said - with HTML5, you basically give your IP away and hope for the law to keep people honest. Making money is those conditions is the old open source conundrum.

I would suggest the OP to sell support contract (sponsored features, priority bug fixing, ...) to the Chinese customers of his copycat. If the situation gets worse (eg: the chinese firm translate their website in English), the engine can be open sourced and try to recover with the support.

<comment><USER21> If the Chinese site is selling the minified/uncommented JS code that you would get from "view source" then he probably wouldn't be in business for long.

In this case, it sounds like he bought a copy of the engine/level editor/build scripts/documentation and is selling that. Is that any different than buying the Unreal Engine Source Code and reselling it for 50% off?

<comment><USER18> Yes. It would be like buying the Unreal Engine Source Code, translating everything into Chinese, and selling that for 50% off.

</comment></comment></comment><comment><USER22> While I condemn what they have done, this is what you're open to if you try to create HTML5 games, as the whole UI is just one wget away.

<comment><USER23> The un-obfuscated code and the level editor isn't available though. I believe the thief bought a copy of Impact to get all the source files - this could have happened with any product.

<comment><USER24> Is it possible to sell just obfuscated library?

<comment><USER25> In theory, yes. In practise, developers wouldn't like it since they can't deal with bugs in it or debug easily with it.

</comment></comment></comment></comment><comment><USER26> This is interesting as I have had similar problems with hackers/copy catters, and it is true that the majority do come from an asian region, but I think its still important to note that the majority of the world's population is also in asia. For me, this article seems to concentrate the online IP problem specifically in asia/China, which in my opinion is simply not the case. For instance, are the Samwers really that much different from what the developer in the article just did? I think the real question is how do you respect IP at a global level where governmental laws can differ largely from one country to the next.

<comment><USER27> >For instance, are the Samwers really that much different from what the developer in the article just did?

yes, stealing a product and selling a stolen product is quite different from copying, iterating on and subsequent scaling a business model.

<comment><USER28> It is only 'different' because we have defined/framed copyright in the way we have.

Infringing copyright is not that different from copying a business model. (You are still copying something from someone else).

<comment><USER27> with this logic (and if it would have always applied) we would have 1 restaurant chain in the whole world, 1 car maker in the whole world, hey we would have only one merchant in the whole world - and worst of all - only one OS maker in the whole world.

<comment><USER28> Reductio ad absurdum.

Care to try to explain 'why' for any of those assertions?

<comment><USER27> the business model of a merchant is to buy something cheap and sell it at a more expensive price. if this business model would be copyrightable than nobody else would be allowed (not until he/she licensed it) to buy something cheap and sell it at a more expensive price.

the one merchant who invented this concept would then be the only merchant in the world, and as the other guy who invented "licensing" would probably not have "licensed" licensing to the merchant (as the merchant would then have a license on licensing and would have just licensed licensing to other people) the merchant would be forever the only merchant in the world.

note: yeah i know this is absurd, but not as absurd as the notion, that business models are copyrightable. (or should not get copied because of .... whatever)

<comment><USER29> Copyright would never apply to business models, patents would. Both copyrights and patents expire, so the scenario you describe wouldn't happen.

I agree that business models should not be protected, though.

</comment></comment></comment></comment></comment></comment></comment><comment><USER30> The situation is unfortunate, but basically inevitable at this stage in China's development. Take a look at the Chinese book publishing industry and you'll see a glimpse of the Chinese way - most books are put online for free by the authors (mostly in their entirety). The publishing companies pick the most popular ones, who get deals to have their books printed & sold in stores. Totally different from the west.

Doing business in China, I have noticed that there is somewhat of a "creativity gap" (as I call it). I believe that as their society evolves and begins to create more of their own IP, the laws will eventually adapt to protect such developments. In the meantime, it's very difficult.

But still, Cisco has had everything copied (down to the model #s) by you-know- who and yet still makes billions (also powering the great firewall). Like Microsoft & Cisco, there are ways to penetrate and dominate the market in the midst of the piracy.

However, if your IP is some "easily de-obfuscated" javascript (and you're a startup), it's a very difficult position and my heart goes out to them.

</comment><comment><USER31> As a Chinese, I feel ashamed about these people. They said on their [forum][0] that "The controversy is inevitable. We offer services only for China so that Chinese customers can buy the same product with a low price."

But please believe me there are a lot of good guys, contributors in China and many of them are so reclusive that you cannot recognize they are Chinese.

[0]: [http://www.kilofox.net/forum/forum.php?mod=viewthread&ti...](http://www.kilofox.net/forum/forum.php?mod=viewthread&tid=469&extra=page%3D1)

</comment><comment><USER24> Html5 code is so easy to be copied, and it seems not trivial to prove who copied who. If my website is totally copied, how can I prove that my one is original? Any idea?

<comment><USER32> If you're really that concerned about it,

1) Print source code 2) Get it witnessed by a notary public

<comment><USER33> As a techie myself, printing and code lie on opposite sides of the spectrum. Printing source code screams "wrong" in the back of my head. And how would one deal with updates, esp nightly updates.

</comment></comment></comment><comment><USER34> The guy who made Impact is from germany, not the US.

</comment><comment><USER35> I hope the op realizes that, by posting this on HN, he/she has just promoted the much cheaper copycat product to the very target market that alleged thief wants to reach...

<comment><USER29> I would bet that most of HN is ethical and aware enough to buy the original.

<comment><USER18> I bet most of HN isn't good enough at Chinese, so they'd rather pay more for the original, because it's in English.

<comment><USER25> And also to support the original developer and definitely receive good support and updates.

</comment></comment></comment></comment><comment><USER11> The unfortunate reality is that even if Softlayer comply with the DMCA request, the site could be moved to a host in a more infringement-friendly jurisdiction.

Perhaps a letter from a Chinese law firm could help to escalate matters. A basic cease and desist letter would be relatively cheap, but then again, from the infringer's stance so far, I can't imagine it would receive a particularly positive response...

<comment><USER36> It may not help much but you'd like to think that Softlayer would at least make the effort.

</comment></comment><comment><USER37> How do you prevent HTML and JS code from getting copied - obsfuscation may not help much. The standard had it coming.

</comment><comment><USER38> There was a similar incident that someone posted on Reddit recently, however, not using HTML5.

[http://www.reddit.com/r/gaming/comments/yc02l/some_company_i...](http://www.reddit.com/r/gaming/comments/yc02l/some_company_in_china_stole_my_game/)

<comment><USER39> The difference is that this is not plagiarism; this is just piracy. The Chinese studio does not claim authorship for this. They have even stated their upstream, making them look like an authorized distributor. They claim to be selling a localized "cracked" version. Shamefully, piracy with a price is not uncommon in China.

It's not quite straightforward why they decide to sell a pirated version. They seem to be specialized in web game development, based on Impact and other framework. I guess they had used Impact for game development, during which they spent some time doing the localization, integration and documentation and felt that was a justification for selling for a price. Their customers, if there are any, are not unaware of the piracy, as in their product forum.

<comment><USER38> I said similar, not the same. Both people had their game ripped off by Chinese companies without their consent who are now selling them. I'd say that's very similar.

>The difference is that this is not plagiarism; this is just piracy.

How is one worse than the other ? Both people's products are being illegally sold by a company in China. Either way, both are losing out on potential profit. One product was straight up copied, the other was (most likely) re- created. Even if the plagiarized game was completely re-coded from scratch, they still stole their ideas, designs, etc...

<comment><USER39> I don't think I was disagreeing with you. It's purely relevant information on the other side of the story.

</comment></comment></comment></comment><comment><USER40> I am Chinese (who resides in Bay Area). Yeah, I feel shame.

</comment><comment><USER41> If the US-based hosting provider ignores DMCA requests, can't you sue the provider?

You could also see if their payment provider is willing to help.

</comment><comment><USER42> These Chinese copy everything !

<comment><USER43> It's such an outrage! Don't they know that some token glass pearls go a long way?

<comment><USER43> The fact that the parent didn't even raise an eyebrow just makes this butthurt reaction even more hilarious. Keep on trucking, and don't worry; there's an idiot born every day, never mind silly old me. Hahaha.

</comment></comment></comment><comment><USER25> The blog's identical, by the way. No effort to translate it.

</comment><comment><USER44> This is an exact use case that SOPA was designed to address. We _vehemently_ hated SOPA, so what's the deal? We can't have it both ways.

<comment><USER45> Personally, I would rather not have SOPA and have this guy lose a few sales.

</comment></comment><comment><USER46> How is this Hacker News, Chinese game portals are full of stolen games. No matter what you will do, they will reverse engineer and remove ads and blocks.

It's china, the land of counterfeit.</comment>


AMP Compatible App Banner - <AUTHOR> https://www.martechadvisor.com/news/mobile-app-dev-marketing/branch-launches-ampcompatible-smart-banners/ <comment><USER2> This will be very helpful for anyone with an app who wants to break their users out of Google's AMP viewer.

Using Universal Links for it is helpful — other AMP banners I've seen so far (Reuters, etc [1]) just redirect users to the App Store even when the app is installed...a little bit frustrating.

1\. [https://www.google.com/amp/mobile.reuters.com/article/amp/id...](https://www.google.com/amp/mobile.reuters.com/article/amp/idUSBRE94119Z20130503)

</comment><comment><USER3> Wow. Very cool.</comment>


Do Not Pass This Way Again - <AUTHOR> https://grimoire.ca/mysql/choose-something-else <comment><USER2> I'd have more time for articles like this if they didn't come from shitty, poisonous places.

The author doesn't care about helping others improve or shedding light on inadequacies of the technology.

The author only cares about strong-arming you with his own dumb opinions. The shortcomings of the software are secondary.

Save yourself some time and don't read this.</comment>


More People Using 'Ninja' As Their Job Title On LinkedIn - <AUTHOR> http://blogs.sfweekly.com/thesnitch/2010/05/facebook_linkedin_ninja.php

<comment><USER2> I would not apply for a job, or hire an applicant, that used 'ninja' anywhere in the text unless there was a dojo involved.

<comment><USER3> Maybe this would help <http://www.dojotoolkit.org/> ?

</comment></comment><comment><USER4> I've also seen one case of "Jedi" being used in a job title: <http://www.meebo.com/jobs/openings/javascriptintern/>

And yup, they use "Ninja" too: <http://www.meebo.com/jobs/openings/javascript/>

</comment><comment><USER5> Maybe they are ninjas.</comment>


Hey Google, What's a Moonshot?: How Silicon Valley Mocks Apollo - <AUTHOR> https://cacm.acm.org/magazines/2019/1/233518-hey-google-whats-a-moonshot/fulltext <comment><AUTHOR> Hoping to hear a lot of others thoughts on this article. Had fun reading it last weekend. I think the standout, to me can be seen in this excerpt.

        One cannot plan out a schedule that depends on
        fundamental scientific breakthroughs, since those
        do not occur on a fixed timescale. A project of
        that kind is about spending money to mitigate risk,
        by pushing existing technologies to levels of
        performance, reliability, or miniaturization that
        would not otherwise be economically practical.
        Given a choice of two technologically workable
        ways to do something, NASA would take the
        better-proven and more expensive way.

That last point, in particular, is one I have trouble with time and again. Picking tried frameworks seems to be something our industry is allergic to. But I cannot seem to understand why.

I get it at the hobbyist level. Playing with new things is awesome. There is also at the "failure is an option" level. If you are just going to go swing as hard as you can, then by all means pick the latest in the hope it lets you knock it out of the park.

If you need to know that what you are going to do will work, though, pick a framework with known qualities and spend the money necessary to mitigate the known failure points.

</comment><comment><USER2> The author paints a picture of a world of absolutes, of only black and white. I tend to see from experience that a vast grey area exists in the definition of what it means to "innovate".

Instead of putting down and sneering at Alphabet's attempt to build and create, why not try to offer some constructive feedback instead if you believe what they're doing really is so flawed. This pessimism and cynicism that seems to emanate towards those who attempt to take risks and try new things always has greatly perplexed me.

<comment><AUTHOR> I think the suggestions were essentially not to conflate "moonshots" with innovations. If you are planning big things, you can't do that around scientific innovation. Those don't happen on schedule. Instead, big things are done by pushing the limits of what you know. Some innovations _may_ come out of them, but they were not accounted for in the planning.

That is, it wasn't sneering at the attempt to build and create, per se. But it was saying that this is not at all the same as what the Apollo missions were. There are some hints at similarities, but by and large, they did go against much of the idea of incremental innovations.

So, are they impressive? Yes. Absolutely. Fun even. But if you are going to set your sights on something big, you will have to spend an absurd amount of money. Near bankrupting levels of it, for most people.

Similarly, if you want to succeed, you can't bank on innovations. Eventually, you'll fail to hit an innovation and will be in trouble. Instead, spend the effort to mitigate known failures and build towards milestones.

</comment></comment><comment><USER3> Serious question how many other corporations spent billions of dollars for over a decade on a technology that people still aren't very confident will work like Google has been doing with self driving cars? I know utilities and aircraft manufacturers have made bigger investments but with much surer returns.

<comment><AUTHOR> Has Google spent billions on self driving cars? And, car manufacturers are still spending a ton of money into the same problem space.

Google does have R&D. It is just amusing to see that they made a division that they tried to give a new name to, that isn't living up to what they named it after. (At least, that is the point I got from the article.)</comment></comment>


Data Science Workflow: Overview and Challenges - <AUTHOR> https://cacm.acm.org/blogs/blog-cacm/169199-data-science-workflow-overview-and-challenges/fulltext <comment><USER2> Nearly four years after this was written, there is still no satisfying solution to providence tracking in a data science workflow. The few solutions that do exist tend to be too opinionated to catch on.

I've gotten a lot of mileage out of hacking some provenance tracking into a plain-old-Makefile workflow, but it's hard to balance human-readable makefiles and the amount of hackery it takes.

<comment><USER3> I've tried a few other techniques, but there is something that is really hard to beat about the plain Makefile. Eventually, it can become unwieldy, but for small-medium projects, it's a life saver. Combine that with git, and you've got a pretty robust system. The only real downside is that when you have very large initial inputs, it isn't practical to store those in the same repository.

That is my goto combinations for bioinformatics workflows that don't need to run on a cluster. (A Makefile variant of mine is my go-to for clusters). I've experimented with Docker workflows, which while in theory are nice, you'll always require some sort of organizing script to document the analysis. (Docker is still nice for capturing program versioning/configuration though!)

<comment><USER2> I like the Cookiecutter Data Science approach of keeping data out of the repo: [https://drivendata.github.io/cookiecutter-data- science/](https://drivendata.github.io/cookiecutter-data-science/)

I usually work with data on an internal cloud anyway, so instead of storing data on my local disk I just keep text files that contain the URI of the cloud resource. I treat the cloud resources as immutable once created so that the "pointer" file's modified time is consistent with the modified time of the data on the cloud.

<comment><USER4> I really like their approach, but their template is too opinionated towards python + makefiles. At my company we use mixes of R, python and Scala, together with airflow. We have been toying with our own templates, and should release them eventually

<comment><USER2> Yes, I actually only use Python for notebooks, so I mostly ignore the Python specific parts. I think their data/ directory structure (along with keeping it out of the repo) is a sane approach though.

(I don't actually use their template, I just use the directory layout as guidance)

</comment></comment></comment></comment></comment><comment><USER5> Philips CDE tool [1] looks like such a beautiful thing!

> "Prepend any set of Linux commands with the "cde" binary, and CDE will run > them and automatically package up all files (e.g., executables, libraries, > plug-ins, config/data files) accessed during execution."

Then, put this in a Docker if you want, but so awesome not be _required_ to do that!

I think more orthogonality is needed, and less fluff and accidental complexity in all its forms, including "buzzword" tech stacks.

[1] [http://pgbovine.net/cde.html](http://pgbovine.net/cde.html)

</comment><comment><USER6> Lately I have been looking into data science workflows and tools. One of the most promising ones I have seen is [https://pachyderm.io](https://pachyderm.io)

Data is stored and versioned on a custom docker-like filesystem. Processes are defined by yaml and run based on incoming new data to the filesystem. The processes can be versioned with the data and results, written into the fs are also versioned. It seems like a very good approach to many of the difficulties.

I'm not affiliated with them, but vcs helped my programming so much that I am looking for the best applications of versioning to data management.

Edit: this is mainly concerned with the center box, analysis and records. For provenance you get a consistent snapshot of the incoming data, but that data is fixed. For my work consistency and repeatability is more important than accuracy with respect to an external source.

</comment><comment><USER7> > As an extreme example, my former officemate Cristian Cadar used to archive > his experiments by removing the hard drive from his computer after > submitting an important paper to ensure that he can re-insert the hard drive > months later and reproduce his original results.

Perhaps it would be an idea to use a virtual machine such as VirtualBox instead?

<comment><USER8> I have recently started to think about designing a good workflow for this kind of thing, based on tools like Docker, Nix, Camlistore, etc. The following questions will need to be addressed:

1\. Setting up the requisite environment inside a container. _Making all "hidden state" explicit_ \-- by specifying the state of every object in the dependency tree (including specifying things like the seed for a random number generator, or a particular noise source).

2\. Should the experimentation/improvements happen inside the container, or should it happen on a desktop, with a snapshot of the project (when committed) generating a container version? One could update a Docker image depending on git tags, with project diffs corresponding to container layers.

\- It would be great if one could use a script to specify the "state" in a project to be able to move it into a container, at any point in the process.

3\. Could one store the output files using some form of content-addressable- memory, so that each output file remembers the "context" in which it was generated?

<comment><USER7> Perhaps a snapshotting filesystem could help too.

</comment></comment></comment><comment><USER9> Full Disclosure, I am the Chief Data Scientist of Domino Data Lab ([https://www.dominodatalab.com](https://www.dominodatalab.com)), a company that builds tools for collaboration/scaling of data science a quantitative research teams. I spoke about our view on data provenance at UseR! 2016 and if you're curious you can watch the video here [https://blog.dominodatalab.com/providing-digital- provenance-...](https://blog.dominodatalab.com/providing-digital-provenance- modeling-production/). The rest of this comment is not about reproducibility and provenance however, it's mostly about collaboration.

I _really_ like this write-up. It's really quite prescient for a blog post from 2013! There have been amazing advances in the tooling for individual data scientists. RStudio, Jupyter, and Zeppelin notebooks have provided a really fluid REPL for data science. This has really compressed the workflows he discusses, and provides feedback and direction to data scientists much more quickly than the program oriented process. It's interesting to note how an unexpected direction (notebooks) can impact praxis.

I refer to these two visualizations of the data science process often. The first is by Szilard Pafka, and it details the workflow he has experienced by having models in production for well over a decade at this point. It's available here:

[https://raw.githubusercontent.com/szilard/datascience-1slide...](https://raw.githubusercontent.com/szilard/datascience-1slide/master/ds.png)

What I really like about this is that it really shows the centrality of model validation. From model validation, you can often find yourself having to go back to exploration, cleaning/transformation, etc. Guo's diagram calls this preparation, which only has an out-arrow. Preparation is not something that is one-and-done, you return to it often in the DS lifecycle.

I also really like this particular visualization, it's from UC Berkley and it's the "understanding science" model of the scientific process.

[http://undsci.berkeley.edu/flowchart_noninteractive.php](http://undsci.berkeley.edu/flowchart_noninteractive.php)

Much like Guo's or Szilard's diagram, the centrality of testing/validation/analysis is telling. The nature of collaboration is more explicit in this model. In the post, Guo states:

 _Lastly, data scientists often collaborate with colleagues by sending them partial results to receive feedback and fresh ideas. A variety of logistical and communication challenges arise in collaborations centered on code and data sharing. " I think this is particularly insightful. The challenges of scaling a data science team are different often than those of scaling a software team (for example), and I think he foresaw that before a lot of folks did._

I agree with this, but with two additional points. Often colleagues are from very different disciplines. Business stakeholders or subject matter experts that don't understand the analysis, but they understand some feature/outcome with depth. In the Berkeley understanding science diagram, I really like that it's explicitly called out as "community analysis and feedback." I think that's an important distinction that it's not just other data scientists that provide feedback, the artifacts of the DS process have to be accessible to a wide assortment of backgrounds and skills.

It's also interesting that from community analysis and feedback you can find yourself in any of the stages, exploration/discovery, testing, and benefits and outcomes. This is why organizations find themselves challenged to measure the progress of their DS teams, and why forecasting the amount of effort that will be required can be daunting without wide error bars. Data science is unique in that the data can be correct, the pipeline can be reproducible, the model perform perfectly in cross validation, but when it's put into production it can be completely wrong. Prediction about prediction is hard.

I do like how all of these models, the Szilard model, the Understanding Science model, and Guo's model share a lot in common. The loopbacks, the different phases, and the centrality of analysis/testing/validation are shared among all of them. My intuition is that getting that part of the process right, in a fluid way that scales beyond one researcher, is often the biggest roadblock to scaling quantitative research.

</comment><comment><USER10> This is really interesting. Firstly, I wonder how fundamental notebooks have becoming to the preparation phase in the last couple of years (to avoid [https://cacm.acm.org/system/assets/0001/3683/long- filenames....](https://cacm.acm.org/system/assets/0001/3683/long- filenames.jpg)).

It also strikes me that a lot of these problems in dissemination have been solved to a large degree in software development. I guess 'writing code everyday' and 'knowing how to architect systems and use software development principles' are getting increasingly less mutually exclusive, which lends itself well to further abstractions.

Distribution is one of the things we deal with most frequently at [https://nstack.com](https://nstack.com). We let data scientists deploy their models into bit-for-bit reproducible modules which run in the cloud and can be composed with various data sources. Because these are semantically versioned and packaged on the server as bit-for-bit reproducible builds, this solves the fact that "one's own operating system and software inevitably get upgraded in some incompatible manner such that the original code no longer runs". Our background was in writing programming languages, so we took a lot of the ideas of type-safety and composition and applied them to this problem.

Actually the most common way we see dissemination solved in enterprises is folks writing back to the warehouse and using Looker / Tableau to visualise, with a workflow like:

        import Redshift:0.1.0 as Redshift
        import CustomerModel:0.0.2 as Classifier

        def workflow = Schedule { interval = "Daily"} | Redshift.query("cookies.sql") | Classifier.predict | Redshift

Looking forward to jumping into his [http://pgbovine.net/cde.html](http://pgbovine.net/cde.html) project. We explored a ton of solutions here (including Nix), but ended up settling on btrfs.

<comment><USER11> >It also strikes me that a lot of these problems in dissemination have been solved to a large degree in software development.

Yeah, this is exactly how we feel too! Git solves this so well for software development which is why Pachyderm ([http://pachyderm.io/pfs.html](http://pachyderm.io/pfs.html)) build a distributed file system with those same principles in mind.

</comment></comment><comment><USER12> Do a lot of these "data quality" problems go away if you were simply to use a relational DB, and related best practices, like table versioning, PKs, using a last_updated timestamp for each row, etc.?

</comment><comment><USER13> Shameless plug: looking specifically at the Dissemination Phase part, I can't help but thinking he would love Code Ocean ([https://codeocean.com](https://codeocean.com)). It addresses each of his points:

\- distribute software (execute with a single click)

\- reproduce results (published code & data - yours and others' \- is archived with its environment)

\- collaborate with colleagues (built-in to the system)

(Disclaimer: I work at Code Ocean. We're in beta.)

<comment><USER5> Suggestion: Keep an eye on Go as an emerging data science language (See [http://gopherdata.io/](http://gopherdata.io/) for more info)

</comment></comment><comment><USER4> I am amazed that there is no mention of airflow in this thread.

<comment><USER14> Agreed. It seems to me that Apache Nifi (for provenance/replay) + jupyter/zepplin/r-studio (for exploring) + airflow (for final workflow) would be a good, open source starting point.

<comment><USER4> Never heard of Apache Nifi. Will dig into it! What is your basic use case for it?

</comment></comment></comment><comment><USER15> i'm kinda confused what the point of this writeup was? just something to have on your resume? i don't think anybody involved in research let alone data science had anything to gain from it, and it certainly didn't propose any solutions...</comment>


Sunshine App Turns Everyone into a Roving Weather Reporter - <AUTHOR> http://www.wired.com/2015/10/clever-app-turns-everyone-roving-weather-reporter/ <comment><USER2> What's their business model?

</comment><comment><USER3> Isn't this just Weather Underground in nicer clothing?

<comment><USER4> >Using crowdsourced reporting, readings from the barometric pressure sensor in the iPhone 6 and latest iDevices, and predictive algorithms that overlay all that information on a map to deliver 18-hour forecasts, Sunshine generates what Stroponiati calls "weather forecasting at the street level."

So no. This was one of the really cool things predicted, if not explicitly mentioned, when Apple announced new iPhones would have a barometer; hyper- local readings can only improve weather information, which is sorely needed. Admittedly this isn't the first app to do this, but the idea is huge. The concept that everyone could be constantly making weather predictions better and more accurate for everybody is a big deal.

We've come a long way since using metar data you grabbed from your nearest airport via IRC.

<comment><USER3> Right, I read the article too.

Weather Underground has thousands of crowdsourced weather stations scattered all over the world with lots of sensors, including barometers, anemometers, hygrometers, rain-gauges, etc.</comment></comment></comment>


A Story from Google Shows You Don't Need Power to Drive Strategy - <AUTHOR> https://hbr.org/2015/04/a-story-from-google-shows-you-dont-need-power-to-drive-strategy <comment><USER2> Paywall</comment>


Google Feedburner - <AUTHOR> https://feedburner.google.com/ <comment><USER2> Link takes you to a login page. From the Wikipedia article [1]

>FeedBurner is a web feed management provider launched in 2004. It provides custom RSS feeds and management tools for bloggers, podcasters, and other web- based content publishers. Google acquired FeedBurner in 2007.

Whatever this is, it surely wouldn't be wise to depend on this for your business.

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

<comment><USER3> It was a very popular service back at the hey-day of blogs and RSS readers. FeedBurner gave blog authors really great statistics and information about the feed, and they created a nice a static URL to point readers to, no matter where the blog was hosted. We didn't have a lot of that statistical information easily available back then (like how many people were subscribed) with the common blog platforms (like Moveable Type or Blogger). FeedBurner also provided a way to interject ads into the feed, since the person reading it wasn't seeing the ads on the normal site.

I believe you're quite right, it would be extremely unwise to use this tool at this point. I'm sure it will be vanquished with no warning.

</comment></comment><comment><USER4> Google service with a self-generated Traefik certificate, well, I'm not gonna use that.</comment>


Live ESP Experiment: Sexual Arousal Going Backwards in Time - <AUTHOR> http://parapsych.me/

<comment><USER2> Re "this only works for straight males" - the research that I have read indicates that females are aroused by a much broader range of visual images (even images of monkeys), whereas males are focused on the images which are in their sexual preference realm. [I believe I read this in "Sex Before Dawn", a book I quite enjoyed.]

So, anyway, it might work for females too.

I was going to try it out, but after the first picture, I realized I should probably wait until I get home. :)

<comment><USER3> _the research that I have read indicates that females are aroused by a much broader range of visual images (even images of monkeys)_

Physically aroused, not psychologically. There is no way to say this delicately but the women in the study would start lubricating when witnessing anything sexual in nature but they weren't on the verge of orgasm or anything. They could still find the imagery unpleasant and in fact didn't actually _feel_ aroused while witnessing the monkey business. The researchers hypothesized that this had to do with protecting the lady parts even in a situation of unwanted sex.

<comment><USER2> Good point, thanks for making that distinction.

I think I would still reword "this will only work for straight males" to "this will only work for those that are aroused by men doing women" (or whatever the subject matter is, in this case). The audience is probably bigger than originally presumed.

</comment></comment></comment><comment><USER4> I feel like the fact that I can choose how many times to play might throw things? If I were more likely to stop after non-arousing image than after an arousing one, what will that do statistically?

<comment><AUTHOR> Even if you decide to stop having kids after your first son, the population of males / females should be split evenly, so I don't think it would make a difference.

<comment><USER5> I don't think that's true.

      public class test {
          public static void main( String[] args ) throws Exception {
              int boys = 0, girls = 0;
              for (int i = 0; i < 1000000; i++) {
                  boolean isBoy = (Math.random() >= 0.5);
                  while (! isBoy) {
                      girls++;
                      isBoy = (Math.random() >= 0.5);
                  }
                  boys++;
              }
              System.out.println( "Boys: " + boys + "\nGirls: " + girls );
          }
      }

<comment><USER6> I don't know what output you're getting, but this is what I got:

      $ java test
      Boys: 1000000
      Girls: 996931
      $ java test
      Boys: 1000000
      Girls: 1001605
      $ java test
      Boys: 1000000
      Girls: 1001656
      $ java test
      Boys: 1000000
      Girls: 999473
      $ java test
      Boys: 1000000
      Girls: 1000645

Looks pretty even to me.

Besides, if you compute the girls/boy ratio mathematically, you get

      0/2 + 1/4 + 2/8 + 3/16 + 4/32 + 5/64 + ...

which does converge to 1.

<comment><USER7> This was recently released as an old Google interview question and sparked some controversy.

This MathOverflow page [1] is a good (opinionated) summary. The best answer's author believes that with finitely many families the ratio actually doesn't work out evenly, but does converge to 50/50 with infinitely many families.

[1] [http://mathoverflow.net/questions/17960/google-question- in-a...](http://mathoverflow.net/questions/17960/google-question-in-a-country- in-which-people-only-want-boys)

<comment><USER8> Well, that's pretty obvious. If it involves an infinite sum, but you only have n people, you don't quite get to that infinity-th guy ;)

<comment><USER7> The answer suggested that even the expected value is never going to be 1/2 but instead something similar to 1/2-1/(4k) for k families which stop having children after the first boy. So, it's a bit more sophisticated than that involving situations where you test the average percentage of an infinite number of islands with k families each.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> You should maybe consider tracking which images are more likely to lead to a correct curtain selection. Then run an additional survey where subjects rank the same set of photos for hottness/arousal level, and see if there is a correlation.

</comment><comment><USER10> Can somebody who knows math comment - There is a 5 % difference on a sample of 700. Not huge, but that seems statistically significant? Please post the source code so we can verify, and try this ourselves...

<comment><AUTHOR> likely to happen once in 50 experiments or so.

I think we need more samples to gauge significance.

Why do you need to try this offline? I'm not opposed to the idea, just curious.

<comment><USER10> Not offline, just on our own servers, so we can be sure it's random. But I didn't realize it was written in Javascript, so anyone can inspect the code.

I don't like that it shows you your percentage as you go. Aren't people more likely to quit when their Porn finding skills are higher?

Also, maybe i've been spoiled, but some of the 'erotic' pictures don't seem that erotic.

However... it seems like the #'s are evening out now, both around 51%

I think with a bit of re-design this could make for a great, and useful experiment.

<comment><AUTHOR> Whether the picture appears on curtain 1 or 2 is predetermined, and the server provides proof in the form of a hash. You can see that on the bottom under your stats.

Yeah, I had a tough time finding erotic pictures. If you have a better idea of where I can find some to hot-link, also for gay / female audiences, lmk.

<comment><USER10> What are you talking about, of course I have no idea where to find those kind of pictures... although, and this is pure speculation, a Google images search with safe search turned off might return some interesting results.

</comment></comment></comment></comment></comment><comment><USER11> Is anyone actually taking this _really_ seriously? I am still waiting for the prank to be revealed...

<comment><USER12> What do you mean?

Somebody read about an experiment with surprising results, found out that it would be possible to turn the experiment into a website and did just that. I think that's great.

<comment><USER11> I am talking about the original experiment. I am wondering whether people actually give ESP a serious possibility.

I am all for running experiments and finding out new things, and if this really happens to be a ground-breaking new discovery, great! That being said, what's more likely? That someone just _revolutionized_ physics and completely changed our concept of time, OOOOOR that there is something wrong with the experimental methodology? I don't know about you, but my 23 years on Earth make me think that the latter is quite a bit more probable...

<comment><USER12> I think it's rather unlikely that ESP is real. It's a reality of statistics that scientists will from time to time get wrong results; that and possible methodological problems leave all scientific results (except maybe the most obvious ones) up in the air until they have been confirmed again and again and again. (Psychology could also pick a smaller alpha value like maybe physicists and avoid being wrong more often but it's questionable how practical such a change would be.)

Still, this is a neat DIY experiment. There is quite a bit you can criticize about the methodology but that discussion was pretty fun. Oh, and this experiment doesn't even seem to confirm ESP. (I think. I didn't break out the calculator.)

</comment></comment></comment></comment><comment><USER13> I just saw 2 pics and they were definitely _not_ erotic. Maybe that explains the failure.

</comment><comment><AUTHOR> This is in response to <http://news.ycombinator.com/item?id=2068730>.

</comment><comment><USER14> There is a big hole in this experiment. Think about it, let's say the future me choose 1 curtain in round 5.And I was wrong so I see nothing and move on to round 6. And the current me reaches round 5. Since in the future, i do not see any sexual photo, there's no future (arousal) information coming back to help me. (well, maybe the waiting punishment may discourage me to pick the same one). If I got to see the sexy photo even if i pick the wrong one (with time delay to separate it from picking the right one), then I might be motivated to send back my arousal feelings back to the past so that i can see the picture without waiting.

</comment><comment><USER15> anecdotally i was able to get 2/3 of porn and around 60% non-porn over 60 rounds...not statistically significant in itself, but piques my interest in this line of thought

pie-in-the-sky thinking: is there some 'quantum immortality'-style argument that can be made for this sort of effect? quantum immortality is a somewhat fringe many-worlds-quantum-physics argument that an observer can never experience death and thus will always find him/herself in a universe in which they are alive (e.g. schrodinger's cat will always find itself in a universe where the atom did not decay). that is, in certain situations, a random event (e.g. decay of atom) would seemingly cease to be random (e.g. from the POV of schrodinger's cat) due to its consequences in the future (cat death by fumigation).

also, if this arousal-esp-effect actually is real (obviously exceedingly unlikely due to how bizarre its implications would be) i wonder if the human choice element would even matter; i'd like to see a similar experiment where everything is the same but there is no human choice and the curtains are just randomly chosen. the effect (if it actually did exist) might be due not to somehow arousal traveling backwards informing our consciousness but somehow arousal traveling backwards to influence what universe we find ourselves in.

</comment><comment><USER16> I think the reason for the ESP is that people can decide to stop while they are ahead. The only legit way to do it would be to present a predetermined number of pictures and throw out the results if the entire sequence is not finished.

This is the same problem as testing for statistical significance too early.

<comment><USER17> judging from my own behavior, I think the bigger effect is quitting after a long string of losses, but YMMV

</comment></comment><comment><USER18> There is a nice paper explaining why the "PSI paper" is a sign that psychologists must adopt better statistics: <http://www.ruudwetzels.com/articles/Wagenmakersetal_subm.pdf>

There is a _really nice_ paper that finally explained to me why Bayesian statistics might be superior to frequentist ideas for these purposes: <http://pcl.missouri.edu/sites/default/files/Rouder.bf_.pdf>

</comment><comment><USER19> I don't know. Some of those nonerotic photos are doing it for me :)

<comment><USER20> Not sure if this is a sleight on myself or to the study, but I did not realize there were non-erotic photos in this study until I read your comment. I was confused with the nonerotic stat being presented below the erotic ESP stat during the study iterations.

</comment></comment><comment><USER21> Well done! I really wanted to do this myself :D

<comment><AUTHOR> :) Glad you enjoyed it.

<comment><USER21> Any plans to do the other test too?

<comment><AUTHOR> Now I do. Which one should I do?

<comment><USER21> The one where you show a bunch of nouns (around 25 I think). Then ask the user to type in as many as they can remember. Then make the one group look at the nouns again after the test, and the control group just left alone.

If his theory is right, the group that studied after the test should do better I think.

</comment></comment></comment></comment></comment><comment><USER22> Let me guess, this is actually a disguised paid-referrer site for Naughty America.

</comment><comment><USER23> I don't understand why you're making us wait 10 seconds?

<comment><AUTHOR> I thought I had to put _some_ delay, so as to prevent users from blowing through the experiment.

I'm not sure what to set it as. What seems appropriate to you?

<comment><USER24> Well, IF there's any future-reading effect to be found, and IF it diminishes over time, then shorter delays would show a stronger effect.

</comment></comment></comment><comment><USER25> paf paf paf</comment>