diskchecker by Brad Fitzpatrick: does your storage stack lie about fsync()? - <AUTHOR> http://brad.livejournal.com/2116715.html

<comment><USER2> From 2005. I wonder if things are better now.

Also, I'm not so quick to blame the disks without knowing more technical details.</comment>


Talking To People You Don't Know - <AUTHOR> http://soundboy.tumblr.com/post/41976330421/talking-to-people-you-dont-know-london-hn-meetup-jan

<comment><USER2> This was an awesome talk and will definitely push me to come to more HN London meetup.

There also was a great question at the end asking you if there was some common traits to "detect" exceptional people to recruit and your answer was really insightful. You should consider adding it to your post or maybe dedicating a blog post to it.

In your talk you explained how you changed of roles at Songkick and it seems to be linked to finding people better than you at what you did so leaving them "in charge" of this part and taking up a new challenge. Hiring exceptional people and a good fit is hard as you described it. You have to find them and them convince them to work for you. But how do you hire someone for a role where he will be better than you at what you do and how do you convince them to take up on the offer?

</comment><comment><USER3> The video for this talk will be online soon. It was comfortably one of the most insightful talks at HN London for a very long time. Definitely worth watching once it's up.

Cracking work Ian.</comment>


Is there any way to truly secure Docker container contents? - <AUTHOR> http://changelog.complete.org/archives/9782-is-there-any-way-to-truly-secure-docker-container-contents <comment><USER2> Might there be a better time of day to try and repost this?</comment>


The Meaninglessness of Ending Extreme Poverty - <AUTHOR> http://www.bloomberg.com/news/articles/2015-06-01/the-meaninglessness-of-ending-extreme-poverty- <comment><USER2> The World Bank defines the state of extreme poverty as being:

Short of food for all or part of the year, often eating only one meal per day.

Unable to save money - for if a family member falls ill and money is needed to see a doctor, or if the crop fails and there is nothing to eat.

Unable to afford to send your children to school.

Living in an unstable house made with mud or thatch that requires regular rebuilding.

Having no close source of safe drinking water.

If relieving the estimated 1.2 billion people in extreme poverty from living this way is meaningless then I despair.

<comment><USER3> Your claim of the World's Bank definition of poverty is not what the article states. Can you provide a link?

<comment><USER4> This list is actually how people in poverty define poverty, according to a World Bank research project:

