Maybe we could tone down the JavaScript - <AUTHOR> https://eev.ee/blog/2016/03/06/maybe-we-could-tone-down-the-javascript/ <comment><USER2> The Twitter page is a perfect example of why we use JavaScript for this stuff: because full-page loads just to hide a div is a shitty user experience. Scroll positions jump around, you've made a client-side action into a server one, etc.

The whole of html is full of these. Let's be blunt: it's a terrible platform, just as JavaScript's DOM API is terrible. Everything about the web is bad, but we make it good thanks to the combined might of the computing industry.

JavaScript's a mediocre language being used to pave over the weaknesses of a layout engine that can't centre things vertically and can't navigate without slow server interactions unless you want to confuse the user with one long page full of #anchors.

<comment><USER3> With progressive enhancement, Twitter could provide basic functionality with full page loads and the like, and use JavaScript to replace these with a better user experience.

</comment></comment><comment><USER4> The "You name a critical .js bundle something related to ads" point is something toward which I'm particularly unsympathetic. The fact that most ad blockers (a) are whitelist-based and (b) contain blunt-edge/naive implementations leads me to believe that false positives are the problem of the ad blocker developer and ad blocker user, not the developer of the website.

If Joe or Jane developer of Acme Demolition Inc. names a Javascript file `ad_main.js`, the burden of resolving the my-ad-blocker-is-blocking-this-file problem is not on them.

This is why I've yet to find an ad blocker that I would recommend to anyone without web development knowledge.

<comment><USER5> And I'd argue the opposite, based on desire paths.

People will bend the Web to suit _their_ goals. You as a web dev with a need for ads revenue focus on that. Me as a web _user_ with a need for information and pathological hatred of anything distracting, focus on my needs. Users with visual and motor disabilities (I support a community of same) are quite actively thwarted by many revenue-positive factors.

My fix for a bunch of Web gunk is to have a default set of client-side CSS that kills, well, a bunch of crap. Flyovers, modals, interstitials, fixed header/footer elements, and a slew of other stuff. Ello's front-end guy pretty understandably said it voided my warranty for the World Wide Web. And he's not wrong.

But man does it make things suck ever so much less.

Which gets to the point: much of the stylesheet is glob-match patterns on descriptors that are frequently annoying as fuck-all. Which was why I'd showed it to him. That sheet, or others like it, are going to be in the client world, and soon, and if you're putting flyover and modal keywords in your selectors, they're going to get blocked.

Yes, it's an iterative arms race. Your turn.

(And: ultimately the solution is to fix the revenue/compensation model for published works. Online and elsewhere. That'll take a while, but it'll also fix very nearly everything wrong with the present iteration of the Web.)

</comment></comment><comment><USER6> I think the root of the problem is that browser vendors break stuff all the time. A new browser comes out and now breaks your ten year old web page ... Then the web dev team says _fuck it_ we'll only support Firefox and Chromium, and start using features that only works on those browsers.

Ten years ago, web dev was all about getting your page to work on all platforms. But today we have hundreds of possible combinations of OS x Browser x Extensions, so it's just impossible.

I try to only use browser features that are three years old and "standard". But not even that works.

Phone/Ipad browsers are the biggest offenders of breaking stuff.

</comment><comment><USER7> You have some valid points about how we use javascript for many parts of our web pages that don't need javascript. I would love for the web to be fully accessible without javascript, but we have to remember that there are a small percentage of people currently using the web without javascript. Im sure twitter has their reasons for using javascript for the simple tasks that are solvable without the assistance of javascript. I would imagine that it wouldnt be cost efficient, if nothing else, not a top priority to make their site accessible without javascript due to the small user base that doesn't use javascript.

<comment><USER5> There are two substantial online communities which don't use javascript, or don't use it reliably.

Robots and the disabled.

Bots include major search engines -- Google, Bing, DDG, etc. And yes, they may parse _some_ JS, but it's quite spotty. But there are also a bazillion custom Web scrapers (not everything's APId, scraping is MVP) which harvest information for purposes good and otherwise.

The disabled use screen-readers or text-to-speech to render content for those who cannot see your pixel-perfect design.

I'm leaning to a "plaintext first" school of Web design. First plan a plaintext page, then mobile, then full desktop. See where that gets you.

</comment></comment><comment><USER8> Given that Twitter is massively successful and used by millions everyday I don't think it is a good target for complaining about slow loading times and poor performing JavaScript. Often in business 'good enough' really is good enough. Gold plating code is something many developers (including myself) make the mistake of trying to do all the time. But the difference between 'good enough' and gold plating is often not worthwhile for the business.

</comment><comment><USER9> OH GOD YES THIS PLEASE.

</comment><comment><USER10> I'm curious about two things.

A) What search hotkey to use if not '/'

B) Why does your JS load slow? Did you fix that part?

I build web-apps and try to think "JS second". I've noticed that my customers like fast loading, consistent pages. These "magpie" like decisions harm the customer experience.

</comment><comment><USER11> The issues in the article are very similar to advices in some old book (from "yay, AJAX"-era) about JS I read in the past. Looks like not too many people took them to heart.</comment>


iPhone Delivers: Bigger Browsing Share Than Windows Mobile - <AUTHOR> http://www.techcrunch.com/2007/12/03/iphone-delivers-bigger-browsing-share-than-windows-mobile/

<comment><USER2> I would like to see data about the data used -- with almost 100 million S60 Symbian users around [1], I find it hard to believe that there would be 9 times more people browsing on an iPhone than S60 device. (0.09% vs 0.01%)

For examle, user agent strings from browsers, at least on S60, are far from trivial to parse. And it would be easy to get skewed results based on the sites that are used to gather the data.

[1] Canalys, 2007

<comment><USER3> My guess: the vast majority of the S60 devices are likely straight-up mobile phones, which may or may not have data features activated by the carriers. Ditto for windows mobile.

I think iPhone users are much more likely to have bought the device specifically for web browsing, whereas you're likely to see a lot of 'accidental' s60 or windows mobile users who just bought a phone, or just bought a phone with email capabilities.

Also, no one but Apple would actively promote the 2.5g service for web browsing (though having wifi helps). This is a marketing/user adoption issue.

<comment><USER2> I agree, however I'm still suspicious about the data.

I don't know how many iPhones have been sold, 10M? This would mean that iPhone uswers are 100 times more likely to surf the net than S60 users.

Could be, I am not sure what kind of marketing Nokia globally has for the S60 and browsing, and how aware people generally are of it.

It is easy to get a biased picture based on people around you. Me and a few of my friends surf train timetables/TV programs etc. almost daily on their S60 devices. And there aren't that many iPhones in Finland yet.

</comment></comment></comment><comment><USER4> Seeing as how AT&T forces you into a data plan with the iPhone, these statistics make sense.</comment>


Open Tax Solver - <AUTHOR> http://opentaxsolver.sourceforge.net/ <comment><USER2> How does this compare to Geoff Mendal's [http://www.taxvisor.com/taxes/](http://www.taxvisor.com/taxes/) ?</comment>


Here's a fun little challenge: Python in Python - <AUTHOR> http://neil.fraser.name/news/2012/07/08/ <comment><USER2> I think many languages focus too much on arithmetic, Python in particular; for a lot of modern programming, arithmetic isn't a big part of what we do, yet often we see special treatment for integer and float types, or languages that started with the C types and built up from there. I'm reminded of PG's suggestion that maybe the language of the future wouldn't have numbers as a first-order concept - numbers would actually just be lists (the compiler would optimize their representation, but transparently to the programmer).

</comment><comment><USER3> Pythonception!!</comment>


Foodspotting Scores $3 Million in Funding, Aims to Become "Pandora of Food" - <AUTHOR> http://mashable.com/2011/01/10/foodspotting-funding/ <comment><USER2> If they can stream tacos to my iPhone, they've got a winner.</comment>


Are Taxi Drivers Racist? - <AUTHOR> http://blog.modeanalytics.com/taxi-drivers/ <comment><USER2> I see a trend here. Not about taxi drivers, but rather about Mode Analytics posting blog articles drawing conclusions without having enough data to back them up. The last post about VC investments and ageism did the same thing:[https://news.ycombinator.com/item?id=7997236](https://news.ycombinator.com/item?id=7997236)</comment>


Freeman Dyson Has Died - <AUTHOR> https://en.wikipedia.org/wiki/Freeman_Dyson <comment><USER2> Comments moved to [https://news.ycombinator.com/item?id=22444198](https://news.ycombinator.com/item?id=22444198).

</comment><comment><USER3> Rest in Peace. And amazing example of academic and intellectual success sans- phd.</comment>


Why Does Developing on Kubernetes Suck? - <AUTHOR> https://blog.tilt.dev/2019/08/21/why-does-developing-on-kubernetes-suck.html <comment><USER3> Ok, wow. Talk about mixed feelings towards the article... the author is clearly knowledgeable, but it is so unclear why in the world does he opt for this kind of torture.

1\. Why kubernetes for development? For most cases you don't need the whole orchestration over multiple nodes overhead, docker-compose is just fine. Incidentally, your push/pull problem is solved as you pull the dependencies and BUILD your app locally.

2\. Want to have someplace to test your kube configurations? That's the ops part of devops. Set up a proper testing cluster instead of trying to cram everything in your devenv. Kube config should be in a separate project anyways.

3\. No strace/bash. Look, man, this isn't even kubes' problem. That's how you build your images. Have separate dev images that use prod image as a base. Deploy dev images to testing env. Prod images to staging/prod. Build dev images locally.

4\. Network debugging. That's difficult on any system. If you don't have access to the underlying host, you are screwed either way - call your devops for support. Anything else (internal ips, svc endpoints, ingresses) is trivial to debug on kube. However, we're talking about development... just don't use kube for development, period. Use docker-compose. Which, actually solves all your problems... right tools for the right job, or suffer the self-inflicted consequences.

<comment><USER4> 1\. Kubernetes is when your service needs google kind of load which 90% of systems don't. Just trade it for simple VM or use LXD containers. Don't jump on next hype cycle. If something works for Google does not mean will work for you.

