Show HN: Image segmentation and background removal in JavaScript - <AUTHOR> https://github.com/AKSHAYUBHAT/ImageSegmentation

<comment><AUTHOR> This is an alpha version, I hope to improve it over the next week by incorporating ConvnetJS, to label pixels in mixed superpixels (Superpixels with both positive and negative labels). And incorporate additional functionality to such as blurring the boundary.

The current restriction on the size of canvas 640 X 640 (Instagram size) , will also be removed over next few updates.

<comment><USER2> Congrats! Looks beautiful, makes the whole process so easy. This will save so much time to many people.

</comment></comment><comment><USER3> It was hard to get an idea of the final result in the demo gif because the last frame disappeared so quickly. Here it is [http://imgur.com/fduYXCi](http://imgur.com/fduYXCi)

<comment><AUTHOR> Thanks, I added it to the readme.

</comment></comment><comment><USER4> Was working on a similar problem, to fetch color of cloths from images(including models and background) in an e-commerce website. This implementation gives the best result so far.

<comment><AUTHOR> Depending on the size of the object you are trying to segment relative to the image, you can adjust the size of superpixels. To segment parts such as clothes you can set large superpixel size by enabling developer option on top right corner. You can also see superpixels rendered to understand which size gives best results. This method can perform even approximate non-interactive segmentation.

</comment></comment><comment><USER3> In the readme file, you have "License: Copyright 2015, Cornell University. All Rights Reserved." Does that mean there isn't a public license to use it?

<comment><AUTHOR> It will be released under Open Source compatible license, I just need to make sure since I am a PhD student.

Note that the underlying algorithm implementations are MIT licensed.

[https://github.com/kyamagu/js-segment- annotator/blob/master/...](https://github.com/kyamagu/js-segment- annotator/blob/master/LICENSE)

</comment></comment><comment><USER5> Great demo. Out of curiosity, why not compiling the C algorithm with emcc into asm.js and probably get better performances (but a much larger js file) ?

<comment><AUTHOR> Its actually based on [https://github.com/kyamagu/js-segment- annotator](https://github.com/kyamagu/js-segment-annotator) which implements two algorithm SLIC and PF.

Regarding compiling C using emscripten, I wanted a pure JS implementation so that it was hackable using Chrome Developer tools, E.g. using LAB data internally produced by SLIC algorithm. Hopefully in future, I will use a emscripten implementation. It might be important for version that proceses short gifs or videos.

Also there is a developer mode on top right, enabling it allows visualization of superpixels and change parameters of the algorithm.

</comment></comment><comment><USER6> i tried to use it, it just crashed FireFox 39.0 on Windows 7.

</comment><comment><USER7> Great stuff. Anyone aware of Android libs for this?

<comment><AUTHOR> OpenCV has GrabCut implementation which works on android. There are numerous implementations of SLIC superpixels. Even this will work through a cordova style wrapper, but I would really not recommend it, since you can use a much faster and accurate native OpenCV on android.</comment></comment>


Ask: Is this a good idea for home page? - <AUTHOR>

I am thinking of a totally new way to design my products homepage. I did a quick mockup of the page http://tinyurl.com/3s3hv4x<p>Please Share your thoughts and suggestions <comment><USER2> Stay away from Comic Sans. Too colorful (to the point of being amateurish). I wouldn't say I'm impressed.

</comment><comment><USER3> Pretty cool for your product. I'd drop the 2 feature lists on the right and I'd drop some colors, especially on the arrows. Also, I'd exchange the position of the red and green stickies to follow the natural eye movement (Z shape).

</comment><comment><AUTHOR> A direct clickable link <http://tinyurl.com/3s3hv4x></comment>


Volvo XC60 Safety Crash Test Video - <AUTHOR> http://www.theverge.com/2017/3/7/14846116/volvo-xc60-safety-crash-test-video-geneva-motor-show-2017 <comment><AUTHOR> I was wondering if anyone knew what is causing the explosions on top of the car above the trunk. Looks like it was set up there to make some internal event visible? Was it also hooked up to the airbags so they can see exactly when it inflates?

</comment><comment><USER2> Designing the wheel of a car to detach as a safety requirement for the offset crash test, yet never fall off in regular use has got to be tricky.</comment>


Ask HN: What JavaScript libraries should I use to create an interactive 3d map? - <AUTHOR>

I don't need to access geo-location data. Lets say I want to create an indoor map of a house.
I have a data model of the dimensional data of the house(length, breadth, height, rooms ..etc). What should I use to create an interactive map to show the house ?
I have mainly decided on using d3 and threejs. But I don't have any experience in this area and would love to hear opinions from you guys. <comment><USER2> Check out Esri's Javascript API, the 4.0 Beta supports 3d geometries. Though not sure about displaying an indoor map.

Main page: [https://developers.arcgis.com/javascript/beta/](https://developers.arcgis.com/javascript/beta/)

Sample: [http://developers.arcgis.com/javascript/beta/sample- code/san...](http://developers.arcgis.com/javascript/beta/sample- code/sandbox/sandbox.html?sample=sample-code/source-code/3d/scene- layer/index.html)

There is also the CityEngine Web Viewer, though not really a library: [http://www.arcgis.com/apps/CEWebViewer/viewer.html?3dWebScen...](http://www.arcgis.com/apps/CEWebViewer/viewer.html?3dWebScene=9c0e319bfaff4d33a0fe2da97c2c3fd7)</comment>


What I found wrong in Docker 1.12 - <AUTHOR> http://www.linux-toys.com/?p=684 <comment><USER2> Disclaimer: I work at AWS, but on a product which does not compete with Docker or its orchestration tools in any way shape or form. My opinions are my own.

I wouldn't even limit this to just the swarm feature. We've been running Docker in production for a year, using it in dev environments a year before that, and we've had major problems nearly every release. We had to upgrade directly from Docker 1.7 to 1.11 because every release in between was too unstable or had glaring performance regressions. We ended up running a custom build and backporting features which were worth the risk.

Speaking of 1.12, my heart sank when I saw the announcement. Native swarm adds a huge level of complexity to an already unstable piece of software. Dockercon this year was just a spectacle to shove these new tools down everyone's throats and really made it feel like they saw the container parts of Docker as "complete." One of the keynote slides literally read "No one cares about containers." I get the feeling we'll be running 1.11 for quite some time...

<comment><USER3> Would rkt be a worth to try alternative?

<comment><USER4> Hm, I don't think so. It just doesn't have enough momentum and as such there aren't many containers available. Of course, if you want to roll your own, that may not be relevant.

I tried it with the nginx and php-fpm Docker containers, but it wouldn't work – because those containers assume specific process hierarchies (to log to the console where you issued `docker run`) that just aren't present when using rkt. The advertised Docker compatibility only goes so far.

I still think rkt is a great idea, but I'm too lazy to develop my own containers. The documentation isn't that good either.

<comment><USER5> They need to implement support for the Dockerfile format if they want to win. People value inertia. The switching costs have to be low if you expect anyone to switch; this only become non-true when the incumbent becomes intolerably useless to the general userbase.

<comment><USER6> rkt can run any docker image built by a Dockerfile: [https://coreos.com/rkt/docs/latest/running-docker- images.htm...](https://coreos.com/rkt/docs/latest/running-docker-images.html)

I agree that we need a better ecosystem of build tools and that is something we are looking to help build out. But, with rkt what we are trying to do is build an excellent runtime; and think the build side is an important and orthogonal problem.

</comment></comment></comment></comment></comment><comment><USER7> There are a couple of things here. 1) Right now everyone is afraid that Docker will emulate VMware, and crowd them out of the container space, much like VMware killed most of their competitors. 2) To this end, I have heard that Google and Redhat have massive marketing budgets, and that the marching orders have been over and over - don't say docker, say k8s. 3) The real battle is where the money is - large scale distributed systems. Companies want to freeze docker out, because Docker controls the lowest point of access - the container runtime itself. 4) hence google is trying to push "docker compatible" ideas that are just the OCI standard - nothing to do with Docker itself.

AWS doesn't want to support Swarm, because it gives people portability off of their cloud. Google doesn't want to support swarm, because K8s is a trojan for Google Cloud. No one else wants to support swarm because it competes with their products.

That said, what's happening right now, if we are not careful, will fragment the container ecosystem, and it make it impossible for single containers to target multiple runtimes.

Docker is the only one who can deliver a universal set of functionality that is leveraged by all. From a technology point of view, Docker is going in the right direction. We got burned with Redhat in Openshift 1 & 2 land, and that's left us with a point of view that the only thing we can depend on is a container runtime itself, and 12fa applications.

K8s does not really work that way. It's huge and it's heavy, and it expects every app to be written it's way.

The technical direction here for Docker is good. But the implementation and early release is ridiculous. I was impressed by the first RC release, and then terrified that they released a RC as production.

<comment><USER8> > Docker is the only one who can deliver a universal set of functionality that > is leveraged by all.

Why do you say that? I have quite a bit more faith in the design chops of the folks behind Kubernetes (Google, Redhat, CoreOS, and many others) than Docker Inc.

Swarm really only touches the surface of the requirements for large scale distributed container orchestration.

Kubernetes is complex because the problem it attempts to solve is complex.

I'd also add that Kubernetes is dead simple to _use_. The difficulty is in setting it up - but even that is getting much better.

<comment><USER7> Good question. K8s has a network mode that is incompatible with swarm, mesos and nomad. Swarm only touches the very top of requirements for complex deployments, but going into K8s, the way they do thing pretty much prevents separate container orchestration systems from working in parallel.

For it to be universal, it has to live in the container runtime.

</comment></comment></comment><comment><USER9> I wish that docker would adapt more of a Unix philosophy and focus on doing one thing well. Why does everyone have to compete with everyone rather than create set of tools that work well together?

I see docker-machine and docker-swarm as distractions. Reasons why doing all those other things, instead of focusing on containerisation and packaging may be harm-full for docker itself:

\- Bundling-in the orchestration with docker make k8s or Mesos more inclined to fork docker and pull out unnecessary cruft.

\- Churning out half-ready features causes Docker to be known as unreliable and leads to posts with titles like this. Such reputation tends to stay long after bugs are fixed. SV-esque launch and iterate works for web apps, but IMO not for back-end software.

<comment><USER10> "In infantry battles, he told us, there is only one strategy: Fire and Motion. You move towards the enemy while firing your weapon. The firing forces him to keep his head down so he can't fire at you. (That's what the soldiers mean when they shout "cover me." It means, "fire at our enemy so he has to duck and can't fire at me while I run across this street, here." It works.) The motion allows you to conquer territory and get closer to your enemy, where your shots are much more likely to hit their target. If you're not moving, the enemy gets to decide what happens, which is not a good thing. If you're not firing, the enemy will fire at you, pinning you down."

From one of Spolky's finest, _Fire and Motion_ : [http://www.joelonsoftware.com/articles/fog0000000339.html](http://www.joelonsoftware.com/articles/fog0000000339.html)

<comment><USER11> "If only the Generals had not been content to fight machine-gun bullets with the breasts of gallant young men, and think that that was waging war."

\- Churchill 1931

<comment><USER12> I want you to think very seriously over this question of poison gas. I would not use it unless it could be shown either that (a) it was life or death for us, or (b) that it would shorten the war by a year.

It is absurd to consider morality on this topic when everybody used it in the last war without a word of complaint from the moralists or the Church. On the other hand, in the last war bombing of open cities was regarded as forbidden. Now everybody does it as a matter of course. It is simply a question of fashion changing as she does between long and short skirts for women.

\- Churchill 1944

<comment><USER13> "War," writes von Clausewitz, "is an act of violence intended to compel our opponent to fulfil our will…This is the way in which the matter must be viewed, and it is to no purpose, it is even against one's own interest, to turn away from the consideration of the real nature of the affair because the horror of its elements excites repugnance."

<comment><USER14> Supreme excellence consists of breaking the enemy's will, without fighting -- Sun Tzu

</comment></comment></comment></comment></comment></comment><comment><USER15> Yes maybe the Docker team should just have joined forces with Kubernetes (K8s) instead of going out on their own and building Swarm from scratch.

K8s is far ahead of Swarm - K8s has practically built its own language using YAML files - Swarm is still at a stage that all the configs for a service have to fit into a single command (and the options are much more restrictive than K8s).

To be fair, I do like some things about Swarm better than K8s (based on the docs), but in practice, Swarm is behind and they should tell you that up front. When I was just starting out, I literally had to install all of them; Swarm, Mesos and K8s to be able to make an informed decision because, in the case of Docker, the docs are like 6 months ahead of reality. I didn't realize that the Docker 'service' command didn't even exist until v1.12 and I couldn't install v1.12 on my machine (last time I tried, installation was failing - Obviously not yet stable).

I think Swarm has potential but they need to accept that they're just not going to be the first to market.

<comment><USER16> To be fair, I don't think they built Swarm from scratch, I think it is/was a rebranding of an acquired product. That being said, Docker and swarm in particular move too fast for their docs to keep up (let's change the syntax for some important commands between the final RC and the release?) and it feels like the only way to be well informed is to scour the github issues, which seems wrong for something that's touted as a stable, commercially- supported product.

<comment><USER17> Swarmkit was built from scratch, based on lessons learned in the previous non integrated Swarm.

<comment><USER18> This is true. The team packed a lot into this new codebase. Many miles to go, however.

</comment></comment></comment></comment><comment><USER19> The new swarm mode is great when it works, but it is monster to debug. It takes care of so many things that it is nearly impossible to pin point what component isn't working.

The issues I have encountered with swarm mode:

* Some containers could not use hostnames to connect to other containers.

* Sometimes, in a 3 node swarm, containers on A could be reached from B, but not from C.

* After every reboot these issues could be fixed or start occurring.

* It automatically adds firewall rules for every service you port map to be exposed to the internet, without warning

In the end I switched to nomad, it isn't perfect either but at least it is consistent.

<comment><USER20> Do you have the links to the issue tracker for each of these issues? For me/us to subscribe/follow.

</comment></comment><comment><USER21> If you look at the design of Kubernetes you'll find a very strong opinion on how networking is done. Kubernetes does not allow the use of Network Address Translation (NAT) for container-to-container or for container-to-node traffic. The internal container IP address must match the IP address that is used to communicate with it. Swarm plays faster and looser than this. I think Google's age and experience shows that Docker went the wrong way.

<comment><USER7> If by google's age and experience, you mean the requirements of the Google Cloud, then i agree.

Docker is doing exactly what they should be, but in a manner that is destructive. Getting a built in consistent p2p routing mesh under every container is brilliant, and fixes one of the biggest problems with k8s and swarm (it's not really possible for these technologies to interoperate because of incompatibilities with the network model).

The big problem is the stability hit. 1.12 had no business loosing the rc label.

<comment><USER22> > If by google's age and experience, you mean the requirements of the Google > Cloud, then i agree.

Why do you think this is a requirement of Google Cloud?

<comment><USER7> Kubernetes and Google Cloud were both informed by the design and implemention of Borg. Kubernetes is basically for all intents and purposes Google Container Engine. That's fine, but it;s highly tuned for how google sees the world.

<comment><USER21> Huh? Kubernetes can run just fine outside of Google's Cloud. It'll work on any TCP/IP IaaS offering out there. If you mean it demands a clear end-to-end connection model for the important moving parts, then, yeah; because of hard- won experience of what works. They found out that you want to spend your time on bugs in your app, not bugs in your networking infra.

</comment></comment></comment></comment></comment><comment><USER23> Swarm Mode is "great". Assuming you've never heard of or used Kubernetes. In which case, Docker Swarm is too little, and a year+ too late.

As for marketing, it does seem a bit funny that a product would announce "deep integration with underlying infrastructure" for a cloud provider when they haven't written a single line of (public) code to actually support that cloud provider.

The fun thing is this arguably critical blog post praises features in "swarm mode" that have long been present in Kubernetes/Mesos/Nomad: [labels/constraints].

There could be a lot written about the fact that Docker ships "Swarm Mode" as stable in 1.12 despite virtually everyone's actual first-hand experiences. I would argue that if "Swarm Mode" were not shipped inside of Docker 1.12 and didn't benefit from riding along with the normal `docker` package, few would be talking about it.

<comment><AUTHOR> Yeah, Docker has a lot of catching up to do. They bragged a lot lately about how Swarm is faster than K8s but you really can not compare the two when you look at features and stability of k8s.

<comment><USER24> It's amazing (and not in a good way) that this stuff is being shipped in a point release.

</comment></comment></comment><comment><USER25> I also assumed the new easy swarm would be easier, but the Multi-host network only works with the newly introduced service command only, it does not work with regular docker run command, which is disappointing because you still neeed a third party key-value store for it, but not for docker service. It literally took me hours to realize that was missing. I think 1.12 was just rushed to show it in DockerCon, normally major releases were mostly bug-free and worked as intended.

<comment><AUTHOR> I feel the pain for I was in the same boat.

</comment></comment><comment><USER26> Docker team, please focus on one thing - packing apps to containers. Leave everything else to other projects, don't try to do everything wrong, just do one thing good. Thank you.

<comment><USER24> The problem is that they literally can't do that - Docker Inc. took a huge pile of VC money, and containerization is a commodity feature. To succeed they have to build higher-level products and services, which put them in direct competition with the other vendors in the ecosystem.

<comment><USER27> >To succeed they have to build higher-level products and services

I wish they didn't have to cram it all into single product docker though.

<comment><USER28> Great point - it would be nice if they separated out their monetization products (Swarm, Docker Datacenter, etc) from the core Docker engine. There is plenty of money to be made from enterprise customers who will want the security features of Docker Datacenter, or support for Swarm, without bundling your orchestration layer with the container runtime engine.

This type of bundling reminds me of Microsoft bundling IE with Windows. Initially, IE was much worse than Netscape, and this seems like roughly the same thing - monopoly in one market bundling an inferior product to try and achieve a monopoly in another somewhat related market.

</comment></comment></comment></comment><comment><USER29> I haven't played enough with Docker Swarm to run into any of these issues, but Rancher (www.rancher.com) does all of this, and more, very well. I am not affiliated with them - just a happy user and contributor of github issues.

<comment><USER30> Went with them last week, as it seemed to be one of the most sane options out there (I've tried a lot). Still, has its share of issues. Few ones I've encountered so far:

\- Their built-in load balancing (HAProxy-based) is nearly impossible to debug. Literally no logging there.

\- No locality awareness. DNS queries always return all addresses they know about (including those that don't even work - [https://github.com/rancher/rancher/issues/5792](https://github.com/rancher/rancher/issues/5792)) and I haven't yet found any good way to prioritize containers co-running on the local host to the more distant ones ([https://github.com/rancher/rancher/issues/5798](https://github.com/rancher/rancher/issues/5798) \- if someone been to this situation and has some ideas, would appreciate any suggestions!).

\- Storage management was advertised, but can't find anything besides NFS (which is SPOF) and Amazon EFS (which I don't use). There was GlusterFS support, but it seems it was too broken so they had removed it or something like that. If one wants persistent storage, they'd better pin containers to hosts.

<comment><USER31> > I haven't yet found any good way to prioritize containers co-running on the > local host

You may find that RFC3484 helps; it prefers the address with the longest prefix in common with your own address so will tend to pick your own address. And you are probably getting this behaviour already.

<comment><USER30> Thanks for the pointers! Unfortunately, I don't think this applies. I'm certainly not getting this behavior - I wouldn't have even thought of it if I haven't observed higher latencies resulting from (sub)requests chain jumping from node to node back-and-forth, instead of staying within the node's boundaries.

The problem is, the network space there is flat, not hierarchical - while I haven't looked at the actual implementation code, I believe container addresses are just randomly chosen from a single big 10.42/16 subnet and I'm unaware if there's a way that I can assign hosts, say, a /20 out of that space (yes, this would've solved things nicely).

<comment><USER31> Oh. Right. I happen to work on a different Docker network, which 'chunks' the address space so containers on the same machine are very likely to have contiguous addresses. Hadn't occurred to me theirs doesn't do that.

<comment><USER30> Just curious - what networking/clustering solution you're using?

(I'm asking, so the next time I'll have to make a choice between stacks I would be more aware about the finer details.)

Thanks!

<comment><USER31> I work on Weave Net [http://github.com/weaveworks/weave](http://github.com/weaveworks/weave).

</comment></comment></comment></comment></comment></comment></comment><comment><USER32> Quality is something long term, but because the world becomes faster and faster people care less about it. Hype can generate a lot of money in the short term. And that is what is valued the most in the current economy. Being a quality guy myself I also feel that this is painful, but I think it's hard to blame anybody for that. I don't know anybody who goes for the short term success because they want to live in that kind of world. It's just about the only thing that gets rewarded.

</comment><comment><USER33> # Market-Driven-Development

Docker promises too much and delivers too little. Story of every software project in the last 50 years.

</comment><comment><USER34> I wish Docker had some more open source competitors particularly some non- profit competitors. Yes I know Docker is open source but I have this terribly gut feeling about becoming too reliant on their technology. I feel like I'm going to screwed some day.

I guess I just know some day Docker's investors are going to want their money back.

Yes sure there are other quasi opensource products that are super critical that I use but they all have alternatives (for example Java has plenty of alternatives).

Hopefully I don't get downvoted to oblivion for this comment. I am sure my trust issues are illogical and I would really like to remove the inhibition to use docker but articles like this do not help.

<comment><USER24> I don't think that you are being completely illogical. One thing about the Docker stack, though, is that it is supported by every major vendor, and you may well be getting your server installations through a vendor (Red Hat, AWS etc.), so in that case you are insulated from problems. As other commenters have discussed, the vendors test and patch their Docker distributions themselves already, as well as contributing to development.

We also already have a functional replacement with rkt. It can use Docker images, and Kubernetes can use rkt as a run-time in place of Docker, so Docker is not irreplaceable.

I think that the most valuable bits of Docker today are the developer tooling - easy Windows and Mac installers, Docker Compose, the online documentation, and the Hub for grabbing ready-made images. None of which, AFAIK, makes much money for Docker Inc.

</comment></comment><comment><USER35> It seems that using Kubernetes is definitely more mature and usable than Swarm. But how would you rate the other Docker projects, like docker-machine and docker-compose. Does Kubernetes also subsume those projects?

These seem to be way more mature than Swarm.

<comment><USER36> I don't know if Kubernetes is more usable - it's a MONSTER to host yourself.

Other docker projects suffer from various levels of similar issues. Docker- machine is nice, but has a ton of rough edges, especially when spinning up host on AWS. It feels like the programmer(s) of machine never used AWS beyond the simplest use case.

<comment> iso-8859-1 Did you see [https://github.com/kubernetes/minikube](https://github.com/kubernetes/minikube) ?

</comment></comment></comment><comment><USER37> We've experimented with docker in a few places, and the deployment workflow is just painful:

      1. sudo docker build -t quay.io/foo/bar
      2. sudo docker push quay.io/foo/bar
      3. <login to production>
      4. sudo docker pull quay.io/foo/bar
      5. sudo docker kill foobar
      6. sudo docker rm foobar
      7. sudo docker run -p 80:80 -p 443:443 -e FOO=bar --name foobar --net=host -d quay.io/foo/bar

I can never understand how people talk about docker making deployments somehow easier.

<comment><USER38> How is that painful?

I run a service using docker and have your steps 4 through 7 as part of a systemd unit file. Updating the application requires a single systemd restart command.

<comment><USER39> could you talk about your deployment scripts ? i am trying to deploy a single flask app which uses redis. I'm not sure how to set up logging, etc. and whether redis and flask will go in the same VM.

<comment><USER38> Not much in the way of scripts, but the systemd file I use is something like this:

      [Unit]
      Description=App
      After=docker.service
      Requires=docker.service

      [Service]
      TimeoutStartSec=0
      ExecStartPre=/usr/bin/docker pull app
      ExecStartPre=-/usr/bin/docker kill app
      ExecStartPre=-/usr/bin/docker rm app
      ExecStart=/usr/bin/docker run --name app --rm=true -p 80:80 app

      [Install]
      WantedBy=multi-user.target

With something like dokku I could just push the git repo containing the Dockerfile and it would accomplish the same thing

<comment><USER40> You probably also want to add: PartOf=Docker.service

This will ensure that a restart of the docker service will trigger this service to be restarted.

</comment></comment></comment></comment></comment><comment><USER41> I share the pain of this post - except my run-in with 1.12 occurred with Docker for Windows. The shared volumes and host networking were totally nondeterministic. I don't think I had really ever experienced software which seemed to fail so randomly.

On the other hand I think Docker can probably be forgiven for my particular frustration. For one, the software was in beta. And two, working with Windows and all the different flavors must be a nightmare.

<comment><USER42> (I work at Docker)

If you haven't already and can spare the time, could you file a pair of issues: perhaps one for the shared volume problem and another for the networking on [https://github.com/docker/for- win](https://github.com/docker/for-win) ?

We've been fixing bugs in both areas and the fixes should arrive in the beta channel over the next few updates. Thanks for your patience!

</comment></comment><comment><USER43> Am I the only person around here who is skeptical of _all_ this added complexity?

Some of it is clearly very useful, but some of it strikes me as a tower of babel built upon workarounds to problems that have simpler solutions.

What I see here are several different vendors vying to make sure they remain relevant. While I understand this and even the need for it, I also understand that it can drive poor engineering decisions in the long run.

</comment><comment><USER44> Disclaimer: I work for Mesosphere

This is the reason the latest Mesos and DCOS has the universal containerizer. Docker is great for development but currently doesn't make sense for production. The latest DCOS uses the docker images without the docker process and provides the high scale production quality needed for a large datacenter.

</comment><comment><USER45> > _please take it slow and make Docker great again!_

Perhaps they should create some sort of firewall? I mean, the network packets coming through... they bring malware... they're spam... and some, I assume, are good traffic.

<comment><USER46> I agree very much. Trying to figure out how Docker hacks your host's iptables and how to deal with it in a production network is a pain.

<comment><USER2> We never let Docker set its own iptables rules. It is a pain at first, but it forces you to understand how the rules work, what is going on, and has the added bonus of keeping those rules consistent across Docker releases and in your own version control.

<comment><USER46> so as I understand you add and remove the port mapping and other FW entries with your own scripts whenever you spin up / stop a container?

<comment><USER2> Port mapping isn't handled by iptables, only the wiring of the docker virtual interface. We take care of that piece, but let docker do whatever it wants within that interface.

</comment></comment></comment></comment></comment><comment><USER47> This should be renamed to "the sad state of swarm mode"

</comment><comment><AUTHOR> I am looking more and more about using the Apcera Platform. They have everything I need in a container management platform for free: [https://www.apcera.com/community-edition](https://www.apcera.com/community- edition)

<comment><USER48> Do you work for Apcera?

Your submission page is heavy on the linux-toys.com domain, implying that it's yours. That same site identifies the author as working at Apcera.

There is also a submission in your account that points directly to an Apcera blogpost, with the same author name.

Disclosure: I work for Pivotal, we donate the majority of engineering to Cloud Foundry. Apcera has beef with us.

<comment><AUTHOR> Yes, I work for Apcera and linux-toys.com is my personal blog where I talk about open source technologies (mainly Docker lately) and software that I develop. Like the article states, I am a Docker fanboy and want them to be great again. The blog website is actually running on a four node Raspberry pi cluster that I referenced in the blog as a link. The reason I joined Apcera is because they are also developing cool container technology. Until recently, Apcera was only available to enterprises and didn't have a solution for "homeduction" users like me to host and run applications like my blog and a few other services. With the community edition of the software, I can gather a few spare x86 boxes and make the switch. I will still be running the same Docker images but using Apcera's orchestration software instead of swarm.

<comment><USER48> Thanks. I'm glad to hear Apcera is branching out and that you're excited to work there.

</comment></comment></comment></comment><comment><USER49> Trying to run Docker on your own to do anything meaningful can be a very painful exercise.

I gave up after trying to spin up a cluster on DigitalOcean using v1.12. Like the author, I couldn't get my containers to see each other, something that worked before v1.12.

</comment><comment><USER50> I personally just getting into Docker and am looking at the swarm feature for deploying containerized compute nodes to our cluster. People here seem to be complaining specifically about Swarm mode, is there anything I should watch out for? What does Kubernetes provide that Docker swarm doesn't?

I've tested Docker Swarm a bit and it seems to work as advertised.

Is it just about node selection not being sophisticated enough? In that case I don't need to worry since all my nodes are the same, but if there's any words of warning I'm all ears. Thanks.

</comment><comment><USER51> I've been using docker since version 0.6 and followed almost every version upgrade since and it's an absolute mess. This blog post is spot on.

My old team had a production environment running in docker containers for about a year (this was pre-swarm, pre-kubernetes) and then transitioned to just using ansible for application deployment in a more "traditional" manner because we spent more time trying to fix broken things with docker than it was worth.

</comment><comment><USER39> Question: we are looking to deploy a flask + redis based application to a single server on AWS using docker. No load balancing, no multiple server

what is the current best practice to do this (with logging, etc.) ? should I even be considering something like marathon/k8s, etc ?

currently I have a fat docker VM with supervisord and all services running in a single VM with highly fragile logging. I dont think this can last.

getting started seems very intimidating in the Docker world.

<comment><USER52> Dokku should be able to handle all of your concerns. We do load-balancing on the server via nginx, use Docker's plumbing (the docker command/api) to build nice porcelain (our own cli tool) for stuff like restart policies etc. It's targeted specifically at single-server solutions, and migrating once you are large enough to another platform is easy as we tend to not build in platform lock-in.

Feel free to jump on our slack or irc: [http://dokku.viewdocs.io/dokku/getting-started/where-to- get-...](http://dokku.viewdocs.io/dokku/getting-started/where-to-get-help/)

Disclaimer: I am a maintainer of Dokku

</comment></comment><comment><USER53> I changed the baity, over-general title "The Sad State of Docker" to what the first paragraph of the article says it's actually about.

Generally we moderate HN stories/threads less when a YC startup or YC itself is at issue. But we do still moderate them some, because the standards of the site still apply.

(We haven't done anything here besides this title edit, though, in case anybody is wondering.)

</comment><comment><USER54> Negative comments here seem to be a gross overreaction. This is primarily a code release. Code is always going to keep moving. I have used swarm and it's nowhere close to unstable as people say it is. Is it production ready? Probably not. But which software is production ready in every big release?

Unnecessary fear mongering by people who have an outside agenda.

<comment><USER55> Which release is going to be production ready, and which features are production ready in each release? If Docker Inc documented which features are production ready, I'd have more sympathy for that point of view.

What we've had to do at Red Hat is always stay a couple releases behind (we're shipping 1.10+patches right now) and backport all the fixes from upstream releases to make it stable (ie production ready). Docker keeps shipping new versions, with fixes for old issues but then a whole new set of issues added in.

</comment></comment><comment><USER27> is swarm mode same as docker swarm [1]? Curious, Why they choose the same name if that's not the case.

Why would one use docker swarm[1] vs just docker swarm mode.

1.[https://github.com/docker/swarm](https://github.com/docker/swarm)

<comment><USER56> It's not the same. Strangely the docker-swarm tutorial doesn't mention swarm mode. I wasn't able to follow it successfully with Docker 1.12. That was when I realized docker-swarm != swarm mode, so I tried the swarm mode tutorial instead, and it worked as expected.

Maybe docker-swarm is not supported anymore with 1.12? It was all pretty confusing.

<comment><USER27> >Maybe docker-swarm is not supported anymore with 1.12?

I am using docker-swarm with 1.12 so it's definitely supported. Yea I am really confused too :D.

</comment></comment></comment><comment><USER57> If you need a distributed PaaS alternative for RPi and others, you can look at [https://github.com/tinspin/rupy](https://github.com/tinspin/rupy).

It's simple and stable!

</comment><comment><USER58> One reason for release of Open source software is testing.

<comment><USER59> Yes, but that's why "alpha", "beta" and "RC" labels exist.

</comment></comment><comment><USER60> rekt.. I mean, rkt

</comment><comment><USER61> IMHO, nobody should care / worry about the underlying orchestration. The industry is moving toward the public service model, and all these management problem is solved by the cloud platform, not app developers. Check out hyper.sh, that's what container service would be.

<comment><USER62> Or I could manage my own network, which isn't that hard and for a lot of (if not most) cases, less expensive.

</comment></comment><comment><USER63> So you are saying that a new major software release that is less than a month old still has some bugs? I am shocked. Shocked! Well, not that shocked.

If you can't take the bleeding part of bleeding edge, wait for things to mature before using them. Bitching and whining that they didn't create a perfect product out the gate only belittles the hard work it took to get a new product out the door.

This is how software releases work in the real world!

<comment><USER23> It's one thing to knowingly release beta software as "beta".

It's another thing to bundle beta software into an existing package and label it as stable in order to stay relevant in the orchestration game.

</comment></comment><comment><USER64> Don't know what all the fuss is about when essentially you're getting Docker for free?

<comment><USER65> That's terrible logic. Imagine if Google just decided to delete people's email randomly in Gmail ... because free.

<comment><USER64> Are you paying for the service?

<comment><USER66> Actually we _do_ pay for "free".

Why do you think "free" is used as a marketing strategy? Obviously there _is_ a monetary benefit somewhere - or anyone attempting a "free" or even just a "low(er) price" strategy must be doing wrong. An example is Uber, which has just generated yet another billion dollar loss headline.

Apart from the data collection model, what it does is it removes the incentive of others to enter that market and possibly create something better.

And on an individual level, something can have a cost merely by existing - because I have top _choose_. And if I choose wrong I end up worse than where I could be.

Imagine I was an evil guy from a Disney movie. My next project to annoy people might be to create an app that _seems_ to work - but has a lot of very annoying flaws. However, I never mention the flaws (of course not), instead I go all out on my marketing and make a lot of claims to get people to use my evil software. I then sit back and with an evil laugh enjoy the frustration that I created a million times - the (Disney-level) evil scheme succeeded. I wasted lots of people's time; I may also have sabotaged other (non-evil) projects by taking users away from them, and I managed to raise the world-wide frustration level.

<comment><USER64> Unless you write a check out to them, then I classify that as being free. You're feeling that you're entitled to a service that you don't pay anything for.

<comment><USER66> That is so random - what does your reply have to do with what I wrote?</comment></comment></comment></comment></comment></comment>


PcapPlusPlus v17.11 released – C++ network packet sniffing and crafting library - <AUTHOR> http://seladb.github.io/PcapPlusPlus-Doc/download.html <comment><USER2> Fully agree, it contains some great utilities such as PcapSplitter which I've been used before and served me well

</comment><comment> James-Chan Seems like a great library, well documented and cross-platform</comment>


Can Flash Survive HTML5? - <AUTHOR> http://www.linux-mag.com/id/7734 <comment><USER2> Some people think that Flash will die in face of HTML5 if they repeat it many times. The reality though is that Flash has many features over HTML5, is much faster than most implementations and unlike HTML5 which isn't even fully supported by all browsers available, Flash is right here right now and works with all major browsers released the past decade.

As i said many times at similar threads, i don't like Flash and sometimes i wish Sun didn't killed Java off the web with its UX ignorance (Java is much faster and capable than Flash but even today the experience is awful). But there isn't a better tool for the job and if someone wants to provide a Flash alternative, this alternative must provide everything that Flash provides _including the Flash designer_ AND good /practical/ reasons for existing Flash users to move and learn whatever new platform.

<comment><USER3> A 1.8 GHz machine should be able to play a low-resolution video without stuttering or lagging. Yet every time I visit Youtube on my admittedly rather old computer, it slows to a damn crawl. You know what could play similar resolution videos at full speed with no problems? My goddamn 486/66. Flash needs to go.

<comment><USER2> Are you sure your 486/66 can play streamed H.264 videos?

Besides, Flash isn't only about video. Although currently is the only working cross-browser method to show video.

</comment></comment></comment><comment><USER4> I really hope not... I'd really love to see html5 and javascript replace it. Especially because once html5 offers the basic functionality, javascript flash emulators like gordon (<http://github.com/tobeytailor/gordon>) will be able to fill the gap while designers are still holding out</comment>


Publishers That Say No to Automated Ad Sales - <AUTHOR> http://www.wsj.com/articles/publishers-that-say-no-to-automated-ad-sales-1443650792?cb=logged0.13897654577158391 <comment><USER2> Nothing new here--publishers want more direct buys vs. programmatic remnant sales on the exchanges. Higher margins, controlling the data, keeping things a black box--can't say I blame them, but that's not to say they'll get their wish.</comment>


Ask HN: What browser do you use? - <AUTHOR>

Personally, i go with Firefox Beta.<p>If you use a not-so-known browser, please post a link on how to find it! <comment><USER2> It used to be chrome. But over the last 6 months chrome has become a huge memory hog. I'm back to Firefox now.

<comment><USER3> Memory hog? Have you tried The Great Suspender[1]? It's really handy when you have lots of tabs open.

1: [https://chrome.google.com/webstore/detail/the-great- suspende...](https://chrome.google.com/webstore/detail/the-great- suspender/klbibkeccnjlkjkiokjodocebajanakg?hl=en)

</comment></comment><comment><USER4> Firefox, latest version 24 on linux runs very nice. Firefox has been very fast and stable at least in the last 5 releases.

I can't stand chromium ( I don't use chrome ), it lacks too many options and it's really annoying that it closes the browser when you close the last tab. It's a bug, not a feature, god dammit! All the extensions for it are just hacks that don't really work.

I only open chromium for some weird site not really rendering well or that displays any bug with adblock turned on in firefox.

</comment><comment><USER5> It really depends on what are you looking for a browser, i you want speed, go with chrome, they developed a realy cool engine now call "blink" and it's fast, no doubt. But if you want a browser with less errors and you want to support a free internet and the use of real free software, use firefox, mozilla fundation is awesome and their comunnity helps eachother out a lot.

</comment><comment><USER6> Firefox on desktop/laptop, Safari on phone.

</comment><comment><USER3> Chrome because it's fast, and it integrates with iOS chrome nicely. Plus there's a couple extensions I use on a regular basis.

</comment><comment><USER7> I'm struggle every 3 months. I use Safari then go back to Chrome then go back to Safari, then go back to Chrome and so on.

</comment><comment><USER8> Opera! Fast, innovative, and standards-compliant since before those things were cool! Also, mouse gestures are pretty rad.

</comment><comment><USER9> Firefox and uzbl on Ubuntu

</comment><comment><USER10> Chrome all the time.

</comment><comment><USER11> IE/FF/CR

</comment><comment><USER12> Lynx

<comment><USER6> I love Lynx, it makes browsing ad-laden websites so much faster :)

</comment></comment><comment><USER13> ff</comment>


What Is It to be Intellectually Humble?  - <AUTHOR> http://www.bigquestionsonline.com/content/what-it-be-intellectually-humble <comment><USER2> The best definition of humility I have heard is: keeping in mind the possibility that one might be wrong.</comment>


My Perfect RSS reader / aggregator  - <AUTHOR> http://johnnye.net/articles/my-perfect-rss-reader.html

<comment><USER2> About the Google Reader API: I think part of the reason so many things rely on it, despite the fact that it isn't "supported", is that we actually designed an API for it. When we built Reader we decided that instead of trying to bolt an API on later we'd have our UI go through our own API. This would help ensure that our API was "complete" and would stay that way -- if you could do something in Reader, chances are the API supported it. (I feel like this is obvious, yet so many web apps don't do things this way.)

Our original plan was to document the API, but it turned out that there was a separate project going on concurrently to create a "standard" sort of API for Google products, GData. Reader's API wasn't GData compliant, and actually used a very different philosophy from GData. GData is CRUD-centric while Reader's API was pretty much just RPCs over HTTP. RPCs with side-effects would go over POST and those without would use GET. We also supported responses in either XML or JSON. GData used Atom for everything (something I found a bit ironic), though later GData added a sort of JSON support (really XML in JSON syntax -- Object literals with XML namespaces).

Anyway, my point is that GData was very different from Reader's API. We were told we'd have to GData-ify our API before publishing it since all new APIs were supposed to be GData. Nobody was really interested in doing that, so the only API documentation that exists is "unofficial".</comment>


How Are the Mighty Fallen - On Peer reviews and Rejected Papers - <AUTHOR> http://michaelnielsen.org/blog/how-are-the-mighty-fallen/

<comment><AUTHOR> Link to Original 1994 paper - "How Are the Mighty Fallen: Rejected Classic Articles by Leading Economists" [http://www.unifr.ch/wipol/assets/files/PhD%20Course/gans_she...](http://www.unifr.ch/wipol/assets/files/PhD%20Course/gans_shepherd1994.pdf)</comment>


Ask HN: Objecting to stories being killed - <AUTHOR>

I concur with the value of keeping meta-discussion on HN to a minimum, but sometimes it really surprises me when a story gets killed.
At one point, you could object by commenting in the thread under an existing comment.  That often caused moderators to reverse the kill if a legitimate point about relevance was raised.  It seems this has been disabled.
This came to mind today when I noticed that the stories of recording studio engineers about the experience of working with Michael Jackson, about his work ethic and management style, was killed after 77 points [1].
If anything, that set of stories is the very most relevant, and definitely the very most interesting, of all the things about Jackson that have been posted here.  The stories are told from a very 'hackerly' perspective, and the peripheral environment of the stories -- recording studios and the related technology and business environment -- are interesting to many people in this audience.  The comment thread had some interesting tidbits, and looked in no danger of going astray.  And as a point of comparison, I very much doubt that a much less interesting or timely 400 word blog post about the "value of a strong work ethic" would have been killed on HN.
Anyway, this is all just peanuts in the long term for HN, but it seems we should work out a way of raising a legitimate objection to a moderator kill without resorting to an 'Ask HN' comment such as this.
[1] http://news.ycombinator.com/item?id=685603 <comment><USER2> Aren't submissions killed through flagging? It's the community that kills posts, rather than the moderators. I haven't looked at the code, but I think it's something that is automatic. Some clarification on that?

Preface: I love meta-conversation. It's like introspection and from introspection, there is growth...

I am with you. I thoroughly enjoyed the post. I like knowing that MJ was a very nice man and very genuine. He was an authentic person in a sea of frauds and bluffers -- a breath of fresh air.

Anyway, this is just a problem with community. Communities are just aggregates of the individuals. I lurked at HN for a long time before I decided to join in and try to add value. I like HN because the community here values truth above all. There was a desire to have open conversation and see all sides of an argument and really dig deep into a topic to figure out what is going on.

I think the MJ issue is one of those. It's an interesting story. A long life of hard work, sacrifice, a rollercoaster of a life. His is the kind of lesson we can learn from.

But the community here is very ... narrow minded I would say. It's young. It hasn't "Learned the hard way" so to speak. It's quick to adopt new technologies. It's slow to learn from the past. This community _wants_ change. It _wants_ something different. But Michael Jackson stories have quickly become "the same." This community wants to get away from that.

Anyway, I'm just rambling here. Flag me if you want, [dead] my comment. I'm just talking. I don't have an agenda, but it seems more often than not, agendas are being pushed here. Propaganda.

Some of the agendas around here: Open Source, No SQL, Anti-Microsoft, Anti- higher education, Programming language elitism, environmentalism, healthcare reform, pirating copyrighted material, and getting rich quick to name a few. Some are my agendas, some aren't, but anything contrary to these positions is ignored or flamed for community selection bias. There are people in the group who are not like that, of course. I appreciate lots of comments on both sides. Some of those things I mentioned above I dont like so much, but I tolerate them. Nothing is perfect right? Really my goal is to find truth, but it seems like truth is becoming less of an agenda around here. Logical and rational conversation is becoming [dead] as well.

As the community gets larger, it's going to approach "main stream." And there is a mainstream even among programmers, the l33t ones. I feel like I'm talking to myself 10 years ago. I thought I knew a lot more than I did. I'm not wise by any measure, but I see myself in hacker news, so I can reflect on it with some hindsight, because it is a lot more like myself 10 years ago when I was ... more naive, more optimistic. I didn't know that change isn't always good back then. I was invincible. I could fix the world. I can still fix the world though. :)

Anyway, none of this matters. I'm just occupying brain waves while I am in transition, so I come here to entertain myself. Perhaps that is the crux of it. Hacker News is about entertainment -- entertainment of a "different" sort and that's why pop entertainment is flagged. Michael Jackson is part of that.

I have noticed over time, that to have constructive conversation, you must first agree, then explore. That happened a lot here. "Yes, that's possible, let's see.. let's think about that a little bit." But less thinking is happening and more "regurgitation" is the norm. It's normal I suppose. The only solution, if you find that what you are looking for is starting to "go away" is to start another community or find a new one.

Ask yourself, "From what did this community start?" That nerve is the focus from which dendrites sprout and axons connect and so I'll get off my soap box after I say, I still love hacker news. I think it's still the best aggregator out there. It's a pretty smart community. It humbles me all the time and that's what we need in life is a little humility. I wander around in the "real" world and I feel too smart for my own good. I come here and I feel dumb and it's awesome. It's good to know that there are people like this community out there.

EDIT: Wow... this topic was on the front page, then dead, then on #2. It is an example of itself.

<comment><USER3> _Some of the agendas around here: Open Source, No SQL, Anti-Microsoft, Anti- higher education, Programming language elitism, environmentalism, healthcare reform, pirating copyrighted material, and getting rich quick to name a few._

Yes, and as you note below that, not all participants here sign off on all of those agendas. I might characterize my view of higher education as "skepticism about credentialism," for example.

<comment><USER4> One of the reasons some of these stories get killed is that it makes it easier to get along peacefully without forcing this or that political/economic "agenda" on anyone.

</comment></comment></comment><comment><USER5> If a story has enough flags, that alone will kill it, without moderator intervention. I just added a point threshold to prevent this happening to stories that have received a significant number of votes.

<comment><USER6> What I'd actually most like changed is that dead links become unclickable. The fact that a link doesn't belong here doesn't mean I don't want to see what it was.

<comment><USER5> Try e.g. <http://news.ycombinator.com/edit?id=686224>

<comment><USER7> Or <http://userscripts.org/scripts/show/47550>

</comment></comment></comment></comment><comment><USER8> I found the story very interesting, but I agree with the removal of this story. It wasn't Hacker News, it was an interesting story about Michael Jackson. I would have been very happy to read that story on Reddit.

<comment><AUTHOR> Could you elaborate on what is HN if not things that hackers find interesting (particularly " _very_ interesting")? Not to be pedantic, but:

"On-Topic: Anything that good hackers would find interesting. That includes more than hacking and startups. If you had to reduce it to a sentence, the answer might be: anything that gratifies one's intellectual curiosity."

Also keep in mind that some of us no longer follow Reddit, so we might prefer if HN took a slightly broader view than Erlang innards.

<comment><USER9> _Could you elaborate on what is HN if not things that hackers find interesting (particularly "very interesting")?_

In my opinion something is on-topic if most hackers would find it interesting, _and most non-hackers would not_. Otherwise you might as well just drop the "Hacker", and call it "News".

<comment><USER10> Very true, but then much of the marketing and entrepreneurial fluff that gets posted here is neither news, hacking, or especially useful from a business standpoint. A few people treat HN as their personal viral marketing vector.

</comment></comment></comment></comment><comment><USER11> When 10% of HN really likes a submission, it goes to the frontpage. Then if 10% of HN really dislikes it, the submission gets killed.

That some stories then get un-deaded is testimony to the faultiness of the system.

</comment><comment><USER12> A bigger problem is the ongoing, secret, and unaccountable knocking-off of contributors who've done nothing wrong, often on a loose suspicion of them being other people. This is doing an incredible amount of damage to this site.

I mean, really, what percent of HNers would've wanted time_management banned? Less than 5%? 2%?

</comment><comment><USER13> "I concur with the value of keeping meta-discussion on HN to a minimum, but" decided to post a thread of pure meta-discussion. Are you _sure_ you concur with that value?

<comment><USER11> He felt he had to resort to it.

You can be generally opposed to something, but accept it as the least bad option in a specific situation.

<comment><USER13> What proportion of meta discussion here, do you think, comes from people who felt that, just this time, they had to resort to it?

Also, what proportion of student cheating do you think is by students who are generally opposed to cheating, but feel they really had to do it just this one time?

<comment><USER14> In some cases, either could be necessary in order to improve a situation.

</comment></comment></comment></comment><comment><USER15> There's also politically correct censorship going on, amazingly. This morning I submitted this: [http://isteve.blogspot.com/2009/07/medias-bias-toward- englis...](http://isteve.blogspot.com/2009/07/medias-bias-toward-english- speaking.html) . It was dead on arrival, marked [dead] immediately, presumably because that blogger is "divisive" and "racially insensitive". Please read that and judge for yourself if it is interesting.

<comment><USER16> i'd say it's a lot more likely it was killed because of the political slant. very few political articles are allowed to live around here, because they lead to divisive and unproductive arguments.

<comment><USER3> From the guidelines:

"Off-Topic: Most stories about politics, or crime, or sports, unless they're evidence of some interesting new phenomenon."

<http://ycombinator.com/newsguidelines.html>

Stories about politics have a very high threshold to clear to be on HN, because there are many other places to discuss politics online, and few others to discuss the core HN topics.

<comment><USER15> Yes. But the article is question doesn't seem to be about politics: [http://isteve.blogspot.com/2009/07/medias-bias-toward- englis...](http://isteve.blogspot.com/2009/07/medias-bias-toward-english- speaking.html)

<comment><USER3> I suppose reasonable minds can differ, but it doesn't delight my mind. I should be deeply interested in such an article, as an American who reads a foreign language (Chinese) and has lived abroad, but maybe precisely because I have that background I've seen better.

<comment><USER15> Of course you don't have to vote it up. But why was it killed?

<comment><USER3> I gave that answer up-thread. I think people interpreted it as a political post. (Personally, I had nothing to do with flagging that thread. I didn't even notice it until it was dead and the metadiscussion began.)</comment></comment></comment></comment></comment></comment></comment>


Before you raise money - <AUTHOR> http://venturehacks.com/articles/before-raise <comment><USER2> I think the best part is "I don't think I could have remained an angel investor for several years without trying to disrupt the industry too" (or words to that effect).

It is interesting watching innate hackers enter 'traditional' fields. I have been working on semi professional scuba stuff for a month or so, just as a hobby, and keep seeing opportunities to improve things.

</comment><comment><USER3> Note to developers. __Never __have media play automatically.</comment>


Show HN: Spotify + Youtube = Tubufy - <AUTHOR> http://www.tubufy.com/

<comment><AUTHOR> Tubufy is a hobby project of mine with the goal of easily converting Spotify playlists to Youtube powered music video channels. The motiviation is really that there are so many good music videos being made (and has been made) that are somehow forgotten in this day and age. This will hopefully bring a little bit more of visibility to this art form!

Technically Tubufy is a medley of jquery/node.js/php/libspotify mostly playing in harmony.

A clickable example: <http://tubufy.com/spotify:album:5SDdZXG7vS9zFcTNkC0P9g></comment>


A Map of Human History, Hidden in DNA - <AUTHOR> https://www.quantamagazine.org/20170420-map-human-history-hidden-in-dna-john-novembre-interview/ <comment><AUTHOR> Principal Component Analysis Explained Visually: [http://setosa.io/ev/principal-component- analysis/](http://setosa.io/ev/principal-component-analysis/)</comment>


Ask HN: Anyone Interested in Capture the Flag (CTF) Events? - <AUTHOR> there have been some great CTF[0][1] links here in the past[2] but many of them are from 5 or even 7 years ago[1].
Anyone still actively playing CTF in 2019 and if so what is your experience? Anyone here hosting CTF themselves?
Anyone providing advanced puzzles (hardened systems that have no built in flaws?) Anyone building CTF puzzles for IoT? E.g. focus on gateway level protocols such as MQTT, COAP etc?
I played a few times until 2009 but then had other things on my plate. What are the latest & greatest communities today?
thanks ^_^
[0] https://trailofbits.github.io/ctf/intro/
[1] https://media.ccc.de/v/35c3-9989-what_the_flag_is_ctf
[2] https://hn.algolia.com/?query=capture%20the%20flag&sort=byPopularity&prefix&page=0&dateRange=all&type=all <comment><USER2> I'm a semi-active member of the Dragon Sector CTF team [1]. We're a competitive security CTF team that's #1 on the ctftime.org ranking for 2018.

CTFs are as active as ever, but a lot of the high-stake ones (at least per ctftime.org) are very much focused on hard core exploitation challenges, and more and more actually include 0days and real-life challenges like browser expolitation (for instance, the 35C3 CTF had a VirtualBox 0day (GL acceleration bug), a logrotate 0day (race condition) and a patched Webkit and Chromium to exploit.

Honestly, the rising exploitation difficulty is what's slowly driving me away from traditional binary challenges - and so, I'm mostly focusing on either obscure architectures, hardware or other weird challenges.

There's more and more 'IoT' challenges as well - like exploiting vulnerable ESP8266 or ARM microcontroller code. I've created a somewhat 'IoT' challenge [2] for WCTF 2018, where you have to exploit a hardware flaw in a remote RISC-V device.

A lot of CTF people are on IRC - try #pwning on Freenode (PPP's channel), or #dragonsector :). If you have a local hackerspace, they might have a CTF team you can join.

[1] - [https://dragonsector.pl/](https://dragonsector.pl/)

[2] - [https://hardflag.q3k.org/](https://hardflag.q3k.org/)

</comment><comment><USER3> I ran the DEF CON CTF from DEF CON 20 to DEF CON 25. Prior to that, I won a few.

I know order of the overflow is running a good game now. It's different than what we did, but it's a good direction, and I am hopeful it will continue to grow.

They (like we did) have a few selected prequalification events tbgat are generally pretty high quality. See [https://www.oooverflow.io/dc- ctf-2019-quals/](https://www.oooverflow.io/dc-ctf-2019-quals/)

PlaidCTF was an old favorite of ours as well. PPP has won several competitions, and seems to understand what makes a good challenge, what makes a challenge hard, and more importantly, what DOESNT make a good/interesting challenge.

Boston Key Party also runs a pretty good game. But a lot of them became Order, so who knows what will happen with them...

DARPA ran a CTF for autonomous systems called the Cyber Grand Challenge. It was neat, but I don't know of any plans to do anything like it again. I believe they're waiting to see what the community does to push the state of the art further. Source code for challenges and infrastructure are at [https://github.com/cybergrandchallenge](https://github.com/cybergrandchallenge). There's also a bunch of video at the darpatv YouTube channel.

We open sourced most of our challenges/frameworks after the fact. [https://github.com/legitbs](https://github.com/legitbs). This includes the compiler/emulator/manual for our 9-bit bytes custom architecture, clemency. That was probably our most ambitious year...

That's all off the top of my head. If you care for more from a CTF has been, I'm happy to come back and answer more questions.

<comment><USER4> >seems to understand what makes a good challenge, what makes a challenge hard, and more importantly, what DOESNT make a good/interesting challenge

Any tips in this area?

<comment><USER5> Like many things, this can be a matter of preference, but here's the rules of thumb I try to follow when writing challenges, and the things I appreciate when playing challenges.

* Avoid intentional red herrings, full stop. Your players have a limited amount of time in their lives, and a limited amount of time in your game. If you've got a plausible-looking path of investigation which actually serves to intentionally waste their time, it's super frustrating.

* Keep your challenge as focused as is reasonable. This avoids wasting your participants' time, as above. This also gets across the flavor or educational content of your challenge more effectively. Also, this does a lot to help prevent unintentional shortcuts around the intended solution.

* Make it unambiguous and obvious when a challenge has been solved. While not appropriate for all types of CTF, in CTFs I've run, we try to use ascii-based keys that have content related to the theme/solution. For example, a session-hijacking challenge might reward you with the flag "c00kies_r_d3licous". That said, some CTFs use randomly generated hexadecimal strings of a specific length, for rotating flags. Whatever you do, it's important to remain _consistent_ across all your CTF's challenges.

* Avoid "guess what the author was thinking" in your challenges. For example, if you use a freely available but obscure steganography program to hide a message in an image, using a 1-word dictionary password, you might think it's a relatively simple challenge, but your participants won't even know where to start. _If_ they guess that what you were thinking was "stenography with a simple password", they'll likely have no more direct course to solving it than "download a bunch of stego programs, and brute-force <program,password> combinations". And, they have no real _reason_ to believe that's the correct course, as opposed to all kinds of other avenues of investigation.

* As specific examples of the above, I'd recommend basically never doing a cryptography challenge, without giving the participants an implementation of the cryptosystem, whether in source code or binary format. Similarly, most exploitation challenges should give out either source, binary, or both.

* Similarly, if you do a multi-stage challenge, it's helpful to make it clear when one stage is solved. In some cases, I've given a separate flag to each stage of the multi-stage challenge, so lesser-skilled teams can still score partial credit.

* Have a clear idea of which skill or piece of knowledge the challenge is testing for or educating about. In my opinion, some of the most fun and memorable challenges are ones in which I independently rediscover a well-known class of vulnerability, or CS concept.

* Playtest! Get at least one team member to try out your challenge, give you commentary on what they're thinking and investigating, and see if they solve it, how long it takes, and what they run into. Try not to give hints, except where it's reasonable to unstick and expedite the playtest process.

* Play in CTFs! Pay attention to what creates joy or frustration in you while you play.

For context, the CTFs I've run have been more focused on creating an enjoyable experience for a wide range of skill levels, from newbie to pro, rather than high-level, cutting edge competition. Both are entirely valid realms, and there's likely other interesting focuses for CTFs as well - just understand what you want the emphasis of your CTF to be. Depending on your focus, you might want to do the _opposite_ of some of this advice. But, I'd recommend being aware of these points, and intentionally choosing which direction you want to go.

Hope that helps.

<comment><USER3> I don't think I can add much more than what was included in this very well thought out answer. I will double down on "Make it unambiguous and obvious when a challenge has been solved." ALL of our flags started with "The Flag Is: ", and that string was NEVER allowed to show up outside of the answer. It made some classes of file carving challenges not possible to do well (because they could be solved with grep...), but I'd argue that those aren't great challenges to begin with. When we did come up with challenges like that, it forced us to be more thoughtful about what made the challenge difficult through being clever, instead of just by brute force red herrings.

Hack.lu in 2018 had a pretty bad challenge that left a bad taste in a lot of players mouths. [https://twitter.com/fluxfingers/status/1053279841578086406](https://twitter.com/fluxfingers/status/1053279841578086406) describes some of the thinking in making that challenge. I disagree with things like that, though.

Also, meta, but on challenge design: if you're gating your challenges, keep in mind that your final challenges may need to be opened sooner than the last hours of your competition. There's an expectation that challenges get harder as the game goes on, but also, the teams are getting tired, and the time left in the game is going down. We viewed challenges that remained completely unsolved at game close as minor failures. I think one year we didn't let the final challenges open as there was too little time left at the end of the game, so we rolled them over to the following year.

</comment></comment></comment></comment><comment><USER6> I played HackVent ([https://www.hacking-lab.com](https://www.hacking-lab.com)) in December 2018 and it was a lot of fun. The same site also does HackyEaster which is coming up in a couple of months.

To find CTFs, [https://ctftime.org/](https://ctftime.org/) is good and has already been mentioned. I've learned about a few on [https://www.reddit.com/r/securityCTF/](https://www.reddit.com/r/securityCTF/)

If you are looking to learn - I highly recommend LiveOverflow's youtube series - [https://www.youtube.com/watch?v=iyAyN3GFM7A&list=PLhixgUqwRT...](https://www.youtube.com/watch?v=iyAyN3GFM7A&list=PLhixgUqwRTjxglIswKp9mpkfPNfHkzyeN)

And a few good places to practice: [http://overthewire.org/wargames/](http://overthewire.org/wargames/) and [https://365.csaw.io/](https://365.csaw.io/)

</comment><comment><USER7> CCC, which you linked to, still actively does CTFs every year, although only when Congress is in session. I found it incredibly difficult but maybe I just suck :) I think most events (ShmooCon, Blackhat, Defcon, BSides, etc) run CTFs during the conference which are accessible to all. I've found [https://ctftime.org/](https://ctftime.org/) to be a good resource for finding competitions, not so much teams though.

</comment><comment><USER8> If anyone is interested in a seeing a high-level real world CTF in action, I would recommend this video: [https://www.youtube.com/watch?v=ozqOlUVKL1s](https://www.youtube.com/watch?v=ozqOlUVKL1s). As someone who has experience with programming but not as much experience in reverse engineering / security, the entire channel has been quite amazing.

</comment><comment><USER9> Man I was all set to be like "Yeah I love CTF!!" and then I realized it had another meaning besides referring to my favorite childhood game.

<comment><USER10> Memories of Quake and Unreal tournament for me!

</comment></comment><comment><USER11> I recently made an unusual audio processing challenge where the goal is to recover the English text that a user is typing, just by analysing the recorded sound of their keyboard [0]. Not sure how hard it is. I am able to solve it with my own audio processing tools. If interested - give it a try.

[0] [https://ggerganov.github.io/keytap- challenge/](https://ggerganov.github.io/keytap-challenge/)

<comment><USER12> I am very much interested in this. Would you be willing to work with me offline on this? It's an area of research for me that I find fascinating, yet I have difficulty finding information for legitimate reproduction of the techniques that I hear about.

</comment></comment><comment><USER13> The B-Sides PDX 2018 CTF is available to download and run yourself here: [https://github.com/BSidesPDX/CTF-2018/blob/master/README.md](https://github.com/BSidesPDX/CTF-2018/blob/master/README.md)

</comment><comment><USER14> [https://picoctf.com/](https://picoctf.com/) has a good variety of challenges that are a bit more accessible than others.

</comment><comment><USER15> This year's SANS holiday hack was pretty fun, and quite varied: [https://www.holidayhackchallenge.com/2018/](https://www.holidayhackchallenge.com/2018/)

Also, [http://overthewire.org/](http://overthewire.org/) is fun, and [https://www.wechall.net/](https://www.wechall.net/) has a list of several CTFs.

</comment><comment><USER16> [https://www.hackthebox.eu](https://www.hackthebox.eu)

This is what all my friends are currently hacking on.

</comment><comment><USER17> Christmas CTF [https://twitter.com/sudosev/status/1075213434273320960](https://twitter.com/sudosev/status/1075213434273320960) [https://pastebin.com/raw/7VL6usg6](https://pastebin.com/raw/7VL6usg6) [https://pastebin.com/raw/Sm9PCxWv](https://pastebin.com/raw/Sm9PCxWv) [https://twitter.com/sudosev/status/1079069504498556930](https://twitter.com/sudosev/status/1079069504498556930)

HACKvent 2018 [https://hackvent.hacking-lab.com](https://hackvent.hacking- lab.com)

SANS Holiday Hack Challenge 2018 [https://www.holidayhackchallenge.com/2018](https://www.holidayhackchallenge.com/2018)

GreHack 2018 [https://2018.challenge.grehack.fr](https://2018.challenge.grehack.fr) writeup [https://www.synacktiv.com/posts/challenges/grehack-2018-qual...](https://www.synacktiv.com/posts/challenges/grehack-2018-qualification- challenge.html)

CSAW Red Team Competition 2018 [https://red.csaw.io/challenges](https://red.csaw.io/challenges)

Hacktober.org [https://hacktober.org](https://hacktober.org)

Advent Calendar of Advanced Cyber Fun 2018 [https://xmas.rip](https://xmas.rip) repository [https://github.com/takeshixx/advent- calendar-2018](https://github.com/takeshixx/advent-calendar-2018) writeup [https://gist.githubusercontent.com/BenGardiner/03e2a7edeb764...](https://gist.githubusercontent.com/BenGardiner/03e2a7edeb7643ff1004e89f12f68792/raw/e7a1b696b1de79245c8df7d4a1c4738110e938a2/Advent%2520Calendar%2520of%2520Advanced%2520Cyber%2520Fun%25202018%2520Writeup.md) writeup [https://emanuelduss.ch/2018/12/advent-calendar-of- advanced-c...](https://emanuelduss.ch/2018/12/advent-calendar-of-advanced- cyber-fun-2018-write-up)

OverTheWire Advent Bonanza 2018 [https://advent2018.overthewire.org](https://advent2018.overthewire.org) writeup [https://ctftime.org/event/721/tasks](https://ctftime.org/event/721/tasks)

35C3 [https://archive.aachen.ccc.de/35c3ctf.ccc.ac/challenges/inde...](https://archive.aachen.ccc.de/35c3ctf.ccc.ac/challenges/index.html) writeup [https://ctftime.org/event/718/tasks](https://ctftime.org/event/718/tasks)

HITB-XCTF Dubai CTF 2018 [https://ctftime.org/event/720](https://ctftime.org/event/720)

</comment><comment><USER18> Yes. Interested.

</comment><comment><USER19> meetup in denver [https://www.meetup.com/funadults/](https://www.meetup.com/funadults/)

that has monthly CTF events.

Its a lot of fun and good physical activity.</comment>


Good Clean Python Install on Mavericks OSX - <AUTHOR> http://www.mahdiyusuf.com/post/64878566740/good-clean-python-install-on-mavericks-osx-10-9

<comment><USER2> > Apple has made significant changes to its bundled Python, potentially > resulting in hidden bugs.

Where can I find out more about these changes? I did a quick google for "mavericks python changes" and there's nothing significant other than people asking about the version -- and this article.

Does the author simply mean that Mavericks comes with a different default version?</comment>


Ask HN : Would people donate to an Operating System research charity? - <AUTHOR>

I'm mulling over starting a charity dedicated to helping fund and guide blue sky research into Operating Systems with a reduced total cost of operation compared to Linux and Windows. Time being the cost in Linux's case.
The three factors it would seek to improve
- Increased Usability - Increasing Security - Reduced maintenance time/costs
Some research requires starting from scratch see Coyotos (http://www.coyotos.org/) for example. This is pretty difficult. (http://www.uni-koblenz.de/~vladimir/breviary/os-research.html)
Microsoft does do research into OSes but their goal is to increase profits so there are certain types of research they will not pursue. Reducing the need for the upgrade cycle, for example.
The operation of the charity would be mainly funding postgrad research places and PhDs studentships. If it generated a promising cocktail of technologies that would be worth the cost of switching from established technologies, then it would fund a group to produce an open source OS.
Jonathan Shapiro's decision to join MSFT (http://www.osnews.com/story/21262/Jonathan_Shapiro_of_Coyotos_BitC_Joins_Microsoft) made me think that something like this is necessary.
So what say you hacker news? Is there space for something like this? <comment><USER2> How will you decide which projects to fund? The ones with more code to show, having founders with a more prestigious CV, etc. tend to be the ones building on old, broken (i.e. Unix) foundations of the past.

There's no shortage of crackpots who are convinced that they can turn computing upside down if someone were to pay their living expenses for a year or so (disclaimer: this might include myself: <http://www.loper-os.org/?p=8> I started entirely from scratch, and with a conscious rejection of burdensome OS traditions, but have practically no free time to work.)

<comment><AUTHOR> I'm thinking of a variety of ideas, mainly to do with farming out the decision making process to qualified people who donate. E.g. sending out information to a few people and letting them chose whether to fund it or not.

No point getting too far in advance though, unless I can find potential donors.

I am one of those crackpots as well, I just figured it would be better to try and build an institution for funding OS research than tinker on my own and it whither from lack of people to take it forward.</comment></comment>


Chrome 34: Responsive Images and Unprefixed Web Audio - <AUTHOR> http://blog.chromium.org/2014/02/chrome-34-responsive-images-and_9316.html <comment><USER2> Interesting choice to ignore autocomplete=off. I am not sure how I feel about that.

[https://groups.google.com/a/chromium.org/forum/#!msg/chromiu...](https://groups.google.com/a/chromium.org/forum/#!msg/chromium- dev/zhhj7hCip5c/PxbtDtGbkV0J)

<comment><USER3> I've yet to find a time when autocomplete has been disabled that I've not wanted to slap the web designer. Most every one has been on some sort of common address form. My browser knows my address. I don't want to type it. You'll get better results from my browser than from me typing, always.

<comment><USER4> Credit card number fields?

<comment><USER5> My browser can type my credit card information faster than I can.

Honestly, `autocomplete=off` is an unwelcome attempt to try to save me from myself.

<comment><USER6> I always thought of `autocomplete=off` to guard shared computers. I've turned it off for CC fields but the intention is that if you're on a shared computer the security outweighs the browser remembering something such as a credit card number.

I don't believe people type values into a form realizing at the moment that the browser is saving it for future uses.

</comment></comment></comment></comment></comment><comment><USER7> Does this only work for device resolution needs - ie, load an @2x version in the same image width/height for 2x hi dpi displays? Versus progressively download larger images the more the user widens the display. I actually care a bit less about loading huge images for 4k or other 'retina' displays than I do just showing a 1000px image instead of a 500px (note, not a 1000px image in a 500px container for high dpi needs) image when the user expands the window, etc.

currently very hackily checking browser width (and keeping in mind of image is used in a grid or just a full-width image on its own) to rewrite all data-src when the page loads and before lazy loading has kicked in (to prevent double image downloading) on my photoblog:

[http://paulstamatiou.com/photos/carmel- monterey/](http://paulstamatiou.com/photos/carmel-monterey/)

<comment><USER8> I believe the element that you're looking for is <picture>, which will be shipping with a future version of Chrome.

[http://picture.responsiveimages.org/#examples](http://picture.responsiveimages.org/#examples)

<comment><USER7> Ah right, thanks. I had been thinking that picture and srcset were competing.

<comment><USER9> They're complementary. <picture> uses subset of original srcset spec to meet the "resolution switching" use case - e.g. see Example 1 [1]. If you want to select an asset based on viewport width, then you'd either use "sizes" attribute on picture, or a combination of srcset + sources + sizes.

[1] [http://picture.responsiveimages.org/#examples](http://picture.responsiveimages.org/#examples)

</comment></comment></comment></comment><comment><USER10> This is great news, but what I'd really love to see is the Chrome team focus on their memory footprint. Chrome < 20 used to run great on my 2GB ultrabook, now Firefox is my only option. Chromium on my Raspberry Pi can barely handle 1 open tab, while Firefox can handle several before the system starts to thrash.

If Google was smart, they create a group like Firefox's memshrink to get this situation under control.

</comment><comment><USER11> Does anybody know if this responsive image thing also works in Firefox and are there any polyfills for IE? Would look strange if images only look crisp and detailed in Chrome.

<comment><USER12> Mozilla intends to implement srcset/picture, but it hasn't landed yet. Relevant bugs:

[https://bugzilla.mozilla.org/show_bug.cgi?id=870021](https://bugzilla.mozilla.org/show_bug.cgi?id=870021) [https://bugzilla.mozilla.org/show_bug.cgi?id=870022](https://bugzilla.mozilla.org/show_bug.cgi?id=870022)

</comment></comment><comment><USER13> I hope the development tools get some love, since they're completely borked in the last couple of releases.

<comment><USER14> Yes - what the heck happened there?

</comment></comment><comment><USER15> Still waiting for proper WebGL support without having to force it.

</comment><comment><USER16> Since I upgraded to Chrome 33, some Flash videos don't work anymore. The screen is just black there, and there's no sound either. Are they aware of this bug? It could be Adobe's fault, but Flash is updated in Chrome only through Chrome, so then it's their fault, too.

For example, the live video here isn't working right now in Chrome, and when I right click, it says "movie not loaded". It works in Firefox.

[http://www.theverge.com/2014/2/27/5453572/the- vergecast-113](http://www.theverge.com/2014/2/27/5453572/the-vergecast-113)

<comment><USER17> Recently I can't get any browser to reliably render flash content without the browser crashing or blacking out. It's a coin flip whether a video is going to show or not. The irony is that IE 11 has been the most consistent of all things.</comment></comment>


Slack's 404 page - <AUTHOR> https://slack.com/404 <comment><USER2> For those not in the know, once upon a time a guy named Stewart Butterfield and some friends tried to make a game, called Game Neverending. Somehow they ended up making Flickr instead! Later, he tried again, this time to make a game called Glitch. Again, he failed, and somehow ended up with Slack. That's why Slack's 404 page is like this ("you found a Glitch!"). To further confuse things they sold the name Glitch off to Fog Creek Software who is now using it as the new name for Gomix, which is the new name for HyperDev.

One of these days that guy will actually succeed in making a game. Until then here's hoping his failures continue to be so successful.

<comment><USER3> I think they were just nice enough to let Fog Creek use the name.

</comment></comment><comment><USER4> In case you don't know, the team that made Slack first made a computer game called Glitch ([https://en.wikipedia.org/wiki/Glitch_(video_game)](https://en.wikipedia.org/wiki/Glitch_\(video_game\))). Slack was borne out of the chat system from Glitch. I believe this 404 page is meant to be reminiscent of that game.

<comment><USER5> Interesting... Discord had practically the exact same beginning!

<comment><USER6> I believe Mattermost also had similar beginnings...

</comment></comment></comment><comment><USER7> Am I the only one who's like -- you've raised $80M (another $250M on the way?), this 404 page exists, and yet your app still uses over a Gig of RAM for my rather pedestrian work uses? What gives?

<comment><USER8> But don't most computers have many gigs of RAM? If it's not really hurting performance, who cares?

<comment><USER9> This is precisely why most software is terrible. :)

<comment><USER10> I had a Java II professor who often said in class something along the lines of "between speed and memory, use more memory. Memory is cheap." So it's, somewhat, passed attitude through academia to students.

</comment></comment></comment></comment><comment><USER11> Now that this is on HN I bet their error log monitoring is going to go berserk. There's probably an Ops guy trying to figure out where all the 404s are coming from :)

</comment><comment><USER12> I can't help but be reminded of this post: [https://news.ycombinator.com/item?id=14460013](https://news.ycombinator.com/item?id=14460013) (tl;dr, the flying butterflies are dead butterflies)

</comment><comment><USER13> A bit off but what does HN recommend for a html5 game engine in 2017?

</comment><comment><USER14> If only their app was as snappy and responsive as their 404 page.

</comment><comment><USER15> This is amazing. Slack was developed by accident - it was an internal tool for the company. Maybe this 404 should now become their mainline.

<comment><USER16> Also the story of Yammer.

</comment></comment><comment><USER17> Glitch was my favorite MMORPG ever - I'm really sad they ran out of money to fund it (though I guess I'm glad they made Slack).

</comment><comment><USER18> Go to the bottom of the "Settings" activity in Android and keep clicking on the version. :)

</comment><comment><USER19> This looks like a Green Hill Zone level from Sonic games, but with more flowers and less rings.

</comment><comment><USER20> Oh. Pigs and chickens. Very clever.

<comment><USER21> It is?

<comment><USER22> [https://www.implementingscrum.com/images/060911-scrumtoon.jp...](https://www.implementingscrum.com/images/060911-scrumtoon.jpg)

</comment></comment></comment><comment><USER23> I actually followed the chicken and pig from one side all the way to the other side.

</comment><comment><USER24> Does this cause my computer to use way too much CPU and RAM too?

</comment><comment><USER25> Whatever happened to "Error 404 - File Not Found" ?

<comment><USER26> In a fun, social app, what's wrong with a fun 404 page?

I always appreciate easter eggs.

<comment><USER25> Now everyone's doing it. "Cute" isn't endearing anymore -- it's a tired technology cliche.</comment></comment></comment>