[http://www.nytimes.com/2009/03/11/books/chapters/chapter- lif...](http://www.nytimes.com/2009/03/11/books/chapters/chapter-life-you- could-save.html)

The World Bank's own definition of "extreme poverty" is much simpler: $1.25/day or less, as can be seen all over their site: [http://www.worldbank.org/en/topic/measuringpoverty](http://www.worldbank.org/en/topic/measuringpoverty)

<comment><USER2> It's important to note that the $1.25 denotes the relative purchasing power of their income and not something that would translate into some higher value in the country of the impoverished person.

</comment></comment></comment></comment><comment><USER5> >There's no scenario that sees the world ending poverty if the poverty line is set relative to the average incomes of the world's poorest countries.

 _No_ scenario? How about one where income inequality lowers in those countries? It's entirely possible to have all incomes be at least a certain percent of mean or median income.

<comment><USER6> This is what I came here to say. Poverty is a resource allocation problem that is judged relatively. As living standards increase, the subjective 'poverty' perception also moves. The inverse is also true: when living standards decrease (say due to a war or disaster) the conception of poverty will also adjust. Additionally, a country cannot be expected to solve it's 'poverty' problem in the entire country is pretty equally in poverty. The resources simply do not exist to be allocated.

So the proper way to judge subjective poverty is by income equality (a ratio of the richest X% to the poorest X%) within a country. If inequality is very high and there is still subjective poverty in the country, that country's government is not taking poverty seriously... do not believe them, they have the resources! Any external help that is not advisory is essentially subsidizing the rich of that country; instead if we want to support those in poverty we should sanction that government until they act appropriately.

If inequality is very low in the country and subjective poverty exists, you can make an excellent case for external aid. Countries in this situation may be victims of war (Afghanistan), failed states, or so small/remote that they may not have the resources to take care of themselves.

This is a difficult mirror to hold up, however, as there are many developed countries that have high inequality scores.

<comment><USER7> > If inequality is very high and there is still subjective poverty in the > country, that country's government is not taking poverty seriously... do not > believe them, they have the resources! Any external help that is not > advisory is essentially subsidizing the rich of that country; instead if we > want to support those in poverty we should sanction that government until > they act appropriately.

Interesting point. What would you recommend to a relatively well-off citizen of such a country, would donating personal time, money, and labor to alleviate poverty then constitute a subsidy of the rich/political class?

<comment><USER6> Note that my argument is based on an international perspective.

Within a country a voluntary wealth transfer is a great way to solve poverty IMHO. If one person can solve the whole county's subjective poverty problem, wonderful! The inequality in such a society may still be large, which is a shame, but if the country is democratic and 'functioning' (one criteria of mine is no poverty) then that sounds great. That person is sparing the rest of society from dealing with the issue, so in some way yes it's a subsidy to them.

I don't see this happening, though. In my opinion a rich person who cannot solve the problem unilaterally should be lobbying his government and society to solve the problem at that level. Maybe that's more efficient administration, reallocation of budget, or higher taxes, or a new means of distribution. Probably some combination.

<comment><USER7> The reason I ask is because I am a citizen of just such a country (high income inequality and high incidence of poverty). I'm not wealthy, but I'm better off than the vast majority and feel I can and should help somehow.

It's always interesting to hear other perspectives.

</comment></comment></comment></comment></comment><comment><USER8> So by defining poverty on a relative sliding scale, we'll constantly be working to improve the conditions of the least fortunate of us...

Good.

<comment><USER9> And will have no idea how much our efforts are actually achieving (or even whether we're being harmful). Not so good.

</comment></comment><comment><USER10> Absolute poverty is about actual living standards. How much food, housing, healthcare etc I have.

Subjective poverty is about social status. Where am I in a ranked list of wealth and resources?

Absolute poverty can change a lot, and that reflects real change in quality of life.

Subjective poverty is a zero sum game. Half the people will always be in the bottom half, because math.

<comment><USER11> I don't think your statements about subjective poverty are true. Subjective poverty is only a zero-sum game within a single social "game." If there are more games, there are more winners. Lots of little ponds means you are more likely to find the few where you can be the big fish.

It's true that these ponds can be loosely ordered and some of them are inarguably ranked higher than others (e.g., being a top-tier actor has more social status than being a top-tier chess player). But for the vast majority of people, we just don't care that we're at the bottom of the vast majority of these games.

For example, I'm pretty low on the totem pole in my local gym, but I'm pretty high on the totem pole at work (small company, long-ish tenure). Paul Graham is pretty high on the totem pole in Silicon Valley, but he's probably pretty low on the totem pole at a film festival.

Except for a few of these "big" games (film industry, politics, the extremely wealthy), most of us get to be pretty good at entirely avoiding situations where we are subjectively poor. For those we can't avoid, we're able "give more weight" to where we're more important, through our own, personal valuations. Hence my "sum" across the games I care about is greater than zero, which is true for most people.

</comment></comment><comment><USER12> What would a robust definition of poverty be? I think you'd have to get away from the concept of money, and define it as a lack of, or a lack of a way to get, any of the following:

* shelter

* transportation

* food

* medical care

* education

<comment><USER9> Even that is very relative. What quality of housing? Of food? There are lifesaving medical procedures that even the richest struggle to afford, if the condition is rare enough (IIRC someone on HN posted about paying for genetic testing for him and his wife, $8k each, to figure out what their son's condition was - is that something you're "poor" if you can't afford?). It's even clearer with education - is basic schooling enough? Are you "poor" if you can't afford to do a PhD?

<comment><USER12> Agreed. But perhaps we can come up with a general framework for identifying extreme poverty (that's on par with the $1.25/day threshold currently being used).

</comment></comment></comment><comment><USER13> The only useful way to look at poverty is to use an absolute scale.

If we assume that every human being is born with absolutely zero wealth (or, at least, that this used to be the case in the distant past), then we should go about determining some objective minimum standard that is acceptable.

</comment><comment><USER14> And also there are some that live on less money and are quite happy with that. What do we want to do about them? Push some money onto them?

<comment><USER15> When the poverty line is established as the line whether they can buy a basket of food, making sure everyone can purchase that basket of food is tough to call a "bad thing".

We're advanced enough on a global scale that people perishing because they could not bring down a deer to feed them through the winter should not even be a thing. Hell, some countries let imported food rot in the warehouse due to politics, yet there exist people who starve because they can not afford food?

<comment><USER16> [http://www.motherjones.com/mixed-media/2015/05/france- superm...](http://www.motherjones.com/mixed-media/2015/05/france-supermarket- food-waste-ban)

"On Thursday, France's parliament unanimously approved a new law prohibiting large supermarkets from throwing out unsold food, instead mandating stores donate any surplus groceries to charities or for animal feed use.

The law, which aims to reduce waste in a country where people trash up to 30 kilos of food per person annually, is part of a more general energy and environmental bill."

Those who helped campaign for this are working globally next.</comment></comment></comment>


Disk space and LTO improvements in Rustc and Cargo - <AUTHOR> https://blog.rust-lang.org/inside-rust/2020/06/29/lto-improvements.html <comment><USER2> I'm excited by these changes. Rust compilation times, although slow, have been improving by 20-40% every year. The changes in the linked post alone improve LTO build times by 4-20%.

I'm also looking forward to other changes that people have been working on.

\- A debug backend that uses Cranelift instead of LLVM improves debug compile times by 20-50%.

\- Using pre-compiled release binaries for procedural macros. Today this causes a major hit to compile times because the macro needs to be compiled, then do some codegen, and then the compilation of actual code + generated code proceeds.

\- In the long term (probably years), the compiler is able to run interactively, recompiling when any changes are made.</comment>


Show HN: My first coding project ever (unnamed) - <AUTHOR>

HN, I would appreciate some feedback on my first coding project ever. It's a visual instant search for iTunes (using Apple's API) I consider it MVP at this point, some features are still missing. I've tested the site in Safari, IE, and Firefox, and it seems to work in all of them.
http://38069.vs.webtropia.com/tester/test/ (not too fancy of a URL)
My background is nowhere near coding or designing (English major in the making, quite sure my code shows) and I only knew some basic PHP going into this last week, so don't be too harsh.
Why this idea? I strongly believe visual search will be something to look at in the future.
Thanks for your feedback! <comment><USER2> Hey, neat! My biggest frustration is with your use of autocomplete. It will NOT LET me search for anything that the autocomplete doesn't recognize. Try searching for "feet of steel" --- there is no way to see what (probably bizarre) results that search would return, because it's unavoidably corrected to "Stevie Wonder" (who is interesting, but not very much like the phrase "feet of steel").

For a first go, it's fantastic. Keep it up.

EDIT:

Ah, now I see that I must not press enter, and then I can see the desired results. That's pretty counter-intuitive. It also shows that there _are_ results for "feet of steel", and they make more sense than "Stevie Wonder". I'd let the user _choose_ to accept the autocomplete, rather than forcing it upon them.

<comment><AUTHOR> agreed. for now, autocomplete only supports artists. or well, is supposed to support artists. no songs, no movies, no shows. that's something i need to fix later.

thanks for the feedback!

answer to your edit: the ajax is supposed to grab the first suggestion and start searching for it while you type. this is a bit buggy though.

</comment></comment><comment><USER3> It's neat. I do recommend you make some rules about when to fire off the ajax request. On every keypress/keyup/focus is a bit much because you're making necessary requests even if the value didn't change. Maybe make a cache that remembers the last search term.

</comment><comment><USER4> Great job, I think it looks really good as an MVP. Keep tweaking things, and keep learning!

</comment><comment><AUTHOR> (project offline for now, link will 404 - sorry)</comment>


Linux Mint 17 "Qiana" Cinnamon released - <AUTHOR> http://blog.linuxmint.com/?p=2626 <comment><USER2> Following Mint since version 10, I always fallback on Mint 11 (XFCE) since it's the lightest non-obsolete version I can run on my old thinkpads (x40, x60).

More recent versions were often quite slower, this one (MATE desktop) is by far the slickest I've seen so far. The GUI has close to zero latency. Kudos.

<comment><USER3> I'm using Debian 7 and XFCE. It's pretty much the same regarding UI latency. And everything works on my T400 out of the box. Never been happier.

I've just migrated from Windows 7 (today after clinging on for about 3 years) and it's refreshingly good.

<comment><USER2> I expect almost anything to run blink fast on a T400 though (far better hardware, far better driver support).

<comment><USER3> The hardware is not that great. It's got switchable graphics so I've had to disable the Radeon portion and stick with Intel graphics. Managed with powertop to get 10.9W of power usage and 4.5 hours of battery. Not bad for a 5 year old machine with a 5 year old battery.

</comment></comment></comment></comment><comment><USER4> There's also the mate version - [http://blog.linuxmint.com/?p=2627](http://blog.linuxmint.com/?p=2627)

<comment><USER5> Mate is an extremely solid desktop environment. So glad that someone saved all the work that went into Gnome2. It's fast and familiar, and that's all I need.

</comment></comment><comment><USER6> Finally the Apple Magic Trackpad works everywhere. Even offers battery warnings. Nice!

Mint+Cinnamon is a great desktop. It's saving me from being 100% Mac.

<comment><USER7> "Finally the Apple Magic Trackpad works everywhere."

Is this solution something mint-specific? e.g. can I install whatever makes this possible on an Ubuntu or Debian distro?

<comment><USER6> Haven't tried those distros. (my distro hopping days are OVER)

Before Qiana, Nemo (Mint's forked Nautilus), Cinnamon's prefs panels, some 3rd party toolkits, they all got scrolling wrong. Lots of apps got it right too, but enough was wrong that the trackpad was pretty irritating to use.

Now, in Qiana, everything seems to work. (well, the physics aren't there, like flinging to scroll feels pretty dead, but it's not bad)

Based on that, I'd guess that Ubuntu Trusty would work great, likely Fedora 20 too. Guessing no for Debian stable or testing, but maybe unstable would be good.

Ah, the benefits of choice...

</comment></comment></comment><comment><USER8> The most interesting bits are at the bottom of the release page:

> Linux Mint 17 will receive security updates until 2019.

> Until 2016, future versions of Linux Mint will use the same package base as > Linux Mint 17, making it trivial for people to upgrade.

> Until 2016, the development team won't start working on a new base and will > be fully focused on this one.

[http://www.linuxmint.com/rel_qiana_cinnamon_whatsnew.php](http://www.linuxmint.com/rel_qiana_cinnamon_whatsnew.php)

</comment><comment><USER9> The release candidate or something had a note that it wasn't compatible yet with NVidia Optimus cards. I no longer see a note about that - does anyone know if it's been fixed? I had some problems with that when I installed Mint last time.

</comment><comment> Tolbiac-110 I just installed the Release Candidate earlier this month. Simple but Useful changes as far as I can see.

</comment><comment><USER10> How do I update from 16?

        sudo apt-get dist-upgrade?

<comment><USER11> Does linux mint allow to upgrade directly in that way? I remember that older version would suggest to reinstall the os and strongly discourage a dist- upgrade.

At the time that was the only reason I avoided mint

<comment><USER12> >that was the only reason I avoided mint

Huh. I would consider it a good sign, a sign that the designers of Mint care about reliability and know how to achieve it even though they probably have fewer developer-hours to devote to a new release than the big distros have.

<comment><USER6> Not sure I agree. I changed /etc/apt/sources.list.d/official-package- repositories.list to use qiana and trusty (coming from petra), fired off apt- get update and dist-upgrade, hit "Y" every time it asked if a config file should be replaced, and ended up with a great system.

It just doesn't seem like a very hard problem to solve.

And, despite what the Mint guys claim, Ubuntu appears to have solved it just fine.

EDIT: upgraded from petra, not olivia

<comment><USER13> You have confused luck in following an unsupported set of steps for your particular configuration and set of installed packages with a solution to the general problem. There was no guarantee your system would continue to function, nor is there any guarantee that your system is not now broken in a subtle, yet-unnoticed way, nor is there any guarantee that your process will work for anyone else, nor that it will work for future releases.

This is the same mindset that blows up production systems with ad-hoc maladministration instead of following sound, documented procedures created with the input of people who actually understand the system and thoroughly tested in advance.

<comment><USER6> You talking to me? I never said I had the solution to the general problem. I only said that it doesn't seem like as big a problem as the Mint guys claim.

True, I did say that Ubuntu has solved this problem. For them, dist-upgrades are well understood and not blind luck. If you're disagreeing with that statement, I'd like to hear more.

<comment><USER13> > _For them, dist-upgrades are well understood and not blind luck._

Ubuntu specifically tells you _not_ to do a dist-upgrade, so your supposed evidence of how easy it must be doesn't even pass the smell test. The "correct" upgrade process is do-release-upgrade.

Unfortunately, that process still is not a complete solution, as demonstrated by the multiple clusterfucks I've had to clean up when people tried to use their upgrade process.

Even if they had succeeded, that would tell you nothing -- Ubuntu is a commercial operation with a substantial amount of money behind it. Linux Mint is not. ReactOS would be a perfect Windows clone if everything a funded corporation accomplished were easy.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> Blog is down.

EDIT: It's back up now</comment>


Why Good Developers Write Bad Code: An Observational Case Study [pdf] - <AUTHOR> http://www.upedu.org/papers/ICSE2015_OrganizationalFactors/LavalleeRobillard_ICSE2015_WhyGoodDevelopersWriteBadCode.pdf <comment><USER2> TL;DR key recommendations:

\- Once a project is completed, the team must ensure that the "What" and "Why" of each software item are properly documented.

\- In the cases of parallel development of inter-dependent software modules set up a negotiation table to solve conflict between the development teams.

\- Make sure that the development team is aware of the CMMI-ACQ or ISO12207 processes for negotiating with third parties.

\- Make sure that testers are involved when negotiating with a third party for a potentially vulnerable software component.

\- Plan organization-wide process reviews to detect isolated processes and to promote information flows between processes.

\- Planned special budget items to support long lasting corrections or corrections that are likely to benefit many modules.

\- Projects with strict deadlines are risky, and should be carefully monitored to avoid last minute unplanned activities.

\- Team members should maintain a careful balance between the flows of information within formal development processes and informal human interactions.

\- Team members should make sure that knowledge is appropriately distributed amongst them. For example, pair programming is a practice which can promote knowledge sharing.

\- Any intrusion into the team dynamics by outsiders should be done very carefully.

<comment><USER3> That doesn't sound Agile.

<comment><USER4> Standardized processes defined by committee like CMMI-ACQ and ISO12207 are pretty much the exact opposite of Agile, so, yeah.

<comment><USER5> > Standardized processes defined by committee like CMMI-ACQ and ISO12207 are > pretty much the exact opposite of Agile, so, yeah.

Meh. All the Agile Manifesto really says about process is:

 _Individuals and interactions over processes and tools_ and _Responding to change over following a plan_

Nothing says you can't (or shouldn't) use a pre-defined process, or have a plan. If anything, the core of what "Agile" is, is about being flexible and responsive to change. As long as your process allows for that, it can be implemented as an Agile process even if it was created by a committee.

That's not to say that _most_ firms using things like CMMI aren't doing it in a way that is far removed from Agile principles, but I blame that on the implementors more than the process. YMMV.

</comment></comment></comment></comment><comment><USER6> "The project was a second attempt to overhaul this complex Module. A first attempt was made between 2010 and 2012 but was abandoned after the fully integrated software did not work. Because this project was a second attempt, many specifications and design documents could be reused. Accordingly, the development has essentially followed a waterfall process, as few problems were expected the second time around."

I love the sheer insanity of this.

1\. Write up a plan.

2\. Execute the plan.

3\. Total project failure. Abandon it.

4\. Decide to try again.

5\. "It will be easy this time! We've got an existing plan we can use!"

It's like using a treasure map, not finding any treasure, and now thinking it will be even easier to find the treasure _now_ since you already have a map!

</comment><comment><USER7> An interesting article, and we need more like it, but I feel the author didn't go far enough in understanding the root causes of complexity.

For example, they cite both schedule/budget pressure, and insufficient docs. The _incomplete_ docs were "thousands" of pages. Does anyone really believe even half the team would read "complete" documentation, that are thousands upon thousands of pages? Would complete docs speed up development time? Would they speed up development time even taking into account the cost of producing and consuming complete docs? Is the size of module truly essential complexity, or is part of the problem that they're building on legacy code?

The author mentions interop with other teams and third party software as a large source of friction. Why are other modules so large and complex that they're maintained by separate teams? Is that essential complexity, or was it caused by previous attempts to patch their way to release? Would the modules be more manageable, and hence, require smaller teams, if they used other practices/languages/tools?

Access to test hardware, and managing the test personnel was another source of friction. What is the cost of buying more test hardware? In previous companies where I've worked, with manual QA depts and under-funded test hardware budgets, doubling the hardware budget would allow halving the QA salary budget (primarily because you don't need to hot-swap equipment several times a day), and shorten test cycles. Is that the case here?

Further, how much manual test is truly necessary, and how much is caused by the developers not writing automated tests?

</comment><comment><USER8> Offhand and IMHO, some possibles can be:

      - fear or lack of understanding of a legacy codebase
      - fear or lack of understanding of a 3rd party component
      - time pressure
      - too many edge cases to handle
      - intra-team communication issues or stylistic differences
      - lack of domain experience to understand those edge cases
      - lack of time to build the correct design, or rebuild a design if it won't fit
      - project management pressure against big-design-up-front and to "start now" when making something more organized is required
      - unclear requirements
      - not interested in work or company anymore
      - lack of use cases representing all possible usage scenarios
      - it's actually not their code that was bad, but they are coupled to bad systems that are themselves bad/leaky/error-prone

</comment><comment><USER9> For me it's simple:

1\. Lack of risk management 2\. Poor project management 3\. Allowing other to set my urgency (like deadlines but more psychological) 4\. Not enforcing professional practises I know I should follow

3 and 4 are to all intents and purposes symptoms of 1 and 2

</comment><comment><USER10> Interesting, but for me, there's a key piece missing. What did they use to determine that a developer was "good" to begin with?

<comment><USER11> If you read the text you can see that it's not even important if the developers are "good," the internal policies limit what even the best developers can do.

</comment></comment><comment><USER12> To mitigate these problems I try to always completely finish the current task including doc updates etc before moving to the next thing. I do this pretty much always even under management pressure. It can be awkward at times.

</comment><comment><USER13> Good code doesn't take more time than bad code. I think bad code takes more time than good code.

</comment><comment><USER14> Does anyone recognize which company this study examined?

</comment><comment><USER15> your bad code is somebody else's good code.

<comment><USER16> I'd put it rather like... for any reasonable definition of "good code" and a sample that highlights the characteristic features of such good code, you will find a competent, intelligent developer that will consider it bad.

Which is more or less the same thing, except that IMHO it does not suggest that _every_ bad code shall be "good" for someone. There's such thing as code that is universally considered as awful (but for their creators, maybe).

</comment></comment><comment><USER17> I had to write bad code because sales and management usually dictate the timeline of the project.

As an example: sales promises new customer feature X in one month and we will lose money unless it's implemented.

My choice is to either: 1) Complete it the right way in double the time or 2) use hacks and cut corners to get it done on time. Since non-technical people just see the output and not what's going on underneath, they often times don't see the difference and when they explain to the boss that they might lose money, it's almost always option #2.

I hated being forced to do this so many times in my career, I started my own company.

<comment><USER18> > I hated being forced to do this so many times in my career, I started my own > company.

It depends a lot on what your company is doing, but for the most part, you'll probably discover that cutting corners to save your short-term time _is often the right thing to do_.

<comment><USER19> Bullshit. Most of the time the corner cutting is done solely because shithead sales drones make promises without consulting engineering in the slightest. They get a huge commission for getting the sale and go home at the end of the day. We have to put in more late nights to cover for their asses, and we barely get anything for a raise because of that one time we weren't able to meet sales physically impossible promise.

<comment><USER20> I wonder what going into sales would be like. You could try the other side of the coin.</comment></comment></comment></comment>


How can I prevent shareholders from taking over my startup? - <AUTHOR> http://www.quora.com/Venture-Capital/How-can-I-prevent-shareholders-from-taking-over-my-startup

<comment><USER2> The top rated answer repeatedly makes the point that the entrepreneur must choose his investors wisely. The OP points out that the best way to have such a luxury is to be profitable early and then create a bidding war among potential investors. This will (hopefully) make it so that the entrepreneur will retain control over his board.

<comment><USER3> i find this an interesting idea.nothing succeeds like success</comment></comment>


Ask HN: Should high-karma users comments appear higher on the page? - <AUTHOR>

In this thread http://news.ycombinator.com/item?id=2036588 which is the top item right now I've made a comment that currently has 10 points and is 1 hour old. Woodrows comment, which is the second comment in the base of the thread, has 20 comments and is one hour old. Personally I believe woodrow's comment to be more insightful than mine, and the votes seem to agree on this, yet my comment is shown higher on the page.
I understand that people with a lot of karma and/or hig average karma per post get somewhat differential treatment, and I understand the reason for doing so. There are however also some problems with this approach, namely:
1) It doesn't entice new or low karma users to comment, since their comment has a higher chance of being lost at the bottom of the page.
2) Some good comments get buried lower on the page, and not everyone gets to see a poetntially great comment.
What do you think? <comment><USER2> The issue is also self fulfilling...

