Python Environment - <AUTHOR> https://xkcd.com/1987/ <comment><USER2> Man it's frustrating to see this comic and read the comments here, because it's all so true. Python, in its noble quest for backwards compatibility, has accumulated so many different ways of packaging, distributing and installing libraries and apps that it's rivaling Google's chat apps.

Pipenv is the most promising solution _today_ but is still very, very new. It's modeled after yarn and has been officially blessed as "The One True Way" of installing stuff by the Python documentation. It has a way to go still to be as good as yarn (especially in terms of speed). The Python ecosystem has never had proper declarative packages like package.json (setup.cfg can be used to have fully declarative package metadata, but I seem to be the only one using it that way), which is a problem for package managers.

To those suggesting it, Docker is great but you're still dealing with a package manager inside Docker, so that's a moot point. It avoids the need for virtualenv, kind of, but so does pipenv and it does so more reliably and reproducibly (pipenv implements lockfiles).

<comment><USER3> Pipenv solves a very real problem, but it has a lot of problems of its own:

\- It's very slow: re-locking after updating 1 dependency often takes me ~1 minute.

\- It has lots of bugs. To name a few in 11.6.9: clobbers comments in the Pipfile, inconsistently includes dependencies for other build environments in Pipfile.lock, stores the wrong index in Pipfile.lock for packages not on PyPI.

\- They release multiple times per day, often breaking things in patch releases.

\- Kenneth Reitz is quite unpleasant to deal with in GitHub issues, which I often have to because of the previous 2 issues.

From what I've heard, Pipenv "has been officially blessed" only insofar as its maintainer got commit access to PyPA's documentation and inserted a recommendation.

<comment><USER4> I apologize for not meeting perfect standards of mood at all times. I have bipolar disorder, for what it's worth, and working on a packaging tool is very stress-inducing.

<comment><USER5> It's not easy to develop for large communities, and even tougher to speak frankly about oneself.

Keep up the good work.

</comment></comment></comment></comment><comment><USER6> Python environment headaches have been largely solved for me thanks to Miniconda[1]. Not only do the environments isolate dependencies, they can easily use different versions of Python, and can include arbitrary binary packages too. It helps that for my work in biology an extensive number of packages are available from the bioconda[2] channel (with many non-bio packages from conda-forge[3]). Environments can be described via environment files, allowing them to be transferred to collaborators, managed with source control, or included with publications to support reproducible science. If you like virtualenvs, you may want to give Miniconda a try. One current limitation is that environment files cannot specify a source channel for specific packages--they're installed from channels based on the global channel precedence.