2\. Don't spend too much on it just use traditional knowledge and, you can still use bare-metal, VM or LXD container. Focus on application not on programming a tool designed to solve problems for Google size deployment.

3\. Kubernetes is a completely different way of doing things. So if you want to leverage old cluster and distributed system knowledge you can use VM or LXD containers. Kubernetes is an overkill.

4\. Abandon kubernetes instead of complaining, just use simple systems.

<comment><USER5> > Kubernetes is when your service needs google kind of load which 90% of > systems don't.

This is the most frustrating but oft repeated nonsense about k8s.

Kubernetes is an amazingly helpful abstraction for any amount of load on any larger than trivially tiny set of services/storage/etc.

When you, like 90% of systems, don't have Google kind of load, you don't need Google number of nodes.

Machine count corresponds to load; abstraction doesn't.

<comment><USER6> Kubernetes may be a useful framework, but "amazingly helpful" is not a word I'd use for it. To me, it's a half-assed collection of five hundred nearly identical (but all slightly different) yaml files masquerading as "abstraction". And because they're yaml you can't refactor out the common part.

Well, to be fair, yaml itself doesn't exactly have a stellar reputation, but I've never seen fifty lines of yaml that could convey so little information in any other place.

<comment><USER5> Use a Helm chart (or alternative)?

When you're writing YAML you can absolutely include from elsewhere (it calls it 'aliases', which is... Well, at least it exists) in multuple places - though annoyingly not from other files.