Those with higher karma will get more and more, those with less will to some extent be ignored. How to encourage new users when there chances of increasing their karma are decreased, since their comments appear lower.

Surely it's best to encourage new users to comment, rather than to post off topic / repost material? And surely this dissuades commenting?

</comment><comment><USER3> What about doing a "partial sort" where the point sum of a discussion thread starts to go lower that it is pushed lower than any zero/positive sum thread? This way discussion threads that are low quality tend to be pushed away, but the rest are treated equally -- after some testing to make sure the modification isn't too sensitive.

Disclosure: low karma poster

</comment><comment><USER4> I wonder if your comment is on top of Woodrow's because of recent activity on the subthread. It makes sense to bump more recently commented threads to the top, because users are more likely to be looking for new content there.

<comment><AUTHOR> That's certainly part of it, and as you point out there's a good reason for that. I've encountered other instances where my comments are shown higher on the page even though they have fewer points _and_ were submitted longer ago than other comments. So there's certainly an algorithm that favors some users over others.

</comment></comment><comment><AUTHOR> Clickable links:

The thread in question: <http://news.ycombinator.com/item?id=2036588>

Woodrow's link: <http://news.ycombinator.com/item?id=2036640>

</comment><comment><USER5> I have mixed feelings about such things. I'm pretty idealistic, like to promote egalitarianism, etc. On the other hand, there is value to having context, to having someone "vetted" so to speak, and so on.

