Jenkins 2.0 Beta - <AUTHOR> https://jenkins.io/2.0/ <comment><USER2> It's cool that they're promoting the "pipeline" plugin to a built-in feature, but the devil is in the details.

Under the hood, it's implemented by taking a script written in a "DSL" (it's actually Groovy code), transforming it into continuation-passing style, and serializing its state. This is pretty cool from a theoretical CS perspective, but having played with it a little bit, the implementation seems very fragile. There are a number of long-standing unfixed bugs that cause the transformed code to misbehave in ways that you wouldn't predict just from looking at it, even if you're experienced with Groovy. I ran into a couple of them just during a brief period of experimentation. For instance:

[https://issues.jenkins-ci.org/browse/JENKINS-27893](https://issues.jenkins- ci.org/browse/JENKINS-27893) (varargs are mishandled)

[https://issues.jenkins-ci.org/browse/JENKINS-28277](https://issues.jenkins- ci.org/browse/JENKINS-28277) (currying doesn't work)

[https://issues.jenkins-ci.org/browse/JENKINS-26481](https://issues.jenkins- ci.org/browse/JENKINS-26481) (calling a closure in a loop doesn't work right)

[https://issues.jenkins-ci.org/browse/JENKINS-28183](https://issues.jenkins- ci.org/browse/JENKINS-28183) (killing a pipeline job doesn't clean up its state properly)

And there are inherent limitations to the approach; for instance, you can't store any non-serializable values in local variables, which means simple things like foreach loops don't work (because you can't serialize an iterator).

I really like the idea behind the Pipelines feature, in principle. But I think building it around a general-purpose programming language, and then failing to support all of that language's features, is a recipe for headaches. If you never try to do anything more complicated than what's shown in the examples then you should be fine, but the borders between what works and what doesn't are very ill-defined.

EDIT: Oh yeah, and there's a surprising amount of functionality that isn't documented anywhere except for blog posts and JIRA tickets.

<comment><USER3> > Under the hood, it's implemented by taking a script written in a "DSL" (it's > actually Groovy code)

It's Groovy code? The announcement page doesn't mention "Groovy" anywhere, let alone "Apache Groovy" which is what the backers of Groovy are meant to refer to it as since last November (2015) when it was promoted from the Apache incubator by the ASF.

<comment><USER2> Yep. You'd think this kind of thing would be considered significant enough to mention, but apparently not. They do mention it in the "tutorial", which AFAICT constitutes the entirety of the official documentation: [https://github.com/jenkinsci/workflow- plugin/blob/master/TUT...](https://github.com/jenkinsci/workflow- plugin/blob/master/TUTORIAL.md#understanding-pipeline-scripts)

> A pipeline is a Groovy script that tells Jenkins what to do when your > Pipeline is run.

</comment></comment></comment><comment><USER4> It's great to see that Jenkins is following the path blazed by GoCD[1] and Concourse[2] to make the pipeline concept more central.

That said, this appears to be achieved by promoting the _plugin_ into the default installation.

It also misses some of additional the advantage Concourse holds over Jenkins and GoCD: build configuration is purely declarative and can be checked in with the project. You know what version of your pipeline built the software at any point in its history. And you have a reasonable shot at recreating that build, because every task in every job is run in a fresh container.

These are killer features, in my view. Jenkins can be extended with plugins to try to sorta-kinda do either or both, but it's not part of the central organising concept of how it works. Windows can run some POSIX apps, but it's not a nix.

Further out, the Jenkins pipelines are tricky to do fan-out/fan-in with; in Concourse it's trivial. You have to lay out your pipeline in Jenkins, Concourse will lay it out automatically based on declarative information about each job. Rather than a very rich API for plugins, Concourse boils the unit of extension down to "resources", which with three actions (check, get, put) can model points in time, git commits, S3 files, version numbers, interacting with a complex product repository and so on.

I used to _tolerate_ CI/CD, as a necessary and worthy PITA. Now I find myself actively looking for regular tasks, resources, sanity checks and so on I can put into Concourse, so that I don't have to remember them or write them up in a wiki.

Disclaimer: I work for Pivotal, which sponsors Concourse development. But I wouldn't rave about it if I wasn't such a convert.

[1] [https://www.go.cd/](https://www.go.cd/)

[2] [http://concourse.ci/](http://concourse.ci/)

<comment><USER5> Yeah, version control of Jenkins itself has always scared me. There seems to be a pattern that we go through.

(in the beginning, there was light...)

* Create a small, tight, single-purpose Jenkins job

* Add a small tweak to it

(repeat adding tweaks)

(realize the Jenkins job now contains MANY different configurations options and the job itself is now a shell script in its own right)

* Sweep the "job" into a shell script. Check in said shell script

* Back up the Jenkins config, and hope no one asks why something's happened.

I now have a plugin that automatically checks in the Jenkins config to source control, but it again doesn't solve the problem of matching up a particular jenkins artifact to exactly what built it, and why.

<comment><USER6> We use Netflix's Job-DSL to keep Jenkins job configuration in source control (and to allow easier reuse than offered with job reuse plugins).

[https://github.com/jenkinsci/job-dsl- plugin](https://github.com/jenkinsci/job-dsl-plugin)

<comment><USER7> I use [http://docs.openstack.org/infra/jenkins-job- builder/](http://docs.openstack.org/infra/jenkins-job-builder/), which is great as well: Jenkins configuration in a simple YAML file under source control.

</comment></comment></comment></comment><comment><USER8> I've been tasked with implementing a large Jenkins deployment to support a ton of teams and I don't think I've hated a piece of software so much in such a long time. The past few years I've been using other CI systems like Circle and I totally forgot how much you have to fight Jenkins.

The UI is atrocious, job state is spread out among tons of crappy xml files, and the plugin system causes tons of headaches. If you're going to have a system that forces you to use the UI for the most part, rather than scripting up config files that I can load with some automation, at least make that UI nice to use.

Hopefully 2.0 is fixed up, but personally I'd never reach for Jenkins as a CI system if it wasn't part of a client's requirements.

<comment><USER9> You should definitely check out Jenkins Job Builder - [http://docs.openstack.org/infra/jenkins-job- builder/](http://docs.openstack.org/infra/jenkins-job-builder/). It lets you store job configs as nice yaml files which can be checked in to version control. It's what openstack uses to manage jobs for the many many openstack projects. I've been using for a year or so at work and highly recommend it.

<comment><USER8> I'm not in charge of writing the jobs, just standing it up and migrating a few dozen teams onto the system. Some are migrating from previous Jenkins systems, so the majority have old jobs in config.xml files. The Job Builder makes everything a little bit better, I've seen a few people using it already.

I'd still never use Jenkins on my own though, I'd just use Drone or pay CircleCI.

</comment></comment></comment><comment><USER10> I wrote these posts recently about stateless Jenkins deployments:

[https://zwischenzugs.wordpress.com/2016/01/24/ci-as-code- sta...](https://zwischenzugs.wordpress.com/2016/01/24/ci-as-code-stateless- jenkins-deployments-using-docker/)

[https://zwischenzugs.wordpress.com/2016/01/30/ci-as-code- par...](https://zwischenzugs.wordpress.com/2016/01/30/ci-as-code-part-ii- stateless-jenkins-with-dynamic-docker-slaves/)

[https://zwischenzugs.wordpress.com/2016/02/25/922/](https://zwischenzugs.wordpress.com/2016/02/25/922/)

Does anyone know if any effort has been put in to make Jenkins more 'programmable' in 2.0? I had a quick look at the bumph recently but couldn't see anything pertinent.

<comment><USER11> I agree that the lack of an easy, declarative deployment capability is one of Jenkins' biggest flaws and doesn't get near enough attention.

</comment></comment><comment><USER12> Very exciting -- a new major version of Jenkins has been a long time coming.

> "Jenkins 2.0 is a drop-in replacement of the Jenkins 1.x series of releases > and fully backward compatible. There is practically no reason not to upgrade > once 2.0 is released."

Skeptical, but optimistic about this claim.

I hope that the Jenkins configuration format is something that can be manipulated more easily in the new version.

<comment><USER13> I'll believe it when I see it -- the Jenkins ecosystem is one of the worst offenders I've worked in with regards to things getting arbitrarily broken by a point release. I shudder to think what a major release will do.

<comment><USER14> We look at the list of available plugin updates and cringe. You never know if one plugin update will break something else, and then it's a game of downgrade/upgrade until things mostly work.

<comment><USER15> I don't update or install plug-ins without doing a taking a snapshot of the Jenkins machine. A new plug-in version may force various other plug-ins to update, and thereby break the many plug-ins that have incomplete dependency specifications.

I also found that downgrade may not fix the problem, as the upgrade may change your configuration files to use newer features, causing Jenkins to choke on them once downgraded.

Jenkins is a spiderweb of plug-ins held together by shoestring. It's a very useful tool, but extremely fragile.

</comment></comment></comment></comment><comment><USER16> I hope Jenkins 2 will fix Jenkins 1's tendency for unclear and ambiguous user interfaces. Many configuration input fields have weird names, and their explanation fields can confuse me even more, and when using plugins, the whole configuration layout can quickly become a mess - Jenkins 1 often gives me the feeling of a mighty but hard-to-use Japanese pro tool lost in translation.

</comment><comment><USER17> Jenkins by itself is eating too much memory on our buildservers, which can be used more wisely. Using compiled language could help that - e.g. Drone.io CI written in Go: [https://drone.io/](https://drone.io/)

You can find it's sources here: [https://github.com/drone/drone](https://github.com/drone/drone)

I just hope it would be able to work without docker, like jenkins.

<comment><USER18> Jenkins too is built on top of a compiled language. Too bad it is JVM, which is a hog when it comes to memory... Point being that a "compiled language" is no guarantee of a low memory usage.

<comment><USER17> OK, I meant "compiled into native code" language.

<comment><USER19> Still doesn't change much when said language can be JIT'ed.

</comment></comment></comment></comment><comment><USER20> It is clear that build stages should be first class citizens. We based GitLab CI on the awesome work that GoCD and Concourse did in this respect. Our DSL allows you to assign jobs to stages [https://gitlab.com/gitlab-org/gitlab- ce/blob/43e49f52e30199c...](https://gitlab.com/gitlab-org/gitlab- ce/blob/43e49f52e30199c9724329e71f375874eb76d554/.gitlab-ci.yml#L29) and jenkins seems to have picked a similar syntax.

What is interesting is that Jenkins has a DSL but that this is not part of the repository. This means that it is hard to extend when you introduce new functionality and when you push an old branch it might not work anymore. I think that the model that Travis CI pioneered clearly wins.

I'm torn on the plugins. One one hand it is great to be able to plug so much in. But the plugins have access deep into the Jenkins internals, preventing a rewrite of core functionality. Our idea is: "Because GitLab is open source the enhancements can become part of the codebase instead of being external. This ensures the automated tests for all functionality are continually run, ensuring that plugins always work. It also ensures GitLab can continue to evolve with it's plugins instead of being bound to a plugin API that is hard to change and that resists refactoring. This ensures we have many years of quality code and great monthly releases ahead of us." [https://about.gitlab.com/direction/#vision](https://about.gitlab.com/direction/#vision)

<comment><USER21> Almost all of what you said here is totally wrong.

>What is interesting is that Jenkins has a DSL but that this is not part of the repository.

Netflix job dsl plugin, Jenkinsfile pipleline, dotci all of these let you put a .travis.yml like file in your repo.

>But the plugins have access deep into the Jenkins internals, preventing a rewrite of core functionality.

Plugins don't have deep access to jenkins internals they use clearly defined "extension points" .

I know you are trying to plug gitlab but 'our stuff is better because we don't allow plugins' is not exactly a plus. Jenkins is so popular because it can customized via plugins to wide range of use cases.

<comment><USER20> Thanks for educating me!

1\. Cool that there are different plugins that let you check the configuration in a dotfile.

2\. I was not aware they used extension points instead of something more intrusive.

3\. Obviously I like GitLab and try to promote it. But I post this too to see what others think and to learn. Turns out I had a lot to learn in this case. I still think that some items in Jenkins should be part of the core, such as the pipeline. But I agree that plugins are needed for some cases. For deploys we're thinking about plugins for GitLab CI too in [https://gitlab.com/gitlab- org/gitlab-ce/issues/3286#note_402...](https://gitlab.com/gitlab-org/gitlab- ce/issues/3286#note_4027611)

</comment></comment></comment><comment><USER22> I've been using Jenkins for years, and have been overwhelmingly happy. 2.0 is a big step for the project, congrats!

The flexibility Jenkins provides as build system is enormous. The plugin community is also a huge benefit -- chances are, if you have a need, there's a plugin for it.

<comment><USER23> I feel the same. Using Jenkins since 5 years now on a daily basis. Yet I also feel it may be coming too late. During the past 5 years our projects have grown to a size were we're expecting to have more than 1m DAU end of this year, and I don't think Jenkins will survive this journey with us. I'm speaking about scripted Docker container baking & deployments to e.g. ECS, ECR, asset uploads and versioning, basically release management. I'm looking for modern solutions for the latter which is basically as stateless and reliable as our product Docker infrastructure. I would dismiss Jenkins in case I find an equally flexible but safer tool.

<comment><USER22> Well, I don't know your specific circumstances, but I'll say one should strive to have as little logic in their build system as possible.

It essentially should be running shell scripts and/or language-specific build scripts/tools. All logic should be self-contained in your project(s) repos, so that it doesn't really matter what build system you use, and/or one could build the project without the build server if required.

With that said, I don't see any reason why release management, containerizing, versioning of assets, etc... could not all be done with Jenkins (or any build system).

</comment></comment></comment><comment><USER24> Every random piece of software expects some kind of file in the root directory of a project - this is not acceptable and leads to messy project layouts.

Could developers of these tools please stop dictating where people have to put the "Blahfile" dsl config files and finally allow people to configure these kind of details.

Also I would like to propose a common standard directory "projectroot/config" for these kind of files, NOT the project root directory itself.

Thanks for your attention!

<comment><USER25> "projectroot/config" it's too common and already used in different ways that will produce conflicts. If something is established it should be done in a proper way through a spec like semver was established.

<comment><USER24> you could avoid conflicts by not naming your project files "Dockerfile" or "Jenkinsfile" or "travis.yml"...

<comment><USER26> I don't like the Dockerfile or Jenkinsfile either, but I can kind of understand the .travis.yml. The good thing about the "Dockerfile" is that with most of the docker commands that interact with it, you can use the '-f' option to specify the file. For example "docker build -f dockerfiles/application.dockerfile" -t myapplication .". I don't see any easy way to do that with the Jenkinsfile.

The amount of top-level files in these projects has started to become quite large, and it is unclear at first glance to see what it is important when exploring a new ecosystem.

I'd like to see these products would move in a direction where these were would do any/some of the following:

1) use a file extension rather than "important" describing filename (.docker for Dockerfiles and .groovy/.jenkins for Jenkinsfile)

2) moved into a product specific folder (travisci/ci.yml, github/ for the issue and pull request templates)

3) use yet another top level file for indirection that is agreed upon (my initial thought is something named integrations.yml)

</comment></comment></comment></comment><comment><USER27> Google cache: [https://webcache.googleusercontent.com/search?q=cache:Sm- mng...](https://webcache.googleusercontent.com/search?q=cache:Sm- mngGjeo8J:https://jenkins.io/2.0/+&cd=1&hl=de&ct=clnk&gl=de)

</comment><comment><USER28> As the website got HN'd, a question: does Jenkins support now pass-through of parameters in pre/post build actions to other jobs?

Background: I have "deploy frontend" and "deploy backend" job, both of which need to invalidate some layers of caching, and a job parameter that specifies the environment (it's the docroot).

For now I have a metric shitload of shared code between the jobs as there is no way to move the cache clearing code to its own job and pass the environment parameter through in pre/post build actions.

<comment><USER29> I can't imagine what you couldn't accomplish using the Parameterized Trigger Plugin [https://wiki.jenkins- ci.org/display/JENKINS/Parameterized+Tr...](https://wiki.jenkins- ci.org/display/JENKINS/Parameterized+Trigger+Plugin)

<comment><USER28> Cool, thanks for that. I'll mail this one to our infrastructure team, but it's sad to see that this isn't installed by default.

<comment><USER29> how does it being an optional plugin change anything vs. Jenkins having every possible useful thing pre-installed resulting in a much more complicated setup screen? Plugin architecture is total win IMHO.

<comment><USER28> Parameters without the ability to pass them on is kind of pointless, imho the right solution is to provide a single "parametrization" plugin.

</comment></comment></comment></comment></comment><comment><USER30> That's nice but even the current version of Jenkins is buggy as hell and it's been around for a while now. Every place I've been at takes the base Jenkins worker management and then layers routing and job orchestration on top of it through something else because Jenkins itself just can't deal with anything that is beyond triggering and canceling a job. Even canceling doesn't work half the time.

So given that's the foundation they're layering even more complicated stuff on top of it. Thanks but I'll pass.

</comment><comment><USER31> Having been using jenkins several times since it was Hudson, as well as Bamboo, travis-ci, python buildbot, and TeamCity, Jenkins is a loser from my perspective. Not worth becoming invested in.

Its simply too difficult to use by a laymen developer or sysadmin when accommodating complex buildchains, which only grow more complex over time in most software businesses.

If you're going to program your CI with a web administrative interface, and provide an easy to navigate interface for users, expand with build metrics and external systems, I suggest TeamCity over any others.

Though jenkins is free, my experience is maintenance teams of 2 or more people with tribal knowledge develop around the tool that far outweigh the license cost of TeamCity, which solve many of these homegrown engineered problems as part of the product cost.

If you have a strong developer team, I would suggest using something like python buildbot and programming your CI end-end in a single unified language, much better than shoe-horning plugins and groovy code inside your jenkins textarea fields!

That said, all CI systems are just software, and any requirement can be accommodated with sufficient amount of additional software, forks, or changes. Any will do.

<comment><USER32> If we were hypothetically "too big" for TeamCity, with scaling difficulties all over, do you have (or have heard) any recommendations? I hear the biggest companies all roll their own, but is there anything between TeamCity and Google-scale?

<comment><USER33> There's [http://go.cd](http://go.cd) if you are looking at something focused on CD (Pipelines etc)

<comment><USER34> Yes, we've found gocd does a terrific job of allowing you cleanly model your full continuous delivery workflow and organize your servers.

</comment></comment></comment></comment><comment><USER35> Jenkins always struck me as one of the few software projects that don't use OSGi but should be using it.

</comment><comment><USER36> I've become a big proponent of Drone CI. It's very configurable and Docker powered.

</comment><comment><USER37> Is there a potential release date, so that we could plan for the adoption of the beta for future releases?

</comment><comment><USER38> ugh. this is still alive? i was done with jenkins the first time i had to use it.

since everbody's at it, i'll recommend github.com/drone/drone. drone really gives docker a pretty use case.

</comment><comment><USER39> If there was ever a webpage that needed a facelift, it would be Jenkins, so hopefully this is not just a backend rewrite.

<comment><USER22> Take a look at the Usability Section[1]

Looks like a massive facelift, and lots of work done to make things more intuitive, faster, and more pleasing to the eye.

[1] [https://jenkins.io/2.0/#ux](https://jenkins.io/2.0/#ux)

<comment><USER40> Unfortunately, the new design still looks almost a decade old.

<comment><USER41> So does hackernews. If it actually addresses the usability problems, it doesn't matter how 'old' it looks.

<comment><USER22> Couldn't agree more. Jenkins is a tool - it doesn't need to look "uber modern", but it needs to be functional (which it is).

</comment></comment></comment></comment></comment><comment><USER42> I came here to write sth like "still in Java... :/" but I can't even check it, the site seems to be hugged to death.

<comment><USER22> > I came here to write sth like "still in Java... :/"

And the problem with that is...?

<comment><USER43> Typical issues surrounding Java projects:

\- High startup time. Anything bigger than a hello world takes seconds, more typically tens of seconds, to start. My Jenkins setup takes 3 or 4 minutes before it is fully initialized. Even starting the JVM in client mode doesn't help much. I know, it's a server, and startup time doesn't matter once it's running, but it _feels_ annoying.

\- High memory usage. Heaps in the 1-2 GB range are not uncommon. This can probably be tweaked but as a user who is not a Java expert, figuring out how to do this (and figuring out what value is safe) is frustrating.

\- XML configuration files. XML was hip in 2004 but these days it is frowned upon and users generally don't like it. This is technically not Java's fault (and I'm sure newer projects use something else) but it is something traditionally heavily associated with Java projects.

\- Non-Unixy feel. Lots of things just behave like they're not really native.

<comment><USER44> "Heaps in the 1-2 GB range are not uncommon."

Is this really still a complaint in 2016? Your phone has that much RAM.

Honestly if you're worried about Java heap size, spin up a t2.medium instead of a t2.small for your build pipeline. Running Jenkins on a Raspberry Pi is probably not a great idea if you're writing any serious application.

<comment><USER45> Actually it's becoming more of a complaint in 2016 with rise AWS instances that pay by the container size and with the rise of languages like go, etc. which have smaller runtime sizes and are more compatible with cloud computing environments like docker.

The JVM adds something like 400MB to every layer of a docker container resulting in multi gigabyte containers. Additionally the memory requirements for running a JVM put you immediately into the t2.medium range which will cost you 4X cost over a t2.nano for simply choosing to run Java instead of something with a smaller runtime footprint.

<comment><USER44> Don't run production code on a nano.

Don't run production code on a nano.

Don't run production code on a nano.

I don't care what language you're using, if you find yourself saying "well, I could run on a nano" just stop.</comment></comment></comment></comment></comment></comment>


Incredibly Depressing Mega Millions Lottery Simulator - <AUTHOR> http://www.cockeyed.com/citizen/poker/lottery_simulator100.php

<comment><USER2> Although the darwinian in me has no problem with lotteries as a tax on those who don't understand probability, I'm uncomfortable with the fact that they generally constitute a regressive tax -- the common wisdom is that the poor spend a larger percentage of their income on lotteries, though a bit of fact checking reveals some debate here. In any event, I welcome this, though I'm afraid that the ones who really need it are unlikely ever to see it.

</comment><comment><USER3> Turns out I'm pretty good at lottery. I get about a 20% return on investment, which appears to be much better than average.

For a small fee, I can teach you how to lose money more slowly.

<comment><USER4> Speaking of being good at chance games, I heard about the guy who cheated Press Your Luck for the first time yesterday:

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

<comment><USER5> I'm not sure if you can consider Press Your Luck to be a chance game, especially in light of Michael Larson.

</comment></comment></comment><comment><USER6> I don't want to try this since I fear to use up my win-a-lot-of-money-in-the- lottery-once chance.

</comment><comment><USER7> I put this into a category of "I knew this before, but seeing it re-enforces that knowledge."

</comment><comment><USER8> Edited the select box values to run 100k times and I still only won $10508. (Browser couldn't handle returning 1 million results)

</comment><comment><USER9> Lottery is a tax on people who don't know statistics (or math).

<comment><USER10> This is like saying movie theaters are a tax on people who don't know bittorrent.

You play the lottery for entertainment not for it's investment value.

<comment><USER11> This is like saying people buy water pipes for tobacco

They might be entertained by the fantasy of winning money, but the real intent is for winning money.

</comment></comment></comment><comment><USER12> Or, why the best numbers to choose are just 1,2,3,4,5. (Or really, 33,34,35,36,37 (so you don't have to split the money with people choosing dates).

</comment><comment><USER13> I once one $100 in a mega millions drawing. I bought the tickets when I was tipsy so maybe that's the key ;)

</comment><comment><USER10> First off, it's gambling it's not expected to have a ROI.

Second, 2/wk or 1040 over 10 years is not that many 2-3 a day avg 1040/yr is more like it.

Third, I won $67 whooo hooo!

</comment><comment><USER14> lol, the users were ahead (192%) when I ran my simulation.

72 bucks back out of 1040 for me.</comment>


Ask HN: Is Optimizely's $50,000/year minimum short-sighted? - <AUTHOR> We are a small company that is looking to implement an AB testing platform. Since we have experience with Optimizely before, we signed up for a trial and was contacted by a Sales Rep who indicated that Optimizely now has a $50,000/year minimum commitment.
Our budget doesn't support that commitment and so we will go with a competitor instead.
I feel this is short-sighted of Optimizely, not having a lower-priced, lower-featured option as customers will become familiar with competitors and small companies turn into big companies.
Does the HN community feel the same? <comment><USER2> Optimizely is now focusing on the enterprise segment, which requires a different culture and skillset than you'd need when selling to smaller businesses. Doing both at the same time, for most products, will almost always require two separate cultures, which is difficult to maintain (unless you're a giant corporation with different departments). An exception to this rule may be Slack, where price points grow linearly with company size.

In website testing, specifically A/B testing, the enterprise segment is likely more valueable as smaller customers tend to exhibit vastly higher churn rates. Also, a 1% increase in conversions will translate to millions in incremental revenue for established companies, making it much easier to justify higher price points.

As for which pricing strategy works better when working towards an IPO, it seems that the data doesn't favor one approach over another: [http://tomtunguz.com/no-mans-land-saas/](http://tomtunguz.com/no-mans-land- saas/)

</comment><comment><USER3> I think Optimizely was very smart.

A/B testing is very hard. Designing tests is hard and you need quite a bit of traffic before your results become valid enough to act upon.

For these reasons, many smaller organizations simply don't have much success with A/B testing. And, I'd bet my bottom dollar that the organizations who don't have much success blame Optimizely instead of their own design.

</comment><comment><USER4> Given the requirements of traffic for effective A/B testing, companies already have to be moderately big to do testing effectively.

That said, it could very well be that Optimizely was dealing with increased support costs as A/B testing is widely misunderstood. This could cause perception to reflect badly on the product, and by adding such a minimum price, they virtually ensure the client has enough traffic to be worth their time.

I am not sure which plan you folks were evaluating, but looking at their offerings, you really need to be at the 'Business' level to get the most out of your reporting, or the 'Enterprise' level to optimize specific customer segments, rather than the entire site.

Those are some complex topics, and by setting such a high minimum, they are very clear that the client company is invested in their testing program, likely willing to have those discussions, and in short, worth Optimizely's time.

</comment><comment><USER5> What features do you need?

Firebase has an A/B testing framework too without the 50k minimum [https://firebase.googleblog.com/2017/11/announcing-better- ab...](https://firebase.googleblog.com/2017/11/announcing-better-ab-testing- with.html)

<comment><AUTHOR> unfortunately it appears to only be for native mobile firebase SDKs, our app is web-based. Though we do use Firebase

</comment></comment><comment><USER6> There are tons of A/B testing tools on the market — even Google Analytics has one. The price point is just Optimizely's way of saying that the enterprise market is what they care about. In this case, I think you have a customer- product mismatch more than anything else. Sure, I'd love to use their product on a smaller traffic site but web analytics is a crowded crowded space and the companies that carve out a niche they can dominate do best. (Full disclosure: my startup makes an event router that sends data to tons of analytics services.)

</comment><comment><USER7> I do not know Optimizely specifically. But there are many advantages to having fewer large customers than many small customers. Particularly if you are still inventing product.

</comment><comment><USER8> I think Optimizely is burning an important bridge of theirs. But thanks to decisions like this, small companies can raise on the back of SMB market.

Optimizely picked stability over the crazy growth (and fluctuations in revenue).

<comment><AUTHOR> I agree with this, I think a strong company with a low-touch SaaS model could compete very effectively with Optimizely on the SMB level. VWO is poised to be this competitor _right now_ but it seems like there's an opportunity here.

</comment></comment><comment><USER9> Visual Website Optimizer starts at $49/month: [https://vwo.com/pricing/#web- testing](https://vwo.com/pricing/#web-testing)

<comment><USER4> Yes it does - but I still think for an effective program you'd want at least the 'Enterprise' plan, which starts at 12k a year.

If you don't have developer resources dedicated to your team, you may find yourself unable to run some tests, and you'd have to upgrade all the way to 'Enterprise' on the 'Conversion Optimization Platform' to get a Dedicated Account Manager, who would, in theory, help you tackle more advanced topics and test designs.

Any way you slice it - as soon as you hit moderately complex A/B testing the price goes up quite a bit.

</comment></comment><comment><USER10> See:

[https://news.ycombinator.com/item?id=16476454](https://news.ycombinator.com/item?id=16476454)

<comment><USER11> So the accepted wisdom is "Raise yer prices", regardless of anything else?

<comment><USER8> I think it is accepted wisdom for small SaaS startups, not a universal knowledge. For a company like Optimizely with the established user base, possibly it is smarter to go after 100 enterprise customers, rather than 10,000 mixed ones.

I personally strongly disagree with such tactics and I think this might lead to the company collapse in far future. By cutting out small users, you are wiping out testers, that pay to use your product and provide a valuable feedback. Instead of cutting out the smallest customers, they should optimize their offering, so that small users are being served completely automatically, hands-off, with only email support provided.

<comment><USER11> You have articulated my thoughts about this love of raising prices.

Your second point is spot on. McDonalds is still in business, after all.</comment></comment></comment></comment>


Group Messaging apps – so simple, you don't need $12Million to do it. - <AUTHOR>

Disclaimer: I am not writing any of these to brag, just to encourage first time entrepreneurs who are finding it difficult.
I recently put out my new app wolfpacktales and like any Entrepreneur will do, I pitched the big name blogs/sites. As it usually happens, I didn't even get a response from the writers I pitched. I wasn't deterred.
Wolfpacktales: Just think Campfire meets social networking. It's a group conversation app, where users create private groups  (I call wolfpacks) and invite people from their social networks – Facebook, Twitter, Gmail & LinkedIn – to join the conversation.
After realizing there would be no success with these big blogs, I pretty much invited all 546 of my Facebook friends to a random wolfpack I created. I also took to the smaller blogs, startup submission sites etc and pitched about 50 of them. I knew all I needed to get going was just a little initial traction just because of the inherently viral nature of the app. That's exactly what happened. On Friday, I had seen 120 people signed up, that number kept increasing over the weekend and as of this Morning (Monday), there are 2,567 users. I know it's not a big number by any means, but it shows potential.  And yes, I do realize that GroupMe didn't take all that money just to market their product…I'm just noting that no money, and no big press doesn't disqualify your product.
Moral Lesson: Read the last line.
Will write another update in a few days/weeks.
Link: http://wolfpacktales.com (It's still very much new, so I welcome feedback!) <comment><USER2> Agree whole-heartedly. I am still trying to figure out what exactly it takes to be what I refer to as a "sweet heart of silicon valley". Some companies repeatedly get covered regardless of how minor and marginal their new feature is (I recall reading about chat roulette's new wall paper a couple weeks ago).

Same situation in the group messaging space. I am the cofounder of Groupie, which is tied with Beluga as the highest rated group messaging app on the App Store. We have tens of thousands of users and tens of thousands of groups. In fact, you cant search for GroupMe without seeing Groupie, yet we've never been covered. It's a mystery to me but that ultimately hasn't stopped us from growing and with a good product, it won't stop you from growing either.

On that note, happy to make myself available you should want to discuss anything since we've probably hit a few hurdles that you're undoubtedly going to confront.

Good luck.

Leo at groupie dot co

<comment><USER3> Not sure if it still holds true today, but in the past with some blog tech writers, you needed to submit your pitch something like this.

Hello, <insert info about startup here>.

Thanks, <insert name>

P.S. attached is an Apple Macbook Pro, cheers.

<comment><USER4> In this case I think it's a bit simpler. GroupMe was born at TechCrunch Disrupt Hack Day 2010, and is probably the biggest success story of that event by an order of magnitude. Hence, they got a lot of TC coverage early on.

</comment></comment></comment><comment><USER5> Thanks for the encouragement. Going through the smaller blogs is definitely a start to get your name out there. At the end of the day its really just relationships in SV that get you on the front page of big blogs.

We also have a group messaging app that just launched our BETA on Android and iPhone last weeks and is now closing on close to 5000 users after a few days. Check it out if you have the chance.

Rob Foxfly dot com

</comment><comment><USER6> Why does it ask for permission to post tweets when I try to authorize through Twitter? Can you consider switching to read-only access? I hate that every application, which uses twitter only for authorization, seems to want to post a lot of stuff in my twitter account, which I certainly do not want. :(

<comment><AUTHOR> hey mate, that page only asks you if you want to post to your twitter or not. If the user doesn't want to, he can hit proceed and move on to the next page. I haven't made it compulsory to do that. To be honest...that page is one of the reasons for the significant increase in signups.

<comment><USER6> I mean when you authorize someone through twitter, you can ask for read permissions or for read and write permissions. Right now you're asking for read and write, which always makes me suspicious - "will this application post something on my behalf?" :(

</comment></comment></comment><comment><USER7> Hmm when I look at I don't see any difference between this an frid.ge, etc and there seems to be no way to look closer at it without signing up to yet another service.

So how does this differ from the rest of the group chat systems?

<comment><AUTHOR> I had come up with this because I had some friends who were on Facebook but nothing else, there were some without Facebook or Twitter and only used Gmail. My idea was a way of setting up a 'group chat platform' where users can come in from Twitter, Facebook, LinkedIn, Gmail and still be able to interact with each other in one place.

<comment><USER8> How do you solve the problem of users signing up/logging in with say their Twitter, but later also signing in with Facebook after logging out?

Wouldn't there be a user account collision of some sort? Sorry if it's obvious, I haven't had a chance to check your site out.

Good luck and wishes of great success to you.

</comment></comment></comment><comment><USER9> I think its a useful application. Hope you can add a way for users to invite others to their pack manually by entering email address (instead of directly importing contacts).

<comment><AUTHOR> Thanks! Actually that's on the to-do list. I will make users be able to add others via their username on wolfpacktales rather than having to go to the sites to import. At the moment, it works nicely because of the early virality that brought on board.

</comment></comment><comment><USER10> While I understand the reason to support social network sign-ins, I'm certainly tired of seeing sites that require it. Hopefully this trend will end at some point.

</comment><comment><USER11> Wow! That's a serious jump in traffic over 3 days. Do you plan on making it into a mobile app? seems like that would help a lot.

<comment><USER12> Yea seems like that would be the way to go.

</comment></comment><comment><USER13> Good stuff. It's certainly a good idea, and it gives me some hope! lol. Over how many days did you pitch the blogs?

<comment><AUTHOR> To be fair I pitched in batches over the 3 days. Started on Friday night. However, i must note that I don't think all the signups are because of the blogs. They did give some initial visits, but I also did invite alot of my own friends, and as you see, the site needs you to invite ppl to interact with. It's got virality built in it anyway.

</comment></comment><comment><USER14> Congratulations on launching and finally going live. Expecting big things in the future!

<comment><AUTHOR> thank you, thank you!

</comment></comment><comment><USER15> Link: <http://wolfpacktales.com>

<comment><USER15> Cool site. Congrats!

<comment><AUTHOR> Thank you.</comment></comment></comment>


Use HTML5 & jQuery to create a digital boombox. (webkit only–FF soon) - <AUTHOR> https://audiofile.cc/boombox

<comment><USER2> Geez. What's up with the "write 20 lines of trivial javascript, put it on github, put more effort into making a webpage than the actual code, post it on HN".

<comment><USER3> I don't mind that it's trivial if it saves me from doing some tedious stuff, but after reading the code it's unusable the way it's written right now.

Some of the things that need to change are:

1) DOM selectors must be defined by user, not the plugin itself.

2) Needs to actually work on more than just Webkit based browsers.

3) Don't use $(document).ready() in the plugin, find another way or design the API differently.

<comment> robert-boehnke Can you elaborate why $(document).ready() should not be used?

<comment><USER3> It's a matter of best practices.

In particular how it's done in this code, where it's outside the definition of the plugin and binding events.

Plugins should be built in a way where it is explicitly invoked by the programmers using them, and the 'proper' way is to invoke them from within a $(document).ready() function that is specified by the user in the order that the user wants.

Lets pretend, for example, that this plugin is invoked from within another $(document).ready(), in which case the document.ready call from within the plugin is completely redundant and useless.

<comment><AUTHOR> Your points are all valid and I'll consider each one in refactoring the code. Thanks!

</comment></comment></comment></comment></comment><comment><USER4> Can I suggest that the IDs be something a bit less generic if you're going to hardcode them? People might already have 'next' and 'prev' as IDs for other things. (Not that they'd be in the right, either.)

<comment><AUTHOR> Totally valid. I'll change that and push it on the next nightly. Thanks!

</comment></comment><comment><USER5> How is this superior to jplayer (<http://www.jplayer.org/>) ? Jplayer is implemented in HTML5, but has a fall-back flash implementation for backwards compatibility, and like this is open-source (GPL/MIT).

<comment><AUTHOR> I wasn't aware of this project. Thanks for bringing it to my attention.

Boombox.js has more features in the works. Please check back later for updates. Thanks!

</comment></comment><comment><USER6> This is a good start, but it needs some significant additional features. If it's gonna work in jQuery, it needs more control, specifically JS control. It would be nice to do anything I can do from the buttons from JS, and possibly more. Also playlist support would be nice.

I'll give you a scenario, if I have this autoplaying on a website, and I have an embeded Vimeo video, I'm gonna want to automatically stop the music when a user starts playing the video.

<comment><AUTHOR> Great ideas. Thanks!

</comment></comment><comment><USER7> Nice and lightweight. I'll give it a try on my site when I find the extra time ;)

<comment><AUTHOR> Let me know what you think.

</comment></comment><comment><USER8> Only 2 things missing, Turbo Bass button and a "This is not a toy" warning label.

</comment><comment><USER9> I think it's awesome, thanks! I found it really easy to incorporate.

<comment><AUTHOR> Thanks!

</comment></comment><comment><USER10> >Get a modern browser

>First things first—make sure you're running a modern browser. My favorite is Chrome but Safari will also do. This app currently only supports webkit. More browsers coming soon.

What is Opera or IE9 then? Chopped liver? Am I the only one hating this new version of "Best viewed with IE5" and browser specific tag soup whose behavior changes even with the versions of the specified browsers?

<comment><USER11> IE9 is not a modern browser <http://news.ycombinator.com/item?id=2326048>

<comment><AUTHOR> I haven't done research into which (if any) html5 audio formats that IE9 supports. I fully plan to add feature detection to serve the correct audio format to the correct browser—IE9 included.

<comment><AUTHOR> Tonight I added support for .ogg in opera.

[https://github.com/cgcardona/boombox.js/commit/931b069c7b253...](https://github.com/cgcardona/boombox.js/commit/931b069c7b2532c39a903f9ce3e7d726670c5fea)

Firefox is working on my local machine so it should be supported in production by tomorrow.

I need to research more about IE9's HTML5 audio support but it shouldn't be difficult to add support for it also.</comment></comment></comment></comment>


Looop.dev - <AUTHOR> https://www.producthunt.com/posts/looop-2 <comment><AUTHOR> Just launched the "alpha" version of our creative coding tool. Plenty more coming soon, but lets us know what you think!</comment>


Black Perl - <AUTHOR> http://en.wikipedia.org/wiki/Black_Perl <comment><USER2> I wrote a (valid) Python poem a long time ago:

        import calendar as usual
        StandardError is usual \
        or not usual. month is long

        try: not coerce
        finally: quit

        (help for me in range
        (usual. MONDAY))

<comment><USER3> [https://metacpan.org/module/Acme::Python](https://metacpan.org/module/Acme::Python)

</comment></comment><comment><USER4> This C program not only reads as a series of letters, it also does something (slightly) interesting:

[http://www.ioccc.org/1990/westley.c](http://www.ioccc.org/1990/westley.c)

(HN discussion: [https://news.ycombinator.com/item?id=375945](https://news.ycombinator.com/item?id=375945))

</comment><comment><USER5> Perl has always had a playful nature. For a surprisingly long time, my top rated post on Perlmonks was [http://www.perlmonks.org/?node_id=29977](http://www.perlmonks.org/?node_id=29977). Since it is short, here it is in full:

The job I want:

        $dollars++ while sleep(1);

The job I get:

        {
            work();
            redo;
            get_rich();
        }

<comment><USER6> Perligata ([https://metacpan.org/module/DCONWAY/Lingua-Romana- Perligata-...](https://metacpan.org/module/DCONWAY/Lingua-Romana- Perligata-0.50/lib/Lingua/Romana/Perligata.pm)) always blew my mind. Write your programs in pure Latin.

<comment><USER7> Damien scares me a bit, despite that you could probably earn money making a teddybear looking like him and sell to kids. :-)

When he talks, you get the feeling it are thoughts that should not be thought; like going crazy from seeing Cthulhu.

<comment><USER5> He should scare you. He has one talk where he asks for volunteers from the audience to try to punch him. The ways that he proceeds to immobilize them relate to the various points he's making in his talk.

He's also the only person that I can think of who would seek to explain the concept of elementary particles being made of quarks using Mars bars as analogies. Right down to the fact that the sum of 3 of the masses of the small Mars bars slightly exceeds the mass of the large one - that right there is the binding energy!

For those who have not experienced him, Damian is hard to explain. For those who have experienced him, the full mind-bending reality is hard to remember. He's the only person about whom I say that if he's giving a presentation you go, just because it is Damian. Even if you don't know the topic. Even if you hate the topic. Even if you're bored by the topic. It is Damian. Go.

<comment><USER6> Perl is definitely for free thinkers.

<comment><USER8> And, sometimes, expensive doers.

</comment></comment></comment></comment></comment></comment><comment><USER9> Having had a chance to experience Larry up close at a YAPC, I firmly believe he's one of the most quirkily brilliant people in the industry (for whatever industry means in this case).

<comment><USER10> Is he still active? Haven't heard about him much in the mainstream tech media.

<comment><USER11> He came in June, or maybe late May, signed books, and talked/answered questions at my Advanced Perl class. He's friends with our teacher.

Was a real treat. A real nice humble guy. I posted in r/perl at the time. He's active in #perl6 on freenode, I believe.

It's a shame that he's had health issues.

</comment></comment></comment><comment><USER12> Here's a little something in Python that I spent the last few hours writing:

      def unfalse_poem():
          (None is True) and False
          for subject in [complex(True,False)]:
              subject is not object
              for certainty in [complex(False,True)]:
                  certainty is not Exception
                  certainty is not license
                  subject and certainty
                  reduce and coerce
                  coerce and reduce
                  while certainty.real: unexamined
          for certainty in [complex(False,True)]:
              return certainty is not certainty.real is not certainty

<comment><USER13> It has a certain ring of Vogon poetry to it...

</comment></comment><comment><USER14> How about a simple meta-sonnet game in Natural Inform?

From [http://forums.penny- arcade.com/discussion/39142/inform-7-pro...](http://forums.penny- arcade.com/discussion/39142/inform-7-programming-a-game-by-talking-to-it):

        Will's Study is a room. The desk is here.
        A hastily handwritten note is on it.
        Description is "It's from your friend Shakespeare:
        'I've gone to lunch. You'll have to write the sonnet.'"
        Composing is an action applying to nothing.
        The quill is a thing that is in the study.
        Understand "write sonnet" as composing.
        Description of the quill is "Old and cruddy".
        Instead of composing when the player
        has no quill, say "You have not got the quill."
        Instead of composing, say "And... done. 'Heya',
        says Will, returning. You say, 'Hello, Will!'
        Says Shakespeare, 'Thank you for the time you've taken!
        You really are a pal, Sir Francis Bacon.'"

<comment><USER15> You have to say "is not carrying the" rather than "has no", to get it to compile.

</comment></comment><comment><USER16> It never occurred to me how perfect programming languages are for poetry. You have all these extra characters and whitespace to change how a piece of text feels or reads, and it becomes a visual experience too, like looking at art. Are there other program-poems people should look at?

The only thing I'd seen like this before was "Sunrise, Sunset" written in PHP. I know these things aren't new for many of you but I keep being surprised by the creativity I find.

</comment><comment><USER17> So Larry Wall is a black metal artist in his spare time?

        kill them, dump qualms, shift moralities,
        values aside, each one;
        die sheep! die to reverse the system
        you accept (reject, respect);

<comment><USER7> As a hard core atheist, it is good for me to see really religious guys like Larry Wall which are so laid back that they can make fun of their own opinions.

For the record, I have met a few.

A little bit like when, as an Emacs user, I see a post on a really informative blog about their Vi configuration. Or at a conference when the speaker connects the computer -- "wtf, _he_ use Windows!?" :-)

(And as a metal fan I mostly avoid the lyrics, it might destroy the music if they are too stupid. But I'm a wimp which listen mostly to technical death.)

<comment><USER18> Completely offtopic, but there are some black(ish) metal bands with great lyrics.

Being a nerd, I am for example very partial to Vintersorg's album Cosmic Genesis (check out the song Algol ! [1]). (The singer, Andreas Hedlund, is actually a primary school teacher)

See (and hear) also the Irish band Primordial, who have great songs about Ireland. I've got goosebumps everytime I hear the chorus of "The Coffin Ships" [2] or the ending poem of "Death of the Gods" [3].

I could go on forever, but I'll mention three more bands, Vulture Industries for their very theatrical lyrics [4] and Solefald for the crazy and philosophical stuff [5]. And finally, a personal favorite of mine, Behemoth's "The Youth Manifesto" [6]. (Nergal, the lead singer and guitarist, is a fantastic lyricist and an incredible person)

[1] [http://www.darklyrics.com/lyrics/vintersorg/cosmicgenesis.ht...](http://www.darklyrics.com/lyrics/vintersorg/cosmicgenesis.html#2)

[2] [http://www.darklyrics.com/lyrics/primordial/thegatheringwild...](http://www.darklyrics.com/lyrics/primordial/thegatheringwilderness.html#5)

[3] [http://www.darklyrics.com/lyrics/primordial/redemptionatthep...](http://www.darklyrics.com/lyrics/primordial/redemptionatthepuritanshand.html#8)

[4] [http://www.darklyrics.com/lyrics/vultureindustries/thedystop...](http://www.darklyrics.com/lyrics/vultureindustries/thedystopiajournals.html#3)

[5] [http://www.darklyrics.com/lyrics/solefald/neonism.html#3](http://www.darklyrics.com/lyrics/solefald/neonism.html#3)

[6] [http://www.darklyrics.com/lyrics/behemoth/thelema666.html#11](http://www.darklyrics.com/lyrics/behemoth/thelema666.html#11)

<comment><USER7> To, sigh, go even more off topic.

I like my metal a bit less melodic. :-)

Meshuggah, Nile, Dillinger Escape Plan, etc. Not the extreme stuff (when Darkthrone's "Blaze in the northern sky" gave me a headache; then I knew I was at my limit :-) ).

Disclaimer: I do like lots of whining singer-songwriters and folk music (including Irish like Altan etc) too. Even Mary Gauthier!

</comment></comment></comment></comment><comment><USER19> Reminded of haikus written in Ruby: [http://timelessrepo.com/haiku](http://timelessrepo.com/haiku)

</comment><comment><USER20> My favorite poem is Sharon Hopkins' Listen [https://groups.google.com/forum/m/#!topic/comp.lang.perl/V2R...](https://groups.google.com/forum/m/#!topic/comp.lang.perl/V2RqT1dS2Jg)

</comment><comment><USER21> Can anyone explain what happens to all the undefined vars to someone unfamiliar with Perl?

<comment><USER22> Variables in perl are preceded by a sigil($,@,%,*). Those undefined words are not variables, but, at least in perl5, when you don't use strict, perl tries several fallbacks in order to find their value: see if it is a function (called without paranthesys), see if it is a constant, use it as a string otherwise.

</comment></comment><comment><USER23> The Perl Poetry contest used to be a thing -- I don't think anyone ever measured up to "Black Perl" in awful audacity, but the parser can take a hell of a lot of abuse before it cries uncle.

</comment><comment><USER24> Not literally a poem, a beautiful code written in Perl: [http://www.perlmonks.org/?node_id=45213](http://www.perlmonks.org/?node_id=45213) (Camel Code)

<comment><USER25> It seems like it would be trivial to arrange nearly any non-whitespace- significant language into arbitrary ASCII art.

<comment><USER26> The output of this code is also relevant — not just its source.

</comment></comment></comment><comment><USER27> I want to run it, but do I have anything to fear? "Black Perl" suggests it's going to do some bad stuff to my box.

<comment><USER28> Haha, I don't think this script does much on a machine. It is designed to be interpreted by humans though.

<comment><USER29> I remember this -- I _swear_ this was in one of the Perl books (the Camel book?) way back when.

It's valid Perl 3, but it is not supposed to _do_ anything useful. The idea is simply to show how expressive you could be in the language.

<comment><USER30> I don't understand what you mean by 'expressive' in this sentence: if it's not to make the program do something specific, you could just wrap everything in a comment block and be as 'expressive' as you like in any language.

<comment><USER31> I elaborated on actual expressiveness here:

[http://shadow.cat/blog/matt-s-trout/pizza-snakes- bicycle/](http://shadow.cat/blog/matt-s-trout/pizza-snakes-bicycle/)

(which post starts by quoting the Black Perl to put you in the mood :)

</comment></comment></comment></comment></comment><comment><USER32> If "any sufficiently advanced technology is indistinguishable from magic" [Arthur C. Clarke] then incantation is really just programming through voice interface done smart.

</comment><comment><USER33> That's pretty dark. :(

</comment><comment><USER34> Am I the only one who thought this was about Pelé?

</comment><comment><USER35> Now I have Margriet Eshuijs in my head.</comment>


Kubernetes 1.2 and 12-factor apps: Splitting configuration from binaries - <AUTHOR> http://blog.kubernetes.io/2016/04/configuration-management-with-containers.html <comment><AUTHOR> ConfigMaps are one of those features where you didn't know you needed it, and now that you have it, you don't know how to live without it :)

Disclosure: I work at Google on Kubernetes.</comment>


Ask HN: Would you pay for g apps that were privacy oriented? - <AUTHOR>

A coworker and I have been brainstorming some ideas for projects we would like to create or contribute to. One of our favorite ideas was to create a suite of apps combining things like dropbox, lastfm, google docs/calendar/etc. into one place with a twist. Have all of them be privacy oriented. Our biggest example so far is all files synced would be encrypted client side before sending and only unencrypted by the client. My questions are: 1: Would you pay for this? (Yes, no, maybe) and why or why not? 2: If you if you have any ideas or suggestions would you share them? <comment><USER2> Right now I pay for LastPass. However, I am having trouble deciding if I should renew. They published a blog article saying that they would fight any backdoor requests, but so did majority of the companies that Snowden revealed. The only way I would consider paying for your service is if it was open sourced. Some people do not want to be bothered to roll out their setup and would instead pay for an open sourced service.

<comment><AUTHOR> That what I would personally prefer to do. Open source it and offer it as a service for those that wouldn't want or couldn't set up their own instance.

</comment></comment><comment><USER3> You could use the open source model for your product (as the people answering are explaining).

Basically, leave all the code open to the world and have a hosted solution which people can pay for.

If you're looking for someone to join you guys or refine the idea, I would be keen to work with you (hopefully you are American and have access to the US market - otherwise the idea won't really take of).

<comment><AUTHOR> I am becoming more and more infatuated with this particular idea. I know a lot of people will want to host their own thing (I personally would) but more people wouldn't want or wouldn't even know how.

Right now I am definitely welcoming of help and suggestions. Until I have a little more time to take this out of the theoretical I also made a post (with a little more of a response) on reddit you can check out:

[http://www.reddit.com/r/SideProject/comments/1wb9hq/thoughts...](http://www.reddit.com/r/SideProject/comments/1wb9hq/thoughts_a_suite_of_google_style_apps_with_a/)

Once I really get to start working I'll try and remember to contact you!

<comment><USER3> Even if you forget, all the best with your idea :)

</comment></comment></comment><comment><USER4> I wouldn't pay for it, because if I were actually looking for something like that, I'd _require_ it to be open sourced, and I'd have to be the one building it.

</comment><comment><USER5> We already have a privacy orientated lastfm called GNU FM. Its been in dev since 09 and has a couple hundred thousand users at www.libre.fm</comment>


Google will turn on native ad-blocking in Chrome on February 15 - <AUTHOR> https://techcrunch.com/2017/12/19/google-will-turn-on-native-ad-blocking-in-chrome-on-february-15/ <comment><USER2> How is this not anti-competitive behavior?

If Microsoft was heavily fined for installing their own browser in their operating system, how is an advertising company like Google using their browser, which has the largest market share, to block competing ads not the same thing?!

<comment><USER3> Because there are multiple competing products you can switch to, or even multiple additional products (i.e. ublock/adblock) which you can add in Google's own product if you disagree with their stance.

It's not anti-competitive just because you don't like it.

<comment><USER4> Anti-competitive behavior isn't necessarily monopolistic.

Google is leveraging Chrome's dominant market position to (potentially) harm their competitors in an unrelated market.

You were always able to install Firefox or Chrome on Windows, but Microsoft was fined for using their dominant market position (Windows) to push a product in an unrelated market (web browsers).

</comment></comment></comment><comment><USER5> I still find it amusing that they consider auto-play video OK as long as it's muted. Sound is the problem, but so is auto-playing itself.

<comment><USER6> They are all probably too rich to understand the concept of paying for mobile data.

<comment><USER7> I pay 5$ for three months unlimited LTE data on my phone here in India. They throttle me if I consume more than 1GB in a day. But that's enough for me to not worry about auto playing videos. But I really hate the audio. My point is that you don't have to be rich to not have to worry about mobile data now.

<comment><USER8> In Germany you'll get 1GB _per month_ for 5$. And probably not LTE.

<comment><USER9> Blame the government. They sold the 3g spectrum frequencies to the phone companies at insane prices. The German consumers are still paying for it.

<comment><USER8> I actually don't think it's such a bad thing. Just wanted to point that out ;)

</comment></comment></comment></comment></comment></comment><comment><USER6> I bet it won't block all the damn "download our shitty app instead of using the fully functional website we have" full screen popups...

<comment><USER10> Isn't there a Google PageRank penalty for sites that do that now?

<comment><USER11> There's a dedicated API now…

[https://developers.google.com/web/fundamentals/app- install-b...](https://developers.google.com/web/fundamentals/app-install- banners/#native_app_install_banners)

It uses some heuristics:

> Be visited by the user twice, over two separate days during the course of > two weeks.

I think apps installed this way should be also limited to some subset of permissions they can request[1]. Otherwise this is almost like a bookmarking mechanism.

[1] They could still explicitly ask for more, on use.

<comment><USER12> Google's own site doesn't do this! I haven't visited google sheets on my phone in quite a while (ever?), but when I go to sheets.google.com, I get an ad for the google sheets app, and it's in no way clear that it's possible to use a web interface. Same for google docs.

</comment></comment></comment></comment><comment><USER13> It seems the criteria for blocking is rather discretionary. Are they going to block a site which has _annoying_ Google ads? Frankly this seems to be another excuse to build a walled garden to try and serve their interests.

<comment><USER14> The criteria is not discretionary. They'll block ads that don't follow the guidelines defined by the Coalition for Better Ads [0] (Google is a member, but there is a lot of other members, like Facebook, ...). So yes, they'll block a site which has non-conforming Google ads.

[0] : [https://www.betterads.org/](https://www.betterads.org/)

<comment><USER15> I understand this, and believe it's true, but: gmail mobile has a full page ad asking you to download the app. I'll be surprised if Google block it.

<comment><USER16> There's a difference between a site willfully destroying UX on mobile versus including a third party's paid content.

Reddit mobile also has a full page ad asking you to download the app. I also doubt Google would block that. Nothing to do with it being "Google".

<comment><USER17> I personally don't see a difference. They are putting a notice up that is trying to entice me to "buy" something. Why does it matter if it's from a 3rd party or not?

</comment></comment></comment></comment></comment><comment><USER18> As someone who was already using ad block this might be bad for me. If everyone starts using ad block, and if intrusive ads are more profitable than the approved ads, then advertisers will be pressured to find better ways to subvert ad block. The good times of ad block might be in the past, and the arms race accelerating.

</comment><comment><USER19> Will it be using static whitelist files (and will they be updated separately, or as part of the browser update)?

Because the last thing (in addition to non-competitive behavior and a host of other things) is to send all browsing traffic/history to google services to validate if its an ad or not.

<comment><USER20> All the browser have lists of websites that are automatically updated periodically in the background.

To give a non controversial example, there is a list of "phishing and malware domains". It's been going on for a very long time.

<comment><USER21> I don't think it's completely fair to compare "Safe Browsing Lists" to ad blocking. While I agree and don't like that Google is a gatekeeper of those, it's sparingly used in my experience. Lists like these would require much more maintenance and oversight. I suppose you could say it is similar in how the lists might be updated, which IIRC is via an "extension"-like updating mechanism via crx update files.

</comment></comment></comment><comment><USER22> "Intrusive"? I assume they mean visually or auditory. Presumably intrusive tracking, web bugs and the like will be fair game.

<comment><USER23> Yeah, it's time to start calling proper ad-blockers, "tracking blockers". It sounds more like something you need, like anti-virus, and also sounds like something that's "fair" to use if you have moral concerns about ad blocking.

<comment><USER24> I use ghostery to block tracking, no ad-blocker. But since almost all ads track users almost all ads are blocked. If anyone want to show me ads they will have to show ads without tracking that try to find which ads will be least interesting for me

<comment><USER25> I recently discovered that Ghostery was purchased by Cliqz [0], which is a company partially owned by Mozilla. They offer a free privacy-oriented browser "Cliqz" which is described on Wikipedia as:

"Cliqz plans to eventually monetize the software through a program known as Cliqz Offers, which will deliver sponsored offers to users based on their interests and browsing history. However, these recommendations will be processed locally based on a remote repository of offers, with no personally identifiable data sent to remote servers." [1]

I haven't looked further into it, but it makes me feel like I should contribute to a browser project...

[0] [https://www.ghostery.com/blog/ghostery-news/ghostery- acquire...](https://www.ghostery.com/blog/ghostery-news/ghostery-acquired- cliqz/)

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

</comment></comment></comment></comment><comment><USER26> Long as I can keep using uBlock Origin and disable theirs it's fine with me.

<comment><USER2> Still doesn't make it ok, from an anti-competitive standpoint.

"As long as I can download Netscape, having IE pre-installed is fine with me."

<comment><USER20> Having IE pre installed is a necessary. How do you use the internet with nothing installed?

What's next? We're going to force shipping cars without wheels. It's unfair to decide what brand people should use without their consent.

<comment><USER27> The EU forced Microsoft to give Windows users a choice of browsers:

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

Having IE preinstalled was not necessary; OEMs could have (and some did) preinstall other browsers. What happened was that Microsoft decided to base unrelated parts of Windows on IE so that their browser would have to be preinstalled (Windows would not function without it). There was top-level direction on that decision and it was not actually motivated by a specific technical need.

<comment><USER20> OEM get paid to install software, they are not a receivable argument for what should be in a reasonable default install.

<comment><USER27> Maybe so, but there is also the fact that a lot of third-party software for Windows used IE simply because it was there, which obviously ate the market share of other browsers.

</comment></comment></comment></comment></comment></comment><comment><USER28> So, Your only ad choice will be Goolge! Since another ad provider (?) may be "annoying or intrusive";

Yes I`m just kidding, But google is far too POWERFUL anyway.

<comment><USER14> No, they'll only block ads that don't follow the guidelines defined by the Coalition for Better Ads [0] (Google is a member, but there is a lot of other members, like Facebook, ...). Note that this may include ads provided by Google.

[0] : [https://www.betterads.org/](https://www.betterads.org/)

<comment><USER29> It is either naive or cynical to insist that a giant unaccountable organization will or won't do anything in particular with respect to its core business.

</comment></comment></comment><comment><USER30> Will they make them go away with this one weird trick?

</comment><comment><USER31> The best way for Google to solve this problem, is to block all ads by default in chrome, remove ads on google.com, and charge users a yearly fee to click to the next page on any search result. Thus you have users paying real money to use google's full search feature. Everyone is happy.

</comment><comment><USER32> Correct title should read 'native ad-filtering'.

(remark directed towards techcrunch - blocking would e.g. be uBlock Origin)

</comment><comment><USER33> Source (Google): [https://developers.google.com/web/updates/2017/12/better- ads](https://developers.google.com/web/updates/2017/12/better-ads)

<comment><USER21> This made things much clearer. Thanks. But I have a ton of questions:

* Where can I download the ad experience report?

* So if I replace the ad using a different approach (DOM path, attrs, domain, etc) every 29 days, this isn't going to block anything?

* Where is the code that does the blocking on Chromium so I can read it? Specifically, I want to see if it's client side or not.

Can anyone shed any light here?

</comment></comment><comment><USER34> My favorite bit is the ban on interstitials with a countdown timer.

I hate those as much as anyone else, but....

Somehow the interstitials with countdown timers on videos, like YouTube, don't count...that's allowed.

Are they any less annoying than a pop-up that blocks text content for a set period of time? Both force an ad on you before viewing the actual content.

My worry is that this will shift many content providers from text to video. The web will turn into broadcast TV.

</comment><comment><USER35> Thats a bold move I don't approve... My browser should not filter content by default by some rules defined by a company

</comment><comment><USER36> I wonder if this will be enabled on Chrome for mobile, too. Since Chrome doesn't have extensions, and therefore ublock origin, on mobile, Google has little incentive to enable it there. I assume they will enable it there, too, but you never know.

<comment><USER37> Presumably, their ad blocker will primarily block other ad networks' ads, so then it would be a netgain for them to enable it on mobile, too.

</comment></comment><comment><USER38> Ok, next move is to remove 3rd party Adblocking software from the Chrome Store. /s

<comment><USER39> Hey, if they want to push users to Firefox I'm not going to complain.

</comment></comment><comment><USER40> I wonder if Google will allow ads.txt to specify how annoying the ads can be [https://iabtechlab.com/ads-txt/](https://iabtechlab.com/ads-txt/)

</comment><comment><USER41> This should be great on mobile. On mobile there are no extensions and there are at least two news sites I frequent that abuse it by showing a full page popup before every article.

<comment><USER42> Problem isn't browser on Android. You can install another like many others already said (I use Firefox + uBlock). The problem is that apps use Webview to embed. So you're going to need to use another option to block ads on Android in general:

1) Use DNS66 as another user said. Doesn't require root. (Does make a local VPN, so removes option to use a VPN.)

2) Use Pi-Hole on a Pi at home and make a VPN to it. Bonus: you get access to your home network (if you config it as such) and are secure over open WiFi and hostile 4G. Doesn't require root.

3) You can root your phone and use /etc/hosts or IPT

4) Firefox 58 will allow you to run tabs as "apps" which are pinned in the OS. If that takes off, that's going to result in a massive dent in paid apps from Google Play as well as ad revenue from Android.

As for this action by Google, its a charming move. Remember that time when Google was just new, and was only text ads on Google search engine?

<comment><USER39> Some apps might use a WebView but any app that's using custom tabs ('Chrome tabs') can take advantage of the browser ad blocking. For Firefox all you have to do is turn it on in Firefox and make it your default browser.

You can already do 4 with sites that support being a PWAs and it's pretty good.

<comment><USER42> AFAIK most apps use WebView. I use Firefox as default browser (even disabled Chrome, not using it), and still see ads (that is w/o any of the other methods mentioned).

PWA was part of Firefox 58 AFAIK, so you either need Firefox Beta or wait till January.

</comment></comment></comment></comment><comment><USER43> So does this prevent iframe hijack and pop-up types of annoying ads? They are the kinds I really really want to stop seeing. Unfortunately uBlock can only block so many.

<comment><USER44> Chrome 64 already blocks those by default: [https://blog.chromium.org/2017/11/expanding-user- protections...](https://blog.chromium.org/2017/11/expanding-user-protections- on-web.html)

</comment></comment><comment><USER45> They're going to block all the other ad blocking extensions from running on Chrome. Or cripple chromes API so they can't exist. Its only a matter of time.

</comment><comment><USER46> Many big channels show black screens with the sound on if you are using adblockplus, but who cares about such channels?!

</comment><comment><USER47> Now if only we had native-ad blocking.

</comment><comment><USER48> How will this work? Algorithm-based? Blacklist? Smells like useless cat and mouse to me

<comment><USER49> Ad blocking will always be an arms race. But even small imposed expenses on advertisers seems to eliminate most ads.</comment></comment>


Hampton Creek Ran Undercover Project to Buy Up Its Own Vegan Mayo - <AUTHOR> http://www.bloomberg.com/news/articles/2016-08-04/food-startup-ran-undercover-project-to-buy-up-its-own-products <comment><USER2> > _In at least some cases, Hampton Creek lumped in expenses related to buying > its own products with wages paid to contractors, according to five former > workers. All five said money they were given to buy jars of Just Mayo were > treated as taxable income, making them liable for a higher tax bill than > their actual earnings would require. One former contractor provided H &R > Block tax records showing this to be the case. Another Creeker asked the > company in an e-mail to separate the expenses from taxable income. But the > request was ignored, the contractor said. Hampton creek declined to comment > about the alleged practice._

Sketchy and unacceptable

<comment><USER3> Almost anyone in a highly competitive market doesn't play by the rules.

Isn't it sketchy when egg-carton has a chicken freely roaming the grass on it?

Isn't it sketchy to write cage-free when the chicken is in a dark large container clumped together with hundreds of other chickens?

They are selling a product that has to compete with billion-dollar businesses that already have plenty of sketchy and untruthful marketing.

They spent a meager 77k on this and somehow that is unacceptable.

It's just the same if not less worse than what their competition does.

<comment><USER4> It's sketchy to call egg-free-white-flavored-oil-mix Mayo. It's sketchy to put a giant egg on your egg-free mayo.

"While Just Mayo is egg-free, Hampton Creek Chief Executive Josh Tetrick also emphasized that it doesn't use the term "mayonnaise," only "mayo.""

It's mayo, not mayonnaise you silly consumers.

[http://www.wsj.com/articles/just-mayo-reaches-agreement- with...](http://www.wsj.com/articles/just-mayo-reaches-agreement-with-fda-to- keep-name-change-label-1450394163)

edit: You know, of all the things I could comment I talk about eggless f'ng mayo. I wish I could delete this :)

<comment><USER5> Meh. Mayonnaise is mostly emulsified oil anyway. The egg helps emulsify it and adds a bit of flavor, but it ain't like you're eating much egg on your sandwich or salad.

Which is fine; oil is tasty. I'm sure Just Mayo tastes fine.

The misleading marketing (trumpeting health benefits or - like our parent post - less animal cruelty) is fairly ridiculous though.

<comment><USER6> _> The misleading marketing (trumpeting health benefits or - like our parent post - less animal cruelty)_

If the product truly is free of animal products, then it is most certainly reducing animal cruelty compared with mass-farmed chicken egg mayo. Ethics aside, that is an objective fact.

<comment><USER7> > Ethics aside, that is an objective fact.

It's actually not an objective fact. Compare two scenarios:

10 acres of rainforest were clearcut to grow palm oil to make the mayo

1/2 acre of grassland in Iowa that was previously used for corn is allocated to raise pastured happy chickens, rotated with market heirloom grains. They are allowed to live out their natural life, and are fed even after they stop producing eggs.

Which of those scenarios has more animal cruelty? In one situation you are essentially committing genocide of an entire microecology, in the other you are giving some animals an incredible life, and eating part of their waste stream, eggs which are not necessary for their survival or happiness, and in fact are over-budgeted in their genetics to allow for predation.

Veganism is an _OK_ heuristic for animal cruelty, but it's far from perfect. It's often better than nothing, but a vegan Whole Foods diet may well cause more animal harm than someone living near the poverty level in, say, Korea, eating some animal products, but also making much more efficient use of land. Vegans love to pretend land use doesn't matter, but land use = animal displacement.

Eating more plants can be a great way to reduce cruelty. But Vegan\ _ism\_ as a hard rule is more about religious purity than it is about animal cruelty.

Signed,

Someone who ate entirely vegan today and most days

<comment><USER8> Just Mayo does not include palm oil

While it might be a fun thought experiment to find situations where a non- vegan dish includes less animal cruelty than a technically vegan dish, for 99.99% the people reading this and in 99.99% of the real world situations they ever be in, choosing the vegan dish will mean choosing significantly less animal cruelty.

A common pro-vegan argument is actually less land use for growing feed crops for raising livestock.

<comment><USER7> I never said Just Mayo includes palm oil.

And I'm not really impressed by your made up statistics. Again, if you actually cared about animals you would actually care about the numbers, and not just make up fake percentages to make your decisions seem better.

It's not hard to find vegan diets that destroy more habitat per calorie than many meat-based diets. Look at hunting for example, which is often a net positive for animal habitat.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> I really like Hampton Creek products (I'm vegetarian, and my girlfriend is vegan, but Just Mayo is a high quality product regardless of whether you eat eggs or not). I'm honestly excited to see it show up in local stores, and have been known to go to stores that I know stock it specifically to buy it. But, this is pretty sketchy behavior.

I guess investors will be forgiving if the growth of the company ends up catching up with the faked numbers, which seems to be what's happening, but I dunno if the stores will be as quick to forget. Then again, if demand catches up quickly, they may not mind, either.

<comment><USER10> > but I dunno if the stores will be as quick to forget.

Why would the stores be mad about this? It seems like Hampton Creek has basically sent them a jar of Mayo for $5 and then turned around and bought it back from them for $10. (I'm making these numbers up but I'm assuming the stores aren't selling this Mayo at a loss.) Stores should be happy to do that all day long.

edit: I guess part of the reason they did this was to deceive the stores into giving them more shelf space. I could see that rubbing stores the wrong way.

</comment></comment><comment><USER11> This is yet another young company that I've heard of which is being driven by a desire for quick growth by trying to short-circuit the natural growth of their product.

LendingClub: misrepresenting financial standing of borrowers. Theranos: their new test is as accurate and more efficient than existing tests. Zenefits: dodged proper training of employees.

All of these seem to be inline with spurring growth. Is the expectation of quick return and/or increased valuation (no down rounds) driving companies to make these poor decisions?

<comment><USER12> 'It's easier to ask for forgiveness than permission' seems to be a feature of American startups.

<comment><USER13> I mean, that's basically Uber's business model.

<comment><USER14> AirBnB as well.

<comment><USER15> toss in manifest destiny while you're at it.

</comment></comment></comment></comment></comment><comment><USER16> They're defrauding retailers by manipulating the results of their trial runs, resulting in larger buys and wider distribution than they would have obtained otherwise.

I would be surprised if the retailers didn't have language in their agreements prohibiting this type of behavior. If the product ends up having high sell- through rates, this is just a clever growth hack, and it's a win-win. However, if the product doesn't sell after they tricked a retailer into putting a large quantity of product on shelves nationwide, it could easily end in litigation. Especially if these test runs and subsequent retail orders were material to the investment decisions of their backers.

Also: if they engaged in these practices, it probably isn't the only unscrupulous thing they've done. A fish rots from the head/where there's smoke there's fire/etc.

</comment><comment><USER17> Perhaps naive, but how is this different from spending investors' money on traditional or viral advertising? Seems like either way they are spending money to create demand. Is the only difference how it shows up in accounting? I wouldn't feel too bad for their business partners---Safeway was still making a profit, presumably, just as an advertising company instead of a retailer.

<comment><USER18> One salient detail that's a bit difficult to pick out of the article: Hampton Creek gave cash to contractors with instructions to use that cash to purchase Just Mayo. However, they recorded (some of?) these cash payments as wages on those contractor's 1099s, meaning those contractors had to pay taxes on that "income" when in truth this was (at best) a business expense.

<comment><USER14> What I don't get is why the contractors didn't just claim the expense on their taxes to striaghten it out?

<comment><USER19> Because their expenses would have to total at least 2% of their AGI in order for them to deduct them.

This means someone making $50K would need to buy $1000 worth of Just Mayo or other qualifying unreimbursed expenses.

</comment></comment></comment></comment><comment><USER20> Reddit: faked accounts to seed activities

AirBnB: scraped and spammed craigslist

OrderAhead: faked phone in orders to restaurants not participating

LendingClub: faked financial viability to lenders

Zenefits: faked hours for accrediting licenses

Homejoy: faked out investors

<comment><USER21> And Theranos?

<comment><USER20> Different class.

</comment></comment></comment><comment><USER22> How is this different from other guerrilla marketing tactics? If I'm a small company just starting operations, of course I'll do whatever I can to make myself look to be more in-demand. Not defending the accounting or payment/expense irregularities, but if they were only spending a small amount that could otherwise be spent on advertising, I would consider this an effort to help them take off in the marketplace.

<comment><USER23> They lied to investors about it and won financing based on the results of falsified sales data.

<comment><USER22> I'm not endorsing fraud, but if they spent only $77K (or twice as much) to carve their product some shelf space against Kraft or Conagra with their billion-dollar marketing budgets, I would look at their action in a different light. Without knowing the true intent and just based on the limited info presented in the article, IMHO, this is not in the same league as what Theranos was doing.

<comment><USER24> They have shown themselves to be deceitful, so how can you have any trust in that $77K number?

</comment></comment></comment></comment><comment><USER25> [http://www.businessinsider.com/hampton-creek-ceo- complaints-...](http://www.businessinsider.com/hampton-creek-ceo- complaints-2015-7)

Let's not forget, no one really has any idea what is in their "mayo." They've been caught lying about ingredients and their "huge" database of flavors

</comment><comment><USER26> This is not at all surprising if you know anything about putting a product into retail: Big box retailers have suppliers pretty much literally bent over a barrel (unless you are PG, General Mills, etc).

If your product does not sell through (volume in units) to their satisfaction in ea. / every store or region, typically you will be contractually bound to do almost all of the following:

* You will pay them to buy all product back

* You will pay logistics / restocking fees to remove the product

* You will have to figure out how to put all that product back onto your books.

Compound that with a highly perishable, refrigerated product - and of course this happens all the time.

^Edit for punc ^^ edit for detail

<comment><USER27> This is all true and it is even worse in many cases. Wonder what those "don't return this item to the store" notices are about? Most big box retailers have automatic refund percentages and penalties built in so every returned item gets placed in the trash compactor and the manufacurer eats the cost plus a penalty. Too many returns result in escalating penalties.

</comment></comment><comment><USER28> Isn't this the same company than ran afoul (no pun intended) of the FDA for labeling their non-mayonnaise product as mayo?

I bought a jar of their stuff about two years ago. It was essentially thickened vegetable oils and a sizable heaping of salt and coloring. I was unimpressed, to say the least, considering how far vegetarian and vegan alternatives to meat and dairy have come in the last decade.

</comment><comment><USER29> Hampton Creek are flat out dishonest. They have a product that is not mayonnaise, but they call it mayo. Furthermore, their product does not include any eggs but they had a huge image of an egg dominate their entire label. The entire product was based on a lie and I am not surprised they tried to mislead their investors and distributors as well.

I am all for removing animal products from the diet but that does not excuse lying to the consumer. If you think you have a great egg-less mayo like sauce, you should be proud of the fact that is egg-less and make sure the consumer knows it. Not hide it.

And no it does not taste anything like mayo. It has a weird spicy taste. Mayonnaise is not supposed to be spicy. Some people may like it, but the people that are expecting the taste of mayonnaise will be quite disappointed. I am willing to bet that a lot of food has been thrown in the trash because of this little marketing trick.

<comment><USER7> What about bacon fat mayo, which is made with bacon fat instead of the traditional olive oil?

Or how about Hellman's which almost certainly doesn't use olive oil, instead using some cheap vegetable imitation, should that be allowed to be called Mayo?

In Japan they use apple cider vinegar or rice vinegar, should that also be labelled as "rice-vinegar based mayo-like sauce"?

<comment><USER30> Mayonnaise is almost never made with 100% olive oil. It will dominate the flavor (sharp/grassy/bitter). A dash is fine, but a neutrally flavored vegetable oil like canola, rapeseed or sunflower oil is typically used.

<comment><USER7> From Wikipedia:

> According to Trutter et al.: "It is highly probable that wherever olive oil > existed, a simple preparation of oil and egg came about — particularly in > the Mediterranean region, where aioli (oil and garlic) is made."

So, no. What you are talking about is some imitation Mayonnaise-like sauce which should be law not be allowed to be called "Mayo". Because that's what the legal system is for: protecting the traditional definitions of foods from people like you who think some sort of cheap Canadian imitation flower seed oil should be allowed to be used in a traditional recipe like Mayonnaise.

</comment></comment></comment></comment><comment><USER31> > "The most important next step with Safeway is huge sales out of the gate. > This will ensure we stay on the shelf to put an end to Hellmann's factory- > farmed egg mayo, and spread the word to customers that Just Mayo is their > new preferred brand. :)"

Wow! :) Shady! :)

As far as displacing Hellman's, good luck with that.

[http://webcache.googleusercontent.com/search?q=cache:uWZnLEm...](http://webcache.googleusercontent.com/search?q=cache:uWZnLEmJ64wJ:www.slate.com/articles/life/food/2013/12/hellmann_s_mayonnaise_formula_why_does_this_high_amplitude_condiment_taste.html+&cd=1&hl=en&ct=clnk&gl=us)

<comment><USER3> When the tax benefits of the farming industry start to fall, the prices will go up, and the Hellman's may become a niche product.

This is just engineering and science at it's best. Produce food that tastes the same but has a much smaller production cost. The energy conversion from soy to chicken egg to mayo is less efficient than soy to liquified soy with some protein emulsifiers (not that it's made out of soy, I just picked soy randomly).

</comment></comment><comment><USER32> I guess that's one definition of dogfooding!

</comment><comment><USER33> Scrolling away from the video prevents it from playing on the news sites I usually visit. Not Bloomberg!

"Don't try to get away from that video by scrolling down to the article, we'll keep it in the corner for you!"

Thanks bloomberg. Adding their video player to ublock.

</comment><comment><USER34> I don't see any problem with this. If it's illegal, then prosecute them. If it's not illegal, then it's up to the shareholders to hold the executives responsible. I don't see how consumers were defrauded or deceived in any way. Major food producers pay huge buckets of money to be on those grocery store shelves. And we know the major food producers have been trying to put Hampton Creek out of business since it started. I like Just Mayo and I say good for them.

</comment><comment><USER35> A friend at a mobile gaming company once had to run an analysis on the cost/benefit of spending her company's money in one of their game to drive it up the top grossing charts. The question was whether high placement on the top grossing charts could drive a lower CaC (the cost being the 30% of spend that goes to apple) than buying similar amount of users through FB ads.

<comment><USER36> Soooo... did they do it?

</comment></comment><comment><USER23> They have placed themselves on the wrong side of the line between growth hacking and actionable fraud.

Worst yet, when Josh Tetrick (CEO) was called out on it, he tried to justify it rather than coming clean and promising not to do it again.

He'll be lucky not to be sued by investors since funding was granted based on falsified data.

</comment><comment><USER37> I love the mindset of this founder for utilizing this tactic. I'm okay with it as long as the LTV exists.

Reddit faked comments in the early days. SocialCam juiced user invites before Apple banned the practice.

I see this as no different. I do however believe they should have outsourced the calls more efficiently utilizing something like upcall.com.

This founder believes he has the vaccine of sorts to a ton of waste and if the result is a product that will reduce consumption because it's environmentally friendly, I'm okay with him being a bit vicious with it.

Also for QC, you usually buy a statistically small number of units.

You can't do this type of fake demand tactic though without letting the investors know. I think that's murky territory.

Homejoy did something similar buying fake reviews and juicing yelp reviews.

So there's always a fine line, really it's important to make sure you have lifetime value on the product.

</comment><comment><USER38> If you're going to order your employees to do questionable things you'd better make sure they're treated right. You would think it goes without saying...

<comment><USER38> Upon rereading this it may seem like I support what is ostensibly fraud and I should make it clear that I do not. I just wanted to note that mistreating (and in some cases apparently defrauding) someone who can testify against you is probably not a smart move. It speaks to their ignorance, stupidity or perhaps narcissism.

</comment></comment><comment><USER39> I'm finding it hard to be troubled by this.

If real customers will not buy the product then it will fail, no matter how much the company tries to fake it.

It's not that different from gaming the system to get on the Best Seller list.

Or how movie studies get their films to rank high so everyone thinks it's the thing to watch.

Or to mess with amazon sales rank.</comment>


Motorola's Montage Javascript app framework - <AUTHOR> https://github.com/Motorola-Mobility/montage

<comment><USER2> Is this a downstream result of work done by the 280 North team? Meanwhile, Github "Issue count" = 280, heh.

<comment><USER3> I thought the same but I asked one of the core dev's and he wasn't even familiar with Atlas. So, no.

</comment></comment><comment><USER4> Hi HN, others and I have been working on this inside Motorola and can answer any questions you have. You can also join us on irc://irc.freenode.net:6667/#montage :)

<comment><USER5> Two questions:

1) Another full stack JS Framework? What makes this special?

2) What interest does Motorola have in JS Frameworks?

<comment><USER4> A few of the things we think makes Montage special are

* very fast, realtime, two way, object to object bindings (non DOM based)

* reusable components built using regular HTML, where markup and behavior are completely separated (see the .reel directories under ui/)

* based on CommonJS, with complete script dependency loading

Edit:samples now up at <http://tetsubo.org/docs/montage/samples/>

We are also developing an HTML5 and Montage authoring tool, built using Montage: <https://github.com/Motorola-Mobility/ninja>

<comment><USER6> The kitchen sink example required authorization. How does one get credentials?

<comment><USER4> Thanks, we're looking into it and it should be fixed soon

edit: now working <http://tetsubo.org/mot/montage/examples/sink/>

</comment></comment></comment></comment></comment><comment><USER7> Is it wrong that when I see the term data binding I have bad flashbacks of Silverlight/WPF development?

<comment><USER8> What is wrong with data binding? I only know the basics of it but I find it pretty useful. Is there something I am missing?

<comment><USER9> There are purists that would insist that data binding is always less efficient than writing your own bare metal approach.

Largely, they are right. But the time invested in doing so could often be spent elsewhere, while your data-bound forms work "just fine".

</comment></comment></comment><comment><USER10> Is it just me or are all the examples slow as balls. I thought there was a js rendering error or something, but no, the kitchen sink took 30 seconds to load!?!

<comment><USER11> It loaded quickly for me, despite the poor network here.</comment></comment>