When you're reading (partially) generated YAML, (e.g. kubectl describe or edit) it's IMO a feature that everything is in its place with no indirection. (And as far as I'm aware this is YAML, not kubectl.)

</comment></comment></comment></comment></comment><comment><USER7> > Why Does Developing on Kubernetes Suck ?

IMHO because we are in a phase of transition.

Having worked for years in software industry , I'm convinced we are halfway to a much bigger transformation for Software Engineers / SRE , Developers etc...

I work in a Neobank ( N26 , Revolut, etc...) , we are currently in the process of re-writing our entire Core Banking System with MicroServices on top of Kubernetes with Kafka.

Not a single day pass without having engineers needing to have an exchange about defining basically all of the the terms that exist within the K8/Docker/Kafa world.

\- What's a Pod ? How does a pod behave if Kafa goes down ? Do we really need ZooKeeper etc....

Their workflows is insanely complex and requires hours if not a day to deploy a single change... obviously let's not even talk about the amount of work our SRE has in the pipe to "package" the entire stack of 150+ services in K8 through a single YAML file....

I'm sure this complexity is temporary. One tech will automate all of this away and building , deploying and running will be much simpler. In it's current shape , K8 remains me of mainframe ecosystem I used to deal with at brick & mortars banks.

Powerful systems , but they requires a tremendous amount of work and experts to be properly managed and take full advantage of it. Just like mainframes , K8 leaves very little room for "mistakes" or "approximation".

<comment><USER8> > Their workflows is insanely complex and requires hours if not a day to > deploy a single change... obviously let's not even talk about the amount of > work our SRE has in the pipe to "package" the entire stack of 150+ services > in K8 through a single YAML file....

One should always keep in mind the famous aphorism:

> "All problems in computer science can be solved by another level of > indirection, except for the problem of too many levels of indirection".

You may have just hit the "except" part.

<comment><USER9> That's a fantastic quote. Don't know how I haven't come across it before. It definitely sums up our profession in a nutshell.

</comment></comment></comment><comment><USER10> I think the author is doing it wrong personally. Just spin up a real dev cluster and use that? Why putz around with setups on your laptop? That's never going to scale team-wise? And if you damn well insist on running your own local k8s cluster for development then the whole thing should be automated infrastructure as code anyways that you start with a command so that other developers will get the same behavior.

Even after local dev the changes should be getting picked up and tested by a testing cluster.

I think leaving it up to devs to come up with their own local testing k8s is asking for bugs.

<comment> rooam-dev Ability to run locally a production like setup (at smaller scale of course) is a big plus imho. 1st, you know how it works, 2nd smaller iterations/feedaback cycles (restart locally vs. push and wait for tests to run).

<comment><USER11> I agree with this. But usually you have both. A staging/test environment is nice, but if you have 5 developers and one test env then devs will quickly end up in line waiting for the test env to free up.

Remote debugging is also hard. Much easier when running locally.

<comment><USER12> The idea is that you have a dev cluster _per developer_. I've ran with something similar way back working for a certain notable Perl shop way before k8s/Docker became popular, and I have to say it has a lot going for it, especially for more complex setups and more annoying database stuff. It was an (on-demand one-click provisioned) _VM_ per service per dev, though, so the biggest annoyance (no code reload, slow fs sync) was nullified by popular preference for either Vim or Emacs — with my current preference for VS Code I'd probably be annoyed by it. Also it's a bit expensive, I guess, but you can stuff a lot of VMs into a single big server.

</comment></comment></comment></comment><comment><USER13> What an immature and rude way to criticize a young open source project. I'm disappointed that so many in our community appreciate this disrespectful writing style criticizing our k8s supporting peers.

Secondly, developing on Kubernetes "sucks" compared to what? Mesos? Docker Swarm?

Maybe this engineer is still frustrated with Tilt's failure as a business ([https://www.fastcompany.com/3069164/how-tilt-veered-off- cour...](https://www.fastcompany.com/3069164/how-tilt-veered-off-course)) and Airbnb imposing changes on his workflows like how they deploy their apps. If that's true then I hope he finds more healthy and mature habits to manage his anger.

<comment><USER14> > Secondly, developing on Kubernetes "sucks" compared to what? Mesos? Docker > Swarm?

My thoughts exactly. I feel like most people who complain about these things are just feeling grumpy about the overall experience, and aren't always quite sure where to place the blame.

It takes a lot of introspection to know exactly where a system should be better than it is... "this yaml is too complex", until you start thinking about how you'd do it better, and then you realize all the problems each of the similar approaches have, and that a lot of it was done for a reason, etc.

Or you start comparing k8s to completely different approaches like just rsyncing some files to a remote webserver and SIGHUP'ing it, which is much simpler but has its own host of reliability/testability/reproducability concerns.

I think in reality, people are overwhelmed by what it really takes to adopt best practices (declarative deployment, CI/CD, health checks, service discovery, etc). Practices that have been hard fought and discovered over many years of people trying things and failing. K8S IMO represents the state of the art in a lot of them, but too often people place blame on k8s when what they're really doing is questioning the best practices themselves. Practices that are also shared across k8s's competitors like mesos and docker swarm.

</comment></comment><comment><USER15> I share the vision of this article. We are working on the same problem at Okteto Inc.

As an ex-docker employee, I love to work with docker-compose and I agree it is usually a good enough abstraction for development.

But it is not only about the tool, I think the future of development is on the cloud and Kubernetes is a perfect fit for ephemeral dev environments:

\- You have unlimited hardware and network resources but efficiently shared by all your team.

\- You can share endpoints for fast validation and easier integration with external systems and webhooks.

\- You reduce k8s integration issues.

\- You have access to infra services like service mesh, logs aggregators and metrics from development.

We just need to improve our dev tools to reach a great dev experience on remote Kubernetes clusters. I have been working like this for 2 years now and I can say my dev experience is much better than before. I have replicable dev environments, I can spin a new dev environment on a new namespace for each git branch, switch dev environments with a single command, and deploy my changes instantly.

And 5G is just around the corner and it will make the experience even better.

</comment><comment><USER16> The only time I develop on Kubernetes is when I develop something which builds on top of the Kubernetes API. In that case I use skaffold. For all the rest Docker Compose is a better fit.

You don't develop your full CI pipeline on your machine either. So why care about the orchestration?

<comment><USER17> I'd love to talk if you use skaffold; I (disclaimer: building it) work on Tilt, and suspect it's a better fit. Especially because it can work on either k8s, like skaffold, or docker-compose, with a useful UI on top.

</comment></comment><comment><USER18> The one thing I have found tedious with k8s clusters is when you need to work on the host system in relation to a specific pod. E.g. to diagnose kernel issues or for profiling/debugging tools that need unrestricted root.

This can require jumping through several hoops. Find the node, get through some bastion host, inject SSH keys into target node, build an SSH chain to get into the host, then escalate from admin to root account.

It would be nice if kubectl offered an escape hatch for these kinds of things, assuming one has sufficient permissions.

<comment><USER19> Run a privileged container with the host's procfs mounted into it via hostPath volume. Then you can use nsenter to break out of the container into the host system.

<comment><USER18> I already used a host mount to inject SSH keys. I guess I can just skip the rest and automate the steps to pivot fully into the host.

</comment></comment></comment><comment><USER20> Local development on Kubernetes is in a pretty decent state imo. Minikube + Skaffold. Helm to manage/configure charts. And override resources to lower mem/cpu consumption when running locally. Works just fine for most situations. It's reproducible/consistent across developer environments and is as close as you can get to mapping 1-to-1 with prod.

<comment><USER21> So you install Minikube on each developer's machines? I thought that Minikube was created solely for running tutorials/excercises for people learning Kubernetes.

If you are developing microservices I think you're much better off with a development Kubernetes cluster, and a single namespace for each developer within it. This way the Kubernetes configuration can be identical to PROD, and you do not need tons of CPU cores and RAM on each of developer's laptops.

</comment></comment><comment><USER22> I've found [https://www.telepresence.io/](https://www.telepresence.io/) to be helpful. It allows to integrate a local running process into a K8s cluster seamlessly allowing for fast iteration and easy debugging.

</comment><comment><USER23> It's trying to do too much, just like Google Wave, Angular, Google Web Toolkit, etc. Avoid anything that tries to do everything. Instead, build on an ecosystem of independent services that integrate well together.

</comment><comment><USER24> If iterations take longer than 10s, then I'm really not interested.

Typical Docker based CIs are ten minutes to build. Nevermind the deployment. A ridiculous waste of time and energy.

<comment><USER18> If you have a fleet of services and currently work on services A and B you can just start up A - G in docker-compose based on CI-built images but mount your local build output into the A and B containers. Override their commands to watch filesystem changes so they reload themselves when you build.

This can be easily managed with an personal override file on top of a committed compose file used by your team.

<comment><USER24> I agree the local dev environment UX is pretty much there. I use volume mounts myself.

But when you're deploying on a remote host. OMG.

Just sharing a Docker image internally is anguish.

Developing as a remote team using Docker / Kubernetes workflow is just crazy. You're way WAY better off using serverless, where some implementations take ~2s to deploy my Go binary.

<comment><USER18> This can be hacked together in a similar way. Add a wrapper that watches for filesystem changes to the container command, then add a _kubectl cp_ as last build step locally. Or push an image, set the deployment to pull on start and kill the pod.

For sharing docker images, assuming you have write access to some dev repository, you can push to a tag tied to your development branch and others can configure their docker setups to pull that on restart.

Dev images can be built faster by just copying build output into an image as last step, that way other steps to prepare the image are cached. No need to use whatever slow things CI is doing in its Dockerfile.

It only takes a few lines of shell or makefile to automate most of these things. Of course local dev is still nicer.

</comment></comment></comment></comment><comment><USER25> For small setups, it is better to stay away from Kubernetes until it reaches a good level of stability. We jumped early on in the K8S bandwagon (before AWS EKS) and paid a steep price for that. We continue to pay. Our AWS cost has doubled since the time we transitioned to K8S from AWS Elastic Beanstalk.

I really wish I could say what would be a good time to embrace K8S, but your mileage might vary. When we made the switch, our service was at about 80TPS during regular load and would go up to 300TPS during peak load.

</comment><comment><USER26> The project that I work on depends directly on the Kubernetes API, admission webhooks and API extensions. I do my daily development on a GKE cluster, because local k8s environments are slow and inconsistent. What I really like about tilt is that it enables the continuous development experience, where code changes are continuously built and deployed to my remote cluster as I made them in my editor. It helps to shorten my feedback loop by replacing the series of `docker build`, `docker push`, `kubectl apply` etc. commands with just a single `tilt up` command.

I can sympathize with what the author said. A while ago, I worked as the only devops engineer on a team of 10 full stack developers. The tl;dr is that management decided to migrate their existing workloads to k8s for reasons. The developers were not too keen about all the new concepts, tools and techniques they needed to learn as a result of that decision. They knew they had to own their code from dev to prod, and couldn't just throw it over the fence (because there was no fence). The issues that were brought up in the post definitely reasonated with some of the concerns the developers brought up. I do think a tool like tilt would have made the transition easier for that team.

Finally, I think the post could have been made simpler if it stays focus on just one tool, and how that tool helps to solve the problems that non-ops developers have, when writing code that needs to run on k8s.

</comment><comment><USER27> What would you recommend for development of some private project on a local server? No cloud cluster, bare metal and great opportunity to learn.

Something on the order of 20-40 services for even the most trivial things. Development speed above all else

<comment><USER28> Tilt (the product created by the company hosted by the blog) is an implied solution.

There is also Draft (Microsoft), Skaffold (Google) and Garden.io

Here is comparison of the last 3 [https://codefresh.io/howtos/local-k8s-draft- skaffold-garden/](https://codefresh.io/howtos/local-k8s-draft-skaffold- garden/)

(I have no affiliation with any of those solutions, I just co-authored the comparison article)

</comment></comment><comment><USER29> > For example, a common set up is to only allow your developers to access to > create/edit objects in one namespace.

Not best-practice. Best practice is to lock down access to production to grant read-only permissions to developers and force deployments to occur through a controlled pipeline. This controlled pipeline can ensure that changes first go through a staging environment that is essentially identical to production, verify that the changes work there, and only afterwards deploy to production.

> Testing things like NetworkPolicies is also fraught.

Test, staging, pre-production environments. Particularly since the developer won't typically have the entire environment set up on their developer machine, and permissive network access is a working default, usually more restrictive network policies are setup by whoever has responsibility for the larger environment and breaks are caught in later stages of the pipeline.

> ...test ingress changes, but even then changes can take 30 minutes to take > effect and can result in inscrutable error messages.

Not Kubernetes's fault. Even then it's only partially the cloud provider's fault (because of the inscrutability of said error messages) - <USER2> doesn't provision itself in a split-second and that reality stands at odds with kubectl's desire to return asynchronously, ironically enough, for a better developer experience compared to staring at a console waiting for the cloud provider to respond within a timeout.

> Maybe in the future, SSH will be as anachronistic as the floppy disk icon, > but for now, I want to log in to a container, poke around, see what the > state is

Oh man. Please don't. Just don't. Improve your logging and metrics first, then we'll talk.

> It's reasonable that this image doesn't have strace, and kind of reasonable > that it doesn't have bash, but it highlights one of the Kubernetes best > practices that makes local development hard: keep your images as small as > possible.

That's not a Kubernetes issue, that's a containerization issue. And a large part of the philosophy behind why it's OK in containerland is, there are only three things you need to effectively observe containerized stateless applications, and they are logs (including request tracing), exported metrics, and network traffic statistics (which really are a kind of exported metric, just not one exported by the service).

> Even if you can avoid going out to the internet when pushing an image, just > building an image can take forever. Especially if you aren't using multi > stage builds, and especially if you are using special development images > with extra dependencies.

So... use multi-stage image builds?

> What I want to do is just sync a file up to my pod... if your container is > restarted for any reason, like if your process crashes or the pod gets > evicted, you lose all of your changes.

By design. Your changes aren't going to propagate to staging, let alone production.

> In dev, I want to tail the relevant logs so I can see what I'm doing. > Kubernetes doesn't make that easy.

[https://github.com/wercker/stern](https://github.com/wercker/stern)

> If we want to empower developers to create end-to-end full stack > microservices architectures we need to provide some way to get their hands > dirty with networking. Until then that last push to production will always > reveal hidden networking issues.

If you need to alter multiple microservices to deliver a single feature, your architecture is probably screwed up, or your development process isn't sufficiently structured to build up individual backend services incrementally and in a serial, rollback-able fashion. You can't fix a poor architecture or SDLC by throwing tooling at the problem.

<comment><USER30> My take on it was that the author was talking rather about the DevOps and not only development. And ofcourse he did a pretty poor job at making his DevOps work easy at the company.

</comment></comment><comment><USER31> With all the love for K8s - this post is spot on in many points.

Especially around accessing containers and observability. But ... That's where modern solutions of virtual-logging come in: e.g [https://Rookout.com](https://Rookout.com)

When your software connects back to you and you can instrument it on the fly (Add logs line, non-breaking-breakpoints, etc.) most of these pain points are resolved

</comment><comment><USER32> You guys do realize that Service Fabric solved these issues years ago, right?

</comment><comment><USER33> Because simplicity was an afterthought.

</comment><comment><USER34> Srsly? Is this meant to be satire?

</comment><comment><USER35> So, how can the same story be submitted twice in a span of a few hours?

[https://news.ycombinator.com/item?id=20768531](https://news.ycombinator.com/item?id=20768531)</comment>


Ask HN: How can we increase schema.org usage? - <AUTHOR> schema.org is a standard way of marking up web pages to provide machine readable data about the page.
I'm a fan of what schema.org is trying to do. The problem is that I haven't seen much adoption other than for SEO on product pages and the occasional recipe.
What are the pros and cons for sharing data using these standards and how can we incentivise people to share data that is machine readable? <comment><USER2> From the perspective of a person trying to promote a side project. I would want to implement a schema that would maximize the exposure of my website.

However, there is microdata, RDFa, and JSON-LD. Which do I use? Then once I choose a specific schema, what are the critical elements I need to have?

Those are probable the two issues that confuse me the most.

<comment><AUTHOR> JSON-LD has been the suggested standard since 2013 I believe. It's easier to integrate than modifying your dom just to satisfy the hierarchy of data.

I agree that there is no real information about data that is critical to provide. Validators for Google and Pinterest to validate your page but it just reports a yes/no answer afaik.

</comment></comment><comment><USER3> Charlie Munger would say we should look at the incentives first - so you're asking the right question.

Easy answer - make Google give priority distribution to sites that use schema.org for additional things.

That one single change would have massive results for schema.org usage.</comment>


Job Interviews Are Getting Weirder - <AUTHOR> http://www.marketwatch.com/story/job-interviews-are-getting-weirder-2014-02-07

<comment><USER2> " "People can be asked to sing a jingle," she says. Her advice to job seekers in 2014: "Have one ready that's relevant to your industry. It shows that you've done your homework and react well under pressure." "

Seriously ? I'm not sure about you but if I was asked to sing for a computer science job I would probably refuse and it wouldn't be the place I'd want to work

<comment><USER3> _" I'm not sure about you but if I was asked to sing for a computer science job I would probably refuse and it wouldn't be the place I'd want to work."_

Right, it would be a pretty clear indication that the company has no idea how to hire competent people, but is good at chasing inane management trends. Not somewhere I'd like to work either.

Unfortunately, people in fields where it's harder to get a job are at the mercy of these idiots.</comment></comment>


From C to AST and back to C with pycparser - <AUTHOR> http://eli.thegreenplace.net/2011/03/07/from-c-to-ast-and-back-to-c-with-pycparser/

<comment><USER2> Can the same be used for regular python AST's? i.e., to generate legible C code from Python? I know PyPy's RPython already does this, but I don't think the code is this clear. Or is it?

<comment><USER3> Well, things would get tricky, because even stuff like "foo.bar" gets turned into a dictionary lookup.

In short, you could do it, but it would hardly qualify as readable in the general case. It is easier to do this to RPython since all the dynamic parts are gone (foo.bar just becomes a struct lookup).</comment></comment>


Improving Yourself is Easy - <AUTHOR> http://zachholman.com/posts/improving-yourself-is-easy/ <comment><USER2> Those goals aren't exactly "win the Olympic Games", "make a contribution to P=NP?", etc.

It's good to set goals and meet them, but there are qualitative differences between the experience of completing a major project with substantial uncertainty and a lot of pressure vs. "2009: Make it to a Ruby conference".

Drawing the conclusion that "everyone's vague, important motivations are more a matter of willpower than anything else" is making some pretty major assumptions about the modesty of everyone's motivations.

<comment><USER3> I don't agree with your comment, but I get what you're saying. I think the guy should be applauded for what he did do - which is substantially more than a lot of people do! He had some goals - he achieved them.

The lesson he learned from this is likely to lead to larger and larger goals - and I'm willing to bet 10 to 1 that he ends up accomplishing a lot over the next ten years as a result of the "little" steps he has taken already.

Good job!

</comment></comment><comment><AUTHOR> Something I didn't include in the actual post: I don't want to say everything is easy. If one of your goals is to scale your service to a five-hundred box setup, that's probably "hard".

But everyone has those vague, important motivations in their lives that are more a matter of willpower than anything else. Those are the meaningful goals. Those are the "easy" goals.

</comment><comment><USER4> If you set easy goals, meeting them is easy.

Now if you can just learn how to break seemingly unachievable goals into easy goals, you'll be all set.

<comment><USER5> The way to deal with an impossible task was to chop it down into a number of merely very difficult tasks, and break each of them into a group of horribly hard tasks, and each of them into tricky jobs, and each of them..

(Terry Pratchett, Truckers. I read this when I was 6 years old but it always stuck with me.)

<comment><USER6> I do agree in general with what you are saying. But sometimes the trouble is that the subdivision (at least a good one) is hard to find.

Often enough it is that you don't understand the problem well enough. But sometimes you just can't seem to find the proper sub-problems. I have had this experience while doing research work.

<comment><USER7> Thats true and I hope you often encounter that problem in research work; if you do not, you are too far from the edge.

And if somebody things "that never happens to me", I kindly ask you to take a look at the the Collatz conjecture [<http://en.wikipedia.org/wiki/Collatz_conjecture>].

</comment></comment></comment></comment><comment><USER8> Out of them all, I'd say the 2011 goal could potentially be daunting for people. Speaking at a tech conference, you really need to know your stuff. Slightly more concrete objectives might help too. Good to have general guidelines though.

</comment><comment><USER9> I completely and utterly agree! Nice and encouraging lines of wisdom you have there. Congrats on making a continuous progress and setting a new standard all the time. Thanks for sharing this with us, and I am pretty sure it will kick some butts to do something :)

</comment><comment><USER10> I'm making my own journey through similar milestones, and I'd agree. It is easy!</comment>


Asynchronous Databases: DBSlayer and HTTP - <AUTHOR> http://www.igvita.com/2008/08/11/asynchronous-db-dbslayer-http/

<comment><USER2> FTA:

 _The problem is that dreaded dynamic request which cuts through the cache and requires a blocking database query, which has an unfortunate side effect of locking up the resources on your application server as well._

Come again? I'm not aware of any database technology where a synchronous request on one socket locks up the whole application server. What on earth are they talking about here? Sockets are cheap. Thread stacks are cheap. Just make the call and let the database sort out the locking and synchronization.

I don't even see how the linked library fixes the problem anyway. It just moves the blocking socket out of the web/app server and into a chunk of middleware that manages its own database connections.

<comment><USER3> Thread stacks in your web stack are not necessarily cheap.

<comment><USER2> That's mostly a myth. Yes, you have to worry about what you put on those stacks. But 2-3 pages per blocking call is noise even on low end servers these days. At my day job, we have an application (not a web app, but something similar architecturally) which routinely has 4-700 threads blocked on I/O on a 2G machine. The load average scares the IT guys, but the application works very smoothly and scales much better than anything using select() or poll() would (CPU overhead checking 700 file descriptors isn't trivial). And the code is cleaner to boot.

The "don't use threads for I/O" notion comes out of the early 90's, when OS schedulers were more primitive and memory was more scarce.

<comment><USER3> First, there's more to it than simply whether the context switching and stack reserves are going to kill you when you have 700 blocking threads (and note that 700 is not a crazy high number, especially for async). Leaving aside correctness, multithreading also incurs synchronization overhead; set aside the "GIL" stuff and you're still left with the fact that in the real world, you will still wind up serializing your program on one of your own data structures.

Second, the "don't use threads for I/O" notion comes from the fact that no matter how much compute you burn on I/O, the data isn't coming any faster, and in I/O bound programs, it's more efficient to use the I/O scheduler (kqueue and epoll in crazy programs, select in everything else) than the context scheduler.

Third, you're about 10 years behind the times yourself if you think that the CPU is going to strangle itself checking 700 file descriptors. Although I don't even think a 1997 async network program is going to lose to a 2008 threaded network program over 700 connections, it isn't even a contest in 2008 vs. 2008.

I am happy to race you. =)

Regardless, I wrote an async MySQL driver because you can't demand-thread per- packet network code, and I wanted to dump stuff to a database. Some of us will thread when threading makes a program cleaner and simpler, and run everything async when threading becomes an obstacle course.

<comment><USER2> Tom, you're not making any sense here. You stated that "threads weren't cheap". I said this really wasn't true anymore for this problem area (mostly- blocking network I/O) and mentioned an application I'd written that shows exactly this over a load regime very close to what you'd see with a heavily- contested web application database.

Now you're talking about stuff like synchronization overhead, which wasn't at issue: synchronous access to a few hundred separate file descriptors (one per thread) obviously doesn't need to synchronize anything. You're stating some stuff of questionable veracity (select/poll certainly _do_ scale poorly once you get past a few hundred descriptors -- just check the kqueue/epoll justification documents for copious benchmarks to that effect).

And you're even making up some, er, interesting new terms: what on earth is an "I/O scheduler" as distinct from a "context scheduler"? Usually when you use the former term, you're talking about the block device request scheduler (elevator algorithm, etc...) which (1) isn't involved here as we're talking about balancing network I/O and (2) is invoked in the same way for local I/O regardless of whether you're doing I/O via an async request for 700 blocks or via 700 synchronous read() calls from separate threads.

And you capped it all off with a few ad hominems that I honestly don't think are appropriate on this site, at least in a technical context. Stop flaming.

I'll say it once more: threads are cheap in this regime. The linked article is a hack to get around the problems of database access from monolithic, poorly threaded language interpreters. It's not a "performance enhancement" in any meaningful way. Even a shared-nothing web app architecture a-la news.arc is likely to do better than an extra hop through this thing.

<comment><USER3> If you can be specific about how what I said was uncivil, I will apologize for offending you. I think you're wrong, but I don't think you're crazy or stupid.

You're right that we started talking about something very specific (the memory costs of stacks for 700 threads) and I quickly generalized (to the performance of threading versus async code). That's a fair critique. In my defense, the performance difference between threaded code and async code is very relevant to this article.

Here are my points:

* It is not a "myth", as you say, that async network code scales better than most threaded network code.

* Your anecdote about 700 concurrently served connections probably won't cause select(2) to break a sweat, let alone kqueue/epoll.

* It's horribly unfair to tar async code with select(2)'s performance, because performant applications use kqueue or epoll to replace it. Both resolve the scaling problem you're alluding to.

* It is perhaps weird that I see a similarity between a thread scheduler, which switches CPU contexts on a timer, and a select loop, which switches them nonpreemptively on I/O events. I retain the right to say that event loops are an instance of the "scheduler" problem; if you think that's crazy, read the papers on the MIT Click modular router. In fact, do that anyways; they're great.

</comment></comment></comment></comment></comment></comment><comment><USER4> Fantastic. Instead of facing up to the crippling inadequacies of Ruby's single threaded implementation, we get a mad scientist solution.

I swear Ruby attracts bad thinking like a magnet.

<comment><AUTHOR> I don't think that's the case at all. The problem is exactly the same in any language - which is why we've seen a multitude of Java / Perl / Python / Ruby / C drivers developed to do the exact same thing.

As someone has already pointed out, it's not about the threading, it's about turning a blocking request, into an asynchronous one. (Deferring work until you have the data to perform meaningful actions with it).

<comment><USER5> I think the reason this is a bad idea is that in order to turn a blocking operation into an async one, you're adding a totally new transport layer (HTTP) and data representation (JSON), as well as middleware. That means a significant performance hit, and a lot of needless complexity (and potential for failure).

It would be much simpler to either make the database driver itself non- blocking (Postgres' client library supports async queries, for instance), or use a dedicated pool of threads to perform blocking DB operations. It might be that Ruby's threading is too broken for the latter to be feasible, but it still makes using DBSlayer just to get async DB operations needless overkill.

</comment></comment></comment><comment><USER6> what's the use case for this? are you using it for aiderss?

<comment><AUTHOR> mtw, haven't deployed it in production, but playing with it. The nice thing about DBSlayer is it provides the round-robin balancing as well! (Read from multiple slaves, transparently)</comment></comment>


My Gamified Life - <AUTHOR> http://gilesbowkett.blogspot.com/2012/08/my-gamified-life.html <comment><USER2> I think this is really cool. Lots of people make productivity systems, but very few people can say they've utilized them as successfully.</comment>


I'm leaving Android for iOS, and I blame late games - <AUTHOR> http://www.polygon.com/2015/11/5/9675740/apple-gaming-android-google-late-games <comment><USER2> [Windows phone users laughing/crying in the distance]</comment>


My first game – Unison, increase the numbers but keep them in the range - <AUTHOR> https://play.google.com/store/apps/details?id=com.dalvenk.unison <comment><AUTHOR> Very simple game - click any of three buttons below to increase one of the two numbers. The color of the button corresponds to the number that is going to be increased. Try to make the choice before the timer runs out. The bigger the numbers the faster the timer. In the event the numbers match - Unison! - <USER2> timer resets.

My first ever published game. Android only.</comment>


Microsoft ordered to hand over emails on Dublin server - <AUTHOR> http://www.bbc.co.uk/news/technology-28601788

<comment><USER2> Out of interest, what if Ireland says they must not hand over the info, and the US says they must?</comment>


U.S. warns public about attacks on energy, industrial firms - <AUTHOR> https://www.reuters.com/article/us-usa-cyber-energy/u-s-warns-public-about-attacks-on-energy-industrial-firms-idUSKBN1CQ0IN <comment><USER2> They've been saying this every week for the past 10 years, it's nothing new.</comment>


Big Nerd Ranch iOS Bootcamp Review - <AUTHOR> http://asianbarbie.com/big-nerd-ranch-review/ <comment><USER2> Thanks for the review, now that I've read this, would actually be good to see more reviews for different coding bootcamps</comment>


Noninvasive Technique to Rewrite Fear Memories Developed - <AUTHOR> http://www.sciencedaily.com/releases/2009/12/091209134629.htm

<comment><USER2> Compare and contrast: <http://news.ycombinator.com/item?id=480957></comment>


Show HN: Netflix for Webinars - <AUTHOR> http://www.prohuddle.com/ <comment><USER2> "Netflix" suggests that the webinars are on demand. But the example suggests scheduling a future session.

Good luck.</comment>


How to vote for Bitcoin today - <AUTHOR>

It might seem crazy to be spending any BTC now with the rate the price is increasing, but here's why I used BTC to buy all of my holiday gifts today:
Next week, there are going to be reports, and if enough companies are reporting increased orders by accepting BTC on Bitcoin Black Friday, this information is going to be very influential to other merchants.
It's a bigger topic to get into why I support Bitcoin, and I would mostly be preaching to the choir on HN.  My point is that if you truly think Bitcoin is a good thing and will lead to a better world, you should be voting for Bitcoin by spending some of yours today...even if it means buying more to replace them afterwards. <comment><AUTHOR> And just in case anyone is curious what I bought:

\- a laser (kit) from [http://bitlasers.com](http://bitlasers.com) (selfish gift for me. Why not start my fireplace with a laser?)

\- a donation at [http://bitgivefoundation.org/donate.html](http://bitgivefoundation.org/donate.html)

\- a few "Bitcoin: Honey Badger of Money" t-shirts for my friends who are also BTC supporters.

\- an assortment of ridiculous wine and cocktail-flavored lollipops to gift to some female friends from [http://www.lollyphile.com](http://www.lollyphile.com)

I have no affiliation with any of these companies. I'm just trying to support Bitcoin by sharing some ideas.</comment>


16-Inch MacBook Pro to Launch by End of Month with Scissor Keyboard - <AUTHOR> https://www.macrumors.com/2019/10/21/digitimes-16-inch-macbook-pro-by-end-october/ <comment><USER2> A scissor keyboard fixes half of their keyboard problem. Next question: will the new MBP be available without the touchbar and with a conventional row of Esc and Fn keys?

<comment><USER3> It's looking like it will have a physical Esc key but no Fn keys.

<comment><USER2> Thanks.

I'll check in with next year's model. MBP is still dead to me.</comment></comment></comment>


France proposes upload filter law, "forgets" user rights - <AUTHOR> https://juliareda.eu/2019/12/french_uploadfilter_law/ <comment> dane-pgp "Rightsholders, unlike what the directive says, do not have to justify their initial requests to block content, but only have to respond once a user challenges the blocking of one of their uploads."

I wonder if the law will allow for any penalties or restrictions against a rightsholder who "mistakenly" claims that every piece of user-uploaded media on a website is infringing their copyright.

Presumably a rightsholder could be a company (or individual) based anywhere in the world, and therefore would face no legal risk in making such "mistakes". (A creative lawyer might attempt to use fraud or "hacking" laws against such a rightsholder, but might have difficulty bringing them to court).

Some of the rightsholder's claims may even be completely valid, meaning that the hosting website couldn't afford to just disregard all their claims.

<comment><USER2> > I wonder if the law will allow for any penalties or restrictions against a > rightsholder who "mistakenly" claims that every piece of user-uploaded media > on a website is infringing their copyright.

It does not mention any. (ref: mostly page 31 of [https://www.legifrance.gouv.fr/content/download/16062/162304...](https://www.legifrance.gouv.fr/content/download/16062/162304/version/1/file/plf_mice1927829L_cm_5.12.2019.pdf) , and also other relevant sections found by looking for the words "téléversé"/"téléverser", which mean "upload")

<comment><USER3> Then, couldn't you pose as a copyright owner and submit a takedown request on these legislators' personal or official content? Let them have a taste of their own medecine.

I wonder how a politician that supported the initiative would react if they had their campaign videos systematically taken offline?

<comment><USER4> You would just be adding headaches to the PR drones working for that politician. I doubt the politician himself would ever know about it happening.

These people are usually behind several layers of separation from real world.

<comment><USER5> Don't give up already ;-)

</comment></comment></comment></comment></comment><comment><USER6> As an example of what can happen under regimes where 'right holders' are disproportional advantaged over content creators:

A third party rights management provider just copyright claimed seemingly any Youtube video that contained any soundparts that were also found in one of their client's videos.

Now their clients are often very small content creators such as people posting videos of their Twitch game playing streams to YouTube as a VoD archive.

Now imagine that this one gamestreamer client of theirs plays a game that contains a cutscene (as most games do). Now every other gamestreamer with YouTube archives will find every video that had them playing that game copyright striked, as the cutscenes from the game played where ofc identical to those cutscenes in the other guys video. This really happened [1], and resulting in those types of channels now having to manually dispute the demonetization on each and every one of their videos in their (sometimes very extensive) catalogues.

The very small company in question, Illustrated Sound Music, claims it was just a 'mistake', and yes, in most cases they will not gain more than a few pennies per video as apparently most of the stuff they hit has just a handful of views, but pennies per video from millions and millions of videos add up to a nice sum.

[1] [https://gamingph.com/2019/12/youtubers-hit-by-false- copyrigh...](https://gamingph.com/2019/12/youtubers-hit-by-false-copyright- claim-by-illustrated-sound-music/)

</comment><comment><USER7> The "block and ask later" method seems valid for copyright owners. But for users it is essencially just "block". Not only because relevancy will be lower after some days pass. But mostly because algorythms will not show such content to people. Because it didn't receive any signals for several days makes it to be considered uninteresting.

For funny memes it is not a big deal, but for social and political discourse it is devaststing.

And it is already known copyright laws are used by media companies to control the narrative. For example when a politician says something people can find not right. Should a media company sympathasing with him, be able to wipe out the very existance of the situation?

Because this is actually what media companies will be to do. Wipe out parts of reality they dont like people to remember or know.

Actually it looks like politics made a deal with business. And it is something to oppose against.

<comment><USER8> > but for social and political discourse it is devaststing.

Sounds good. Just copyright strike the content of the party proposing this

<comment><USER9> Most "serious" parties and companies want this. They want power, and that's sheer power, as long as they get to control it.

It's like the poor guy encouraging tax cuts because one day he'll be rich and don't want to keep his money when he'll finally make it out.

<comment><USER8> I am aware of this, but the bigger parties also fail to realize how this can backfire on them.

(Which is the opposite of the poor guy situation)

</comment></comment></comment></comment><comment><USER10> This is an unfortunate law that was passed quite hastily and will bring a lot of challenges to the market. Even my company operates in this space, we were trying to convince politicians not to adopt it. We failed, as you can see.

We built a product [0] that introduces a balanced approach to the legislation where it actually considers all 3 sides (creators/uploader, rightsholders and platforms) and made it free of charge to all (we make money through licensing revenue carried through the system). We still wish that the legislation didn't pass, but at least we are hoping to level the playing field for everyone.

[0] [https://pex.com/attribution-engine.html](https://pex.com/attribution- engine.html)

</comment><comment><USER11> Copyright is not as important to society as Silicon Valley wants everyone to believe. It a property issue and not even a critical one. Most of the problems around it can be solved with money.

The collateral damage caused by this lawyer infused, never ending "copyright war", though is real.

Not worth one good man.

Edit: I'm a "creator". Never been "corporate". I had my work "cloned".

<comment><USER12> Copyright is pretty important to the artists, academic publishing, and the entertainment industry, no?

<comment><USER13> Only if they care about money.

Banksy isn't likely to sue anyone.

<comment><USER14> I can't tell if you are making a joke or not.

[https://www.artsy.net/news/artsy-editorial-banksy-sued- itali...](https://www.artsy.net/news/artsy-editorial-banksy-sued-italian- company-making-unauthorized-merchandise)

<comment><USER13> Copyright is a corporate concern. Pest Control are corporate, and care about money.

They're _not_ Banksy direct.

</comment></comment></comment></comment></comment><comment><USER15> > The title of the proposed law gives a glimpse into the mindset of French > legislators, presenting the enforcement of copyright laws in the interest of > private entertainment companies as a matter of asserting France's "cultural > sovereignty". It frames Article 17 as a means to support the European > entertainment industry in its conflicts with American tech companies. Users' > interests are at best an afterthought in this struggle for "cultural > sovereignty".

I would imagine that the legislators of France and other EU countries are fairly accustomed to seeing through the lens of [https://en.wikipedia.org/wiki/Geographical_indications_and_t...](https://en.wikipedia.org/wiki/Geographical_indications_and_traditional_specialities_in_the_European_Union) protections, and tend to apply that mindset to other "trade protection" issues.

In a sense, someone sharing a French-copyrighted work on Facebook with the source+watermarks stripped, _is_ doing something kind of similar to an American winemaker who labels a sparkling wine they've produced as e.g. "Napa Champagne".... but in another sense, no, that's an awful analogy.

<comment><USER16> It's awful indeed. As a European citizen I am very much in favor of geographical marking of specialties (and I don't see why that wouldn't be beneficial to US agriculture either), but certainly do not extend that opinion to upload filters. Or dropping daylight savings time for that matter.

</comment></comment><comment><USER17> It's not quite as bad as she makes it look like.

France already has laws covering exceptions like caricatures and quotations. That's why it's not detailed in the new article, it already exists.

The most interesting part of the PDF might be the article 17, section 4. In summary, platforms MUST provide a way for both users and copyright holders to handle complaints and -the important part- they MUST be reviewed by a human. This is gonna be fun for Google and co that want to automate everything with machine learning.

<comment><USER18> Review by a human might not help if the human is being scripted like a bot.

Line 5 of script: Look at reply. Count the number of vowels on first line. Line 6 of script: now say, "we have reviewed your reply."

<comment><USER17> Humans introduce entropy in the system and might actually review cases once in a while, unlike a bot.

Outside of script, rejected claims that had "azertyuiop" as copyright owner, although it had the right amount of vowels.

<comment><USER18> To expand:

Plenty of call centers operate scripts that respond not much better than how I outlined it. The trick is to get out of the script as soon as you can find and trigger the escape clause.

My concern with companies like Google is that you can easily get yourself into a bizarre situation. Whereas with other systems you just need to escape the script to get to a human review, Google and similar structures mean you often need to find the escape from the escape from the escape. This is why people appeal on twitter rather than through google's own systems. (Yes there are exceptions)

The hope with putting humans into the loop is valid but I'm not convinced its the full answer. The overall attitude/culture of the environment they operate in is still important.

At least with putting people into the process those people can add their own attitude/culture. This is the saving grace however slim.

I'm hopeful but not convinced.

<comment><USER17> Same as you, just hopeful it will break the vicious cycle.

Google and co are trying very hard to have no support process and no support staff. Automating everything instead.

If and when they're forced to have a full support structure, it's a major change like a Trojan horse. Even if they're following a stupid script, they're not going to sit idle all days, they're going to actually review some cases, maybe read them in full sometimes.

<comment><USER18> Look at my parent comment as an example. There is no way for me to find out why it is now at -1 and frankly, the humans who made the decision are not obliged to comment.

So the comment will disappear with no understanding why. No learning is possible.

Human involvement didn't help here.

QED

<comment><USER17> All of that because there wasn't a law and a process forcing them to review and explain the decision :p

Joking aside. I think you got downvoted because your comment is demeaning toward support and the example is over the top. Humans are not mindless robots who follow instructions to the letter, even if (especially if) formally instructed to count vowels in the message.

<comment><USER18> I've spoken to many call center staff who quite explicitly had no permission to deviate from a script. They were audio recorded to guarantee compliance. I'm not the one demeaning anyone.

"This call will be recorded for quality and training purposes"

Quality = making sure no one gets too far or deviates off script. Training = who to blame and who to make an example of.

HN often forgets that people who have swam at the bottom don't have the same rose colored glasses. I've seen some pretty harsh environments and plenty definitely script humans like bots.

The counting vowels example sounds over the top but its only over the top because you think its absurd. It _seems_ absurd because you don't see it as a delay loop. But that is exactly what it is. Here's a real example of a delay when someone needs to resolve an issue that is trivial but the organisation doesn't want it commonly used: Put the person on hold. Wait 2 minutes. Resume the call. Say you've consulted your line manager. Etc.

Don't shoot the guy who reminds the world this has happened and is still happening. People as bots is a thing that is already happening.

<comment><USER17> If they're audio recorded, it means it's possible to get hold of a human on the phone, so miles ahead of Google support.

I know shitty support and shitty jobs, I haven't always worked in tech and I am not in the valley. Yet people as bots is progress over the current level of support from big tech companies.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> Every time you buy media legally, you fund these kinds of laws. Not only are media conglomerates not our friends, they are openly hostile to the rights the growing IP laws have not yet robbed us of.

<comment><USER20> Every time you steal media, you defund the creators.

<comment><USER21> When many people copy media (not take it away from someone), they do it because it is not worth 100x-1000x the amount the creator receives to them. Many, if not most or virtually all those people would be willing to pay a more reasonable price without the draconian war enacted by "publishers", who now, in the age of the internet, bring little more than a gate rather than actual distribution. It is certainly more complex than "pay any price, accept any consequence, or you are evil". A strong correlate to this is the fact that many content creators, despite entering into agreements with publishing houses, really could not care less about piracy. The modern history of piracy, legislative creep, and enforcement has been a battle between consumers and publishers, not artists.

</comment></comment></comment><comment><AUTHOR> The title is a bit click-baity, but I'm not sure whether it's sufficiently bad to "editorialise"[0] the title.

The context is the French implementation of the EU copyright directive (the one that contained Articles "11" and "13" (though the numbering was later changed)).

[0] [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

<comment><USER22> The title is like a headline that I would expect from a professional left-wing publisher, though; it doesn't seem unreasonable at all, and I'm not sure what it could be changed to since the author is a politician and this is basically a political speech that focuses on the topics brought up by the title.

</comment></comment><comment><USER23> Remember when EU politicians said that Article 17 (was known as article 13) won't result in upload filters? I remember.

This is yet another example of EU politicians lying to the voters.

</comment><comment><USER24> This is all so depressing.

If we had sites where content couldn't be blocked, all this angst about blocking would just be lulz.

And it's not even hard. Torrenting and streaming through VPN services still work well enough. We just need implementations at mass market scale. Some of those cryptocurrency whales ought to get on it.

<comment><USER24> Belated edit: I recall in the mid-late 90s that the internet was headed toward P2P, mix networks, and other noncommercial stuff. We got Usenet newsgroups, Cypherpunk/Mixmaster remailers, Freenet, Tor, Napster, BitTorrent, etc.

But now we've gone commercial/centralized again. Like AOL/Prodigy reborn. And worse than that, we have smartphones designed to neutralize privacy and foster dependency on commercial bullshit. More like game systems than PCs.

Sure, there's cool stuff like IPFS and Signal. But mostly it's all so depressing.

<comment><USER25> "Protocols, Not Platforms: A Technological Approach to Free Speech (knightcolumbia.org)" :

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

<comment><USER24> Thanks, interesting stuff.

> I've said this 1000 times, but garbage like Facebook or Twitter could be > replaced overnight by a protocol. There is really zero reason it couldn't be > built from existing distributed tooling, be secure and just as useful > without lizard people getting in the way. -- scottlocklin

But there's nothing about privacy, and the only comment that mentions "censor" is in favor.

<comment><USER25> RTFA ? (I linked the HN discussion because criticism is always good to have.)

</comment></comment></comment></comment></comment><comment><USER26> I couldn't really find the core arguments of the article. I wasn't really sure what it is was arguing for or against or what the exact laws are that we should be concerned about. Can someone elaborate?

<comment><USER27> the European Union (EU) enacted a copyright directive this year, this directive has to be implemented in national law by the EU member states. Part of this copyright directive is that platforms are liable for copyright infringement of their users unless they take measures to prevent those. they are also provisions in the directive which were supposed to keep user's right in check.

Now the French government put forward a bill in the French Parliament to implement this directive. It seems to be a bill which favors the rightsholders above else, which was to be expected because France was one of the biggest proponents of this part of the directive.

</comment></comment><comment><USER28> If the EU firewalls itself, it will make it easier for the rest of the world. To many aggressive laws claiming foreign jurisdictions.</comment>


Image copyrights - workarounds please - <AUTHOR>

I'm creating a reporting tool that runs across products online collecting prices and descriptions. How can I provide access to images without getting in copyright trouble.<p>Is storing URLs and linking offsite to the image a feasible alternative? <comment><USER2> If you call your tool a "search engine" and have proper DMCA policies in place then you are protected by various Google Image Search precedents.

<comment><AUTHOR> Really? So if I sell this as a "product search engine", I'm immune from people claiming I stole their images. I noticed Polyvore which lets people tag and share images seems to fly under the copyright area.

Such a grey area though....</comment></comment>


Face Recognition Demos - <AUTHOR> http://demo.pittpatt.com/ This company has an online face recognition demo that will pick out people who are the same in two images. Seems to work best with frontal faces. They have a downloadable demo as well. <comment><USER2> Anyone know of any other facial recognition products/libraries? (other than PittPatt or OpenCV)

</comment><comment><USER3> already been posted a while ago here:

<http://news.ycombinator.com/item?id=510264></comment>


John Sculley Gives Detailed Account Of How Steve Jobs Got Fired From Apple - <AUTHOR> http://www.forbes.com/sites/randalllane/2013/09/09/john-sculley-just-gave-his-most-detailed-account-ever-of-how-steve-jobs-got-fired-from-apple/?nowelcome=true

<comment><USER2> _The answer? "I really blame the board," said Sculley, who was recruited from Pepsi in 1983 to bring order to Apple – and Jobs._

So much for the buck stopping at the CEO. At least he shows more humility in the end.

 _Sculley's biggest regret? "I feel most badly, though, [because] after 10 years, I was at the company, I wanted to go back to New York where I was from. Why I didn't go to Steve Jobs and say, 'Steve, let's figure out how you can come back and lead your company.' I didn't do that, it was a terrible mistake on my part. I can't figure out why I didn't have the wisdom to do that. But I didn't. And as life has it, shortly after that, I was fired."_

</comment><comment><USER3> Funny how this didn't appear until Jobs wasn't around to defend himself.

Selling computers != selling soda and junk food.</comment>


Merkel allows prosecution of German comedian who mocked Turkish president - <AUTHOR> https://www.washingtonpost.com/news/worldviews/wp/2016/04/15/merkel-allows-prosecution-of-german-comedian-who-mocked-turkish-president/?hpid=hp_hp-cards_hp-card-world%3Ahomepage%2Fcard <comment><USER2> Comments moved to [https://news.ycombinator.com/item?id=11503910](https://news.ycombinator.com/item?id=11503910).

<comment><USER3> Why not move the upvotes too??

308 points!!

The other one has only 180 points and therefor will vanish from the frontpage a lot sooner. It's already on 24th instead of 1th (as it would be otherwise), so it seems like...

<comment><USER2> If you think about how to do this in a fair or precise way you soon realize that it's hopelessly complicated. For example, we can't just move the points because some people will have voted for both.

The ranking of a story like that is determined by a lot of different factors, not just points and timestamp, and I'm not sure that it's important for it to stay on the front page for much longer than it has. But I appreciate that you feel differently about it, so we'll roll back the clock on it a bit (easier than adding points but will have a similar effect).

</comment></comment></comment><comment><USER4> If it wasn't clear before, hopefully it's crystal clear now from this idiotic demand that Turkey is in no position to join the EU in its current state. Erdogan is human scum and he's making sure of that in many ways these days.

</comment><comment><USER5> The reason - it is not because she agrees with the matter. It is because it is not her job to decide. It is the job of the law to clarify if he is guilty or not.

</comment><comment><USER6> Other discussion; [https://news.ycombinator.com/item?id=11503910](https://news.ycombinator.com/item?id=11503910)</comment>


Graph TV – The Simpsons - <AUTHOR> http://graphtv.kevinformatics.com/tt0096697

<comment><USER2> This graph of The Simpsons illustrates (for me at least) that IMDB is more reflective of the viewing community's weird quirks and biases.

Honestly: is "Homer the Smithers" the best episode of The Simpsons? I doubt anyone would truly put it on their "best ever" list. It's really more "solid" than great. Most importantly: it doesn't rub anyone the wrong way.

Is "Saddlesore Galactica" one of the worst episodes ever? No. It's extremely funny and the story is structured well. It gets lots of very low votes from viewers who favor realism over humor (the episode is implausible with the horse racing then gets silly/fantasy). The episode's score reflects a community desire rather than an objective opinion.

<comment><USER3> > The episode's score reflects a community desire rather than an objective > opinion.

I don't really understand your point. You think it's biased for audience members to rate an episode poorly because they didn't enjoy it and didn't think it was funny?

<comment><USER4> People that disliked something are more likely to vote on that episode to voice their dislike.

For example if the episode makes fun of christians you may have a heavy amount of christians vote the episode down even though it was a good episode. The people that thought it was good aren't as motivated to vote as the people offended.

This is also common with service providers and internet reviews. If the service is good there is no need to go online and post a review. If it's bad you are much more likely to take the time.

</comment></comment></comment><comment><USER5> This is a great example of how to lie with statistics, or what someone can claim by applying just college-level statistics. Those trend lines are completely worthless.

See the trend lines for Futurama: [http://graphtv.kevinformatics.com/tt0149460](http://graphtv.kevinformatics.com/tt0149460) The difference between all the episodes make having a "trend" very doubtful. Especially season 5 is a wildly varying season where if you take one episode away the line would completely flip.

Much the same can be said for The Next Generation [http://graphtv.kevinformatics.com/tt0092455](http://graphtv.kevinformatics.com/tt0092455) where you have basically clouds where seemingly at random a line is drawn through it.

Yes, I know there are statistical methods for determining trends, but without data on their accuracy they are pretty much worthless. And you really should use a threshold for those accuracies if you're presenting this kind of data to a very wide audience.

<comment><USER6> Forfty percent of all people know that.

[https://www.youtube.com/watch?v=1j2Duy_xzEA](https://www.youtube.com/watch?v=1j2Duy_xzEA)

</comment></comment><comment><USER7> Love this. You can really see how some series took a while to get their feet under them.

Star Trek: TNG [http://graphtv.kevinformatics.com/tt0092455](http://graphtv.kevinformatics.com/tt0092455)

Deep Space 9: [http://graphtv.kevinformatics.com/tt0106145](http://graphtv.kevinformatics.com/tt0106145)

Enterprise: [http://graphtv.kevinformatics.com/tt0244365](http://graphtv.kevinformatics.com/tt0244365)

Or in each season

Game of Thrones: [http://graphtv.kevinformatics.com/tt0944947](http://graphtv.kevinformatics.com/tt0944947)

Or took a while to hit their stride, then left right after the peak Seinfeld: [http://graphtv.kevinformatics.com/tt0098904](http://graphtv.kevinformatics.com/tt0098904)

Had a story arc: B5 [http://graphtv.kevinformatics.com/tt0105946](http://graphtv.kevinformatics.com/tt0105946)

Or were clearly failing:

Andromeda: [http://graphtv.kevinformatics.com/tt0213327](http://graphtv.kevinformatics.com/tt0213327)

Sliders: [http://graphtv.kevinformatics.com/tt0112167](http://graphtv.kevinformatics.com/tt0112167)

Futureama: [http://graphtv.kevinformatics.com/tt0149460](http://graphtv.kevinformatics.com/tt0149460)

Or are experiencing a revival

[http://graphtv.kevinformatics.com/tt0121955](http://graphtv.kevinformatics.com/tt0121955)

I wish this could be correlated against ratings data.

And or course: Dr. Who [http://graphtv.kevinformatics.com/tt0056751](http://graphtv.kevinformatics.com/tt0056751)

edit:

Also Law & Order [http://graphtv.kevinformatics.com/tt0098844](http://graphtv.kevinformatics.com/tt0098844)

and Law & Order SVU [http://graphtv.kevinformatics.com/tt0203259](http://graphtv.kevinformatics.com/tt0203259)

and Law & Order CI [http://graphtv.kevinformatics.com/tt0275140](http://graphtv.kevinformatics.com/tt0275140)

and the Stargate series

[http://graphtv.kevinformatics.com/tt0118480](http://graphtv.kevinformatics.com/tt0118480)

[http://graphtv.kevinformatics.com/tt0374455](http://graphtv.kevinformatics.com/tt0374455)

[http://graphtv.kevinformatics.com/tt1286039](http://graphtv.kevinformatics.com/tt1286039)

and Battlestar Galactica

(1978) [http://graphtv.kevinformatics.com/tt0076984](http://graphtv.kevinformatics.com/tt0076984)

recent [http://graphtv.kevinformatics.com/tt0407362](http://graphtv.kevinformatics.com/tt0407362)

caprica [http://graphtv.kevinformatics.com/tt0799862](http://graphtv.kevinformatics.com/tt0799862)

<comment><USER8> Your _Enterprise_ link goes to TNG again. And somehow I was sure Andromeda kept going for 7 seasons, it was just so bad I wasn't even keeping track anymore.

<comment><USER7> Fixed, thanks.

Andromeda really only had five seasons. I think it went episodic in Season 3 or 4 after blowing its load on the major story arc (putting together the federation^h^h^h^h^h^h^h^h^h^h commonwealth again). It was never a great show, but fine to put on in the background while I was doing other stuff. But then it got really really bad and I don't even think I ended up finishing it.

</comment></comment></comment><comment><USER9> For what it's worth, I watched every episode over the course of the last year, so I've got a real good perspective on this.

Here's proof that IMDb is bullshit: Simpson Tide is very highly rated. That episode is one of the absolute worst.

Here's a rough overview:

S1: terrible!

S2: promise!

S3: very good!

S3-S8: the absolute best!

S9-S10: still very good—but not as good

S11: definite decline

S12: yep.

S13-17: ok wow this is pretty bad.

S18-19: a little better

S20-21: definitely better

S22-25: actually pretty good!

The series has been extremely underrated since Season 20 or so when it came out of the slump that began with Season 11. It's not the

</comment><comment><USER10> This is great!

Here's a few interesting ones I've come across:

* The Wire ([http://graphtv.kevinformatics.com/tt0306414](http://graphtv.kevinformatics.com/tt0306414))

Known for being a slow starting show, this is visible with the season trend lines.

* The Shield ([http://graphtv.kevinformatics.com/tt0286486](http://graphtv.kevinformatics.com/tt0286486))

Season 4 is such a massive outlier.

* Seinfeld ([http://graphtv.kevinformatics.com/tt0098904](http://graphtv.kevinformatics.com/tt0098904))

Held very steady until the last season.

<comment><USER11> And, of course, Breaking Bad: [http://graphtv.kevinformatics.com/tt0903747](http://graphtv.kevinformatics.com/tt0903747)

<comment> Dorian-Marie This is most impressive one I found too

</comment></comment></comment><comment><USER12> The 'Red Wedding' episode of Game of Thrones was the best single show rating I could find - 9.9! [http://graphtv.kevinformatics.com/tt0944947](http://graphtv.kevinformatics.com/tt0944947)

The 4th episode of True Detective was 9.8. [http://graphtv.kevinformatics.com/tt2356777](http://graphtv.kevinformatics.com/tt2356777)

Check out this outlier on Dexter's last season lol [http://graphtv.kevinformatics.com/tt0773262](http://graphtv.kevinformatics.com/tt0773262)

<comment><USER13> Breaking Bad episode Ozymandias (s05e14) has a rating of 10!

[http://graphtv.kevinformatics.com/tt0903747](http://graphtv.kevinformatics.com/tt0903747)

<comment><USER14> Interesting that for each season of Breaking Bd, episode 4 is the worst rated.

</comment></comment></comment><comment><USER15> It's a great hack that uses lousy data. IMDB ratings are best perhaps with films, a lot less reliable with individual episode scores. Also, if a show goes south do viewers keep watching it and rating it? That phenomena alone sort of spoils the fun for me.

</comment><comment> josh-wrale Nostalgia wins, for the Simpsons at least.

I sometimes feel this way about TV in general (early stuff is better).

Example (circa 1967-1968):

[http://www.dailymotion.com/video/x12sekq_the-prisoner- arriva...](http://www.dailymotion.com/video/x12sekq_the-prisoner- arrival_shortfilms)

BTW, I was born in '84 and not 1884. ;-)

<comment><USER16> I think with regards to the Simpsons it's just that it was better quality pre-2000 or whatever. [http://www.imdb.com/title/tt0096697/reviews?ref_=tt_urv](http://www.imdb.com/title/tt0096697/reviews?ref_=tt_urv) you can read through the reviews and see several good points about it.

</comment></comment><comment><USER17> Jumping the shark seems to be more perception than reality: [http://graphtv.kevinformatics.com/tt0070992](http://graphtv.kevinformatics.com/tt0070992)

<comment><USER18> FWIW that is in Season 5. Season 6 went even higher!

</comment></comment><comment><USER19> It's quite weird;used to remember that the recent highlight in a rather dull decade "Steal this Episode" was being rated higher.

11% 1 star ratings with a pretty remarkable demographic distribution. [http://www.imdb.com/title/tt2966850/ratings](http://www.imdb.com/title/tt2966850/ratings)

In general an alternate IMDB algorithm probably would give a truer image if you clip of the extreme ratings 1 and 10 before averaging, thereby getting rid of most fanboy/rage votes.

<comment><USER20> IMDb does do some type of weighting to the votes, but they don't release their method.

[http://www.imdb.com/help/show_leaf?ratingsexplanation](http://www.imdb.com/help/show_leaf?ratingsexplanation)

</comment></comment><comment><USER21> Law and Order was fairly consistently awesome, as I expected: [http://graphtv.kevinformatics.com/tt0098844](http://graphtv.kevinformatics.com/tt0098844)

</comment><comment><USER20> OP here, I'd really love to include viewership data if anyone knows how to get their hands on some. I was looking at the Nielsen site but saw no easy way of acquiring or requesting data.

</comment><comment><USER22> Glad to see "Lisa Goes Gaga" as the lowest rated episode. I used to watch the Simpsons religiously but I stopped ~5 years ago. I turned on FOX the other day and happened to catch that episode ... really glad that's the exception and not the rule because it was unwatchable.

</comment><comment><USER23> This is great stuff! One that I found pretty interesting was House of Cards [http://graphtv.kevinformatics.com/tt1856010](http://graphtv.kevinformatics.com/tt1856010).

Notice how first and last episode of season 2 are way up there.

</comment><comment><USER24> The West Wing: [http://graphtv.kevinformatics.com/tt0200276](http://graphtv.kevinformatics.com/tt0200276)

Sorkin co-wrote the first four seasons. I was expecting the dip in S05 but I did not expect such a dramatic upturn in S07.

</comment><comment><USER25> Here's a great analysis of what made The Simpsons good and why it started to decline after season eight:

[http://deadhomersociety.com/zombiesimpsons/](http://deadhomersociety.com/zombiesimpsons/)

</comment><comment><USER17> Another interesting one is Two And a Half Men. You can clearly see when things changed. And it's building back: [http://graphtv.kevinformatics.com/tt0369179](http://graphtv.kevinformatics.com/tt0369179)

</comment><comment><USER26> Sad the "jumping the shark" theory for Happy Days doesn't really hold up against the data: [http://graphtv.kevinformatics.com/tt0070992](http://graphtv.kevinformatics.com/tt0070992)

</comment><comment><USER27> Scrubs is the one I've found with the biggest outlier season. And for good reason:

[http://graphtv.kevinformatics.com/tt0285403](http://graphtv.kevinformatics.com/tt0285403)

<comment><USER28> You know, I actually liked the last season. No, it was not as good as the other seasons, but when I add the handicap for it basically being the first season of a new show, it held up ok. I would have kept watching had it been renewed.

But I understand where people are coming from when they compare it poorly to the other ones. The original _Scrubs_ was a growing up story about JD (and comrades to a lesser extent). The last season was more straight sitcom, less story arc. It wasn't attempting to be as meaningful.

</comment></comment><comment><USER29> I like how this generally confirms my opinion of shows; I can only infer that I hold meta opinions/no opinion of my own. Season 2 finale of The West Wing as some of the best tv ever, though.

</comment><comment><USER17> That's how you end a series: [http://graphtv.kevinformatics.com/tt0165598](http://graphtv.kevinformatics.com/tt0165598) huge bump for the series finale

</comment><comment><USER30> Funny thing: all star treks except TOS end up higher than they started!

<comment><USER7> I just worked by way through TNG and DS9. TNG took a while to get it's legs...in today's environment it wouldn't have lasted past season 2. But then it became great television for the rest of the run.

DS9 started pretty solid, and became one of the best written pieces of sci-fi TV quickly for a long time.

<comment><USER31> Really? I started watching the first two seasons, and it's honestly _dull_.

<comment><USER7> DS9? Yeah, it starts pretty soap opera-ish. That never really goes away (they're kind of stuck on the station for the most part), but the stakes get higher and higher and the various players and factions involved become pretty interesting. Not quite Game of Thrones, but way out of character for a Trek show.

</comment></comment></comment></comment><comment><USER32> Pretty predictable plot of Rick and Morty:

[http://graphtv.kevinformatics.com/tt2861424](http://graphtv.kevinformatics.com/tt2861424)

<comment><USER33> I'm not seeing Something Ricked This Way Comes, which is definitely my all time favourite. It's present on IMDb, so I guess this site caches data.

</comment></comment><comment><USER34> It's pretty clear that something fishy is going on with the ratings distributions here.

<comment><USER35> It's pretty clear that Simpsons fans hate Lady Gaga and Musicals.

<comment><USER36> Really, the Lady Gaga episode was _awful_. And not only because it was a very obvious 22 minute advertisement. It was just plain bad, very bad. I absolutely agree that it's the worst Simpsons episode I've watched.

The individual ratings may not be very "accurate" (well, they're going to be subjective no matter what. My favourite episode is near the bottom of its season), but the trends are interesting. The fact that the floor of seasons 1-9 is above the ceiling of season 14 and onwards (save a few outliers) reflects quite well what many fans think.

</comment></comment></comment><comment><USER37> I really enjoyed playing around with this!

</comment><comment><USER38> no sqrt(n) error bars?!?</comment>


Ask HN: Why do companies like IBM, HP and Oracle avoid showing prices? - <AUTHOR>

Frequently I'm interested how much a piece of software or hardware costs and the only way to know the price is by contacting a sales person. What is the reason for this? <comment><USER2> They want to figure out how much the customer can afford to pay, and then charge them exactly that much.

This is discussed specifically in [1] -- while the entire essay is well worth reading, Ctrl+F "Bad Idea #2" for a discussion of why you shouldn't price your products this way.

[1] [http://www.joelonsoftware.com/articles/CamelsandRubberDuckie...](http://www.joelonsoftware.com/articles/CamelsandRubberDuckies.html)

<comment><AUTHOR> Is this legal outside of the US? I remember there was a case in China in which a restaurant would charge a different price for tourists.

<comment><USER3> I imagine it's legal almost everywhere as long as the basis for the segmentation isn't on a protected category (race, gender, etc.)

</comment></comment></comment><comment><USER4> To continue adding to the other comments, I've seen in the large software companies I've worked for that the sales people do a lot of bundling and discounts or adding special services/products/customizations. While they tend to purvey shrink-wrapped apps, there's basically unlimited mixing/matching/customizing that goes on. Further, companies will pay differently for SLAs, license terms, support, etc.

Also, it forces you to reach out to the company which allows the sales people to start working their magic (applying pressure, creating a sense of immediacy, trashing the competition, etc).

</comment><comment><USER5> Adding to the other correct answers on this page, it allows the company in question to introduce a salesperson into the equation. Even if 100% of customers were charged the same price, salespeople will be more effective closers than web pages most of the time.

As this tends to be true only when prices are high, and given that salespeople are not cheap, I generally take this to be an indicator that prices will be high, almost certainly higher than direct competitors who post their pricing prominently.</comment>


Swedish ISP Blocks Elsevier for Forcing It to Block Sci-Hub (2018) - <AUTHOR> https://boingboing.net/2018/11/03/balkanizing-the-balkanizers.html <comment><USER2> Discussed 8 months ago: [https://news.ycombinator.com/item?id=18370446](https://news.ycombinator.com/item?id=18370446)

</comment><comment><USER3> Imagine being _against_ sharing knowledge and advancing human progress.

<comment><USER4> The counter argument is that someone has to finance creation, review and distribution of knowledge.

Of course Elsevier doesn't pay authors of papers, doesn't pay reviewers (but pays editors who coordinate) has to pay only little (especially compared to days of print magazines) for distribution.

<comment><USER5> Which means its not a counter argument.

<comment><USER6> Exactly, it's a talking point and I wish people would stop propagating it.

</comment></comment></comment></comment><comment><USER7> It's a bit complicated case and I wouldn't really blame the court. They were asked to rule on a copyright violation, and copyright despite its bad rep has some good reason to exist. The problem is that companies such as Elsevier have found a way to abuse the system by gaming 3-4 things at once: public universities, research grants, citation/research reputation, and copyright. They are not really s monopoly and it's difficult to blame them for a specific case of a specific journal being owned by them. It's more the overall picture that's broken and abusive, and that's probably beyond the remit of such a court to simply decide. The law applies for everyone, even the big abusers.

<comment><USER8> Ironically, the creation of monopolies over individual publications is the express purpose of copyright.

That is, of course, antropomorphising copyright in a common figure of speech. It would be much more logical to say that humans are subjective here, thus to appear in subject position of the sentence. The _officers of_ the law instrumentalize the law. "the law" is objective only in a figurative sense, but it is a type of procedure. The courts have a good reason to lawfully observe the intent and purpose of the legislator. The legislature had a good reason to law copyright. That's what I think you said. But there is no good reason for legislature to uphold the law.

Meanhile, Elsevier has failed tremendously at protecting the IP. If that constitutes breach of contract, the contract may be suspended.

This would be circular reasoning, if the court is supposed to offer such protection. There is hope they will continue to fail.

But there is no hope that a state who likewise paywalls public documents like certain laws and statuts could see its conflict of interest.

\---

To be derisive: It is ironic that an ex-sovjet country citizen would fight against centralized pooling of resources. Sovjets could not make a five year plan work, but the free market can handle a 70-year plan? Give me a break.

</comment></comment><comment><USER9> I'd expect Elsevier to sue them for commandeering their domain name like this. Blocking elsevier.com is one thing (possibly actionable in itself), but taking them to a different site with its own political agenda is a much bigger problem. What if they were hijacking a political party's site, or a government site, or any number of other scenarios? Even if they're up-front about the hijacking, they're still effectively taking control of something that doesn't belong to them, regardless of how one might feel about what Elsevier does.

<comment><USER10> > they're still effectively taking control of something that doesn't belong to > them

You mean like Elsevier is taking control of something (sci-hub.se) that doesn't belong to them?

<comment><USER11> They are not. They are compelling an ISP to block a site (not redirect it) by using the courts.

</comment></comment></comment><comment><USER12> This cannot come soon enough: [https://en.wikipedia.org/wiki/Plan_S](https://en.wikipedia.org/wiki/Plan_S)

Are there similar initiatives in US?</comment>