Talking about my personal accomplishments (in terms of getting myself well) often falls on deaf ears. Why? Because it is so far outside the experience of others with my diagnosis that they just can't relate to it. I sound like some nutcase. I get called a charlatan, liar and snake oil salesman. And I might never get anywhere with it because I really want the information to stand on its own and not get "sold" based on personal charm/popularity -- and that is undermining my ability to speak about it at all because other people are chasing popularity and doing all in their power to shape what can and can't be discussed through social influence of a sort that I loathe.

I have thought about writing up some stuff about moderating forums and talking about the importance of creating a forum with "gravity" rather than "magnetism". As most folks here probably know, gravity is a quality space not objects. If gravity were a property of objects, it would work like magnetism and all your planets would clump together with the sun or something like that -- like the big mess you find in a typical kitchen junk drawer where a magnet has gotten tossed in with paper clips and scissors and such. And life as we know it just wouldn't exist.

I am not entirely clear how to create "gravity" as part of the social space and take some of the emphasis off the "magnetism" of important members. Yet, even though gravity is a property of space, some objects have higher gravity (due to size, etc) than others and therefore exert more pull. How to clearly distinguish the two things and make sure you are encouraging gravity over magnetism is something I am a bit less clear on -- at least at the moment, a tad shy of 4am.

</comment><comment><USER6> i have good karma rate but my comments are not getting recognized yet</comment>


GitHub 404'd a CSS file for a while - <AUTHOR> https://github.com/?cors-bug <comment><USER2> The CORS error is a red herring. Stylesheets are failing to load with 404, and those 404 also happen not to have the CORS headers (since they are simple HTML error pages).

        $ http https://assets-cdn.github.com/assets/frameworks-9e1db7aa5e35573e7a01331c4afc4d3df80c21f118c6c727900d5e032e7dd7b4.css
        HTTP/1.1 404 Not Found
        Accept-Ranges: bytes
        Age: 3
        Connection: keep-alive
        Content-Encoding: gzip
        Content-Length: 93319
        Content-Type: text/html
        Date: Tue, 05 Sep 2017 18:10:52 GMT
        Server: GitHub.com
        Vary: Accept-Encoding
        Via: 1.1 varnish
        X-Cache: HIT
        X-Cache-Hits: 1
        X-Fastly-Request-ID: 362b40a8dbaf695c1933af2ceba160fd011f904d
        X-GitHub-Request-Id: B246:7E91:7D676E:8B2E5A:59AEE8A7
        X-Served-By: cache-jfk8145-JFK
        X-Timer: S1504635052.455916,VS0,VE2
        timing-allow-origin: https://github.com

EDIT: CORS is not normally required for stylesheets, but GitHub uses the "crossorigin" <link> attribute, supposedly to prevent cookies from being sent with the request, and that has the side effect of requiring CORS headers:

        <link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/frameworks-9e1db7aa5e35573e7a01331c4afc4d3df80c21f118c6c727900d5e032e7dd7b4.css" integrity="sha256-nh23ql41Vz56ATMcSvxNPfgMIfEYxscnkA1eAy5917Q=" media="all" rel="stylesheet" />