1\. [https://conda.io/miniconda.html](https://conda.io/miniconda.html)

2\. [https://bioconda.github.io](https://bioconda.github.io)

3\. [https://conda-forge.org](https://conda-forge.org)

<comment><USER7> I used Conda recently and it was OK, but it's annoying that it can't install stuff directly from PyPI. Unless you're lucky, you still have to use Pip inside the Conda environment to install some packages.

<comment><USER8> A sparkle of hope is that the conda people recently announced in a github ticket that this would be supported as a first class citizen soon.

</comment></comment></comment><comment><USER9> With 8 comments so far, I count seven solutions presented.

<comment><USER10> [https://xkcd.com/927/](https://xkcd.com/927/)

<comment><USER11> The alt-text is especially funny, now that we're in the world of USB-C and Thunderbolt 3, etc...

Dongles for days.

</comment></comment></comment><comment><USER12> Honestly, Python on OSX is the most confusing of all.

The OS comes with a python runtime, which is different from the runtime you can download from python.org.

You can then also install it from Homebrew or from MacPorts.

I'm probably even missing something.

<comment><USER13> Should I set up this project with conda, miniconda, virtualenv, docker, some combination of the above...? Fuck it, I'll just use R.

<comment><USER14> You can install R and some commonly used R packages with:

conda install r-essentials

</comment></comment></comment><comment><USER15> Still missing from the picture: pipenv, virtualenv, virtualenvwrapper, pyenv

<comment><USER16> I think the comic should be more aptly be titled "Life before pipenv".

Pipenv is the first (popular) sane tool to make Python accessible to programmers coming from other languages. Sure you can also just use bare virtualenv, but then you have to figure out how it works together with everything displayed in the picture.

<comment><USER17> Not to be glib, but your comment ironically reminds me of this: [https://xkcd.com/927/](https://xkcd.com/927/)

No amount of adding things to the Python comic is going to simplify it.

<comment><USER18> I think the intent here is to convince adherents of other tools to switch to pipenv. Having used most of the solutions in this thread, pipenv has been the simplest and the one that "just works" most often.

</comment></comment></comment></comment><comment><USER19> It's funny because within the comment section there are already 2 different opinions on why this is not funny because $xyz is what every sane python dev should use.

</comment><comment><USER20> There was a time where I would have strongly related to this. Thankfully, now I've started using pipenv whenever possible and it basically just works(TM).

I hope it becomes the standard going forward.

<comment><USER21> pipenv doesn't solve any problems well, especially if you require multiple versions of Python, which is _always_ a problem if you're developing libraries. You still need something like pyenv to manage multiple versions of Python.

If you're using pyenv, it's easy to do virtualenv with the pyenv-virtualenv plugin, at which point you don't need Pipenv because it doesn't solve anything (except locking, see blow) that you can't do with requirements files. Furthermore, if you're testing under multiple versions of Python, you'd use tox to manage your test environments anyway.

_Further_ furthermore, they authors recommend _against_ use pipenv to manage dependencies for anything but development, so it's on you to have a copy of runtime dependencies isolated from Pipfile. And since you have to put your runtime requirements in setup.py anyway, there was never any way around the issue of duplicating requirements to begin with.

The one thing Pipenv does that pip and requirements files can't is lock dependencies down the entire tree... except it's abominably slow at that because it has to download dependencies and walk the entire tree. There's a debate ongoing about using pip's cache to solve the problem but there's no end in sight.

If you're really sensitive to having the entire dependency tree frozen to exact versions of you requirements, just `pip freeze` them occasionally. It's way less hassle.

Packaging in Python is far better than it was a few years ago. There's still a lot to improve but pipenv shouldn't be part of the solution.

<comment><USER22> > _Further_ furthermore, they authors recommend _against_ use pipenv to manage > dependencies for anything but development, so it's on you to have a copy of > runtime dependencies isolated from Pipfile.

I think the use-case is slightly different than that.

Pipenv is a tool that enables reproducible builds for python _app_ development and deployment. For example, many web apps, aren't going to be packaged up using setuptools, they are just going to be deployed somewhere (possibly containerized first). And with pipenv you can avoid the need to vendor all your dependancies to ensure reproducible builds.

But its not a tool that solves problems for _library_ packaging and distribution (on say pypi). You still have to use setup.py for that, and shouldn't be pinning your dependancies on exact package versions. But you can still use pipenv to manage your dev environment in those cases, and for reproducible dev environments.

</comment></comment></comment><comment><USER23> "This is not a place of honor"

[https://news.ycombinator.com/item?id=11851871](https://news.ycombinator.com/item?id=11851871) [https://archive.is/MVVU1](https://archive.is/MVVU1)

Explanation edit:

Image alt text is _" The Python environmental protection agency wants to seal it in a cement chamber, with pictoral messages to future civilizations warning them about the danger of using sudo to install random Python packages."_

<comment><USER24> Care to explain a little? The link in the discussion is a broken error page.

<comment><USER25> "This place is not a place of honor" is the first line of the most basic signage created by a Sandia National Lab project aiming to keep future explorers/archaeologists/looters/settlers unharmed by a nuclear waste dump.

The problem space is very difficult - it'll be something like AD 12000 before the waste is effectively harmless. That's further in the future than all of civilization[1] is behind us. The earliest surviving language specimens are proto-heiroglyphics that are less than 5000 years old.

It's difficult to craft a message that won't be taken like all the myriad curse-promising looter-deterrents guarding e.g. plundered tombs throughout the world. It's especially unconvincing when the hazards we're trying to protect future humans from include things like a hundredfold increased risk of cancer.....after inhabiting the site for twenty years.

It's further difficult to attempt to ensure that the message survives that massive amount of time. The designers came up with a linked system where elements are supposed to reinforce and index each other, with redundancy of information and presentation at multiple levels of complexity, with written and pictographic forms, attempting to avoid overstatement, attempting to ensure that protective structures cannot be usefully scrapped and re-used for new construction, ensure that the communications resist deliberate vandalization, etc.

1: [https://en.wikipedia.org/wiki/History_of_the_world#Rise_of_c...](https://en.wikipedia.org/wiki/History_of_the_world#Rise_of_civilization) claims "Though early 'cities' appeared at Jericho and Catal Huyuk around 6000 BCE,[32] the first civilizations did not emerge until around 3000 BCE in Egypt[33] and Mesopotamia.[34]"

</comment></comment></comment><comment><USER26> To add on to the mess, Poetry seems like a strong contestant for a well- designed Python dependency management solution: [https://github.com/sdispater/poetry](https://github.com/sdispater/poetry)

</comment><comment><USER27> Did they forget site-packages vs dist-packages?

It's so tempting to just apt install everything until it's too late.

<comment><USER28> I forgot about that. That annoys me to no end, and that's purely due to the Debian/Ubuntu package maintainers right?

<comment><USER29> What's wrong with dist-packages?

Sure, it caused a lot of grief for Debian packagers (because the name "site- packages" was hardcoded _everywhere_ ) when it was introduced back in the Python 2.6 era; but I don't think I've ever had to worry about it as a user.

<comment><USER30> Users that are programmers also have to package Python packages. Sometimes in .deb form for Ubuntu too...

It's not just official Debian packages that someone needs to maintain...

</comment></comment></comment></comment><comment><USER31> One thing that amazes me about the modern PHP ecosystem is that when it comes to distributable PHP packages, there is only one package manager (composer) and one central package repo (packagist).

When it comes to binaries it's still a bit of a mess (homebrew? pecl? yum?) but the native PHP code story is clearer than any other language ecosystem I've seen.

</comment><comment><USER32> Am I the only one using Nix (the package manager) for this? It's lovely and works for other languages and binary package management as well.

I encourage people to try it out, interactive usage looks something like `nix- shell -p python36Packages.pyaml -p python36Packages.aiohttp --run "python some-script-with-dependencies.py" `.

</comment><comment><USER33> But why.. every sane programmer uses Python 3 and pip in a virtualenvwrapper environment, cleanly separated for non-pip packages!

<comment><USER34> I've never understood the purpose of virtualenvwrapper. I only use three commands for administering virtual environments: "virtualenv -p python3 ~/envs/foo" to make one, ". ~/envs/foo/activate" to activate it, and "rm -r ~/envs/foo" to delete it. That is really not something that needs further simplification. What am I missing?

<comment><USER26> Virtualenvwrapper (I hate the name, and as a fish user I actually use virtualfish instead) has as the main advantage in keeping all virtualenvs in one place (by default ~/.virtualenvs), so you don't have to worry about the actual location of your virtualenv. This allows for a number of useful features like activating, listing and deleting available environments with autocomplete, and creating a virtualenv is also quite simplified.

But yes, if you're making sure that you're always careful about passing the location of your environments, you don't really need it.

<comment><USER35> It always felt like virtualenvwrapper was moving things in the wrong direction. Why should the virtualenv be located in the home directory, instead of in the project directory? The whole point of virtualenv is so that you don't have environment dependencies, and each project can have its own environment.

<comment><USER26> I'm not sure how the location of the environment affects dependencies; the environment is isolated regardless of where it is located. Also, the virtualenv location doesn't have to be in the home directory; it can be anywhere your user has access to, the home is simply most convenient.

<comment><USER35> Using a common location means that unique names must be maintained across multiple projects, which is a recipe for disaster.

<comment><USER26> Most definitely in automated setups, i.e. in production. (I personally never depend on virtualenvs in production, preferring to have a fully isolated environment either via Docker or even better a dedicated VM.)

But in development, where you manually switch between environments, a centralised setup is great. You don't have to worry about gitignoring the virtualenv directory, or maintaining paths in general -- a common problem with virtualenv in your code directory is that IDEs and linters and similar tools tend to just cut through and parse everything, unless explicitly prevented. With virtualfish/virtualenvwrapper, the process is simply `workon {envname}` and you have everything in place.

</comment></comment></comment></comment></comment></comment></comment><comment><USER36> I guess what Python needs to do is to crown one solution as the official, and then start imposing on PyPA packages to convert before a deadline or exclude. Then they can move the non-compliant packages to a legacy archive, and build on the one solution that the community chose, say in a poll. Granted I've only ever interacted pip and virtualenv and though it was simple; but looking at this, things don't have to be this complex.

<comment><USER37> The heart of the problem is that different people are doing different things with Python, and nobody wants to pay cognitive load for what they don't want to use.

The packagers and package tool makers of the world inherit ALL of the technical debt from ALL of the upstream software devs. They're either the liver or the colon. An upstream dev decided to not document which compiler they use during dev time? That's now your problem. A compiler maker (GNU, MSFT, etc.) decides to change how they distribute the C runtime? Congrats, now it's your packaging system's job to know how to differentiate between Windows 7 and Windows 10 running particular versions of Visual Studio.

Nobody wants a "single simple unified solution" for packaging more than the packaging tool makers and distro vendors. Believe me. But it's not going to happen until software devs become take more responsibility for what they build upstream, and how they build it.

<comment><USER38> Pypi and Python devs themselves could start doing the curation. The package just isn't accepted into the repo if it doesn't follow X, Y, Z guidelines.

Python is big and important enough that it needs these kinds of quality assurances. Punting on them is as bad as compromising on language design decisions.

</comment></comment></comment><comment><USER39> This doesn't reflect the reality of what devs should be using: virtualenv or docker.

<comment><USER40> Why does the official python documentation recommend something else then?

[https://packaging.python.org/guides/tool- recommendations/#ap...](https://packaging.python.org/guides/tool- recommendations/#application-dependency-management)

<comment><USER41> This is what I learned. This is what I use. It's nice to have more options though. Unfortunately that makes it all the more confusing.

</comment></comment></comment><comment><USER42> Maybe I just never do anything complicated with Python, but I never have any the problems captured in this comic.

I install all my Python modules into the system's Python _using my OS 's package manager_. I have both Python 2 and Python 3 installed but beyond having the same module installed in each of those locations, I have never found the need for multiple versions of the same module installed at the same time.

On the rare occasion where my OS doesn't provide a package I need, I use pip install --user. If it turns out to be something I'll want for the long term, I just knock together a quick package that I can install/uninstall using standard OS packaging tools.

<comment><USER30> > _I install all my Python modules into the system 's Python using my OS's > package manager._

If that's the case, then it's as you said: you "just never do anything complicated with Python".

<comment><USER36> Most of the time the language package manager for a very popular language is an overkill. You can get all the packages you need for web development, AI or statistical/mathematical stuff in python from say debian packages and build arbitrarily complex applications. And you have the additional benefit of being able to easily package your application for many distributions that package stable versions of popular libraries for languages like python, perl, ruby, etc. Another additional benefit is that because most of the time you fetch packages precompiled, you don't need to run probably insecure compilations on your system (many popular packages for Python for example require you to compile C extensions). And the trade-off is quite palatable: you use the APIs hygenically, don't do things like leftpad, and sometimes forego some cutting edge features (and many dynamic languages enable you to easily backport them without modifying the package itself most of the time).

<comment><USER43> not really the case if you work in a team or deploy your application.

<comment><USER36> Unless you streamline the development and deployment environments, that is. You can just work in a VM, a chroot/jail, or probably use Docker (I haven't ever used it tho, thus not sure).

<comment><USER43> soner or later you will need to solve the same set of issues that virtualenv and pipenv try to solve.

<comment><USER36> Then I can reach for virtualenv and pip. I did not mean that package distribution and management in itself is an overkill, but that many types of projects just don't need these tools. And if one has to use these tools for all projects and from the get-go, then that means the library ecsosystem is unhygienic and/or the devs are not really responsible on how they use the APIs.

</comment></comment></comment></comment></comment></comment></comment><comment><USER44> One of the reasons I try to use Docker for everything is because it's a cross- language solution. It does add some complexity and has its drawbacks, but for me, it's worth it. I'd rather have one global dependency (Docker) than several (virtualenv for Python, nvm for Node, rbenv for Ruby, etc.), which all have their own idiosyncrasies.

I also like using Docker because it handles non-language resources like databases. Even installing one version of Postgres locally was painful. It's hard to imagine trying to deal with multiple instances and versions on the same machine (without something like Docker or Vagrant) if two projects use 9.x, and another uses 10.x.

<comment><USER28> I use the stock Dockerhub python container with a requirements.txt. Similar to my Ruby code. It's a lot nicer than virtual envs for deployment.

It's still difficult to debug stuff inside your container (unless you do a docker exec and then you're limited to the tools you installed) so it's useful to have the same environment outside of it. `pip3 --user install` has been my friend; and you can create new users instead of full virtulenvs if you really need to.

Still, my python environment isn't as screwed up as this comic. System python is always only controlled by the OS package manager. My own stuff is installed with --user and things I need to deploy somewhere have a Dockerfile or I have a Jenkins workflow that create rpms/debs with fpm and push them to my repo and sign them.

</comment></comment><comment><USER45> Maybe this is obvious, but to informally install executables supplied by python packages, use a separate virtualenv for each one and place a symlink to the venv/bin/theexecutable in a location like ~/bin that you have on your $PATH.

<comment><USER7> pipsi is great for that, it takes care of creating the virtualenv, etc.

</comment></comment><comment><USER46> It's almost - but not quite - this bad when using a "simple" local development environment. As others have said it's not nearly this bad when you're deploying to sane infrastructure, be it containerized or not.

</comment><comment><USER47> One more thing to add to the mess: PyBOMBS [1] A while back GNU Radio went and reinvented the whole package manager thing on their own. Since then I constantly have problems integrating anything GNU Radio-related with the rest of the Python ecosystem. Random Python 2 modules being imported by Python 3? You bet it's some random gr module in the PYTHONPATH somewhere.

[1] [https://www.gnuradio.org/blog/pybombs-the-what-the-how- and-t...](https://www.gnuradio.org/blog/pybombs-the-what-the-how-and-the-why/)

</comment><comment><USER29> Do edges in this graph mean something, or were they just added randomly?

<comment><USER48> Symlinks.

</comment></comment><comment><USER49> It's funny because it's true

</comment><comment><USER50> What's wrong with virtualenv/venv and pip?

<comment><USER51> Those seem great, but it doesn't help much if you haven't been using them from the start and now find yourself with a very messy environment.

<comment><USER50> People should teach proper computer hygiene in school ;-)

</comment></comment></comment><comment><USER52> This is so true and so sad that it's actually funny!

This issue is one of the things that drove me to utilize a dedicated VPS for each project. This keeps environments clean, ensures project/client isolation and allows me to utilize the exact resources needed, as opposed to worrying about the local machine.

Once done or if the prod environment changes, I can blow away the VPS and rebuild as needed.

</comment><comment><USER53> I'm using pyvenv even though it has started warning me I should move. I won't change from it for exactly the reasons in this comic.

When I do a new OS install I will try pipenv again...but it dind't work well for me the first time due to conflicting with something I had installed outside of a virtualenv!

</comment><comment><USER54> No docker containers?

<comment><USER55> That would just make the chart recursive.

</comment></comment><comment><USER56> The 'framework build and venv on osx' thing ruined my night yesterday so this post had great timing.

Seriously, starting from a clean osx, how do you install python? I always liked using vex for venv management. But I would also like to have anaconda for some tasks..

</comment><comment><USER57> I love this comic.

I was just going through an old server of mine. Python 2 and Python 3 dependencies, installed over years, in a bit of a mess.

We may have virtualenv and the like today, but a lot of old stuff was never setup to use it. :p

</comment><comment><USER58> Guido today:

[https://mobile.twitter.com/gvanrossum/status/991083246220853...](https://mobile.twitter.com/gvanrossum/status/991083246220853248)

</comment><comment><USER59> Try installing pipsi such that it uses python3 to install simple scripts like httpie or youtube-dl and you'll see how big of a mess it really is.

</comment><comment><USER60> I use pipenv and couldn't be happier. It's dead simple and it works. It is a bit slow. The problem presented in this xkcd has been fixed.

</comment><comment><USER61> I think people are missing that he seems to be aware this is a poor way of doing things...

</comment><comment><USER62> sudo pip3 install everything

</comment><comment><USER63> Need add pypy, cython, etc.

</comment><comment><USER64> In an earlier xkcd blag post, Randall talked about messing up his Linux box so badly that someone trying to help him fix it said "your computer looks like a redshirt after a transporter accident". That analogy has stuck with me ever since and I use it most often to describe Python installations.

<comment><USER29> [https://blog.xkcd.com/2009/04/03/what-happened-to-my- laptop/](https://blog.xkcd.com/2009/04/03/what-happened-to-my-laptop/)

</comment></comment><comment><USER30> LOL, haven't check if this XKCD was posted today, but it was particularly timely as I've spend the day debugging a Python + Jenkins + autotools + setuptools + RPM spec (mock etc) setup...

</comment><comment><USER65> Anaconda. That's all you need to know.

</comment><comment><USER18> This thread is an instance of [https://xkcd.com/927/](https://xkcd.com/927/)

</comment><comment><USER66> All jokes are only funny when they are resembling to the truth but they are not when it's far from it. So this maybe funny five years ago. But it doesn't any more since Docker[1].

docker pull; docker run, you are golden. Even if you are going to customize the official image, it's much less cumbersome than that xkcd cartoon.

[1]: [https://hub.docker.com/_/python/](https://hub.docker.com/_/python/)

<comment><USER7> Sorry, can't run Docker on the Windows Server 2012 machines provided by the client. Or on the CentOS 6 machines provided by the other.

<comment><USER66> Not sure what your specific situation is, afaik it's possible. So your problem might not be pertaining to Docker Python.

[https://www.liquidweb.com/kb/how-to-install-docker-on- centos...](https://www.liquidweb.com/kb/how-to-install-docker-on-centos-6/)

<comment><USER7> Yes, but you'd have to run a 2.5+ years old - and unsupported - version of Docker (1.7.1).

<comment><USER66> What version of Python you'd be running? And Windows Server 2012 is 5 years old, no? If you are running a five years old OS, perhaps unsuported Docker version 1.7 (released 2015) might not be your only and most import concern right?

<comment><USER7> We are running the latest Python 2 release, compiled from source. Windows Server 2012 will be supported until 2023, and CentOS 6 until 2020.</comment></comment></comment></comment></comment></comment>


'CANDLE' AI Software to Deliver a Decade of Cancer Advances in Just Five Years - <AUTHOR> http://nvidianews.nvidia.com/news/nvidia-teams-with-national-cancer-institute-u-s-department-of-energy-to-create-ai-platform-for-accelerating-cancer-research <comment><USER2> I'm all for any kind of advances in cancer, but if this is focused on deep learning won't the process be kinda black box.

use xyz therapy on abc type patient with edf symptoms...why?...not sure...because the computer said to...

<comment><USER3> Much of medicine is like that. We (doctors) often don't understand exactly how treatments work. And even if we do, it's often that we found that something had an effect then try to explain how later. I don't see how it's any different if the AI pointed us in the direction of the treatment.</comment></comment>


Arrow's Theorem - <AUTHOR> http://plato.stanford.edu/entries/arrows-theorem/

<comment><USER2> Arrow's theorem has to be one of the most overhyped and overplayed theorems in existence. Here, for instance, are three major things what it doesn't say: 1) That all voting systems are equivalent in any sort of meaningful sense 2) That the current voting system you are using is not awful 3) That a perfect class of voting system doesn't exist if you are willing to accept that rock-paper- scissors situations can happen among people's preferences.

I'm not being hyperbolic here. Number 1 and 2 are how people quickly use vague citations to Arrow's Theorem to shut down talk about voting reform even when the status quo consists of provably terrible systems like plurality voting.

Number 3 is the true result that if you relax the rather overly-strongly defined IIA criteria with a much more-reasonable criteria -- that the winner must remain among the top rock-paper-scissors loop of the voters -- then Arrow's theorem simply doesn't apply. This is well known: that "top loop" is the Smith Set and every Condorcet method of voting satisfies it.

There's also another interesting result: if voters have merely "single-peaked preferences", such as opinions about where to set a volume knob, then Arrow's theorem also doesn't apply since there will be no rock-paper-scissors set of equally fair options.

<comment> aaron-lebo Number 3 is a valid criticism, but criticizing the theorem on the basis of people using it to support the status quo is like criticizing water because some people drown.

His theorem says nothing about the way things should be, but rather about how things are. I mentioned Poundstone's _Gaming the Vote_ in another post, but that book in particular discusses the implications of the theorem and analyzes better alternatives to current systems.

<comment><USER3> The problem is people assume it means more than it does. It's like someone using Godel's incompleteness theorem to argue that math is pointless.

</comment></comment></comment><comment><USER4> "Arrow's theorem says there are no such procedures whatsoever—none, anyway, that satisfy certain apparently quite reasonable assumptions concerning the autonomy of the people and the rationality of their preferences."

The trick there is the "apparently quite reasonable" part. Far too many people take it as a given that those assumptions are sacred, which leads to a form of worship about this theorem. The IIAC in particular is problematic, and if that is relaxed, it's not quite so certain anymore that a "perfect" vote-counting method is impossible.

<comment><USER5> I'm curious which of the assumptions you think are unreasonable.

<comment><USER4> If you have a Smith Set, you don't want to just arbitrarily remove one of its candidate to resolve the "tie".

Similarly, if an election has a Condorcet Winner, and _adding_ a candidate creates a Smith Set (thus potentially violating IIA if a certain candidate is chosen in a "tiebreaker"), this is not necessarily a bad thing.

If that happens it means that people always legitimately had those views, and were not able to properly express their views by choosing among the more limited number of candidates.

<comment><USER5> Regarding your second sentence, who says that would be a bad thing? I'm a little confused about the situation you're describing. Most analysis of voting systems I've seen isn't concerned with the fact that valid candidates may be left off the ballot. That's obviously an important consideration in real elections, and if there are primary elections the choice of voting system there obviously matters, but in the final election it doesn't seem particularly relevant.

</comment></comment></comment></comment><comment><USER6> This theorem only applies to _ordinal_ voting systems. Cardinal voting algorithms like score and approval voting escape this predicament.

[http://rangevoting.org/ArrowThm.html](http://rangevoting.org/ArrowThm.html)

<comment><USER4> Cardinal voting algorithms are only superior if people vote sincerely. Unfortunately, cardinal voting methods offer significant incentives to vote insincerely. Condorcet voting does not.

I always thought an interesting vote gathering technique would be something that actually interviews/polls the voter. Ask them for their ordinal ranking. The voter would know that if a Condorcet Winner exists, then that candidate would be the winner, but also ask for various cardinal ranking numbers, along with their approval line. That way there would still be the incentive to vote sincerely, while the cardinal information could be used to break the Smith Set loops. (The only downside here is that some people claim that the presence of cardinal tiebreakers creates an incentive for people to vote insincerely to _create_ a Smith Set...)

Alternatively, if a Smith Set occurs, schedule a second round of voting for only those candidates (like a Louisiana Runoff, but Condorcet style), so that voters could better educate themselves on the remaining candidates.

<comment><USER2> I will note that a Smith Set Condorcet loop can occur even among 100% rational, wholly informed voters. It's not an aberration due to irrationality, it's just a fact of politics not being one-dimensional (quite literally -- if voters rank candidates based on whomever is closest to them in n-dimensional space, then for any n > 1 you can have a cycle).

You can draw your own example of this if you like. Draw an equilateral triangle and its altitudes, creating 6 regions inside. Put some dots in the 6 regions in the middle (voters), but leave every other region blank. Now, declare the vertices to be candidates (a 3-way race). If you compare any two of them, and have voters vote for whomever they're closest to (based on which side of the altitude they fall on), you'll end up with a rock-paper-scissors situation.

<comment><USER4> It's interesting and it brings up the question of how a vote should actually be interpreted if there is that kind of legitimate Smith Set. The only options I can think of are either factoring in intensity of preference (see above), or some kind of power-sharing agreement.

Also interesting to me is that I believe the IIAC can actually _uncover_ that kind of completely-legitimate cycle. Meaning, while introducing an additional candidate can never lead you from one Condorcet Winner to another, it can lead you from a Condorcet Winner to a Smith Set. If people change their preferences in that manner, then it means that they have found better choices for them. In other words, if IIAC happens, it could be an indication that the original set of candidates wasn't really appropriate for the voters in the first place.

Thinking about both at the same time is uncomfortable, because if Smith Sets aren't an indication of voter-population confusion that can be resolved with more education and communication, then it basically means that the more choice you offer, the less likely there will be one candidate deserving of victory. If that's true, then making the arbitrary choice (among most likely candidates) might actually be the best outcome. Not exactly democratic though.

<comment><USER5> I think nondeterminism is fairly reasonable in a cyclical Smith set. In fact, I think nondeterminism in voting systems has a worse reputation than it deserves.

</comment></comment></comment></comment></comment><comment><USER7> Is there a good data structure to represent Ordinal Data? I frequently see pairwise count matrices used [1], but they don't seem to completely capture all of the information. For example, the number of times a choice was first, second, third, or last such as would be necessary for the Borda method [2].

[1] [http://en.wikipedia.org/wiki/Condorcet_method#Pairwise_count...](http://en.wikipedia.org/wiki/Condorcet_method#Pairwise_counting_and_matrices) [2] [http://en.wikipedia.org/wiki/Borda_count#Voting_and_counting](http://en.wikipedia.org/wiki/Borda_count#Voting_and_counting)

<comment><USER8> Well, Condorcet and Borda do fundamentally different things with people's preferences.

There's no real way to simplify it beyond "here's a set containing the rank order of every voter" if you don't know in advance what election method will be used. In fact, you might argue that the rank order is insufficient, and you also need to know whether the voter would approve of each option in an approval vote, or 0-10 rankings for range voting, or whatever.

Condorcet cares most of all about people's preferences between pairs of options, so that's why you'd summarize it as a matrix made out of those pairwise preferences. Borda cares most of all how many times something is "first place", "second place", and so on, and cares nothing about the pairwise rankings; Borda advocates claim that pairwise rankings will just confuse the issue.

(Opinion: I happen to believe that Borda is garbage for anything where politics is involved. It might be okay for the kind of contests where it's in use, like the baseball MVP or Eurovision, except those are probably secretly political too.)

</comment></comment><comment><USER9> Interestingly, the theorem is false if the number of voters is infinite [http://blog.jyotirmoy.net/2013/10/arrows-impossibility- theor...](http://blog.jyotirmoy.net/2013/10/arrows-impossibility-theorem-is- false.html)

</comment><comment> aaron-lebo William Poundstone's _Gaming the Vote_ is a great read that covers this and related topics.

</comment><comment><USER10> > Arrow's theorem says there are no such procedures whatsoever—none, anyway, > that satisfy certain apparently quite reasonable assumptions concerning the > autonomy of the people and the rationality of their preferences

The article alludes to one very important corollary, though IMHO it doesn't explain it very well: Arrow's theroem is like the CAP theorem - it seems to be a much stronger restriction than it is. In other words, if you're willing to make just a few very straightforward assumptions (ie, compromises), you _can_ create a system that appears to "satisfy... rationality of their preferences".

Nobel laureate Amartya Sen[0] has demonstrated that if you assume that there are certain rankings of preferences that are rare enough to be ignored altogether, then instant-runoff voting[1] will in fact satisfy all the constraints of the Impossibility Theorem[2].

Let's use the 2000 US Presidential election as an example. There were three main candidates in Florida (Bush, Gore, Nader), for a total of 6 rankings. While Nader played a spoiler role, Nader and Gore shared more of a platform than Nader and Bush did. So it is very reasonable to assume that there are few people who would have voted for Nader over Bush, but Bush over Gore. This reasoning allows us to eliminate a number of those 6 rankings - and more importantly, enough rankings that the criteria of the Impossibility Theorem are likely to hold.

[0] [https://en.wikipedia.org/wiki/Amartya_Sen](https://en.wikipedia.org/wiki/Amartya_Sen)

[1] [https://en.wikipedia.org/wiki/Instant- runoff_voting](https://en.wikipedia.org/wiki/Instant-runoff_voting)

[2] The article does mention Sen, and alludes to this finding, but I don't think it explains it very clearly.

<comment><USER4> This is probably just being pedantic, but the Nader->Bush->Gore ranking was commonly preferred by Nader supporters, not because they preferred Bush's policies to Gore's, but because they thought it would teach society the error of their ways in the long run or something. Also because they hated Nader being labeled a spoiler candidate, so it was probably something of a spiteful response.

</comment></comment><comment><USER11> A fascinating result. I am interested in understanding how this can apply to decisions about consuming news.

Given some objective, like "stay informed" or "make the best possible choice when I vote", and given certain problems like "news is corrupted by advertising" or "news is dumbed down", is it at all plausible to achieve any of those goals in 1 hour of news consumption each day?

A naive application of this theorem suggests not... "none, anyway, that satisfy certain apparently quite reasonable assumptions concerning the autonomy of the people and the rationality of their preferences."

In other words, might it be the case that there is little intrinsic value in consuming the news piecemeal, in the way that most of us do?

<comment><USER12> NOPE.

It just means that those " _apparently_ quite reasonable assumptions" weren't reasonable after all and must be relaxed a bit according to a precise definition.

You just took a mathematical theorem and went into a completely unrelated tangent. It's as if someone says there's no point in keeping development schedule because temporal order is relative to the observer.

Please don't do that.

<comment><USER11> "Say there are some alternatives to choose among. They could be policies, public projects, candidates in an election, distributions of income and labour requirements among the members of a society, or just about anything else. There are some people whose preferences will inform this choice, and the question is: which procedures are there for deriving, from what is known or can be found out about their preferences, a collective or "social" ordering of the alternatives from better to worse?"

Keep reading. This one is more than just math.

</comment></comment></comment><comment><USER13> Always interesting, but given the median voter theorem is I'm not sure it's a problem in practice.

[1][http://en.wikipedia.org/wiki/Median_voter_theorem](http://en.wikipedia.org/wiki/Median_voter_theorem)

<comment><USER14> That only applies for one dimensional politics, and, if plurality voting is used, a two party system.</comment></comment>


Paternity Leave Was Crucial After the Birth of My Child - <AUTHOR> https://parenting.nytimes.com/work-money/alexis-ohanian-paternity-leave <comment><USER2> I'm quite fond of Canada's system for parental leave[0]. The person giving birth gets 15 weeks off with 55% of their pay covered by their employment insurance (EI), and the couple get to share, however they decide to split it, either 40 weeks (at 55% pay) or 69 weeks (at 33% pay). No cost to the employer, but they have to ensure there's the same job waiting when the person gets back. It also covers adoptions.

It probably is hard as an employer but every business is playing on the same field. It's not like "Well, I won't participate in that because my competition would have an advantage over me". It's not optional and it's illegal to fire someone over it. Every business with employees has to accept this will happen eventually. The only optional choice (which my employer does) is to cover the other 45% of the pay for a certain number of weeks.

Interestingly, often you hear about people getting in at businesses because "they had a temp opening because of a mat-leave!". This works a lot like an internship, where the employer gets to test out a potential employee while not committing to them since the person on leave will be back on a specific date. Great way to get experience and networking for young people.

My teammate, for example, left a few weeks ago when his child was born. He'll be back in January. Sucks for our team to work without him that long, but it's nice to know that if I decide to have kids that option will be there for me too.

[0][https://www.canada.ca/en/services/benefits/ei/ei- maternity-p...](https://www.canada.ca/en/services/benefits/ei/ei-maternity- parental.html)

<comment><USER3> > person giving birth

You mean the "mother"?

<comment><USER4> Folks give birth without becoming a mother and one can be a mother without giving birth.

Surrogates exist, for example. Folks give infants up for adoption. In this case, you can wind up with a mother who didn't birth the child and a person who gave birth, yet didn't actually become a mother except in a loose sense of the word.

On the sadder end, stillbirths still happen and society doesn't really consider this person to be a mother. (I'm personally fine with whatever the parents choose to be called).

</comment></comment></comment><comment><USER5> There are many positive things about living in the US, but having a child here absolutely blew my mind. Not only is the act itself incredibly expensive (I'll spare everyone yet another health insurance rant...) but leave for both mother and father are woeful. Did you know there isn't even a federal requirement for maternity leave at all? In some states women get to claim disability for six weeks and that's it.

Anyway, to get a little more on-topic: lots of us tech company employees are incredibly blessed when it comes to parental leave. Take. Every. Day. Not only is it practically a physical requirement (I don't care what you think, if you're heading into the office with a two week old baby at home you're not getting enough sleep to do anything productive) it's also an amazing opportunity to bond with your child. Your coworkers might moan or judge you. If they do, they're assholes. And who cares, you will move jobs in a few years anyway. You don't owe your employer anything. Take the leave.

<comment><USER6> I feel like you are completely ignoring the FMLA. It mandates 12 weeks unpaid leave within the first year of childbirth.

<comment><USER5> Unpaid is a _huge_ qualifier. A lot of people simply cannot get by taking three months off with no pay.

<comment><USER7> Probably a lot of small businesses can't get by with paying people who aren't working.

<comment><USER8> That would be why in many other systems a public entity picks up the tab, not the employer.

<comment><USER9> There is no public entity, it is the taxpayer. Just say it so, "that's why you pick the tab".

<comment><USER10> and so what? the tax payer pays for a lot of things that it makes sense for the tax payer to pay for. at least with health insurance you can bemoan paying for other people's irresponsible lifestyle but with maternity leave almost everyone withdraws from the trust in the same way?

<comment><USER9> Presenting facts: reality in my country tells that universal maternity and paternity leaves are the most abused systems and tax payers are not happy with this. The low income people have a huge number of children (2 sisters with 33 kids in total were most discussed) just to live on taxpayers money, they never worked between childbirths. Also there are so many people pay huge taxes and never qualify to get anything in return (have no kids).

Many people here believe that caring for your kids should be the parent's responsibility, not anybody else's.

<comment><USER10> >Presenting facts: reality in my country tells that universal maternity and paternity leaves are the most abused systems and tax payers are not happy with this.

googling "canada paternity maternity leave abuse" gets no matching hits. show me

>The low income people have a huge number of children (2 sisters with 33 kids in total were most discussed) just to live on taxpayers money, they never worked between childbirths.

average number of children in canada in 2011 was less than 2.

[https://www150.statcan.gc.ca/n1/pub/11-630-x/11-630-x2014002...](https://www150.statcan.gc.ca/n1/pub/11-630-x/11-630-x2014002-eng.htm)

how many standard deviations away from that mean is ~16 children? so you're talking about decrying a social policy that overwhelmingly improves outcomes for women, children, and communities

[https://www.milbank.org/wp- content/uploads/mq/volume-96/sept...](https://www.milbank.org/wp- content/uploads/mq/volume-96/september-2018/NANDI_et_al-2018-The_Milbank_Quarterly.pdf)

because some poor person somewhere once had a bunch of kids.

these are distorted facts (or what we in /my/ country, like to call fake news).

<comment><USER9> Well, here there are 2 categories of people (with exceptions, of course): people that have 1-2 kids and take a very short leave and people that have 5-15 kids just to live on the checks they get for the kids. You don't have that yet because we started a long time ago, but it does not mean you will not repeat the history, again and again. So yes, you are right, it works now in Canada, we were there 30-40 years ago. Look where we are today before answering.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> >> 16 weeks of paid paternity leave - which was the policy at Reddit

I joined a company a couple months ago but prior to accepting, I asked the CEO what their paternity policy was because I disclosed we are expecting in December. He responded that they have a "wonderful" policy so I accepted. After starting, HR provided me with the employee handbook but there was no mention of maternity or paternity leave. I asked where it was and HR stated the company "does not have a maternity or paternity policy" and said my accrued PTO of 1-week by the time December hits should suffice. I just want to jump ship now.

Update: I am in California

<comment><USER5> I don't know what state you're in, but both NY and CA have paid family leave laws on the books that entitle you to at least six weeks off. I don't know the full details, but you should seriously look into it.

And don't write off getting a new job. I started a new job a few months before my child was born, I was told that if I quit my job within the first year then I would have to refund the company for the parental leave I was given so soon in my time with them. I happily accepted that condition.

<comment><USER11> Thank you for the quick reply; good to know others have experienced this. I'm in CA & my wife will be submitting her PFL claim in the coming weeks so I'll be doing the research in parallel with her, probably starting here:

[https://www.edd.ca.gov/Disability/PFL_Fathers.htm](https://www.edd.ca.gov/Disability/PFL_Fathers.htm)

<comment><USER12> Just know the cap is pretty low -- like $1200-ish/week iirc.

Echoing everyone else: a ceo who lies to get someone in the door? That person is going to fuck you (again) at the first available opportunity.

<comment><USER13> The cap is $1,232/week. I just ended my PFL.

</comment></comment></comment></comment></comment><comment><USER14> This still boggles my mind as a Swede, how this is not the norm. Children are people who need the right circumstances, being with both their parents at an early age should definitiely be one of them.

On the flip side, as a single person, I can definitely see how alot of benefits you can claim as a healthy, working career person are tied to having a family with kids. Our taxes subsidize day care, kid sports clubs and many other expensive things that are exclusive to kids. And, as long as you announce it with enough warning, your employer _has_ to grant and handle your paternal leave so a lot of people use it as a way to claim the best weeks for vacation leaving us single people puzzling how to get the most out of summer.

Still, raising children is no cake walk and I would rather that parents have the support they need from the government than the whole situation affecting the children.

<comment><USER15> Fellow Swede, child-haver and boggled-mind-haver. The way I see it it's an extremely cheap investment from the state's point of view - 350 kSEK or so in exchange for two years lower stress levels for 3 citizens (child + parents). It should pay of many times over over the course of the life of those people in lower mental health issues and abscence from the work force.

<comment><USER16> Then also pay for de-stressing people without kids too. Get sports leave, or a walk in the park leave and incentives for running shoes.

</comment></comment></comment><comment><USER17> Maternity leave isn't even required by US law, which is insane.

I'm all for paternity leave (I'm a self-employed father of two so had to create my own). But let's start with moms, or at least a parental bucket that either parent can draw from.

<comment><USER18> What do most American women do after having a kid, quit their job? You can't put a newbord in daycare can you?

<comment><USER5> > You can't put a newbord in daycare can you?

You can. Many daycares take babies from six weeks onwards. I cannot imagine how it must feel as a parent to do that at six weeks, but plenty do.

<comment><USER15> Jesus.

We felt bad when our second kid started daycare at 18 months.

</comment></comment></comment></comment><comment><USER19> My son is turning one this month. My ability to work remotely for clients on a flexible schedule was absolutely crucial to our household's overall happiness and functionality. Truly, I am blessed.

I wish everyone could be able to do the same. Our children and families would be much better off for it.

I realize that it's impossible for everyone to have it, but we should at least aim for that. It would do so much for our society at-large.

<comment><USER20> Personally, I find working from home with young children almost impossible. They are a huge distraction.

<comment><USER21> Yup! Even with a full time caretaker, I can't get much done at home.

<comment><USER13> I go into my office and shut the door. I put my headphones on and put on some music. I work the morning. I prepare lunch for anyone who wants it, help with the kids (we recently had twins), and then head back down for the afternoon. I've set boundaries with the grandparents and my wife has also worked full- time remote in her life so she already gets it. We'll see if the boundaries stick with the kids when they're older, though they may be in daycare before it becomes a problem.

I feel like the GP; truly, I feel blessed.

</comment></comment></comment></comment><comment><USER22> Took off 4 months in July for paternity leave.

I think it helps strengthen the organization because any gaps in information flow become noticeable. The success of complex projects should not depend on a single individual.

I accept that less time at work may put me behind on the career track; and I expect that in the future, there will be a wage gap between parents and non- parents.

</comment><comment><USER23> It is really interesting to see how this is different from country to country. The Wikipedia overview [0] is fascinating!

Of course, as as European, it is mind-boggling how little (none) paid leave parents get in the US. I also like how Spain is now giving fathers the same paternal leave as mothers maternal leave (16 weeks).

I do think that parental leave is a really interesting instrument to enable parents to find a way for a more equal-opportunity take on careers. My wife and I deliberately split our time off 50/50 (7 months + 7 months, all paid leave in DE). Besides spending time with my daughter, which was (and continous to be) a mind-altering experience, this allowed both of our careers to progress similarly. I highly recommend it.

Also there is this more graphical representation at the BBC [1].

[0] - [https://en.wikipedia.org/wiki/Parental_leave#By_country](https://en.wikipedia.org/wiki/Parental_leave#By_country)

[1] - [https://www.bbc.com/worklife/article/20190615-parental- leave...](https://www.bbc.com/worklife/article/20190615-parental-leave-how- rich-countries-compare)

</comment><comment><USER24> In tech you can take paternity leave but there is no gaurantee that they won't shift your projects off to other people and there won't be a place for you when you get back. This has happened to me twice for both my kids, even though I was in great standing before taking leave. One time it led directly to my firing completely out of my control. Now I'm scared to take leave even if they offer it. So you can "take" paternity leave in most tech companies, but you will pay for it with your job indirectly.

</comment><comment><USER25> Just as a reference point how maternity leave works in many parts of Europe, using Austria as a reference: a mother can choose between 1, 2 and 3 years of maternity leave. You'll get the same amount of money over the whole time, and it's covered by the health insurance, so the company doesn't have any costs. It's typical that mothers start part-time work afterwards to ease back into work life.

Fathers can also take paid paternity leave, usually you can split the leave with the mother however you want, and if you do you get a few months extra.

It's also typical that the father gets 3 weeks paid time off when a baby is born, to care for the family. I feel this was invaluable for me and my family.

I honestly find the US system inhumane, forcing mothers back into a job so soon, and a baby so young is just a tiny, vulnerable, little human. Too early to put them into daycare in my opinion, but I understand that many parents are forced to for financial reasons. The US healthcare really needs a big overhaul.

<comment><USER9> You make it sound like there is no cost for anyone but "health insurance", but it is costing everyone including yourself: higher taxes, higher prices, lower salaries. The result is a higher cost of living.

US can use the same system, factoring the cost of maternity leaves and the paternity leaves into the product prices or into reduced salaries. In the end, this is where money can be taken to cover.

<comment><USER25> The US is already spending almost twice the amount on healthcare per person than Austria! [https://www.healthsystemtracker.org/chart- collection/health-...](https://www.healthsystemtracker.org/chart- collection/health-spending-u-s-compare-countries/#item-relative-size-wealth-u- s-spends-disproportionate-amount-health)

* US: $10,224

* Germany: $5,728

* Austria: $5,440

The system in the US is just totally dysfunctional, and I know a complex issue. But in essence it's using a lot more money than comparable countries but the benefits don't even compare remotely.

<comment><USER9> Except that being a parent is not a disease; a kid is not a sickness and it has nothing to do with healthcare. The mother recovering after giving birth is a health care matter, but that usually takes 6 weeks in most countries.

I fully agree that USA has a major problem with the healthcare system, but that is a different matter.

</comment></comment></comment></comment><comment><USER26> I took a leave after the birth of my second child.

The company I worked for was based out of the valley and had recently announced proudly that they offered paid leave.

I was excited, until HR got back to me to tell me I didn't qualify because I didn't live in CA. They offered that I could take leave without pay.

Even the companies who seem to embrace such policies, may not in all cases.

<comment><USER27> I don't usually call for something like this, but please please please, if you are an FTE, name and shame the company here.

If this company wants to ride a wave of publicity and good will by telling the world they offer paid paternity leave, they should face the public scrutiny and blowback for such a disgracefully uneven application of said leave policy.

<comment><USER26> They have since been acquired and no longer exist.

</comment></comment></comment><comment><USER16> I live in a country in which women get a lot of time off after giving birth, men get some days and every family receives monthly cheques for one or two years after a baby is born. A new family can rake up a lot of free money either directly or with discounts, preferential treatment, bonuses, and support.

I'm against any type of incentive for newborns, because it all comes from the state, which means public money, which means taxes. I don't want to pay for other people's two-year vacation leave in which they play happy family while their employer is missing an employee and getting compensation with public money.

To me, if you can't or won't work, you must be replaced.

<comment><USER28> Is your country in a place with low birthrates and propping up its population with immigration?

I don't think your view is inconsistent, necessarily, but it comes down to different views about the role of the state, whether new generations are important, etc.

Anyway, in some ways we should be doing what we can do reduce birthrates as much as possible before we destroy ourselves and our life support system, but on the other hand making it possible for people to engage in about the most basic function of being an animal without destroying their lives isn't all bad.

<comment><USER16> Low birthrates yes, just like any other European country, with the added pressure of a strong catholic presence.

The state has been encouraging births as long as I remember. And while on one hand I can appreciate that everything is for the well being of newborns and a better society tomorrow, on the other all I notice are those who exploit this system to have years and years of paid leave and benefits.

It's just as libertarian as it gets, but if you can't feed them, don't make them. And I don't want my tax money to go into a safety net for people who made very poor life decisions.

<comment><USER15> Will you be happier with the tax money in your pocket and your local economy in the pits due to population aging?

<comment><USER16> Human population on earth has been rising since we're here. Just 100 years ago nobody would ever thought about spending public money to make new humans, and I think we all turned out fine.

The assumption that if we don't incentivize new births the conomy will collapse is just an assumption, because in many countries incentives are not in place, and you don't hear of economies collapsing and the elderly swarming the streets in search of food because people don't pop just the right amount of babies to reach the replacement rate.

And again, we cannot continue to grow indefinitely in a system of limited resources.

<comment><USER28> 100 years ago life was pretty different. It was assumed mom would be home with kids, possibly grandparents, etc. Then we decided it was OK for women (including moms) to work. Then we restricted housing supply pushing most couples to be dual-earners (see The Two Income Trap). Then we found out working full time and raising a 6 day old is impossible. So we said "OK you can go watch your kid a tiny bit and not get fired". And here we are.

As for child benefit (the cash) I see why it grates tbh, but I think it's meant to help avoid kids being in abject poverty. Whether it works, well, I dunno.

I agree that we can't grow indefinitely, though.

<comment><USER16> > Then we found out working full time and raising a 6 day old is impossible. > So we said "OK you can go watch your kid a tiny bit and not get fired". And > here we are.

Employer-wise, pregnancies are a loss. You have one skilled worker parked for 1,2, or 3 years. You have to hire and train from scratch a replacement. You risk, basically.

</comment></comment></comment></comment></comment></comment></comment><comment><USER29> A (present or past colleague of mine) spent a few months living between the NICU and the office. In equal measures I was livid and heartbroken.

</comment><comment><USER30> Odd that someone who doesn't need to work ever again would become a spokesman for this cause...

<comment><USER31> Sometimes it's the gift of being removed from the struggle which allows one to advance it further.

Ohanian is hardly the only voice for this policy. And many who are in similar positions to his actively oppose it (if rather more circumspectly).

</comment></comment><comment><USER32> Alexis conflates two things here: caring for his gravely ill wife, which U.S. law protects with 12 weeks through FMLA (unpaid, admittedly), and paternity leave. I don't think that staying out for a long stretch is a wise idea barring some unusual postpartum circumstance, and I certainly didn't do it even given the option. Taking a little time off to readjust to the baby's habits, but getting back to working reduced hours and some remote work if possible as quickly as possible seems better. Being productive at work is part of mental health, and I found it restorative to be able to have those periods without moment to moment concern for the baby.

<comment><USER5> Couldn't disagree more. I took eight weeks off when my child was born and I couldn't be happier that I did. I fail to see why it isn't a "wise idea" and why returning to work quickly "seems better".

<comment><USER33> Pretending to be busy is very effective as long as you are there to keep the ruse alive. Once you're not there and your work is how you're judged, things fall apart quickly. That's why it's a bad idea for some people to take leave. :)

</comment></comment></comment><comment><USER34> providing paternal leave equal to maternal leave is also important for closing women-men pay gap and eliminating biases against women.

</comment><comment><USER35> One great side effect of paternal leave is that it removes a big reason to (consciously or unconsciously) discriminate against women when hiring, as anyone is almost equally likely to eventually take extended leave.

</comment><comment> sneeze-slayer So what is the way forward with getting parental leave enacted in the US? Calling our senators? My senator hasn't been the to the largest city in my state in a long time, so that feels largely ineffective.

</comment><comment><USER36> I wish there was some sort of leave for when you take in foster children. I imagine though this could mean leave every few weeks to months to get a new child or children acclimated to life away from their parents (and otherwise the life they know). As a foster parent now I've been struggling for months to meet deadlines, keep up with the house and tend to the ever unknown needs of kids that have been taken away from their families. L

</comment><comment><USER37> The sad part is that the US will only change their policy when from an demographic point of view they need to generate higher birth rates. For now, the US population is increasing without any stimulus. In Europe, aging populations have pushed governments to adopt more pro-parent policies.

</comment><comment><USER38> Not very feasible in our debt-driven, paycheck-to-paycheck country with gig workers and contractors scraping by. Many of the startups and companies that frequent hacker news not only rely on this kind of labor, but are actively creating apps to further "uberize" the workforce.

</comment><comment><USER39> I recently had twins and was very grateful my company recently added 6 weeks of paternity leave. Had this not been the case I would have been forced to use up my sick time which I will likely neee to use with my kids, and also would have been fairly worthless when I was at work.

<comment><USER40> Congrats and hang in there. Mine are 8 months old, and if one gets sick you can bet the other will follow soon. People who have had twins assure me that it does get easier.

</comment></comment><comment><USER41> At the startup (in the US) I work for I was lucky to have been able to take 12 weeks off at 100% PTO. I can't imagine working somewhere that didn't offer extended paid paternity leave.

</comment><comment><USER42> Maybe with overpopulation we should not be encouraging more children.

<comment><USER43> That's true globally but many countries have birth rates below replacement levels. A declining population can cause problems just as an increasing one can.

</comment></comment><comment><USER44> when my nephew was born my younger brother told me he was taking "male maternity leave" \-- love that kid! ;)

</comment><comment><USER45> The reason is regardless of how much 'leave' you have its easy to get fired. If you fear for your job then it's better not to take too much leave. And managers have reason to make sure people fear for their jobs.

For another thing I don't think it is ethical. Specifically it is not fair towards people who do not have families. The loneliness we have to suffer is already punishment enough. We die earlier because we do not enjoy a happy life. Yes mothers should have a leave, because of simple necessity. But I don't think we should force people like me to compensate for fathers lack of will towards using their vacation days to care for their child.

Edit: of course medical emergencies are a different matter. I don't want to give the impression I want people to continue working if a dependant requires their care.

<comment><USER46> Parental leave benefits you even if you don't have children. When you're old and infirm, you'll be lucky if society has enough young people to pay into social services and/or healthcare.

<comment><USER45> You convince yourself of that. With male parental leave in place there won't necessarily be less children. Guys like sex after all. But we can be sure there will be less doctors available at any given time, because some of them will be on an unnecessary leave.

Besides, loners tend to die earlier anyways so we don't need so much Healthcare.</comment></comment></comment>


Find out where your time went this year - <AUTHOR> https://www.skej.us/mycal.html

<comment><USER2> The permissions are a lot to ask, but I found it worth the price.

<comment><AUTHOR> Unfortunately there's no way around it to show you the personalized report. But we certainly take privacy very seriously.</comment></comment>


Boost C++ Libraries - <AUTHOR> http://www.boost.org/ <comment><USER2> Without this set of libraries I think people would have given up coding with c++ years ago. Simplfies everything from statecharts to pointer handling to graph traversal. Absolute must for any serious c++ coder.

<comment><USER3> Yes, the libraries make the language tolerable but not unique. I jumped the C++ ship in 2001 to Lisp, while BOOST was still an infant, and from what it looks like, my hunch was right and I didn't miss anything.

The following is a line-by-line comparison between most of the Boost libs and their corresponding Common Lisp functionality. CL has most of them builtin, wherever that makes sense, or as a defacto community-standard library.

<http://www.boost.org/doc/libs>

\----

Any (list-sets, keywords or all the unique objects using EQ/EQL)

Array (Arrays)

Assign (customizable assignment with SETF)

Bitmap (bidirectional maps library for C++, use hash-tables)

Bind (a crippled form of generic dispatch)

Call Traits (a crippled form of generic dispatch)

Conversion (automatic type promotion built into Lisp, there is also COERCE)

Dynamic Bitset (bit-vectors)

Enable If (#+ #- , etc. EVAL-WHEN)

Exception (yeah, a crippled subset of the condition system)

Filesystem (see pathnames)

Foreach (a crippled form of LOOP)

Format (a pale imitation of FORMAT)

Function (lambda, generic function)

Function Types ( _sigh_ )

Functional (no comment)

Functional/Hash (hash-tables with custom test function)

Fusion (A pale immitation of CL sequences)

Integer (CL has a numeric _tower_ )

Iostreams (CL streams, gray-streams, simple-streams)

Iterators (Loop, Iterate)

Lambda ( lambda :-)

Math (most built into lisp, including complex numbers)

Multi-Array (builtin)

Numeric Conversion (builtin, again, see COERCE for the manual manipulation)

Operators (all user-defined functions, macros and types are first class values in CL)

Optional (multiple-values)

Parameter (keywords arguments, &key, &rest, &optional)

Proto (the whole of CL is a toolkit for creating DLS, specially the macro system)

Python (CMUCL/SBCL ;-)

Random (random, random-state, builtin)

Rational (rationals are builtin and are integrated into the numeric tower)

Ref (fixes a C++ limitation, unneeded)

Regex (cl-ppcre)

Scop Exit (unwind-protect)

Serialization (cl-serialize)

Signals (condition system; make your own custom "signals", or use iolib for unix signals)

Smart Ptr (fixes a C++ limitation, unneeded)

Static Assert (eval-when + check-type or assert)

String Algo (builtin, split-sequence from cliki)

System (builtin, implementation specific or use protable libs in cliki, also see CFFI)

Test (FiveAM)

Thread (bordeaux-threads)

Timer (sb-timer, trivial-timeout)

Tokenizer (split-sequence)

Tuple (multiple-values, unneeded, fixes a C++ limitation)

Type Traits (unneeded by a reflective language like Lisp)

Value Initializes (Lisp has bindings)

Xpressive (yeah, cl-ppcre regexes can be written as strings or as lisp s-exp)

<comment><USER2> True but how many companies use lisp for anything major? If you work on wall street like I do, and u don't want to do java then boost becomes absolutely necessary. I hated c++ before I found boost.</comment></comment></comment>


JavaScript tool to work with subtitles without pain - <AUTHOR> https://github.com/termoxin/subtitles-parallelizer <comment><AUTHOR> I'd like to get some feedback! Thank you in advance, I appreciate this so much!</comment>


Ask HN: How do you begin to find contracts as a freelancer? - <AUTHOR> I'm looking to do some freelancing but don't have a network or past customers to rely on for contracts. I've been applying to Upwork jobs but it's been difficult without ratings and competing against lower priced engineers.
I do have experience as a DevOps engineer so I feel confident in my abilities to build production-ready infrastructure but getting the right leads is not something I'm experienced with.
What has worked for you? <comment><USER2> Forget Upwork, competing on price is a losing game.

Things I've known to work:

1\. Go to meetups (got a job offer once from project night at Boston Python Meetup). 2\. Go to job listings for early stage startups looking for DevOps people, email them saying "hey maybe you want a consultant instead?" They might be happy for short term cost saving. Probably work with bigger companies.

Lots of resources on [https://doubleyourfreelancing.com/](https://doubleyourfreelancing.com/).

</comment><comment><USER3> You have _a network_ — everyone has some start of a network!

All of my work has come through my personal network, or as a direct referral from it. I do more independent contracting than freelance work, so if that's something you're open to, I encourage you to reach out to founders and CTOs you know to explore opportunities. That's what worked for me in a "tier 3" startup city.

I would consider any of the marketplaces a last resort from the perspective of a good developer. (People are willing to work for way too little. Think about the advantages you have that those on the platforms don't.)

</comment><comment><USER4> Network. If you want to build up a portfolio a good way is to volunteer to build or fix things for local non-profits, in exchange for them to give you a testimonial and let you use their name for promotion (if you do a good job, of course).

Don't compete on price. Pick your price and stick to it.

If you specialize in a particular piece of technology, spend time online helping people fixing things, writing bug reports and patches for it, creating a site with useful tools or tutorials and things like that. Then just include a small mention on your site or your signature about your freelance work.

Don't go overboard with self-promoting, but don't neglect it either.

Keep a resume (or several targeted ones if you have different skillsets) up to date and ready to send people.

</comment><comment><USER5> Start a forum specialising in some software (or write your own) then as your forum grows so will the people hiring you to perform customisations etc worked for me.

<comment><USER3> A long time ago, I did something like this except it was for niche small stores before Squarespace or Shopify existed. The spread was the same — someone saw it then wanted one for himself, then another shop owner saw his, etc. At the end of the day I didn't make a ton of money from it (although I also didn't charge enough), but I did learn a lot.

</comment></comment><comment><USER6> Since this question seems to come up about once a month or so, I'd say step #1 is "search HN for previous posts".

</comment><comment><USER7> Start a private limited company. Start working for companies you used to work for as a permanent employee before. Market yourself as a consultant with specific skillset who works on a per project basis. You come in and help the in-house engineering team deliver the project, implement new technology etc. Look for shorter term contracts, 6-9 months per contract. You can build up a rolodex of clients and referrals like this which will make future contracts come to you without you having to look for work.

<comment><USER3> I am curious to hear more about the dev turned consultant route. I've been doing plenty of independent contractor software development work, but I haven't really seen the right consulting opportunities — more higher level strategy and business type gigs. Perhaps I just don't know where to look.

<comment><USER8> Openings for a consultant usually mean something more like "management consultant" rather than technical consultant.

Usually as a technical consultant you find people who want to build something and then guide them through the process. It can be semi-challenging to find your first client for this sort of project because these clients don't know what they're looking for and often don't know how much they don't know.

Once you have your first successful client like this though, others will find you fast.

</comment></comment></comment><comment><USER9> One of my previous comments on this subject: [https://news.ycombinator.com/item?id=12744624](https://news.ycombinator.com/item?id=12744624)

Networking is key! Go to relevant events and talk to a lot of people.

Avoid freelancing sites like Upwork.

Do your own marketing (decent website etc.). If possible find a niche. DevOps is a pretty wide range of skills and problems to solve. Can you narrow it down to something very specific (that's in demand) you're particularly good at?

</comment><comment><USER10> offer your service for free at first. People will pay you anyway (without asking) if you do a great job. Then you get one client, then another one, then another. Increase your price along the way while building your portfolio.

How do you get your first lead even for free? Craigslist or find ways of going to events where people aren't technical at all. It'll come.

There's no magic trick you can't make big money without a network in life.

</comment><comment><USER11> I started out ten years ago by shouting out to my friends, and posting on Craigslist. I basically emailed everyone in my LinkedIn network and told them I was available for freelance sysadmin work. Good luck!</comment>


IFTTT support for Amazon Echo - <AUTHOR> https://ifttt.com/amazon_alexa

<comment><AUTHOR> From Amazon's announcement email: "Many of you have asked to use Amazon Echo and IFTTT together and, today, we're taking the first step forward — you can now create IFTTT recipes using Echo's Shopping and To-do Lists".</comment>


A Taco Truck on Every Corner, or Not? - <AUTHOR> https://a2civic.tech/blog/2018/09/30/a-taco-truck-on-every-corner-or-not.html <comment><USER3> I feel like a municipality should have to create these maps when proposing legislation, and maintain them on an [annual?] basis

There are so many areas of our lives where its becoming de facto impossible to comply with all the laws/regulations without devoting an unreasonable amount of time/resources towards compliance

<comment><USER4> This didn't even cover things like how county and city sales tax can change if you move to the other side of a street. Also doesn't account for the fact that each different level of government (state, county, city) may have different licenses, so you might have a license to sell on one side of the street, but not the other, regardless of zoning.

I've been considering potential targets for "radical deregulation." An experiment in getting rid of all licensing and certifications and just "see what happens." The risk here is too many taco trucks, and some minor fear of food poisoning. Personally, I'd be willing to accept that in exchange for massive increase in consumer choice and greater opportunity for small businesses to get out from under corporate overlords.

<comment><USER5> You can find "radical deregulation" in this exact field throughout the developing world, and it's one of the things that keeps drawing me back. It's wonderful. You can find all sorts of of people selling all sorts of delicious stuff at rock bottom prices and when you buy it it's not only made by the same people who own the stand, but also of course directly supporting these people so it even feels better just spending money at these places.

In my experience food regulation does very little for food safety. When somebody opens a stall to sell food, they generally know how to cook very well. And a single incidence of bad food is enough to put somebody out of business. These places all develop regulars, and when they lose a regular - <USER2> hurts. Sell unclean food, and your regulars are gone. And people also talk, meaning you may lose customers that didn't even come that day.

All in all in something like a decade of travel in developing nations, I got food poisoning once. Ironically it was from a western targeted fast food chain! I've never gotten sick from eating at 'street food' vendors literally thousands of times, excepting the early months when you first move to a place that's mostly just your body adjusting to all the new microbial stuff that's present even in clean food.

And in many ways, I think the direct ownership provides far greater safeguards than a mountain of rules and regulations. Because in the end those rules and regulations mean absolutely nothing when some detached worker decides not to wash their hands after coming back from the toilet. That and the fact that they are generally going to locally source their ingredients, whereas McCorporate Burger is going to see where they can find the cheapest substance that can legally be classified as meat that passes taste tests, and then import it by the ton.

<comment><USER6> "Bad food" isn't the issue. Lethal food poisoning is the issue - a single instance of contamination can kill a number of people and make a larger number very unwell.

This idea that small businesses are somehow exemplars of food hygiene is nonsense.

Some of the oldest laws made relate to food safety.

<comment><USER5> The FDA did not exist until the early 20th century and laws relating specifically to food were scant before then. They've been quick to pile them on like crazy since then, but they don't actually have much of an effect when you look at comparative rates. According to the CDC [1], in the US each year 48 million people get sick from bad food, and 3,000 die. Worldwide rates according to the WHO [2] are 600 million ill, and 420k deaths. The US has 4.37% of the world's populations, so our normal expected value would be 26.3 million ill and 18,381 deaths.

So in terms of getting sick from food, we actually score substantially worse than the entire rest of the world. Our death rates are 6x lower than expected which sounds very good, but I think that's unlikely to be attributable to the FDA. Our relatively large rate of foodborn illness is more of an annoyance than anything. But an annoyance for us us is something that kills people in rural areas with less knowledge and less access to resources. In particular the way people die from food poisoning is not some crazy hyper virulent strain of some hyper dangerous ailment or whatever. It's just plain old diarrhea from bad food -- something that's practically unheard of in the developed world. A couple of bottles of gatorade, lots of water, and some pepto turns diarrhea into a mild annoyance for at most a few days for those in developed areas. But for those without access to resources or the knowledge of how dangerous plain old dehydration actually can be, it can kill quite quickly.

And in any case this is primarily going to be people cooking their own food at home and making themselves sick. I'd strongly recommending traveling to the developing world. I certainly never would have taken anything I've said at face value before. But living life in a different way makes you appreciate both the things we do right, and the things we do wrong. And having a million regulations on food for the sake of safety that doesn't even really materialize is something I think we are doing _very_ wrong.

[1] - [https://www.cdc.gov/foodborneburden/index.html](https://www.cdc.gov/foodborneburden/index.html)

[2] - [http://www.who.int/en/news-room/fact-sheets/detail/food- safe...](http://www.who.int/en/news-room/fact-sheets/detail/food-safety)

</comment></comment></comment></comment></comment><comment><USER7> The food truck laws in Michigan in general are pretty annoying. You need to have a commissary kitchen where all the food is actually made in order to be in compliance. Which defeats one of the main points of having a food truck to begin with(not having to rent or own an expensive building)

<comment><USER8> New York (City) as well, IIRC. Street-side cooking is more akin to heating up already prepared food. San Francisco, too. While it seemingly defeats the purpose, the flip side of the argument is that it is easier to ensure base levels of hygiene.

The article itself, btw, is a pretty nifty use of PostGIS viz.

Edit: Originally had all of California included but it was pointed out that my knowledge was limited to San Francisco as LA does not have the same requirements.

<comment><USER9> In Los Angeles, food trucks must be parked at a commissary, but it isn't required that food prep be done there.

<comment><USER8> Ah, I might have been too over-reaching. I know it's certainly true in San Francisco.

<comment><USER10> I'm not so certain. I know of prominently-positioned pizza trucks in SF that are clearly cooking their pizzas there. I doubt they are doing that illegally.

<comment><USER8> "All mobile food vendors must operate in conjunction with a food facility, also known as a commissary, such as a licensed commercial kitchen. Thus, you will need to rent a commercial space for preparing food, and storing your inventory."

[https://businessportal.sfgov.org/start/starter-kits/food- tru...](https://businessportal.sfgov.org/start/starter-kits/food-truck)

Another commenter mentioned that there may be various classifications of food such that a Pizza truck may be able to get around it due to the nature of the ingredients but I'm unfamiliar as to where those lines are drawn

</comment></comment></comment></comment></comment></comment><comment><USER11> What's the motivation behind ordinances like this? I've never spoken to anyone who likes them, so I'm not really sure why cities are so aggressive about it. I assume there must be a large segment of the population who are really bothered by food trucks for some reason, but I genuinely struggle to imagine why

<comment><USER12> Some people don't like other congregating in front of their stores and not buying anything but the most vocal opponent are restaurants. They feel like by paying substantial money for a restaurant lease, they shouldn't be subject to competition that can operate with far lower costs / standards. Think about if you owned a nice Mexican restaurant and then a taco truck parked outside during your rush hour. They have almost none of the fixed costs that you do and could undercut you pretty easily.

I'm not convinced it's worth regulating their hours/locations, but I do sympathize a bit with the brutal economics of restaurants.

<comment><USER13> >they shouldn't be subject to competition that can operate with far lower costs / standards.

Of course they should. There is no assurances or guarantees that any business venture is going to be successful.

If you're running a mexican restaurant that goes out of business because of a taco truck, the answer isn't to outlaw taco trucks, it's to make your own restaurant better.

If you can't change your restaurant and you go out of business isn't it your fault for not adapting to customer tastes and preferences, not the taco trucks fault because it was able to satiate customer needs?

<comment><USER14> With your line of reasoning, I guess a rich person thinking of opening a restaurant could follow following strategy.

1\. Get a few food trucks and park them in front of all potential competitor restaurants. Sell subsidized food.

2\. Wait till these restaurants close because they can't compete with the subsidy.

3\. Start their own restaurant selling really bad food at expensive prices.

4\. Profit.

This is the same kind of strategy that tech giants often follow to push startups out of business. Obviously, my example strategy is extreme (and possibly illegal), but food trucks can easily drive good restaurants out of business resulting in a worse culinary scene in the city. The purpose of the regulation being discussed here is to eliminate such bad forms of competition that result in worse outcomes in the long term.

<comment><USER13> This situation is in no way unique to food trucks though. I could buy the property next to your restaurant and make it into an exact clone of your place and give away all my food for free until you're out of business.

And yet I don't see anyone out there arguing in favor of laws banning copycat restaurants.

If I can run a food truck and sell food at a lower cost to people who have to stand outside while they eat, and they prefer that over the experience you provide in your restaurant, the customer is not wrong. Good restaurants, by definition do not go out of business.

<comment><USER15> > I could buy the property next to your restaurant

This requires a substantial investment. It is in no way comparable.

<comment><USER16> > This requires a substantial investment.

If there is an established profitable business case, financing will be widely and easily available.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> I don't really get why they wouldn't want food trucks to be near residential parks and such. I'm also curious if this would effectively ban residential area ice cream trucks.

<comment><USER18> I work at a large employer with 150 employees and no real cafeteria. So there a food truck makes sense. They only do 1 hour at our gate. Quick money. Plus fastfood is a 10 minute drive so a captive audience. They just need to be reliable. Otherwise I pack a lunch. So other use cases are weird to me. I can see festivals. But the food trailer out front Lowes. Who eats there? I rarely see customers waiting...

<comment><USER19> The food truck in front of Lowes is probably there for day laborers.

</comment></comment></comment><comment><USER20> Really good article, great idea for a blog too "A site dedicated to exploring Ann Arbor civic engagement through technology."

<comment><USER21> a2civictech you've been shadow banned for whatever reason.

<comment><USER22> I clicked "vouch" on their comments so I think they should be visible now? I'm not 100% sure how that system works.

</comment></comment></comment><comment><USER23> I love taco trucks, and I'm a pretty picky eater. My probably weekly order is about: 6 tacos asada, no salsa, 4 jalepenos, radishes and extra limes. Maybe a plate of rice. Proceed to cover the taco in deadly amounts of salt and lime. What I can't ever seem to do is find a "street taco" in a mexican restaurant that's near as good tasting.

</comment><comment><USER24> Great article! How did you manage to visualize those maps?

<comment><USER25> These look like maps rendered/exported from GIS software such as ArcGIS.

<comment><USER26> Those are the default color schemes for QGIS.

</comment></comment></comment><comment><USER27> As an A2 resident I want to thank you for this post. Awesome stuff!

</comment><comment><USER28> Started reading the article... and realized that it was about my favorite BBQ spot in my own hometown! Hope that they can find a way to continue operation.

</comment><comment><USER29> if this had been about LA instead of Ann Arbor, the title might as easily have started with "A French Fry truck," "A Banh Mi truck," "A Po Boy truck," "A Poke Truck" or "A Gyro Truck"

<comment><USER29> ok. wow. why the downvotes? what did people think this comment was trying to say?

<comment><USER30> HN isn't Reddit. Jokes that don't add something to the intellectual discussions are typically downvoted. Also asking/commenting on voting is discouraged by the rules.</comment></comment></comment>


It's China's turn to wrestle with a pile of bad debt - <AUTHOR> http://www.msnbc.msn.com/id/43600432/ns/business-eye_on_the_economy/

<comment><USER3> I expect effects on China's economy will be the biggest story of the 10's or 20's. So many things were lined up to make the system they had work, educated but under employed labor, a voracious appetite in the world for their cheaply manufactured goods, and a relatively docile population. Every single one of these 'advantages' seem to be deteriorating.

So the new learning we'll get this time around is if the Chinese version of Communism can keep the economy from driving off a cliff or not. If not, will it kill communism in China?, or the world's economy? or both? And how will the folks in power respond?

Very interesting times indeed.

<comment><USER4> On the contrary, I would say their economy is maturing with domestic consumption becoming a dominant portion, their production methods are becoming more efficient as labor costs increase, their production scale is second to none, their educated and motivated population is poised to bring a new era of innovation and entrepreneurship to China.

And for the record, "communism in China" is already dead.

In response to the article, China's balance sheet was worse in 2004 before the triumphant expansion of the last 7 years. I had doubts they could outgrow their debts then. I have doubts today, but fewer.

China is controlled by the smartest, most effective technocrats in the world. Don't underestimate them.

<comment><USER5> _"I would say their economy is maturing with domestic consumption becoming a dominant portion."_

You've got it completely wrong.

Consumption in China has been rapidly decreasing with respect to GDP. Their consumption was some 55% of GDP in the 90's. Then it came down to 46% around 2000 and now it stands at 34%. [[1]] All the efforts that China made to increase consumption didn't materialise. The fast growing Chinese GDP is only giving an illusion that Chinese people are massively consuming. But that's not true.

On the other hand, the percentage of fixed-investment (roads, bridges etc.) to GDP has been steadily increasing in China. If Jim Chanos is to be believed, the fixed-investment now stands at a whopping 70% of GDP. [[2]] This seems to be the actual lifeline of Chinese economy.

So in order to maintain the GDP growth, China has been recklessly building roads, bridges etc. fuelled by local government debts. [[3]] This has been creating massive bad-loans, over-investments and bubbles. China is building not _'because of'_ its economy. It is building _'for the sake of'_ its economy. This won't see a happy ending.

[[1]] [http://www.bloomberg.com/news/2011-06-16/consumers-fade- in-c...](http://www.bloomberg.com/news/2011-06-16/consumers-fade-in-china- economy-racked-by-inflation-with-peak-days-gone.html)

[[2]] [http://www.moneynews.com/StreetTalk/jim-Chanos-Soft- Landing/...](http://www.moneynews.com/StreetTalk/jim-Chanos-Soft- Landing/2011/02/02/id/384774)

[[3]] [http://www.moneycontrol.com/news/features/why- china39s-local...](http://www.moneycontrol.com/news/features/why- china39s-local-government-debt-is-so-scary_563013.html)

</comment></comment></comment><comment><USER6> This article reminds me of a Cringley article that was written not too long ago, where he speculated that this was going to be India's century rather than China's, and China would have a decade instead. - <http://www.cringely.com/2010/10/the-chinese-decade/>

It also reminds me of seeing a report on infrastructure projects in Japan, with bridges going to nowhere and other crazy construction projects, all designed to pump up the economy as well as the pockets of construction companies owned by cronies.

It will be interesting to see how and where it goes, and I hope that Australia can diversify its economy - from mining and sending ore to China - <USER2> something else before China experiences any hiccups (or worse).

</comment><comment><USER7> Despite the amount of hot funding going around, most Chinese are capital constrained. Small business can't get credit because they don't have the "connections", their books are cooked (no revenue = no tax, but sadly no credit; and businesses that pay tax are uncompetitive), and banks would rather loan to the government or state-owned-entities.

Thus, anyone who has the seed money to start a business can do very well, so the "businessmen" (even small ones) make a lot more than the workers.

</comment><comment><USER8> I don't get it.

This article was confusing and badly written. The Chinese govt gave the money to local authorities to spend. Next, the article talks about bad debts showing up in audits. Was the money a straight out transfer? If so, this doesn't affect their debt position. Was the money supposed to be used for construction projects and not just used to pay down old debts? If so, this doesn't affect their debt position either. The article also talked about corruption and a "rigged system to guarantee bank profits". No details given about either issues.

<comment><USER9> > _The Chinese govt gave the money to local authorities to spend._

I believe that is a overly-simplistic, "net" explanation.

I think it goes more like:

        1. China's central bank grants credit (i.e. cheap loans) to big "national" banks
        2. Big national banks grant credit to regional/provincial/municipal governments
        3. Local governments spend on infrastructure (build it and they will come)
        4. No one comes
        5. ...
        6. Profit?

So the big banks have bad loans on their books, but the national government / central bank will surely bail them out.

<comment><USER10> So is the question how do these loans appear on China's central bank's balance sheet?

I am confused by reading this article: if part of the issue in the US is that China holds vast amounts of US debt, and now China is also highly leveraged, then who is left holding their debt?!

What would be to problem with the Chinese central bank just writing off all the debt?

I can see that the spending pattern may be unsustainable, but if you have been lending the money to yourself there is no-one left to be upset when you default.

<comment><USER11> I think most of the world's debt is privately held. For instance the UK is the third largest owner of US debt after China and Japan, but we ourselves have a massive public debt.</comment></comment></comment></comment>