The 10-Year Baby Window That Is the Key to the Women's Pay Gap - <AUTHOR> https://www.nytimes.com/2018/04/09/upshot/the-10-year-baby-window-that-is-the-key-to-the-womens-pay-gap.html <comment><USER3> Like so many others, the article fails to acknowledge that some women (and some men!) don't mind earning less if that allows them to take are of their children. I could certainly earn more than I do today. But that would mean spending even less time with my children, so I don't. Does it hurt my career? Probably. But it's worth it.

<comment><USER4> And these women who prefer to earn less money just happen to be the ones that get children between the ages of 25 and 35, but not before or after?

<comment><USER5> Further study is warranted, I'm sure, but it seems reasonable on the surface. Those who have their children earlier have children that are older during their prime working years. Those who have children later already have established careers. 25-35 does seem to be a critical period in setting the course for one's career, so those who opt to focus on children during that time are giving up the gains they could be making in the workplace.

<comment><USER4> That's not the point. You're just providing an intuitive explanation for the study's empirical findings, which I agree with.

OP's point was specifically that the wage gap may be caused by women's focus on child care instead of career advancement.

Yet, as I was trying to say: that idea is hard to square with the study's findings. Presumably, those emphasizing time with their children would tend to also have children rather early, possibly before they are 25. But in that age group, the study did not find a sustained reduction in income.

<comment><USER6> > Presumably, those emphasizing time with their children would tend to also > have children rather early, possibly before they are 25.

Who presumes that? I would presume people who are looking to start a family would want a solid foundation to start from. That means holding off on having kids until you've gotten some sort of stability. Most people in their early 20s don't have any sort of stability.

</comment></comment></comment></comment></comment><comment><USER7> I would be very interested to know if there is a correlation to how often men file for divorce and the amount of time the wife spends on child care and related responsibilities. We already know that the rate in which women will file for divorce is directly related to the income of the husband, which would then make this a directly symmetric incentive model and possible a form of nash equilibrium which the solution that the article suggest are not addressing.

<comment><USER8> > We already know that the rate in which women will file for divorce is > directly related to the income of the husband

Do we know that? I see a study suggesting that women who earn more relative to their male partners will be more likely to divorce (so called "independence effect"). I see a study that suggests that lower income families are more likely to divorce. These two bullet points alone make me think there is not a clear cut story about how the income of one partner effects marriage and divorce rates.

<comment><USER9> There is a study that shows rates for different industries too. I think entertainment industry has the highest divorce rates where as engineering is among the lowest? If someone kind find a link I'll be grateful

