The Rise of Men Who Don't Work, and What They Do Instead - <AUTHOR> http://www.nytimes.com/2014/12/12/upshot/the-rise-of-men-who-dont-work-and-what-they-do-instead.html?WT.mc_id=2015-MAY-WCASeq-UPSHOT&WT.mc_ev=click&ad-keywords=WCARETARG <comment><USER2> Uhh, I'm not sure that this article is useful.

Plenty of the "men who don't work" are simply unemployed but are not counted on the unemployment numbers because they've been unemployed for a long time. This population isn't depicted in the article, which looks like a major oversight.

The only reason that there was a "rise of men who don't work" is that there was an economic collapse which we haven't recovered from, and possibly won't ever recover from by the pre-crash definitions of recovery.

</comment><comment><USER3> You have to wonder which of those trends are "secular" (in the economics sense) and which are indirect causes of high unemployment.

The article already hints at this: Apart from the young cohort (until mid-20s), the rise in men going to school is probably less about an increased desire for education and more about an inability to find work. More men caring for their families may be a good thing (increasing equality between men and women in practice), but it may also be a symptom of high unemployment. And is it really plausible that more men are disabled today compared to 15 years ago? It seems more plausible that there is a grey area of disability, and a bad economy drives more men in this grey area to apply for disability benefits.

<comment><USER4> > And is it really plausible that more men are disabled today compared to 15 > years ago?

Yes, that seems plausible to me. For example, there have been a number of combat operations the intervening 15 years; if someone left the military due to injury, they would be counted in the disability figures, but not in the employment ones. NPR did a big story on the factors behind this a while ago:

[http://apps.npr.org/unfit-for-work/](http://apps.npr.org/unfit-for-work/)

Another big factor is that states are incentivized to move people off of welfare (which the individual states pay for) onto disability (which the nation pays for through Social Security). So a rise in disabled workers has also coincided with a decline of people on welfare -- it's just private companies shuffling people around without improving their condition.

To be fair, the NPR article was not without controversy. A number of groups objected to the way it was presented, including former Social Security commissioners.

[http://www.npr.org/sections/money/2013/04/18/177745599/forme...](http://www.npr.org/sections/money/2013/04/18/177745599/former- social-security-commissioners-and-others-respond-to-our-disability-story)

<comment><USER5> The numbers of disabled combat veterans are a tragedy, but they are really a drop in the bucket compared to the wider population. The numbers of people that have some medical condition that would allow them to work a job, if such jobs were available, is where the meat of that increase comes in. Then you have the perverse incentives by which someone on the low end of the pay scale can take a job, and be much worse off than if they stay on the dole, due to various other support programs getting cut off (free health care, fuel assistance, SNAP benefits, etc).

</comment></comment></comment><comment><USER6> It seems a lot more possible these days, both socially and economically, to go into "partial retirement" at around age 30.

Developers can pull this off without much effort. 2-20X the pay for our work, little expectation of company loyalty nor stigma for resume gaps or job hopping, crazy skewed market to ensure that a new contract is only a Facebook/LinkedIn/Twitter update away. Why would anybody spend their 30s _not_ taking several months a year off in that situation?

Naturally, I'm biased a bit, since that was me for a dozen years or so. But there aught to be a skinny little blue line on that chart for us. And I bet it's a lot less skinny today than it was back when I started doing it.

<comment><USER7> There's a subreddit dedicated to this idea, although I warn you it's largely terrible.

[http://www.reddit.com/r/financialindependence](http://www.reddit.com/r/financialindependence)

Basically the only reason most people struggle financially in the US is due to their own financial illiteracy and living above their means. If you manage not to fall victim to either of those then you can save a substantial portion of your income towards a very early retirement should you choose to do so.

Kids are pricey though, so this approach is most viable for those who've eschewed the traditional family.

<comment><USER8> As a parent I've found that "kids are pricey" can easily stem from financial illiteracy as well. It's easier than people think to have kids and not blow the budget. Don't go crazy on Christmas gifts, limit eating out, buy secondhand clothes (which are usually in great condition), etc.

We always chuckle when our friends talk about how expensive their kids are, right before mentioning their three cross-country trips. Financial literacy can apply to child-rearing too!

<comment><USER9> I'm not going to disagree, since your advice is good. If you're having trouble financially, don't go crazy on Christmas gifts, eat out all the time, or buy expensive clothes.

But keep in mind, in SF, a 3br house or apartment south of 280 (a bit blighted in spots, but far safer than its reputation) starts at 800K, and really, unless you're at the outskirts and buying a property in need of considerable work, you're probably going to shell out over a mil. Child care is easily over $2k a month, so 50K a year.

So at least in SF, you're probably looking at about 90k+ on housing and child care. Health care is another huge cost, but it's hidden.

What percentage of that is really spent on creature comforts like expensive travel or christmas gifts? New clothes? You're a parent, you've seen what things cost at lower cost spots like Old Navy or payless shoes. It's not a big expense. I do a lot of hand-me-downs (I have 2 kids myself), but in the end, I'd estimate very generously that clothing costs about 0.5% of the yearly budget.

Now, one could certainly reasonably say that living in SF is a financially illiterate thing to do (though if this is the case, then many of the employers claiming a shortage of software developers are actually claiming that there is a shortage of financially illiterate developers, since these companies are generally located in SF or Silicon Valley).

But is Boston, New York, Washington DC, Seattle, or LA really that much better? I think it just goes from impossible to difficult.

The reason I mention this is that I believe the middle and working classes in the US are eroding, and while some of this can be self-indulgence (look at the way some people treated houses as piggy banks, for example), I wouldn't write off middle class struggles as financial illiteracy or excessive self- indulgence.

<comment><USER10> In Northern Virginia, you can get a pretty nice house in Fairfax for $500k - the SF and Silicon Valley market is special for its terribleness (NY too).

<comment><USER9> 500k isn't cheap, but of course vastly better than a mil (it sounds like fairfax is a fairly nice place, so you'd probably be comparing it to parts of SF that are more like 1.5mil). Any idea what daycare costs over there, typically? Though at 500k for housing, you have the option of one spouse scaling back on work, and if not, the lower mortgage cushions the extra cost of childcare.

This is an aside, but when silicon valley companies say there is a desperate shortage of software engineers, Obama[1] nods gravely in agreement. Why doesn't he at least _ask_ why they don't let people work from places like Fairfax? I understand that there are benefits to being in the valley, but if the shortage is _that_ desperate, wouldn't they at least try?

As for the original point, even if things get easier outside SF, I'd still say that you'd need to be taking some pretty serious shopping trips for kids clothes to approach the chunk of the budget that goes to health care, housing, and child care/education, even in a less brutal housing market like Fairfax. As for good public schools, well of course that's a relief once they get out of day care age, but you still shell out - I have two kids in public school, and just paying for the local YMCA run after care (so my wife or I can pick them up after work) is $6k per kid per year (so $12k total for me). We cancelled cable, which saved us about $1k a year.

[1] not to pick on Obama, this is common reaction from politicians.

<comment><USER10> No clue on daycare costs, but keep in mind this - the counties all around the DC area have the highest median annual income in the US, and Fairfax is probably one of the richest in the area.

The Valley companies in general don't like remote workers, despite all that is said about the shortage. The executives/managers want the convenience of being able to bother an engineer on whim. Amusingly, remote work is in practice more common in the DC area (and for more than just software engineering), in part because the federal government has driven telework as a huge perk.

<comment><USER9> I googled around a bit and found some discussion threads on this

[http://www.dcurbanmom.com/](http://www.dcurbanmom.com/)

sounds like 2k a month isn't unusual, but you can get this down if you look around and find a more neighborhood based one. These exist in SF too, they are licensed but tend to be run out of someone's house.

I'd say that for two kids, you'd probably be at over 3k a month _easily_ in fairfax. Mortage on a 500k house with a 10% down would probably be about another 20k a year, so you're looking at a conservative estimate of $56,000 a year for childcare and mortgage costs (I know there's a deduction, but there are also property taxes and other housing related costs that in my experience offset this and then some). Keep in mind that if you're a 2 income professional family, your income is too high to qualify for a tax deduction for child care (I always wonder why people haven't identified this as one of the things that deters women from re-entering the workforce).

This is perfectly manageable on a good tech salary with a second spouse working - in SF, those numbers would probably be closer to 100k. So what is perhaps impossible in SF is absolutely workable in fairfax, though of course this really just scratches the surface, I don't know much about life in DC.

I'd still maintain that housing, health care, education/child care costs in both places probably still vastly eclipses the savings you can get from cutting back on things like cable, cars, or travel, unless you're extremely self indulgent or are in an unusual situation (such as a sick family member living at some distance from home).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Partially related to having a family becoming more risky for men. If you are not protected in case of a separation, you are less likely to want to commit to a family. If there is no family, there is less motivation to earn more.

<comment><USER12> I find that a pretty suspect statement, and I'm not sure I've ever encountered any man who's decided to avoid starting a family for that reason.

<comment><USER13> I am one of those people, to an extent. Or rather, I largely avoid the dating scene because of the dangers involved.

Up to and including paying child support for someone who isn't even yours. Or paying child support for a child resulting from you being raped.

And there's no way around it currently. Currently, _even if both parties agree_ , there's no way for them to actually form a binding agreement. It's gotten to the point where prenuptials are essentially useless. They are far too easily thrown out.

However, I would not tell you as such in person unless specifically asked, and possibly not even then. It's a good way to get ostracized.

Though there's also a moral component for me, but that is another matter.

<comment><USER14> Prenuptials apply to the spouses, not children , who obviously cannot sign them. Are you saying that women are not held to prenup agreements, or that men forget that they cannot sign a prenup with their future children?

</comment></comment></comment></comment><comment><USER15> The author doesn't even mention how many more women are in the workforce as compared to 1950.

The main loss here is the exodus of manufacturing jobs. No simple way around it.

<comment><USER16> Loss of farming jobs is actually a much bigger factor than loss of manufacturing. Farm-related employment has dropped massively. In 1880, 49% of Americans worked on farms. Today, it's just 2%.

<comment> k-mcgrady How many of those jobs transferred from farming to manufacturing though? If all farm workers who lost jobs transferred into manufacturing then the loss is from manufacturing as the parent says.

</comment></comment></comment><comment><USER17> I'm probably considered one of these 'men who doesn't work'.

I finished my Bachelor's in Spring 2009 in finance, right after the collapse and took the first shitty job I could find. After a couple more finance related positions, I decided I needed to be doing something different and started teaching myself CS, Math, Stats.

I built a few moderately successful iPhone apps, enrolled in Harvard Extension's distance courses. The past couple years have been me teaching myself, taking distance courses, and doing contract work now and then.

I'm a decent programmer and built some pretty cool things.

I'm in the Bay Area (East Bay) and live in a crappy apartment and burning through what is left of my savings. I don't have a job. I don't have contract work. I don't have friends that work in the industry and grew up fairly poor.

Not asking for a 'pity-party', I guess I'm not sure what the next step is and feel disillusioned and paralyzed. I've never had a real job in Tech, I don't have credentials and not sure where to get started.

<comment><USER18> I think you're already well positioned to get interviews. Most people don't have published iOS apps nor do they already live in the Bay, so you should be able to get something out of whatever the hot jobs site is these days.

</comment></comment><comment> m-i-l See also [https://news.ycombinator.com/item?id=8738646](https://news.ycombinator.com/item?id=8738646) from December

</comment><comment><USER19> The labor-particpation-rate of working taxpayers fell about 7% (relative to itself 1-.63/.68) during the 21st century. This means fewer people paying social security taxes and three major programs those taxes support. This graph tries to explain what happened. Its was blamed on old people retiring early or becoming disabled. However, decreased working is spread across all age groups.

</comment><comment><USER20> Because everyone must _do_ something!

<comment><USER21> Well, _men_ have to according to most people.

</comment></comment><comment><USER22> A father in despair , who had recently lost his employment , made this statement with his three young kids behind him .." if they make the pole to greasy .. people will stop trying to climb it " .

</comment><comment><USER23> In the Bay Area, I imagine quite a few are VCs.

</comment><comment><USER24> I am not currently working, I guess that leaves some space for women or under- represented people to work the job I would hold.

<comment><USER25> Jobs are not a zero-sum game. If you were working, you'd be spending more money so more jobs would be available. And the money you are spending is either coming from the other people's taxes, decreasing the number of jobs available, or it's coming from your savings, which reduces your banks float, which decreases the number of jobs available.

<comment><USER24> I don't know if this line of reasoning works for the subset of CS management jobs.

<comment><USER25> No, it only works from a very broad perspective. If you take a CS management job, there are fewer CS management jobs available, but there are more jobs elsewhere in the economy.

<comment><USER24> good, so back to my feminist sweat pants and couch.

</comment></comment></comment></comment></comment><comment><USER26> Have to wonder how many of them are people who just moved back in with their parents and gave up after they lost their jobs in the Great Recession and spent years trying and failing to find a job with no success.

</comment><comment><USER27> anyone else spot the patriarchy hiding in the blank line between the first and second paragraph? (and through the rest of the article.) i.e. when the author goes from talking about people to talking about men?

like, shouldn't there be some transition, explanation, or...something? The first paragraph made perfect sense on it's own, and then it's off to talk to about men.

Anyway, seriously... "why male models" (why men)?

<comment><USER28> Because it's part of a series: [http://www.nytimes.com/2014/12/12/upshot/our- series-on-the-d...](http://www.nytimes.com/2014/12/12/upshot/our-series-on- the-decline-of-work-an-introduction.html)

With an entirely separate article on women: [http://www.nytimes.com/2014/12/14/upshot/us-employment- women...](http://www.nytimes.com/2014/12/14/upshot/us-employment-women-not- working.html)

Don't assume the worst!

</comment></comment><comment><USER19> The first graph animation is kind of distraction. the 2nd graph of the difference in time explains it better.

</comment><comment><USER29> How can one be "retired" at age 16?

</comment><comment><USER30> > ...and What They Do Instead

entrepreneurs?

</comment><comment><USER21> Nice numbers, but what's the point? Times they are a changin'?

<comment><USER31> Not sure why you're getting downvoted for this. The fact is that individuals act in ways so as to maximize their allocation and use of resources within a particular set of social mores is not new. The fact that social mores change over time to reflect resource abundance, mate availability, technology, life expectancy etc... is also not new.

Times they are a changin', always have been, always will.

</comment></comment><comment><USER32> What about prison? It's ~1% of the adult populaion.

<comment><USER25> (People in the military, prison and institutions are excluded from these figures.)

<comment><USER33> Why isn't the military counted as part of the work force? its not like people are drafted into it in the US.</comment></comment></comment>


GitHub monoculture - <AUTHOR> http://nedbatchelder.com//blog/201405/github_monoculture.html <comment><USER2> > Someone said to me, "I couldn't find coverage.py on Github." Right, because > it's hosted on Bitbucket.

I was curious, so I went to bitbucket.org to try to find coverage.py. Experience was awkward to say the least:

1) Bitbucket homepage does not have a search bar, nor is there a link from the homepage to the search [1]

2) Guessing that the URL is /search puts you in the team profile for account `search`. _finally_ you see what looks like a search bar at top [2]

3) Searching for coverage.py doesn't show `ned / coverage.py` in the first page! There are lesser-known _forks_ of coverage.py that show up higher than the original project. [3]