[https://developer.mozilla.org/en- US/docs/Web/HTML/Element/li...](https://developer.mozilla.org/en- US/docs/Web/HTML/Element/link)

<comment><USER3> Ok, we updated the title above in an attempt at accuracy.

</comment></comment><comment><AUTHOR> Chrome debug console shows:

> Access to CSS stylesheet at '[https://assets- > cdn.github.com/assets/frameworks-<hash>.css'](https://assets- > cdn.github.com/assets/frameworks-<hash>.css') from origin > '[https://github.com'](https://github.com') has been blocked by CORS policy: > No 'Access-Control-Allow-Origin' header is present on the requested > resource. Origin '[https://github.com'](https://github.com') is therefore > not allowed access. The response had HTTP status code 404.

This going to be a PITA if it gets cached.

<comment><USER4> CORS updates should always be triple-checked as they can lead to a massive outage. I'm not a big fan of CD anyway, but there are things like CORS that are obviously incompatible with the CD concept as you can't easily (well, quickly) roll back.

</comment></comment><comment><USER5> Impressive how usable the site is without their static assets. A sign of a good designer to make functional HTML first, then style it after.

<comment><USER6> Yeah I was impressed.

</comment></comment><comment><USER7> All fixed now. edit: Some inline fonts are still getting blocked

<comment><USER8> I am also seeing it fixed. If you ever need to quickly clear your cache (without going into Chrome settings) either:

1\. Open the Developer Tools, go to "Network" and up top check off "disable cache". This will disable the cache for this one page whenever dev tools is open.

2\. Open Developer Tools and "long press" (hold left mouse down) on the regular chrome reload button. You will see a few options, one of them being "empty cache and hard reload"

<comment><USER9> Or CMD+Shift+R on Mac

</comment></comment></comment><comment><USER10> The problem looks more like the file (frameworks-9e1db7aa5e35573e7a01331c4afc4d3df80c21f118c6c727900d5e032e7dd7b4.css) doesn't actually exist on the CDN, and the browser is therefore getting back a 404 page.

The 404 page then happens to not have an Access-Control header, but that wouldn't really help anyway.

</comment><comment><USER11> CORS issues. Happens to the best of us.

</comment><comment><USER12> Thought i was going mad a minute ago.

</comment><comment><USER13> Ironically, one of my caching extensions for chromium kept the site working just fine until I reloaded the extension...

</comment><comment><USER5> Looks like they tried to switch static assets to a new CDN without first checking their CORS policy.

</comment><comment><USER14> it's fixed now!

</comment><comment><USER15> it's fixed now

</comment><comment><USER16> And we're back</comment>


Intel x86 considered harmful [2015][pdf] - <AUTHOR> http://blog.invisiblethings.org/papers/2015/x86_harmful.pdf <comment><USER2> Stupid hype pumping with "considered harmful" considered harmful.

Also, the classic: [http://meyerweb.com/eric/comment/chech.html](http://meyerweb.com/eric/comment/chech.html)</comment>


Rendering large terrains - <AUTHOR> http://www.pheelicks.com/rendering-large-terrains/ <comment><USER2> CLOD is the underlying mesh/LOD technology used in Frostbite (BF3/4). There is a formal paper for it [1]. My coworker is currently making a toy CLOD renderer in C++ and the technology speaks for itself - he's rendering 8K x 8K worth of height-map data at some 200 FPS on some laptop NVidia chip (he will be open- sourcing it in a few months time, so watch this space).

Frostbite goes a bit further (they stream in the height-map etc.) but the bare method used is this. His reaction to me sharing this was quite funny:

> Cool! But… Javascript??! It's like writing the bible (or your religious > equivalent) in glitter and kids crayons… Loses something.

You just can't get oldschool developers away from their beloved languages :).

[1]: [http://dice.se/wp- content/uploads/GDC12_Terrain_in_Battlefie...](http://dice.se/wp- content/uploads/GDC12_Terrain_in_Battlefield3.pdf)

<comment><USER3> It's 2014 and Javascript is awesome.

If I ever do anything 3D, it will probably be WebGL. Some industry veterans have reservations against it, but so long as it doesn't look like poop smeared origami, it's OK.

<comment><USER4> >2014 and javascript is awesome

sort(1,10,5,3)

1, 10, 3, 5

Then there is this.

null == false //false

!null //true

<comment><USER5> [https://developer.mozilla.org/en- US/docs/Web/JavaScript/Refe...](https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)

> The default sort order is lexicographic (not numeric).

Works as documented.

<comment><USER6> Ok, pick any other embarrassing design flaw: [http://wtfjs.com/](http://wtfjs.com/)

</comment></comment></comment></comment></comment><comment><USER7> If you look carefully you will see the very tops of the mountains "grow and sharpen" or "shrink and smoothen" when they pass a certain distance. I saw that same behavior in an old game Starsiege Tribes( from 1998 ). Now I know why it happens.

<comment><USER2> This could be caused by two issues:

Popping: it "naturally" happens with all dynamic LOD systems (back in '98 it would have been Real-time Adaptive Optimized Meshes). It happens when something changes from one detail level to another (and hence more details "pops" into view). If you spend more time on your renderer you will generally morph those vertices between the lower detail position and the higher over a very small amount of time. This means that the pop happens over a longer duration and humans are bad at noticing stuff like that.

Incorrect Heuristics: a heuristic is used to determine how far away from the camera you need to be in order to not see the difference between four triangles and two (this has a lot to do with Nyquist-associated theorems) because "the difference is less than a pixel." If you get it wrong you could present too little detail for a pixel and change the apparent shape of the terrain (obviously intentionally presenting too little detail increases framerate).

</comment></comment><comment><USER8> This reminds me of: [http://www.zephyrosanemos.com/](http://www.zephyrosanemos.com/) \- another very impressive webGL terrain demo. One thing I particularly like about the zephyrosanemos is the realtime rendering of the procedural terrain generation.

I'd love to hear a comparison of the two by someone knowledgeable about the subject.

</comment><comment><USER9> Very nice! An interesting approach!

Did you also consider using some more advanced geometry representation of terrain other than heightfields, such as triangulated irregular networks? That would allow you to choose an error threshold for each LOD and seamlessly join neighboring patches together without the need to use vertex shaders for it.

I did my own "Google Earth"-alike using a modified BDAM algorithm a couple of years ago. It required Hadoop preprocessing of detailed input data (resolution in meters), parallel terrain simplification using quadric error metrics and edge collapses and produced a set of layers at different LODs.

The cool thing about it was that you could have chosen the desired screen- space error and fetch only those LODs that were fitting - usually these had far smaller size than regular heightfields of the same resoultion/error. You could have also incorporated roads, rivers, buildings, bridges, tunnels straight into your terrain geometry, as well as different textures for each sub-part of it.

The tessellation was a bit funky (BDAM uses triangular patches instead of tiles) however there are also variants that utilize rectangular tiles. Vertex shader was then used to simulate 64-bit precision, giving uniform rendering detail in centimeters for the whole Solar system. Geometry shader could add more detail into it and overall it was very snappy online as the size of downloaded data was smaller than with regular meshes.

<comment><AUTHOR> I was keen on keeping as much of the complexity on the GPU, so I wanted to avoid having to update the geometry. Not to say I'm against exploring different approaches. Did your "Google Earth"-alike, ever see the light of day?

<comment><USER9> Completely understood, it's better to focus on interesting 3D stuff and easier to do it this way in JavaScript than to handle tile caching using WebWorkers/WebSockets and local storage in a language that doesn't support proper multithreading.

Yes, the project was completed and working fine though it ended up buried deep within my former employer's R&D lab and I have no update if they are using parts of it anywhere. They got acquired and another office was aggressively taking over, getting rid of internal competing technologies. I also had a prior experience in adding dynamic 3D cities and vector maps into NASA's World Wind, and therefore writing a completely own globe from the scratch was a joy ;-)

I am thinking about doing similar apps in WebGL and Qt and writing some tutorials on how to do it as I progress, so perhaps we can inspire each other then. First I need to finish some tutorials for advanced 2D geometry and Bezier curves though (Illustrator-class algorithms with JavaScript + HTML5 live examples).

Thanks for writing this inspiring piece! :)

<comment><AUTHOR> Ah, projects in the R&D lab. I can sympathize with projects being "put on the shelf"

RE 3D world, I'm already working on something similar. Shoot me an email (see HN profile)?

</comment></comment></comment></comment><comment><USER10> There are some great open source WebGL terrain renderers out there, on a planetary scale, for example:

[http://doarama.com/view/2171](http://doarama.com/view/2171)

This is built on the Cesium open source virtual globe [http://cesiumjs.org/](http://cesiumjs.org/)

</comment><comment><USER11> The main reason for LODing is to increase the draw distance. The demo seems to have implementing a LODing system, and then fogged the draw distance anyhow ... which is odd.

<comment><USER12> No matter how far your draw-distance is, you _totally DO want_ to "fog anyhow" in any event: you want distant scenery to smoothly fade-out rather than abruptly pop-out (regardless of your actual far-plane distance), plus fogging is a primary spatial-distance cue to the viewer in 3D, and is cheap/free nowadays.

Even the real-world does "fogging-out" over distance depending on atmospheric scattering, haze, rain/storm or _actual_ fog conditions. So fogging-out- smoothly, while beneficial as per above, also looks beautifully "realistic" as an added benefit, at least provides a great realism/cost ratio

<comment><USER13> This has always impacted the realism of flight simulators, in my mind - due to performance reasons, you're _always_ flying around in some pea-soup like fog. At altitude, you can easily see hundreds of miles in clear weather, but I haven't seen any flight simulator that comes even near to being able to render out to those distances.

<comment><USER9> I believe there are two problems in flight simulators:

\- insufficient precision of OpenGL 32-bit floats in Earth-scale computations. If you want to render the whole Earth, you'll find that at the ground level your precision is only 16m resulting in jittering as you move. This was usually solved by "zoning" and local coordinate systems, hence it was easier to deal with a smaller set of ground "tiles" and haze out the distant ones. Having said all that, nowadays you can use vertex shaders to simulate 64-bit (or rather 56-bit) precision and get around 1cm resolution at any distance

\- the need to have various LODs that include curvature of the Earth with significantly increased error tolerances, which in turn increases memory consumption. Again, nowadays should be no longer an issue given entry-level GPUs having 1GB of RAM and geometry shaders

</comment></comment></comment></comment><comment><USER14> Cool demo and writeup. Why's is it so sparkly though?

<comment><USER15> Probably aliasing due to undersampling.

Terrain rendering is probably one of the things where GPU-based raymarching really is an option nowadays.

[http://iquilezles.org/www/articles/terrainmarching/terrainma...](http://iquilezles.org/www/articles/terrainmarching/terrainmarching.htm)

<comment><USER16> Probably is - I was astonished when I first saw this raymarched procedural terrain at shadertoy: [https://www.shadertoy.com/view/4slGD4](https://www.shadertoy.com/view/4slGD4)

<comment><USER7> ::rant:: Crashed firefox( latest version ); tried chrome, loads forever and then doesn't work. For whom is this made, if it doesn't work on my i5 with a decent gpu?

<comment><USER16> Mac users? :) Sorry!

Runs ok (well, 12fps!) here on firefox on an iMac. Just black on my centOS laptop with intel graphics, I admit, but loads of gl things don't run on that.

</comment></comment></comment></comment></comment><comment><USER17> This has been a transformational technique in graphics and mapping and I think its worthwhile to recognize where the technique came from. As far as I can tell the origin of the technique described here can be traced back to SGI prior to Keyhole as published in 2002. [1] This "Clip Map" technique is a key enabler of applications like Google Earth because of how efficiently it pages data.

Recall that Google Earth was the product of an acquisition of a company called Keyhole. Named after the spy satellite, a reference to the recently declassified satellite imagery they were using. Its also interesting to note Al Gore played an important role in declassifying this data. [2]

But to make use of all of this imagery a new efficient algorithm was needed for loading and rendering the data. This is what the Clip Map paper describes and enabled the iconic zoom from space to the surface of the earth with real time rendering of satellite imagery.

According to Michael T. Jones. "Keyhole started by accident. The earliest possible origin of Keyhole actually lies with me. I worked with a company called Silicon Graphics (SGI). One of the companies I worked with had created a program to view satellite imagery where you could zoom in and see the imagery in great detail. It was used in the Bosnia peace talks to draw the border." [3]

"Before its acquisition by Google, Michael was CTO of Keyhole Corporation, the company that developed the technology used today in Google Earth. He was also CEO of Intrinsic Graphics, and earlier, was Director of Advanced Graphics at Silicon Graphics." [4]

It is interesting to note that a German company is now suing Google over Google earth and possibly this very technique. [5] Are ART+COM and Terravison the company and software Michael Jones was speaking of?

The real power of this technique is that it allows you to pre-page the data in tiles that can be easily loaded over the web and are sized specifically to live graphics memory. It optimizes both the IO this way and off-loads the mesh creation process from CPU to the GPU. In 2004 Microsoft research published an expansion of the of the Clip Map technique that does just that. [6]

A basic demo and source in C++ available [7] and I have also found SpiderGL uses this technique [8]

One thing I have not found yet is a good discussion of implementing collision detection in conjunction with this technique if anyone has found any resources on this I would be grateful.

[1]: [http://www.cs.virginia.edu/~gfx/courses/2002/BigData/papers/...](http://www.cs.virginia.edu/~gfx/courses/2002/BigData/papers/Texturing/Clipmap.pdf)

[2]: [http://www.realityprime.com/blog/2006/07/notes-on-the- origin...](http://www.realityprime.com/blog/2006/07/notes-on-the-origin-of- google-earth)

[3]: [http://geospatialworld.net/FirstPerson/ArticleView.aspx?aid=...](http://geospatialworld.net/FirstPerson/ArticleView.aspx?aid=18979)

[4]: [http://www.uoc.edu/portal/en/sala-de- premsa/actualitat/notic...](http://www.uoc.edu/portal/en/sala-de- premsa/actualitat/noticies/2010/noticia_109.html)

[5]: [http://www.eweek.com/cloud/google-sued-for-alleged-google- ea...](http://www.eweek.com/cloud/google-sued-for-alleged-google-earth-patent- infringement.html)

[6]: [http://research.microsoft.com/en- us/um/people/hoppe/gpugcm.p...](http://research.microsoft.com/en- us/um/people/hoppe/gpugcm.pdf)

[7]: [http://filougk.blogspot.com/2007/03/gpu-geometry-clipmaps- so...](http://filougk.blogspot.com/2007/03/gpu-geometry-clipmaps-source.html)

[8]: [http://spidergl.org/example.php?id=8](http://spidergl.org/example.php?id=8)

<comment><USER18> I agree with the nostalgia comments in this thread :)

Though not published in a journal, I developed a near-identical concept and implementation as a senior high-school project from '97 to '98.

This after realized the difficulty of implementing the more general triangle- subdivision strategy for terrain LOD driven by a computational-cost/visual- benefit algorithm.

</comment></comment><comment> eliah-lakhin Thank you for such detailed and well written material, pheelicks! I had been looking it for a long time. Bookmarked.

<comment><AUTHOR> Glad you like it! I'm planning on doing a follow-up, where I look at doing more detailed things with the fragment shader, to give the terrain a different look. E.g. using some textures for the ground, like grass, rock, snow etc

</comment></comment><comment><USER19> Ah game programming and terrains, the nostalgia :)

</comment><comment><USER20> Three years ago, someone had the same idea:

[http://sea-of-memes.com/LetsCode28/LetsCode28.html](http://sea-of- memes.com/LetsCode28/LetsCode28.html)

Edit: just for some additional information, the idea is of course a lot older

<comment><USER21> This is far older that 3 years old, I don't think OP says he invented it

</comment></comment><comment><USER22> I did some stuff with terrain LOD by using tessellation, but that is a DX 11 feature and not supported in WebGL yet. Basically I rendered Bezier patches that were turned into triangles on the GPU, and then used screen-space displacement mapping for the finer details. The bezier patches were designed to be seamless but still add/remove triangles as the distance grew. Unfortunately I no longer have the code, but here is an image:

      http://www.gavanw.com/uploads/9/5/4/0/9540564/8069858_orig.png

</comment><comment><USER23> Is this the same algorithm used in games like Dying Light? These new breed of games allows free movements from rooftops to ground with very realistic graphics.

[http://www.youtube.com/watch?feature=player_detailpage&v=J2T...](http://www.youtube.com/watch?feature=player_detailpage&v=J2TSCZqcjR0#t=36)

</comment><comment><USER24> Looks superficially similar to the WebGL terrain 3-parter at [http://www.gamasutra.com/blogs/JasmineKent/20130904/199521/](http://www.gamasutra.com/blogs/JasmineKent/20130904/199521/) \- are there differences?

<comment><USER25> This is a common technique so no surprise they are similar. However, there seem to be slight differences in the way the chunk edges are made seamless.

In Trigger Rally, there are additional vertices being added to the lower LOD chunk side of the seam to avoid T-junctions in the mesh topology.

In the OP demo, the vertices on the higher LOD side of the seam are morphed so that they will be flat with the lower LOD side of the seam. This should also help reduce "snapping" when moving to higher LOD levels.

</comment></comment><comment><USER26> If the inner level is 1x1 and the other level is 5x5 and the inner level moves by 1 unit, then the outer level will have to move by 1/5 of its 5x5 units (1). Thus the outer level will not move by its proper grid snapping amount.

Or am I missing something?

<comment><AUTHOR> The grid snap happens after the movement. You are correct that the higher level grid may not move. To fix this, the higher resolution tiles (1x1 in your example) are morphed near their edges so that gaps do not appear. I cover this in the blog post, see the 'Morphing between regions' section

<comment><USER26> I still don't think I understand. If the 1x1 level moves, and didn't overlap the 2x2 outer ring, and the 2x2 outer ring doesn't move (the camera hasn't triggered a 2x2 move yet, just the 1x1), then there is now a gap in the opposite direction of the 1x1 move. That's why trigger rally uses the overlapping geometries, so that a 1x1 level can move and in the direction of the move the overlapping geometries double up and in the opposite direction, they no longer overlap at all (it uses morphing also so that the overlapping geometries have vertices in the exact same spots).

<comment><AUTHOR> Imagine instead that each ring is joined by a set of springs, which can be compressed down to zero and extended to the difference in the grid snapping between the 2 rings. As the rings snap to different grids the springs extend and contract to fill the gaps. Now place some vertices on these springs and you have a terrain mesh, where the majority of vertices are snapped to locations depending on the LOD, except those joining the rings, which such that the transitions between the layers are seamless

<comment><USER26> You are a genius :)

</comment></comment></comment></comment></comment><comment><USER27> Writing terrain renderers like this pretty much consumed my junior year of high school. This is the stuff that made me a programmer. I'm glad to see it get some attention here on HN.

</comment><comment><USER28> Waiting for the time someone comes across VRML ;)

</comment><comment><USER29> Fantastic, I have been looking for good example in modern opengl for a while. Thank you!

</comment><comment><USER30> Hate to be a dissenter, but none of the pics in the linked article look good to me. ???

</comment><comment><USER31> Is there a name for this approach? The recursive-tile-morph-factor shader?

</comment><comment><USER32> This is amazing</comment>


Namebench - Project Hosting on Google Code - <AUTHOR> http://code.google.com/p/namebench/ <comment><USER2> "Try out namebench. It hunts down the fastest DNS servers available for your computer to use."

The title needs some editing.</comment>


City residents live with mental illness at higher rates than general population - <AUTHOR> https://www.popsci.com/physical-surroundings-cities-mental-illness <comment><USER2> Every time I visit my relatives in their rural area, I feel a sense of liberation. The air is cleaner, there is less noise, you can hear the breeze, and even the sky seems bigger. You can see the Milky Way at night. Coming from a city, it's a relief.

However I also know the dark side of rural areas, mainly substance abuse triggered by boredom and lack of opportunity. There is always a trade-off.

<comment><USER3> That's not my experience with rural areas at all. Instead, it's usually pretty noisy because of all the neighbors with barking dogs (yes, there are neighbors in rural areas; most people can't afford 40 acres all to themselves, so they live in little clusters), and it stinks because of the cow and horse manure. Just hope you're not located close to a pig farm. And of course there's all the noisy trucks everyone drives around in.

I don't know where people get this idea that rural America is some kind of idyllic, serene place. It really isn't, for the most part. If you want idyllic, you'll have to find some extremely remote place in the mountains of the western states.

<comment><USER4> Thank you so much for making the counterpoint. I grew up in a rural setting and would give just about anything to take back that loss of years of my life.

A few extras:

* You can't exercise, because dogs don't just bark but also chase you, and no one cares or thinks you're the asshole for complaining because you're in the country.

* Daily life is /very/ stressful. Forgot milk? Well, fuck you, buddy, because you're either doing without it or you're making a 50 minute round-trip that costs $8 extra in fuel. Want a pizza delivered? Nope. Chinese? Hahah. Need someone to come out and provide service? Oh, sorry, the first five places on Yelp don't serve your area. Grandma's calling? Sorry, but you're going to have to get used to repeating things not just once or twice but also a third and fourth time because that one bar of signal isn't going to cut it.

* Depression, drug use, and other adverse coping strategies are literally epidemic -- my entire neighborhood of stable working adults where I grew up all ended up on some combination of meth/oxycontin/xanax/antidepressants with alcohol use in excess of anything I ever see at 2 am throughout the nightlife districts of a top 10 US city.

* Oh, do you think you might need to get actual mental help? Well, those handful of upstanding people who aren't addicts are now going to be judging the hell out of you. Most conditions are just you being weak minded or morally inept. And don't even think about talking to someone or others about your thoughts, because that's not something you do. (And if it's sadness, fear, anxiety, or hallucinations, expect to have everyone suggest spurious religious interpretations instead of physical explanations, which, honestly, as a devout Christian, I now find really damaging both to peoples mental and spiritual health.)

* Friendships are forged as a practical proximal matter and not by choice. No one else benefits your mind or academic or professional achievement, and you probably won't share common interests -- you're buddies because Larry's the most likable dude on your block. In fact, even among friends, most people hold a majority of views that you find seriously revolting, and very few people appreciate any kind of artistic or intellectual activity of any kind. Romantic relationships are even less glamorous.

* Did we go over your essentials yet? Oh, wait, that'll be $70/mo for 1.5Mbps DSL that can't stream Netflix. The water bill will be double any reasonable amount and wastewater is processed in your back yard and at your own expense/peril. If you aren't lucky, you may even need your own well. You'll also have to burn trash or contract a company to come take it. Groceries and house supplies cost 30-50% more per quantity, and you have very little to no selection.

* Trash, everywhere. This alone makes me question anyone who thinks mental health is in any way better in a rural environment. It's sick having to look at collapsing, skirtless mobile homes and junk cars and scrap materials strewn across 15 peoples lawns on the way to the gas station. Any "green space" consists of trespassing behind barbed wire instead of a neatly maintained park.

<comment><USER5> > Daily life is /very/ stressful. [...] Want a pizza delivered? Nope. Chinese? > Hahah.

uh. if that constitutes stressful, how do you survive receiving bad personal news?

<comment><USER4> Ok, ok, since you want to be horsey: ambulances take 50-60 minutes to arrive (pregnant? heart disease? prepare to feel third world terror), the police can't realistically save you from any kind of violent altercation or crime and no one else will see it happen, there's no public transportation and you can't walk to town—so you're stranded on a desert island if your car ever breaks down. There's also a constant threat of things like venomous snakes and predators, so expect your chihuahua to get eaten if he walks out at night (happened not once but twice to my next door neighbors). The list of stressful bullshit goes on and on.

<comment><USER6> Many people in rural areas have medivac insurance so they can be airlifted in a serious emergency. I believe it used to cost us around $100 a year.

And let's be real, the cops don't show up during a crime in the city either.

<comment><USER7> No, let's be real, the cops show up in cities pretty reliably. The drawback is that sometimes they do good for the situation, while a third of the time they end up shooting someone.

Interesting you mention medivac insurance -- I spent a number of years in a very small town in rural west Texas and I've never heard of that. Numerous times I heard of the race to get someone to one of the towns with a hospital 45 minutes away, though, maybe several times a year.

Maybe it's not at as widespread as you think, or somehow this town of about a thousand people (with one gas station, one restaurant open part time, and no grocery stores) entirely missed out on the existence of something that'd probably have saved lives.

<comment><USER3> The other thing about hospitals is that, in a place like that, the nearest hospital is probably in the closest small city, but that hospital is staffed with incompetent doctors because who wants to work in a place like that? So if you have a real emergency, you want to go to a good hospital in a larger city, but that's much farther away.

<comment><USER6> That's a very short sighted opinion. There are plenty of very intelligent doctors that love to live in the countryside.

Due to the sheer larger numbers in urban areas, I'm sure you are likely to have the best of the best in cities, but everyone can't be treated by the top 1% of doctors.

<comment><USER3> No, it's not shortsighted at all. There aren't enough highly competent doctors to go around and staff all the rural hospitals. My mom lives in a smallish town (and it's at least a college town) with a hospital right down the street, and constantly has to travel to the nearest city for medical issues because the hospital doesn't have any decent doctors and all the specialists are in the city.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Not to be overly melodramatic or sardonic but _life_ is damaging to mental health, urban, rural, or otherwise. And not just _modern_ life, but rather it is, I believe, our human condition.

Too many of the people I meet are ground down, sliding by, holding on, grappling with their identity and place in the world, somewhere on the scale of mildly scarred to full blown post traumatic, anxiety ridden, and/or profoundly lost.

Religion has abjectly failed humanity as a primary means for grappling with and managing the crushing gears of life. The idea that our non-denominational "community" is supposed to fill in the gap is laughable. The dream that the Internet would somehow fill that role at scale has proven in many cases to do just the opposite.

It's not that humanity is lost or without hope, but we destroy ourselves (and our planet) in the way we live, and I doubt strongly that our genetic predisposition / survival instincts will ever allow us to reach any form of widespread enlightenment.

<comment><USER9> I agree with most of this, but I think your observation on religion is exaggerated. It's a very personal thing and I think it still helps a lot of people cope, regardless of how un-cool it is these days.

<comment><USER8> In the big picture, with amount of killing that has been done in the name of religion over millennia, I just find it hard to reconcile.

<comment><USER10> In terms of body count, more people have been killed in the name of science than in the name of religion.

<comment><USER8> We kill with science, do we kill _in the name_ of science?

But even so, that doesn't make all the killing in the name of religion less bad.

<comment> xkcd-sucks If killing is justified by an evidence-based predictive model, it's probably killing in the name of science. This would include the Vietnam war ("Domino theory"), the atomic bombings of Japan ("it will be less costly than invading"), and anti terrorist drone bombing ("they fit our proven terrorist heuristic")

<comment><USER11> I don't follow that line of reasoning at all. "Killing in the name of religion" would be to protect or spread some sort of metaphysical belief. The equivalent would be something like going to war with another country to build universities there.

<comment><USER12> Check out this little country called Afghanistan.

Although, not sure if any Universities specifically have been built there by the West, yet.

<comment><USER11> Just as an exercise, it would be beneficial for you to make your argument explicit. You would notice that it falls apart/there is none.

<comment><USER12> We (USA) _do_ go and destroy places and institutions/governments and rebuild as benefits us, see:

[https://en.wikipedia.org/wiki/United_States_involvement_in_r...](https://en.wikipedia.org/wiki/United_States_involvement_in_regime_change) or

[https://www.washingtonpost.com/news/monkey- cage/wp/2016/12/2...](https://www.washingtonpost.com/news/monkey- cage/wp/2016/12/23/the-cia-says-russia-hacked-the-u-s-election-here- are-6-things-to-learn-from-cold-war-attempts-to-change-regimes/).

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> >In fact, the Centre for Urban Design and Mental Health estimates that city dwellers face a nearly 40 percent higher risk of depression, 20 percent higher chance of anxiety, and double the risk of schizophrenia than people living in rural areas.

>In their review, Meyer-Lindenberg and van den Bosch found that some potential threats had been examined more thoroughly than others. For some, including pollen, there wasn't enough information yet to show a convincing link to depression. However, the team did find a number of studies suggesting that heavy metals like lead, pesticides, common chemicals like bisphenol A (BPA), and noise pollution may contribute to depression, although further research is still needed to confirm that this is the case.

The article gives me the distinct impression that the author is in denial of the stress associated with living in a crowded place. I doubt that it has to do much with fumes in the air- stress is a side effect of spending all day hustling, bustling, and competing. The popular opinion in the zeitgeist is that urban development is a good thing- so any bad effects are treatable. Adding green space may be a decent way to treat the symptoms of city living, but I think it will always be a stressful, mental illness-inducing lifestyle.

<comment><USER14> Consider: for pretty much any animal I'm aware of, there's a notion of the minimum amount of space it needs to live normally. Somehow for people we've convinced ourselves that there is no such minimum (or it's so small as to be absurd).

<comment><USER15> What do you consider acceptable minimal amount of space for a human being?

<comment><USER14> I don't consider myself qualified to answer that question, but I do think someone should study it. It would be interesting to try to correlate various empirical outcomes with available living space (though of course it will be tricky to control for all the variables, because I'm sure this correlates with e.g. wealth).

</comment></comment></comment></comment><comment><USER16> Cities are great, if you build them for people, and not cars. We don't do this anymore (outside a few exemplar places like Denmark, NL, etc.), sadly.

<comment><USER17> This is why electric cars are so important. No exhaust, no noise. They're perfect for urban use.

<comment><USER18> They are a sign of urban failure. If your city needs cars your city has failed. Go spend some time a city without cars - or sections of a city that don't allow cars - I'll wager you like it.

Unfortunately in the US many criticize such efforts as being like Disneyland - as if that is a bad a thing.

<comment><USER19> Do you guarantee that the legal items one would normally transport in a car will be allowed on public transportation?

<comment><USER16> I think most people agree there is _some_ use for automobiles in cities, just like there's _some_ use for helicopters in cities. It's _extremely_ limited though.

I actually think it's silly to allow guns in cars and not on public transport (way more drive-bys than bus-bys, after all) but that's definitely an edge case.

</comment></comment></comment></comment></comment><comment><USER20> There's also new research linking an immune response to a virus as a reason for schizophrenia, which could explain living in urban centers (aka being in constant contact with carriers), as one reason for some of the higher rates of mental illness:

[https://www.hopkinsmedicine.org/news/newsroom/news- releases/...](https://www.hopkinsmedicine.org/news/newsroom/news- releases/schizophrenia-linked-with-abnormal-immune-response-to-epstein-barr- virus)

</comment><comment><USER21> I live in a residential area in a city and there is nothing worse than the sound of a lawn mower. Those are seriously stress-inducing and awful.

<comment><USER22> Here (small lots, affluent people who pay landscapers to come by frequently for nebulous reasons) the real scourge is weekday unnecessary leafblowers. I think we've raised awareness in the last year, and leafblower use so far this season has dropped dramatically, but we'll see what September is like. We might have to try to outlaw leafblowers like some other Boston area places have.

<comment><USER23> Have some inspiration: [https://news.ycombinator.com/item?id=19351934](https://news.ycombinator.com/item?id=19351934)

<comment><USER22> Thank you, this is very helpful. (Looks like something you could give to local city councilors as well as citizens. Though I don't intend to drag it out for years, and I'd be looking for an immediate ban on gas blowers, and also reducing use of the electrics.)

</comment></comment></comment></comment><comment><USER24> I wonder how much we're misjudging cause and effect:

If I'm suffering from mental illness, I'd be more inclined to seek the anonymousness of a city, rather than the exposure of a small town/village

(In my experience the same is one of the reasons why homeless tend to move to bigger cities and/or why most of a city's homeless population is made up from people who weren't born there).

</comment><comment><USER25> Causation? Are we sure it's not being uderreported mental illness and people moving to the cities because of mental illness and addiction problems?

</comment><comment><USER26> "the Centre for Urban Design and Mental Health estimates that city dwellers face a nearly 40 percent higher risk of depression, 20 percent higher chance of anxiety, and double the risk of schizophrenia than people living in rural areas."

Wow, that is HUGE. Especially considering the population shift out of rural areas and into cities. We'd better get some social psych types working on this.

</comment><comment><USER27> Anecdote:

I moved from Toronto to Waterloo.

Productivity up. 'Mental illness' gone.

Less noise, less pollution, less stress, more sense of optimism.

</comment><comment><USER28> It uh, just redirect me to a cookie page, even after accepting cookies.</comment>


Friendly reminder – in CA, at least, property taxes are due today - <AUTHOR> Most (all?) counties have property taxes "due" November 1 and March 1, but payments are not delinquent until after December 10 (today) and April 10.
Postmark by today, or pay online today.  In Santa Clara County, use:
https://www.sccgov.org/sites/tax/Pages/Santa-Clara-Tax-Collector's-Office.aspx <comment><USER2> Sign up for rewards credit cards and "make" some money. $500 bonus cash back if you spend $4k. The processing fee on $4k is about $95, so you get a ~10% discount on your property taxes.

<comment><AUTHOR> What credit card is giving back 12.5% cash on purchases? That makes no sense whatsoever.

Exactly which elective office do you hold in the CA Legislature, anyway?

<comment><USER2> Many credit cards offer a bonus if you spend $X in the first 3 months. And then it's usually 1-5% cash back at certain vendors after that.

<comment><AUTHOR>
      Many credit cards offer a bonus if you spend $X in the first 3 months.

Well, sure, but that's not a marginal advantage to using it for this one purpose unless you're not charging anything else.

      And then it's usually 1-5% cash back at certain vendors after that.

I've not seen any card with an unlimited bonus on something like this of more than 2%. You might see 3% on limited categories like fuel (like Costco) or groceries.'

<comment><USER2> Chase freedom has 5% cash back with Amazon. This month it's actually 10%. They did recently cap the monthly rewards at $150 total, which is a bummer.

You can get 20%+ cash back (up top $10k in purchases) with discover if you use it with Apple Pay this month. [http://www.uscreditcardguide.com/discover- apple-pay-22-23-or...](http://www.uscreditcardguide.com/discover-apple- pay-22-23-or-30-cash-back/)

And yeah, that's real.

I never pay full price for anything ;). Even my taxes.

<comment><AUTHOR>
      I never pay full price for anything

On that note, I don't pay for _anything_ on Amazon; I can use my Citi points like cash there... and my designated charity (OneBrick) still gets their full cut.

Thanks for sharing the Apple Pay info, but it seems to require Apple devices.</comment></comment></comment></comment></comment></comment>