<comment><USER10> I believe this is the article: [http://flowingdata.com/2017/07/25/divorce-and- occupation](http://flowingdata.com/2017/07/25/divorce-and-occupation)

</comment></comment></comment></comment><comment><USER11> Aren't single working women <30 on average paid 8% more than men of the same age?

<comment><USER12> Where did you get that number?

<comment><USER13> Not OP but this guardian article mentions some figures supporting that from UK, compiled by Press Association based on on ONS data.

[https://www.theguardian.com/money/2015/aug/29/women- in-20s-e...](https://www.theguardian.com/money/2015/aug/29/women-in-20s-earn- more-men-same-age-study-finds)

</comment></comment></comment><comment><USER14> How is this a surprise to anyone? Children require time and effort, and this usually means one of the parents works less or not at all. Considering 25 to 35 are prime child-rearing ages, the reason for this gap seems quite obvious.

<comment><USER4> The result indicates that 25 to 35 is prime career age, not prime child- rearing age (the latter may well be true, but this study doesn't answer that question).

It's somewhat surprising that younger ages, especially 18 to 25, do not have this effect. I would have probably guessed that any hiatus in your professional career (including education) would result in a proportionally- delayed career advance throughout your career. I. e.: spend 2 years with children from 23-25 and your income at 60 is what you'd have made at 58 without children.

<comment><USER15> The article is comparing pay gap between married partners. Those who have children when they are younger are much less likely to be highly educated or be in high paying careers to begin with, and they're not likely to be in a relationship with someone who is either. Lower pay in general implies lower variance since they're not likely to be moving up the ranks into $100k, $150k, $200k+ careers.

</comment></comment></comment><comment><USER16> from a pure economic perspective (which is the slant imposed by "pay gap"), a core piece of the problem is that household care (as a broader category that includes child care) is not adequately specified and appropriately valued monetarily.

if household management was a good to be bought and sold, we could discover its price curve through market mechanisms. since women do more house work, we would be able to appropriately account for that gap.

but do we want a society where household care is simply another market good?

<comment><USER17> > household care [...] is not [...] appropriately valued monetarily

> since women do more house work

What if it _is_ valued appropriately? E.g. (1) _I_ don't value the housework _you_ do at all, nor does pretty much anyone else in the society... sure, you can put a $ value on e.g. cleaning (hiring a cleaning service) or cooking (hiring a chef), but it won't be clean to _your_ standard and it won't be _your_ favourite food; (2) it's possible, and in my (admittedly anecdotal) experience quite likely, than women value household care _more_ than men - <USER2> they _want_ to do more of it. Of course, not _everybody_ , but even _on average_ that could have a significant effect.

<comment><USER18> But do you think this effect could be culturally formed? That would still make it worth tackling.

<comment><USER17> > That would still make it worth tackling.

Why?

In my opinion, only if you can replace it with something better... E.g. speaking English is culturally formed, but so what?

I don't have kids yet, but I've thought a lot about how to raise any future children I might (well, want to) have. My current thinking is that I will raise them differently, boys and girls, according to what I see the most probably outcome (e.g. for each to be heterosexual). Sure, I might turn out to be wrong, but (1) you can't avoid putting _some_ preconceptions in a child's mind (after all, that's what "raising children" means), and (2) as long as they can consciously choose a different path (e.g. "I'm actually gay, I'll optimize my life for that") I think that's mean-variance optimized choice.

It's like, well your kid could be Mozart but you screwed them completely because you taught them guitar, stupid you... but then, there's no way you could have known, and a guitar is probably still better than complete lack of music, so it's a good choice overall.

</comment></comment></comment></comment><comment><USER19> People have careers today for the same reason they had farms or shops or a regular practice of hunting and gathering in former times: to support their own lives and those of their families. Whereas the motivation towards a career is conditional on its support of survival and the more adaptive urges, the twin motivations of survival and reproduction are invariant.

Viewed in this light, the article is confirming a truism well known to anthropologists: men work so women can have children. Our society is little different from others. So much male parental investment is an unusual arrangement among primates, but it's well documented among humans. Men produce roughly 2/3 of the calories consumed across a broad range of the societies ([Marlowe2001]). This is due to both:

* The difficult, dangerous and demanding nature of human birth and gestation, which is quite different from that of other primates.

* The enormous amount of energy expended in gestation, nursing and early childhood to support growth of the human brain.

The benefit of this arrangement is human brain development: we have larger brains than other primates, and the brains undergo considerably more training before functional adulthood. We are able to have these arguments about women's careers precisely because of the situation we are complaining about: that women set aside so much to have children, and men set aside so much so they can.

Nothing about the energetics of pregnancy, nursing or early childhood has changed as a result of our transition from working mostly outside to working mostly inside, save that the length of "childhood" is now considerably longer, as long as thirty years in some cases. That women and men do not work equally well when pushed to live the same life course is no surprise, when we consider human history and the lives of the other primates. Should men and women be pushed to live the same life course, it's not clear how it would be stable: men must bring something to the relationship to balance the large and fixed metabolic cost of gestation and nursing, which they can't do if they can't earn more than women. Men who failed to find some way around this would not have offspring and consequently later generations of men would be descended from — and have not just the genes but also the habits of — those men who found a way to obtain superior renumeration. This is no doubt how men got to be what they are in the first place.

[Marlowe2001] Male Contribution to Diet and Female Reproductive Success among Foragers

</comment><comment><USER20> Wouldn't lengthening the human life span solve a lot of this? Or even lengthening our span of peak performance? What if we lived to an average of 90-110 and had peak performance until 70-80 instead of living to 70-80 with peak performance until 40-50? That 10 year gap would mean a lot less.

<comment><USER21> Well, you can't move a biological clock. Women that get pregnant after age 35 are deemed high risk, advanced maternal age. The risk of downs syndrome and other defects goes way up. Men having children after age 35 also have some poor outcomes, but not quite as bad or likely.

There sure is a lot of assumptions here too. More and more men are becoming stay at home dad's...myself included. Guess what, it impacts our career too. Possibly more so...I can't tell you the number of people that seem shocked to hear I stay home. Some literally are speechless.

<comment><USER20> Sure. My point was that with an extra 20 years of peak time taking time off from mid 20s until mid 30s would not be so devastating. You'd have a lot more time to make up for it later.

</comment></comment></comment><comment><USER22> "problematic"

If you're a woman and you have non-standardized interests, you are "problematic" for society. If you're a woman and want to raise your own children, you're "problematic". If you're a woman and the number on your paycheck is not priority #1 in your life, you're "problematic".

<comment><USER23> Im pretty sure 'problematic' here is just that this is problematic for women. Not that women are problematic...

</comment></comment><comment><USER24> The U.S. educational system is needlessly slow and expensive. In other countries you don't need to pay for four years of college before starting medical school or law school. For example, I think in India a woman can finish medical school at age 23, whereas in the U.S. it would be age 26, assuming she graduates high school at 18. If women and men complete their education earlier, it is easier to have both a high-powered career and a family.

<comment><USER25> The problem is that people don't fully mature until 25-ish.

I wouldn't trust a 23yo lawyer or doctor, no matter how smart they appear. Some things are learned only by experience, and not just by books.

Also, a huge chunk of tech's HR issues are mostly created by startups having very young founders and young managers that don't have real life experience. (to me, young is anybody younger than 30). Half of the firing/issues I have seen in real life could have been easily avoided if the people in the room had more experience.

<comment><USER26> What do we count as mature?

There are different stages of brain development that don't finish until around 25 in women and 28 in men, but these aren't necessary to be mature. Even people who are 40 will make decisions that their 50 year old selves will view as immature. And given that much of what we consider maturity is driven by experience, delaying acquisition of experience until after maturation will result in further delaying maturation for the next generation.

<comment><USER25> Car companies have decided to be 25, as in many states you can't rent a car if you are under 25. Turo, has the age limit at 30 for high-value cars.

You have to be 35 to run for president in many countries....

etc...

There is obviously a sliding scale, but the 25-ish age range is more physical where your prefrontal cortex is still developing, while later stages are more experience based maturity.

"Neuroscience has shown that a young person's cognitive development continues into this later stage and that their emotional maturity, self-image and judgement will be affected until the prefrontal cortex of the brain has fully developed.

Alongside brain development, hormonal activity is also continuing well into the early twenties says Antrobus.

"A number of children and young people I encounter between the age of 16 and 18, the flurry of hormonal activity in them is so great that to imagine that's going to settle down by the time they get to 18 really is a misconception," says Antrobus."

</comment></comment></comment></comment><comment><USER27> > Research has shown other policies that would help: programs to help women > re-enter the labor force; flexibility in when and where work gets done; > subsidized child care.

I'm not certain what a 'programme to help women re-enter the labor force' would look like, so I won't comment on that.

Flexibility is awesome, and in many jobs (particularly our own) it's possible. But in many other jobs (the majority, perhaps?) it's impossible, or has extreme costs.

I believe that over time we'll find that children raised by strangers will have various physical & psychological issues compared to those raised by their own families; while it's necessary in some cases I don't think that we want to encourage it as a society.

<comment><USER28> _I believe that over time we 'll find that children raised by stranger..._

This has been studied. There is very little evidence for your hypothesis.

<comment><USER17> Do you have any links to any more extensive explanation?

<comment><USER28> The work of Judith Harris is a good place to start.

</comment></comment></comment></comment><comment><USER8> > The study found that over all, women earn $12,600 less than men before > children are born and $25,100 less afterward.

If two working people have a child, and one is going to partially leave the work force to care for the child, who's salary would you pick?

The uneven salary, on top of the cultural biases we all absorb, mean it's practically a given the man will stay in the workforce and the woman will become the caregiver.

Equal pay for women means more men will get to take on childcare roles. Feminism is humanism.

<comment><USER29> > The group of women who had the biggest post-baby pay gap compared with their > husbands was, paradoxically, women who earned more than their husbands > before having children.

Yet you ignore that the article goes on to state that the biggest gaps were the ones that started with the women making more. It seems on average the couple is picking the wife to absorb the hit regardless of the paychecks.

<comment><USER8> I did mention something about cultural biases, yes? Culture has its hooks deep. Given complete freedom economically, we still choose things based on what is "normal" or "expected".

<comment><USER26> And equal pay won't fix things like each gender having difference qualities they prefer in partners, on average. Nor will it fix things like career choice (studies have found that places with less economic freedom have better gender parity in picking careers). It may be possible some of this isn't cultural at all. Every other species on the planet has sexually dimorphic characteristics, so to we shouldn't assume that humans either don't, or even that the ones we do have would have no impact on any factors related to pay (including things like impacting what careers a person finds desirable).

<comment><USER8> You'd be surprised how much is cultural. Core beliefs, emotions, etc.

In nature vs. nurture, with humans, comparative anthroplogy is pretty conclusive - there are VERY few things all humans do regaurdless of culture.

"what do men do" or "what do women do" is so much more a function of history and how we've organized our society (aggricultural / industrial) than a product of in-built characteristics. I'm not saying there are no inherent differences, i'm just saying nobody knows what they are.

<comment><USER30> That's not true at all. One of the most obvious differences is physical strength. Pre-industrialization men were required for "heavy lifting".

[https://www.reddit.com/r/dataisbeautiful/comments/4vcxd0/alm...](https://www.reddit.com/r/dataisbeautiful/comments/4vcxd0/almost_all_men_are_stronger_than_almost_all_women/)

The ability to give birth is another obvious difference that has nothing to do with nurture but is directly relevant to the topic at hand.

<comment><USER8> There is a difference between who we are, and what we do. Most people work in jobs that do not require the kind of heavy lifting that depends on a sexual dimorphic advantage. Even in pre-industrial settings... tilling fields, harvesting crops, general farm work can almost entirely be done by men, women, and even children.

Yes, there are differences between the average man and the average women physically. Height, muscle mass, etc. but that does not say much about what is a natural role and what is one that is a product of culture. Because we don't spend, and probably never spent that much of our lives doing very heavy lifting or giving birth.

<comment><USER30> Those were just a few examples off the top of my head, there are many more (I'm unaware of any female hunting societies for example, breast feeding is another obvious one...).

Why do you think we evolved sexually dimorphic features if not to help us in specialized roles?</comment></comment></comment></comment></comment></comment></comment></comment>


What People Who Demand Innovations from Apple Don't Get - <AUTHOR> http://paweltkaczyk.com/en/apple-innovations/ <comment><USER2> A couple lines really bother me in this piece:

"... it matters to you whether your phone has 64 or 128 GB of RAM"

Holy Cow! I want that phone! I've only got 8 GB of RAM on my desktop.

"The first iPhone had apps..."

The only apps the original iPhone had were the kind you could get on any feature phone: weather, stocks, etc... It wasn't until later that the app store opened and really changed things.

As a whole, the article seems incredibly uninformed about technology. I would give the author a pass, but their conclusion doesn't seem to agree with history either. When the iPhone and iPad were released they were incredibly expensive and dismissed as toys for geeks. Less than a decade later those two devices have revolutionized technology and given Apple a dominant position. Apple has already crossed the chasm. Not with MacBooks, but with iPhones.

<comment><USER3> > _Holy Cow! I want that phone! I 've only got 8 GB of RAM on my desktop._

They probably had in mind smartphone disk storage options.

That said, technically speaking, they are correct in a pedantic way: a phone's SSD is also RAM, as there's a constant time of accessing any random address on the drive.

<comment><USER4> That's exactly what I meant :) RAM as in random access memory, as opposed to read-only memory. As you mentioned, I'm not uber-geek :)

</comment></comment></comment><comment><USER5> As a shareholder, I have to admit I've lost a little confidence in Tim Cook. He's a fantastic operations guy, but lacks a founder's vision, drive and risk- taking mentality. I also think companies, unlike governments, are best run by dictators. With Tim, it seems like decisions are community (in terms of employee) driven instead of coming from his vision.

With that said, I'm still a huge Apple fan boy. The stock's fundamentals are off the charts, look at P/E, solid dividend, and huge piles of cash on hand. Not sold on the 1 billion investment in Chinese ride-sharing service Didi Chuxing (I can't connect the dots right now).

<comment><USER6> >He's a fantastic operations guy, but lacks a founder's vision, drive and risk-taking mentality.

If there's one thing I've learned in my corporate serfdom is that primadonnas can't handle other primadonnas. Do you think Steve Jobs would be able to work with another Steve Jobs? Jobs picked Cook because Cook wasn't Jobs, so Jobs was able to tolerate him. The problem is a company like Apple probably needs a Jobs-like character.

I see this all the time in the workplace. The difficult higher-ups always hire fairly milquetoast personalities they can easily control but when they leave, we now have a department of largely unmotivated 'yes men,' unable to do anything but take orders.

<comment><USER7> > The problem is a company like Apple probably needs a Jobs-like character.

I have been, idly, placing bets with myself on an Apple buy-out of Tesla, shades of Apple's buy-out of NeXT -- not merely to get a lead on the auto industry, but to get a new visionary leader on board in the shape of Musk.

(But I don't think Musk wants to lead a company he didn't build for himself: he doesn't want to just eat his cake, he wants to bake it from scratch.)

<comment><USER6> I suspect Musk is too busy with sexy technology like rockets and electric and self-driving cars to be bothered with agonizing over what Walmart moms think is a good phone. Apple isn't this hot sexy thing anymore, its the standard bearer of the mobile revolution which has become a fairly boring part of everyone's lives. I can't imagine a personality like Musk doing that job. It would seem like a caretaker job I imagine.

<comment><USER8> Couldn't you have said that Apple pre-Jobs, or pre-iPhone?

</comment></comment></comment></comment></comment><comment><USER9> What people demanding innovation from Apple don't get is that as a corporation Apple cares only about profit. If the profit happens to require innovation then there will be innovation , but besides this it's pointless thing. Usually the innovations in marketing are enough to keep the sales.

</comment><comment><USER10> I'm really finding it difficult to follow the author's logic here.

He starts off with the title

"What Tim Cook's Apple has in common with Porsche's Cayenne?",

but then the only comment he makes regarding porche is ..

"Just think what Porsche's hardcore users said when they first saw Porsche Cayenne. "Betrayal!", "It's not a Porsche!". And yet it made a killing when it comes to sales. Think Mercedes A Class, BMW 1…"

The rest of the article goes on in the same vein with quotes here and there, peace time/wartime something or other but essentially what he's saying is..

What people who demand innovations from Apple don't get is they are resting on their laurels? Taking it easy and raking profits? Riding on the coattails of their previous innovations. We get that. It's obvious and it's a deadend. It happened to Cannon, Sony, Nintendo, Intel etc etc. That's why people who get it want Apple to innovate.

<comment><USER11> The author's point is that the proper and profitable way to run a company - once it's crossed the chasm - _is_ the way Cook is running now.

You needed Jobs (or someone like him) to get Apple to where it is now by doing things that fit the early adopter market. But once you have done it, it becomes the wrong thing to do - because doing what the early adopters want/need will hurt the much larger, much more profitable part of the business and customers that actually do prefer the stability.

It's not a dead end - it's harvesting the field you've planted instead of neglecting it to try other fields/crops; it's what the shareholders would likely prefer and unsurprisingly they have done so.

<comment><USER4> Thanks for clarifying that. It's exactly what I meant :)

</comment></comment></comment><comment><USER12> Putting the PC in your pocket was a huge leap, what is left?

<comment><USER3> Healthcare, cars, NLP, AI and eventually space exploration and tons of other things besides...

<comment><USER13> And IoT - _good, secure_ IoT.

There's no lack of opportunities. But I'm seeing Apple struggling with keeping its current technology working as well as it has in the past - never mind building incredible cool new stuff.

<comment><USER3> > _But I 'm seeing Apple struggling with keeping its current technology > working as well as it has in the past_

I find that mostly a myth. The original OS X (10.0.1 or something) was a terrible release. It took until 10.2 to be usable. The G3 iBooks had thousands upon thousands of broken logic boards. The G5 leaked green cooling goo. The Cube was overheating. Don't get me started on the quality of their mice until the Magic Mouse. And most OS X releases, with 1-2 exceptions (Snow Leopard for one) were met with complaints and tales of horror (In fact El Capitan has been a big success in this regard -- hardly many complaints as with previous versions). XCode has been especially crappy before 6 (and doubly so before 4).

There will always be problems when you make tens of millions of devices and 100+ software titles, including 2 full OSes, a programming language, browser, down to NLEs and DAWs...

There might be more complaints today, but there are also 20x more Apple users than in 2005, and 10x more advanced ecosystem. Back then we discussed rumors for months and we cheered if the newly released iPod had cutting-edge features like a "color screen" (awe) or "video playback" (gasp).

Now we expect a fully working phone, a top notch compact camera, 4k video, retina display, 1.000.000+ apps in the app store, 4-5 different sensors, quick 3D graphics, fingerprint sensors, wi-fi, light on battery bluetooth 4, and tons more besides, which we take for granted, merely 9 years after then.

</comment></comment></comment></comment><comment><USER14> DON'T F*CKING HIJACK SCROLLING.</comment>


Moves app shutting down July 31 - <AUTHOR> http://moves-app.com/ <comment><USER2> Facebook also shut down TBH (anonymous compliment app popular amongst teens) and Hello (a phone app?).

They've also closed some of their APIs around graph + page searching...

guessing a lot of these actions a direct result of the Cambridge Analytic scandal.

I did really enjoy using Moves until they got bought though :(

[https://techcrunch.com/2018/07/02/facebook-is-shutting- down-...](https://techcrunch.com/2018/07/02/facebook-is-shutting-down-hello- moves-and-the-anonymous-teen-app-tbh-due-to-low-usage/)

</comment><comment> m-localhost Is there an app, like moves, that tracks in the background, without sending data to some server by default? Moves had a nice array of third party apps, they all die off now as well.

Edit: Apparently there is Arc App [https://www.reddit.com/r/iphone/comments/8vrwov/facebook_is_...](https://www.reddit.com/r/iphone/comments/8vrwov/facebook_is_shutting_down_moves_movesappcom_what/e1pw6cu)

<comment><USER3> Thanks, I have installed Arc a few hours ago (based on your message) and suggested friends that used Moves to do the same.

<comment> m-localhost Their privacy policy is much much better! Unfortunately the battery drain seems to be higher.

[https://www.bigpaua.com/arcapp/privacy](https://www.bigpaua.com/arcapp/privacy)</comment></comment></comment>


Facebook could cure cancer with 1 line of code in website – computes.js - <AUTHOR> https://blog.computes.com/how-to-build-a-facebook-supercomputer-e8afe6b2788a <comment><USER2> The title is insanely reductive. You could just as well say (assuming that cancer research funding is the issue with finding a cure--which is a highly debatable assumption) "The government could cure cancer by adding just two significant digits to this number (annual spending on cancer research)!"

In other words: the size of the light switch is not proportional to the illumination provided.

Also, those 80% of my computer's resources sitting idle are saving me battery hours and money off of my electrical bill, thank you very much.

<comment><AUTHOR> Your computer doesn't need to be asleep to be idle. Even while browsing the web, checking email, or programming, today's machines are more than 80% idle...

<comment><USER2> Yes, and while not-asleep idle it's using a lot less battery than it would be if all of its cores were pegged. That's what CPU throttling and adaptive power use are for, especially on phones.

</comment></comment></comment><comment><USER3> This is garbage. Idle cycle computing won't cure cancer.</comment>


Google's Super Satellite Captures First Image - <AUTHOR> http://blog.wired.com/wiredscience/2008/10/geoeye-1-super.html <comment><USER2> That article had me super-awesome-excited, then dropped the "that's so stupid" sledgehammer on me with this quote:

"There's one catch for Google: While the GeoEye-1 will provide imagery to the NGA at the maximum resolution of 43 centimeters, Google will only receive images at a 50-centimeter resolution because of a government restriction."

Oh well.

<comment><USER3> Do you think you can tell the difference between 3742 pixels per mile and 3218?

For reference, the google sats of my house have about 20cm pixels at maximum zoom, but they appear to have been upsampled or low pass filterd by maybe a factor of 3 or so judging by the noise in the trees. Possibly this will be better resolution, but there will certainly be less noise. My corner of the world is pretty grainy.

<comment><USER4> Given that 43 and 50 are relatively prime this could mean a much lower effective resolution after processing the images if they're taken at full resolution and digitally manipulated. That would kind of suck.

I have no idea how the optics systems work at this level, but if they can mechanically zoom out ~15% they can be sent to Google at sensor native resolution.

When the gap between what the US federal government will allow and what the sensors can do grows a little bit more, I wonder if we'll start to see foreign countries advance in selling photography to corporations. The article mentions that the US government has had the ability to read newspaper headlines since the 70s -- given the progress of things it has to be getting affordable.

</comment></comment></comment><comment><USER5> First Brender says "we can sell our imagery to customers around the world who have a need to map and measure and monitor things on the ground." then "Google's partnership with GeoEye is exclusive, meaning the search-engine giant will be the only online mapping site using the satellite's photos."

So which is it?

</comment><comment><USER6> sweet</comment>


Interoperable CSS - <AUTHOR> http://glenmaddern.com/articles/interoperable-css <comment><USER2> I really really love this idea. My only beef, currently, is that it generates this kind of CSS (taken from [0]):

        ._23_aKvs-b8bW2Vg3fwHozO { background: red; }
        ._23_aKvs-b8bW2Vg3fwHozO { color: green; }
        ._23_aKvs-b8bW2Vg3fwHozO ._13LGdX8RMStbBE9w-t0gZ1 { color: green; }
        ._23_aKvs-b8bW2Vg3fwHozO ._13LGdX8RMStbBE9w-t0gZ1 .global-class-name { color: blue; }

This seems like a pain to debug using devtools. I'd love if the generated classnames could resemble the original classnames, e.g.

        .my-fantastic-component-24xMw

Or even just

        .my-fantastic-component-1

Given that webpack has global program knowledge anyway, it should be able to prevent name clashes if multiple css files use the same local class name, no?

I see that there's nothing in this _standard_ , however, that would prevent readable class names.

[0] [https://github.com/webpack/css-loader#local- scope](https://github.com/webpack/css-loader#local-scope)

<comment><USER3> For webpack:

      You can configure the generated ident with the
      localIdentName query parameter (default [hash:base64]).
      Example for easier debugging:
      css-loader?localIdentName=[path][name]---[local]---[hash:base64:5]

From the docs. Results in classes like these:

      src-components-MyFantasticComponent---myClass---3ZAMU

Other packaging systems that use CSS modules will probably offer something similar.

</comment></comment><comment><USER4> This sounds great, but the obvious problem with Webpack & co seems that they are entirely useless for isomorphic code. There's just no way to make require work like that for code that has to work on the server as well (which is one of the things React allows us to do).

<comment><USER2> This is just plain untrue. The trick is simply to make Webpack generate a special build for Node.js that doesn't access the DOM.

With oldschool webpack style-loader, all you need is the well documented & supported ExtractTextPlugin to save the .css to a separate file, and there's nothing left for node to choke on. I'm not sure whether the same works as easily for the OP's idea though, but at a first glance I don't see why not.

The only real disadvantage is that you're feeding Node webpack-generated code, and not vanilla JS files. I've yet to find the real big problem with this, though, other than a slightly slower save-build-reload cycle.

<comment><USER4> > The only real disadvantage is that you're feeding Node webpack-generated > code, and not vanilla JS files.

This is what I mean.

Normally your chain would be:

ES2015/JSX -(Babel)-> Node code -(Browserify/etc)-> Browser code

With Webpack's "require" magic you end up with this:

ES2015/JSX -(Babel)-> Intermediate code -(Webpack)-> Browser code & Node code

This isn't necessarily wrong (you can make Webpack use Babel and thus merge the first two steps, I think) but right now it feels extremely wrong to me. I'm not yet convinced Webpack is a good idea either -- especially because the documentation is a sketchy mess at this point.

Webpack (like browserify) was written to generate bundles for the browser, not modules for Node. I have been wrong in the past and would be willing to suspend my disbelief if I were able to find any reliable information on how you're supposed to use Webpack for Node, but right now my gut feeling tells me it's a really bad idea and the Node support is a hacky afterthought at best.

<comment><USER2> Ah, I see your point. That said, Webpack works great with Babel indeed, so in practice this becomes:

cross-platform ES2015/JSX --(Babel+Webpack)--> Browser code & Node code

The only thing, really, is to stop thinking of webpack as something that turns node code into browser code, but of something that turns general code into platform-specific code.

I fully agree that this wasn't what webpack was originally designed for, but in practice there's nothing about webpack that makes this intrisically difficult. Personally, I just use DefinePlugin to define a boolean SERVER constant. It's set to true on the node build and to false on the browser build, and then in my code there's just some stuff like this:

        if(SERVER) {
            // node-only code
        }

For the browser build, Webpack turns that into this:

        if (false) {
            // node-only code
        }

And then UglifyJS removes it entirely.

React uses the same trick to differentiate between production and dev builds, so in practice most React+webpack users will already be doing something like this so it's not a complex step to add.

I manage the difference between test/dev/production builds in the same way, haven't yet found a downside.

<comment><USER4> FWIW, the React app I would be using Webpack for (currently using Browserify and Babel) doesn't actually do any server/browser checks, the entire difference is handled via two different entry points and a few module swaps for browserify in my package.json file.

</comment></comment></comment></comment></comment><comment><USER5> I thought you were going to talk about CSS stylesheets that could be used in a lot of contexts and different websites, instead of in only one, like [http://fiatjaf.alhur.es/programming/reusable-pure-css- themes...](http://fiatjaf.alhur.es/programming/reusable-pure-css-themes/)

</comment><comment><USER6> I believe less' `:extend` pseudo-class is a better starting point to implemented scoped styles. See: [http://lesscss.org/features/#extend- feature](http://lesscss.org/features/#extend-feature)

</comment><comment><USER7> This seems like a step in the right direction. I think we all intuitively know that the current global nature of CSS is plain wrong.

A system like this would make it much easier to swap in new ui elements to an app without worrying about breaking styles elsewhere.

<comment><USER8> I disagree, I don't intuitively know that the global nature of CSS is plain wrong. I have never seen an example that explains to me why the global nature is wrong. I would actually like to see it.

Swapping new ui elements without worrying about breaking styles elsewhere is quite easy with even basic vanilla CSS.

</comment></comment><comment><USER9> i use nested css with react components. Seems to nicely solve the collision issue.

       .component-name{
            .label-header ...
            input{..
        }

<comment><USER8> This is the thing that gets me. Most people who complain about CSS not doing this or not doing that seem to not understand how CSS actually works. Avoiding collision in CSS is so freaking easy it's funny to see Javascript based solutions for it.

I really wish that browsers could parse nested CSS like we do with SASS and LESS so that we can move on from this type of stuff.

Loading CSS on demand I can get behind because it makes sense. But there's no reason to create these strange class name solutions to avoid collisions, which make it hard to use browser developer tools, when you can namespace now. Today. With vanilla CSS even.

<comment><USER10> > Avoiding collision in CSS is so freaking easy

Having spent this afternoon scratching my head over one, I'd like to know what I've missed.

Take your standard website, with a block called '.sidebar'. You want this to have default styles (font size, headings etc).

Into .sidebar (and .main, and .some-other-region) you can drop components. I like to use BEM for component naming. This one has: .box {} and .box__header {}

My issue: given

Header

 the styles on .sidebar h4 {} override those on .box__header.

How does one set defaults?

<comment><USER8> Assuming I'm understanding correctly, seems easy to me.

        .sidebar h4 {
          color: red;
          font-size: 20px;
        }
        .box .box__header {
          color: green;
        }

Header

 will produce red text.

Header

 will produce green text.

Both will have the 20px font-size.

It all depends on how you plan out the HTML structure and CSS selectors.

EDIT: I would also say if you are placing HTML like this into the page in several places, then the CSS for it should be self-contained and totally separated fron the rest of the page. I would be reluctant to use default CSS on a container such as that. But I can see it would depend on the nature of the container.

<comment><USER10> Perhaps I misunderstand BEM, but .box .box__header {} seems to be against the spirit of it -- my understanding is that this naming convention exists to prevent needing to nest style rules?

I agree with your edit; global styles are probably not the best here, however tempting they may be to reduce wrapper markup and make everything simpler (to begin with)

<comment><USER8> BEM would work in this case. It's just that I wouldn't use .sidebar as the starting container for the related elements, it would be .box instead.

In this example .sidebar just happens to be the container to hold other elements being placed into it. I would make .box be the actual true container of the widget I am placing inside whatever container happens to need it. My CSS would be built so that .box is the foundation and it could exist anywhere on the page.

</comment></comment></comment></comment></comment></comment><comment><USER11> Relevant XKCD:

[https://xkcd.com/927/](https://xkcd.com/927/)

<comment><USER12> Always relevant. In life, and in code.

</comment></comment><comment><USER13> I've spent the last four years building a platform for reusable components, which "just work" across all devices, and across domains. So I've had to deal with reusability to the extreme:

* Installer and versioning across apps and plugins

* Common file system and conventions

* Common event system with automatic unregistering of events

* Common system handling user accounts/contacts/security/etc.

* Common system for handling data/access/realtime updates/offline notifications.

Let me tell you, REAL interoperability is hard. It goes without saying that everything is namespaced. But then you have to build a robust system which marries components to the Web's best practices, which are based around resources. For example you have web "pages" which you can just drop "tools" (components) on. For these tools to "just work" while being reusable, the system has to literally have a way of swapping their stylesheets and scripts in and out on demand. Then it has to provide all the events to hook into and machinery for "activating" these tools:

* Events for constructing parents before children

* Events for initializing parents after children

* Async loading on demand of all scripts/stylesheets as fast as possible

* Compiling and minifying everything into a couple filesfor production

* Support for versioning and storing some (most) of the code in local bundles for downloaded PhoneGap apps

And then you still get questions such as "how does a Streams/related tool interoperate with a Q/tabs tool on the SAME ELEMENT, so I can combine the behaviors and have a bunch of tabs that represent articles related to a particular topic?" The tabs are supposed to "just work" and the "related" tool is supposed to "just work".

So when it comes to CSS, a few years ago I just went with the straightforward approach:

You call Q.addStylesheet(...) and it "just works". It adds your stylesheet when your tool is loaded and then removes it when it's not needed. Each class and id is supposed to be prefixed by the namespace of the plugin bundle you're distributing. Each tool would have classes that are prefixed with that tool's name. Naturally, you avoid ids in the actual plugin, but each tool has an id which the _app_ can use to style things.

You can take a look at the result here:

[https://github.com/EGreg/Platform/blob/master/platform/plugi...](https://github.com/EGreg/Platform/blob/master/platform/plugins/Q/web/css/filter.css)

[https://github.com/EGreg/Platform/blob/master/platform/plugi...](https://github.com/EGreg/Platform/blob/master/platform/plugins/Q/web/css/inplace.css)

[https://github.com/EGreg/Platform/blob/master/platform/plugi...](https://github.com/EGreg/Platform/blob/master/platform/plugins/Q/web/css/tabs.css)

[https://github.com/EGreg/Platform/blob/master/platform/plugi...](https://github.com/EGreg/Platform/blob/master/platform/plugins/Streams/web/css/Streams.css)

And the corresponding JS modules:

[https://github.com/EGreg/Platform/tree/master/platform/plugi...](https://github.com/EGreg/Platform/tree/master/platform/plugins/Q/web/js/tools)

[https://github.com/EGreg/Platform/tree/master/platform/plugi...](https://github.com/EGreg/Platform/tree/master/platform/plugins/Streams/web/js/tools)

Here is an example of a Streams/related tool integrating with a Q/tabs tool:

[https://github.com/EGreg/Platform/blob/master/platform/plugi...](https://github.com/EGreg/Platform/blob/master/platform/plugins/Streams/web/js/tools/related.js)

So that's a proven style I would recommend.

<comment><USER14> Seemed like the 'juice' in this interoperable CSS concept was that you could pull just the CSS classes you needed from the imported css, not simply include the whole import. It's (purportedly) an unopinionated approach to composing CSS that's bound to encourage reuse and continuous refactoring without any unneccessary bloat in the output. Winner winner chicken dinner!</comment></comment>


What If Parents Loved Strangers' Children as Much as Their Own? - <AUTHOR> https://www.newyorker.com/tech/elements/what-if-parents-loved-strangers-children-as-much-as-their-own?mbid=synd_digg <comment><USER2> They would be opposed to school vouchers.</comment>


Java SE Subscription FAQ - <AUTHOR> http://www.oracle.com/technetwork/java/javaseproducts/overview/javasesubscriptionfaq-4891443.html <comment><USER2> If you need mission critical support, this is great. I'm happy to see commercial operations around an open source project.

If you are low budget but need a high-quality JVM, this project is up-and- coming: [https://adoptopenjdk.net/index.html](https://adoptopenjdk.net/index.html)

</comment><comment><USER3> Why isn't everyone running away from Java as fast as possible? Oracle is the last company I would want to depend on for a critical piece of functionality....

<comment><USER4> I don't think you realise how the Java ecosystem works. It's not like with .net where MS does almost everything.

You can still use OpenJDK (which is what Oracle Java is based on). Oracle just put their OpenJDK distro in a subscription model. Just like RedHat does with RHEL in which case there is CentOS. But all development still happens in OpenJDK. So for example for OpenJDK there are a bunch of other distros for OpenJDK like Zulu: [https://www.azul.com/downloads/zulu/](https://www.azul.com/downloads/zulu/)

And if you really hate Oracle and want nothing to do with OpenJDK you can also use IBM's J9 JVM: [https://www.eclipse.org/openj9/](https://www.eclipse.org/openj9/)

Also Java is developed by more then only Oracle as you can see in the various JCP projects: [https://www.jcp.org/en/jsr/detail?id=380](https://www.jcp.org/en/jsr/detail?id=380)

And historically the largest part of Java development happens in the community. Like Akka, very.x, etc. Where in .net MS has more a tendency to put everything in the language itself.

<comment><USER5> What are the differences among these JDKs? Will JRE always remain free?

<comment><USER4> Well in case of Oracle JRE vs Azul Zing JRE they are both derived from OpenJDK and the technical differences are minimal. There is some minimal difference like Oracle has a (legacy) commercial font renderer and Zing is build with LLVM instead of GCC by default.

Almost all OS'es besides Windows and OS X (So Linux distros, FreeBSD, SmartOS, etc) already build and distribute OpenJDK themselves. So this is all really just about Windows and OS X. You can easily compile OpenJDK yourself but I would recommend anyone to just move to Azul Zing and you won't notice any difference from the Oracle JRE.

There are also full fledged JVM's which have their own codebase like OpenJ9 (the formally IBM JVM which is now opensourced under Eclipse governance), Azul Zulu (not to be confused with Azul Zing!), etc. These are all Java compatible JVM implementations and have their own pros and cons. Zulu for example is a commercial JVM that has a pauseless garbage collector. So to be clear; These are NOT derived from OpenJDK.

Some background on JRE vs JDK. The JRE is the Java runtime environment so basically the JVM plus soms tools. This is what you need to run Java applications. The JDK also contains the Java compiler and some development tools.

<comment><USER5> Thank you. Can you please elaborate on why you recommend Azul Zing over OpenJDK?

Also, does OpenJDK contain both the JDK and JRE?

<comment><USER4> Yes, OpenJDK is the project which contains both the JRE and JDK. When Sun opensourced their Java implementation it named it OpenJDK. The only reason their "closed source" distro of OpenJDK (ie. what is now Oracle JRE/JDK) wasn't killed off was because of a couple of minor things which they couldn't opensource like the font rendering engine. In OpenJDK those are replaced with alternatives. Apparently they didn't want to force their users to deal with any possible incompatibility so they just kept distributing this as the Sun (and now Oracle) JDK / JRE. But there is really nothing special about it.

I recommend Azul's OpenJDK distro because it is intended to be a drop in replacement of the Oracle JRE in the broadest sense (easy to use download page, etc.). Getting OpenJDK is a bit harder; the webpages are a bit unclearer. Windows files harder to find. But if you already have OpenJDK via your Linux distro, can download it yourself, etc. I would say; By all means use it!

<comment><USER5> Can I expect Java Mission Control, Java VisualVM and a plethora of other 3rd party tools to work as expected with OpenJDK / Azul Zing?

I was going through Azul Zing documentation I noticed that it uses different C4 garbage collector algorithm - which is different that the one used one OracleJDK. Since I am following some tutorials on JVM on Pluralsight, I am guessing I should pick OpenJDK over Azul. Am I right?

<comment><USER4> I just noticed I've mixed up the names of Zulu and Zing; Zulu is the OpenJDK distro, Zing is their own JVM which has C4. So you should use Zulu. Zulu doesn't have C4. Sorry about that.

Since Zulu is basically OpenJDK it should all just work. Though mission control was opensourced very recently so it might not be in their codebase yet.</comment></comment></comment></comment></comment></comment></comment></comment>


Cargo on fire explodes in the Atlantic Ocean on July 14th - <AUTHOR> http://www.odin.tc/2012/mscflaminiaen.asp

<comment><AUTHOR> have you read it somewhere in the news ?</comment>


9 Reasons Your Current Resume Will Never Get You A Job At Apple Or Google - <AUTHOR> http://www.businessinsider.com/9-reasons-your-current-resume-will-never-get-you-a-job-at-apple-or-google-2012-2

<comment><USER2> TL;DR: If you didn't go to a top ivy league school, bust your ass with internships and network like crazy, you don't want to start your own business AND you don't know a little bit of everything, Apple or Google doesn't want to see you.

(Sounds like BS to me, somehow...)</comment>


What's the deal with counting users? - <AUTHOR> http://www.neomeme.net/2007/07/26/whats-the-deal-with-counting-users/ <comment><USER2> Article summary:

1\. Companies inflate user numbers because high user numbers bring high valuations.

2\. Except that, oops, the data show that valuations and user numbers are uncorrelated. The ratio varies by nearly two orders of magnitude, from $5.80 per user to $200 per user. YouTube has 1/3 of MySpace's users but is valued three times higher. Gosh, it's almost as if the market is ignoring these inflated and possibly irrelevant user numbers while focusing on other things. Which invalidates the entire premise of this article.

3\. Valuations are insane! Especially the ones that are based only on rumors! OMIGOD ITS A BUBBLE ITS GONNA BLOW OH NOES!

     - - -

Incidentally, the author wonders how Google could possibly earn back the $44 per user that it paid for YouTube. If this AdAge report I found on Google is to be believed (warning: evil PDF link):

[http://www.journalism.wisc.edu/~gdowney/courses/j201/pdf/top...](http://www.journalism.wisc.edu/~gdowney/courses/j201/pdf/top%2025%20broadcast%20tv.pdf)

...the NBC TV network took in $5.6 billion gross ad revenue in 2003. NBC claims to reach 103 million U.S. viewers, according to the ever-reliable Wikipedia. That's a gross of $54 per viewer _per year_ , using a _very_ generous definition of "viewer". And that's just one TV network, in one country, in one year.

Which is not to say that Facebook is not overvalued. I still don't know anything about that.

</comment><comment><USER3> That's how business works .. it's all a number crunching game. As a rule, divide their users by 2 and their unique visitors by 4 - for most networks.</comment>


JPL has created a "Climate Time Machine" to teach policymakers about global warming - <AUTHOR> http://www.treehugger.com/files/2008/09/wired-nextfest-2008-nasa-jpl-climate-time-machine.php

<comment><USER2> Hostname is "treehugger.com". I'd have to say I think there's some bias, but I can't make out if it's pro- or antienvironmentalism...

<comment><USER3> I do not suppose that the "machine" is anti-environmentalism but it might be anti the man made global warming religion. However it's feature on that particular site makes me doubt the scientific credentials will be as rigorous as the claim.</comment></comment>


Everything You Know About Fitness Is a Lie - <AUTHOR> https://www.mensjournal.com/features/everything-you-know-about-fitness-is-a-lie-20120504/ <comment><USER2> Previous 20 discussions: [https://hn.algolia.com/?query=Everything%20You%20Know%20Abou...](https://hn.algolia.com/?query=Everything%20You%20Know%20About%20Fitness%20Is%20a%20Lie&sort=byDate&dateRange=all&type=story&storyText=false&prefix&page=0)

... and the first of two with 300+ comments: [https://news.ycombinator.com/item?id=2287213](https://news.ycombinator.com/item?id=2287213)

<comment><AUTHOR> At this time of year, this one is always worth reading again.

</comment></comment><comment><USER3> Off balance "single limb" exercises will work your entire body quickly with great effect. Ex. one arm overhead lift while on one leg, amazing. Single leg squats, romanian squats, holding a weight on one arm...jump rope. You can make up a ton of these and they will force your core to engage for balance. They are tiring (you sleep well) but are amazing and once mastered you have a deep strength.

</comment><comment><USER4> > _Little-girl weak: a man doesn 't easily forget that kind of crack._

If and when I ever decide to get really fit (beyond my current every-few-days- on-the-treadmill) the absolute LAST thing I will be wanting is some muscled- headed ex-jock shouting insults at me.

If I can't get fit under my own steam, then no amount of stupid name calling is going to encourage me.

<comment><USER5> OK. Some people react to external criticism with seething resentment. Others end up finding it a useful source of energy to push themselves into a new state even if they are hating it in the moment. The continued "tough love" approaches in traditionally masculine spaces like military boot camps suggests it works for many.

<comment><USER6> That's really the mark of a good coach: being able to identify what's good for the individuals they're coaching. "Don't be a weak little girl!!!" works for some "C'mon 5 more you're almost there you're awesome!" works for others.</comment></comment></comment>


AngularJS Directive Design Made Easy - <AUTHOR> http://seanhess.github.io/2013/10/14/angularjs-directive-design.html

<comment><USER2> Every time I see someone explaining the Angular API I cringe because it seems like an API that has no respect for the user actually forced to learn it. Everything seems so hostile. For example:

      restrict: 'E'

Good luck knowing what that does at first glance. Instead why couldn't it have been simply called:

      type: 'element'

Or another one, surely the default for creating new custom elements would be to always replace the element, so we shouldn't have to manually set:

      replace: true

But we do because not all directives default to replacement, so maybe they thought it would get confusing if some defaulted to it. Instead they probably should have realized that the problem wasn't with the default for replacement, it was that everything was shoe-horned into a "directive". Why not have an easy shortcut for create elements vs. creating events or attributes...

      app.element('button', ...

      app.attribute('toggle', ...

      app.event('scroll', ...

And then you can have sensible defaults for each one without the user getting extremely confused. I would absolutely expect elements to replace by default.

I'm sure this is an oversimplification, but surely there have to be less implementor-hostile ways to write these features. For example, even after reading the article I still have no idea what setting this on an attribute does:

      scope: {
        toggle: '='
      }

That's ridiculous. I don't think there are enough designers on the Angular team.

<comment><USER3> Directives are a DSL for creating new behavior using HTML. Once you learn the language, the symbols make sense and directives are easy to read. I think you are confusing "intuitive" with "familiar". Since you are not familiar with directives, you do not find them intuitive.

<comment><USER4> I think there is still a fair point. I'm quite familiar with AngularJS and writing quite advanced directives and I would agree some of the APIs are not as user-friendly as they should ideally be. Couple that with limited documentation and guidance and you have quite a steep learning experience.

Bottom line, things could be better.

<comment><USER3> I partially agree, directives are not easy to learn, and there is not enough good documentation or literature on how to write them well. However, I have found the api to be very expressive , concise, and flexible once mastered. I can't say the same for most real languages I work with everyday.

</comment></comment></comment></comment><comment><USER4> One nit-pick, isolate scopes (that is where you do `scope: { 'property': '=' }) are not the only (or even the best) way to bind data to a directive. In fact if you look at the AngularJS internals it's pretty much never used and instead they just use the current scope (whatever scope that directive is declared in).

This can be done by calling `$scope.$watch(attrs.myBinding)` directly with expression values passed in through element attributes. If necessary `scope: true` can be used create a child scope that inherits from the current scope. This is a good idea if your directive uses it's own controller. However this isn't necessary for most simple directives.

An isolated scope does exactly that, creates a scope for the directive completely isolated from the prototype chain of the containing scope (and thus the application's scope). This is used for complex directives like ng-repeat that need to create and expose their own scopes with the templates that you put inside the repeat blocks.

I know I initially fell into the trap of using isolate scopes to solve this problem. After looking through Angular's own directives for examples I learned other approaches.

I'm not sure exactly what the considered best practices are here (because there is almost no detail on issues like this in the documentation) but at least basing it off how the Angular core team builds their own directives I would suggest avoiding isolate scopes unless scope isolation is specifically necessary.

<comment><AUTHOR> Interesting. I started with $scope.$watch(attrs.myBinding) first, and switched it to isolate scopes after doing more research.

I'd be interested to hear if someone who knows for sure could chime in as to what the best practice is and why. I can update the article to match.

<comment><USER5> I really enjoyed your post. I agree that it's a good "directive smell" if your directive is reusable and application-agnostic.

In that vein, I think you're right that an isolate scope is generally a better default because it makes it clear that the directive expects no dependencies on the inherited scope, and it prevents the directive from overwriting any scope properties set by an ancestor.

I think using an inherited scope makes sense if you're building very app- specific directives that are tightly-coupled to their ancestor.

<comment><USER3> A single element cannot have more than once isolated scope. It only makes sense to use an isolated scope when a directive has a template associated with it. Otherwise, one should rely on the $parse + the "attrs" object + $scope.$watch to correctly handle expressions.

<comment><AUTHOR> That seems strange. What happens if two attribute directives ask for an isolate scope? Does it give them the same one, or just fail?

I used isolate scopes in the article because I thought they were easier to understand, but I'm thinking of updating it.

<comment><AUTHOR> After looking into it, angular seems to throw an error if two directives ask for an isolate scope.

</comment></comment></comment></comment></comment></comment><comment><USER6> A few notes from my own experience:

\- think very hard about whether you want to use isolated scopes or not, because their presence affects the semantics of scope inheritance, and changing that decision after the fact can cause hard-to-debug issues in completely unrelated parts of your app. This is especially true if you're using transclusions

\- exposing events is tricky if you're exposing model values because in those cases you need to call $digest before calling $apply. Another catch is that attaching the event trigger to a DOM event handler will often cause it to fire on programmatic model changes, which may or may not be what you want (it usually isn't desirable to fire a change event when set the initial value of a field from the controller, e.g. to populate an edit page, in an app that does save-on-blur)

</comment><comment><USER7> Im curious if watching a function is conventional as in

       scope.$watch(function() {
            scope.bulb = controller.getState();
          });

as opposed to watching a data-bound variable and what how that(watching a func) affects performance

Note: from this example: [http://jsfiddle.net/codef0rmer/2ZrX3/](http://jsfiddle.net/codef0rmer/2ZrX3/)

<comment><USER3> The only reason one would use scope.$watch in this fashion is to have a function executed when a digest occurs. The original purpose of the $watch function is to take 2 functions, one that returns the watched value and another to be executed when that value changes. The fiddle provided is not a very good example of "reusable" directives. The fiddle could be rewritten to use a directive that adds or removes a given class based on a boolean, and the rest of the state could be handled by built in directives.

</comment></comment><comment><USER8> great article! a couple orthogonal notes:

1\. if you were going to actually do something like the 'scroll' example, make sure to debounce the scroll handler. it's a good practice for any 'scroll' or 'resize' event handler, but especially when you have to dirty check every time, it could get slow: for example, using [http://underscorejs.org/#debounce](http://underscorejs.org/#debounce)

      element.scroll(_.debounce(function(){...}, 15)

2\. Sean mentions "A good directive only does one job" which is so true! and in the same spirit, note that it is better to not _make_ things be element based directives (the "restrict: 'E'" part) but allow the end-user to use it as an attribute-based selector (eg: "restrict: 'A'") because you can have an element "mix-in" functionality of 2 directives by giving them both attributes, but an element can only be 1 type (a <modal> cant also be a <photo>).

</comment><comment><USER9> _" A good directive is not application specific"_ is a very generalist statement. You should encapsulate DOM manipulation in a directive, so even if it's not as reusable as ng-repeat, if you have to manipulate the DOM it's the way to go as well.

<comment><USER10> The point is - "All DOM manipulation belongs to a directive" but still it can be made application agnostic. What he is mentioning there is making it application agnostic - like for example not assuming in the directive that you have $scope.users on the $scope etc..</comment></comment>


Ask HN: Drowning in technical debt and legacy systems - <AUTHOR> I've joined a company and discovered that the "platform" I would be working on is actually 3-4 different platforms with the same purpose (provide a sort of PaaS environment to developers).
Each of these platforms is highly coupled with the other and there is a lot of gotchas everywhere. I'm coming to the conclusion that various managers were incapable of saying "no" every time a developer decided to use the latest trendy toy. They move on and all of that is here today, for me and my team to support. I don't have management responsibilities though.
I'm starting to resent management. Not because of their past mistakes but because that continues happening today. Not a few weeks ago someone was proposing something new and management was all onboard again with the idea of a new development without a plan for all the legacy. It seems they hope everything will be migrated to the newest platform by a miracle.
Anyway, I prefer to focus on the technical side of things only but this situation is preventing that. The lack of consistency in developing this platform means I waste my days lost learning about a new gotcha in the infrastructure (followed by a long story about "this is that way because...") and forgetting it a few days later. Only to be bit again soon enough.
I have rapport with management but this looks like a very long game. Any technical solutions I should use? Better documentation? Just saying things will take much longer because, well, everything is a mess?
Have you been in the same situation? Did you get out? How? <comment><USER2> You're suffering from a very common misunderstanding about management: that their priorities should match yours. Obviously, I don't have enough detail about the particular situation but, as described, it doesn't seem that there is any particularly pressing reason for them to give priority to your angst.

The solution follows from the first sentence above. You need their priorities to match yours. Now, it's possible this may happen by accident but that's not particularly reliable. By far the best way is to actively help them come to the Promised Land.

So, how do you do that? You put together a proposal that solves your problems and you demonstrate that it solves theirs. Whatever they may be: cost, time to market, uptime etc. And then you sell it to them.

If you don't know what floats their boat, find out. If you don't know why solving your problems benefits them then why would you expect them to? And you need a proposal that's actually achievable.

Do that and you stand a reasonable chance of making progress. Or at least you'll be clear about why you won't.

At this point, most technical folk decide that it's too much like hard work and don't bother. After all, complaining about stuff can be quite cathartic. But if you genuinely want it fixed then taking responsibility is a good start.

<comment><USER3> Over the years, I've come to realise that for a not-insignificant portion of managers, their goal is to hide the fact that their whole deparment is huge mess that's (at best) not delivering much value. They only need to do it until they get promoted or get a better job offer from outside. Then, this mess gets inherited by another manager, who, after initial struggles, comes to peace with the fact the the whole deparment is beyond salvation and in turn starts to plan for his exit... They're at least as screwed by legacy as we are.

</comment></comment><comment><USER4> Your job isn't decision making but you can make sure management is fully aware of what they are dealing with. Outline major problems that you keep running across, you mention highly coupled platforms, that usually means changes in one system can have negative affects on another, and may not happen right away.

The big trade-offs for ignoring tech debt are software quality, system health and speed of development. Those things will get worse with time. If you bring up facts with evidence, on how those are poor because of the tech debt, it could help. Better yet, align tech debt with product strategy. For example, you know the product strategy is to do more X and system 1 is primarily involved with X but changes impact systems 2 and 3. Propose untangling system 1 from 2 and 3 as part of the effort with improving/building more X features. It really pays off when system 1 is loosely coupled from others and can evolve on it's own.

A common theme I've seen from some developers is basically to toss out the old system and build a new one. This usually never works. You probably need to start small with minor refactors to improve things and build credibility that refactoring is a path towards a better system.

When it comes down to it though, if management listens and mostly just ignores your advice, wait for the next failure and after it is resolved, gently (not "I told you so") bring it up again that maybe it could have been prevented.

</comment><comment><USER5> Who is the system owner? What is the product strategy and technical strategy? How are they aligned (if at all). Is there a high level strategy roadmap for the business? What about a product roadmap? What management framework is in place? In the end this comes down to vision, alignment and execution (and of course financial capability and buy-in to execute on the vision).

<comment><AUTHOR> The answer is 'no' and 'nobody' to all those questions. It seems hopeless (or at least out of touch for me to change much of that, since I hope to keep on the technical side of things).

<comment><USER5> Then there isn't much hope and I would look for a new job if changing that isn't on the cards. Your job in the technical side relies on good governance.

</comment></comment></comment><comment><USER6> I am not sure if I can help with your question much, but I am sure I am in a very similar situation right now and I just learnt how to make myself feel better. No, I didn't "solve" it or "get out," but kind of not so bitter let it go.

Some context first. I have been to my current work place for a year. Our team have been maintaining a legacy system which keep upsetting me once in a while during the past year. It is a build system for many fundamental tools but the best it can give is its best effort. Sometimes a build just fails without any traceable reason, "clean everything before any builds" is the culture here. Other than reliability, the way this system utilizes machines is a mess. About 15 people across several software teams manually partition all the resources, and build/test/development can occur on any of those machines simultaneously. etc. Everyone seems to be either comfortable with it or ignorant to this issue.

So I write proposals a few times to address those problems during the past few months. It is a good thing, every body says that, but the reality is no any privileged one would ever start any practical change.

I started feeling severe Monday blue. I am always depressed about how ignorant the colleagues are or raged about every commit message. Every technical post, software engineering principle reminds me that the legacy system is just a piece of sxxt, so are those who ignore this fact. I just went out of my mind.

One day I found that I am near burnout, so I took a vacation back home and stay a few days with my parents, none of whom knows anything about software. However, it was still good to hear their wisdom about workplace things. At the time I knew that they are proud of me that I had the courage to address old problems, the rage inside me started to decrease. And now I can see the whole picture from a more neutral perspective.

Nobody wants to change, especially those who uses them in a daily basis. For any slight changes, call it enhancement/refactor/rewrite whatever, the man in charge will ask you to provide explanation from the draft to all details. The best case is that you have a PoC to demonstrate your idea, but again the scale of PoC may be challenged.

In conclusion, I tried to understand the rootedness in such legacy system, and at the same time tried to relieve myself from the pressure of "you must do something with this!" at the same time, but it seems pessimistic to me that the two goals are contradict to each other. I am still trying to promote my solution to the crazy mess, but less motivate and proactive than before. Since this is only a minor project in my whole career life, I don't have to care it so much that I can't feel anything other than anger to my colleagues. Now I feel better.</comment>


Causata Product Demo: Identity Graph - <AUTHOR> http://www.youtube.com/watch?v=0HjD-8eq91

<comment><AUTHOR> I posted this because it gives a good view of the sort of data aggregation that's happening.</comment>


Ask HN: Help needed on database schema designs - <AUTHOR> Hi HN,
I work as full stack developer, but never really spent time on Database designs. I had written code to retrieve data out of DB, but never ever created a schema from scratch. So, I thought of doing some side project to understand how database design involves.
I had decided to create a Resume Builder Application. Here are some of the features that I had thought about:
* User can sign up to create his/her own resumes.
* User can have multiple resumes. (only applicable for paid users, for free users only one resume)
* Resume can be built from the UI (from available components) and user can save it as draft.
* Resume can be published via url.
* Published resumes stats like visitors count needs to be calculated.
* User can delete the resume.
* User can upload his/her pic.
* User can add description about themselves.
Given all these, I have come up with this schema:
https://ibin.co/3CoJEfeQTuAp.png
Here are the questions I have:
1. I have a general knowledge on RDBMS, so my schema targets databases like Oracle, MySql etc. But can we choose NoSql for this problem? If so why?
2. Is my schema correct? Does it work on large data with ease?
3. I thought of saving the resume layouts (layouts for each resume is decided by the user via say UI) in JSON format. Is it a good practice to use JSON datatypes?
4. ResumeData table serves to store the user data for each resume. Is it a good to have a separate table for the same?
5. If the answer for the first question is RDBMS, which database you will prefer? I had decided to use PostgreSql.
Thanks a lot for spending time on answering these questions. <comment><USER2> It is probably easier to design a schema from a data-centric viewpoint rather than a user centric viewpoint. Schema are ontologies and ontologies answer the question, what the hell is it?

For example, a resume contains photo*. CRUD by the user is no different that CRUD by the site owner and no different from CRUD by a recruiter. Differences don't happen at the schema level they happen at the application level: recruiters and users and administrators might all stored in the people table and the application grants them different CRUD privileges and generates different views.

Ontology is largely orthogonal to whether the persistence is in a relational, key-value, or graph backing store.

Good luck.

<comment><AUTHOR> That's a very interesting reply. I have never heard about Ontology w.r.t database. Thanks!

<comment><USER2> The term is common when discussing meta-data. What is a database but meta-data about an application that describes the state of the mechanism (just as the source code describes the mechanism's bits and pieces)?

Anyway, it was sort of where I landed when I started writing my comment about data-centric design. Seemed like a good abstraction and I'm on my second mug of coffee.

<comment><AUTHOR> Thanks brudges. One noob question, how should we select our database? For example we should go ahead with RDBMS or NoSql? Are there any tips for the same? Or does it often comes via experience? Or for my problem which database is good, RDBMS or NoSql?

<comment><USER2> With the caveat that I'm a pundit not an expert.

Relational databases are built on the mathematical model described by the relational algebra. There is approximately forty five years of literature, thirty five years of wide-spread use, and three open source projects: Postgres, MySql, and SQLite with approximately two decades of use.

NoSQL does not have a mathematical basis. It is a term invented for a conference about non-relational databases. There are mathematical bases for many things that are called 'NoSQL' and good products and technologies behind them. But there is no commonality between them.

SQL unites relational databases and makes the practical differences between relational databases differences of features rather than architecture. NoSQL databases differ in architecture: key value stores versus graphs versus semi- structured data.

There is a well understood and common meaning of 'database schema' when referring to relational databases. While a particular NoSQL database might have a strong notion of schema (or might not) it will differ from NoSQL database to database and among them the common notion of schema is very abstract at best and almost certainly grounded against the definition of schema in the relational database world.

In terms of learning, the relational model seems like a better starting point: better learning resources, mature products, mathematical structure, and constituting the common basis for discussing databases in general.

On the relational side I'm probably biased toward Postgres as a starting point because there is more signal to noise than with MySQL. It's not that there's anything wrong with MySQL it's that the success of the LAMP stack means there are lots of 'How to build a potato chip rating website with MySQL' blog posts whereas with Postgres there is a higher likelihood of useful technical detail.

That's not to say that a resume site needs a relational database (or a NoSQL database). Files on disk would probably work and that might be an interesting alternative exercise.

<comment><AUTHOR> Thanks a lot brudgers!

<comment><USER2> You're more than welcome. I had one more tangential thought about databases last night. The files idea sort of got synapses firing.

Frameworks like Ruby on Rails abstract away the a lot of the complexities of schema design with objects and Classes. There is a full relational database schema in a Rails application and the programmer pretty much is discouraged from touching it directly.

So that's another approach.

<comment><AUTHOR> Yeah that's right. I have worked with Groovy and Grails which has the similar philosophy.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER3> You might want to look into versioning your resumes. A 'version' column in your ResumeData could be sufficient. And I wouldn't store images as blobs.

If resume components are highly volatile and mostly text, I'd probably go for a simple KV table, instead of adding new columns to ResumeData. Then you could also put versioning there. Alternatives would be a JSON column or a proper table-per-component schema.

I wouldn't worry about "large data" if you're going with Postgres. You'll mostly enter that territory by storing lots of changes and updates, which just doesn't happen that much with a traditional

<comment><AUTHOR> Thanks for your answer. I have few questions:

>> You might want to look into versioning your resumes. A 'version' column in your ResumeData could be sufficient.

I didn't quite get this. Why do we need to add 'version' column to ResumeData? Lets say when user updates the resume, my intention was to just replace the data accordingly (as now you have told, I might use JSON column and just replace it with the value). In this case why 'version' is required?

And why not storing images as blobs? Any drawbacks?

But thanks for your insights, it really helped me.

<comment><USER3> Even if you don't want to let (paid?) users access their previous revisions, it's an easy way to have basic undo functionality. You'll get "Help, I deleted my whole work history and don't want to enter it again!" support requests or disappointed users ("I can just hit Ctrl-Z in Word, why do I bother with this?"). Take care of stuff like this in the beginning and it will save you some headache later.

Images as blobs for webapps are generally a bad idea. You can't do a lot with them in databases (browse, analyse, join etc.). There's some overhead if you fetch them from the DB for each request, so they'll end up in some file-based cache anyway. Save that step and just put the path or filename in the DB. Or if you've got one image anyway, just ditch the column and have /img/users/<db_pk>.png.

<comment><AUTHOR> Thanks a lot! It really helps!</comment></comment></comment></comment>


2012 Submarine Cable Map - <AUTHOR> http://submarine-cable-map-2012.telegeography.com/ <comment><AUTHOR> Everything about undersea cabling is fascinating. Here's a video of powering up an undersea cables's repeaters: <http://www.youtube.com/watch?v=x2zDrUz9lgY> (it takes about 30 mins to fully ramp up an undersea cable).

And of course the obligatory video showing how they load a submarine cable onto a ship <http://www.youtube.com/watch?v=v1JEuzBkOD8>

<comment><USER2> " _the obligatory video showing how they load a submarine cable onto a ship_ "

They have $57 million worth of fairleads going into the ship and they're still using the thing with the two old car tires like an old baseball pitching machine?

<comment><USER3> It's ruggedized cable, designed to live underwater for decades(or centuries at this point). Besides, there's hundreds of miles of it, what else are you going to do?

<comment><USER2> Use something a little more...dignified...than two used car tires?

<comment><USER4> Because dignity: our packets need it.

<comment><USER5> Yes, yes. Most important.

From here on out, no more undersea cables. I won't have my data associating with riffraff of this sort. With such undignified origins, who knows what these cables might be capable of?

Now _underground_ cables are a completely different breed entirely. Its installation is an altogether more dignified affair.

The soil is carefully tilled by refined gentlemen wielding silver spades and wearing freshly-pressed tuxedos. They carefully lay the cable down into its final resting place, whilst a full orchestra plays a requiem ever so softly in the background.

</comment></comment></comment></comment></comment></comment><comment><USER6> A while back Sean Gorman did some really interesting work mapping critical infrastructure. If you are interested in this sort of stuff I highly recommend checking out his work:

[http://scholar.google.com/scholar?q=sean+gorman+critical+inf...](http://scholar.google.com/scholar?q=sean+gorman+critical+infrastructure&btnG=&hl=en&as_sdt=0%2C33&as_vis=1)

<comment><USER7> Is this the one that was banned/frowned upon by the government because of so called "terrorists" might use this to attack our freedoms?

</comment></comment><comment><USER8> Obligatory link to Neal Stephenson's Wired article from 1996, in which "the hacker tourist ventures forth across the wide and wondrous meatspace of three continents, chronicling the laying of the longest wire on Earth": <http://www.wired.com/wired/archive/4.12/ffglass_pr.html>

</comment><comment><USER9> Every time this topic comes up. I am just completely awed by the idea that this is how most of our communication work. It seems so fragile and vulnerable to sabotage.

<comment><USER10> I'm sure there are several ways to re-route communications, so if one/several links go down, we just use a different route, with added latency of course.

<comment><USER11> This happened to Armenia, only it wasn't a work crew that cut the cable. It was some random old Georgian woman digging around:

[http://www.guardian.co.uk/world/2011/apr/06/georgian- woman-c...](http://www.guardian.co.uk/world/2011/apr/06/georgian-woman-cuts- web-access)

</comment></comment></comment><comment><USER12> Was I the only one shocked by the $250 price tag? Shame -- at $25 I would have bought it straightaway.

<comment><USER10> Ha, I didn't even know it was something I could buy until I saw your comment. And yes, that does seem to be an exceptionally steep price for an undersea cable map...

<comment><USER13> You can often get the previous year for free. They are also commonly given as gifts by sales reps for carriers or data centers.

</comment></comment></comment><comment><USER14> Why are there so many submarine cables going between Alaska and the continental US? Does the US not trust Canada to have land based cables, or is it actually better to go under the sea for that link?

<comment><USER15> Complete guess, but it might be harder to maintain overland cables running through the Rockies than undersea cables.

<comment><USER16> I think that's a good guess. Alaska contains some pretty gnarly terrain, including (but not limited to) a fair number of glaciers.

<comment><USER17> As does much of B.C., which you'd have to cross on the land route to Alaska.

</comment></comment></comment></comment><comment><USER18> It's really fascinating to see the cables go around Cuba (except for a single cable), compared to much of the rest of the world where there is a great deal of redundancy (except where it would be too much work, like a couple of the more remote islands).

<comment> guard-of-terra Not so strange considering USA's continued bullying of Cuba despite there being no reasons to do so for a long time.

<comment><USER19> I would imagine has more to do with the absolute shambles that is the Cuba economy. When you can't feed your populous, underseas communication cables seem like a bit of a luxury.

<comment><USER20> The last time there was endemic food distribution problems in Cuba (the "periodo especial") sort of completely ended before the beginning of the 21st century. It was mostly because Cuba was unable to meet its own demand for oil during the collapse of the Soviet Union.

You can bash the Cuban economy all you want, but feeding of its population is not a good place to start. It ranks among the top american countries (that includes the US and Canada) in the UNs undernourishment rating since 2002. As of 2006 it has also ranked consistently in the top3/top5 of american countries in children undernourishment indexes, sometimes above or matching the USA and Canada.

</comment></comment></comment></comment><comment><USER21> Wow, Svalbard, with a population of 2932 has not just one but two cables!

<comment><USER22> Similarly, I was surprised that Grover Beach in San Luis Obispo Country was chosen as the west coast's terminal station. Seems a bit random, no? Link: [http://submarinenetworks.com/stations/north-america/usa- west...](http://submarinenetworks.com/stations/north-america/usa-west/grover- beach)

<comment><USER23> I'm only a somewhat familiar with the geography there, but IIRC, it's similar to what's described here:

"Cables almost never land in industrial zones, first because such areas are heavily traveled and frequently dredged, second because of pure geography. Industry likes rivers, which bring currents, which are bad for cables. Cities like flat land. But flat land above the tide line implies a correspondingly gentle slope below the water, meaning that the cable will pass for a greater distance through the treacherous shallows. Three to thirty meters is the range of depth where most of the ocean dynamics are and where cable must be armored. But in wild places like Porthcurno or Lan Tao Island, rivers are few and small, and the land bursts almost vertically from the sea. The same geography, of course, favors pirates and smugglers."

"Wired 4.12: Mother Earth, Motherboard by Neal Stephenson":<http://www.wired.com/wired/archive/4.12/ffglass_pr.html> (this article is old, but great if you're interested in sub cables)

</comment></comment></comment><comment><USER24> Hey guys, congratulations on the release and the cool interface! I worked as an intern at TG back in 2005 and fondly remember playing around with this data to see where the connections were.

</comment><comment><USER25> When I think of a submarine cable, I think about fiber optics and all the data that can go through it. But when I see a map of all the submarine cables on Earth, it reminds me of a nervous system. Unicellular organisms long ago started cooperating with one another and evolved into multicellular lifeforms. I get the impression that, as data transmissions increase year after year, humans are forming some sort of superorganism.

</comment><comment><USER26> Nice. The cable that goes out from Argentina is 10 minutes from my home (In foot), in fact: My father helped the engineers who installed it.

<comment><USER27> Where's that? It looks like they're coming out from Santa Teresita. I used to go there on vacations with my friends a few years ago (I went there 5 years in a row!)... but I never heard of the cables.

<comment><USER26> Yep, Santa Teresita, I live there!

Such a small world.

</comment></comment></comment><comment><USER28> It's very interesting to see the void through the Northwest passage (North of Canada).

It won't be like that for long: [http://www.popsci.com/technology/article/2012-03/thawing- nor...](http://www.popsci.com/technology/article/2012-03/thawing-northwest- passage-will-allow-new-fiber-optic-link-between-uk-and-japan)

</comment><comment><USER29> I'm very please to see them listing Atlantic Emerald Express on here in addition to gregs cable map(<http://www.cablemap.info/>). There's been some talk of it not getting enough funding and we need more redundant links here in Iceland.

</comment><comment><USER30> It is very interesting to see how much cabling lies off the horn of Africa and around the Arabian peninsula. If ever this was a stable region it might have severed well to these nations.

</comment><comment><USER31> For some reason this makes me think of the matrix. Not the design of the site, just the "series of tubes" that are now surrounding the planet.

</comment><comment><USER32> Is there a reason most of the cables run in the Southern hemisphere? Nothing runs across the top of Europe/Russia/Asia.

</comment><comment><USER33> "Sponsored by Telecom Egypt". Now that's what i call ironic!

</comment><comment><USER34> Where is the fiber in the SF Bay Area?

<comment><USER35> Probably at: [http://www.submarinenetworks.com/stations/north- america/usa-...](http://www.submarinenetworks.com/stations/north-america/usa- west/manchester)</comment></comment>


Inside Foxconn City: A Vast Electronics Factory Under Suicide Scrutiny - <AUTHOR> http://www.wired.com/rawfile/2010/11/thomas-lee-foxconn/

<comment><USER2> I keep reading this but I don't understand why people keep writing about this... the suicide rate seems to be below China's average.

That would indicate there is no suicide problem to speak of...

[http://www.who.int/mental_health/prevention/suicide/suicider...](http://www.who.int/mental_health/prevention/suicide/suiciderates/en/)

[http://www.zdnet.com/blog/foremski/media-gets-its-facts- wron...](http://www.zdnet.com/blog/foremski/media-gets-its-facts-wrong- working-at-foxconn-significantly-cuts-suicide-risk/1356)

What am I missing?

<comment><USER3> Western media reacting with shock when they discover where their precious gadgets actually come from, and then immediately trying to apply western standards and expectations since this company works with the some of the biggest symbols of western consumerism.

That said, no one ever actually reported on the number of foxcon employees who committed suicide away from the factory. At least that I can remember.

<comment><USER4> Considering that the employees live there, probably not many compared to on- site suicides.</comment></comment></comment>