I'm sure these will improve over time, but discoverability is still incredibly difficult on bitbucket.

[1] [http://i.imgur.com/soRXB98.png](http://i.imgur.com/soRXB98.png) [2] [http://i.imgur.com/z5YmcL2.png](http://i.imgur.com/z5YmcL2.png) [3] [http://i.imgur.com/uhg8rbc.png](http://i.imgur.com/uhg8rbc.png)

<comment><USER3> Why not use Google? Searching for 'coverage.py', the bitbucked repository is the fifth link for me. The first and second link are more general informational pages which link to the bitbucket repository. Searching for 'coverage.py source repository' gives the bitbucket repository as the first and second result.

<comment><USER4> Because Bitbucket's own search ought to have more insight into searching its content (but apparently not).

<comment><USER5> I think the core complaint, though, is that people's first step should be "search using a general search engine" (whether Google or Bing or Baidu or Yandex, etc.) not "search using GitHub". The complaint and expectation is not "someone should have tried to see if it was explicitly on BitBucket", but "people should not assume that you are using a single service". It is effectively similar to "I tried to find your email address and I couldn't" coming down to "I looked on G+ so I could find your Gmail address, and you don't seem to even have an account". There are tons of alternatives to both GitHub and BitBucket, including "I am hosting my repository on my own domain": having everyone assume "well, the content must be accessible within a specific silo" to the point of not even considering "I should use a general purpose web search engine for this use" is an egregious example of "bad monoculture".

</comment></comment></comment></comment><comment><USER6> I go to GitHub to find a project first because that's where I hope it is. GitHub's UI and culture go a long way towards standardizing repo layout in such a way that I can more easily use it, plus if I find bugs or issues there's the Issues and Fork links right there.

In my admittedly anecdotal experience, GitHub projects are way more likely to have a clear overview with a link to a GitHub Pages site with real docs, they're more likely to define the rules/procedures for sending in contributions, and they're more likely to have an active community of contributors. I know I'm not going to have to hunt for the source link in a paragraph somewhere, because if I know the repo name and author I can clone the source.

</comment><comment><USER7> If issue tracking could be distributed (yes I know about Fossil and others), and the players like github and bitbucket were compatible with such, then we would no longer have any dependence on any of these services.

The way I'd host my projects would be:

1\. I have my own server where I have a git repo, the issues repo, and maybe a wiki repo.

2\. My server would host semi-statically generated project browsers; source code browsers, issue browsers, etc. Unlike when I was running Trac, I'd have no need to allow people access to my server, no need to worry about spammers, pages would be low-latency/cachable so that I can allow crawlers as well even on a very small linode host.

3\. all of my wiki/issues/git would mirror out to github, bitbucket, and whoever else wants to participate, and updates on those sites mirror back. I already do this now with my git repos using WSGI services and hooks.

4\. when someone wants to post/update an issue, they link out to one of those services, or even run a local command line/GUI based issue system (wouldn't that be great??), and everything synchronizes back.

The only missing link is a decent distributed issue system everyone can get behind. Building out the glue to sync between services is not that hard of a task.

<comment><USER8> > If issue tracking could be distributed (yes I know about Fossil and others), > and the players like github and bitbucket were compatible with such, then we > would no longer have any dependence on any of these services.

This is definitely the biggest problem, there are a bunch of "distributed" trackers living inside the repository, but so far I've seen nothing which worked well (even ignoring the lack of integration with gh/bb/whatever).

There's the second issue of contribution workflow though, it's not really possible to have a dozen different places where contributions can be proposed, discussed, hashed out and possibly rejected; with the sub-problem of tools integration (e.g. integration bots or CI runs on contribution proposals)

<comment><USER9> My issue with that is _how_?

I have seen file(s) in the repo. But branching a big makes little sense

I have seen git-notes, which seems good, but nothing survived across rebases.

There is a zombie StackOverflow thread on this but I would love a good solution -

<comment><USER8> > My issue with that is how?

Well that's the big nut to crack isn't it?

</comment></comment></comment></comment><comment><USER10> I totally agree with the author.

Worse is, when answering to the question what do you use for version control software, I hear quite often people saying "github" and not git, and not understanding the difference between the two.

<comment><USER11> Yes, and some people say "just go on git" or "I found it on git", meaning "GitHub".

</comment></comment><comment><USER12> Whenever Github goes down I always wish someone would invent a decentralized version control system.

Remember at work when Github goes down everyone is just sitting there twiddling their thumbs for hours. As in "yeah my commit is ready just waiting to push it" or "waiting for the issue to be close, then we can test".

It is ironic a bit isn't it. One of Git's major selling points was -- we are tired of one centralized version system, you shouldn't need a single point of failure or be tied to the network in order to develop. And then years later we have one giant global single point of failure across the world. There is some irony there.

(Yeah, yeah, I know I can commit locally. But at some point you'll need to update issues, and publish your changes. This is more a of a generalized point. It would be the same if bitbucket went down and so on. We never it seems have gotten to the mythical peer 2 peer internet of things -- it just doesn't work it seems).

<comment><USER13> > But at some point you'll need to update issues, and publish your changes.

The second part is solved. You just need a second git server. Maybe Bitbucket, or maybe your own. We just never do it though, for reasons I don't know either. I don't do it, even if I know how. There are multiple tools to push to different servers automatically, but we still go the comfortable route. Maybe it's the psychological thing that "if Github goes down it won't be for long, is it really going to affect me?".

Because of that I don't agree the tools are the problem though. Or even that they are part of some irony. Git delivers on its promise. People just don't use it like that.

The issues part or the dependency with Github to test/deploy software is more of a vendor lock in situation. A lot of people depend on it being up to work, but that's the convenience charge since Github isn't open source. Not much different from people depending on Heroku to be up for their application to function.

<comment><USER14> On that note, question. Is there an easy way to create mirror servers?

For instance, have a Github repo but also a personal Git server and Bitbucket. Whenever you do `git push`, it'd update all three. And all three would be in sync.

<comment><USER13> There are a few ways.

You can create a single remote called "all" that has all your servers URLs. Then you can just push to that one, like "git push all", and all your servers will update. Pretty much the simplest, you just need to edit the .git/config.

You can set up a mirror too ("git remote add foobar --mirror=push ..."), but I've never done that.

Or make a hook so that whenever you push to a remote it also pushes to another.

There's also mr[1], which I've heard of but not used.

There are ways aplenty, we just neglect to use them.

[1]: [http://myrepos.branchable.com/](http://myrepos.branchable.com/)

</comment></comment></comment></comment><comment><USER15> One of the nice things about Github and Bitbucket is that they both use Git. You can push to both of them and enjoy the best of both worlds.

        git remote add bitbucket email@example.com:username/reponame.git
        git remote add github firstname.lastname@example.com:username/reponame.git

You could even add another Git repository you control fully as well.

</comment><comment><USER16> So where it the 'apache' of Github? Presumably that would be Gitlab, but its not quite aligned with the Github experience.

One could imagine a package you install on your droplet, ec2, linode, what- have-you, which would create a 'site' for your project which included a Wiki, a user management package with role management, automated source code backup to Glacier, automated mirror management to choice of mirrors. Install, set up your various keys (aws, ssh to mirrors, etc) and then push to it your source and make it the origin master.

You make that and then people might start creating free floating git repos, except that it will cost them some small money (like $25/month) which would discourage many people.

<comment><USER17> Gitlab is a non-starter since it requires developers who can barely manage to use Git to also run their own servers. If that weren't the case, then we'd just have another GitHub-lookalike. I'm old enough to remember when self- hosted Subversion was a popular geek "badge of honor", and the frustration of trying to pull code from some guy's VPS that had been offline all weekend.

Something like Fossil's model seems better, where issue tracker and wiki are instead built into the repository. Sure, essentially you're still running a little mini web server on the local machine, but the presentation is completely different (a single binary rather than a huge Ruby webapp with many dependencies).

The problem isn't really that GitHub goes down, but that we can't mutate or make use of certain pieces of state while it is down (mostly issues/wiki), and nobody can see our changes until it comes back up.

Actually Git comes with all the tools necessary to send pure data in the form of changesets by mail, its just that its usability sucks unless you have a working sendmail/mutt config, which 99% of devs don't bother with any more.

That seems the more interesting thing to fix, rather than just having another self-hosted SourceForge clone or whatever

<comment><USER6> As a side note, GitHub wikis are actually git repos that use Gollum:

[https://github.com/gollum/gollum](https://github.com/gollum/gollum) / email@example.com:gollum/gollum.wiki.git

As such, you can clone wikis, work on them locally, and push changes later just like any other git repo.

<comment><USER17> Yep, but unless you train your team up on using Mou or just reading raw markdown, you can't actually browse or publish to the wiki ("use or mutate state"), and again the usability is horrible so nobody will do it.

Usability is the huge selling point of Github, so any replacement would need to be as slick

<comment><USER6> It's Gollum. So if you install the Gollum gem and tell it to serve the directory, it'll serve it up just fine.

</comment></comment></comment></comment></comment><comment><USER18> This article captures just a little of what I've been feeling for some time.

There are a couple of other things about GitHub specifically, and the presumption in some quarters that everyone uses it, that put me off.

Firstly, they create their own world where lots of things aren't quite like normal Git. Some are simple terminology changes, like using "fork" instead of "clone". Some are more intrusive, like tying the pull request mechanism to the GitHub review tool.

Secondly, GitHub terms only let you have one unpaid account. If I want to maintain some personal repos, but also some with one of my professional hats on, it costs me money. If I want to keep my work on a major project separate to a few sidelines, it costs me money.

Thirdly, GitHub is an on-line service, and like anything else in the cloud, that means it comes with unknown security, privacy and reliability implications. For a big open source project, that might or might not be a problem, but I don't know why anyone would expect me to host my own projects there instead of, I don't know, in a Git repository on a server at home or at work, or something crazy like that.

So no, sorry, I won't fork you on GitHub. Nor will I contribute a patch via a pull request. Nor will I raise my helpful bug report on your project if you require me to submit it via GitHub. And I guess I'm lucky that I don't apply for jobs as an employee any more, because I am able to show approximately none of the best professional quality code I write without violating confidentiality agreements, and certainly none of it is in a GitHub repo for public inspection.

I am happy to support open source projects when I have a bit of time free, and I'm happy to demonstrate my credentials and abilities to prospective clients, but GitHub is a hoop that is rarely worth jumping through IME.

<comment><USER19> Well, a fork isn't the same as a clone, so that is why there are different words.

There is no pull request mechanism not tied to a site, unless you want to send an email with a public git URL yourself. Which you can still do, assuming the project you are working with has specified that. But why should you be able to dictate to other people that they do it this way? Github gives you the public URL, if you want it to, and lots of people do.

Hosting your own source repository also has unknown security, privacy and reliability implications. (Or known ones that are often not very good)

It doesn't really matter to Github users if you don't want to use Github. Doesn't make a lot of sense that you would decline to make bug reports just because the project used Github. That sounds like you are boycotting those projects for some moral reason.

<comment><USER18> _Well, a fork isn 't the same as a clone, so that is why there are different words._

Perhaps unintentionally, I think you have just made my first point better than anything I wrote before.

 _But why should you be able to dictate to other people that they do it this way?_

I wouldn't presume to dictate anything to anyone. I'm just explaining why _I_ find it frustrating that so many people now assume others will work _their_ way, as if using GitHub is some sort of universal norm.

 _Hosting your own source repository also has unknown security, privacy and reliability implications._

So the cloud guys keep saying. And yet we keep hearing about downtime and security breaches in cloud services, while the servers and normal Git repos I use regularly all seem to work just fine. I guess the guys running all those projects must be some kind of sysadmin demigods or something.

 _It doesn 't really matter to Github users if you don't want to use Github._

It does if they want me (or anyone with similar feelings; let's not make this personal) to contribute to their projects.

 _Doesn 't make a lot of sense that you would decline to make bug reports just because the project used Github._

I don't. I decline to make bug reports when _making the bug report_ requires the use of GitHub, which is probably a more dangerous trend that I have observed with increasing frequency in recent months.

 _That sounds like you are boycotting those projects for some moral reason._

I have no idea where you got that from. I'm not "boycotting" those projects at all. But since I can't create a free GitHub account just to contribute to them without affecting anything else I might do there, and since participating via GitHub is significantly more hassle than contributing to other projects I have supported in various ways, I choose to spend my available time where I can help other projects more efficiently.

</comment></comment></comment><comment><USER20> Mercurial is so much easier for day to day usage, I work with both and need to explain so much more when getting a new person up to speed with git. The "detached head" state is very difficult to explain.

<comment><USER21> I absolutely agree but I still use git.

Since git has largely won the dvcs war and I'm a one man developer having to inter-operate with others it makes sense for me to suck it up and use git myself.

I really dislike git though.

<comment><USER22> You might try SmartGit/Hg. I've been using it for a year now and find it vastly superior to the Git command line.

As one example mentioned by the gp, the "detached heads" are a breeze: Just click the Lost Heads checkbox and they all show up in the visual log like any other commit. It was when I saw this that the concept of detached heads made sense to me.

Of course, when I've suggested SmartGit to people, a few have replied, "Oh no, I would never use a GUI for this, it's command line only for me."

To each his own, but I don't understand that. To me, source control is an inherently visual activity just like text editing, and a visual tool is a good match.

So for anyone who is willing to consider a visual tool, I highly recommend it.

[http://www.syntevo.com/smartgithg/](http://www.syntevo.com/smartgithg/)

<comment><USER21> That looks interesting.

I'm mostly ok now though since I rammed enough of git's weirdness into my head that I can work with it (that and phpstorm/pycharm have nice basic git support).

</comment></comment></comment></comment><comment><USER23> I wouldn't mind -- strictly from a user standpoint -- if all code was in one place. It's easier to collaborate and contribute to other repositories when they're all in the same SCM and host. If someone has their source in another host (whether it's Git or some other SCM), I'm less likely to bother contributing -- and I would assume this is the case with many others.

Of course, from an "all your eggs in one basket" or business monopolization standpoint, I agree with the author.

But selfishly speaking, I like Github and find that it adds more value to me the more it becomes a monoculture.

</comment><comment><USER24> I wrote about something similar in in 2010 because these sites are walled gardens: [http://kev009.com/wp/2010/10/stop-distributed-version- contro...](http://kev009.com/wp/2010/10/stop-distributed-version-control- diaspora/)

I was hoping for something like Diaspora ([https://joindiaspora.com/](https://joindiaspora.com/)) so we could use our choice of repo or self-hosting but still interact with a global community.

</comment><comment><USER25> Github isn't the only choice, but I think it's the preferred choice for a code sharing community because they basically give their product for free for open- source projects on public repositories. And it's easy and good looking.

Bitbucket distinguishes itself from Github by making itself free for small teams only, but allowing you free private repositories. Seems like they are more interested in businesses and proprietary code.

<comment><USER26> I like Github, but just switched our business repos over to bitbucket. Github's pricing for businesses isn't even competitive.

<comment><USER25> It's not immediately apparent from the front accessible parts of Bitbucket's website, but if you refer users with a provided link you also get up to 3 extra free users.

</comment></comment></comment><comment><USER27> So BitBucket and Gitorious and others will need to excel and beat GitHub at their game. Competition will eventually solve this the same way we aren't beholden to the same methods and sites we used 10 years ago. The next winner may not even exist yet and I expect that the barriers to entry here are not nearly as high as those in other markets that have been disrupted over the last few years.

<comment><USER28> GitHub has already won due to networking effects. It's like trying to unseat Facebook as the dominant social network. It will require a sea change in technology used for version control or sharing code.

<comment><USER29> We've seen other, similar, widely-used platforms lose prominence rather quickly. SourceForge and Google Code are two such examples (both of which also support Git these days). I see no reason why GitHub would be immune from such forces.

<comment><USER19> It isn't, but something better has to come along first. We'd still be using Sourceforge if it were not for its successors.

<comment><USER30> This is the key. Also, people need to remember that "better," in the case of taking over market leader position, means that the value add of the improvement must be > the benefits of using the market leader. This is a higher bar than simply newProductX > marketLeader.

</comment></comment></comment></comment></comment><comment><USER31> I use Bitbucket too. Github doesn't provide free private repos last time I checked, needed for bootstrapped startup. The centralization vs. distribution+independent evolution debate is always an interesting one, though. I think you need high quality centralization at first then competition can be useful; Github set the bar, now lets see what everybody else can bring to the table

</comment><comment><USER32> I would love it if Github built in a contributors license agreement into my repos so all issues and wiki content were licensed to the repo owner. This would give repo owners the ability to move from one version control service to another without getting locked in by copyright issues on issues and comments made by others.

</comment><comment><USER33> This is a non-issue and I don't mean that in a small way.

Github has produced a near monopoly on hosting for popular open source projects because it is so liked (as OP himself admits). Soon enough something better will come along that makes Github look like SourceForge and then we will all migrate our projects over there.

</comment><comment><USER34> Finding out a project is on Bitbucket or uses Mercurial has actually stopped me wanting to contribute. The additional hassle of remembering how Mercurial works, digging out my BitBucket credentials etc, is a pain in the backside.

<comment><USER35> You can use bitbucket just fine to host git projects.

I use a mixture of bitbucket and github for different projects, not wanting all my eggs in one basket, really. I find them pretty much equal in many respects - except being able to have private repos on bitbucket is very convenient, and github pages is also very useful. I wish bitbucket had something similar.

[https://bitbucket.org/dfairhead/streetsign- server](https://bitbucket.org/dfairhead/streetsign-server) in case you're interested.

</comment></comment><comment><USER36> I don't see why this is a bad thing.

There is inherently less cognitive overhead to use something you are already familiar with. Same reason why people wouldn't give Bing the time of day.

All things being equal, and you just had to choose a public place for a remote repo, Github should be your first choice unless you have a very good reason go use something else.

I'd rather not, nor expect consumers of my code, to have to learn a completely different UI than what they are used to in order to use or contribute to my public repo.

</comment><comment><USER37> I recently started a storing a new project and its services on Bitbucket for a variety of reasons.

\- I think it's healthy to always look at the different tools in the space to witness first hand if you're missing out on something

\- There's some product integration in the works, so, it only makes sense to get curious about how existing users of the platform may feel once it _is_ there.

So far it's going well, but it's early days.

<comment><USER38> I actually much prefer bitbucket's issue tracker to github's.

</comment></comment><comment><USER39> It's interesting to see the progression of public source control hosting. SourceForge was the goto place for many years, but it's really only used for hosting large binaries at this point, and very few people host code there. Google Code started to steal some people away from SF, but again it was more focused on project hosting then just getting code to people.

Github is interesting is that the code is shown front-and-center whenever you visit a project page. Sure there is the Readme.md and wiki stuff you can do, but it makes browsing code and project discovery very easy. Github also made project creation and management super easy and lightweight. The number of questions you need to answer to setup a repo is so minimal. It gets out of your way when setting up a project.

I still feel like Google Code has some things going for it. The biggest being it's defect tracker compared to Github.

<comment><USER40> I actually don't feel like having the code at the top is helpful for me. I rarely look at code on github. I go to a project page and scroll down past the code to read the readme. That happens easily 37 times out of 38. Yea, I made up those numbers. I know there's been a few times I've clicked on the code but it seems so seldom I'd much rather the readme was front and center and there was a "code" button/tab.

If the project sounds interesting I download it and look at the code locally. The few times I look at the code online is in response to like a stackoverflow question if I don't have the code locally already and I want to look up something.

But that's just me. It's not that big a deal for me to scroll down. If everyone else goes to code more than the readme under it then fine

<comment><USER41> I find that casually overlooking the root directory very often gives me a good estimate of how active the project is (and in which subdirectories it's been worked on most recently) and also (very superficially) how clean the code base is (e.g. are there falsely committed backup/swap/a.out files even in the root dir). Of course, in most cases I'd immediately scroll down to the readme.

Unless, however, I really do want to view a file online (say because I want to check the API of some command I'm using and it is not documented otherwise) in which case I really appreciate that it is so easy to find. I really don't understand why most other web frontends (Bitbucket, Gitweb, GitLab) make the commit log the first thing to see on the summary page. These mean nothing to me from an outside perspective.

</comment></comment></comment><comment><USER42> This basically reduces to two questions:

a) is github monoculture is bad?

I really disagree with author's view on the emphasize on public github project in job interview process is misplaced. Yes, it will not eval how good you are at your previous job, but the problem is it is very very hard to find how good you are at previous job. Doing open source project at spare time is a positive sign of interest in programming. If in the interview process you said I don't have a github account, but I put all my repo at abc.com, I am pretty sure it will work, too.

And I don't care the monoculture if its service is the best in this field. Why use the second best if the best is possble? I would like to be an earlier adoptor if there are better service, even if there are currently no user.

b) how to disrupt github?

That I have no idea. What github does not provide but is really needed? I do not know. Would love to hear ideas.

<comment><USER43> > b) how to disrupt github?

There are certainly areas that github could use some improvement. One of the basic features that I see as currently missing is actual side-by-side Diffs like those available in Chromium Code Reviews[1]. This makes it so much easier to review code changes and thus improves the experience of collaboratively working on a project. The Github folks are smart people, so I'm sure they know this and yet years after launch this is still not available in Github while they continue adding things like improved map diffs [2] which while nice features on their own, it only serves to show that a good code diff experience is not as important to them now.

Secondly, I find Github search to be lacking in terms of fulfilling its potential. It seems we all agree that Github is the number one place most people put their public code on. This is great, we have one central public repository. And yet searching for, finding and discovering good code on Github is not as easy as it should be. I argue that it should be easy to find solutions to programming problems that others have already tackled. Imagine being able to type "compute sha256, c++" and seeing relevant code snippets right there. I am not saying this is an easy problem to solve, but I think it's definitely worthwhile one to try. Who knows, may be someone will build an awesome code search engine on top of github.

[1] - [https://codereview.chromium.org/261573002/diff/60001/google_...](https://codereview.chromium.org/261573002/diff/60001/google_apis/gcm/engine/checkin_request.cc)

[2] - [https://github.com/blog/1772-diffable-more-customizable- maps](https://github.com/blog/1772-diffable-more-customizable-maps)

<comment><USER44> If you use Chrome you can install the Octosplitt[1] extension for side-by-side diffs.

[1]: [https://chrome.google.com/webstore/detail/mnkacicafjlllhcedh...](https://chrome.google.com/webstore/detail/mnkacicafjlllhcedhhphhpapmdgjfbb)

</comment></comment></comment><comment><USER45> The one thing GitHub excels at where everyone else doesn't even come close is as a place to read the code. Big bucket, unfortunately, doesn't even come close in code reading.

GitHub is the only place where you can easily read, search, and immediately get the commit history for a file in one place extremely quickly.

</comment><comment><USER9> Oddly what seems to have sparked this blog was someone failing to find Ned's own "coverage.py" on githubs search. Ned's response was interesting - there is clearly a monoculture - they should have searched on google.

my first though was - but Ned is caught in the far more worrying _search monoculture_.

And my second thought was the other monocultures to fear more - antibiotics, wheat and soya...

In the end, contributing to someone else's code is hard - it requires not merely coding skills but agreements on standards, willingness to compromise, and willingness never to do so, it requires humility and determination. Anything that makes that easier I welcome - I suspect githubs biggest issue is not having people _start_ repos, it's having > 1 person work in the same repo.

They can solve that, more than happy to live with that monoculture

</comment><comment><USER30> >they should be a choice, not the only choice.

They are a choice. The author even mentioned Bitbucket. The fact that Github has become the dominant player doesn't make it not a choice. There is no one preventing a competitor from emerging and working to compete with Github (the same way Git emerged and enabled Github to exist in the first place). Being frustrated that people default to Github doesn't mean the choice to use something else doesn't exist. It does, most people have just decided not to.

</comment><comment><USER46> Most people can't be bothered to choose a domain, set up a web and e-mail servers for it (because if you're doing it, you gotta _do it right_ ) and then maintain it all. Even though it's on almost everyone's todo list, I'm sure.

Setting up a GitHub profile and posting a few quips on Twitter is almost effortless. So that's what we use. If someone comes a long and makes a competing product that is just as easy to use, people will switch. It won't be much of a problem.

<comment><USER6> GitHub got content creators in the door by being easy to use like that. It became the de facto search engine for users looking to find projects because once you have a critical mass of the creators, that's what happens.

If whoever comes along with a competing product runs it in a centralized manner like GitHub, then they'll create the same issue the OP has with GitHub. If they offer a decentralized, easy to use solution, they need to also offer a way for the person looking for a project to search the decentralized net. Without a unified search, nobody is going to oust GitHub from their spot.

</comment></comment><comment><USER47> I feel the same about the rise of Macbooks in the dev community. A proprietary platform becoming a standard and excluding people having different use-cases.

</comment><comment><USER48> This is not a social problem, talking about it like one is just going to end in tears.

This is a _technical_ problem.

There is no way to efficiently look for code across the various repository sites. Too often a search on google turns up nothing, while searching on github (or pypi or another repository of software libraries) finds exactly what you are looking for.

Until there is an effective way to search for code, people will be left no other choice than to search on a few sites (github is by far the largest, so most people will check there, and some may not check anywhere else!).

To the author: if this bothers you, fix it, but don't act like it's a behavioral issue. (Also, bitbucket has been dead for like 5 years, it's a backwater and it's not going to come back.)

<comment><USER9> No it's a social problem. I do not search for code using function names or snippets of amusing for loops.

I want to find code based on "it's simple, you know my kind of simple, like made it into the BSD manual simple, but I also need it to be in python or bash because I am going to need to back on it but not spend so long on it that it becomes full time (leaves out C++ and haskell)

Ok now it must work with rabbit MQ and preferably install via pipy and run with decent test coverage using py.test and

you get the idea.

Anyway no search system does that - what does that is newsletters and emails and recommendation and ... _social_ interactions

</comment></comment><comment><USER49> Maybe all the other places to host code should just do their job better. Ever think of that?

There are a plethora of choices, and you can _always_ use Google to find projects. However, it happens to be that GitHub is the best choice, it's a free choice, and there's really no reason NOT to use it other than some stupid prejudice that putting all your code in one place is a bad idea.

Keep backups, and of course make sure GitHub isn't the _only_ place your code exists (since you're using Git, that's not the case). and I don't really see a problem here.

</comment><comment><USER50> "The D in GitHub stands for Distributed"

</comment><comment><USER51> It is a valid point of view and the same argument can be used to many other websites and services across the web.

</comment><comment><USER28> I actually much prefer Unfuddle to GitHub, but everyone is on GitHub, so I use GitHub.

</comment><comment><USER52> " _we are asked to provide a Github username and a Twitter handle. I suggested that a homepage URL is a more powerful and flexible way for authors to invite the curious to learn more about them_ "

Your website demonstrates who you say you are. Github work demonstrates who you actually are.

<comment><USER29> Many of the best programmers I've ever worked with have absolutely no code on GitHub. Why is that? It's because they're using their talents and abilities in industry, solving real problems, in positions where they're obligated to not share the code they've produced.

I'd hire those people any day over somebody with numerous GitHub repos filled with quasi-maintained JavaScript libraries or numerous forks of code they didn't write.

</comment></comment><comment><USER53> I was hoping this had to do with monocles</comment>


Enterprise Startups and Y Combinator - <AUTHOR> http://blog.rmorrison.org/enterprise-startups-and-y-combinator

<comment><USER2> I think the lack of enterprise startups boils down to one simple issue, most people interested in startups have no understanding of enterprise.

As an enterprise guy, I read HN discussions on subjects and there is just a lack of understanding about why enterprise companies do what they do, why they're so risk adverse, what they look for in tech, etc.

Sure, a lot of enterprise sized solutions aren't that sexy. Sure, enterprise sales is a pain. But really, the kicker is that most 20 somethings just don't have a strong grasp of what makes the enterprise tick.

<comment><USER3> can you please write about this? I'm a 20-something looking to create a SaaS for Enterprise customers, and I'm constantly coming up dry. There's a lot of literature revolving around 20 bucks/month for a simple web app but pretty much lost and overwhelmed by the technical language behind most Enterprisey websites and the sheer number of features that seem dumped into a product which confuses the software engineering inside of me.

I've begun researching Oracle Partnership and Salesforce, but even then, I am just lost as to how I can acquire my first enterprise customer because I don't know what they want and what they are looking for.

I understand that enterprise sale cycles is long and I've posted numerous questions about hacking my way into this space with little response.

<comment><USER2> So just to give some quick answers to points you've brought up:

Pricing for Enterprise is tricky, mostly because there are magic numbers where you go from 1 channel of approval to another. The goal is to price yourself high enough that they take you seriously without pricing yourself so high that you end up needing approval from a guy who doesn't care about the problem you're solving (unless of course you're ready to pitch to that audience).

The long list of features is a side effect of the risk adverse nature of enterprise. One of the big things enterprise looks for is solutions to "what ifs". What if X happens, what if Y operates different, how do we know when Z occurred? Ultimately you are trying to sell them a solution that doesn't create a whole host of new problems and the feature list helps ensure that. Besides that, long feature lists help with the sales pitch.

As for finding customers, that is where the real battle exists. Ideally you already have a short list of potential customers that you can talk to and work with while you create your initial product. Creating something from scratch and then trying to sell it is a much harder path to go down. I think there are hacks to this involving partnerships with other 3rd party solution providers but ultimately getting your first customer is going to be the biggest hurdle to overcome.

Personally, I've shied away from enterprise startup ideas because 1) If I'm doing a startup, its probably to get out of the enterprise world and 2) Selling to the enterprise truly is a long, arduous experience that I'd rather avoid.

</comment></comment></comment><comment><USER4> Our team put a lot of thought into deciding whether YC was a good fit for Ambition (YCw14) - well, after it was a possible option - as my cofounders actually didn't know I'd applied to YC for us until we were invited to interview.

We thought (as many do) YC was largely for consumer, idea stage companies, and that B2B was not a focus.

Demo Day was yesterday; YC has been an incredible experience and value add for Ambition. The partners are incredibly smart and apply product/ market/ sales expertise across various industries Cumulatively they have seen everything, so the knowledge base is deep.

Targeting customer segments, simplifying product, meeting investors, and being strategic about marketing, partnerships, and media.

Bottom line: our company is probably _years_ ahead of where we were in Dec 2013. We now have a backlog of customers, relationships with a great group of investors/ partners, and our product is delivering.

If you're doing enterprise or B2B, I would _strongly_ recommend looking at YC.

</comment><comment><USER5> Great post Rick! I'm thankful that companies like Comprehend led the way for enterprise companies at YC. After my batch (S2013) and the most recent Demo Day, I think it's pretty clear that YC provides a lot of value to enterprise startups.

For any B2B founder wondering if YC is a fit for your company, don't let old stereotypes get in the way of applying. YC is not just consumer. It's not just 20-year olds (I was 35). YC is a network of the smartest, most passionate people you've ever met.

</comment><comment><USER6> I do a lot of Enterprise Startup evaluation for the company I work for. I read hacker news regularly, but consider it entirely separate from my job. I don't see much about Enterprise at all through YC or discussed here.

Perhaps it's just me, but I find it odd that I share so much in common with my job evaluation and hackernews as a concept, and yet I consider reading and viewing here a personal activity that has no relevance to my work.

I think that has something to do with Enterprise startups not being considered sexy, or on the radar of most people.

Perhaps it's that people who are most likely to build startups through YC are people who haven't been in Enterprises for years, and thus don't have visibility to the needs or considerations.

If I were creating a startup today, I'd target the Enterprise sector because there are needs that aren't filled, and being bought by a large company is a quite reasonable exit strategy.

Selling it to Enterprise can be expensive, but you only really need a few successful hits as opposed to generating a massive hockey stick of users.

<comment><USER7> I see enterprise discussed on HN when its related to scalable infrastructures or NoSQL databases. However, it'll only be 'sexy' ones like open source solutions, something amazon built, or something ex-facebook/ex-googlers came out with.

</comment></comment><comment><USER8> My product is aimed at the enterprise and I actually thought about applying to YC and may still, but it was really off putting seeing the video requirement. I really don't understand the purpose of it. Once you know my name you'll be able to find my linkedin profile with my picture:

[http://www.gravatar.com/avatar/ab5e41c4c804017c36e071b54cb20...](http://www.gravatar.com/avatar/ab5e41c4c804017c36e071b54cb20bd7.png?s=120&r=pg&d=identicon)

What is the purpose of the video?

I like to think I'm pretty articulate but I really hate speaking into the air with no visible recipient. It is the same reason I despise leaving voice messages. Maybe their is a technical term for this, who knows.

</comment><comment><USER9> "The future is already here — it's just not very evenly distributed."

Nowhere is this more true than in enterprise / gov, which is gradually being pulled out of the tech dark ages. It's inevitable - even if it's 5 years behind the rest of society, the tech profiles of these organizations WILL shift (ARE shifting).

Enterprise startups get a lot of hate, but I encourage everyone to consider what a joy it is to blow the mind of an enterprise user by solving their problem in a way they didn't realize was possible.

It's like being a doctor and a magician at once.</comment>


Intel Moving to Chiplets: 'Client 2.0' for 7nm - <AUTHOR> https://www.anandtech.com/show/16021/intel-moving-to-chiplets-client-20-for-7nm <comment><USER2> Didn't they mock AMD in their presentations for "glued together desktop dies" not too long ago?

/me giggles</comment>


Will There Ever be a Viable Adsense Competitor? - <AUTHOR> http://www.gabrielweinberg.com/blog/2008/04/will-there-ever-be-a-viable-ad.html

<comment><USER2> I think the question to ask instead is if there will be a viable _AdWords_ competitor. Without a strong pool of ads, you won't have a competitive alternative.

Looking at the system from my own perspective as an advertiser:

Google AdWords is absolutely amazing in its flexibility, customization, speed, return on investment, etc. The tools provided are wonderfully helpful and I happily shovel gobs of cash to The Google every month.

Microsoft AdCenter (Live.com) isn't quite as flexible, but it's getting there. The tools are decent and improving, with the only limiting factor being the modest number of visitors their search engine receives. The dribble of click traffic from Live.com / MSN is small, but it's worth paying for.

Yahoo Search Marketing by contrast is an absolute joke. The ad system is slow, inflexible, unreliable and a complete waste of time and cash. Even the most basic filtering option –- displaying ads only on Yahoo's Search page –- isn't available, and so your ads will appear on every spammy domain squatting and adware site under the sun. If you've a high per-click cost, advertising cash spent at Yahoo is completely wasted and is best directed back to (you guessed it) Google.

Ask.com, etc: Similar. Within a day of signing up and advertising, you'll see a remarkable number of clicks, all originating from sleazy domain squatters and link farms. As far as competing for ads goes, these guys aren't even in the race.

My dream: I'd love to see Microsoft acquire Yahoo and replace Yahoo's joke of an ad management system with Live.com's halfway decent alternative. That one action alone would probably do more for Yahoo's bottom line than any number of new niche content network improvements... but that's another rant entirely.

</comment><comment><USER3> People always seem to make the same mistakes in their thinking, again and again.

Few years ago no one thought that IBM can be crushed. It looked like an eternal company that nearly monopolized the market. Then, Microsoft appeared and changed the computer industry we know. After few years, everyone recognized Microsoft as a giant forever. Of course, it didn't take too much time to Yahoo! to appear, and then, to Google to appear.

Other thing we can learn from the history is that today's market doesn't matter in the long run. You don't innovate by fighting their own game, but by creating your own, with your rules.

<comment><AUTHOR> I'm not sure if you are referring to me (the post's author) or not. In any case, what I was trying to say, is "where is the viable AdSense competitor?" and not "that there will never be one." In fact, the post casually argues the opposite, i.e. that there should be one already!

Or are you trying to say that it is a waste of time to chase AdSense and instead one should concentrate on some end-run around it? To that I would say, well, both! There seems no no reason to forgo billions of dollars in yearly revenue for the foreseeable future.

<comment><USER3> Yes, I partially reffer to you, but in a broader sense.

The most important to recognize, in my opinion, is that there is no such thing as a huge market of delivering Google-alike ads. There's only a market of finding right customers for companies, and this is the market that makes billions of dollars every year. (just like there's no "Turkish food market" -- there's only "cheap quickly delivered food for busy people market")

This is how the innovation works: you find completely new answers to old problems. And what you asked for is a mere slighty better reiteration of the answer that works pretty well. Unfortunately, if you want to grab the money from the desk, you can't do this.

<comment><AUTHOR> I see your point, but I respectfully disagree with the notion that you need a new solution to grab some of this money. If there was a credible company that offered an exact clone of AdSense (i.e., no further innovation) but they paid more, I believe people would switch. I know I would.

<comment><USER4> Right. There are some network effects in this market, but they're not _that_ strong. Offer more money, and people will jump. It's not like the MS Office market where people have to be dragged kicking and screaming to a free alternative.

</comment></comment></comment></comment></comment><comment><USER5> Yes.

<comment><USER6> So either you are working on some startup that will be a viable competitor but are still in the famed "stealth mode", or you know public information you are not sharing with us. C'moonnn, tell us more. ;)</comment></comment>


China mobilises thousands of troops, armoured vehicles near border with India - <AUTHOR> https://www.scmp.com/news/china/military/article/3088093/china-mobilises-thousands-troops-armoured-vehicles-near-border/ <comment><USER2> I find it interesting that the article shows a photos of troops being transported by commercial plane.

Is it standard practice? Or does it perhaps show that the Chinese military is still somewhat short of transport planes?

</comment><comment><USER3> F.G.T.H - Two Tribes (5m24s)

[1] [https://www.youtube.com/watch?v=SXWVpcypf0w](https://www.youtube.com/watch?v=SXWVpcypf0w)</comment>


Nintendo Stock Spikes on Launch of Pokemon GO - <AUTHOR> http://data.cnbc.com/quotes/7974.T-JP <comment><USER2> Does Nintendo really have that much to do with this? Pokemon Go is developed by Nitantic, and aren't the rights to Pokemon owned by The Pokemon Company? Is it just because Nintendo owns a large portion of The Pokemon Company, or does Nintendo themselves directly profit from this game?

<comment><USER3> This is a good question -- my impression is that Niantic is assumed to have used existing Ingress tech that they jointly manage with Nintendo. The Pokemon Company handles marketing and licensing and not much else.

Nintendo does have a lot of capable staff and I wouldn't be surprised if there are a few dozen tech folks at the center of this, between Nintendo, Niantic, and Google, that are excited to make this game a success. This kind of tech talent cross-pollination is good for everybody involved and Nintendo's stock price growth is a reflection of this.</comment></comment>


Women now hold a majority of all management positions in the U.S - <AUTHOR> http://fusion.net/story/115596/women-now-hold-a-majority-of-all-management-and-professional-positions-in-the-u-s/?utm_source=rss&utm_medium=feed&utm_campaign=/feed/

<comment><USER2> The conclusion of the Harvard study at the end of the article is revealing:

"The gap exists because hours of work in many occupations are worth more when given at particular moments and when the hours are more continuous," she writes. "That is, in many occupations earnings have a nonlinear relationship with respect to hours. A flexible schedule often comes at a high price, particularly in the corporate, financial, and legal worlds."

A lot of work, especially in management, requires just being available. Your presence, which may not be necessarily required, makes access to your decision-making and input much easier. It's understandable that women who are not completely sold out to the company their entire careers do not make it to the very top rungs in corporate leadership for this reason.</comment>


moreutils - <AUTHOR> https://joeyh.name/code/moreutils/ <comment><USER2> This is a pretty good collection of small utilities but I would recommend using GNU Parallel[0] instead of the included parallel. It contains a ton of extremely useful additional features such as distributing jobs to remote computers.

[0]: [https://www.gnu.org/software/parallel/](https://www.gnu.org/software/parallel/)

<comment><USER3> One big turnoff with GNU parallel is that the first time it is run on a machine, you must interactively accept a EULA. There are ways around it, but as a rule of thumb I avoid command-line tools that do this, because this inconsistent runtime behavior is annoying _at best_ and can easily break and complicate automation.

And no, I don't want to set an environment variable on a fleet of machines to suppress behavior which shouldn't be enabled by default to begin with! _< cough> .NET telemetry </cough>_

A real shame, because it is an otherwise useful tool IMHO.

<comment><USER4> What it actually does is to beg you to cite parallel if you use it in academic work. There's two ways to silence it:

• Run `touch ~/.parallel/will-cite`.

• Pass the flag `--will-cite`.

Still annoying, although it's easy enough to disable.

</comment></comment></comment><comment><USER5> I propose a new project: lessutils. You post about some program that you use for some simple task that's not among the "standard UNIX utils". (ed, sed, AWK, lex, etc.) Then we show you how to do the same task with only the standard utils. (i.e. no install needed) -- inevitably someone shows us how to do it in AWK and makes all feel stupid. :) If we are successful, you get to eliminate one more dependency from your system, not to mention reducing attack surface.

<comment><USER6> Here's one I use: jq for JSON parsing

<comment><USER7> Yes. letsencrypt.sh is a nice case study, spending a lot of effort to parse json with essentially bash & grep. It works now but is full of assumptions ("this array of hashes will not contain [ anywhere"). There is nothing in POSIX that's _well suited_ to manipulating json in the way that jq is.

</comment></comment></comment><comment><USER8> "nobody thought to write long ago"

Quite a few moreutils involve unbounded buffering of input, I wonder if they were left out of Unix originally due to memory limits.

</comment><comment><USER9> _I 'm a fan of the unix tools philosophy, but I sometimes wonder if there's much room for new tools to be added to that toolbox. I've always wanted to come up with my own general-purpose new unix tool._

This was something of the inspiration for wf as well. [https://github.com/jarcane/wf](https://github.com/jarcane/wf)

<comment><USER10> Just yesterday, I asked on lobste.rs [1] how I could take my small utility to compute the minimum, maximum, and expected value of a dice roll expressed in D&D notation and make it a better Unix citizen. The commenters were helpful, and with few changes I was able to make the program usable in a pipeline, even if I don't really expect that's going to be a use case for me.

As an aside, my utility is also written in Rust; nice to see more of these small programs written in Rust.

[1] [https://lobste.rs/s/fdzyio/how_should_i_make_this_small_prog...](https://lobste.rs/s/fdzyio/how_should_i_make_this_small_programs)

</comment></comment><comment><USER11> Note that "things like this" can sometimes be done just using sed:

      % sed -i -e "s/root/toor/" -e "/joey/d" /etc/passwd

<comment><USER12> That's platform dependent. BSD sed doesn't support -i

<comment><USER13> I don't think that's true anymore, though it was historically. The sed currently shipped with both FreeBSD and OpenBSD supports -i, at least.

</comment></comment></comment><comment><USER14> Once you realize that awk, while useful, is really just a terrible programming language with terrible syntax that you have to write in a string, with random unreadable environment variables to try to hack in useful functionality, then you are finally free.

<comment><USER15> Are there any modern alternatives out there?

<comment><USER16> I had to go and write one: [http://tkatchev.bitbucket.org/tab/](http://tkatchev.bitbucket.org/tab/)

<comment><USER17> Hey, that's nice.

</comment></comment></comment></comment><comment><USER18> > sponge: soak up standard input and write to a file

How does this differ than just redirecting to a file in the shell?

<comment><USER19> If you do something like:

      echo "hello world" >> dummyfile
      cat dummyfile | sed 's/hello/goodbye/' > dummyfile

dummyfile will be blank afterwards

if you do:

      cat dummyfile | sed 's/hello/goodbye/' | sponge dummyfile

It'll work as you'd expect (or at least as I'd expect). Otherwise `> dummyfile` will truncate dummyfile before it's read and inputed into sed.

<comment><USER20> For the sed example, what you actually want is -i which modifies the given file.

AKA

sed -i 's/hello/goodby/' dummyfile

<comment><USER12> That's only in gnu coreutils. BSD coreutils don't support -i

<comment><USER21> didn't

[https://www.freebsd.org/cgi/man.cgi?query=sed](https://www.freebsd.org/cgi/man.cgi?query=sed)

[http://man.openbsd.org/OpenBSD- current/man1/sed.1](http://man.openbsd.org/OpenBSD-current/man1/sed.1)

[http://netbsd.gw.com/cgi-bin/man-cgi?sed++NetBSD- current](http://netbsd.gw.com/cgi-bin/man-cgi?sed++NetBSD-current)

</comment></comment></comment></comment></comment><comment><USER22> jq would be a nice addition to that list.

<comment><USER23> Are there any tools in moreutils that aren't written in portable C? i agree. Jq is a must.

<comment><USER24> I doubt joeyh wants to add tools to moreutils that already exist as separate projects of their own.

</comment></comment></comment><comment><USER25> I can vouch for Vipe, I have found it immensely useful at times when throwing awk at my input turns out to not be as straightforward as I had hoped.

</comment><comment><USER26> A more detailed post on the subject:

[https://rentes.github.io/unix/utilities/2015/07/27/moreutils...](https://rentes.github.io/unix/utilities/2015/07/27/moreutils- package/)

</comment><comment><USER27> Good utility, but I would reccomend using the GNU ones as mentioned by another user although it will infloop the proccessess, you can use command-line tools to go around this.

</comment><comment><USER28> lckdo looks a bit similar to flock(1), though knowing Joey from reputation, I'm pretty sure he had good reasons for including lckdo.

<comment><USER29> From the lckdo manual: "Now that util-linux contains a similar command named flock, lckdo is deprecated, and will be removed from some future version of moreutils."

</comment></comment><comment><USER30> vidir and vipe are two of my favorite commands from moreutils.

<comment><USER31> Also check out combine. It allows you to combine lines from two files using boolean operations:

      combine file1 [OPERATION] file2

Where [OPERATION] is one of [and, not, or, xor]. It allows you to quickly pull out interesting data from your files (the input files don't need to be sorted).

</comment></comment><comment><USER32> ts is very useful for timestamping unbuffered output to do simple profiling on production systems.</comment>


Leo Laporte and TwiT Bringing Back the Screen Savers - <AUTHOR> http://www.zdnet.com/article/the-new-screen-savers-twit-resurrects-the-show-that-launched-tech-video-into-the-stratosphere/

<comment><USER2> Nice. I was a guest in The Screen Savers three times when it was on TechTV and it was a great team producing a fun show. Glad to see it come back in some form.</comment>


Show HN: Easy Forth - <AUTHOR> http://skilldrick.github.io/easyforth/ <comment><USER2> Nice!

If you like Forth, there's information about similar languages over at [http://concatenative.org/](http://concatenative.org/).

</comment><comment> vive-la-liberte I often use dc(1) so my first instinct was to type "1 2 3 +" into the input without intermediate linebreaks. I was delighted to see that this was correctly understood to mean what I wanted to express instead of it doing something silly like taking just the first int of my string or trying to parse the string as a whole straight to int.

These are the sort of things which encourage readers to read on :)

Edit: Unfortunatelly, when I try to scroll and read the rest, the input field steals focus rendering me unable to continue. Firefox on Android.

<comment><USER3> Not directly a solution, but there is GNU Forth for Android.

[https://play.google.com/store/apps/details?id=gnu.gforth&hl=...](https://play.google.com/store/apps/details?id=gnu.gforth&hl=e)

</comment></comment><comment><USER4> This is an enjoyable read! I've been coming across mentions of Forth much more often lately, so it feels satisfying being able to get a sense of it.

One thing that caught my attention is that Forth's boolean value for "false" is 0, and for "true" is -1. This makes sense if you look at their binary values, being 00000000 and 11111111, respectively. Does anyone know if there was an underlying design decision for this? Fast hardware checking? Bit masking tricks?

<comment><USER5> If you define it like that, you don't need separate boolean and bitwise AND and OR. 11111111 & 00000000 = 00000000, 11111111 | 00000000 = 11111111, ~11111111 = 00000000 etc.

QBASIC (and possibly other Microsoft BASIC dialects?) did the same thing. There's no &&, || or ! in QBASIC.

If you define "true" as just 00000001 then it works for & and |, but not for ~.

</comment></comment><comment><USER6> Forth programs are very compact. And so are Forth intepreters. Great for 1970s PCs with memories as small as 8K. But postfix programs are hard to understand. An hour later and you've forgotten what you have written.

<comment><USER7> Also great for myriads of devices with constrained memory and computing power we use every day in 2015.

> But postfix programs are hard to understand

No.

Badly written programs are hard to understand. That's true for every language. Also, programs written in a language you don't know are hard to understand. That's obvious, right? Postfix, prefix or infix notations have little to do with this.

There are natural languages written from right to left, and also ones written from right to left and vertically at that. Are they "hard to understand" for people who use them? What do you think?

<comment><USER5> The direction a language is written in has no bearing on how easy it is to understand. Postfix is a different matter altogether.

<comment><USER7> Wait, why? Could you elaborate? How is:

        + 1 2

fundamentally different from:

        1 2 +

? You just look for the operator on the other side of arguments.

I know both prefix, postfix and "crazy infix" (J, some APL) languages and I really don't see a qualitative difference. Of course, after you overcome the initial hurdle and get used to the notation.

EDIT: ok, J/K/APL are a special case and I shouldn't mention them.

<comment><USER5> That's too trivial an example. When you get something more complex, the difference becomes clearer.

Can you parse the following easily?

c_z x * s_z y * s_y * c_y z * + c_x * c_z y * s_z x * - s_x * - d_z =

Compare that to the infix form:

d_z = c_x * (c_y * z + s_y * (s_z * y + c_z * x)) - s_x * (c_z * y - s_z * x)

With infix, the operator sits between its operands, so you can easily see what expression makes up the first operand, and which makes up the second: you just look to its left and its right. Postfix, however, requires you to read the entire expression, because the operator doesn't show which operands it has, they're just whatever the last two were, and those last two might themselves be complex expressions. This gets worse the longer the total length of the expression.

Postfix also suffers from not making it clear how many operands a given operator takes. With infix this is always clear.

I like postfix languages for their simplicity, but I refuse to pretend they are as easy to read as infix languages.

(example was taken from [https://en.wikipedia.org/wiki/3D_projection#Perspective_proj...](https://en.wikipedia.org/wiki/3D_projection#Perspective_projection))

<comment><USER7> Well, for me _both_ examples are totally unreadable. I think math's is the most unreadable notation ever and even a cross between PERL and Brainfuck would be better. Mathematicians are masochists, and I refuse to follow their lead. I prefer _meaningful_ variable names, good use of horizontal and vertical whitespace, context-free grammars, and the like. So maybe this is the difference and the reason for me perceiving the notations as more or less equivalent: I'm not biased, as most people, in favor of infix, but rather biased the other way.

Anyway, let's try doing something with your postfix example (I hope it displays alright; also, I think you made a mistake in your translation to postfix, but I left it as it is):

        c_z   x *
        s_z   y *
            s_y *
        c_y   z *
        +
            c_x *

        c_z   y *
        s_z   x *
        -
            s_x *
        -

            d_z =

Now, this is much _more_ readable than unformatted infix version you give and that's before factoring this into smaller parts. I didn't read that much of Forth, but I'm 97% sure that it would be factored into 3 or 4 words, I think. And it also has an advantage that you read the operation in order they're going to be executed, while with infix you need to read the entire expression to know which computation occurs first.

Of course, it's only _more_ readable _for me_ , with my particular background knowledge and habits; I'm not saying this is or should be the same for anyone else. _But_ , if there are people who see one form as more readable and people who see the other form as more readable, then I think that's a solid argument in favor of both forms not being drastically, qualitatively different.

The problems you point to are definitely real; it's true "the operator doesn't show which operands it has" by default (for example) and you need to go out of your way to show it. But infix notation has it's problems too, and you need to work around them as well. Like operator precedence, which is frankly a terrible idea.

> Postfix also suffers from not making it clear how many operands a given > operator takes. With infix, this is always clear.

No, not always. J has words which take one argument on the left and, for example, two on the right. Or three. Or a variable number of arguments on the left (granted, they are `tied` with ` word, but still) and nothing on the right... And Ken Iverson says it's very readable! (To him, at least).

To summarize: I'm still not convinced that there is a major and unfixable difference in readability between the notations, and I still think you can make all 3 notations as readable as any other.

</comment></comment></comment></comment></comment></comment><comment><USER8> Everything is great, simple, and easy to understand, and then I get to that Snake example and the code is nearly unreadable.

<comment><USER9> The Snake code is more complex than it needs to be -- example: defining directions as constants from 1 to 4 and then using IF on the direction, instead of defining directions as offsets in the coordinates. But simpler code would not be _that_ much simpler -- Forth just takes getting used to, and I guess the step up to a whole game was too steep. Add some smaller exercises first? Like Sokoban?

(Generally the main thing that'd make Forth more readable is local variables in place of stack manipulations.)

<comment><USER10> Raise an issue about it? [https://github.com/skilldrick/easyforth/issues](https://github.com/skilldrick/easyforth/issues)

</comment></comment></comment><comment> david-given A couple of months ago I wrote a Forth interpreter, because I'd always wanted to. I haven't really used it in anger, but passes the basic ANS Forth tests, so it should be reasonably complete.

(It's here: [https://github.com/EtchedPixels/FUZIX/blob/master/Applicatio...](https://github.com/EtchedPixels/FUZIX/blob/master/Applications/util/fforth.c) It's a single, portable C file which is also an executable shell script containing an awk script! It compiles to about 8kB of code on a microcontroller.)

From the experience I learnt two main things about Forth:

(a) the realisation of how Forth works, and the way in which the language bootstraps itself out of nothingness, and the way in which it takes about two basic principles and then builds an entire language out of them, is truly mind expanding. The process was full of 'aaah!' moments when it all came together and I realised just how elegant it was.

(b) actually _engineering_ a Forth interpreter, and dealing with the ANS spec, was an exercise in frustration. Those elegant principles are compromised at every stage of the process. The spec defines things which no sane person would define. I'd implement a word, and it'd be clean and work, and then the ANS tests would fail and I would realise that the specification dictates a particular half-arsed implementation which makes no sense whatsoever. The process was full of 'uuugh!' moments when I saw a thing in the spec and realised how much more complicated it would make my life.

Examples follow:

\- double words are pushed onto the stack in high word / low word order. Regardless of whether your architecture is big or little endian. Good luck with using 64 bit load/store instructions!

\- DO...LOOP is defined to use the return stack for temporary storage. Valid Forth programs can't call EXIT from inside a DO...LOOP structure. If you try, your program does a hyperspace jump and crashes.

\- BEGIN...REPEAT is defined _not_ to use the return stack for temporary storage. Valid Forth programs are allowed to call EXIT from inside a BEGIN...REPEAT structure.

\- DO...LOOP has different termination characteristics depending on whether you're counting up or down.

\- Mismatched control flow structures are not just not detected, but they are actually, in certain combinations, defined to work. The spec actually defines what some of them do --- IF, THEN, BEGIN, WHILE, REPEAT, if I recall correctly --- and lets you mix and match them. Good luck if you want to use different, more efficient implementations.

\- The memory model assumes that Forth is the sole owner of the memory. It starts at the bottom and works up. When compiling a word, you have to decide what address it's being written to before you know how long it's going to be. Want to share the heap with something else? Good luck with that.

\- Division. How overcomplicated can it be? Answer: extremely.

\- Rearranging values on the stack gets old very, very, _very_ quickly.

\- Forth isn't typed! Except where it is, and it doesn't check them, and if you get them wrong my the gods have mercy on your soul, because the interpreter surely won't.

I would still say that anybody with any interest in programming should learn at least the basics of Forth, and should write at least the core of a Forth interpreter. (It won't take long, and you'll learn a hell of a lot.) But I'd be really hesitant about recommending it for real programming use, other than for the special niches where it excels, such as embedded systems. Most of the problem is that it's overspecified; it would be so much simpler, faster, and easier to understand if the spec had more undefined behaviour in it. I now understand why so many people just ignore it and write their own dialect. Strong type checking would really help, too.

</comment><comment><USER11> This looks amazing! Thank you. I've been meaning to learn Forth since forever now.

</comment><comment><USER12> Fun environment.

A couple of weeks ago I installed 8th to learn a Forth as a hobby. (It promised iOS integration, so it might even be useful. I'm not there yet. :-) )</comment>


Submit security vulnerabilities anonymously without fear of repercussion - <AUTHOR> http://www.grayhood.io/

<comment><USER2> It would be even better if the money would go to exposer through bit coins or something that is not easily traceable. There is probably tax complications that needs to be sorted out.</comment>


The Future of Programming Languages: Economics - <AUTHOR> http://journal.dedasys.com/2010/11/10/the-future-of-programming-languages-economics# <comment><USER2> "The costs of switching from established languages will continue to be high" - this is why the recent set of new JVM and CLR languages are so wonderful. If I'm experienced with one CLR-based language, I can experiment with another one without leaving behind my nice familiar libraries and tools.

I started learning F# and Haskell around the same time, and although I still prefer Haskell from a pure language point of view, I'm far more productive on F#.

</comment><comment><USER3> Dup: <http://news.ycombinator.com/item?id=1890758> although no comments there.

</comment><comment><USER4> sounds like a pretty good argument for lisp ;)</comment>


History is Written by the Losers - <AUTHOR> http://scholars-stage.blogspot.com/2016/11/history-is-written-by-losers.html?m=1&utm_source=pocket&utm_medium=email&utm_campaign=pockethits <comment><USER2> This is the third time this has hit the front page this week

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

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

<comment><USER3> And that is an interesting meta-point, in context. (What is kept in view.)

So yes, as an example, Herodotous may have been a Greek political exile ("loser"), but the fact that Arabs managed to destroy substantial chunks of Sassanid Iranian records and archives left the Greek version of the ancient Persia to persist until well into 20th century.

This is the sense of the phrase "history is written by victors". It has nothing to do with the individual historians (since they are not warriors) but with their supporting sociopolitical/cultural context.

</comment></comment><comment><USER4> Compressed version

> We say that history is written by the winners. That is sometimes true. We > have no Carthaginian accounts of their war with Rome; few historians today > have much sympathy for Hitler. But the thread that seems to connect many of > the great histories of the pre-modern world is that they were written by the > losers.

</comment><comment><USER5> Seems more like propaganda than what we think of as history. In this vein some of the Old Testament comes to mind.

However, when we only have one account it's hard to judge accuracy.

<comment><USER6> It is a very cynical view that it seems more like propaganda.

In principle, the text of history is never the same as what really happened. What a historian can do is to do his best to write down what he verifies, the different accounts that have merits but none of them can be verified as the ultimate truth. As a reader of history, we should appreciate both the text and the effort, study it and learn our lessons.

Sima Qian's work covers not only the period of his life, but since the beginning of Chinese civilization. He read extensively, touched on all the texts he could get access to (his position in the government granted him such privilege, even after he was punished.) He often travelled out to verify the texts. Considering that was almost 2000 years ago and the size of China (although much smaller than now), one must respect his efforts.

I would say Sima Qian gave a comprehensive and objective depiction of Han Wudi, the emperor who punished him. Wudi was one of the greatest rulers in Chinese history. Sima Qian gave due credits to Wudi, while he didn't hesitate to write down his dubious policies and his mistakes, both before and after his punishment. Wudi knew his work, and didn't interfere. He punished Sima Qian for Sima's opinions on Li Ling (although Wudi was both wrong and brutal in this case), but not by his depiction on Wudi in his work.

I think it is fair to say Sima Qian is "one of two men who can claim to have invented history". His work is the standard and the gauge of all the historians that followed him. Not many have his talents and his balls.

Sima Qian's work is also a classic in literature. For anyone who studies ancient Chinese literature, he must study is work, the Records of the Grand Historian (Shiji).

<comment><USER5> Are you basing this on secondary sources from independent contemporaries?

Because you really can't trust anything originating from a single source.

</comment></comment></comment><comment><USER7> C.f. Nietzsche's "On the Genealogy of Morals"</comment>


Ubiquiti: New Firmware 4.0.69 Makes Phone Home Opt-In by Default - <AUTHOR> The recent crash reporting/data collection aka "phone-home" features that were enabled for Ubiquiti Unifi devices caused quite a controversy[0]<p>New firmware 184.108.40.20671 out today makes this opt-in by default[1].<p>[0] https://news.ycombinator.com/item?id=21430997<p>[1] https://community.ui.com/releases/UAP-USW-Firmware-4-0-69-10871/37101df7-b0b4-482b-968f-27633f3daf91 (may require login to view) <comment><USER2> The wording of this headline could be confusing, depending on how closely you've been following these developments.

What actually changed in this exact version sounds like there is now an opt- out, though it is by default opted-in of course.

Before this version, there was no opt out at all. So this is an improvement from the last release, but still worse than a few releases ago before the phone-home.

I don't think I'll be purchasing any more Ubiquiti gear myself, and what I have I should probably sell off. Network gear is something I want to be able to trust, not wonder what new thing they're trying to sneak in, and the communication on this issue from Ubiquiti has been pitifully bad.

<comment><USER3> Eh, it's pretty hard to find quality wireless gear, so I may continue to buy APs until I can find a suitable replacement, but I absolutely won't be buying any of their other products. I was considering getting a router from them, but I'll instead roll my own or use pfsense or something. That way I can at least trust my edge, and I can configure the router to treat the wireless gear as untrusted.

Setting up a DMZ and some firewall tweaks is a lot easier than finding a good AP.</comment></comment>